Stellen Sie hier anderen Ihre benutzerdefinierten Tags zur Verfügung

Contents

Benutzerdefinierte Tags - Kurzversion

Benutzerdefinierte Tags stellen eine einfache Möglichkeit dar, PHP-Code in Ihre Seite einzufügen. Ein benutzerdefinierter Tag wird über das Menü 'Erweiterungen -> Benutzerdefinierter Tag' erstellt, indem man den Namen für den Tag festlegt und anschließend den PHP-Code einfügt. "<?php" und "?>" kann entfernt werden, da es nicht benötigt wird. Der benutzerdefinierte Tag kann dann mit {Name_des_Tags} aufgerufen werden.

Die Standard-Installation bringt bereits zwei benutzerdefinierte Tags mit:

{user_agent} - damit werden verschiedene Daten des Besuchers (Browser, Betriebsstem usw.) einer Webseite ermittelt und angezeigt

{custom_copyright} - damit wird das Jahr im Copyright automatisch auf das aktuelle Jahr gesetzt (ausgehend vom Jahr 2004)

Parameter für Tags

An den Tag können natürlich auch Parameter übergeben werden. Ein Beispiel:

{image_link src='igel'}

Der PHP-Code dazu lautet:

echo '<a href="' . $params['src'] . '.jpg" target="_blank">';
echo '<img src="t_' . $params['src'] . '.jpg"></a>';


Benutzerdefinierte Tags - Langversion

Wie wird ein benutzerdefinierter Tag erstellt?

Wie die meisten Sachen bei CMS made simple ist das Hinzufügen eines neuen benutzerdefinierten Tags einfach, allerdings nicht ganz so einfach wie ein Tag Urlaub. Befolgen Sie die folgenden Schritte, um Ihren eigenen benuzterdefinierten Tag hinzuzufügen:

  1. Der Editor für benutzerdefinierte Tags ist in der Administration zu finden. Daher müssen Sie sich dort als Administrator oder Benutzer mit den entsprechenden Berechtigungen anmelden.
  2. Gehen Sie jetzt in das Listenfeld-Menü 'Erweiterungen -> Benutzerdefinierte Tags'.
  3. Am unteren Ende der Seite können Sie jetzt auf den Link 'Einen benutzerdefinierten Tag hinzufügen' klicken.
  4. Im Textfeld 'Name' geben Sie den Namen des Tags ein. Er darf nur Buchstaben, Zahlen und Unterstriche enthalten. Zum Einfügen des Tags in eine Seite oder Template müssen Sie dann diesen Namen müssen Sie dann in runden Klammern {} eingeben. Er sollte die Funktion des Tags beschreiben, allerdings nicht all zu lang sein.
  5. Im Textfeld 'Code' geben Sie den PHP-Code ein, der bei Aufruf der Seite ausgeführt werden soll (weitere Informationen dazu im nächsten Abschnitt)
  6. Zum Abschluss klicken Sie auf 'Absenden'.

Ihr erster benutzerdefinierter Tag

Anstatt hier in die Details zum Thema Plugins und PHP abzuschweifen, werden soll anhand eines Beispiels erläutert werden, wie Sie beginnen können. Entsprechend der gängigen Praxis in der Welt der Programmiersprachen werden wir uns als erstes an einem "Hallo Welt"-Script versuchen.

Um ein neues Plugin zu erstellen, folgen Sie den bereits oben genannten Schritten. Der 'Name' des Plugins soll "hallowelt" (ohne Anführungszeichen) sein. Im Textfeld 'Code' geben Sie folgendes ein:

echo 'Hallo Welt!';

Klicken Sie dann auf 'Absenden'. Um nun den Tag zu testen, erstellen Sie eine neue Seite vom Typ 'Content' (siehe Neuen Inhalt hinzufügen), geben dort als Inhalt "{hallowelt}" (ohne Anführungszeichen) ein und klicken dann auf 'Vorschau'. Anstatt der Anzeige von {hallowelt} sollte jetzt "Hallo Welt!" ausgegeben werden.

Der echo-Befehl gibt alles aus, was ihm in Anführungszeichen übergeben wird. Wir können ihn also auch verwenden, um HTML, DHTML oder sogar Javascript-Objekte hinzufügen. Um das gerade erstellte Plugin zu bearbeiten, gehen Sie in der Zeile des Plugins auf das Icon 'Bearbeiten'. Probieren Sie den folgenden Code:

 echo '<h3>Hallo Welt!</h3>';

Testen Sie den Tag wie bereits zuvor beschrieben. Es sollte dann etwas in der folgenden Art ausgegeben werden:

Hallo Welt!

Sie werden jetzt sagen "Das kann ich doch auch mit einem globalen Inhaltsblock!". Sie haben recht. Aber benutzerdefinierte Tags sind insbesondere dann nützlich, wenn Sie Parameter übergeben möchten. Mit Parametern können Sie Werte für den Tag definieren. Nehmen wir mal an, Sie möchten einem Besucher Ihrer Webseite namens Klaus Hallo sagen. Ändern Sie Code wie folgt:

 echo '<h3>Hallo ' . $params['name'] . '!</h3>';

Dies fügt dem benutzerdefinierten Tag den Parameter "name" hinzu. Der genaue Inhalt wird dem Tag erst dann übergeben, wenn er auf einer Seite aufgerufen wird. Testen Sie den Tag wie bereits zuvor, aber rufen Sie dieses Mal den Tag anstatt mit "{hallowelt}" mit dem Parameter "{hallowelt name='Klaus'}" auf. Damit wird der Parameter "name" definiert. Nun sollte dies ausgegeben werden:

Hallo Klaus!

Das ist nur ein einfaches Beispiel, um Ihnen zu zeigen, wofür Sie mit dem echo-Befehl und Parameter einsetzen können, wenn Sie nur bereit sind, ein kleines wenig PHP lernen ...

Die Übergabe des Inhalts einer Seite als Parameter

Sie können über einen benutzerdefinierten Tag auf den Inhalt einer Seite zugreifen, wenn Sie diesen als Parameter übergeben. Geben Sie folgendes in Ihrem Template ein:

 {content assign=seiteninhalt}
 {Inhaltsverzeichnis derseiteninhalt="$seiteninhalt"}

Erstellen Sie jetzt einen benutzerdefinierten Tag mit dem Namen "Inhaltsverzeichnis":

 echo $params['thepagecontent']; // Zeigt den Seiteninhalt an.

Dieses Beispiel kann dafür verwendet werden, um automatisch ein Inhaltsverzeichnis zu erstellen.

Wie ermittle ich die URL einer Seite anhand dessen Content-ID?

Der folgende Code weist die Content-ID der aktuellen Seite einer Variable mit dem Namen $page_content_id zu:

global $gCms;
$hm =& $gCms->GetHierarchyManager();
$curnode =& $hm->getNodeById($gCms->variables['content_id']);
$curcontent =& $curnode->GetContent();
echo 'URL dieser Seite: ' . $curcontent->GetURL();


Hinweis: Benutzerdefinierte Tags werden NICHT von Smarty verarbeitet. Das heisst, es ist NICHT möglich, ein Modul oder einen Tag etwa so

echo '{cms_module module="Banners" category="testklub_A" mode="sequential"}';

innerhalb eines benutzerdefinierten Tag aufzurufen.
This page in: English - Deutsch - Español - Français - Italiano - Lietuvių - Nederlands - Norsk - Polski - Русский - Svenska - Tiếng Việt - عربي - 日本語 简体中文

User Handbook/Admin Panel/Extensions/User Defined Tags/de

From CMSMS

Arvixe - A CMSMS Partner