dev Demoprojekt

Dies ist ein Demoprojekt. Es dient Ihnen als Grundlage für den Aufbau individueller Seiten mit Weblication® CMS.

Die Seitenstruktur, das Layout und die von den Redakteuren nutzbaren Seitenelemente können Sie frei definieren.

So setzen Sie ein Pflegeformular für öffentliche Benutzer um

Nutzbar ab: Version 005.049.034.000

02. May 2013, 16:33 Uhr

Um auch öffentlichen Benutzern auf der bekannten Basis eine Pflegemöglichkeit für diverse Anwendungen (z.B. Veranstaltungskalender, Kleinanzeigen, Vereinsverzeichnis, etc.) zu ermöglichen, können Sie nun auch für diese Benutzer die objekbasierte Umsetzung heranziehen.

Beispielhaft demonstrieren wir Ihnen dies anhand einer Umsetzung über den Anwendungsgenerator, der über eine bestehende CSV-Datei eine XML-basierte Anwendung erstellt. Auf diese Weise haben Sie sehr schnell eine funktionierende Anwendung, die Sie nur noch nach Ihren Bedürfnissen anpassen müssen.

Beispiel Anwendungsgeneratorzoom
Beispiel Anwendungsgenerator

Der nachfolgende Auszug aus der beispielhaften Objekt-Datei zeigt einen Teil des Pflegebereiches an, welcher hinsichtlich des pflegbaren Bildes noch um die einfache Hochladen-Möglichkeit erweitert wurde.
Im entsprechenden Bildverzeichnis müssen Sie hierzu die Rechte so setzen, dass der öffentliche Benutzer direkt oder über eine Gruppe das Recht zum Hochladen von Dateien hat.

Definieren Sie am besten über die Objekt-Datei direkt den Aufruf der Bearbeitung, welche Sie auf den öffentlichen Benutzertyp abfragen. Ein öffentlicher Benutzer erhält somit bei Aufruf der entsprechenden Seite (auf die er das Recht zur Bearbeitung hat) den "Datei bearbeiten" Button. Durch Klick auf diesen landet er in der Bearbeitung (Smart-Editor).

Beispiel: Auszug aus der produkte-demo.wObject.php

...
<xsl:choose>
  <!-- Darstellung im Editor (Pflegemaske)-->
  <xsl:when test="$wIsInEditor">
    <div class="wEditorExtensionLabel">Id</div>
    <div class="wEditorExtensionValue"><!-- web:text:start editor="input" inputStyle="" --><xsl:value-of select="wd:data[@id = 'Id']"/><!-- web:text:stop --></div>
    <div class="wEditorExtensionLabel">Category</div>
    <div class="wEditorExtensionValue"><!-- web:text:start editor="select" multiple="" values="redline|blueline|blackline" texts="RedLine|BlueLine|BlackLinke"--><xsl:value-of select="wd:data[@id = 'Category']"/><!-- web:text:stop --></div>
    <div class="wEditorExtensionLabel">Title</div>
    <div class="wEditorExtensionValue"><!-- web:text:start editor="input" inputStyle="" --><xsl:value-of select="wd:data[@id = 'Title']"/><!-- web:text:stop --></div>
    <div class="wEditorExtensionLabel">Description</div>
    <div class="wEditorExtensionValue"><!-- web:text:start editor="wysiwyg" wysiwygFunctions="" --><xsl:value-of disable-output-escaping="yes" select="wd:data[@id = 'Description']"/><!-- web:text:stop --></div>
    <div class="wEditorExtensionLabel">Image</div>              
    <div class="wEditorExtensionValue">
      <!--web:text:start editor="file" upload="1" preview="picture" dirType="image" pathIfEmpty="/baseAssets/img/produkte" inputStyle="width:240px"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'Image']/text()"/><!--web:text:stop-->
      <xsl:if test="$wUsertype = 'public'"><wsl:button showInEditor="1" icon="delete" onclick="wDocument.element('webtag_text_{/wd:document/wd:extension/wd:object/wd:data[@id = 'Image']/@wEditorId}').value = '';wDocument.element('preview_webtag_text_{/wd:document/wd:extension/wd:object/wd:data[@id = 'Image']/@wEditorId}').src = '';wEditor.saveDraftAndReload();"/></xsl:if>
    </div>

    <wsl:editorButtonsObjectSmart />	
    <xsl:apply-templates select="/wd:document/wd:group[@id='content1']"/>
  </xsl:when>
  <!-- Darstellung im in der Webseite -->	      
  <xsl:otherwise>
    <xsl:if test="$wUsertype = 'public'">
      <wsl:buttonEdit icon="edit" caption="Datei bearbeiten" title="" hideInEditor="1"/>
    </xsl:if>
    ...
  </xsl:otherwise>
</xsl:choose>
...

Über die generierte Objekt-Datei wurde zudem das wsl:editorButtonsObjectSmart Tag gesetzt, über welches ein berechtigter öffentlicher Benutzer die Bearbeitenmöglichkeit auf die entsprechenden Objekt-Daten erhält. Hierfür muss er Besitzer der betreffenden Datei sein. Weitere Informationen hierzu finden Sie im unten verlinkten DevBlog-Artikel. Sorgen Sie in der Vorlage für neue Dateien dafür, dass das Besitzer-Feld (wd:owner) leer bleibt. Die zugewiesene Rolle für den Besitzer muss in der Vorlage das Recht zum Bearbeiten (optional auch zum Löschen) der Datei gesetzt haben (siehe Screen).

Produkte-Vorlage: Dateieigenschaften - Besitzerzoom
Produkte-Vorlage: Dateieigenschaften - Besitzer

Sofern sichergestellt sein soll, dass die vom öffentlichen Benutzer bearbeitete Seite nach Speichern auch online ist, kann dies wie folgt über die Metadaten-Maske umgesetzt werden (siehe auch Beispielprojekt). Auf diese Weise kann die Vorlage für eine neue Seite standardmässig offline geschaltet sein und wird dann erst beim Speichern online gesetzt.

Beispiel: Auszug aus der standard.metadata.php zur Online-Status Pflege

<?php

...
  <
wsl:ifIsAdminOrUserStandard>
  <!-- 
Hier wird die Pflegemaske für Administratoren/Pflegebenutzer definiert -->
  ...
  <
wsl:else />
    <!-- 
Falls ein öffentlicher Benutzer eine Objekt bearbeitetwird dieses beim Speichern immer online gesetztohne dass der öffentliche Benutzer die Auswahl sieht-->
    <!--
web:text:start inputStyle="display:none" editor="select" values="on" --><xsl:value-of select="/wd:document/wd:extension/wd:status/wd:online/@status"/><!--web:text:stop-->
  </
wsl:ifIsAdminOrUserStandard>
...

?>

Wichtige Hinweise

  • Ein Benutzer vom Benutzertyp "public" (öffentlicher Benutzer) kann den Dateiexplorer nicht aufrufen, da er keinen Zugriff auf die Verzeichnisstruktur hat!
  • Ein Benutzer vom Benutzertyp "public" (öffentlicher Benutzer) hat nur eingeschränkte WYSIWYG-Funktionen, womit er maximal diese Funktionen nutzen kann:
    bold, italic, underline, orderedlist, unorderedlist, (clipboard), chars, undo

Ähnliche Seiten