Добрый день, раньше использовал такие 2 функции для вывода иерархичной структуры в виде многоуровневого меню. Функция рекурсивная, вызывает сама себя. Попробовал оформить в стиле Yii, но пока немного в нем теряюсь.
Особенно смущают места - mysql_num rows() , mysql_query(), mysql_fetch_array()
Структура Таблицы - CODE, CODE_PAR, NAME
Также интересует, что нужно поменять в функции view_cat, чтобы в итоге у меня имелись объекты класса и я мог оперировать его свойствами, это функцию я пока никак не изменял. Помогите пожалуйста Yii кудесники \
[PHP]
public function getCat(){
//$sql = "SELECT CODE, `NAME`, CODE_PAR FROM t_product";
$condition = Product::findAll();
//$result = mysql_query($sql);
//if(!$result) return null;
if(!$condition) return null;
$arr_cat = array();
if(count(Product::model()->findAll()) != 0){
for($i = 0; $i < count(Product::model()->findAll()); $i++){
//$row = mysql_fetch_array($result, MYSQL_ASSOC);
$row = $condition;
//if(empty($arr_cat[$row['CODE_PAR']]))
if(empty($arr_cat[$row->CODE_PAR]))
//$arr_cat[$row['CODE_PAR']][] = array();
$arr_cat[$row->CODE_PAR][] = array();
// $arr_cat[$row['CODE_PAR']][] = $row;
//$arr_cat[$row->CODE_PAR][] = $condition;
$arr_cat[$row->CODE_PAR][] = $row;
}
}
return $arr_cat;
}
public function view_cat($arr, $code_par = 0){
if(empty($arr[$code_par])) return;
echo "
- ";
for($i = 0; $i < count($arr[$code_par]); $i++){
echo ' - '
.$arr[$code][$i]['TITLE']
...';
$this->view_cat($arr, ($arr[$code_par][$i]['CODE']));
echo '';
}
echo '
';
}
// вызов
$root = $model->getCat();
$model->view_cat($root);
[/PHP]