Как обойти все то что было написано в верху.
Задача решается элементарным способом:
Теория и практика ORE ну и php тоже.
Все ссылки URL на вывод модулей на страницу за исключением модуля page записываются в столбец href таблицы menu и имеют вид к примеру /site/index.
Т.е. написав в строку URL http://ваш домен/site/index, и нажав enter браузер передает методом GET команду которая обрабатывается php скриптом и выведет главную страницу с имеющимися на ней модулями.
Get метод обрабатывается при помощи знака "?". Т.е. если вы пишете в URL http://ваш домен/ ?page=2 то серверный скрипт к примеру <?php $p = htmlspecialchars($_GET['page']); ?>
получает именно ту строку page с идентификатором равным 2. Допустим что у нас есть скрипт который обрабатывает вывод этих ссылок на экран.
То нам нужно добавить к строке site/index в столбце href базы данных menu продолжение строки ?page=2
Для этого в таблице menu добавим столбец допустим active_href, для обозначения активности? чтобы повторно не записать данные в столбец href и не попортить ссылки дублированием значений.
Делается это следующим способом:
- Код: Выделить всё
mysql_query("UPDATE `menu` SET `href` =
CONCAT(`menu`.`href`, '?page=', `menu`.`id`)
WHERE `active_href` = 0");
mysql_query("UPDATE `menu` SET `active_href` = '1'
WHERE `active_href` = 0");
Пояснения: UPDATE - обновление таблицы menu
SET - что обновляем
CONCAT - объединяем (в данном случае объединяем столбец href таблицы menu с текстовым значением '?page=', и со значением столбца id таблицы menu )
WHERE `active_href`равно нулю (добавленный столбец активности ссылок).
При загрузке сайта и нажатии на ссылки в меню сайта Главная, новости, вопросы и ответы, спец предложения и т.д. получаем допустим "Главная" - URL http://ваш домен/site/index?page=2? где 2 это номер id главной страницы в таблице menu
Второй скрипт SQL выполняется последовательно первому для установки 1 как активной, то есть первый скрипт проверив наличие 1 уже не будет добавлять никаких значений в ячейку href где в active_href есть цифра один.