add files
Dieser Commit ist enthalten in:
Ursprung
935ba6e5d9
Commit
b75948a709
37 geänderte Dateien mit 4890 neuen und 0 gelöschten Zeilen
180
classes/class.workflow.php
Normale Datei
180
classes/class.workflow.php
Normale Datei
|
|
@ -0,0 +1,180 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Project:
|
||||
* Contenido Content Management System
|
||||
*
|
||||
* Description:
|
||||
* Workflow management class
|
||||
*
|
||||
* Requirements:
|
||||
* @con_php_req 5.0
|
||||
*
|
||||
*
|
||||
* @package Contenido Backend classes
|
||||
* @version 1.6
|
||||
* @author Timo Hummel
|
||||
* @copyright four for business AG <www.4fb.de>
|
||||
* @license http://www.contenido.org/license/LIZENZ.txt
|
||||
* @link http://www.4fb.de
|
||||
* @link http://www.contenido.org
|
||||
*
|
||||
* {@internal
|
||||
* created 2003-07-18
|
||||
*
|
||||
* $Id: class.workflow.php 128 2019-07-03 11:58:28Z oldperl $
|
||||
* }}
|
||||
*
|
||||
*/
|
||||
if (!defined('CON_FRAMEWORK')) {
|
||||
die('Illegal call');
|
||||
}
|
||||
|
||||
|
||||
$cfg["tab"]["workflow"] = $cfg['sql']['sqlprefix'] . "_piwf_workflow";
|
||||
$cfg["tab"]["workflow_allocation"] = $cfg['sql']['sqlprefix'] . "_piwf_allocation";
|
||||
$cfg["tab"]["workflow_art_allocation"] = $cfg['sql']['sqlprefix'] . "_piwf_art_allocation";
|
||||
$cfg["tab"]["workflow_items"] = $cfg['sql']['sqlprefix'] . "_piwf_items";
|
||||
$cfg["tab"]["workflow_user_sequences"] = $cfg['sql']['sqlprefix'] . "_piwf_user_sequences";
|
||||
$cfg["tab"]["workflow_actions"] = $cfg['sql']['sqlprefix'] . "_piwf_actions";
|
||||
|
||||
plugin_include('workflow', 'classes/class.workflowactions.php');
|
||||
plugin_include('workflow', 'classes/class.workflowallocation.php');
|
||||
plugin_include('workflow', 'classes/class.workflowartallocation.php');
|
||||
plugin_include('workflow', 'classes/class.workflowitems.php');
|
||||
plugin_include('workflow', 'classes/class.workflowusersequence.php');
|
||||
|
||||
/**
|
||||
* Class Workflows
|
||||
* Class for workflow management
|
||||
* @author Timo A. Hummel <Timo.Hummel@4fb.de>
|
||||
* @version 0.2
|
||||
* @copyright four for business 2003
|
||||
*/
|
||||
class Workflows extends ItemCollection {
|
||||
|
||||
/**
|
||||
* Constructor Function
|
||||
* @param none
|
||||
*/
|
||||
function __construct() {
|
||||
global $cfg;
|
||||
parent::__construct($cfg["tab"]["workflow"], "idworkflow");
|
||||
$this->_setItemClass("Workflow");
|
||||
}
|
||||
|
||||
function create() {
|
||||
global $auth, $client, $lang;
|
||||
$newitem = parent::createNewItem();
|
||||
$newitem->setField("created", date("Y-m-d H-i-s"));
|
||||
$newitem->setField("idauthor", $auth->auth["uid"]);
|
||||
$newitem->setField("idclient", $client);
|
||||
$newitem->setField("idlang", $lang);
|
||||
$newitem->store();
|
||||
|
||||
return ($newitem);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes all corresponding informations to this workflow and delegate call to parent
|
||||
* @param integer $idWorkflow - id of workflow to delete
|
||||
*/
|
||||
function delete($idWorkflow) {
|
||||
global $cfg;
|
||||
$oDb = new DB_ConLite();
|
||||
|
||||
$aItemIdsDelete = array();
|
||||
$sSql = 'SELECT idworkflowitem FROM ' . $cfg["tab"]["workflow_items"] . ' WHERE idworkflow = ' . Contenido_Security::toInteger($idWorkflow) . ';';
|
||||
$oDb->query($sSql);
|
||||
while ($oDb->next_record()) {
|
||||
array_push($aItemIdsDelete, Contenido_Security::escapeDB($oDb->f('idworkflowitem'), $oDb));
|
||||
}
|
||||
|
||||
$aUserSequencesDelete = array();
|
||||
$sSql = 'SELECT idusersequence FROM ' . $cfg["tab"]["workflow_user_sequences"] . ' WHERE idworkflowitem in (' . implode(',', $aItemIdsDelete) . ');';
|
||||
$oDb->query($sSql);
|
||||
while ($oDb->next_record()) {
|
||||
array_push($aUserSequencesDelete, Contenido_Security::escapeDB($oDb->f('idusersequence'), $oDb));
|
||||
}
|
||||
|
||||
$sSql = 'DELETE FROM ' . $cfg["tab"]["workflow_user_sequences"] . ' WHERE idworkflowitem in (' . implode(',', $aItemIdsDelete) . ');';
|
||||
$oDb->query($sSql);
|
||||
|
||||
$sSql = 'DELETE FROM ' . $cfg["tab"]["workflow_actions"] . ' WHERE idworkflowitem in (' . implode(',', $aItemIdsDelete) . ');';
|
||||
$oDb->query($sSql);
|
||||
|
||||
$sSql = 'DELETE FROM ' . $cfg["tab"]["workflow_items"] . ' WHERE idworkflow = ' . Contenido_Security::toInteger($idWorkflow) . ';';
|
||||
$oDb->query($sSql);
|
||||
|
||||
$sSql = 'DELETE FROM ' . $cfg["tab"]["workflow_allocation"] . ' WHERE idworkflow = ' . Contenido_Security::toInteger($idWorkflow) . ';';
|
||||
$oDb->query($sSql);
|
||||
|
||||
$sSql = 'DELETE FROM ' . $cfg["tab"]["workflow_art_allocation"] . ' WHERE idusersequence in (' . implode(',', $aUserSequencesDelete) . ');';
|
||||
$oDb->query($sSql);
|
||||
|
||||
parent::delete($idWorkflow);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Class Workflow
|
||||
* Class for a single workflow item
|
||||
* @author Timo A. Hummel <Timo.Hummel@4fb.de>
|
||||
* @version 0.1
|
||||
* @copyright four for business 2003
|
||||
*/
|
||||
class Workflow extends Item {
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @global array $cfg
|
||||
*/
|
||||
function __construct() {
|
||||
global $cfg;
|
||||
parent::__construct($cfg["tab"]["workflow"], "idworkflow");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Helper functions */
|
||||
|
||||
function getWorkflowForCat($idcat) {
|
||||
global $lang, $cfg;
|
||||
|
||||
$idcatlang = getCatLang($idcat, $lang);
|
||||
$workflows = new WorkflowAllocations;
|
||||
$workflows->select("idcatlang = '$idcatlang'");
|
||||
if ($obj = $workflows->next()) {
|
||||
/* Sanity: Check if the workflow still exists */
|
||||
$workflow = new Workflow;
|
||||
|
||||
$res = $workflow->loadByPrimaryKey($obj->get("idworkflow"));
|
||||
|
||||
if ($res == false) {
|
||||
return 0;
|
||||
} else {
|
||||
return $obj->get("idworkflow");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getCatLang($idcat, $idlang) {
|
||||
global $lang, $cfg;
|
||||
$db = new DB_ConLite;
|
||||
|
||||
/* Get the idcatlang */
|
||||
$sql = "SELECT idcatlang FROM "
|
||||
. $cfg["tab"]["cat_lang"] .
|
||||
" WHERE idlang = '" . Contenido_Security::escapeDB($idlang, $db) . "' AND
|
||||
idcat = '" . Contenido_Security::escapeDB($idcat, $db) . "'";
|
||||
|
||||
$db->query($sql);
|
||||
|
||||
if ($db->next_record()) {
|
||||
return ($db->f("idcatlang"));
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
Laden …
Tabelle hinzufügen
Einen Link hinzufügen
In neuem Issue referenzieren