wWorkflow::initWorkflow
Initialisiert den Workflow einer Datei, falls davon eine Arbeitskopie existiert
Funktionsaufruf
Boolean initWorkflow(String path)
Parameter
- path
- Pfad des Dokumentes
Beispiel: Initialisiert den Workflow der Datei, falls davon eine Arbeitskopie existiert
Quelltext
<?php
$documentPath = "/IhrProjekt/datei.php";
if(wWorkflow::isInWorkflow($documentPath)){
print "Die Datei befindet sich in einem Workflow!";
}
else{
wWorkflow::initWorkflow($documentPath);
wWorkflow::startWorkflow($documentPath);
}
if(wWorkflow::isInWorkflow($documentPath) && wWorkflow::canApproveCurrentLevel($documentPath)){
print '<div style="margin:0 0 10px 0;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, 'approve_document', 'Freigeben').' '.wBrowseEdit::createButtonRejectDocument($documentPath, 'reject_document', 'Zurückweisen').' <a style="float:right" target="_blank" href="'.preg_replace("/(.*)\.toRelease\./", "$1.", str_replace('/weblication/documents/drafts', '', $documentPath)).'">Original anzeigen</a></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
- Was macht die Funktion wWorkflow::initWorkflow(String path)?
- Die Funktion initialisiert den Workflow einer Datei, falls dafür eine Arbeitskopie existiert.
- Welche Parameter benötigt wWorkflow::initWorkflow?
- Als Parameter wird <code class="codeInline">path</code> benötigt: der Pfad des Dokuments.
- Wie wird wWorkflow::initWorkflow in einem typischen Ablauf verwendet?
- Üblicherweise wird zuerst geprüft, ob sich die Datei bereits im Workflow befindet. Wenn nicht, wird <code class="codeInline">wWorkflow::initWorkflow($documentPath)</code> aufgerufen und anschließend der Workflow gestartet (z. B. mit <code class="codeInline">wWorkflow::startWorkflow($documentPath)</code>).
- Was passiert in dem Beispiel, wenn die Datei bereits in einem Workflow ist?
- Im Beispiel wird über <code class="codeInline">wWorkflow::isInWorkflow($documentPath)</code> geprüft. Wenn die Datei sich bereits im Workflow befindet, wird eine entsprechende Meldung ausgegeben bzw. je nach Status weitere Freigabe-/Rückgabe-Informationen angezeigt.
- Wie wird im Beispiel zwischen Draft und nicht-Draft unterschieden?
- Im Beispiel wird mit <code class="codeInline">wPathName::isDraft($documentPath)</code> geprüft, ob die Version im Workflow noch nicht sichtbar ist. Bei Draft werden Freigeben- und Zurückweisen-Buttons angezeigt; andernfalls wird eine Meldung ausgegeben, dass eine neuere Version im Workflow ist und freigegeben werden kann.
- Wie kann man im Beispiel eine Draft-Version oder den Entwurf anzeigen?
- Für Drafts wird im Beispiel ein Link zum Original bzw. die entsprechende Ziel-URL erzeugt; für nicht-Draft-Versionen wird per <code class="codeInline">wPathName::getPathDraft($documentPath)</code> auf die geänderte Version verlinkt.
- Muss das Framework beim Einbinden von Funktionen in Weblication-Seiten noch referenziert werden?
- Laut Hinweis: Wenn Sie eine Funktion innerhalb einer Weblication®-Seite z. B. über das PHP-Quelltext Element oder in einem XSL-Template über <code class="codeInline">wsl:php</code> einbinden, muss das Framework über die <code class="codeInline">grid.php</code> nicht mehr referenziert werden.