public function run() { if (!$this->toFlavor('pro')) { return; } require_once 'modules/WorkFlow/WorkFlow.php'; require_once 'modules/WorkFlowTriggerShells/WorkFlowTriggerShell.php'; require_once 'include/workflow/glue.php'; // Disable time-elapsed workflows that don't have a proper Primary trigger and change their description $query = "SELECT DISTINCT w.id as workflow_id\n FROM workflow w, workflow_triggershells wt\n WHERE w.id = wt.parent_id\n AND w.deleted = 0\n AND wt.deleted = 0\n AND w.type = 'Time'\n AND wt.frame_type = 'Primary'\n AND wt.type NOT IN ('compare_any_time', 'compare_specific')"; $brokenWorkflows = $this->db->query($query); $descriptionFix = "THIS WORKFLOW WAS DEACTIVATED AUTOMATICALLY BY THE UPGRADE TO SUGAR 7 DUE TO INCOMPATIBILITY. PLEASE DELETE ALL CONDITIONS ON THE WORKFLOW AND RECREATE THEM."; while ($row = $this->db->fetchByAssoc($brokenWorkflows)) { $workflow = BeanFactory::getBean('WorkFlow', $row['workflow_id']); $workflow->status = 0; if (strpos($workflow->description, $descriptionFix) === false) { $workflow->description = "{$descriptionFix}\n" . $workflow->description; } $workflow->save(); } // Call repair workflow $workflow_object = new WorkFlow(); $workflow_object->repair_workflow(true); }