public static function byUsedCommand($_cmd_id, $_variable = false) { $scenarios = null; if ($_variable) { $return = array(); $expressions = array_merge(scenarioExpression::searchExpression('variable(' . $_cmd_id . ')'), scenarioExpression::searchExpression('variable', $_cmd_id, true)); } else { $return = self::byTrigger($_cmd_id); $expressions = scenarioExpression::searchExpression('#' . $_cmd_id . '#', '#' . $_cmd_id . '#', false); } if (is_array($expressions)) { foreach ($expressions as $expression) { $scenarios[] = $expression->getSubElement()->getElement()->getScenario(); } } if (is_array($scenarios)) { foreach ($scenarios as $scenario) { if (is_object($scenario)) { $find = false; foreach ($return as $existScenario) { if ($scenario->getId() == $existScenario->getId()) { $find = true; break; } } if (!$find) { $return[] = $scenario; } } } } return $return; }