wBrowseEdit::createButtonApproveDocument

Gibt ein Dokument aus dem Workflow frei

Funktionsaufruf

String createButtonApproveDocument(String path = '', String icon = '', String caption = '', String title = '', Array options = array())

Parameter

path
Pfad zu der Datei, i.d.R. Pfad der Arbeitskopie
icon
Symbol
caption
Beschriftung der Schaltfläche
title
Titel der Schaltfläche
attributes
Weitere Attribute
id => String
ID der Schaltfläche
class => String
CSS Klasse
style => String
CSS Style

Beispiel: Button, um eine Datei aus dem Workflow freizugeben (inkl. Zurückweisen-Button)

Quelltext

<?php

$documentPath   = '<xsl:value-of select="$wDocumentPath"/>'; // Pfad zur freizugebenden Datei
$iconApprove    = "approve_document"; // Symbol der Schaltfläche zum Freigeben
$iconReject     = "reject_document"; // Symbol der Schaltfläche zum Zurückweisen
$captionApprove = "Freigeben"; // Bezeichnung der Schaltfläche zum Freigeben
$captionReject  = "Zurückweisen"; // Bezeichnung der Schaltfläche zum Zurückweisen
$titleApprove   = "Klicken Sie hier, um die Datei freizugeben"; // Titel der Schaltfläche
$titleReject    = "Klicken Sie hier, um die Datei zurückzuweisen"; // Titel der Schaltfläche

if(wWorkflow::isInWorkflow($documentPath) &amp;&amp; wWorkflow::canApproveCurrentLevel($documentPath)){
  print '<div style="padding:8px;overflow:hidden;background-color:#e0e0e0;border-bottom:solid 1px #a0a0a0;">';
  if(wPathName::isDraft($documentPath)){
    print '<h1 style="color:red;font-size:14px;font-family:arial, helvetica;">Diese Version befindet sich im Workflow und ist noch nicht sichtbar.</h1>';
    print '<p style="margin:0">'.wBrowseEdit::createButtonApproveDocument($documentPath, $iconApprove, $captionApprove, $titleApprove).' '.wBrowseEdit::createButtonRejectDocument($documentPath, $iconReject, $captionReject, $titleReject).'</p>';
 }
  else{
    print '<h1 style="font-size:14px;font-family:arial, helvetica;">Eine neuere Version befindet sich im Workflow und kann von Ihnen freigegeben werden.</h1>';
    print '<p style=""><a target="_blank" href="'.wPathName::getPathDraft($documentPath).'">Geänderte Version anzeigen</a></p>';                                                
  }
   print '</div>';
} 

?>

Hinweis
Beim Einsatz von Framework-Funktionen in eigenen Skripten beachten Sie bitte den Artikel "So verwenden Sie das PHP-Framework in eigenen Scripten".
Wenn Sie eine Funktion innerhalb einer Weblication® Seite z.B. über das PHP-Quelltext Element oder in einem XSL-Template über wsl:php einbinden, muss das Framework über die grid.php nicht mehr referenziert werden.

 
FAQs
Wofür ist wBrowseEdit::createButtonApproveDocument gedacht?
Die Funktion erstellt eine Schaltfläche, um ein Dokument im Workflow freizugeben ("Freigeben").
Welche Parameter unterstützt wBrowseEdit::createButtonApproveDocument?
Unterstützt werden: <code class="codeInline">path</code> (Pfad zur Datei, i.d.R. Arbeitskopie), <code class="codeInline">icon</code> (Symbol), <code class="codeInline">caption</code> (Beschriftung), <code class="codeInline">title</code> (Titel der Schaltfläche) sowie <code class="codeInline">options</code> (weitere Optionen; in der Signatur als <code class="codeInline">Array options = array()</code>).
Was sollte bei dem Parameter „path“ übergeben werden?
Üblicherweise wird der Pfad zur Arbeitskopie (also zur freizugebenden Datei) übergeben, z. B. <code class="codeInline">path = '<xsl:value-of select="$wDocumentPath"/>'</code>. Im Beispiel wird damit geprüft, ob das Dokument im Workflow ist und freigegeben werden darf.
Welche Bedeutung haben „icon“, „caption“ und „title“?
<code class="codeInline">icon</code> ist das Symbol für die Schaltfläche (z. B. <code class="codeInline">approve_document</code>), <code class="codeInline">caption</code> ist der sichtbare Text auf der Schaltfläche (z. B. „Freigeben“), und <code class="codeInline">title</code> ist der Tooltip-/Titeltext der Schaltfläche (z. B. „Klicken Sie hier, um die Datei freizugeben“).
Wie kann man im Beispiel auch einen „Zurückweisen“-Button erstellen?
Im Beispiel wird neben <code class="codeInline">wBrowseEdit::createButtonApproveDocument(...)</code> zusätzlich <code class="codeInline">wBrowseEdit::createButtonRejectDocument(...)</code> aufgerufen, um eine kombinierte Freigabe- und Zurückweisungsschaltfläche auszugeben.
Wann wird die Freigabe-Schaltfläche im Beispiel überhaupt ausgegeben?
Die Ausgabe erfolgt nur, wenn <code class="codeInline">wWorkflow::isInWorkflow($documentPath)</code> **und** <code class="codeInline">wWorkflow::canApproveCurrentLevel($documentPath)</code> true sind. Das stellt sicher, dass das Dokument im Workflow ist und auf der aktuellen Ebene genehmigt werden darf.
Was passiert im Beispiel, wenn die Version eine Draft-Version ist?
Wenn <code class="codeInline">wPathName::isDraft($documentPath)</code> true ist, wird eine Meldung ausgegeben („Diese Version befindet sich im Workflow und ist noch nicht sichtbar.“) und die Freigabe-Schaltfläche(n) werden trotzdem zusammen mit dem Kommentarbereich angezeigt.
Was wird angezeigt, wenn keine Draft-Version vorliegt?
Ist es kein Draft, zeigt das Beispiel stattdessen eine Meldung an („Eine neuere Version befindet sich im Workflow…“) und bietet einen Link zur geänderten Version an (<code class="codeInline">wPathName::getPathDraft($documentPath)</code>), typischerweise als „Geänderte Version anzeigen“.
Wie lautet die Funktionssignatur von wBrowseEdit::createButtonApproveDocument?
<code class="codeInline">String createButtonApproveDocument(String path = '', String icon = '', String caption = '', String title = '', Array options = array())</code>