コード例 #1
0
 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);
 }