Форум -> Обо всём... -> Вопрос по модулю whiteboard | Вопрос по модулю whiteboard |
---|
otherside | Дата: 27.04.2009, в 10:01 | Сообщение №1 | СтарожилПользователь №: 22 Сообщений: 387
| Добрый день, господа!
Помогите решить небольшую задачку. Итак, нужно переделать функцию categories так, чтоб если человек зашёл в родительскую категорию, сверху выводился бы список входящих только в неё подкатегорий, а вот если человек зашел уже в подкатегоорию, ничего бы не выводилось.
Версия системы: 2.5
На всякий случай, выкладываю эту функцию:
Код | 1
| function categories($id="") {
global $prefix, $db, $module_name, $tabcolumn, $showsubkat, $multilingual, $currentlang;
static $massiv, $massiv2;
$id = (intval($id)) ? $id : 0;
if ($id) {
$where = "WHERE pid = '$id'";
} elseif ($id && $multilingual) {
$where = "WHERE pid = '$id' AND (language='$currentlang' OR language='')";
} elseif ($multilingual) {
$where = "WHERE language='$currentlang' OR language=''";
} else {
$where = "";
}
$tdwidth = intval(100/$tabcolumn);
if (!is_array($massiv)) {
$result = $db->sql_query("SELECT cid, title, pid, img, description, posts FROM ".$prefix."_wb_categories ".$where."");
while (list($cid, $title, $pid, $img, $description, $posts) = $db->sql_fetchrow($result)){
$posts = intval($posts);
$massiv[] = array($cid, $title, $pid, $img, $description, $posts);
}
}
if (!is_array($massiv2)) {
$result = $db->sql_query("SELECT cid, title, pid, posts FROM ".$prefix."_wb_categories ".$where."");
while (list($cid, $title, $pid, $posts) = $db->sql_fetchrow($result)){
$posts = intval($posts);
$posts = intval($posts);
$massiv2[] = array($cid, $title, $pid, $posts);
}
}
if ($massiv) {
foreach ($massiv as $key => $val) {
if ($val[2] == $id) {
$img = (trim($val[3]) != "") ? "<a href=\"index.php?name=$module_name&op=cat&cid=".$val[0]."\" title=\"".$val[1]."\"><img border=\"0\" src=\"".$val[3]."\" title=\"$title\"></a>" : "";
$ccontent .= "<td valign=\"top\" width=\"".$tdwidth."%\"><table border=\"0\"><tr><td>$img</td><td><a href=\"index.php?name=$module_name&op=cat&cid=".$val[0]."\" title=\"".$val[1]."\">111<font class=\"rubriki\"><b>".$val[1]." </b></font></a><br /><i>".$val[4]."</i></td></tr>";
if ($showsubkat == 1 && $massiv2) {
foreach ($massiv2 as $key => $val2) {
if ($val[0] == $val2[2]) {
$ccontent .= "<tr><td colspan=\"2\"><img border=\"0\" src=\"images/navi.gif\" title=\"".$val2[1]."\"> <a href=\"index.php?name=$module_name&op=cat&cid=".$val2[0]."\" title=\"".$val2[1]."\">".$val2[1]." </a></td></tr>";
}
}
}
$ccontent .= "</table></td>";
if ($cont == ($tabcolumn - 1)) {
$ccontent .= "</tr><tr>";
$cont = 0;
} else {
$cont++;
}
}
}
}
if ($ccontent) {
OpenTable();
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"10\" align=\"center\"><tr>".$ccontent."</td></tr></table>";
list($p_num) = $db->sql_fetchrow($db->sql_query("SELECT Count(pid) FROM ".$prefix."_wb WHERE status='1'"));
list($cat_num) = $db->sql_fetchrow($db->sql_query("SELECT Count(cid) FROM ".$prefix."_wb_categories"));
$p_num = intval($p_num);
$cat_num = intval($cat_num);
CloseTable();
}
} |
|
| | | Serg_pnz | Дата: 27.04.2009, в 10:38 | Сообщение №2 | АдминистраторПользователь №: 1 Сообщений: 2242
| Если "парентид" не ноль, то ничё не выводить. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | Daigo | Дата: 29.04.2009, в 22:14 | Сообщение №3 | НовичокПользователь №: 486 Сообщений: 18
| Цитата | Итак, нужно переделать функцию categories так, чтоб если человек зашёл в родительскую категорию, сверху выводился бы список входящих только в неё подкатегорий, а вот если человек зашел уже в подкатегоорию, ничего бы не выводилось. |
Так вроде по умолчанию так и работает
|
| | otherside | Дата: 30.04.2009, в 06:40 | Сообщение №4 | СтарожилПользователь №: 22 Сообщений: 387
| Цитата | Так вроде по умолчанию так и работает |
И действительно! Я просто очень долго и очень много чего поменял в этом модуле, видимо чего то где то похерил нужное. То есть, если просто заменяю функцию categories той, которую мне дал Daigo, ничегоне меняется, так же отобржаются все категории и подкатегории, а вот если целиков заменяю index.php, тем который дал Daigo, тогда все работает как надо. Скажите, где еще, кроме функции categories нужно искать причину? |
| | otherside | Дата: 30.04.2009, в 07:29 | Сообщение №5 | СтарожилПользователь №: 22 Сообщений: 387
| Всё, отбой, все дело было в моей тупости, которая иногда меня настигает! Я выводил категории вот так categories();, а нужно было вот так categories($cid); |
| | | Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|
|