Ergebnis 1 bis 32 von 32

Thema: Klasse zum leichteren Bearbeiten des Fontend Editing Templates

  1. #1
    Contao-Nutzer
    Registriert seit
    12.11.2009.
    Ort
    52353 Düren
    Beiträge
    73

    Lächelndes Gesicht Klasse zum leichteren Bearbeiten des Fontend Editing Templates

    Hallo Zusammen,

    Ich hatte ein paar Probleme mit dem anpassen des Formulars im Frontend Editing. Und zwar findet sich das ganze Formlar in einem Array Feld "field" wodurch die Änderung sehr schwer ist. Erstens passte für mein Vorhaben die Tabellenstruktur nicht so ganz und zweitens wolle ich einzelne Felder mit einem Fieldset Gruppieren können, was allerdings auch schwer ist wenn alles in einem Array Feld steht...

    Deswegen hat mein Kollege Jens Bernhardt eine Klasse programmiert die mir viel Arbeit abnimmt.

    Dadurch kann ich das Template aufbauen wie ich möchte und mit der Funktion einzelne Felder einfügen.

    Beispiel: (catalog_edit.tpl)
    PHP-Code:
    <?php 
    require_once('tpl_lib_mix.php'); 

    $tag_hiding_obj = new tag_hiding_class(); 
    $tag_hiding_obj->hiding_prepare$this->field );
    ?>
    <fieldset>
    <legend>Angaben zur Person</legend>
    <div class="formrow">
    <div class="formfield">
        <div class="formlabel"><?php echo $tag_hiding_obj->get_param_tags'family'); ?> </div><div class="formvalue"><?php echo $tag_hiding_obj->get_param_tags'family' ); ?></div>
    </div>
    <div class="formfield">
        <div class="formlabel"><?php echo $tag_hiding_obj->get_param_tags'childreen'); ?> </div><div class="formvalue"><?php echo $tag_hiding_obj->get_param_tags'childreen' ); ?></div>
    </div>
    </div>
    </fieldset>
    mit <?php echo $tag_hiding_obj->get_param_tags( 'family', 0 ); ?> holt er das Label
    und mit <?php echo $tag_hiding_obj->get_param_tags( 'family' ); ?> das Formularfeld inklusive dem derzeitigen Value.
    "family" ersetzt man einfach mit dem jeweiligen Tabellenfeld und schon kann man sich ein richtig schönes Formular basteln.

    Die Klasse kann auch noch die bestehende Tabellenstruktur in eine Div Struktur umwandeln...

    Alle Dateien und eine kleine Doku findet Ihr im Anhang.

    Wer es gebrauchen kann, darf es gerne verwenden.

    Achja, das ganze war eine echte Nacht und Nebel Aktion, weswegen noch viele Kommentare im Quelltext fehlen... Aber es funktioniert.

    Gruß
    Timo

    *EDIT*
    Ich habe mal eine neue Version hochgeladen... Am besten zukünftig diese verwenden, da dort einige "Fehler" behoben wurden! Dateiname: tpl_lib_mix - Auszug #4-2.zip
    Angehängte Dateien Angehängte Dateien
    Geändert von Timo29 (10.12.2010 um 12:51 Uhr)

  2. #2
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Timo29,
    super. Danke dafür
    Ich muss allerdings zugeben das ich das noch nicht getestet habe.. weiß auch noch nicht wann ich dazu komme. Aber magst das vllt auch ins Ticket System bringen, damit das aufgenommen werden kann? Oder / Und ins Wiki packen auf eine eigene Seite im Catalog Bereich?

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  3. #3
    Contao-Nutzer
    Registriert seit
    12.11.2009.
    Ort
    52353 Düren
    Beiträge
    73

    Standard

    Hallo MacKP,

    ich muss noch bis Montag ein Projekt fertig machen und danach kann ich das gerne mal machen. Allerdings habe ich das noch nie gemacht, weshalb ich mir das mal genau anschauen muss. Aber ich denke ich kriege das hin

    Gruß
    Timo

  4. #4
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Wow, damit lässt sich wirklich sehr gut arbeiten. Ich konnte so innerhalb von 10min komplett auf die lästigen Tabellen verzichten und meine vorgefertige Formularstruktur verwenden.

    ABER ...

    wie bekomme ich das Sicherheitscaptcha damit in das Template? Meine Felder kann ich ja via der Bezeichnung in mySQL herausfinden - beim Captcha ist mir das noch nicht gelungen.

  5. #5
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Einen kleinen Fehler habe ich noch gefunden.

    Wie kann ich bei Checkboxen das beschreibende Label der Funktion (nicht der Checkbox) einfügen? Somit hätte ich dann ja 2 Labels.
    Wenn ich einen Fehler hervorrufe, z.B. fülle ich ein Pflichtfeld nicht aus oder so, ist das 2te Label aufeinmal da :-)

    Ich hoffe du verstehst was ich meine.

    EDIT:

    Wenn ich via Frontend-Editing einen neuen Eintrag hinzufüge, ist das Label da. Aber wenn ich einen bestehenden Eintrag ändere, sind die 2ten Labels nicht vorhanden?! Da steckt auf jeden Fall noch der Wurm drinne
    Geändert von andreasisaak (09.08.2010 um 15:19 Uhr)

  6. #6
    Contao-Nutzer
    Registriert seit
    12.11.2009.
    Ort
    52353 Düren
    Beiträge
    73

    Standard

    Hi Jared,

    hast Du mal ein Beispiel wo ich mir das anschauen kann?

    Gruß
    Timo

  7. #7
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Nein leider nicht da ich nur lokal arbeite. Sorry.
    Vielleicht kann es jemand anderer bestätigen.

  8. #8
    Contao-Nutzer
    Registriert seit
    12.11.2009.
    Ort
    52353 Düren
    Beiträge
    73

    Standard

    hmmm, ich bräuchte ein beispiel um den Fehler genau sehen zu können...
    Kann das noch jemand bestätigen, oder hat vielleicht jemand ein Beispiel für mich? Dann leite ich das mal an Jens weiter und wie ich den einschätze, korrigiert der das ziemlich fix...

  9. #9
    Contao-Nutzer
    Registriert seit
    12.11.2009.
    Ort
    52353 Düren
    Beiträge
    73

    Standard

    das Sicherheitscaptcha habe ich gar nicht bedacht, weil ich eh nur im Internen Bereich einen Katalog Edit zulasse. Kann aber sicher recht zügig eingefügt werden.

  10. #10
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Na ja das Sicherheitscaptcha ist mir auch nur aufgefallen weil ich es in Contao 2.9 nicht deaktivieren kann.

  11. #11
    Contao-Nutzer
    Registriert seit
    12.11.2009.
    Ort
    52353 Düren
    Beiträge
    73

    Standard

    Nicht??? bei mir geht das...

  12. #12
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Könntest du dich in dem dafür aufgemachten Thread melden?

    http://www.contao-community.de/showt...gliedergruppen

    Mir fehlt die Option zum Deaktivieren des Sicherheitscaptchas leider im Backend. Und ich glaube nicht das es mit meiner Installation zusammenhängt - bzw sie sich irgendwie von anderen unterscheidet.

  13. #13
    Contao-Nutzer
    Registriert seit
    04.09.2009.
    Beiträge
    174

    Standard

    Funktioniert toll - so machen die Formulare noch mehr Freude. Wie kann ich die Vorschaubilder bei Dateifeldern mit Eurer Klasse anzeigen?

    Vielen Dank für diese tolle Klasse.

    Sam

  14. #14
    Contao-Nutzer
    Registriert seit
    31.08.2010.
    Beiträge
    7

    Beitrag Neue Version + Antworten auf ältere Fragen

    Hallo alle miteinander.

    Generell ein wenig zur Klarstellung bezüglich der Lib, die "Tim29" euch vorgestellt hat.
    1. Sie lässt sich für "Catalog Edit", aber z.B. auch "Benutzer → Persönliche Daten" verwenden.
    2. Sie diente eigentlich / ursprünglich dem Zweck, einzelne Spalten auszublenden indem sie in input type="hidden" Felder umgewandelt werden.
    3. Sie diente eigentlich / ursprünglich dem Zweck, an die Werte der Felder / Attribute zu gelangen, um z.B. Abfragen durchführen zu können.

    @jared:
    Das "Sicherheitscaptcha" kannst Du ebenso auslesen wie andere Felder auch, musst nur den gegenwärtig verwendeten Namen in Erfahrung bringen. Da diese Klasse für eher generelle Verwendung gedacht ist, gibt es dazu keine gesonderte Methode. Da zumindest die Struktur dieses Feldnamen immer gleich scheint, gibt es jedoch einen recht simplen Trick:
    PHP-Code:
    $tag_hiding_obj = new tag_hiding_class();
    $tag_hiding_obj->hiding_prepare$this->field );

    $protect_name "";
    $field_array $tag_hiding_obj->get_param_list();
    foreach( 
    $field_array as $fieldname )
      if( 
    preg_match"/^[a-f0-9]{33}$/" $fieldname ) ) // Struktur = Captcha-Name ?
      
    {
        
    $protect_name $fieldname;
        break; 
    // foreach abbrechen da Ergebnis gefunden.
      
    };
    ...
    if ( 
    $protect_name ) echo  $tag_hiding_obj->get_param_tags$protect_name );
      else echo 
    "Nada!"// ... sofern ein "else"-Zweig benötigt wird. 
    @jared und @scribble:
    Was weitere Felder betrifft, so z.B. die Fehlermeldung, Bilder, etc:
    Diese müssten über eine Anpassung des "Zeilen Index" in "string get_param_tags( [Feldname], [Zeilen Index]=1 )" adressierbar sein ( z.B. index "2" ? ).
    Unerwünschte Tags kann man auch recht einfach mittels "preg_replace" entfernen, oder aber mittels einem "explode" über das Label-Tag auch in ein Array zerlegen um es schließlich über den Index zu adressieren.
    Für Fortgeschrittene: Die Lib liefert ebenso die Klasse "tag_class" mit, welche es erlaubt, html/xhtml-Strukturen in ein Array zu zerlegen sowie wieder zusammenzubasteln; eine Manipulation dieses Arrays ist immerhin einiges leichter als hier "zu Fuß" zu arbeiten - leider kann ich euch aber derzeit keine Doku dazu anbieten.


    Die aktuelle Version der Lib/Klasse "tpl_lib_mix" findet sich hier: tpl_lib_mix - Auszug #2.zip
    Ergänzt / Geändert wurde ...
    1. Lesen der Attribute von u.A. input type="text" oder "select".
    2. Ändern der Attribute von u.A. input type="text" oder "select" um z.B. Styles bzw. Klassen oder z.B. onclick-Ereignisse einzufügen.
    3. Einige neue Beispiele für Dokumentation.
    4. Stand-Alone ausführbarer Beispielcode.
    5. Ein Beispiel für Sicherheitsabfrage ( captcha ) in Doku ( siehe oben ).

    Ansonsten ... frohes Schaffen ! :-)

  15. #15
    Contao-Nutzer Avatar von niqo
    Registriert seit
    29.10.2010.
    Ort
    Dublin
    Beiträge
    17

    Standard

    Was weitere Felder betrifft, so z.B. die Fehlermeldung, Bilder, etc:
    Diese müssten über eine Anpassung des "Zeilen Index" in "string get_param_tags( [Feldname], [Zeilen Index]=1 )" adressierbar sein ( z.B. index "2" ? ).
    Leider hatte eine Änderung des "Zeilen Index" keinen Erfolg gebraucht. Es wäre super wenn der User seine bspw. hoch geladenen Bilder in der Bearbeitung sehen und evtl wieder löschen kann. Gibt es dafür schon getestete Lösungsansätze?

    Vielen Dank im Voraus ;-)

  16. #16
    Contao-Nutzer
    Registriert seit
    31.08.2010.
    Beiträge
    7

    Standard Neue Version + Ansatz für das Anzeigen und Löschen von Bildern

    Hallo erneut !

    Bezüglich der alten Threads von @jared und @scribble sowie des Neuen von @niqo:
    Das Extrahieren des Zeileninhalts von Bild und "Löschen-Link" einer Foto-Upload Funktion ist ab Version 2 möglich und mit dieser aktuellen Version sogar in ein paar wenigen Zeilen.

    Beispiel ( aus Doku ):
    Code:
    <?php
    $tag_hiding_obj = new tag_hiding_class ();
    $tag_hiding_obj->hiding_prepare( $this->field );
    $protect_name = "";
    $field_array = $tag_hiding_obj->get_param_list( "_passport_pic_" );
    $protect_name = $field_array[0]; // Sofern es nicht mehrere Treffer zu diesem Ausdruck gibt ...
    echo  "<div><span>";
    echo  $tag_hiding_obj->get_param_tags( "passport_pic" , 0 ); // Feld- / Spaltenbezeichnung
    echo  "</span>:<span>";
    echo  $tag_hiding_obj->get_param_tags( "passport_pic" ); // Eingabefeld
    echo  "</span></div>";
    echo  $tag_hiding_obj->get_param_tags( $protect_name , 0 );  // DIV Element mit Bild und Löschen-Button / Checkbox.
    ?>
    Neu seit Version 2:
    1. Vereinfacht: Ermitteln des Sicherheits-captcha.
    2. Vereinfacht: Suchen von Namen über u.A. relative Ausdrücke.
    3. Neu: Das Ersetzen von Tabellenfeldern durch Text oder neuen Quellcode.
    4. Neu: Die Eingabe eines Tabllenfeldes in reinen Text umwandeln; ändern verhindern.

    Generelle Fähigkeiten ( da scheint es ja noch Fragen zu geben ):
    5. Ausblenden einzelner Zeilen einer Tabelle.
    6. Ermitteln des angezeigten Wertes einer Eingabe für z.B. eine Abfrage.
    7. Das Ändern / Setzen von Eigenschaften eines Eingabefeldes für z.B. onclick.
    8. Extrahieren des Quellcodes einzelner Felder spezifischer Tabellenzeilen.
    9. Das Umwandeln einer Tabelle in z.B. Div-Blöcke.

    Fröhliches Austoben ! ;-)
    Angehängte Dateien Angehängte Dateien
    Geändert von Blue_Thunder (07.12.2010 um 12:07 Uhr)

  17. #17
    Contao-Nutzer Avatar von niqo
    Registriert seit
    29.10.2010.
    Ort
    Dublin
    Beiträge
    17

    Daumen hoch

    Super. Vielen Dank für die Mühe.

    Das hat soweit alles geklappt. Gibt es auch eine Möglichkeit ein "Galerie"-Feld mit mehreren Bildern anzuzeigen bzw. wieder zu löschen.

    Viele Grüße
    Niqo

    UPDATE: hat sich erledigt. Hatte nen "kleinen" Denkfehler. Funktioniert ohne Probleme. Nochmals: MERCI
    Geändert von niqo (06.12.2010 um 11:43 Uhr)

  18. #18
    Contao-Nutzer Avatar von niqo
    Registriert seit
    29.10.2010.
    Ort
    Dublin
    Beiträge
    17

    Standard

    Mir ist gerade aufgefallen, dass das Datum nicht gespeichert wird.
    Bzw. es wird immer das heutige Datum gespeichert aber keine Änderungen.

    Mit was könnte das zusammenhängen?

  19. #19
    Contao-Nutzer
    Registriert seit
    31.08.2010.
    Beiträge
    7

    Standard

    @niqo
    Leider kann ich Dir mit so wenig Info kaum weiterhelfen.

    Nach meinem Verständnis können zwei Dinge gemeint / passiert sein:
    1. Einzelne Felder, die Du mit der Methode set_param_tag() verändert hast, könnten durch ein fälschlicher weise plaziertes <input type="hidden" /> überschrieben worden sein. Dieser Bug der 4-1 wurde in der 4-2 behoben; die Datei 2 Threads zuvor wurde bereits durch die korrigierte Version ersetzt.
    2. Das Datumsfeld des "Catalog"-Modules setzt bei Neuerstellung UND Bearbeitung das jeweils aktuelle Datum ein - wird also ein Eintrag mit Datumfeld bearbeitet wird das Datum entsprechend auf "heute" gesetzt / aktualisiert.
    Um dieses Problem für meinen Fall zu umgehen habe ich folgendes gemacht:
    PHP-Code:
    // ... Instanz erstellen, HTML-Füttern, ...

    // Ist der Eintrag neu oder wird er bearbeitet ? Möglicher Ansatz:
    $new_entry true;
    if( 
    strlen$tag_hiding_obj->get_param_raw"entry_date" ) ) ) $new_entry false;

    // Wird der Eintrag bearbeitet soll das Datum nicht mehr bearbeitet werden können.
    // Also: Datum in Text verwandeln und Ausprägung in <input type="hidden" /> packen.
    if( !$new_entry $tag_hiding_obj->convert_param2string"entry_date" ); 
    Ich hoffe ich konnte helfen und viel Erfolg !

  20. #20
    Contao-Nutzer Avatar von WebCMS
    Registriert seit
    13.08.2009.
    Ort
    Münster
    Beiträge
    79

    Standard Evtl. für Splittung eines Katalog-FE-Formular zu gebrauchen?

    Hallo Blue Thunder,
    kann ich das ebenfalls für die Splittung eines Katalog FE-Formulars gebrauchen, oder habe ich da etwas falsch verstanden? Und wenn ja, wohin lade ich dann "tpl_lib_mix.php und die anderen *.php"

    Ich habe nämlich folgendes Problem:
    Katalog FE-Formular stückeln und das soll dem vorhandenen Eintrag des Mitgliedes zugefügt werden.

    Damit das FrontEnd-Formular vom Katalog nicht unendlich lang wird, möchte ich es stückeln. (da so viele Abfragen ausgefüllt werden müssen).
    Mein Gedanke: Links kommen dann Buttons hin, die jedes gestückelte Formular aufrufen sollen. (mehrere Frontend-Formulare als Modul erstellt - Felder darin ausgewählt)

    Aufgrund des Benutzer ID Feldes werden nach jedem speichern die Einträge dem Mitglied zugeschrieben - soweit ok - nun wird jedoch immer ein neuer Eintrag angelegt, sie gehören nicht mehr zusammen. Wie kann man das FE-Formular trennen/stückeln und doch alle Einträge der einzelnen Stücke zusammenfassen?

    Beispiel: Ein Mitglied erstellt im Formular1 "Name des Shops1, dazu Adresse, Tel etc." - im Formular2 "im Shop vertretene Labels, Öffnungszeiten etc." -> diese Angaben im Formular2 werden nun jedoch nicht mehr dem Formular1 zugeschrieben (dem Shop1), wie bekommt man den 2.Formulareintrag dem 1. zugeordnet. Das ist wichtig, da das Mitglied auch einen 2. Shop und mehr anlegen soll.

    Gibt es eine Möglichkeit mit tpl_lib_mix?
    Gruß, WebCMS

  21. #21
    Contao-Nutzer
    Registriert seit
    31.08.2010.
    Beiträge
    7

    Standard Antwort: Splitting eines Catalog-FE-Formulars

    @WebCMS

    Ich werde versuchen Deine Frage in seine einzelne Bestandteile zu zerlegen, denn wenn ich Dich richtig verstanden habe, sollte die Klasse Dir tatsächlich helfen können.

    1. Welchem Zweck dient die Klasse ?
    Dem Zugriff auf und der Manipulations von Felderern und Eingabe-Element-Werten ausgabefertiger Tabellenstrukturen, die Contao geparst / erstellt hat und deren Datenbasis in einem Template nicht direkt erreichbar ist.

    2. Welcher Art mmüssen diese Tabellenstrukturen sein ?
    "<tr><td>[Labels, Input-Element,...]</td>[beliebig viele weitere Felder/Spalten]</tr>" ohne Tabellen-Rumpf ( <table /> ). In jeder Zeile, in der ein Feld oder die Zeile selbst angesprochen können werden soll, muss sich ein Eingabe-Element mit eindeutigem Namen befinden - es darf nicht fehlen, aber auch keine 2 unterschiedlichen Namen / Eingabefelder aufweisen.
    Gültige Eingabe-Elemente sind <input type="radio/checkbox/text/password" />, <select /> und <textarea />.

    3. Welche 2 grundsätzlichen Möglichkeiten ergeben sich ?
    A. Attribute für Eingabe-Elemente Ergänzen, Zeilen Ausblenden, den Quellcode eines Feldes austauschen oder die gesamte Struktur in z.B. verschachtelte <div />-Blöcke umwandeln um das Ergebnis schließlich mit der Methode hide_tags(...); auszugeben.
    B. Einzelne Felder der Tabelle wie ein Huhn das Korn aus der Tabelle zu picken um diese auf / in einer gänzlich anders strukturierten Seite portionsweise auszugeben / platzieren ( Siehe Ausgangs-Thread ).

    4. Wohin gehören die Dateien und wie werden diese eingebunden ?
    Die benötigten Dateien sind: "string_class.php" (Parsen von Text) , "tag_class.php" (Zerlegen einer HTML/XML strukturierten Datein in ein Daten-Array) und "tpl_lib_mix.php" (Daten-Arrays für Methoden nutzen). Die Datei "beispiel.php" zeigt nur ein paar Verwendungsmöglichkeiten.
    Diese drei ersten Dateien sollten am besten im Ordner "[root/]templates/" abgelegt werden.
    Zur Einbindung genügt ein "include_once", oder besser "require_once", für das/ein Template.

    5. Zerteilen einer Katalog-Seite in mehrere Einzelseiten.
    Entsprecheng Punkt "3" (siehe oben) gibt es hier 2 verschiedene Ansätze, die Dir möglich sind.
    A. Du blendest jeweils die Zeilen der Tabelle aus, die Du für die gegenwärtige Ansicht nicht wünschst / benötigt. Dazu wird eine Liste der Namen der Eingabe-Elemente benötigt, die nicht dargestellt werden sollen. Diese wird als Array der Methode "hide_tags([Namen Array]);" als erster Parameter übergeben. Alle ausgeblendeten Zeilen erscheinen als <input type="hidden" /> in der Ausgabe und tragen entweder ihre definierte Ausprägung, oder fehlt diese, als Standard den Wert "0".
    Mit jedem Speichern oder Blättern ( erkennbar über z.B. einen zusätzlichen Übergabeparameter in der URL / der Form ) müssen dann schlicht lediglich andere Zeilen versteckt werden - fertig !
    B. Du löst die Tabellenstruktur auf indem Du für jede Teildarstellung eine eigene Ausgabe / Darstellung festlegst in die Du mittels der Methode get_param_tags([Name des gesuchten Eingabe-Elements der Zeile], [TR-Index] ); Eingabe-Element und evt. auch Titel als Feld extrahierst und hier platzierst.
    Blättern kannst Du wie bei Ansatz "A", aber es gibt ein Problem mit definierten Pflichtfeldern, die auf dieser virtuellen Seite nicht dargestellt werden: Während Ansatz "A" sie über <input type="hidden" value="[0/Wert]" ... /> zum schweigen bringt, muss dies für diesen Ansatz händisch über die Methode get_param_value([Feldname]); für jede Darstellung getrennt gelöst werden - machbar, mehr Möglichkeiten der Darstellung, aber mühselig.

    WICHTIG: Bitte mit min. der Version 4-2 arbeiten ( siehe ein wenig höher ).
    Ebenso wichtig: Mit jedem Seitenwechsel muss entweder die Seite auch gespeichert oder aber die übergebenen Parameter müssen gerettet werden - zweiteres ist absolut nicht zu empfehlen da mit dem Catalog schwierig. Gleichzeitig ist dies aber mit Pflichtfeldern ziemlich schwierig umzusetzen, weil bei Fehlschlag der Prüfung kein Speichern erfolgt. Daher empfehle ich eine händische Prüfung; das Abfragen der gegenwärtigen Werte mittels der Methode get_param_raw( [Feldname] ); um eine Fehlermeldung auszugeben oder evt. den Seitenwechsel zu unterbinden, oder / und mittels der Methode set_patam_attributes(...); vielleicht eine Echtzeitprüfung mittels Java-Script ( onchange / onclick ) zu programmieren damit die Seite z.B. erst garnicht abgeschickt werden kann wenn etwas nicht okay ist.

    Beispiel für 5A:
    PHP-Code:
    <?php
    $tag_hiding_obj 
    = new tag_hiding_class();
    $tag_hiding_obj->hiding_prepare$this->field );

    $hide_array = array();
    switch( 
    $_GET["selectedPage"] )
    {
    case 
    "main":
    $hide_array[] = "email";
    $hide_array[] = "company";
    $hide_array[] = "website";
    break;
    case 
    "form2":
    $hide_array[] = "gender";
    $hide_array[] = "firstname";
    $hide_array[] = "lastname";
    $hide_array[] = "company";
    $hide_array[] = "website";
    break;
    case 
    "form3":
    $hide_array[] = "gender";
    $hide_array[] = "firstname";
    $hide_array[] = "lastname";
    break;
    };

    echo 
    $tag_hiding_obj->hide_tags$hide_array );
    ?>
    Beispiel für 5B ( gleiche Felder je Seite wie 5A ):
    PHP-Code:
    <?php
    $tag_hiding_obj 
    = new tag_hiding_class();
    $tag_hiding_obj->hiding_prepare$this->field );

    if( 
    $_GET["selectedPage"]=="main" ): ?>
    <tr>
      <td><?php echo $tag_hiding_obj->get_param_tags"gender" ); ?></td>
      <td><?php echo $tag_hiding_obj->get_param_tags"firstname" ); ?></td>
      <td><?php echo $tag_hiding_obj->get_param_tags"lastname" ); ?></td>
    </tr>
    <input type="hidden" name="email" value="<?php echo $tag_hiding_obj->get_param_value"email" ); ?>" />
    <input type="hidden" name="company" value="<?php echo $tag_hiding_obj->get_param_value"company" ); ?>" />
    <input type="hidden" name="website" value="<?php echo $tag_hiding_obj->get_param_value"website" ); ?>" />
    <?php elseif ( $_GET["selectedPage"]=="form2" ): ?>
    <tr>
      <td><?php echo $tag_hiding_obj->get_param_tags"email" ); ?></td>
      <td><?php echo $tag_hiding_obj->get_param_tags"email" ); ?></td>
    </tr>
    <input type="hidden" name="gender" value="<?php echo $tag_hiding_obj->get_param_value"gender" ); ?>" />
    <input type="hidden" name="firstname" value="<?php echo $tag_hiding_obj->get_param_value"firstname" ); ?>" />
    <input type="hidden" name="lastname" value="<?php echo $tag_hiding_obj->get_param_value"lastname" ); ?>" />
    <input type="hidden" name="company" value="<?php echo $tag_hiding_obj->get_param_value"company" ); ?>" />
    <input type="hidden" name="website" value="<?php echo $tag_hiding_obj->get_param_value"website" ); ?>" />
    <?php else: // $_GET["selectedPage"]=="form3" ?>
    <tr>
      <td>Mail: <?php echo $tag_hiding_obj->get_param_tags"email" ); ?>, </td>
      <td>Firma: <?php echo $tag_hiding_obj->get_param_tags"company" ); ?></td>
    </tr>
    <tr>
      <td colspan="2"><?php echo $tag_hiding_obj->get_param_tags"website" ); ?></td>
    </tr>
    <input type="hidden" name="gender" value="<?php echo $tag_hiding_obj->get_param_value"gender" ); ?>" />
    <input type="hidden" name="firstname" value="<?php echo $tag_hiding_obj->get_param_value"firstname" ); ?>" />
    <input type="hidden" name="lastname" value="<?php echo $tag_hiding_obj->get_param_value"lastname" ); ?>" />
    <?php endif; ?>
    Ich hoffe, ich konnte helfen !
    Geändert von Blue_Thunder (09.12.2010 um 15:31 Uhr)

  22. #22
    Contao-Nutzer Avatar von niqo
    Registriert seit
    29.10.2010.
    Ort
    Dublin
    Beiträge
    17

    Standard

    Das Datumsfeld des "Catalog"-Modules setzt bei Neuerstellung UND Bearbeitung das jeweils aktuelle Datum ein - wird also ein Eintrag mit Datumfeld bearbeitet wird das Datum entsprechend auf "heute" gesetzt / aktualisiert.
    Dieses Problem versuche ich mit deinem beschriebenen Ansatz zu lösen.

    Code:
    // ... Instanz erstellen, HTML-Füttern, ...
    
    // Ist der Eintrag neu oder wird er bearbeitet ? Möglicher Ansatz:
    $new_entry = true;
    if( strlen( $tag_hiding_obj->get_param_raw( "entry_date" ) ) ) $new_entry = false;
    
    // Wird der Eintrag bearbeitet soll das Datum nicht mehr bearbeitet werden können.
    // Also: Datum in Text verwandeln und Ausprägung in <input type="hidden" /> packen.
    if( !$new_entry ) $tag_hiding_obj->convert_param2string( "entry_date" );
    Danke für die Hilfestellung. Ich habe das versucht, leider bisher mit keiner Lösung. Hast du zwei Templates für "Eintrag_NEU" und "Eintrag_BEARBEITEN"? Ich glaube nicht, sonst würde dein Code (glaube) keinen Sinn machen.
    Ich bin mir nicht sicher wie die Ausprägung in <input type="hidden" /> verpackt werden kann.

    PHP-Code:
    <?php
    //true-Zuweisung, dass es ein neuer Eintrag ist
    $new_entry true;
    //Überprüfung ob bereits Datum hinterlegt, wenn ja, dann false-Zuweisung, das kein neuer Eintrag 
        
    if(strlen$tag_hiding_obj->get_param_raw'entry_date' ) ) ) $new_entry false;
    //Wenn Eintrag schon bearbeitet, dann Umwanndlung in String
        
    if( !$new_entry $tag_hiding_obj->convert_param2string'entry_date' );?>
    //Ausprägung in input type="hidden" verpacken?
        <input type="hidden" value="<?php echo $tag_hiding_obj->get_param_value'entry_date' ); ?>" /> 
    <div class="formfield">
    <div class="formlabel"><?php echo $tag_hiding_obj->get_param_tags'entry_date'); ?> </div><div class="formvalue"><?php echo $tag_hiding_obj->get_param_tags'entry_date' ); ?></div>
        </div>
    Any ideas? Ich steh ein wenig auf der Leitung 8-)
    Geändert von niqo (09.12.2010 um 22:19 Uhr)

  23. #23
    Contao-Nutzer
    Registriert seit
    31.08.2010.
    Beiträge
    7

    Standard

    @niqo

    Mein Beispiel war nicht vollständig bzw. nur ein Auszug; es fehlt die Instanzierung der Klasse sowie die eigentliche Ausgabe und auch das Feld "entry_date" muss noch auf das von Dir verwendete angepasst werden ( Spaltenname in Datenbank ).
    Auch musst Du Dich entscheiden, welche von den Varianten der Ausgabe / Verwendung Du eigentlich einsetzen willst ( zuvoriger Thread, Punkt "3", A oder B ).

    Ich habe versucht dies ein wenig zu verdeutliche indem ich Dir ein Beispiel für "3A" erstellt habe:

    PHP-Code:
    <?php
    $tag_hiding_obj 
    = new tag_hiding_class();
    // $this->field = enthält für üblich die Tabellenstruktur des Catalog bei List & Edit
    $tag_hiding_obj->hiding_prepare$this->field );

    // Initialisiert für den Fall dass es später Verwendung dafür geben sollte.
    $hide_array = array();
    // Feldname der HTML-Ausgabe bzw. zugleich = Feldname der Tabellenspalte der Datenbank; bitte anpassen.
    $databaseFieldName 'entry_date';

    //true-Zuweisung, dass es neuer Eintrag ist
    $new_entry true;
    //Überprüfung ob bereits Datum hinterlegt, wenn ja, dann false-Zuweisung, das kein neuer Eintrag 
    if( strlen$tag_hiding_obj->get_param_raw$databaseFieldName ) ) ) $new_entry false;

    //Wenn Eintrag schon bearbeitet, dann Umwanndlung in String
    if( !$new_entry $tag_hiding_obj->convert_param2string$databaseFieldName );

    // Ausgabe der Tabelle von "$this->field" nach/mit potentieller Veränderung durch Methoden der Klasse "tag_hiding_class()"
    echo $tag_hiding_obj->hide_tags$hide_array );
    ?>
    Das Prinzip ist dass hier, wenn das Eingabe-Element mit dem Namen "entry_date" irgendeine Art von Zeichenkette enthält, davon ausgegangen wird, bereits ein Eintrag in der Datenbank existiert und er deshalb nicht (mehr) "neu" ist.
    Ist er nicht mehr neu so wird der HTML-Quellcode für das Eingabe-Element des Datums herausgeschmissen und schlicht durch den Wert des Eingabe-Elements ersetzt; aus <input type="text" name="entry_date" value="01.01.1970" /> würde schlicht "01.01.1970".

    Für die Variante "3B" wäre dieser Ansatz denkbar (Kurzversion):
    PHP-Code:
    ...
    ?>
    <div class="formfield">
      <div class="formlabel">
        <?php echo $tag_hiding_obj->get_param_tags'entry_date'); ?>
      </div>
      <div class="formvalue">
        <?php
          
    if( strlen$tag_hiding_obj->get_param_raw'entry_date' ) ) )
          {
            echo 
    $tag_hiding_obj->get_param_value'entry_date' );
            echo 
    '<input type="hidden" name="entry_date" value="' $tag_hiding_obj->get_param_value'entry_date' ) . '" />';
          } else echo 
    $tag_hiding_obj->get_param_tags'entry_date' );
        
    ?>
      </div>
    </div>
    <?php
    ...

    Ansonsten ... frohes Schaffen !

  24. #24
    Contao-Nutzer Avatar von niqo
    Registriert seit
    29.10.2010.
    Ort
    Dublin
    Beiträge
    17

    Standard

    Vielen Dank für deine schnelle und ausführliche Antworten.
    In meinem Fall kommt sicherlich deine genannte Variante "3B" zur Anwendung.

    Es ist wie verhext, ich habe deine Lösungsansatz übernommen und auf meine Felder angepasst, jedoch wird weiterhin das heutige Datum, in der Bearbeitung und beim Erstellen eines neuen Eintrags, angezeigt.

    Code:
    if( strlen( $tag_hiding_obj->get_param_raw( 'data_entry' ) ) )
    Die Überprüfung ob bereits ein Datum hinterlegt ist, wirft immer ein "true" und kapselt somit auch immer die Ausgabe in einen String, der nicht bearbeitet werden kann aber auch mit dem heutigen Datum dargestellt wird.

    Mein konkreter Code:
    Code:
    <?php echo $this->rteConfig; ?>
     
    <?php 
    require_once('tpl_lib_mix.php'); 
     
    $tag_hiding_obj = new tag_hiding_class(); 
    $tag_hiding_obj->hiding_prepare( $this->field );
    
    ?>
    <form action="<?php echo $this->action; ?>" method="post" enctype="<?php echo $this->enctype; ?>">
    <div class="formbody">
    <input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formId; ?>" />
    
    
    <table>
       <tr>
        <td width='250'>
        <fieldset>
         <legend>Angaben zur Route</legend>
        <div class="formrow">
        <div class="formfield">
        <div class="formlabel"><?php echo $tag_hiding_obj->get_param_tags( 'bericht_titel', 0 ); ?> </div><div class="formvalue"><?php echo $tag_hiding_obj->get_param_tags( 'bericht_titel' ); ?></div>
        </div>     
        
        <div class="formfield">
        <div class="formlabel">
        <?php echo $tag_hiding_obj->get_param_tags( 'bericht_startdatum', 0 ); ?>
        </div>
        <div class="formvalue">
        <?php
          if( strlen( $tag_hiding_obj->get_param_raw( 'bericht_startdatum' ) ) ) 
          {
            echo $tag_hiding_obj->get_param_value( 'bericht_startdatum' );
            echo '<input type="hidden" name="bericht_startdatum" value="' . $tag_hiding_obj->get_param_value( 'bericht_startdatum' ) . '" />';
          } else echo $tag_hiding_obj->get_param_tags( 'bericht_startdatum' );
        ?>
        </div>
        </div>
        </fieldset>
        </td>
        </table>
    <div class="submit_container">
    <input type="submit" name="save" id="save" class="tl_submit" accesskey="s" value="<?php echo specialchars($GLOBALS['TL_LANG']['MSC']['save']); ?>" />
    <input type="submit" name="saveNclose" id="saveNclose" class="tl_submit" accesskey="c" value="<?php echo specialchars($GLOBALS['TL_LANG']['MSC']['saveNclose']); ?>" />
    <input type="submit" name="saveNcreate" id="saveNcreate" class="tl_submit" accesskey="n" value="<?php echo specialchars($GLOBALS['TL_LANG']['MSC']['saveNcreate']); ?>" />
          </div>
        </td>
      </tr>
    </table>
    </div>
    </form>
    Evtl. siehst du hier den Fehler. Möchte dich aber auch mit diesem Problem nicht weiterhin stören bzw. aufhalten. Ich versuch weiterhin mal ein paar Alternativen.
    Grüße
    Angehängte Grafiken Angehängte Grafiken
    Geändert von niqo (10.12.2010 um 22:39 Uhr)

  25. #25
    Contao-Nutzer
    Registriert seit
    31.08.2010.
    Beiträge
    7

    Standard

    @niqo

    Hoi erneut !

    An Deinem Quellcode ist nichts falsch - aber der Catalog belegt Datumsfelder modulseitig bereits mit einem Datum auch wenn die Seite neu ist. Du musst also ein Feld nutzen, welches keinen Defaulwert aufweisst, damit die Erkennung funktioniert.

    In Deinem Fall wäre dies z.B. "'bericht_titel":
    PHP-Code:
    if( strlen$tag_hiding_obj->get_param_raw'bericht_titel' ) ) )  {}; 
    Sorry, dass ich das übersehen hatte !

    Viel Erfolg beim Routen-Bericht-Zusammenstöpseln ...

    *EDIT*

    Es gibt da allerdings noch den Ausnahmefall wenn jemand das Dokument / die Seite ohne ausgefüllten "bericht_titel" abschickt. Wenn Du "bericht_titel" zum Pflichtfeld erklärst, sollte dies eine zuverlässige Lösung sein:
    PHP-Code:
    if( strlen$tag_hiding_obj->get_param_raw'bericht_titel' ) ) OR $_POST["FORM_SUBMIT"] ) {}; 
    Geändert von Blue_Thunder (10.12.2010 um 23:21 Uhr)

  26. #26
    Contao-Nutzer Avatar von niqo
    Registriert seit
    29.10.2010.
    Ort
    Dublin
    Beiträge
    17

    Standard

    Merci. Jetzt funktioniert die Unterscheidung zwischen "neuer Eintrag" und "Eintrag bearbeiten". Die Werte werden auch korrekt gespeichert. Nur die Darstellung in "Eintrag bearbeiten" wenn das Datum schon gespeichert wurde, zeigt weiterhin das heutige Datum.

    Folgender Teil in meiner if-Bedingung bewirkt auch, dass ich mein Feld nicht mehr bearbeiten kann, allerdings mit dem falschen Datum (=> heutiges Datum)
    PHP-Code:
    echo $tag_hiding_obj->get_param_value'entry_date' ); 
            echo 
    '<input type="hidden" name="entry_date" value="' $tag_hiding_obj->get_param_value'entry_date' ) . '" />'
    Ich arbeite daher jetzt vorab mit folgenden User-"unfreundlichen" Lösung:

    PHP-Code:
    <div class="formfield"> 
      <div class="formlabel"> 
        <?php echo $tag_hiding_obj->get_param_tags'entry_date'); ?> 
      </div> 
      <div class="formvalue"> 
        <?php 
          
    if( strlen$tag_hiding_obj->get_param_raw'entry_titel' ) )  OR $_POST["FORM_SUBMIT"] ) ) 
          { 
            echo 
    '<html><i>gespeichert*</i></html>';
          } else echo 
    $tag_hiding_obj->get_param_tags'entry_date' ); 
        <?
    php echo '<html><br><i>*nicht mehr änderbar!</i></html>';?>

        ?> 
      </div> 
    </div> 
    <?php
    Nochmals, vielen Dank für deine Hilfestellung.
    Viele Grüße

  27. #27
    Contao-Nutzer
    Registriert seit
    31.08.2010.
    Beiträge
    7

    Standard

    @niqo

    Gern geschehen !

    Und was Du beschreibst ist eine Eigenschaft des Catalog von der ich bisher auch nicht wusste - a real head-scratcher, I admit !

    In diesem Fall muss das Datum wohl manuell aus der Datenbank gefischt werden. Meine Vorschläge dazu:

    PHP-Code:
    <div class="formfield"> 
      <div class="formlabel"> 
        <?php echo $tag_hiding_obj->get_param_tags'entry_date'); ?> 
      </div> 
      <div class="formvalue"> 
        <?php 
          
    if( strlen$tag_hiding_obj->get_param_raw'entry_titel' ) ) OR $_POST["FORM_SUBMIT"] ) ) 
          {
            
    $param_array get_url_parameter$this->action ); // alternativ auch nur get_url_parameter(); oder schlicht $param_array = $_GET; wenn bekannt dass nicht $_POST.
            
    if( !is_object$this->Database ) ) $this->import('Database');
            
    $query_result $this->Database->prepare'SELECT entry_date FROM [TABELLE] WHERE [ALIAS-Feld der Tabelle]=?' )->execute$param_array["items"] );
            
    $date_string date"d.m.Y" $query_result->entry_date );
            echo 
    '<i>'.$date_string.'*</i>';
            
    ?><input type="hidden" name="entry_date" value="<?php echo $date_string;?>" /><?php
          
    } else echo $tag_hiding_obj->get_param_tags'entry_date' ); 
        <?
    php echo '<br><i>*nicht mehr änderbar!</i>';?>

        ?> 
      </div>
    </div>
    ... oder simpler unter Ausnutzung einer weiteren Catalog-Eigenschaft ...

    PHP-Code:
    <div class="formfield"> 
      <div class="formlabel"> 
        <?php echo $tag_hiding_obj->get_param_tags'entry_date'); ?> 
      </div> 
      <div class="formvalue"> 
        <?php
          $param_array 
    get_url_parameter$this->action ); // alternativ auch nur get_url_parameter(); oder schlicht $param_array = $_GET; wenn bekannt dass nicht $_POST.
          
    if( isset( $param_array["items"] ) )
          {
            if( !
    is_object$this->Database ) ) $this->import('Database');
            
    $query_result $this->Database->prepare'SELECT entry_date FROM [TABELLE] WHERE [ALIAS-Feld der Tabelle]=?' )->execute$param_array["items"] );
            
    $date_string date"d.m.Y" $query_result->entry_date );
            echo 
    '<i>'.$date_string.'*</i>';
            
    ?><input type="hidden" name="entry_date" value="<?php echo $date_string;?>" /><?php
          
    } else echo $tag_hiding_obj->get_param_tags'entry_date' ); 
        <?
    php echo '<br><i>*nicht mehr änderbar!</i>';?>

        ?> 
      </div>
    </div>
    ... oder mit Bearbeitungsmöglichkeit ...

    PHP-Code:
    <div class="formfield"> 
      <div class="formlabel"> 
        <?php echo $tag_hiding_obj->get_param_tags'entry_date'); ?> 
      </div> 
      <div class="formvalue"> 
        <?php
          $param_array 
    get_url_parameter$this->action ); // alternativ auch nur get_url_parameter(); oder schlicht $param_array = $_GET; wenn bekannt dass nicht $_POST.
          
    if( isset( $param_array["items"] ) )
          {
            if( !
    is_object$this->Database ) ) $this->import('Database');
            
    $query_result $this->Database->prepare'SELECT entry_date FROM [TABELLE] WHERE [ALIAS-Feld der Tabelle]=?' )->execute$param_array["items"] );
            
    $date_string date"d.m.Y" $query_result->entry_date );
           
    ?><input type="text" name="entry_date" id="ctrl_entry_date" class="text" value="<?php echo $date_string;?>" /><?php
          
    } else echo $tag_hiding_obj->get_param_tags'entry_date' ); 
        
    ?> 
      </div>
    </div>
    So ... damit müsste es aber nun passen !

    ... und ich speichere mir mal diesen gesamten Thread - daraus wird sich bestimmt ein gutes Nachschlagewerk machen lassen !

    Dann hau mal rein !
    Geändert von Blue_Thunder (11.12.2010 um 16:30 Uhr)

  28. #28
    Contao-Fan Avatar von Nikolas
    Registriert seit
    22.08.2009.
    Ort
    Lehe
    Beiträge
    493
    User beschenken
    Wunschliste

    Standard

    Hallo,

    würde gerne die Klasse nutzen und bedanke mich auch schon mal recht herzlich dafür

    Aber bevor ich überall rumprobiere und dann doch nicht weiter weiß möchte ich folgende kurze Frage stellen:

    Wo muss ich die Klasse ablegen wenn ich Sie für das Catalog Edit nutzen will?

    Der Aufruf erfolgt ja im Template.

    Gruß
    Nikolas

  29. #29
    Contao-Nutzer Avatar von niqo
    Registriert seit
    29.10.2010.
    Ort
    Dublin
    Beiträge
    17

    Standard

    Hallo zusammen,

    nach einem Live Update von 2.9 auf 2.10.3 funktioniert die Eingabe/Bearbeitung (Fontend Editing) des Feldtypes "date" nicht mehr.
    Die restlichen Feldtypen (tags, text, select,...) funktionieren einwandfrei. Lediglich die Eingabe des Datums streikt.
    Wobei ich bemerkt habe, dass bei der Sortierung der "Bearbeitbaren Felder" in der Modulansicht "Katalog Bearbeitung", das Datum an letzter Stelle stehen muss, sonst funktionieren darauf folgende Feldtypen auch nicht mehr.

    Ich habe bereits das Standardtemplate "catalog_edit.xhtml" getestet, hier werden alle Datumsfelder (3 insgesamt) angezeigt, lediglich der Datepicker funktioniert nicht (bereits mitgeteilt von Andreas: http://www.contao-community.de/showt...datepicker-Bug

    Ich bin mir nicht sicher ob die Klasse "tpl_lib_mix.php" hierfür angepasst werden muss.

    Hat dazu jmd. ähnliche Erfahrungen/Lösungsansätze?

    Viele Grüße

  30. #30
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo niqo,
    mach doch bitte ein Ticket dazu -> http://www.contao-forge.org/projects...s?per_page=100

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  31. #31
    Contao-Nutzer
    Registriert seit
    01.12.2010.
    Beiträge
    17

    Standard Gibt es das auch für Dummies

    [QUOTE=Timo29;79971]Hallo Zusammen,

    Ich hatte ein paar Probleme mit dem anpassen des Formulars im Frontend Editing. Und zwar findet sich das ganze Formlar in einem Array Feld "field" wodurch die Änderung sehr schwer ist. Erstens passte für mein Vorhaben die Tabellenstruktur nicht so ganz und zweitens wolle ich einzelne Felder mit einem Fieldset Gruppieren können, was allerdings auch schwer ist wenn alles in einem Array Feld steht...

    Deswegen hat mein Kollege Jens Bernhardt eine Klasse programmiert die mir viel Arbeit abnimmt.

    Dadurch kann ich das Template aufbauen wie ich möchte und mit der Funktion einzelne Felder einfügen.

    ..........

    Tolle Sache, sowas suche ich auch. Wäre nett wenn jemand posten würde wohin die Dateien kopiert werden sollen bzw. wie das template anpassen. Eine kleine Anleitung für Dummies halt!!!!

  32. #32
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo jorgos,
    die neuste Version vom Catalog (aktuell noch im SVN bzw. auf Github) bietet einem die einzelnen Felder in einem Array an. Damit kann man die dann auch so ausgeben wie einzelne Werte im Reader etc.
    Versuch dich also da drann.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Link einfügen und bearbeiten -> CSS-Klasse definieren
    Von hobby-fotograf im Forum Layout / Templates / Holy Grail
    Antworten: 15
    Letzter Beitrag: 10.02.2011, 20:13
  2. Antworten: 0
    Letzter Beitrag: 06.10.2010, 18:33
  3. Frontend editing
    Von tognit im Forum Sonstiges zu Contao
    Antworten: 11
    Letzter Beitrag: 04.10.2010, 21:47
  4. Front-End-Editing / Insite-Editing: Was haltet ihr davon?
    Von tomy-it im Forum Sonstiges zu Contao
    Antworten: 5
    Letzter Beitrag: 16.04.2010, 17:02

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •