function collectSequence(RM_ReportScript_Composite_Script $script) { $result = array(); foreach ($script->getScriptList() as $item) { if ($item->script_type == 'c') { $result = array_merge($result, collectSequence($item)); } else { $result[] = $item->name; } } return $result; }
/** * Retrievs a list of scripts for composite. Ordered by ord_id. * * @param RM_ReportScript_Composite_Script $script * @return RM_Store_iRequest<RM_ReportScript_iScript> */ public function getScriptListForComposite(RM_ReportScript_Composite_Script $script) { $q = M('Db')->createQuery($this->_table['composite'] . ' c')->join('c', 'LEFT JOIN ' . $this->_table['script'] . ' s on c.script_id=s.id')->where('c.composite_id=?', $script->id())->what('s.*')->order('c.ord_id asc'); return $this->storage('script')->request($q); }