Weitere Informationen zum Relaunch von Rostock.de
Weitere Informationen zum Relaunch von Rostock.de Weiter zu rostock.de

CP::Forms

Individuelle Datenbanken und Verzeichnisse (z.B. Download-Archive, Jobverzeichnisse) können einfach mit CP::Forms erstellt werden. Folgen Sie dem Wizard und Sie erhalten ein fertiges Modul mit allen Konfigurations-Dateien für die Formulare.

Weitere Seiten: 1 2

Allgemeines zu diesem Modul

Mit CP::Forms steht in Contentpapst ein sehr leistungsstarkes Modul zur Erstellung von Formularen und neuen Modulen zur Verfügung. Alle Aktionen zum Hinzufügen / Bearbeiten dieser Module werden dabei direkt über die grafische Oberfläche des Systems durchgeführt. Die mit CP::Forms erstellbaren Module sind äußerst vielfältig. Dies können z.B. folgende sein:

  • Markt- und Meinungsforschung
  • Support-, Kontakt- und Bugtracking-Formulare
  • Jobdatenbanken, Pressematerialien
  • Immobilien, Link-Archive, Branchenbücher
  • uvm.
Die einzelnen Module werden dabei in CP::Forms grundsätzlich in sogenannten "Collections" gebündelt. Diese "Collections" sind thematische Sammlungen von Modulen (bspw. für einen Veranstaltungskalender Module für die Kategorien und die Einträge) und ermöglichen eine bessere Übersicht.

Über "Modul hinzufügen" bzw. "Modul aus Vorlage erstellen" wird in CP::Forms ein neues Modul angelegt. Bei der letzteren Möglichkeit wird ein bereits bestehendes CP::Forms-Modul als Grundlage für die Erstellung eines neuen Modules verwendet.

Im Normalfall wird jedoch ein komplett neues Modul erstellt. Für dieses Modul müssen zuerst grundlegende Angaben gemacht werden, die Titel und Beschreibung sowie den internen Modul-Namen umfassen. Weiterhin muss festgelegt werden, um welche Art von Modul es sich handelt (ein Modul zur Verwaltung von Einträgen oder zum Versand von Emails [z.B. in Form eines Kontaktformulares]). Entsprechend dieser Festlegung werden weitere Angaben erforderlich.

Im nächsten Schritt der Modulerstellung werden die für das Modul benötigten Felder zusammengestellt. Schrittweise werden die Feldtypen gewählt und die jeweils angezeigten Eingabefelder gefüllt, u.a. mit Angaben zum internen Feldnamen und zur Bezeichnung, der Feldlänge, Sichtbarkeit usw.

Sobald dieser Schritt abgeschlossen wurde, legt CP::Forms im Hintergrund alle Dateien des neuen Modules in einem neuen Ordner unter "/modules/[ORDNER-NAME]/" an und es kann sofort mit dem Einpflegen der Inhalte begonnen werden. Die Darstellung der Inhalte eines solchen Modules erfolgt dabei stets über die Container. Dabei werden die standardmäßig verfügbaren Container in weiteren genauer beschrieben.

Vorab noch ein Hinweis: Wenn auch im öffentlichen Bereich Formulare zum Hinzufügen neuer Einträge angezeigt werden sollen, dann muss im Quelltext der Seite die CSS-Datei für CP::Forms eingebunden werden. Diese sorgt für eine ordnungsgemäße Anzeige der einzelnen Formularfelder. Kopieren Sie dazu die Datei "cpforms.css" aus dem Ordner "/themes/backend/" in Ihren eigenen Vorlagenordner und binden Sie die CSS-Datei über folgende Zeile im Kopfbereich der Vorlage "main.htm" ein:

<link rel="stylesheet" href="/{cp:configuration:main:directory}{cp:path}cpforms.css" type="text/css" media="screen, print" />

Wichtige URL's für dieses Modul
admin.php?file=forms Aufruf über den Administrationsbereich

Kommentieren Kommentieren (0 Kommentare)

Besonderheiten bei der Feld- und Modulbenennung

Wenn Sie ein neues Modul über CP::Forms erstellen, müssen Sie bei der Bezeichnung der Datenfelder auf Ihre Eingaben achten. Erlaubt sind hier nur alphanumerische Zeichen ("A-Z", "a-z", "0-9"), wobei am Anfang eines Feldnamens keine Zahl stehen darf. Weiterhin sollten nur Kleinbuchstaben verwendet werden. Contentpapst nimmt selbstständig im Hintergrund Konvertierungen vor, jedoch sollten Sie auch selbst auf diese Besonderheit achten, damit das Modul korrekt erstellt werden kann. Die gleiche Einschränkung besteht bei der Wahl des Ordner-Namens für ein Modul.

Kommentieren Kommentieren (0 Kommentare)

Container: Formular zum Eintragen von Inhalten

Natürlich dient CP::Forms nicht nur der bloßen Eingabe von Inhalten im Administrationsbereich und der Ausgabe dieser Inhalte im öffentlichen Bereich. Vielmehr lassen sich auch Interaktionen zwischen beiden Bereichen herstellen, u.a. durch ein Formular über welches Besucher neue Einträge hinzufügen oder (wenn Einträge nicht in der Datenbank gespeichert werden) Emails versenden können.

Ermöglicht wird diese Funktionalität über einen Container mit dem Typ "form". Dieser generiert automatisch das Formular samt aller notwendigen client- und serverseitigen Überprüfungen.:

{cp:container module="[MODULNAME]" type="form" [return="status.php"]}

Handelt es sich um ein Modul zur Verwaltung von Einträgen in der Datenbank, so wird mit dem Absenden des Formulares automatisch ein neuer Eintrag in der Datenbank erzeugt. Dieser muss anschließend durch berechtigte Benutzer im Administrationsbereich freigegeben werden. Handelt es sich hingegen um ein Formular zum Versand von Emails (z.B. ein Kontaktformular), so wird der Inhalt des Formulares per Email versandt.

Neben den erforderlichen Parametern "module" und "type" gibt es für den "form"-Container den optionalen Parameter "return". Über diesen kann eine URL angegeben werden, auf die nach dem Abschicken gewechselt werden soll. Alternativ kann der Parameter "return_article" mit der ID eines Artikels genutzt werden. Ohne Angabe dieser Parameter wird auf die ursprüngliche Seite zurückgekehrt. Beachten Sie dabei, dass in der URL das Zeichen "=" stets durch "&#61;" zu ersetzen ist, damit der Container korrekt verarbeitet werden kann.

Wenn ein derartiges Formular mit CP::Forms-Inhalten oder anderen Inhalten aus Contentpapst verknüpft werden soll, dann kann dafür der modulspezifische Parameter "field_[FELDNAME]" beim Containeraufruf genutzt werden. Ein Beispiel für den Einsatz dieses Features ist die Übergabe eines Produktnamens im Containeraufruf an ein per CP::Forms generiertes Formular, über welches der Kunde Kontakt mit dem Hersteller aufnehmen kann. Damit der Kunde den Produktnamen des gerade aufgerufenen Produktes nicht mehr manuell eingeben muss, kann dieser direkt beim Containeraufruf mit übergeben werden:

{cp:container module="forms_kontaktformular" type="form" field_title="{cp:forms:values:title}"}

Der obenstehende Containeraufruf könnte z.B. in der Detailansicht eines Produktes integriert werden, dessen Daten über CP::Forms gepflegt werden. Wenn dort ein Feld mit dem Namen "title" vorhanden ist, dann wird über "{cp:forms:values:title}" der Titel des angezeigten Produktes an den Container übergeben. D.h. dem Container "form" des CP::Forms-Modules "forms_kontaktformular" wird dieser Produktname direkt mit übermittelt, so dass dieser im Formular weiterverarbeitet werden kann. Statt des Tags "{cp:forms:values:title}" kann aber natürlich auch jeder andere {cp:tag} bzw. auch ein ganz normaler Text übergeben werden.

Kommentieren Kommentieren (0 Kommentare)

Container: Auflistungen auf der Webseite anzeigen

Eine Auflistung von einzelnen Einträgen eines mit CP::Forms erstellten Modules wird wie gewohnt über einen Container sowie die {cp:tags} erstellt. Dabei kann über die Parameter des Containers frei angegeben werden, wie die angezeigten Einträge formatiert (Parameter "template") und geordnet sein sollen (Parameter "order" und "dir" ["asc"/"desc"] für die Richtung), wieviele Einträge max. ausgegeben werden sollen (Parameter "limit") und welche Seite angezeigt wird (Parameter "page").

Dieser Container gibt z.B. die ersten 5 Einträge des Modules "jobs" aus:

{cp:container module="jobs" type="list" page="1" limit="5" order="date_added" dir="asc" template="modules/jobs/templates/job_vorlage.html"}

Die Einträge sind im Beispiel nach dem Datum der Eintragung geordnet (aufsteigend). Zur Anzeige der Einträge wird die Vorlage "job_vorlage.html" im Unterordner "templates" des Modules verwendet.

In der über den Parameter "template" angegebenen Vorlage können jeweils die in der "{cp:tags}-Erklärung" des Modules genannten {cp:tags} verwendet werden (diese "{cp:tags}-Erklärung" kann direkt aus der Übersichtsseite des Modules heraus aufgerufen werden). Wenn keine Vorlage angegeben wird, so wird die Vorlage "list_public.html" im Unterordner "templates" des Modules standardmäßig genutzt.

Über die Parameter "select_field" und "select_value" ist optional eine Filterung der Einträge möglich. Für den Parameter "select_field" wird der Feldname angegeben, für "search_value" der gewünschte Wert. Wenn in mehreren Feldern gesucht werden soll, dann sind die Feldnamen / Werte per Komma zu trennen. Beziehen sich alle Werte auf dasselbe Feld, dann genügt es, wenn dieses Feld einmalig angegeben wird.

Standardmäßig erfolgt eine nachgeschaltete Filterung der Einträge, d.h. nur Einträge die alle Kriterien erfüllen, werden ausgegeben. Möchten Sie dagegen mehrere Abfragen miteinander kombinieren, dann verwenden Sie zusätzlich den Parameter "select_type" mit dem Wert "combine". Eine Ähnlichkeitssuche ist über "%" bei einem Wert oder mehreren Werten möglich:

{cp:container module="events" type="list" select_field="section" select_value="2"}
// Einschränkung der Auflistung auf die Kategorie mit der ID "2"

{cp:container module="events" type="list" select_field="location_city" select_value="Berl%"}
// Einschränkung auf Veranstaltungsorte mit dem Stamm "Berl" (also z.B. "Berlin", "Berlingen"...)

Folgende Angaben sind zulässig / erforderlich (unterstrichen):

Parameter für diesen Container
date_from Einträge ab ... anzeigen (Zeitangabe im Timestamp-Format erforderlich)
date_to Einträge bis ... anzeigen (Zeitangabe im Timestamp-Format erforderlich)
dir Aufsteigend ("asc") oder absteigend ("desc") ordnen
limit Anzahl der insgesamt angezeigten Einträge
max_age Max. Alter der anzuzeigenden Einträge in Sekunden
order Einträge ordnen (siehe unten)
page Angezeigte Seite
select_field Feldname für die Filterung der Einträge
select_type Einträge aus den Abfragen kombinieren ("combine") oder mehrmals filtern ("filter" bzw. ohne)
select_value Wert für die Filterung der Einträge
template Pfad zu einer Vorlage (andernfalls wird Standardvorlage genutzt)
type Typ des Containers (hier immer "list")

Werte für den Parameter "order" (Ordnung)
number Nach Eintragungsreihenfolge ordnen
hits Nach Anzahl der Aufrufe ordnen
version Nach Versionsnummer ordnen
date_added Nach Datum der Eintragung ordnen
date_lastmodified Nach Datum der letzten Änderung ordnen
random Zufällig ordnen
start_time Laufzeit Start
stop_time Laufzeit Stop
status Status
... Zusätzlich kann für "order" jeder Feldname des Modules angegeben werden.

Kommentieren Kommentieren (0 Kommentare)

Container: Navigation zum Umblättern erzeugen

Der Container zur Auflistung von Einträgen eines Modules bietet u.a. den Parameter "page" für die Auswahl einer bestimmten Seite an. Damit kann die Auflistung der Einträge auf mehrere Seiten aufgeteilt werden, indem die Nummer der gewünschten Seite als Parameter in der URL übergeben wird (z.B. "index.php?id=__ID__&showpage=4").

Damit dann auch die Einträge dieser Seite angezeigt werden, muss der Parameter "page" im Aufruf des Containers mit "... page="{cp:variable:showpage}" ..." weitergegeben werden.

Doch wie kann nun zwischen den verfügbaren Seiten umgeschalten werden, ohne dass per Hand oder per fester Verlinkung die unterschiedlichen URLs aufgerufen werden müssen? Für dieses Problem gibt es den Container "pages". Mittels dieses Containers kann für ein Modul automatisch eine Navigation generiert werden (à la "1 2 3 4" usw.):

{cp:container module="__MODULNAME__" type="pages" page="{cp:variable:showpage}" varname="showpage" per_page="10"}

Zwingend anzugeben sind für diesen Container die Parameter "module" (der Name des Modules, für den die Navigation erstellt wird), "type" (immer "pages") sowie die Parameter "page", "varname" und "per_page".

Als Parameter "page" wird - wie beim ersten Container auch - der Wert aus der URL übergeben. Da der Name dieses Parameters frei gewählt werden kann, wird dem Container über den Parameter "varname" mitgeteilt, welcher Parameter in den URLs zum Aufbau der Navigation zu verwenden ist. Der Parameter "per_page" schließlich gibt an, wieviele Einträge pro Seite angezeigt werden. Dieser muss daher den gleichen Wert aufweisen wie der Parameter "limit" beim ersten Container, damit die Anzahl der berechneten Seiten mit der Auflistung der Einträge übereinstimmt. Über den Parameter "max_pages" können Sie festlegen, wieviele Seiten maximal vor/nach der aktuellen Seite in der Navigation sichtbar sein sollen (standardmäßig sind dies 15 Seiten).

Wenn Sie anstelle des automatisch generierten URL-Formates eigene URLs nutzen möchten, dann können Sie den Parameter "url" verwenden. Geben Sie dort die gewünschte URL ein, z.B. "/galerie/firmenausflug-2011/[NUMBER].html". Diese sollte "[NUMBER]" enthalten, welches dann durch die jeweilige Seitenzahl ersetzt wird. Damit ein Aufruf solcher URLs im System möglich ist, müssen Sie anschließend unter "Einstellungen > Suchmaschinenfreundliche URL's" noch eine eigene RewriteRule zur Umwandlung dieser URL hinterlegen.

Eine Auflistung von Einträgen eines Modules samt Navigation könnte also z.B. den folgenden Aufbau aufweisen:

{cp:container module="veranstaltungen" type="list" order="date_added" dir="desc" limit="5" page="{cp:variable:showpage}"}
{cp:container module="veranstaltungen" type="pages" page="{cp:variable:showpage}" varname="showpage" per_page="5"}


Kommentieren Kommentieren (0 Kommentare)

Weitere Seiten: 1 2

<< zurück zur Startseite der Dokumentation

Hier finden Sie die eBusiness-/eCommerce-Spezialisten von sandoba.de:
https://www.sandoba.de/dokumentation/kategorien/cpforms-49/