So ermöglichen Sie die Pflege von Werten und übergeben diese an ein Formular

Dieser Artikel beschreibt am Beispiel einer Kategoriendatei, wie Sie einen Wert innerhalb der Pflege auswählbar machen und über einen Link an ein Formular übergeben.

Über Standardmittel können Sie es recht einfach umsetzen, einem Redakteur die Pflege von Werten zu ermöglichen, die dann weiterverarbeitet werden können. Das folgende Beispiel setzt auf der Kategorienauswahl auf und ermöglicht es so einem Pflegebenutzer, einer Seite innerhalb eines Elementes/Objektes eine Kategorie zuzuweisen, welche dann einem Formular übergeben wird.
Das Beispiel verwendet hierzu einfach das Newsobjekt (Seite vom Typ Aktuelles) und die Seite-empfehlen-Funktion.

Das im Artikel angeführte Beispiel zu "Seite empfehlen" soll lediglich die Pflege von Werten und Übergabe an ein Formular näherbringen.
Bedenken Sie bitte, daß diese Funktion (oft auch "Tell-A-Friend" Funktion genannt) schon seit einiger Zeit aus datenschutzrechtlichen Gründen nicht mehr genutzt werden sollte (siehe auch Entscheidungen vom Bundesgerichtshof hierzu). Aus diesem Grund ist auch zu Weblication® CMS das "Seite empfehlen" Weblic® nicht mehr verfügbar.

Beispiel: Auszug aus einer News-Objektdatei (z.B. /deGlobal/wGlobal/layout/templates/objects/news.wObject.php)

...
<xsl:template match="wd:object[@type = 'news']">
  <xsl:choose>
    <!-- Darstellung im Editor -->
    <xsl:when test="$wIsInEditor">

      <div class="_wEditorElementConfiguration">  
        ...

        <div class="wEditorExtensionLabel"><xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_categories')"/></div>
        <div class="wEditorExtensionValue"><!--web:categories:start pathCategories="/deGlobal/wGlobal/content/categories/standard.wCategories.php"--><xsl:copy-of select="/wd:document/wd:extension/wd:meta/wd:categories"/><!--web:categories:stop--><wsl:buttonEdit path="/deGlobal/wGlobal/content/categories/standard.wCategories.php" icon="edit" caption="Kategorien bearbeiten"/></div>
        <br style="clear:all"/>
      </div>
      ...    
    </xsl:when>
    <!-- Darstellung in der Ausgabe (Webseite) -->
    <xsl:otherwise>
      ...
      <div class="elementText">
        <xsl:variable name="categoryID"><xsl:value-of select="//wd:extension/wd:meta/wd:categories/wd:category/text()"/></xsl:variable>
        <xsl:variable name="categoryText"><xsl:value-of select="document(concat($wDocumentRoot, '/deGlobal/wGlobal/content/categories/standard.wCategories.php'))//category[@id = $categoryID]/@text" /></xsl:variable>
        <p class="link"><a href="/de/seite-empfehlen/index.php?categoryID={$categoryID}&amp;categoryText={$categoryText}" ><xsl:value-of select="$categoryText" /></a></p>
      </div>
      ...
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
...

Ein Redakteur kann nun innerhalb z.B. einer Newsmeldung einen Kategoriewert auswählen. Der ausgewählte Wert wird über das Template in der Ausgabe einem Link übergeben, was in oben genanntem Beispiel die "Seite empfehlen" Funktion ist.
Nachfolgend die drei Bereiche, in denen Sie entsprechende Anpassungen vornehmen müssen.

  • E-Mail an den definierten Empfänger
  • Vor der Erstellung auszuführendes Skript
  • Server-Variable setzen (categoryID) und Kategorientext als Input-Feld übergeben

Beispiel: E-Mail an den definierten Empfänger

From: [!--senderEmail--]
To: [!--receiverEmail--]
Content-Type: text/plain; charset=UTF-8
Subject: Seite empfehlen: [!--urlToRecommend--]

Hallo [!--receiverName--],

[!--senderName--] hat Ihnen die Seite [!--urlToRecommend--] empfohlen.

Mitteilung:
[!--message--]

Kategorie:
[!--categoryText--] ([!--categoryID--])

Viele Grüße

Ihre Webseite

Beispiel: Vor der Erstellung auszuführendes Skript

$this->elements['urlToRecommend']->value = wEnv::getUrlHost().wRequest::getParameterSecure('page'); 
$this->elements['urlToRecommendDisplay']->value = wRequest::getParameterSecure('page');

$this->elements['categoryID']->value = wRequest::getParameterSecure('categoryID'); 
$this->elements['categoryText']->value = wRequest::getParameterSecure('categoryText');
Seite empfehlen mit Übergabe von categoryID und categoryText
FAQs are only visible for Weblication ai search and editors!
Worum geht es in dem Artikel „So ermöglichen Sie die Pflege von Werten und übergeben diese an ein Formular“?
Der Artikel zeigt am Beispiel einer Kategoriendatei, wie man Redakteuren das Pflegen auswählbarer Werte ermöglicht und wie der gewählte Wert anschließend über einen Link an ein Formular übergeben werden kann.
Wie wird die Kategoriepflege in der Redaktionsansicht umgesetzt?
Im Editor stellt das Beispiel eine Kategorie-Erweiterung bereit. Über einen Button „Kategorien bearbeiten“ kann ein Pflegebenutzer bzw. Redakteur die auswählbaren Kategorien in der Datei „/deGlobal/wGlobal/content/categories/standard.wCategories.php“ verwalten.
Wie wird der ausgewählte Kategoriewert auf der Ausgabe-Seite verwendet?
In der Ausgabe wird die gespeicherte Kategorie-ID aus den Metadaten gelesen. Zusätzlich wird der zugehörige Kategorietext aus der Kategoriesdatei ermittelt. Danach wird ein Link erzeugt, der die Kategorie-ID sowie den Kategorietext als Parameter an ein Formular übergibt.
Welche Daten werden beim Link an das Formular übergeben?
Das Beispiel übergibt zwei Parameter: „categoryID“ und „categoryText“. Beide werden aus dem gewählten Kategoriewert abgeleitet und in den Link bzw. die Formulareingaben übernommen.
Warum sollen die im Beispiel erwähnten „Seite empfehlen/Tell-A-Friend“-Funktionen nicht mehr genutzt werden?
Der Artikel weist darauf hin, dass die Funktion oft aus datenschutzrechtlichen Gründen (u. a. aufgrund von Entscheidungen des Bundesgerichtshofs) nicht mehr genutzt werden sollte. Entsprechend ist sie auch in Weblication® CMS nicht mehr verfügbar.
Welche Bereiche müssen für die Anpassung des Beispiels umgesetzt werden?
Der Artikel nennt drei Anpassungsbereiche: (1) E-Mail an den definierten Empfänger, (2) ein vor der Erstellung auszuführendes Skript, (3) Setzen der Server-Variablen (insbesondere „categoryID“) und Übergabe des Kategorientextes als Input-Feld.
Wie wird die E-Mail im Beispiel mit Kategorieninformationen befüllt?
Im E-Mail-Template werden u. a. folgende Platzhalter verwendet: „[!--receiverName--]“, „[!--urlToRecommend--]“, „[!--message--]“ sowie „[!--categoryText--]“ und „[!--categoryID--]“. Damit landen Kategorieangaben im Betreff und/oder Text der Nachricht.
Welche Servervariablen bzw. Elemente werden im Beispiel vor der Formular- bzw. Mail-Erstellung gesetzt?
Im Beispiel werden Werte wie „urlToRecommend“ und „urlToRecommendDisplay“ aus der Seiten-URL/Request-Parameter gesetzt. Zusätzlich werden „categoryID“ und „categoryText“ aus den Request-Parametern gelesen und als Werte für die entsprechenden Elemente („elements[...]“) bereitgestellt.
Auf welcher Basis läuft das Beispiel typischerweise (welches Objekt/Template)?
Das Beispiel nutzt ein Template für das Newsobjekt („wd:object[@type = 'news']“) und unterscheidet zwischen Darstellung im Editor und Darstellung in der Ausgabe (Webseite).
Welche Dateien bzw. Pfade werden im Beispiel für Kategorien verwendet?
Für das Beispiel werden Kategorien aus „/deGlobal/wGlobal/content/categories/standard.wCategories.php“ gelesen und dieser Pfad wird auch für die Editor-Bearbeitung verwendet.