Zum Inhalt springen

News-Workflow: "Unhide when finalizing" geht nicht

Erstellt am 27. September 2005 · 2 Antworten · letzte Antwort am 9. November 2005

Tags: tt_news, Frage

droptix ·

Habe einen Workflow zum Schreiben von News erstellt. Geht wunderbar: Ein User kann vom Chef eine Aufgabe bekommen und dazu eine News erstellen. Der Chef schaut nochmal drüber und gibt die News dann frei, wobei sie vom Entwurf- in den öffentlichen SysOrdner verschoben wird.

Lediglich die Einstellung "Unhide when finalizing" zeigt keine Wirkung. Da eine erstellte News standardmäßig versteckt ist, sollte diese Option die News beim Veröffentlichen auf "unhide" stellen. Das tut sie aber nicht. Fehlt irgend eine Einstellung?

Ich benutze News (tt_news v2.2.24) und die bei TYPO3 3.8.0 mitgelieferten:

  • User>Task Center, Tasks (sys_todos v1.0.6)
    User>Task Center, Tasks, Workflow (sys_workflows v1.0.4)

droptix ·

Sorry, muss nochmal nerven. Aber ich habe seit dem Post keine Antwort gefunden.

Nur bevor ich den Quellcode entsprechend "hacke" und mir die Mühe mache, erstmal alles rauszubekommen, wollte ich gern erfahren, ob es ein Bug oder auch nur eine Voreinstellung ist, der sich durch einen winzigen Schalter oder etwas TS korrigieren lässt.

Jemand eine Lösung?

droptix ·

Nun gut, ich hab das Ganze wieder gepatched.

Ich habe heraus gefunden, dass die Tabelle "tt_news" das unhide nicht unterstützt – zumindest nicht im Zusammenhang mit der sys_workflows Extension v1.0.4. Vielleicht geht es mit der aktuellen Version, die ich aber wegen "unstable" noch nicht einsetze.

Außerdem scheint die eine if()-Bedingung wirklich falsch zu sein. Die Variable $doNotUnhide sollte besser $doUnhide heißen, sonst ist der Sinn verdreht. In ihr steht der Wert dafür, ob der Haken im Workflow bei "Unhide when finalizing" gesetzt wurde (= 1) oder nicht (= 0). Die Verneinung muss weg, sonst versucht der Workflow niemals, den Datensatz "un-zuverstecken". 8-)

Also hier mein Patch:

Datei "typo3/ext/sys_workflows/class.tx_workflows_executor.php", Funktion publishNewRecord():

if ($doNotUnhide) {
    if (is_array($TCA[$table]['ctrl']['enablecolumns']) &&  $TCA[$table]['ctrl']['enablecolumns']['disabled']) {
        $dataArr[$table][$uid][$TCA[$table]['ctrl']['enablecolumns']['disabled']] = 0;
        ### hack -- { ###
        // if-condition has to be if($doNotUnhide) and not if(!$doNotUnhide)
    } elseif ($table == "tt_news") {
        // unhide news item
        $GLOBALS['TYPO3_DB']->exec_UPDATEquery($table, "uid=".intval($uid), array("hidden" => 0));
        ### hack -- } ###
    } else {
        debug('tried to unhide but table: '.$table.' does not support it ('.__FILE__.','.__LINE__.')');
    }
}

Vielleicht hilft's jemanden nach mir. Mich würde aber interessieren, ob das ein echter Bug ist, schließlich ist die Version 1.0.4 "stable".