103 Zeilen
3,1 KiB
PHP
103 Zeilen
3,1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Project:
|
|
* Contenido Content Management System
|
|
*
|
|
* Description:
|
|
* Advances to the next step if the time limit is "over"
|
|
*
|
|
* Requirements:
|
|
* @con_php_req 5.0
|
|
*
|
|
*
|
|
* @package Contenido Backend classes
|
|
* @version 1.5.1
|
|
* @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-05-26
|
|
* modified 2010-05-20, Murat Purc, removed request check during processing ticket [#CON-307]
|
|
*
|
|
* $Id: advance_workflow.php 128 2019-07-03 11:58:28Z oldperl $
|
|
* }}
|
|
*
|
|
*/
|
|
define('CON_FRAMEWORK', true);
|
|
|
|
|
|
// Contenido startup process
|
|
include_once ('../../../includes/startup.php');
|
|
|
|
cInclude("includes", "cfg_language_de.inc.php");
|
|
cInclude("includes", "functions.con.php");
|
|
plugin_include('workflow', 'includes/functions.workflow.php');
|
|
|
|
$workflowartallocations = new WorkflowArtAllocations;
|
|
$workflowusersequences = new WorkflowUserSequences;
|
|
|
|
$workflowartallocations->select();
|
|
|
|
while ($obj = $workflowartallocations->next()) {
|
|
$starttime = $obj->get("starttime");
|
|
$idartlang = $obj->get("idartlang");
|
|
$lastidusersequence = $obj->get("lastusersequence");
|
|
|
|
$usersequence = getCurrentUserSequence($idartlang, 0);
|
|
|
|
if ($usersequence != $lastidusersequence) {
|
|
|
|
$workflowusersequences->select("idusersequence = '$usersequence'");
|
|
|
|
if ($wfobj = $workflowusersequences->next()) {
|
|
$wfitem = $wfobj->get("idworkflowitem");
|
|
$pos = $wfobj->get("position");
|
|
$timeunit = $wfobj->get("timeunit");
|
|
$timelimit = $wfobj->get("timelimit");
|
|
}
|
|
|
|
$starttime = strtotime(substr_replace(substr(substr($starttime, 0, 2) . chunk_split(substr($starttime, 2, 6), 2, "-") . chunk_split(substr($starttime, 8), 2, ":"), 0, 19), " ", 10, 1));
|
|
switch ($timeunit) {
|
|
case "Seconds":
|
|
$maxtime = $starttime + $timelimit;
|
|
break;
|
|
case "Minutes":
|
|
$maxtime = $starttime + ($timelimit * 60);
|
|
break;
|
|
case "Hours":
|
|
$maxtime = $starttime + ($timelimit * 3600);
|
|
break;
|
|
case "Days":
|
|
$maxtime = $starttime + ($timelimit * 86400);
|
|
break;
|
|
case "Weeks":
|
|
$maxtime = $starttime + ($timelimit * 604800);
|
|
break;
|
|
case "Months":
|
|
$maxtime = $starttime + ($timelimit * 2678400);
|
|
break;
|
|
case "Years":
|
|
$maxtime = $starttime + ($timelimit * 31536000);
|
|
break;
|
|
default:
|
|
$maxtime = $starttime + $timelimit;
|
|
}
|
|
|
|
|
|
|
|
if ($maxtime < time()) {
|
|
$pos = $pos + 1;
|
|
$workflowusersequences->select("idworkflowitem = '$wfitem' AND position = '" . Contenido_Security::escapeDB($pos, NULL) . "'");
|
|
|
|
if ($wfobj = $workflowusersequences->next()) {
|
|
$obj->set("idusersequence", $wfobj->get("idusersequence"));
|
|
$obj->store();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
?>
|