Neues Modul: Tabbed Content Advanced (beta 0.1)

Gesperrt
wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Neues Modul: Tabbed Content Advanced (beta 0.1)

Beitrag von wayfearer » Fr 26. Okt 2007, 17:54

Hallo Leute,

ich habe jetzt ca. 3 Tage an einem neuen Modul gearbeitet, welches ich soeben fertiggestellt habe.

An dieser Stelle möchte ich mich erst einmal ganz herzlich bei kummer und wosch bedanken, die mir bei so manchen kleinen Hürden die während der Entwicklung zu bewältigen waren super geholfen haben. Also ein dickes Dankeschön an euch Beide !

So nun aber zum eigentlichen Thema:

Das Modul bietet die Möglichkeit beliebige Inhalte zu Gruppieren und in Tabs darzustellen. Es spielt keine Rolle was ihr "tabben" möchtet, sei es ein Bild, ein Text, beides zusammen, eine Tabelle oder was auch immer, nahezu alles ist möglich. Ihr könnt die Tabs natürlich frei mit CSS gestalten, nähres dazu unten. Bearbeitet werden die Inhalte ganz normal im Backend wie auch die ganz normalen Inhalte, insite-editing und WYSIWYG ist beides möglich.

So, dann mal zum Styling, folgende Klassen könnt ihr fürs CSS Styling nutzen:

.table_tabs -> Die Tabelle in der die Rabs dargestellt werden

.tab_base -> Standard aussehen eines Tabs

.tab_loaded -> Aussehen des aktiven Tabs

.tab_base:hover -> Standardtab bei Mouseover

.tabbedContent -> DIV Container mit dem Content des Tabs (auch über #table_loader_div[MODULINSTANZ] zu steuern, wobei [MODULINSTANZ] durch die Instanzennummer des Moduls ersetzt werden muss)
So soviel zu CSS.

Jetzt kommen wir zum eingemachten, der Funktionsweise.
Grunsätzlich baut das Modul auf Javascript auf, ohne is also nicht! Dabei werden die Inhalte in einem Array abgelegt und dann je nach dem welches Tab man anklickt werden diese Inhalte dann an eine Funktion übergeben, welche dann im entsprechenden DIV-Container den Inhalt ersetzt.

Ich habe schon angefangen den Modulquelltext zu kommentieren, bin aber noch nicht ganz durch. Grundsätzlich sollte das Modul aber schon laufen. Ich werde im laufe der nächsten Tage immer mal wieder ein Update machen wo ich dann den Quellcode weiter aufgeräumt und kommentiert habe, so dass nachher jeder durchblicken kann. Deshalb sehe ich das hier erst mal als Beta-Release an, es hat also kein Anspruch auf 100%ige Funktionalität !

So okay genug geredet, hier der Modulcode:
Input:

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - Input
*
* Modulname  :      Tabbed Content
* Author(s)   :     Marcel Bensch
* Copyright   :     MISTRAL! marketing, Marcel Bensch
* URL         :     www.marcelbensch.de , www.mistral-marketing.de
* Created     :     23.10.2007
* Credits     :     Danke an kummer, und wosch für eure Hilfe !!!
************************************************/

?>
<table border="0">
    <tr>
        <td><?php echo mi18n("Anzahl der Tabs");?></td>
        <td>&nbsp;<input type="text" name="<?php echo "CMS_VAR[0]";?>" value="<?php echo "CMS_VALUE[0]";?>"></td>
    </tr>
    <tr>
        <td><?php echo mi18n("Modulinstanz");?></td>
        <td>&nbsp;<input type="text" name="<?php echo "CMS_VAR[1]";?>" value="<?php echo "CMS_VALUE[1]";?>"></td>
    </tr>
</table><?
Output:

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Tabbed Content
* Author(s)   :     Marcel Bensch
* Copyright   :     MISTRAL! marketing, Marcel Bensch
* URL         :     www.marcelbensch.de , www.mistral-marketing.de
* Created     :     23.10.2007
* Credits     :     Danke an kummer, und wosch für eure Hilfe !
************************************************/

/**
 * Initialisierung des Moduls und der Modulvariablen
 */
$anzahl = "CMS_VALUE[0]";
$instance = "CMS_VALUE[1]";

//Überprüfen ob Daten übergeben wurden

if (!isset($anzahl) || empty($anzahl) || $anzahl="0")
{
    $anzahl ="2";
} else {

$anzahl = "CMS_VALUE[0]";
}

if (!isset($instance) || empty($instance) || $instance == "0")
{
    $instance = "1";
}
else { $instance = "CMS_VALUE[1]"; }


/**
 * Bin ich im Bearbeitungsmodus oder nicht ?
 */
$editmode = false;                      // Standardinitialisierung der Variable ist false
if($contenido&&($view=="edit")){        // Überprüfung auf Editmode
    $editmode = true;                   // Wenn okay, dann bin ich im Editmode
}

/**
 * Abarbeitung des Skriptes je nach Modus (Editmode / Viewmode)
 */

////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
////////////////////################\\\\\\\\\\\\\\\\\\\\
////////////////////# BACKENDEMODE #\\\\\\\\\\\\\\\\\\\\
////////////////////################\\\\\\\\\\\\\\\\\\\\
////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\

if ($editmode===true) {

    /**
 * Includes der benötigten Klassen
 */
    cInclude("includes", "functions.lang.php");
    cInclude("classes", "class.htmlelements.php");

    /**
     * ID's initialisieren
     */
    $onr = 40;
    $val= $instance.$onr;



    /**
     * Backendstyling Kopfbereich
     */
    echo "<div style=\"border:1px solid #334f77;\">
                <div style=\"padding-left:10px;background:#c6c6d5;color:white;font-weight:bold;\">Tabbed Content</div>
                    <div style=\"padding:15px;background:#e8e8ee;color:black;\">
                        <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">";


    for($i=1;$i<=$anzahl;$i++)
    {

        /**
         * Tab Id ausgeben
         */
        echo "<tr><td style=\"background-color:#dedede;color:black;padding-left:5px;font-weight:bold;\">
                Tab Item Nr. $i</td><tr><tr><td style=\"padding-left:15px;padding-top:5px;\">
                <strong><em>Tabname:</em></strong></td></tr>
                <tr><td style=\"padding-left:15px;\">";


        /**
         * Tabname:
         *
         * Editierbaren Bereich ausgeben analog zu CMS_HTMLHEAD[n]
         */

        $tmp = $a_content['CMS_HTMLHEAD'][$val];
        $tmp = urldecode($tmp);

        //$tmp = AddSlashes(AddSlashes($tmp));
        //$tmp = str_replace("\\\'","'",$tmp);
        //$tmp = str_replace("\$",'\\\$',$tmp);

        if ($tmp == "") {
            $tmp = "&nbsp;";
        }
        $insiteEditingDIV = new cHTMLDiv;
        $insiteEditingDIV->setId("HTMLHEAD_".$db->f("idtype")."_".$val);
        $insiteEditingDIV->setEvent("Focus", "this.style.border='1px solid #bb5577';");
        $insiteEditingDIV->setEvent("Blur", "this.style.border='1px dashed #bfbfbf';");
        $insiteEditingDIV->setStyleDefinition("border", "1px dashed #bfbfbf");
        $insiteEditingDIV->setStyleDefinition("direction", langGetTextDirection($lang));
         $insiteEditingDIV->setStyleDefinition("background", "#ffffff");

        $insiteEditingDIV->updateAttributes(array("contentEditable" => "true"));

        $insiteEditingDIV->setContent("_REPLACEMENT_");


        /* Edit anchor and image */
        $editLink = $sess->url("front_content.php?action=10&idcat=$idcat&idart=$idart&idartlang=$idartlang&type=CMS_HTMLHEAD&typenr=$val");
        $editAnchor = new cHTMLLink;
        $editAnchor->setLink("javascript:setcontent('$idartlang','" . $editLink . "');");

        $editButton = new cHTMLImage;
        $editButton->setSrc($cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_edithead.gif");
        $editButton->setBorder(0);
        $editButton->setStyleDefinition("margin-right", "2px");

        $editAnchor->setContent($editButton);


        /* Save anchor and image */
        $saveAnchor = new cHTMLLink;
        $saveAnchor->setLink("javascript:setcontent('$idartlang','0')");

        $saveButton = new cHTMLImage;
        $saveButton->setSrc($cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_speichern.gif");
        $saveButton->setBorder(0);

        $saveAnchor->setContent($saveButton);

        /* Process for output with echo */
        $finalEditButton = $editAnchor->render();


        $finalEditingDiv = $insiteEditingDIV->render();


        $finalEditingDiv = str_replace("_REPLACEMENT_", $tmp, $finalEditingDiv);

        $finalSaveButton = $saveAnchor->render();


        echo  $finalEditingDiv . $finalEditButton . $finalSaveButton;

        echo "</td></tr><tr><td>&nbsp;</td></tr>";
        echo "<tr><td style=\"padding-left:15px;\"><strong><em>Tabinhalt:</em></strong></td></tr><tr><td style=\"padding-left:15px;\">";

        /**
         * Tab Inhalt:
         *
         * Editierbares Feld ausgeben, analog zu CMS_HTML[n]
         */
            /* Bestehenden Content laden falls vorhanden */
            $tmp = $a_content['CMS_HTML'][$val];
            $tmp = urldecode($tmp);

            /* Prüfen ob Content besteht */
            if ($tmp == "")
            {
                // Für den Fall das kein Content besteht wird ein Leerzeichen ausgegeben
                $tmp = "&nbsp;";
            }

            /* Neuer Container fürs Insite Editing wird erstellt */
                //Initialisierung des Onjektes für den Container
                $insiteEditingDIV = new cHTMLDiv;

                //Zuweisung der Objekteigenschaften
                    #>DB Eigenschaften
                        $insiteEditingDIV->setId("HTML_2_".$val);                                        #ID des Objektes (setzt sich zusammen aus der typeid und dem internen Counter
                    #>JS Eigenschaften
                        $insiteEditingDIV->setEvent("Focus", "this.style.border='1px solid #bb5577';");  #Setzen der Javascript Eventhandler, anscheinend nur relevant im IE [..>]
                        $insiteEditingDIV->setEvent("Blur", "this.style.border='1px dashed #bfbfbf';");  # [..>] einfach aus der Datenbank mit übernommen, schadet ja nicht ;-)
                    #>CSS Eigenschaften
                        $insiteEditingDIV->setStyleDefinition("border", "1px dashed #bfbfbf");           #Setzen der CSS Eigenschaft für das Aussehen des Randes
                        $insiteEditingDIV->setStyleDefinition("direction", langGetTextDirection($lang)); #Setzen der CSS Eigenschaft für die Leserichtung - Intenationalisierung
                        $insiteEditingDIV->setStyleDefinition("background", "#ffffff");                  #Setzen der CSS Eigenschaft für den Hintergrund
                    #>Editierbarkeit des Contents
                        $insiteEditingDIV->updateAttributes(array("contentEditable" => "true"));         #Auf false setzen um Insite-Editing abzuschalten; Bearbeitung dann nur noch über WYSIWYG
                    #>Content-Platzhalter einsetzen
                        $insiteEditingDIV->setContent("_REPLACEMENT_");                                 #Wird im späteren Verlauf des Scriptes durch den eigentlichen Content ersetzt


            /* Bearbeiten Button und Bild dahinter */

                //Link erstellen
                $editLink = $sess->url("front_content.php?action=10&idcat=$idcat&idart=$idart&idartlang=$idartlang&type=CMS_HTML&typenr=$val");
                $editAnchor = new cHTMLLink;
                $editAnchor->setLink("javascript:setcontent('$idartlang','" . $editLink . "');");
                //Bild erstellen
                $editButton = new cHTMLImage;
                $editButton->setSrc($cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_edithtml.gif");
                $editButton->setBorder(0);
                $editButton->setStyleDefinition("margin-right", "2px");
                //Bild und Link zusammenfügen
                $editAnchor->setContent($editButton);


            /* Speichern Button und Bild dahinter */

                //Link erstellen
                $saveAnchor = new cHTMLLink;
                $saveAnchor->setLink("javascript:setcontent('$idartlang','0')");
                //Bild erstellen
                $saveButton = new cHTMLImage;
                $saveButton->setSrc($cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_speichern.gif");
                $saveButton->setBorder(0);
                //Bild und Link zusammenfügen
                $saveAnchor->setContent($saveButton);

            /* HTML Inhalte rendern um sie mit echo() auszugeben */
            $finalEditButton = $editAnchor->render();
            $finalEditingDiv = $insiteEditingDIV->render();
            $finalEditingDiv = str_replace("_REPLACEMENT_", $tmp, $finalEditingDiv);
            $finalSaveButton = $saveAnchor->render();

            /* Ausgabe der Inhalte */
            echo $finalEditingDiv . $finalEditButton . $finalSaveButton;
            echo "</td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr>";

            /* Counter erhöhen */
            $val++;
    }

    echo "</table>";
    echo "</div></div></div>";

}


////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
////////////////////################\\\\\\\\\\\\\\\\\\\\
////////////////////# FRONTENDMODE #\\\\\\\\\\\\\\\\\\\\
////////////////////################\\\\\\\\\\\\\\\\\\\\
////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\

else {
    /**
     * Includes der benötigten Klassen
     */
    cInclude("includes", "functions.general.php");
    cInclude("includes", "functions.lang.php");
    cInclude("classes", "class.htmlelements.php");
    /**
     * Contents generieren
     */
    getAvailableContentTypes($idartlang);

    /**
     * Zähler initialisieren
     */

    $onr = 40;
    $val= $instance.$onr;

    echo "<script type='text/javascript' language='JavaScript'>";

    echo "var content_HTML". $instance." = Array();\n";

    for ($i=1; $i<=$anzahl;$i++)
    {
        $content = $a_content['CMS_HTML'][$val];
        $content = urldecode($content);
        $content = str_replace("\\\'","'",$content);

        echo "content_HTML".$instance."[$val] = '$content';\n";

        $val++;
    }

    //Zähler zurücksetzen
    $val2= $instance.$onr;

    echo "function change_tabs_$instance(contentTab)
    {
        for(i=$val2;i<$val;i++)
         {
            document.getElementById('content_tab' + i).className = 'tab_base';
         }
        document.getElementById('table_loader_div$instance').innerHTML=content_HTML".$instance."[contentTab];
        document.getElementById('content_tab' + contentTab).className = 'tab_loaded';
    }
    ";

    echo "</script>";

    echo "<div id=\"table_complete_$instance\" align=\"center\">";

    /**
     * Tabs werden generiert mit den Werten aus dem CMS_HTMLHEAD - Containern
     */
    echo "<div id=\"tabellen_tabs_$instance\">";
    echo "<table class='table_tabs' NAME='tab_table_$instance' align='left'>";
    echo "<tr>";

    //Zähler zurücksetzen
    $val= $instance.$onr;

    for($i=0;$i<$anzahl;$i++)
    {

        $headline = $a_content['CMS_HTMLHEAD'][$val];
        $headline = urldecode($headline);

        echo "<td class='tab_base' id='content_tab".$val."' align='center'onmousedown=\"change_tabs_$instance($val);\">";
        echo $headline;
        echo "</td>";
        $val++;
    }

    echo "</tr>";
    echo "</table>";
    echo "</div>";

    //Zähler zurücksetzen
    $val= $instance.$onr;

    //Eigentliche Ausgabe des Inhaltes
    echo "<div id='table_loader_div$instance' class='tabbedContent'></div>";
    echo "<script type='text/javascript' language='JavaScript'>";
    echo "change_tabs_$instance($val);";
    echo "</script>";
    echo "</div>";
    echo "<div style=\"clear:both;\" ></div><p>&nbsp;</p>";

}

?>

So, dann mal viel Spaß damit !

Für konstruktive Kritik und Anregungen bin ich natürlich immer offen !
Wehr Fehler findet sollte sie nicht behalten sondern posten (gilt natürlich nicht für evtl. Rechtschreibfehler in diesem Post ;-) )

Also dann, gutes Gelingen !

Mfg,

Marcel
Zuletzt geändert von wayfearer am Do 13. Nov 2008, 01:54, insgesamt 1-mal geändert.
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)

Andreas
Beiträge: 254
Registriert: So 16. Nov 2003, 14:48
Wohnort: Reichshof
Kontaktdaten:

Beitrag von Andreas » Mi 12. Nov 2008, 11:13

Hallo wayfearer,

ein wirklich klasse Modul! Peinlich, dass ich es erst jetzt entdeckt habe...
Hättest Du mal ein Beispiel für die benötigten css-Klassenß
Gruß
Andreas

wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer » Do 13. Nov 2008, 01:50

Code: Alles auswählen

#table_loader_div,
#table_loader_div0,
#table_loader_div1,
#table_loader_div2,
#table_loader_div3,
#table_loader_div4,
#table_loader_div5,
#table_loader_div6,
#table_loader_div7,
#table_loader_div8,
#table_loader_div9{
    float:left;
    clear:left;
    margin-left:0px;
}

.bg_white{
background:#fff !important;
}

.table_data_right{
        text-align:right;
	/*border-bottom-style:solid;
	border-bottom-width:0.5px;*/
}

.excel_headline {
    background-color:#EA8B2E;
    font-weight:bold;
    border-left:1px solid #000000;
    border-right: 1px solid #000000;
    border-bottom:1px solid #000000;
    border-top:0px;
    min-width:500px;
    
}
#table_loader_div1 table tr:first-child {
    background-color:#EA8B2E;
    font-weight:bold;
    border-left:1px solid #000000;
    border-right: 1px solid #000000;
    border-bottom:1px solid #000000;
    border-top:0px;
    min-width:500px;   
}
#table_loader_div1 table:nth-child(odd) {
 background-color:#ebecee;
}

.bg_grey {
    background-color:#ebecee;
}

.tab_base{
	background:#F4F4F4;
	font-weight:bold;
    color:#ea8b2e;
	cursor:pointer;
    border-left:1px;
    border-right:1px;
    border-top:1px;
    border-bottom:0px;
    border-style:solid;
    border-color:#000000;
    padding:0px 3px 0px 3px;
}

.table_sub_heading{
	background:#CCCCCC;
	font-weight:bold;
	border-style:solid;
	border-width:1;
}

.table_body{
	font-weight:normal;
	font-size:9pt;
	font-family:sans-serif;
    border-collapse:collapse;
    border-left:1px solid #000000;
    border-right:1px solid #000000;
    border-top:0px;
    border-bottom:1px solid #000000;
    min-width:500px;
    
   
}

#tabellen_tabs{
    float:left;
    min-width:400px;
    margin-left:50px;
}

.table_tabs {
    font-weight:normal;
	font-size:9pt;
	font-family:sans-serif;
	border-color:#000000;
    border-collapse:collapse;
    border-left:1px;
    border-right:1px;
    border-top:1px;
    border-bottom:0px;
    border-style:solid;
    text-align:left;
    cursor:pointer;
}

.tab_base:hover{
    background:#EA8B2E;
	color:#ffffff;
	font-weight:bold;
	border-color:#000000;
    border-left:1px;
    border-right:1px;
    border-top:1px;
    border-bottom:0px;
    border-style:solid;
    cursor:pointer;
    padding:0px 3px 0px 3px;
}

.tab_loaded{
	background:#EA8B2E;
	color:#000000;
	font-weight:bold;
	border-color:#000000;
    border-left:1px;
    border-right:1px;
    border-top:1px;
    border-bottom:0px;
    border-style:solid;
    cursor:pointer;
    padding:0px 3px 0px 3px;
}

.table_body td {
  padding:3px 10px 3px 10px;
}

#table_complete{
    min-width:500px;
    *width:500px;
}

So dass ist ein css was ich in einer seite drin habe. Und es muss dir nicht peinlich sein, dass dus erst jetz entdeckt hast. Es muss mir eher peinlich sein, dass ich noch kein weiteres refactoring des Quellcodes vorgenommen habe, weil der ist immer noch ziemlich wüst. aber so ist das nunmal im Alltagsgeschäft eines Webentwicklers. Hat man einmal was "fertig" kommen schon die nächsten Aufträge und es bleibt keine Zeit bestehendes zu überarbeiten. Aber das Modul sollte so laufen, wenn nicht einfach posten dann schau ich dabei. Habe momentan ein bisschen mehr Zeit, da ich mittlerweile nicht mehr in einer agentur bin sondern endlich Informatik studiere ;-)
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)

Andreas
Beiträge: 254
Registriert: So 16. Nov 2003, 14:48
Wohnort: Reichshof
Kontaktdaten:

Beitrag von Andreas » Do 13. Nov 2008, 08:53

Hallo Marcel,

vielen Dank! Ein wirklich nützliches Modul!
aber so ist das nunmal im Alltagsgeschäft eines Webentwicklers
Wem sagst Du das... :roll:

Entwickelst Du denn noch weiter an Contenido-Modulen?
Das wäre ggf. interessant...
Gruß
Andreas

wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer » Fr 14. Nov 2008, 14:55

Da ich momentan wieder mal 2 Contenido Projekte am Start habe und auch ein bisschen Zeit, werde ich wahrscheinlich auch wieder das ein oder andere Modul schreiben.

Was jetzt folgt ist zum Einen die Überarbeitung meines Downloadmoduls und zum Anderen eine auf AJAX basierende Shoutbox.
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)

Andreas
Beiträge: 254
Registriert: So 16. Nov 2003, 14:48
Wohnort: Reichshof
Kontaktdaten:

Beitrag von Andreas » Fr 5. Dez 2008, 11:57

Hallo wayfearer,

könntest Du mir kurz erläutern was es mit der Modulinstanz auf sich hat und wie ich sie verwende?

Dank im voraus...
Gruß
Andreas

wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer » Fr 5. Dez 2008, 12:07

Die Instanzen sind nur dafür da, dass wenn man das Modul in einem Template mehrmals einsetzt, die Inhalte in der Datenbank nicht kollidieren, und auch alles richtig angezeigt wird (z.b. wenn was man anklickt im JS auch die richtigen DOM-Elemente übergeben werden etc.).

Heißt für die konkrete Benutzung: Wenn das Modul mehrmals eingesetzt wird, darauf achten in der Konfiguration unterschiedliche Instanz-Indizes einzutragen.

Wichtig auch fürs CSS, wenn mehr als 10 Module da sind bitte die entsprechenden Anweisungen ergänzen (sieht man ganz gut am #table_loader_div, hier habe ich einfach schonmal vorgearbeitet).
Leider habe ich da noch keine elgantere Lösung gefunden um das zu automatisieren.


Mfg,

Marcel
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)

lovee19us
Beiträge: 7
Registriert: Do 18. Jun 2015, 10:01
Kontaktdaten:

Re: Neues Modul: Tabbed Content Advanced (beta 0.1)

Beitrag von lovee19us » Di 30. Jun 2015, 10:28

Hallo wayfearer,

Ich habe ein problem und zwar ich kann in text module meine text nicht formatieren kann. egal was ich mache das wir alles grade geschrieben. Der macht kein Änderungen.

Kannst du mir bitte helfen?

Vielen dank

Lovee

Gesperrt