Blog

Flutter – Plugin für eigene Post-Vorlagen nutzen

Custom Fields einfach gemacht!

Da ich mich am Wochenende mit großer Begeisterung der Erforschung des Flutter-Plugins gewidmet habe,  möchte ich hier meine “Erkenntnisse” mit Interessierten teilen. Nicht zuletzt, damit ich selber immer nachgucken kann, wie es geht ;-)

Mit dem Plugin “Flutter” (http://flutter.freshout.us) ist es relativ einfach möglich, eigene Vorlagen aus Spezialfeldern zu erstellen.
Häufig gesehen zum Beispiel bei Portfolios oder Mediensammlungen auf WordPress-Basis.

Nehmen wir an, in unserem Beispiel möchten wir eine Liste unserer Lieblings CDs in einer eigenen Kategorie “Lieblingsmusik” anlegen. Jeder Eintrag soll folgenden Spezialfelder enthalten:

  • Name des Künstlers (kuenstler)
  • Name der CD (cdname)
  • Bild (bild)
  • Webseite (website)

Zuerst einmal müssen wir dazu natürlich das Plugin installieren und die von Flutter gewünschten Ordner freigeben und / oder erstellen (s. Anleitung auf der Flutter-Webseite)

Flutter Menü

Wenn das gemacht ist, kann es auch schon losgehen. Im Menü unter “Einstellungen” befindet sich (WordPress 2.7) das Flutter-Menü. Dort wollen wir ein neues Write-Panel erstellen.
Write Panel erstellen
In diesem Bildschirm klicken wir auf den Button “+ Create a Write Panel”.

Panel erstellen

Dort entscheiden wir uns zuerst, ob unsere Lieblings-CDs als Posts oder auf einer Seite dargestellt werden sollen. In unserem Fall sollen ja die einzelnen CDs als Posts in der Kategorie “Lieblingsmusik” gepostet werden.

Bei dem Punkt “Quantity” müssen wir “Multiple” aktivieren, da es sonst nach dem ersten Post (also der ersten CD) nicht mehr möglich ist, weitere Posts in diesem Panel zu erstellen.

Da wir keine weiteren Eingabe- und Änderungsmöglichkeiten mehr wollen, machen wir bei den folgenden Optionen alle Haken weg und speichern dieses Write Panel.
Es erscheint die folgende Ansicht:
Felder hinzufügen
Jetzt erstellen wir die Felder, die wir uns oben ausgedacht haben. Wir beginnen mit dem Feld für den Künstler (“Create a Field”):
Felder erstellen
Das Feld soll (zumindest momentan) noch nicht dupliziert werden können (zu Duplikaten komme ich später), es soll ein Pflichtfeld sein und ein Textfeld sein.

Ähnlich gehen wir nun mit unseren anderen Feldern vor. Bei dem Feld “Bild” müssen wir natürlich auch als Typ “Image” wählen.

Meine Liste sieht jetzt so aus:
Liste
Damit ist dieser Schritt abgeschlossen.

Damit wir unseren nächsten Schritt testen können, erstellen wir nun einen Testeintrag. Nachdem wir unser Panel erstellt haben, ist wie durch ein Wunder links unter “Artikel” ein neues Menü erschienen, das uns erlaubt, eine neue CD einzutragen:

Menü
Wir drücken also auf “New” und legen eine CD an:

Neue CD

Wir sehen, daß das Write-Panel sehr abgespeckt ist und wir nur noch die Felder sehen, die wir vorher angelegt haben. Wenn wir nun auf “Veröffentlichen” klicken, ist unsere erste CD eingetragen.

Wenn wir uns den Eintrag jetzt auf der Seite ansehen, müssen wir zu unserem Entsetzen feststellen, daß da ja gar nichts ist:
Leer
Was bedeutet, JETZT kommen wir zum kniffeligeren Teil. Wir müssen unser Template anpassen, damit es die Spezialfelder, die wir ausgefüllt haben auch anzeigt. Also öffnen wir mal unsere index.php. Dort suchen wir die Stelle an der “the_content” steht. Hier fügen wir vor oder hinter dem Aufruf von the_content folgenden Code ein:

                <?php
                $musikcd= get('kuenstler');
                if($musikcd)
                {
                ?>

<div class="musikcd">
       <table class="cdinfo_table" width="100%" border="0" cellpadding="5">

  <tr>
    <td><span class="label_kuenstler">K&uuml;nstler :</span></td>
    <td><? echo get('kuenstler'); ?></td>
  </tr>
  <tr>
    <td><span class="label_cd">CD:</span></td>
    <td><? echo get('cdname'); ?></td>
  </tr>

  <tr>
    <td colspan="2">
    <span class="label_bild">Cover:</span>
    <?php
    echo get_image('bild');
     ?>
    </td>
  </tr>

   <tr>
    <td><span class="label_typ">Webseite:</span></td>
    <td><a href="<? echo get('website'); ?>">Webseite besuchen</a></td>
  </tr>
</table>

            </div><!--CD-->

    <?php
    }
    ?>

Erklärung:
Mit dem Code

  <?php
   $musikcd= get('kuenstler');
   if($musikcd)
       {
  ?>

ermitteln wir, ob in diesem aktuellen Post unser Spezialfeld “kuenstler” einen Inhalt hat. WENN, dann wird im Folgenden die Tabelle mit den eingetragenen Daten angezeigt. Wenn das Feld “kuenstler” leer ist, können wir (da es ja ein Pflichtfeld ist) davon ausgehen, daß es sich um einen ganz normalen Beitrag handelt, in dem die Tabelle nicht angezeigt werden soll. So können wir die Posts der Kategorie “Lieblingsmusik” auch in unserem HauptLoop anzeigen lassen, ohne daß ab sofort unter jedem Beitrag eine leere Tabelle eingefügt wird.

Unsere Felder rufen wir (auch wenn wir uns entscheiden, sie nicht wie in diesem Fall in einer Tabelle anzuzeigen) mit dem Code

<? echo get('feldname'); ?>

auf.
Bei Bildern verwenden wir :

  echo get_image('bild');

Dann wird die URL des von uns eingefügten Bildes in der Ausgabe von <IMG>- Tags umgeben.

Die Tabelle können wir natürlich nun beliebig mit CSS stylen. Oder auch die Informationen ohne Tabelle in anderer Formatierung ausgeben. Die Möglichkeiten sind berauschend ;-)

DUPLIKATE ANZEIGEN

Noch einen kleinen Nachtrag sollte ich zu diesem Thema machen.

Möglicherweise liegt uns etwas daran, eines unserer Spezialfelder zu duplizieren. Zum Beispiel wenn wir nicht nur das Front- sondern auch das Back-Cover unserer Lieblings-CD eintragen wollen. Oder wenn es mehrere Künstler gibt, die an der CD mitgewirkt haben.

Ich erläutere die Anzeige von Duplikaten am Beispiel des Bildes.

Zuerst müssen wir in den Einstellungen von Flutter das Feld “bild” bearbeiten und duplizierbar machen. (Haken setzen)

Dann sollten wir natürlich unseren ersten Eintrag bearbeiten und ein zweites Bild hinzufügen. Unter dem Upload-Fenster für das Bild gibt es nun einen kleinen Knopf mit Namen “Duplicate”. Wenn wir darauf klicken erhalten wir eine zweite Upload-Maske und können das zweite Bild hinzufügen.

Ebenso ginge es natürlich mit allen anderen Feldern.

Damit aber nun nicht nur das erste, sondern alle Bilder angezeigt werden, müssen wir uns wieder am Code in der index.php zu schaffen machen:

 <?php

     $duplikate_bild = getFieldDuplicates ('bild', '1');

    for($count = 0; $count < $duplikate_bild; $count++)
    {
    echo get_image('bild', $groupIndex=1, $fieldIndex=$count+1);
    echo "<p></p>";
    }

    ?>

Diesen Code geben wir statt dem alten

   echo get_image('bild');

ein.

Hier wird zuerst die Anzahl der Duplikate ermittelt (getFieldDuplicates) und in die Variable $duplikate_bild geschrieben.
Mit Hilfe der Anzahl der Bilder können wir dann eine For-Schleife laufen lassen, die für jedes Bild eine Ausgabe macht.

DAS wars! Viel Spass!

PS: Ich bin kein PHP-Crack und es ist ziemlich sicher, daß es für meinen Ansatz (das mit der For-Schleife etc.) eine wesentlich elegantere Lösung gibt. Sollte jemand hierzu einen Nachtrag haben, immer her damit!

19 Kommentare

  1. funkygog am 4. Februar 2009 um 19:10

    Problematisch ist jedoch die Abhängigkeit die dadurch entsteht.
    Hat man erstmal diverse CDs so eingegeben, kann man nicht mehr auf das Plug-In verzichten, wegen des speziellen Codes.

  2. zartgesotten am 4. Februar 2009 um 19:26

    Hmmm… gutes Argument. Ich hab mir grad mal die Datenbank angesehen und wie es aussieht hast Du Recht. Ich war in der irrigen Annahme, daß hier einfach nur die WordPress-eigenen Spezialfelder schöner und übersichtlicher verarbeitet werden. Leider hast Du recht, ohne das Plugin wird man mit den Daten wohl nicht mehr viel anfangen können.
    Schade das!
    Aber trotzdem finde ich es interessant. Vielleicht kann ja jemand was damit anfangen.
    Danke für den Kommentar!
    Gruß
    Anja

  3. Steffen am 4. Februar 2009 um 20:21

    he he. interessante idee, ein custom write framework.

  4. Chris am 5. Februar 2009 um 09:20

    @funkygog: Das stimmt zwar, aber im Prinzip bist Du ja mit jedem Plugin irgendwie abhängig. Ich hatte ein Plugin für Author Images, das sich nicht mit WP 2.7 verträgt. Da ich keine Zeit habe, es anzupassen, werden die Autoren nicht mehr angezeigt, was für diese Website relativ wichtig war.
    Andererseits ist es auch nicht so richtig verständlich, warum man nicht die WP-Custom Fields verwendet.

  5. mo. am 6. Februar 2009 um 16:42

    @chris: autoren eines artikels plus eine kurzbeschreibung anzeigen, geht wunderbar einfach ohne plugin und mit hilfe ein wenig code.

    dafür habe ich eine kleine anleitung geschrieben:

    http://phlow.net/magazin/netzkultur/technik/33-wordpress-profil-einfuegen-autor-information

    das snippet sieht so aus und bedient sich einerseits an der author-description und lädt ein bild mit der ID-des autoren.

    <a href=”" title=”Website von Autor “><img alt=”Phlow-Autor ” src=”/images/images_user/autor_id_.jpg” />

    Dieser Artikel wurde am von <a title=”Website von ” href=”"></a> geschrieben.

  6. diigo 02/08/2009 (p.m.) | synapsenschnappsen am 8. Februar 2009 um 21:39

    [...] Flutter – Plugin für eigene Post-Vorlagen nutzen » Beitrag » WordPress Magazin [...]

  7. FuNKeR am 12. Februar 2009 um 11:21

    Klingt interessant. Das werde ich mir mal warm halten und testen. Habe ein Projekt am laufen, wo ich das evtl. sehr gut gebrauchen könnte.

  8. Tom am 18. Februar 2009 um 12:54

    Ich habe heute mal die aktuelle Version getestet. Die Idee finde ich klasse – keine Frage. Leider hat das Plugin im Augenblick noch tierisch Macken. Duplikate verschwinden einfach, wenn du die Page/Post editierst. Die Bugliste ist auch lang. ABER… Nicht meckern sondern mithelfen. Mal sehen was daraus wird.

  9. FuNKeR am 19. Februar 2009 um 19:25

    Ich hab auch ziemliche Schwierigkeiten damit, aber ich werd mich schon durchfuchsen.

    Erscheint bei euch eine “Checkbox List” auch total zerlegt?

    Ich finde es auch schade, dass es außer den total hektisch gemachten Videos keine Dokumentation gibt. Das Forum hat auch grade erst 10 Posts und es gibt scheinbar keine Ambitionen, die dort gestellten Fragen auch zu beantworten.

    Insgesamt finde ich das Prinzip aber schon mal sehr gut. Kann ich für mein aktuellstes Projekt ziemlich gut gebrauchen.

  10. Michael am 20. Februar 2009 um 16:42

    Ich teste das Teil auch gerade und habe schon bei der Verwendung im Dashboard ein Problem. Ich habe ein Write Panel für Veranstaltungen angelegt, die Auswahl einer Kategorie soll aber weiterhin erst beim Erstellen einer Veranstaltung stattfinden. In den Settings vom Write Panel, habe ich daher keine Kategorien (keine Häkchen bei Assigned Categories) ausgewählt. Erstellt man nun eine neue Veranstaltung, werden gar keine Kategorien angezeigt. Hake ich die Kategorien schon vorher in den Einstellungen des Write Panels an, sind sie alle vorselektiert…

    Ist das bei euch auch so?

  11. Michael am 23. Februar 2009 um 18:31

    Beim Plugin “more fields”. das übrigens gleich wie Flutter aussieht, funktioniert das mit den Kategorien.

  12. Karl am 20. März 2009 um 15:08

    Danke! Hat mir geholfen letzendlich zu verstehen wie die Flutter Variabeln ausgeschrieben werden.. echo, get.. aah!

  13. Chris am 5. April 2009 um 01:09

    Hey,

    danke schaut gut aus! werds mir gleich mal installieren

  14. tschramm am 8. April 2009 um 13:50

    … es sind customer fields, nur etwas schoener verpackt. mann oder frau kann via ID, $key, true) ?> darauf zugreifen.

    so long

  15. Carsten am 8. Juni 2009 um 23:54

    Hi – vielen Dank für den Tipp! Ich habe das Plugin ebenfalls getestet und ich finde es genial.

    Habe eine deutsche Sprachdatei erstellt und ein “kleines” Erklärbärvideo erstellt: http://great-solution.de/2009/news/flutter-mehr-wordpress-cms/

  16. Mark am 22. Juli 2009 um 17:51

    Wow. Echt coole Sache, sehr gut erklärt und sicher gut zu gebrauchen. Danke!

  17. Felix am 21. August 2009 um 21:24

    Klasse! Ich werde das PlugIn gleich mal testen…

    Hast Du bereits Erfahrungen mit der Date-Funktion des PlugIns?

  18. andreas am 11. März 2010 um 12:52

    Weiss jemand warum ich Gruppen duplizieren kann aber keine Felder?
    Die betreffenden Felder sind auch in den Write-Panels-Einstellungen auf “can be duplicated” gestellt. Im Post-Fenster passiert jedoch nich wenn ich auf duplicate klicke.
    Bei Gruppen geht’s…

  19. Thomas Langel am 11. März 2010 um 18:35

    Hm. Ich habe das MagicFields Plugin im Einsatz – eine Weiterentwicklung basierend auf Flutter und dort habe ich den Fehler, dass ich keine Felder dublizieren kann, wenn der Feldname ein “-” als Zeichen enthält, weil das das Trennzeichen von dem Plugin ist.

    Eventuell ist das bei flutter auch das Problem?

Kommentar schreiben




Newsletter & Updates

Trag' Dich ein, um die neuesten Artikel per E-Mail zu erhalten!

Die letzten Kommentare

  • dirk: Das ganze ist extremst praktisch muss ich sagen! Die Seiten die man damit aufbaut sind besser geordnet und es...
  • Chris: Hmmm… also ich hatte bisher immer den entgegengesetzten Effekt. Immer wenn ich Themes gesucht habe, fand...
  • Obertauern: Vielen Dank für diesen wirklich hilfreichen Artikel, ich habe schon oft versucht xammp zu installieren,...
  • Rhein Neckar Kreis: Ich sage mal Danke an die Wordprss Macher, je mehr “kleine” es nutzen und die Plugins...
  • Marcel: Es gibt dafür ein Plugin, nennt sich Page Link Manager. Einfacher gehts nun wirklich nicht mehr.

    Feedleser

    • Gesamt: 1150 (Letzten 31 Tage)
    • Maximum: 342 (6. March 2010)
    • Durchschnitt: 37