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