Консультация № 75863
15.02.2007, 14:45
0.00 руб.
0 2 2
Здраствуйте ув. эксперты. У меня проблемка: на многих ЦМС в админка при созданиинавигаций есть стлочки вверх и вниз, которые ставять ссылку выше или ниже. Как это можно организовать.
Спасибо.

Обсуждение

Неизвестный
15.02.2007, 15:09
общий
это ответ
Здравствуйте, Маторник Михаил!

Предположим, у тебя структура сайта хранится в БД:

id
pageName

Добавляешь поле orderBy, отвечающее за расположение страницы относительно других.

Допустим, у тебя есть 4 страницы (id : pageName : orderBy)

1: page1 : 1
2: page2 : 2
3: page3: 3
4: page4: 4

Допустим, тебе надо переместить page4 на позицию вверх.
Для этого тебе надо выполнить такие запросы к БД:

update structure set orderBy = orderBy+1 where orderBy >=3;
update structure set orderBy = 3 where id = 4;

HTML-код ссылки на "перемещение вверх" page6 может выглядеть так:
<a href="structure.php?action=moveUp&id=4">вверх</a>

PHP-код для обработки:

/// тут подключамся к базе (mysql_connect() и прочее)

$action = $_REQUEST[‘action‘];
$id = $_REQUEST[‘action‘];

if ($action == ‘moveUp‘) {
$sql = "update structure set orderBy = orderBy+1 where orderBy >=".$id-1;
mysql_query($sql);
$sql = "update structure set orderBy = ".$id-1." where id = $id";
mysql_query($sql);
}

Аналогично можно написать для перемещения страницы вниз.
Неизвестный
15.02.2007, 16:31
общий
это ответ
Здравствуйте, Маторник Михаил!
Для того чтоб вам избавится от своей проблемки вам надо организовать таблицу в БД с двумя полями: 1.Ссылка в html форме и 2.Статус этой ссылки(другими словами ее важность или,если хотите,ее место в первенстве, к примеру от 1 до 10)...таким образом будет таблица с названием ссылки и ее местом среди остальных ссылок :)После этого следует позаботится о выводе этих ссылок в html страничку!Для этого в скрипт, формирующего эту самую страничку, вы должны втулить функцию считки списка ссылок с БД и групировки их в соответствии их статусов по возростанию,и потом организуйте последовательный их вывод--тогда получится что ссылка со статусом первое место будет вверху а ссылка со статусом последнее место -внизу всего списка ссылок на страничке.Все!!! :)В самой
админке надо тогда сделать функцию записи в эту БД...)))
Форма ответа