Ankündigung

Einklappen
Keine Ankündigung bisher.

Frontend Editing: Formular anpassen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frontend Editing: Formular anpassen?

    Mahlzeit!

    Kurze Frage: Kann man das Formular-Template des FE-Editing irgendwie anpassen? Ich finde das in den Templates irgendwie nicht.

  • #2
    mod_customcatalogedit
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Da bin ich bereits eingetaucht. Ich würde aber gern auf die inputs usw. zugreifen (eigene Klassen vergeben etc).
      So wie ich das sehe, greifen da die ganzen Formularvorgaben aus dem Backend, kann das sein?

      Kommentar


      • #4
        Zitat von D23 Beitrag anzeigen
        Da bin ich bereits eingetaucht. Ich würde aber gern auf die inputs usw. zugreifen (eigene Klassen vergeben etc).
        So wie ich das sehe, greifen da die ganzen Formularvorgaben aus dem Backend, kann das sein?
        Teilweise ja. Ich simuliere einige BE Funktionen im Edit Modus. die ->widget Methode gibt das jeweilige Formularfeld aus.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          In dem Template erzeugt ja <?php echo $this->customcatalog; ?> das gesamte Formular. Ich nehme mal an, es gibt keine einfache Möglichkeit, auf das was darin dann kommt, Einfluß zu nehmen?

          Kommentar


          • #6
            Per Hook, die durchlaufen alle irgendwie den generateWidget Hook von Contao, die die Widgets alle auf Standard-Contao BE-Widgets basieren, oder halt das Formularfeld selbst erzeugen im customcatalog Template. Also die ->widget() Methode umgehen.

            $this->customcatalog erzeugt nur die Felder der Attribute, es durchläuft das customcatalog_default_edit. Wie man es auch ohne das CCfeedit gewohnt ist von CC.
            Das Formular wird wie gesagt in mod_customcatalogfrontedit erzeugt.
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Alles klar. Ich versuch erstmal die Variante mit selbst erzeugtem Formular. Mal sehen wie weit ich damit komme

              Eine andere Frage, die sich eben erst gestellt hat:
              Wenn beim FE-Editing der Eintrag gelöscht wird (deleteSubmit), landet man nach dem automatischen Reload auf einer 404, da versucht wird, auf den bearbeiteten Eintrag zurückzuleiten – welch selbiger natürlich zu dem Zeitpunkt in die ewigen Jagdgründe geschickt wurde. Kann man das irgendwie abfangen?

              Kommentar


              • #8
                Mach es wie Contao. Zeige das Löschen nur in der Listenansicht an.
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  Das geht leider nicht, da es keine Listenansicht mehr gibt

                  Kommentar


                  • #10
                    Trick 17:

                    1) Erstmal den delete Befehl rausnehmen
                    PHP-Code:
                    $GLOBALS['PCT_CUSTOMCATALOG_FRONTEDIT']['ignoreButtons'] = array('show','copy','hide','delete','toggle'); 
                    2) Im Template einfach einen eigenen Link dafür basteln
                    HTML-Code:
                    <a href="{{page::alias}}?act=delete&amp;do=eintrag&amp;table=cc_eintraege&amp;id=<?php echo $_GET['id']; ?>&amp;items=<?php echo $_GET['items']; ?>" title="" class="operation delete odd" onclick="if(!confirm('Soll der Eintrag wirklich gelöscht werden?'))return false;Backend.getScrollOffset()" data-module="<?php echo $_GET['id']; ?>" data-id="<?php echo $_GET['items']; ?>">Eintrag löschen</a>

                    Kommentar


                    • #11
                      Selbst ist der Mann
                      http://www.premium-contao-themes.com

                      Kommentar


                      • #12
                        Können die einzelnen Attribute nicht manuell im Template erstellt werden?
                        Ich würde gerne auf die komplette Field-Schleife verzichten und einzelne Felder ausgeben.
                        Aber dies hier scheint offenbar nicht der richtige Weg zu sein?
                        Code:
                        <?php echo($entry->field('feldname')->widget(); ?>
                        Geht das überhaupt?

                        Kommentar


                        • #13
                          Warum ohne Schleife? Du kannst doch ganz bequem im Leser-Modul bei dem Feedit aktiviert ist, die Felder auswählen, die angezeigt werden sollen.

                          Kommentar


                          • #14
                            Du musst nicht die Felder per Schleife ausgeben, aber ohne die foreach Schleife für die Einträge selbst, musst du den $entries Array einzeln zerlegen.

                            Im Leser hat D23 recht. Hier kommt quasi nur ein Eintrag rein. Im Liste Template sollte die entries Schleife genutzt werden.
                            http://www.premium-contao-themes.com

                            Kommentar


                            • #15
                              Zitat von D23 Beitrag anzeigen
                              Warum ohne Schleife? Du kannst doch ganz bequem im Leser-Modul bei dem Feedit aktiviert ist, die Felder auswählen, die angezeigt werden sollen.
                              Das schon, ich wollte diese nur gruppen bzw. feldweise individuell gestalten. (eigene Fieldsets, Grids usw).

                              Dafür will ich die markierte "field"-Schleife hier ersetzen durch einzelnen Einträge.



                              Code:
                              <div class="content block autogrid two_third pl-150">
                              <?php foreach($this->entries as $entry): ?>
                              <div class="<?php echo $entry->get('class'); ?> block">
                                  
                                  <?php if($entry->editable()) :?>
                                  <!-- // include the operation buttons like edit,copy,delete -->
                                  <?php echo $entry->buttons(); ?>
                                  <?php endif; ?>
                                  
                                  #################  
                                  <?php foreach($entry->get('fields') as $field): ?>    
                                  <?php if($field->hidden) {continue;} ?>
                                  <div class="<?php echo $field->class; ?>">
                                      
                                      <?php if($field->widget()) :?>
                                      <!-- // include the widget -->
                                      <div class="widget"><?php echo $field->widget(); ?></div>
                                      <!-- // include the widget -->
                                      <div class="upload_widget"><?php echo $field->uploadWidget(); ?></div>
                                      <?php endif; ?>
                                  </div>
                                  <?php endforeach; ?>
                                  ##################
                                  
                              </div>
                              <?php endforeach; ?>
                              </div>

                              Kommentar

                              Lädt...
                              X