Группа: Пользователь Ранг: Продвинутый Регистрация: 26.10.2009 Город: Тюмень | Можно ли так сделать и как это отобразиться на производительности сайта и вообще это технически правильно? Вставил в класс news внизу. Взял из галереии этот код для отображения тэгов function getTagCloud($categ='') { $tags = ''; $where = ($categ!='') ? "SELECT Tags FROM " . PREFIX . "_galerie WHERE Kategorie = '" . $categ . "'" : "SELECT Tags FROM " . PREFIX . "_galerie_kategorien WHERE Aktiv='1' AND Sektion = '" . $_SESSION['area'] . "'"; $where_m = ($categ!='') ? "FROM " . PREFIX . "_galerie WHERE Kategorie = '" . $categ . "'" : "FROM " . PREFIX . "_galerie_kategorien WHERE Aktiv='1' AND Sektion = '" . $_SESSION['area'] . "'"; $query = $GLOBALS['db']->Query($where); while($row = $query->fetchrow()) { $tags .= $row->Tags . ','; } $tagss = array_unique(explode(',',$tags)); @sort($tagss); $cloud = array(); foreach($tagss as $key => $val) { $obj = ''; if($val) { $obj->Name = $val; $res = $GLOBALS['db']->RowQuery("SELECT COUNT(Id) AS GalCount $where_m AND (Tags LIKE '%{$obj->Name}%' OR Tags LIKE '{$obj->Name},%' OR Tags LIKE '%,{$obj->Name}' )"); $obj->GCount = $res->GalCount; switch($obj->GCount) { case ($obj->GCount <= 1): $obj->Class = 'tagcloud1'; break; case ($obj->GCount == 2): $obj->Class = 'tagcloud2'; break; case ($obj->GCount == 3): $obj->Class = 'tagcloud3'; break; case ($obj->GCount >= 4): $obj->Class = 'tagcloud4'; break; } array_push($cloud, $obj); } } return $cloud; }
|
Дальше я вставил в function displayNews $GLOBALS['tmpl']->assign('tagCloud', $this->getTagCloud());
| и в if($archive==1) { $GLOBALS['tmpl']->assign('headernav', $GLOBALS['config_vars']['Newsarchive']); setMeta($GLOBALS['config_vars']['Newsarchive'],$GLOBALS['config_vars']['Newsarchive']); $GLOBALS['tmpl']->assign('tagCloud', $this-> getTagCloud()); }
|
Сделал это для того чтоб при переходе на Новости и при их чтении отображались тэги из галереи |