riberk
Новичок
Доброго времени суток.
Есть метод,рекурсивно выводящий материалы в <option>
Проблема в том, что при редактировании материала, к примеру, с PID=10, у которого соответственно PID=3, вот этот блок кода повторяется для каждого материала, следующего после редактируемого и с PID=3,
а вот этот для каждого материала, следующего после редактируемого и с PID=10
причем
нормально записывает на каждом проходе в шаблон то, что нужно.
option_article(select).tpl
Подскажите пожалуйста, куда копать.
Есть метод,рекурсивно выводящий материалы в <option>
PHP:
private static function option_material($pID/*текущий родитель*/
,$number/*глубина рекурсии*/
,$content
,$parent_id=0/*родитель выбранного материала*/
,$uid = 0/*идентификатор выбранного материала*/
,$disabled = false/*надо ли делать <option> disabled*/
)
{
$smarty = new extSmarty();
$result_query = mysql_query("SELECT * FROM `material` where `PID`='$pID'
and `TID` != '3' ORDER BY `number`")
or die (mysql_error());
global $number;
global $content;
$nbsp='';
$number++;
if (mysql_num_rows($result_query)>0){
for($i=0; $i<=$number-2;$i++)
$nbsp .= ' ';
while ($data_query = mysql_fetch_assoc($result_query))
{
$smarty->assign('nbsp',$nbsp);
$smarty->assign('name',$data_query['name']);
$smarty->assign('id',$data_query['ID']);
if ($disabled){
$smarty->assign('disabled','true');
$content .= $smarty->fetch('option_article(select).tpl');
material::option_material($data_query['ID'], $number,$content,$parent_id, $uid, true);
}
else{
if(($parent_id!= $data_query['ID']) && ($uid != $data_query['ID'])){
$content .= $smarty->fetch('option_article(select).tpl');
material::option_material($data_query['ID'], $number,$content,$parent_id, $uid);
}
elseif($parent_id == $smarty->$data_query['ID']){
$smarty->assign('selected','true');
$content .= $smarty->fetch('option_article(select).tpl');
material::option_material($data_query['ID'], $number,$content,$parent_id, $uid);
}
elseif ($uid == $data_query['ID']){
$smarty->assign('disabled','true');
$content .= $smarty->fetch('option_article(select).tpl');
material::option_material($data_query['ID'], $number,$content,$parent_id, $uid,true);
}
}
$number--;
}
}
}
PHP:
elseif($parent_id == $smarty->$data_query['ID']){
$smarty->assign('selected','true');
$content .= $smarty->fetch('option_article(select).tpl');
material::option_material($data_query['ID'], $number,$content,$parent_id, $uid);
}
PHP:
elseif ($uid == $data_query['ID']){
$smarty->assign('disabled','true');
$content .= $smarty->fetch('option_article(select).tpl');
material::option_material($data_query['ID'], $number,$content,$parent_id, $uid,true);
}
PHP:
$smarty->assign('id',$data_query['ID'])
option_article(select).tpl
PHP:
<option {if isset($disabled)}disabled{/if} {if isset($selected)}selected{/if} value="{$id}">{$nbsp}{$name}</option>