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.