версия для печати.

Обсуждаем сайт и форум.

Модератор: f0s

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

версия для печати.

Непрочитанное сообщение Alex Keda » 2007-06-15 22:52:02

Сделал версию для печати.
в главном меню, вместо "опросов" :)))
==========
критика - приветствуется.
Убей их всех! Бог потом рассортирует...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-15 22:57:35

Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу, откуда взяли.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK


Время генерации страницы 0.459 секунд
Из них PHP: 29%; SQL: 71%; Число SQL-запросов: 75 шт.
Исходный размер: 33202; Сжатая: 11034
Мы — долго запрягаем, быстро ездим, и сильно тормозим.
http://www.lissyara.su —> статьи —> FreeBSD —> Security —> Бронированный FreeBSD
Это нафиг не нужно.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-06-15 23:06:47

даже не знаю...
меню - нужно, чтобы обратно вернутся на сайт, если придут с поисковика.
про тормоза.... да х.з. - почему бы не оставить :)))
ну а нижний блок... ну даже не знаю. тоже охота оставить.
есть конструктивная критика - причины почему не нужно?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-16 9:36:20

Ссылку обратно на сайт в версии для печати можно оставить. Остальное как-то не очень смотрится.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-06-16 11:29:35

блин...
я твоё мнение ценю, однако - у остальных его нету чтоли? :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-16 16:51:13

lissyara писал(а):блин...
я твоё мнение ценю, однако - у остальных его нету чтоли? :)
До первой звезды нельзя. :-) Ждёмс..
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
serge
майор
Сообщения: 2132
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Непрочитанное сообщение serge » 2007-06-16 17:47:49

Мнение есть конечно. :) Просто все устраивает поэтому и не критикую :P

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Непрочитанное сообщение schizoid » 2007-07-11 9:36:10

к версии для печати не относится...но
1. не пора ли поиск забодяжить ?
2. а низзя ли сортануть по алфовиту статьи? искать просто проще...
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-11 12:23:44

по алфлвиту - как?
многие называются весьма неявно...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Непрочитанное сообщение schizoid » 2007-07-11 12:37:15

ну типа из:

Код: Выделить всё

        CVSup
        начальная настройка
        Установка FreeBSD
        DUMMYNET
        Сборка ядра
        IPFW
        portupgrade
        обновление
        portsnap
        CP1251 на FreeBSD
        loader.conf
        defaults/rc.conf
        diskless
        jail
        Ntpdate/Ntpd
        Обновление мира ("world")
        PBR & PF
        bsnmpd
        newsyslog
        if_bridge
        make.conf
        PBR & IPFW
        Работа с HDD
в

Код: Выделить всё

        bsnmpd
        CP1251 на FreeBSD
        CVSup
        defaults/rc.conf
        diskless
        DUMMYNET
        if_bridge
        IPFW
        jail
        loader.conf
        make.conf
        newsyslog
        Ntpdate/Ntpd
        PBR & IPFW
        PBR & PF
        portsnap
        portupgrade
        начальная настройка
        обновление
        Обновление мира ("world")
        Работа с HDD
        Сборка ядра
        Установка FreeBSD
просто часто помнишь как статья называется, но бывает втыкаешь и не видишь где она лежит
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
Urgor
лейтенант
Сообщения: 668
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2007-07-13 8:30:32

Эта пять! То очем так долго говорили -- свершилось! :)
А нижний банер.... гм. IMHO функцию печати будут применять не для расклейки статей, на улицах города :)
2. а низзя ли сортануть по алфовиту статьи? искать просто проще...
+1 Пожелание сортануть меню по алфавиту полностью поддерживаю. Хотя и пользую lissyara's syte reader from Urgor :)
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-13 8:34:07

Urgor писал(а):Эта пять! То очем так долго говорили -- свершилось! :)
А нижний банер.... гм. IMHO функцию печати будут применять не для расклейки статей, на улицах города :)
непонял...
Urgor писал(а):
2. а низзя ли сортануть по алфовиту статьи? искать просто проще...
+1 Пожелание сортануть меню по алфавиту полностью поддерживаю. Хотя и пользую lissyara's syte reader from Urgor :)
ОК. тогда сделаю страничку со списком статей, типа как у автора
http://www.lissyara.su/?id=1070&author_id=1024
но с полным списком, и возможностью сортировки по названиям - устроит?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 668
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2007-07-13 9:05:47

но с полным списком, и возможностью сортировки по названиям - устроит?
Лис, ты не понял :) Слева менюха со статьями, вот в ней бы сортануть... или order by там не заюзать?
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-13 9:23:26

у...
не, меню левое даже трогать не буду.
там сто килобайт кода на это меню, и как он работает - я сам не понимаю.
Была как-то ночь, сел и написал. А утром смотрю и непонимаю - как оно работает..
с тех пор пару раз пытался понять - но ниасилил... чёрная дыра короче :)
=============
короче - вот это трогать я не буду :)
Убей их всех! Бог потом рассортирует...

Andy
ст. лейтенант
Сообщения: 1117
Зарегистрирован: 2007-03-04 7:48:58
Откуда: Mytischi

Непрочитанное сообщение Andy » 2007-07-13 10:03:32

lissyara писал(а):А утром смотрю и непонимаю - как оно работает..
с тех пор пару раз пытался понять - но ниасилил... чёрная дыра короче :)
Как коптерка старшины? :lol: А на чем писано, на php? Может код этого меню сюда, а мы вместе покумекаем?
Jul 16 19:37:15 freebsd sshd[4152]: Invalid user idiot from 210.75.200.104

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-13 10:09:00

ну держитесь :)))

Код: Выделить всё

$left_menu = "";
$part2_sql_query = "";

// последовательный перебор разделов (1 --> 6), до тех пор,
// пока не найдём уровень в котором встречается этот раздел
//echo "раздел из страницы = " . $massiv_page_text['rzd'] . "<br>\n";
$i = 0;
while($i++ < 6){
$sql_query = "SELECT * FROM `razdel_table` WHERE `rzd_" . $i . "`='" . $massiv_page_text['rzd'] . "' LIMIT 1";
//echo "кверя поиска раздела = " . $sql_query . "<br>\n";
$massiv_rzd_i = mysql_fetch_array(main_sql_query("$sql_query"));
$key = "rzd_" . $i;
//echo "i = " . $i . "ключики поиска раздела = " .$key . "<br>\n";
//echo "массив раздела по ключу = " . $massiv_rzd_i[$key] . "<br>\n";
if($massiv_rzd_i[$key] == $massiv_page_text['rzd']){
$rzd_uroven = $i;
$i = 7;
}
unset ($sql_query);
unset ($massiv_rzd_i);
unset ($key);
//echo $i . " ";
}

//echo "уровеань раздела в left_menu.php = " . $rzd_uroven . "<br>\n";

// определяем является ли страница индексной страницей какого-либо раздела
$massiv_rzd = mysql_fetch_array(main_sql_query("SELECT * FROM `razdel_table` WHERE `id_index_pade_rzd`='$id'"));
if($massiv_rzd['rzd_1'] != false){
// это индексная страница
$indx_page_curr_rzd = $id;
$index_top_rzd = $id;
}else{
// это не индексная страница
// определяем индексную страницу этого раздела
// вводим часть запроса где раздел и его уровень
$part1_sql_query = "rzd_" . $rzd_uroven . "='" . $massiv_page_text['rzd'] . "'";
// вводим вторую часть запроса, где определяем нулевые разделы
$i = $rzd_uroven;
while($i++ < 6){$part2_sql_query = $part2_sql_query . " AND `rzd_" . $i . "`='0' ";}
// составляем сам запрос
$sql_query = "SELECT `id_index_pade_rzd` FROM `razdel_table` WHERE " . $part1_sql_query . $part2_sql_query;
// делаем запрос на раздел к которому относится страница
$massiv_rzd_i = @mysql_fetch_array(main_sql_query("$sql_query"));
unset ($part1_sql_query);
unset ($part2_sql_query);
unset ($sql_query);
$indx_page_curr_rzd = $massiv_rzd_i['id_index_pade_rzd'];
$index_top_rzd = $massiv_rzd_i['id_index_pade_rzd'];
unset ($massiv_rzd_i);
}
/*
echo "раздел = " . $massiv_page_text['rzd'] . ", уровень раздела =
" . $rzd_uroven . ", индексная страница = " . $indx_page_curr_rzd . ",
 текущая страница = " . $id . "<br>\n";
*/
// достаём из таблицы разделов все страницы с разделом втрого уровня = разделу второго уровня текущей страницы
// достаём собственно список разделов текущего раздела :)
$razdeli_indeksnoy_stranitsi = mysql_fetch_array(main_sql_query("SELECT * FROM `razdel_table` WHERE `id_index_pade_rzd` = '" . $indx_page_curr_rzd . "'"));
// достаём из таблицы разделов все страницы с разделом втрого уровня = разделу второго уровня текущей страницы
// и при этом являющихся индексными для других разделов
$sql_2 = main_sql_query("SELECT * FROM `razdel_table` WHERE `rzd_2` = '" . $razdeli_indeksnoy_stranitsi['rzd_2'] . "' AND `rzd_4` = '0' AND `rzd_5` = '0' AND `rzd_6` = '0'");
// пробегаемся по массиву и последовательно вытаскиваем пункты меню
while ($d_2 = mysql_fetch_assoc($sql_2)){
        // запрос к БД самого сайта на построение меню - нужны заголовок и примечание
        $sql_2_site = mysql_fetch_array(main_sql_query("SELECT `rzd`,`zagolovok_menu`, `descriptions`,`vizible` FROM `site_table` WHERE `id`='" . $d_2['id_index_pade_rzd'] . "' ORDER BY `id`"));
        // если страница видимая (не нулю равен `визибле`)
        if($sql_2_site['vizible'] !== '0'){
        // если это индексная страница этого уровня раздела - то её не выводим
        // ломимся снова в таблицу разделов - смотрим индексная ли это страница раздела
        $sql_2_site_indx_rzd = mysql_fetch_array(main_sql_query("SELECT `id_index_pade_rzd` FROM `razdel_table` WHERE `id_index_pade_rzd` = '" . $d_2['id_index_pade_rzd'] . "' AND `rzd_3` = '0' AND `rzd_4` = '0' AND `rzd_5` = '0' AND `rzd_6` = '0'"));
        if($d_2['id_index_pade_rzd'] == $sql_2_site_indx_rzd['id_index_pade_rzd']){
        // ничё не делаем
        }else{
        // иначе - строим строку меню
        // теперь надо посмотреть не для того ли раздела мы строили строку, в котором сейчас находимся, и если так оно и есть -
        // надо строить выпадающее подменю...
        if($razdeli_indeksnoy_stranitsi['rzd_3'] == $sql_2_site['rzd']){
        $left_menu = $left_menu . "<TABLE border=\"0\" cellspacing=\"1\" cellpadding=\"0\" width=\"100%\" id=\"left_menu\">\n<TBODY>\n<TR>\n<TD height=\"20\" align=\"left\" class=\"current\" onmouseover=\"this.style.cursor='hand';\" onclick=\"window.location.href('./?id=" . $d_2['id_index_pade_rzd'] . "')\"><CODE style=\"font-size: 9pt;\"><A  class=\"left-menu-link\" title=\"" . htmlspecialchars($sql_2_site['descriptions']) . "\" href=\"./?id=" . $d_2['id_index_pade_rzd'] . "\">" . htmlspecialchars($sql_2_site['zagolovok_menu']) . "</a>\n</CODE></TD>\n</TR>\n</TBODY>\n</TABLE>\n";
        // меню построили, выпало :)
        // если следующий уровень разделов = 0, то это конец меню, и надо вывести все страницы этого раздела
        if($razdeli_indeksnoy_stranitsi['rzd_4'] == false){
        $curr_razdel_pages_2 = main_sql_query("SELECT `id`, `zagolovok_menu`, `descriptions`, `vizible` FROM `site_table` WHERE `rzd` = '$razdeli_indeksnoy_stranitsi[rzd_3]' ORDER BY `id`");
        while ($pages_2 = mysql_fetch_assoc($curr_razdel_pages_2)){
        // если это таже страница, для которой строится подменю, то её не выводим
        if($d_2['id_index_pade_rzd'] !== $pages_2['id']){
        // если `visible` не равно нулю - выводим в меню
        if($pages_2['vizible'] == '1'){
        // раскрашиваем текущий пункт меню
        if($pages_2['id'] == $id){$menu_color = "class=\"current\" onmouseover=\"this.style.cursor='hand';\" onclick=\"window.location.href('./?id=" . $pages_2['id'] . "')\"";}else{$menu_color = "class=\"hilightoff\" onmouseover=\"className='hilighton'; this.style.cursor='hand';\" onmouseout=\"className='hilightoff';\" onclick=\"window.location.href('./?id=" . $pages_2['id'] . "')\"";}
        $left_menu = $left_menu . "<TABLE border=\"0\" cellspacing=\"1\" cellpadding=\"0\" width=\"100%\" id=\"left_menu\">\n<TBODY>\n<TR>\n<TD width=\"20\" style=\"font-size: 12px\">&nbsp;</TD>\n<TD height=\"20\" align=\"left\" " . $menu_color . "><CODE style=\"font-size: 9pt;\"><A class=\"left-menu-link\" title=\"" . htmlspecialchars($pages_2['descriptions']) . "\" href=\"./?id=" . $pages_2['id'] . "\">" . htmlspecialchars($pages_2['zagolovok_menu']) . "</a></CODE></TD>\n</TR>\n</TBODY>\n</TABLE>\n";
        }}}}

                // если совпало - надо строить подменю....
                // достаём из таблицы разделов все страницы с разделом третьего уровня = разделу третьего уровня текущей страницы
                // и при этом являющихся индексными для других разделов
                $sql_3 = main_sql_query("SELECT * FROM `razdel_table` WHERE `rzd_3` = '" . $razdeli_indeksnoy_stranitsi['rzd_3'] . "' AND `rzd_5` = '0' AND `rzd_6` = '0'");
                // пробегаемся по массиву и последовательно вытаскиваем пункты меню
                while ($d_3 = mysql_fetch_assoc($sql_3)){
                // запрос к БД самого сайта на построение меню - нужны заголовок и примечание
                $sql_3_site = mysql_fetch_array(main_sql_query("SELECT `rzd`,`zagolovok_menu`, `descriptions`,`vizible` FROM `site_table` WHERE `id`='" . $d_3['id_index_pade_rzd'] . "' ORDER BY `id`"));
                // если страница видимая (не нулю равен `визибле`)
                if($sql_3_site['vizible'] == '1'){
                // если это индексная страница этого уровня раздела - то её не выводим
                // ломимся снова в таблицу разделов - смотрим индексная ли это страница раздела
                $sql_3_site_indx_rzd = mysql_fetch_array(main_sql_query("SELECT `id_index_pade_rzd` FROM `razdel_table` WHERE `id_index_pade_rzd` = '" . $d_3['id_index_pade_rzd'] . "' AND `rzd_4` = '0' AND `rzd_5` = '0' AND `rzd_6` = '0'"));
                if($d_3['id_index_pade_rzd'] == $sql_3_site_indx_rzd['id_index_pade_rzd']){
                // ничё не делаем
                }else{
                // иначе - строим строку меню
                // теперь надо посмотреть не для того ли раздела мы строили строку, в котором сейчас находимся, и если так оно и есть -
                // надо строить выпадающее подменю...
                if($razdeli_indeksnoy_stranitsi['rzd_4'] == $sql_3_site['rzd']){
                $left_menu = $left_menu . "<TABLE border=\"0\" cellspacing=\"1\" cellpadding=\"0\" width=\"100%\" id=\"left_menu\">\n<TBODY>\n<TR>\n<TD width=\"20\" style=\"font-size: 12px\">&nbsp;</TD>\n<TD height=\"20\" align=\"left\" class=\"current\" onmouseover=\"this.style.cursor='hand';\" onclick=\"window.location.href('./?id=" . $d_3['id_index_pade_rzd'] . "')\"><CODE style=\"font-size: 9pt;\"><A class=\"left-menu-link\" title=\"" . htmlspecialchars($sql_3_site['descriptions']) . "\" href=\"./?id=" . $d_3['id_index_pade_rzd'] . "\">" . htmlspecialchars($sql_3_site['zagolovok_menu']) . "</a></CODE></TD>\n</TR>\n</TBODY>\n</TABLE>\n";
                // меню построили, выпало :)
                // если следующий уровень разделов = 0, то это конец меню, и надо вывести все страницы этого раздела
                if($razdeli_indeksnoy_stranitsi['rzd_5'] == false){
                $curr_razdel_pages_3 = main_sql_query("SELECT `id`, `zagolovok_menu`, `descriptions`, `vizible` FROM `site_table` WHERE `rzd` = '$razdeli_indeksnoy_stranitsi[rzd_4]' ORDER BY `id`");
                while ($pages_3 = mysql_fetch_assoc($curr_razdel_pages_3)){
                // если это таже страница, для которой строится подменю, то её не выводим
                if($d_3['id_index_pade_rzd'] !== $pages_3['id']){
                // если `visible` не равно нулю - выводим в меню
                if($pages_3['vizible'] == '1'){
                // раскрашиваем текущий пункт меню
                if($pages_3['id'] == $id){$menu_color = "class=\"current\" onmouseover=\"this.style.cursor='hand';\" onclick=\"window.location.href('./?id=" . $pages_3['id'] . "')\"";}else{$menu_color = "class=\"hilightoff\" onmouseover=\"className='hilighton'; this.style.cursor='hand';\" onmouseout=\"className='hilightoff';\" onclick=\"window.location.href('./?id=" . $pages_3['id'] . "')\"";}
                $left_menu = $left_menu . "<TABLE border=\"0\" cellspacing=\"1\" cellpadding=\"0\" width=\"100%\" id=\"left_menu\">\n<TBODY>\n<TR>\n<TD width=\"40\" style=\"font-size: 12px\">&nbsp;</TD>\n<TD height=\"20\" align=\"left\" " . $menu_color . "><CODE style=\"font-size: 9pt;\"><A class=\"left-menu-link\" title=\"" . htmlspecialchars($pages_3['descriptions']) . "\" href=\"./?id=" . $pages_3['id'] . "\">" . htmlspecialchars($pages_3['zagolovok_menu']) . "</a></CODE></TD>\n</TR>\n</TBODY>\n</TABLE>\n";
                }}}}

                        // если совпало - надо строить подменю....
                        // достаём из таблицы разделов все страницы с разделом третьего уровня = разделу третьего уровня текущей страницы
                        // и при этом являющихся индексными для других разделов
                        $sql_4 = main_sql_query("SELECT * FROM `razdel_table` WHERE `rzd_4` = '" . $razdeli_indeksnoy_stranitsi['rzd_4'] . "' AND `rzd_6` = '0'");
                        // пробегаемся по массиву и последовательно вытаскиваем пункты меню
                        while ($d_4 = mysql_fetch_assoc($sql_4)){
                        // запрос к БД самого сайта на построение меню - нужны заголовок и примечание
                        $sql_4_site = mysql_fetch_array(main_sql_query("SELECT `rzd`,`zagolovok_menu`, `descriptions`,`vizible` FROM `site_table` WHERE `id`='" . $d_4['id_index_pade_rzd'] . "'"));
                        // если страница видимая (не нулю равен `визибле`)
                        if($sql_4_site['vizible'] == '1'){
                        // если это индексная страница этого уровня раздела - то её не выводим
                        // ломимся снова в таблицу разделов - смотрим индексная ли это страница раздела
                        $sql_4_site_indx_rzd = mysql_fetch_array(main_sql_query("SELECT `id_index_pade_rzd` FROM `razdel_table` WHERE `id_index_pade_rzd` = '" . $d_4['id_index_pade_rzd'] . "' AND `rzd_5` = '0' AND `rzd_6` = '0'"));
                        if($d_4['id_index_pade_rzd'] == $sql_4_site_indx_rzd['id_index_pade_rzd']){
                        // ничё не делаем
                        }else{
                        // иначе - строим строку меню
                        // теперь надо посмотреть не для того ли раздела мы строили строку, в котором сейчас находимся, и если так оно и есть -
                        // надо строить выпадающее подменю...
                        if($razdeli_indeksnoy_stranitsi['rzd_4'] == $sql_4_site['rzd']){
                        $left_menu = $left_menu . "<TABLE border=\"0\" cellspacing=\"1\" cellpadding=\"0\" width=\"100%\" id=\"left_menu\">\n<TBODY>\n<TR>\n<TD width=\"40\" style=\"font-size: 12px\">&nbsp;</TD>\n<TD height=\"20\" align=\"left\" class=\"current\" onmouseover=\"this.style.cursor='hand';\" onclick=\"window.location.href('./?id=" . $d_4['id_index_pade_rzd'] . "')\"><CODE style=\"font-size: 9pt;\"><A class=\"left-menu-current\" title=\"" . htmlspecialchars($sql_4_site['descriptions']) . "\" href=\"./?id=" . $d_4['id_index_pade_rzd'] . "\">" . htmlspecialchars($sql_4_site['zagolovok_menu']) . "</a></CODE></TD>\n</TR>\n</TBODY>\n</TABLE>\n";
                        /*
                        // меню построили, выпало :)
                        // если следующий уровень разделов = 0, то это конец меню, и надо вывести все страницы этого раздела
                        echo "6-й уровень = " . $razdeli_indeksnoy_stranitsi['rzd_6'];
                        if($razdeli_indeksnoy_stranitsi['rzd_6'] == false){
                        echo "совпало!"; }
                        */
                        }else{
                        $left_menu = $left_menu . "<TABLE border=\"0\" cellspacing=\"1\" cellpadding=\"0\" width=\"100%\" id=\"left_menu\">\n<TBODY>\n\t<TR>\n\t\t<TD width=\"40\" style=\"font-size: 12px\">&nbsp;</TD>\n\t\t<TD height=\"20\" align=\"left\" class=\"hilightoff\" onmouseover=\"className='hilighton'; this.style.cursor='hand';\" onmouseout=\"className='hilightoff';\" onclick=\"window.location.href('./?id=" . $d_4['id_index_pade_rzd'] . "')\"><CODE style=\"font-size: 9pt;\"><A class=\"left-menu-link\"  title=\"" . htmlspecialchars($sql_4_site['descriptions']) . "\" href=\"./?id=" . $d_4['id_index_pade_rzd'] . "\">" . htmlspecialchars($sql_4_site['zagolovok_menu']) . "</a></CODE></TD>\n\t\t</TR>\n\t</TBODY>\n</TABLE>\n";
                        }}}}

                }else{
                $left_menu = $left_menu . "<TABLE border=\"0\" cellspacing=\"1\" cellpadding=\"0\" width=\"100%\" id=\"left_menu\">\n<TBODY>\n<TR>\n<TD width=\"20\" style=\"font-size: 12px\">&nbsp;</TD>\n<TD height=\"20\" align=\"left\" class=\"hilightoff\" onmouseover=\"className='hilighton'; this.style.cursor='hand';\" onmouseout=\"className='hilightoff';\" onclick=\"window.location.href('./?id=" . $d_3['id_index_pade_rzd'] . "')\"><CODE style=\"font-size: 9pt;\"><A class=\"left-menu-link\" title=\"" . htmlspecialchars($sql_3_site['descriptions']) . "\" href=\"./?id=" . $d_3['id_index_pade_rzd'] . "\">" . htmlspecialchars($sql_3_site['zagolovok_menu']) . "</a></CODE></TD>\n</TR>\n</TBODY>\n</TABLE>\n";
                }}}}

        }else{
        $left_menu = $left_menu . "<TABLE border=\"0\" cellspacing=\"1\" cellpadding=\"0\" width=\"100%\" id=\"left_menu\">\n<TBODY>\n<TR>\n<TD height=\"20\" align=\"left\" class=\"hilightoff\" onmouseover=\"className='hilighton'; this.style.cursor='hand';\" onmouseout=\"className='hilightoff';\" onclick=\"window.location.href('./?id=" . $d_2['id_index_pade_rzd'] . "')\"><CODE style=\"font-size: 9pt;\"><A class=\"left-menu-link\" title=\"" . htmlspecialchars($sql_2_site['descriptions']) . "\" href=\"./?id=" . $d_2['id_index_pade_rzd'] . "\">" . htmlspecialchars($sql_2_site['zagolovok_menu']) . "</a></CODE></TD>\n</TR>\n</TBODY>\n</TABLE>\n";
}}}}

// удаляем все переменные, кроме $left_menu (в ней собственно результат - меню :))
unset ($i);
unset ($sql_query);
unset ($massiv_rzd_i);
unset ($key);
//unset ($rzd_uroven); закомментировано т.к. нужно для постороения навигационной полосы
unset ($massiv_rzd);
unset ($indx_page_curr_rzd);
unset ($index_top_rzd);
unset ($part1_sql_query);
unset ($part2_sql_query);
unset ($razdeli_indeksnoy_stranitsi);
unset ($sql_2);
unset ($d_2);
unset ($sql_2_site);
unset ($sql_2_site_indx_rzd);
unset ($curr_razdel_pages_2);
unset ($pages_2);
unset ($sql_3);
unset ($d_3);
unset ($sql_3_site);
unset ($sql_3_site_indx_rzd);
unset ($curr_razdel_pages_3);
unset ($pages_3);
unset ($sql_4);
unset ($d_4);
unset ($sql_4_site);
unset ($sql_4_site_indx_rzd);
unset ($curr_razdel_pages_4);
unset ($pages_4);
чё-то коду меньше чем я думал :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-13 10:09:51

мдя... без слёз не взглянешь..
чего стоят тока SELECT * когда надо всего одно поле :)))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 668
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2007-07-13 10:46:13

структуру таблицы можешь показать? а то аж крышу срывает.... :shock:
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-13 11:52:10

Код: Выделить всё

-- 
-- Структура таблицы `razdel_table`
-- 

CREATE TABLE `razdel_table` (
  `rzd_1` int(3) NOT NULL default '0',
  `rzd_2` int(3) NOT NULL default '0',
  `rzd_3` int(3) NOT NULL default '0',
  `rzd_4` int(3) NOT NULL default '0',
  `rzd_5` int(3) NOT NULL default '0',
  `rzd_6` int(3) NOT NULL default '0',
  `id_index_pade_rzd` int(10) NOT NULL default '0',
  `vizible_name_rzd` varchar(128) collate cp1251_bin NOT NULL default '',
  PRIMARY KEY  (`id_index_pade_rzd`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin COMMENT='таблица разделов сайта';

-- 
-- Дамп данных таблицы `razdel_table`
-- 

INSERT INTO `razdel_table` (`rzd_1`, `rzd_2`, `rzd_3`, `rzd_4`, `rzd_5`, `rzd_6`, `id_index_pade_rzd`, `vizible_name_rzd`) VALUES 
(1, 0, 0, 0, 0, 0, 1000, 'www.lissyara.su'),
(1, 2, 0, 0, 0, 0, 1001, 'главная'),
(1, 3, 0, 0, 0, 0, 1002, 'форум'),
(1, 4, 0, 0, 0, 0, 1003, 'статьи'),
(1, 5, 0, 0, 0, 0, 1004, 'документация'),
(1, 6, 0, 0, 0, 0, 1005, 'опросы'),
(1, 7, 0, 0, 0, 0, 1006, 'поиск по сайту'),
(1, 4, 8, 0, 0, 0, 1007, 'FreeBSD'),
(1, 4, 8, 9, 0, 0, 1008, 'настройка'),
(1, 4, 8, 10, 0, 0, 1009, 'подсчёт траффика'),
(1, 4, 8, 11, 0, 0, 1011, 'Программы для FreeBSD'),
(1, 4, 12, 0, 0, 0, 1014, 'Очумелые ручки'),
(1, 4, 8, 13, 0, 0, 1015, 'почтовые системы'),
(1, 14, 0, 0, 0, 0, 1020, 'Downloads'),
(1, 14, 15, 0, 0, 0, 1021, 'boot disks'),
(1, 14, 15, 16, 0, 0, 1022, 'WinNT'),
(1, 14, 15, 17, 0, 0, 1023, 'DOS & Win9x'),
(1, 2, 18, 0, 0, 0, 1025, 'Страница авторов сайта'),
(1, 4, 12, 19, 0, 0, 1032, 'Компы'),
(1, 4, 12, 20, 0, 0, 1033, 'не тока компы - прочее'),
(1, 14, 21, 0, 0, 0, 1036, 'downloads -> Программы для форточек'),
(1, 2, 22, 0, 0, 0, 1038, 'главная -> история'),
(1, 4, 12, 23, 0, 0, 1047, 'очумелые ручки -> околокомпы'),
(1, 5, 24, 0, 0, 0, 1052, 'RFC'),
(1, 5, 25, 0, 0, 0, 1067, 'программирование'),
(1, 14, 15, 26, 0, 0, 1074, 'Прочие DOS`ы'),
(1, 4, 8, 27, 0, 0, 1078, 'Железки под фрёй'),
(1, 4, 8, 28, 0, 0, 1080, 'Мелочёвка'),
(1, 4, 8, 29, 0, 0, 1086, 'Программы для работы с FS'),
(1, 4, 8, 30, 0, 0, 1130, 'WWW'),
(1, 2, 31, 0, 0, 0, 1142, 'статистика поссещений.'),
(1, 4, 8, 32, 0, 0, 1146, 'Security'),
(1, 2, 33, 0, 0, 0, 1174, 'Архив статей'),
(1, 5, 34, 0, 0, 0, 1200, 'Specification of the Exim Mail Transfer Agent'),
(1, 14, 15, 35, 0, 0, 1065, 'прочие загрузочные диски'),
(1, 4, 8, 36, 0, 0, 1170, 'system'),
(1, 5, 37, 0, 0, 0, 1357, 'Документация поFreeBSD'),
(1, 5, 38, 0, 0, 0, 1400, 'LDAP'),
(1, 4, 8, 39, 0, 0, 1352, 'freebsd->games'),
(1, 4, 8, 40, 0, 0, 1353, 'Иксы'),
(1, 4, 8, 41, 0, 0, 1354, 'программирование (FreeBSD)'),
(1, 5, 37, 42, 0, 0, 1340, 'mpd'),
(1, 5, 43, 0, 0, 0, 1358, 'doc -> man');
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-13 11:54:01

ага... тут даже не поллитра, а литр надо :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 668
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2007-07-13 12:16:18

Ну с сортировка у тебя идет по id :) "....ORDER BY `id`" из таблицы site_table.... Может сделать ORDER BY `zagolovok_menu`? ;) И что значат rzd?
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-13 12:36:14

раздел, наверно :))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 668
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Re: версия для печати.

Непрочитанное сообщение Urgor » 2007-07-18 7:30:08

Пытался честно сплагиатить твою работу с меню, но.... моих познаний php явно не хватило :oops: Вот написал свою:

Код: Выделить всё

#
# Table structure for table 'section'
#

CREATE TABLE section (
  sectionID int(3) NOT NULL auto_increment,
  parentID int(3) NOT NULL DEFAULT '0' ,
  title varchar(255) NOT NULL DEFAULT '' ,
  content text ,
  PRIMARY KEY (sectionID),
  INDEX title (title)
);


#
# Dumping data for table 'section'
#
INSERT INTO section VALUES("1","0","About Site","This is a simple but useful tool and can either be used as a site menu system.");
INSERT INTO section VALUES("2","0","Other category","texttexttexttexttexttexttext");
INSERT INTO section VALUES("3","2","Second level category","texttexttexttexttexttexttext");
INSERT INTO section VALUES("4","3","Third level","texttexttexttexttexttexttext");
INSERT INTO section VALUES("5","0","Installation instruction","unpack the downloaded file!");
INSERT INTO section VALUES("6","0","Requirements","MySQL<br>PHP4+<br>Webserver (anything that can run PHP)");
INSERT INTO section VALUES("7","5","another level","texttexttexttexttexttexttext");
INSERT INTO section VALUES("8","5","umm now another one","texttexttexttexttexttexttext");
INSERT INTO section VALUES("9","7","you must be joking","texttexttexttexttexttexttext");
INSERT INTO section VALUES("10","4","bobo","texttexttexttexttexttexttext");
INSERT INTO section VALUES("11","4","oh boy","texttexttexttexttexttexttext");
И сам код для генерации меню:

Код: Выделить всё

<?
#database settings
function dbconnect (){
$mysql=mysql_connect("localhost", "SiteUser", "UserPassword");
mysql_select_db("urgor");
return $mysql;
}

function mytree($parentid, $subid, $menu, $level) {
  $dots = "<==$level==>";
  $sql = "select sectionID, parentID, title from section where parentID = '$parentid' order by title asc";
  $result=mysql_query($sql);
  while ($row = mysql_fetch_array($result)) {
    $output = $output . "<a href=\"$php_self?id=$row[parentID]\">$dots</a>&nbsp;&nbsp;<a href=\"$php_self?id=$row[sectionID]\">".stripslashes($row[title])."</a> (myid:$row[sectionID])(myparentid:$row[parentID])(mytreelevel:$level)<br>";  
    if ($subid == $row[sectionID]) $output = $output . $menu;  
  }
  if ($parentid > 0) {
    $sql = "select sectionID, parentID from section where sectionID = '$parentid'";
    $result=mysql_query($sql);
    $row = mysql_fetch_array($result);
    $output = mytree($row[parentID], $parentid, $output, ++$level);
  }
  $dots = '';
  for ($i = $level; $i > 0; $i--) {
    $output = str_replace("<==$i==>", $dots, $output);
    $dots .= '<img border="0" src="images/bul-path.gif" width="17" height="11">';
  }
  return $output;
}

$id = $_GET['id'];
if ($id == '') $id = 0;

#----------------------------------------------------------------------
dbconnect();
$menu = mytree($id,0,'',1);

echo $menu;

mysql_close();
?>
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35271
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: версия для печати.

Непрочитанное сообщение Alex Keda » 2007-07-18 7:55:12

вечером гляну - чё-то совсем у тя просто получилось.
Неправильно это - коду должно быть много :)))
Убей их всех! Бог потом рассортирует...

kmb
лейтенант
Сообщения: 680
Зарегистрирован: 2007-02-20 8:30:03
Контактная информация:

Re: версия для печати.

Непрочитанное сообщение kmb » 2007-10-30 11:20:36

может стоит использовать технологию Nested Sets или что-нибудь подобное... Имхо, для меню-деревьев самое-то...
truth is out there...