Добавил кнопку так
<?
System::admin()->SpeedStatus('Включена', 'Отключена', ADMIN_FILE.'?exe='.$th
is->module.'&'.$this->action_par_name.'=changecatstatus&'.$this->id_par_name.'='.$id, $cat['active'] == '1');
?>
создал функцию так(admin файл)
<?
public function ChangeStatus(){<br />
<br />
if(!isset($_GET['id'])){<br />
if(IsAjax()){<br />
exit("ERROR");<br />
}<br />
GO(ADMIN_FILE.'?exe='.$this->module.'&'.$this->action_par_name.'=cats');<br />
}<br />
System::database()->Select($this->module.'_cats', "`id`='".SafeEnv($_GET['id'], 11, int)."'");<br />
if(System::database()->NumRows() > 0){<br />
$r = System::database()->FetchRow();<br />
if($r['active'] == 1){<br />
$en = '0';<br />
}else{<br />
$en = '1';<br />
}<br />
System::database()->Update($this->module.'_cats', "`active`='$en'", "`id`='".SafeEnv($_GET['id'], 11, int)."'");<br />
Audit('Категории: Изменение статуса категори
и "'.$r['title'].'" в '.$this->module);<br />
System::cache()->Delete('tree', $this->Table);<br />
}<br />
if(IsAjax()){<br />
exit("OK");<br />
}<br />
GO(ADMIN_FILE.'?exe='.$this->module.'&'.$this->action_par_name.'=cats');<br />
}
?>
в модулях вызов так
<?
case 'changecatstatus':<br />
if(!$edit_cats){<br />
System::admin()->AccessDenied();<br />
}else{<br />
AdminDownloadsGetTree()->ChangeStatus();<br />
}<br />
break;
?>
Вывод пользователю:
<?
public function ShowCats( $cat_id ){<br />
$vars = array();<br />
$cats = $this->GetChildTree($cat_id); // получаем категории<br />
$c = count($cats); // кол-во всех категорий в текущей<br />
<br />
// Удаляем из массива все не активные категории<br />
for($i = 0; $i < $c; $i++){<br />
if($cats[$i]['active'] == 0){<br />
unset($cats[$i]);<br />
}<br />
}<br />
<br />
// пересобираем массив категорий<br />
$nn = 0;<br />
foreach ($cats as $cat){<br />
$cats2[$nn] = $cat;<br />
$nn++;<br />
}<br />
$cats = $cats2;<br />
unset($cats2);<br />
$c = count($cats); // кол-во активных категорий в текущей
?>
Просьба посмотреть и дать комментарий, может что то не очень корректно в фун-и написано
Уже полность сделал вкл и выкл категорий, но у меня вопрос про подсчет элементов в модулях
<?
function IndexGalleryGetNumItems(){<br />
System::database()->Select('gallery', GetWhereByAccess('view', "`show`='1'"));<br />
$num = System::database()->NumRows();<br />
System::database()->FreeResult();<br />
return 'Всего изображений в галерее: '.$num;<br />
}
?>
первое зачем делать такую большую выборку только для подсчета? Класс для sql может просто посчитать?
и второе как посчитать только в активных категориях? или все таки делать авто-выключение объектов при выкл категории... (
-- Изменено "Fort": 15.10.2015 13:50 --
-- Изменено "Fort": 15.10.2015 23:02 --