Morepagedata_XH 1.2.2

für CMSimple_XH
ab XH 1.5.3

Morepagedata nutzt die Pagedata um zusätzliche Daten für jede Seite zu speichern, mit denen man Design-Elemente oder anders steuern kann, wie:

Bei Designänderungen muss allerdings das Template entsprechend vorbereitet werden.

Hinweis: Vor dem Zuweisen von Variablennamen lohnt es sich, die Pagedata über die CMSimple_XH-Standardfunktion zu bereinigen.


Neu in Version 1.2

Bereit für PHP 7 und XH 1.7.

Neu in Version 1.1

Kleine Fehlerberichtigung und verbessertes Backend-Layout. Die Diashow-Variable kann (zukünftige) dafür vorbereitete Plugins ansteuern. Die eingebaute Diashow kann ausschaltet werden. Für die eingebaute Diashow kann man eine Default-Bildserie einstellen, die dann auf allen Seiten erscheint, auf denen keine eigenen Bildfolge festgelegt wurde. Website-Besuchern ohne Javescript wird jetzt nur das erste Bild einer Diashow gezeigt.

Neu in 1.0

Textarea, slide_show_effect und html_file gibt es nicht mehr. Falls Sie diese Funktionen genutzt haben, sollten Sie nicht auf die neue Version upgraden. Version 1.0 ist nur die bereinigte Ausgabe der Vorgängerversion 1 beta 4. Neu: Das input_field ist jetzt selbstwachsend.

Update von 1.1, 1.0, 1 beta 3 / beta 4

Installieren Sie alles über das vorhandene Plugin. Die wenigen Einstellungen in der config.php müssen Sie neu eingeben. Ihre alten Daten bleiben erhalten, weil der Download keine Datendatei beinhaltet.

Folgende Dateien/Ordner der Beta-Versionen werden nicht mehr genutzt und können gelöscht werden:

  • Datei: plugins/morepagedata/texter.php
  • Ordner: plugins/morepagedata/jquery
  • Ordner: plugins/morepagedata/jscolor
  • Ordner: plugins/morepagedata/test

Gehen sie nach dem Update zum Plugin Backend und klicken Sie auf "speichern", um die neue Einstellung "br" zu initialisieren. "br" (für break) erzeugt eine Leerzeile nach einer Variablen, das war in den Vorversionen voreingestellt. Wenn Sie also den Look der Vorversion wieder haben möchten, müssen sie "br" nach jeder Variable anklicken.

Update von 1 beta 2

Wie oben, anschließend ins Plugin Backend gehen und dort findet man, dass man die alten Werte mit Klick "importieren" kann.

Eventuell muss im Template etwas geändert werden, weil der Color Picker jetzt Werte mit vorausgehendem '#' erzeugt.

Update von Alpha Versionen

Die config2.php im Plugin Config-Ordner mit einem Editor öffnen und jedes "," zu ";" ändern. Dann wie oben verfahren. Eventuell müssen Pfade im Template geändert werden, weil diese jetzt im Grundverzeichnis der Site beginnen. Pfade für Template Bilder beginnen im Template Ordner.


Morepagedata-Plugin entfernen

Zuerst alle Variablen löschen, da sie sonst im System bleiben.


Templates für Morepagedata einrichten

Allgemeines Vorgehen

(1) Zuerst überlegen welche Aspekte des Templates einstellbar werden sollen.
(2) Dann das Template entsprechend mit neuen PHP-Variablen ergänzen.

Wenn Sie CSS-Werte mit Morepagedata ändern wollen, ist es praktisch, dies im HTML <head>-Bereich des Templates zu machen.

Beispiel: Sie möchten 3 neue Variables nutzen um das Kopfbild (im Beispiel $headimage) und die Hintergrundfarbe (im Beispiel $bgcolor) zu variieren, und and auf manchen Seiten brauchen Sie einen breiteren Inhaltsbereich (im Beispiel $width). Kann könnten Sie folgenden CSS-Code genau vor </head>, dem Ende des Head-Bereichs, einfügen:
<style type="text/css"><?php // hier wird die CSS-Definition aufgerufen, und PHP wird sie erzeugen if(isset($headimage)) { // d.h.: wenn $headimage einen Wert hat, tue folgendes echo '#head {background-image:url(' . $pth['folder']['template'] . $plugin_cf['morepagedata']['path_template_images'] . $headimage . ');}'; } if(isset($bgcolor)) { echo '#body {background-color:'.$bgcolor.';}'; } if(isset($width)) { // $width ist in diesem Beispiel vom Typ "checkbox", d.h. entweder an oder aus echo '#content {width:650px;}'; } ?></style>
Als Pfad zu den Templatehintergrundbildern ist im Template immer anzugeben
$pth['folder']['template'] . $plugin_cf['morepagedata']['path_template_images']

Was man nicht mit CSS erreichen kann, z.B. das Ändern eines Bildes oder die Ausgabe einer Diashow, wird normalerweise in den body-Teil des Templates geschrieben, z.B. für ein Bild: <?php if(isset($myphoto)) { echo '<img src="' . $plugin_cf['morepagedata']['path_image_folder'] . $myphoto . '">';} ?>
(Der Pfad wird in der Plugin-Konfiguration angegeben, beginnend von der Basis URL der Website)
Oder für die Diashow: <?php if(isset($slideshow) && !$edit) { echo '<div class="slideshow">'.slideShowImages($slideshow).'</div>';} ?>
(Die Diashow ist nicht sichtbar im Bearbeitungsmodus in diesem Beispiel wegen der Angabe && !$edit im Code.)

(3) Anschließend diese neuen Variablen in Morepagedata eintragen. Morepagedata prüft, ob sie schon vom System genutzt werden. Wenn ja, geben Sie Ihrer Variable einen anderen Namen und ändern Sie das auch im Template.

Nach Eintrag der Variabeln im Plugin-Backend, wird diese zu den Pagedata hinzugefügt und ist nicht mehr veränderbar, man kann sie nur noch löschen, was sie auch in den Pagedata löscht.


Verfügbare Feld-Typen

Checkbox

Kann irgendetwas an- oder ausschalten, wie in obigem Beispiel die Breite des Inhaltsbereichs. Ein anderes Beipiel, um das Einlog-Feld von Memberpages zu zeigen oder nicht zu zeigen: <?php if(isset($memberslogin)) {echo memberslogin();} ?>


Color picker

nutzt Jan Odvárko's jscolor. Color Picker erzeugt Farbcode der mit # anfängt. Statt Farbcode kann man auch englische Farbnamen (z.B.: white, red, blue, green, black) eingeben.


Image folder

zeigt eine Auswahlliste mit allen Bildern aus dem Ordner, der in der Pluginkonfiguration angegeben ist.


Input field

erzeugt einen selbstwachsenden Eingabebereich für Fälle, in denen die anderen Feldtypen zu begrenzt sind.


Option list

Bei Auswahl dieses Typs im Pluginbackend erscheint eine neue Zeile in der man die Optionswerte einträgt, entweder so
option 1||option 2||option 3 oder so
option 1|angezeigter Text 1|option 2|angezeigter Text 2|option 3|angezeigter Text 3 etc.
Kein | am Ende!


Plugin call

Hier kann man über eine Auswahlliste Plugin-Aufrufe voreinstellen. Einen Pluginaufruf ohne {{{PLUGIN: and following ;}}} eingeben, z.B. einfach nur quoteoftheday(). Dahinter ein | einfügen sowie den Text, den der Nutzer in der Auswahlliste zu sehen bekommt (z.B. quoteoftheday()|Zitat des Tages).
Hinter einem weiteren | kann man einen weiteren Pluginaufruf gefolgt von | und Text schreiben.
Diese vorgefertigten Pluginaufrufe sind praktisch für unerfahrene Nutzer oder für komplizierte Aufrufe. Die so aufgerufenen Plugins erscheinen immer am Seitenende.


Select hiddenpages

erzeugt eine Auswahlliste mit allen versteckten Seiten für die Auswahl des Inhalts einer Newsbox. Der Code mit der Beispielvariablen $news sähe folgendermaßen im Template aus:
<?php if (isset($news)){echo '<div>'.newsbox($news).'</div>';} else{echo '<div>'.newsbox('News').'</div>';} ?>

Ein anderes Beispiel für Newsboxen innerhalb eines doppelten divs:
<?php if (isset($news)):?> <div class="news"> <div class="newsin"> <?php echo newsbox($news);?> <div style="clear: both;"></div> </div> </div> <?php else:?> <div class="news"> <div class="newsin"> <?php echo newsbox('News');?> <div style="clear: both;"></div> </div> </div> <?php endif;?>


Template image

erzeugt eine Auswahlliste mit allen Bildern des Template Ordners. Den Pfad in der Pluginkonfiguration eingeben.


Slide show

nutzt das jQuery Plugin cycle.lite von malsup. Der Fade-Effect erscheint, wenn mindestens 2 Bilder ausgewählt wurden. Dieses jQuery Plugin wird nur geladen, wenn die Diashow auch tatsächlich genutzt wird. Wenn Sie die Diashow nicht wollen, wird das Plugin nicht geladen.

Die Diashow ins Template einbauen

Den Pfad zu den Bildern in der Pluginkonfiguration einstellen. Angenommen Ihre Variable lautet $slideshow etwa folgenden Code an die gewünschte Stelle im Template-Body einfügen:
<?php if(isset($slideshow)) { echo '<div class="slideshow">'.slideShowImages($slideshow).'</div>';} ?>

Um die Bilder zu zentrieren oder rechtsbündig darstellen zu können (voreingestellt ist linksbündig), stellt Morepagedata alle Bilder in ein <div>. Morepagedata erzeugt folgenden Code: <div class="slideshow"> <div><img src="./images/image1.jpg" ></div> <div><img src="./images/image2.jpg" ></div> </div>

Um die Bilder zu zentrieren oder rechtsbündig darzustellen benötigt man folgende CSS-Anweisungen: /* ============= Slideshow ============= */ .slideshow { float:right; width:350px; height:300px; margin-left:10px; } .slideshow div { width:350px; height:300px; overflow: hidden; } .slideshow div img { margin: 0 0 0 auto; /* this line for right aligned images */ margin: auto; /* or this line for centered images */ display:block; }


Hilfetext als Tooltip hinzufügen

Bei der Variableneingabe im Pluginbackend kann jeweils eine selbstwachsende Zeile für den Hilfetext sichtbar gemacht werden. Für den Color Picker und die Diashow gibt es automatisch einen Hilfstext und man braucht keinen weiteren Hilfstext mehr einzugeben.


Eine morepagedata.csv für ein Template schreiben

Falls Sie Ihr Template an andere weitergeben wollen, möchten Sie vielleicht eine morepagedata.csv beilegen, damit andere leicht Morepagedata mit dem Template nutzen können. Erzeugen Sie dazu eine Datei namens morepagedata.csv im Grundverzeichnis des Templates und fügen Sie mit einem Editor Ihre Variablen Zeile für Zeile folgendermaßen ein:

var=Variablenname;display=Anzeige in Pagedataansicht;type=Funktionstyp der Variablen [;options=für die Auswahllliste die Optionen folgendermaßen einfügen: option1|text1|option2|text2|option3|text3 oder option1||option2||option3 ][;help=für Hilfetext-Tooltip hier den Text einfügen]

Code zwischen [] kann entfallen. Die Reihenfolge für var=, display=, usw. ist egal.