Понедельников НЕТ!
Регистрация или вход Регистрация или вход Избранное на этом сайте | Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней
Скачать SSDForums
Скачать SSDForums 1.0.1 Скачать SSDForums 1.0.1
Скачать SSDForums 1.0.1 SP1 Скачать SSDForums 1.0.1 SP1
Скачать SSDForums 1.0.1 SP2 Скачать SSDForums 1.0.1 SP2
SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro
SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro
Jewelry Сase Team
Скачать Ruby Chat 0.1.1 Скачать Ruby Chat 0.1.1
Меню
Главная
Форум
Магазин цифровых товаров

Новости
Подписка на новости
Темы новостей
Добавить новость

Каталог файлов
Карта файлового архива
Публикации

Опросы
Анкета пользователя
Чат

BestMaker
Викторина
Архив новостей
Карманный оракул
Поиск по сайту с помощью Яндекс
Поиск по сайту с помощью Google
Фото дня
Для души
Погода на 3 дня
IndexCat
IndexTop
Map_Pages
Поиск по сайту









Подписка на новости
Ваше имя:
Ваш E-Mail:*
Секретный код:
Секретный код
Повторить:*
Интересное в сети

Sape — это система купли-продажи ссылок
с главных и внутренних страниц сайтов
Форум -> Обо всём... -> Вопрос по модулю whiteboard
Вопрос по модулю whiteboard
otherside Дата: 27.04.2009, в 10:01 | Сообщение №1
otherside
Старожил
Пользователь №: 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
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2242

Если "парентид" не ноль, то ничё не выводить.

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
Daigo Дата: 29.04.2009, в 22:14 | Сообщение №3
Daigo
Новичок
Пользователь №: 486
Сообщений: 18

Цитата
Итак, нужно переделать функцию categories так, чтоб если человек зашёл в родительскую категорию, сверху выводился бы список входящих только в неё подкатегорий, а вот если человек зашел уже в подкатегоорию, ничего бы не выводилось.

Так вроде по умолчанию так и работает
otherside Дата: 30.04.2009, в 06:40 | Сообщение №4
otherside
Старожил
Пользователь №: 22
Сообщений: 387

Цитата
Так вроде по умолчанию так и работает

И действительно! Я просто очень долго и очень много чего поменял в этом модуле, видимо чего то где то похерил нужное. То есть, если просто заменяю функцию categories той, которую мне дал Daigo, ничегоне меняется, так же отобржаются все категории и подкатегории, а вот если целиков заменяю index.php, тем который дал Daigo, тогда все работает как надо. Скажите, где еще, кроме функции categories нужно искать причину?
otherside Дата: 30.04.2009, в 07:29 | Сообщение №5
otherside
Старожил
Пользователь №: 22
Сообщений: 387

Всё, отбой, все дело было в моей тупости, которая иногда меня настигает! Я выводил категории вот так categories();, а нужно было вот так categories($cid);

Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!


Реклама
Главная | Форум | Новости | Подписка на новости | Темы новостей | Добавить новость | Каталог файлов | Карта файлового архива | Публикации | Опросы | Анкета пользователя | Чат | BestMaker | Викторина | Архив новостей | Карманный оракул | Поиск по сайту с помощью Яндекс | Поиск по сайту с помощью Google | Фото дня | Для души | Погода на 3 дня | IndexCat | IndexTop | Map_Pages | Весь Оракул

Rambler's Top100

Генерация страницы: 0.257 сек. и 17 запросов к базе данных за 0.020 сек.
Web site engine code is Copyright © 2006 by SLAED CMS. All rights reserved.