Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2010, 11:05   #1
Che Guevara
Пользователь
 
Аватар для Che Guevara
 
Регистрация: 27.07.2010
Сообщений: 91
По умолчанию Переменное меню на ПХП

Привет программистам! Есть задумка - написать динамически изменяемое меню на ПХП. Почему динамическое - потому что хочу чтобы из админки можно было изменять его.
Если есть идеи как это реализовать - милости просим. Спасибо!
Che Guevara вне форума Ответить с цитированием
Старый 13.08.2010, 11:26   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

А нельзя ли вашу "задумку" более подробно представить?
В чём проблема с реализацией?
Потому как по вашему описанию - задача самая тривиальная(сделать в админке возможность редактирования того,что будет выведено в качестве Меню),и особых проблем быть не должно...
Andkorol вне форума Ответить с цитированием
Старый 13.08.2010, 13:09   #3
Che Guevara
Пользователь
 
Аватар для Che Guevara
 
Регистрация: 27.07.2010
Сообщений: 91
По умолчанию

Цитата:
задача самая тривиальная
Справедливое замечание. Но в реальности задача чуть иная. Для настоящего программиста ПХП может быть и не составит труда изменить код ПХП скрипта так чтобы меню изменилось в ту или иную сторону. А вот рядовой пользователь ПК (админки сайта) может и знать всего что нужно.
По этому, решено создать некий интерфейс в админке сайта (раскрою секрет - сайт ентот - Е-магазин). Любой администратор сайта (не программист) по "задумке" должен будет изменять меню в соответствии с его хотением-повелением... Вопрос - в каком направлении копать для того чтобы создать интерфейс для непрограммиста для изменения меню?
Che Guevara вне форума Ответить с цитированием
Старый 13.08.2010, 13:43   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Я почему спрашиваю подробности?
Потому что в ваших описаниях их нет.
Код скрипта и наличие знаний PHP тут совершено не при чём...
В чём конкретно стоит задача:
1.Просто возможность изменять через Админку названия существующих пунктов Меню при необходимости?
2.Возможность изменять количество пунктов Меню(т.е. создание новых пунктов),названия пунктов Меню,редактировать ссылки пунктов Меню?

Описанные мной задачи совершенно разные как по сути,так и по реализации.
Потому нужно подробное и чёткое описание требуемого функционала.
Цитата:
Любой администратор сайта (не программист) по "задумке" должен будет изменять меню в соответствии с его хотением-повелением
- ну нет тут никакой определённости,просто нет.
Andkorol вне форума Ответить с цитированием
Старый 13.08.2010, 14:07   #5
Che Guevara
Пользователь
 
Аватар для Che Guevara
 
Регистрация: 27.07.2010
Сообщений: 91
По умолчанию

Возможно я не совсем чётко ставлю свой вопрос. Но г-н Andkorol правильно догадался -
Цитата:
Возможность изменять количество пунктов Меню(т.е. создание новых пунктов),названия пунктов Меню,редактировать ссылки пунктов Меню
Che Guevara вне форума Ответить с цитированием
Старый 13.08.2010, 14:50   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Тогда пользуем БД MySQL:

Таблица `menu`:
menu_id - уникальный идентификатор
menu_name - название пункта Меню
menu_link - ссылка ,куда ведёт пункт Меню
menu_alt - атрибут alt тега <a>
menu_title - атрибут title тега <a>
menu_hide - поле типа ENUM для возможности сокрытия пункта Меню (значения 0 и 1)
menu_order - определяет порядок следования пунктов Меню

Запрос на вывод пунктов меню:
PHP код:
// запрос
$menu = array();
$query 'SELECT * FROM `menu` WHERE `menu_hide` = \'0\' ORDER BY `menu_order`';
$result_menu mysql_query($query);
if(
mysql_num_rows($result_menu) > 0){
    while(
$row mysql_fetch_array($result_menu)){
        
$menu[] = $row;
    }
}

// вывод
if(!empty($menu)){
    foreach(
$menu as $menu_point){
        echo 
'<a href="' $menu_point['menu_link'] . '" alt="' $menu_point['menu_alt'] . '" title="' $menu_point['menu_title'] . '">' $menu_point['menu_name'] . '</a>';// ну это образно,не учитывая ваши стили
    
}

В админке делаем форму редактирования,куда запросом выбираем ВСЕ(и скрытые тоже) пункты Меню с возможностью изменения всех названий/атрибутов/ссылок + возможность сокрытия/открытия пунктов + возможность проставить(выбрать из <select>) порядок пунктов меню(`menu_order`) - тут важно сделать проверку,чтоб не повторялись номера порядка пунктов(т.е. чтоб не получилось напр. 2 пункта меню с `menu_order` = 3).

Там же делаем возможность открыть такую же форму - но пустую(для создания нового пункта меню),`menu_order` тут будет добавлен как максимальный из уже имеющихся в таблице + 1(потом можно будет "подвинуть" новый пункт,если нужно).

Нужно также учитывать(если это горизонтальное меню) чтоб пункты меню не "растягивали" верстку по ширине(т.е. чтоб их небыло слишком много) - ну это уже скорее вопрос адекватности того,кто будет заниматься администрированием.

Ну и ,естественно, нужно чтоб новый пункт Меню вёл не в пустоту,а на какую-то страницу(которую тоже нужно как-то создавать - но это уже другой вопрос).

Вобщем - решение будет однозначно удобным,но совсем не простым в реализации.

Последний раз редактировалось Andkorol; 13.08.2010 в 14:58.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать переменное число параметров Impuls1989 Общие вопросы C/C++ 7 19.06.2009 15:24
Переменное имя объекта transgd Microsoft Office Excel 3 16.04.2009 12:17
переменное число вложенных циклов Evil Sun Общие вопросы C/C++ 4 31.03.2009 09:59
Переменное имя создаваемого файла Degmax Win Api 2 27.03.2008 20:39