Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2010-05-18 01:12:20

Amarelius
Модератор
Откуда Kiev
Зарегистрирован: 2008-10-24
Сообщений: 639
Рейтинг :   69 
Сайт

menu_pro :: Менеджер меню

menu_pro :: Менеджер меню

ВНИМАНИЕ!!!! Плагин выложен исключительно для тестирования.
Для корректной работы плагина необходимо использовать последнюю версию движка из SVN, а также произвести небольшей ХАК

Плагин позволяет Вам:
- Создавать собственные меню, любой сложности
- Оперативно управлять Вашими меню
- Настраивать индивидуальные стили для каждого элемента меню
- Настраивать отображение меню для разных груп пользователей

Особенности работы плагина:
- Пункты меню можно настраивать на вывод индивидуальных плагинов, а также ядра
- Многие поля поддерживают технологию suggest, так что достаточно просто начать вводить данные
- Плагин может использовать кеширование
- Для того, чтобы отобразить список меню используйте переменную {plugin_menu_pro_Название меню} в файле main.tpl

Инструкция по применению:
1. Скачать плагин с сайта
2. Извлечь содержимое архива в папку \engine\plugins\
3. Скачать ХАК
4. Извлечь содержимое архива в папку \engine\includes\
5. В разделе "Плагины" установить и включить плагин
6. В настройках плагина добавить нужные пункты меню
7. Включить и настроить меню
8. В шаблон main.tpl добавить переменную {plugin_menu_pro_Название меню}.

[0.01][2010-05-17]
+ Выпуск первой версии

Отчеты об ошибках приветствуются

584e85adc0d3799098dbd7be9f775a85_pv.png

2355cc641c50670389ad5e5b10b49d40_pv.png

4e58032632094a49373b4a0d2e75b26c_pv.png

4e8e9b0fe6c343a2aabf404e39208981_pv.png


Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com

Не в сети

#2 2010-05-18 01:17:28

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: menu_pro :: Менеджер меню

Без ГМО. o_O

Не в сети

#3 2010-05-18 09:19:04

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

Re: menu_pro :: Менеджер меню

Уау...тут без 100 грамм не разобраться! wink Круто!  Спасибо!


I NGeneration CMS

Не в сети

#4 2010-05-20 18:50:54

graf
Участник
Откуда Днепр
Зарегистрирован: 2008-10-13
Сообщений: 394
Рейтинг :   

Re: menu_pro :: Менеджер меню

я что-то и со 100 граммами не вкурил

Не в сети

#5 2010-05-20 19:08:15

graf
Участник
Откуда Днепр
Зарегистрирован: 2008-10-13
Сообщений: 394
Рейтинг :   

Re: menu_pro :: Менеджер меню

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

Не в сети

#6 2010-05-20 21:08:09

Amarelius
Модератор
Откуда Kiev
Зарегистрирован: 2008-10-24
Сообщений: 639
Рейтинг :   69 
Сайт

Re: menu_pro :: Менеджер меню

graf, можно но все ручками. Этим плагином можно вообще любое меню организовать и подключить любые эффекты.

Вот пример для категории

06ebe5b38b812f014526a23713ed4d2d_pv.png

e601b4861f88698756576c37a9aaf90a_pv.png

f8dffcf6544ed53f4f24a7be98205242_pv.png


Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com

Не в сети

#7 2010-05-21 02:40:07

graf
Участник
Откуда Днепр
Зарегистрирован: 2008-10-13
Сообщений: 394
Рейтинг :   

Re: menu_pro :: Менеджер меню

эм. утром попробую прочесть. после пива непонятно.
сразу вспоминаю чето друпал

Не в сети

#8 2010-08-05 22:11:05

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: menu_pro :: Менеджер меню

Amarelius, что-то я потерялася ) а как для разных меню свои шаблоны сделать?, куда что прописывать и заливать, с учетом того, что файлы шаблонов находятся в templates/default/plugins/menu_pro/


И еще момент, а файл libsuggest.js стоит ли заменять или лучше оставить дефолтный движка?

Изменено Trashcka (2010-08-05 22:13:39)

Не в сети

#9 2010-08-05 22:38:37

Amarelius
Модератор
Откуда Kiev
Зарегистрирован: 2008-10-24
Сообщений: 639
Рейтинг :   69 
Сайт

Re: menu_pro :: Менеджер меню

Trashcka, Видать забыл добавить в описание, значит так
в папке templates/default/plugins/menu_pro/ можно создавать две папки skins и icons.
В папке skins создаешь папки для шаблонов меню (названия папок произвольные, одна папка -- один шаблон) и уже в этих папках хранятся файлы шаблонов container.tpl и item.tpl.
А в папке icons файлы иконок.

Файл libsuggest.js можно оставить дефолтный, а вот dbtree.class.ng.php должен быть добавлен обязательно, без него меню не работает

пысы: На днях возвращаюсь с отдыха, если что не так будет работать, подправлю.


Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com

Не в сети

#10 2010-08-06 09:51:31

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: menu_pro :: Менеджер меню

Amarelius, данке, заработало )

А как-то можно добавлять к ссылкам rel="nofollow"?

Изменено Trashcka (2010-08-06 10:01:50)

Не в сети

#11 2010-08-07 13:18:14

Amarelius
Модератор
Откуда Kiev
Зарегистрирован: 2008-10-24
Сообщений: 639
Рейтинг :   69 
Сайт

Re: menu_pro :: Менеджер меню

Trashcka, так ты же сама формируешь вид ссылки в шаблоне или я чего то не понял? Если тебе надо использовать это только для определенных ссылок, просто назначь им другой шаблон, в котором опиши rel="nofollow".


Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com

Не в сети

#12 2010-08-07 14:48:22

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: menu_pro :: Менеджер меню

Amarelius, логично ) я об этом чет и не подумала.

Не в сети

#13 2010-09-27 17:30:55

Neo
Участник
Откуда SPB, Russia
Зарегистрирован: 2010-01-04
Сообщений: 463
Рейтинг :   

Re: menu_pro :: Менеджер меню

Amarelius, для управления доступом и разноса меню в пространстве - отлично.
А как сделать подсветку активного меню (по принципу стиля для активной категории)?

Не в сети

#14 2010-09-27 19:35:44

Neo
Участник
Откуда SPB, Russia
Зарегистрирован: 2010-01-04
Сообщений: 463
Рейтинг :   

Re: menu_pro :: Менеджер меню

В общем, чтобы это действительно было меню PRO - не хватает отработки переменной стиля активной категории {if_active} -  Проверил - нет поддержки.

Amarelius, вот было бы здорово, если б это можно было реализовать.
А то получается, что плагин полезен только в смысле разделения доступа. Все остальное можно просто организовать в шаблоне вручную и без него.

Не в сети

#15 2010-10-15 15:57:54

KhadeR
Участник
Зарегистрирован: 2009-09-16
Сообщений: 207
Рейтинг :   17 

Re: menu_pro :: Менеджер меню

Как я понимаю, в подкаталоге плагин не работает? или так только у меня?

Не в сети

#16 2010-10-15 18:25:17

Amarelius
Модератор
Откуда Kiev
Зарегистрирован: 2008-10-24
Сообщений: 639
Рейтинг :   69 
Сайт

Re: menu_pro :: Менеджер меню

KhadeR, сегодня-завтра проверю


Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com

Не в сети

#17 2021-07-27 21:26:46

Dip
Участник
Зарегистрирован: 2021-07-24
Сообщений: 12
Рейтинг :   

Re: menu_pro :: Менеджер меню

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

И так, что нашёл в первый день - две ошибки / опечатки в коде.
Во-первых, в файле config.php в функции add() в одной из строк случайно вместо $par_node было вписано $parent_node (из-за чего не сохранялось изменение выбранного родительского уровня при редактировании пункта меню) - просто опечатка.

Во-вторых, в файле menu_pro.php в функции plugin_menu_pro_get_access был неправильно оформлен селектор case - в PHP (в отличие от других языков) нужно обязательно вставлять break после инструкции, выполненной по совпавшему case-значению, иначе будут выполнены инструкции всех case ниже по списку. Из-за отсутствия break в этой функции неправильно проверялись уровни/группы доступа пользователей (для отображения или скрытия разных пунктов меню).

И ещё пара моментов (не ошибки, просто была непонятна сначала задумка автора) - чтобы пункт отображался на странице, он должен быть active (Я сначала подумал, что 'active' - это про то, какой пункт меню выглядит 'активным' (как бы 'выбранным') изначально, хотя как раз лично мне это было бы совсем не нужно) - позже разобрался, догадался, посмотрев код.
Кроме того (самое неочевидное) - пункты первого уровня меню в настройке плагина являются не пунктами меню, а как бы названиями (заголовками) РАЗЛИЧНЫХ меню для сайта (коих может быть несколько), а уже их второй уровень будет списком "корневых" элементов отображаемого меню. Именно эти заголовки и используются для идентификации нужного Вам меню при вставке в шаблон (т.е. поле name именно этих заголовков нужно приписать к plugin_menu_pro_ , чтобы получить имя нужной TWIG-переменной).

Изменено Dip (2021-07-27 21:48:25)

Не в сети

#18 2021-07-28 05:12:23

Dip
Участник
Зарегистрирован: 2021-07-24
Сообщений: 12
Рейтинг :   

Re: menu_pro :: Менеджер меню

Нашёл ещё одну ошибку в коде: в файле menu_pro.php в начале функции plugin_menu_pro_get_dir проверяется, есть ли там реально на диске файлы шаблонов - так вот в этой проверке дважды проверяется наличие container.tpl вместо того, что бы проверить наличие и container.tpl, и item.tpl (скопировали и забыли исправить имя файла во втором условии).

Не в сети

#19 2021-07-28 21:08:58

Dip
Участник
Зарегистрирован: 2021-07-24
Сообщений: 12
Рейтинг :   

Re: menu_pro :: Менеджер меню

Нашёл ещё одну ошибку в коде: в файле menu_pro.php в функции plugin_menu_pro_get_nodes есть участок кода, где заполняются разные поля (или как их назвать ? "подстановочные переменные" ?), доступные из шаблона - среди других, там должно формироваться значение для {level} , но оно не формировалось (в нём была всегда пустая строка). Я стал разбираться и обнаружил, что для формирования этого значения автор вставил вот такую странную строку:

$pvars['vars']['level'] = $nodes[$cur_pos]['tree_level' - 1];

Возможно, я не знаю каких-то продвинутых нюансов PHP, но по-моему там имелось в виду это:

$pvars['vars']['level'] = $nodes[$cur_pos]['tree_level'] - 1;

Но я (в порядке перестраховки) написал даже так: 

$pvars['vars']['level'] = intval($nodes[$cur_pos]['tree_level']) - 1;

После этого значение стало формироваться нормально.

Кстати, после этого исправления я обратил внимание, что при формировании пути к файлам-шаблонам пунктов меню (при обращениях к функции plugin_menu_pro_get_dir), та самая единица НЕ ВЫЧИТАЕТСЯ, и первый уровень отображаемого меню при обращении к той функции предсказуемо имеет значение "2".  Возможно, автор даже специально не стал это исправлять, т.к., по сути, номер уровня там (в функции plugin_menu_pro_get_dir) нужен лишь для того, чтобы вовремя остановиться при "подъёме по дереву" пунктов меню в поисках существующего пути к шаблонам - не пытаться подниматься выше "корня", и там не так важно, считать ли "корневой" уровень (где хранится название меню) нулевым или первым - лишь бы стояло правильное значение в условии выхода из рекурсии (а там стоит сравнение с единицей). Поэтому, я НЕ называю это ошибкой, просто я бы сделал единообразно (чтобы не путаться).

И ещё - одной из первых своих модификаций я добавил возможность иметь каждому уровню меню свой собственный item.tpl на базе пронумерованных tpl-файлов в текущем skin. Т.е. я не трогаю реализованную автором возможность указывать разные skins хоть для каждого пункта меню, но добавляю некий автомат, который будет подхватывать item1.tpl, item2.tpl и т.д. из текущего skin для соответствующего уровня меню, если таковые (нумерованные) файлы там есть (в противном случае используется item.tpl как и у автора, т.е. у пользователя будет выбор). Потом отдельно напишу про каждое нововведение и выложу модифицированные файлы.

Изменено Dip (2021-07-28 21:13:53)

Не в сети

#20 2021-07-29 06:12:05

Dip
Участник
Зарегистрирован: 2021-07-24
Сообщений: 12
Рейтинг :   

Re: menu_pro :: Менеджер меню

Ещё одно исправление (не совсем ошибка, но, думаю, надо исправить): везде, где формируется адрес ссылки для пункта меню (как в файле menu_pro.php, так и в "админке" config.php), есть условие, проверяющее поле адреса для этого пункта меню - если оно не заполнено (является пустой строкой), то почему-то сразу вставляется ссылка на плагин (посредством функции generatePluginLink), даже, если никакого имени плагина для этого пункта меню не вводилось - не хорошо.
Я добавил там везде вторую проверку (на пустоту имени плагина), и если имя плагина не было введено (а основное поле адреса для этого пункта меню  пустое), то формируется ссылка, состоящая просто из одного слэша (по сути - на домен сайта, что обычно эквивалентно главной странице). Как вариант, можно было бы сделать, чтобы в таком случае подставлялась ссылка из заглавия меню или какая-нибудь заглушка '#', но лишь бы не таинственное '/plugin///', как возникало в исходном авторском варианте.

Изменено Dip (2021-08-01 05:21:02)

Не в сети

#21 2021-07-31 07:07:26

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

Re: menu_pro :: Менеджер меню

Dip пишет:

Ещё одно исправление (не совсем ошибка, но, думаю, надо исправить): везде, где формируется адрес ссылки для пункта меню (как в файле menu_pro.php, так и в "админке" config.php), есть условие, проверяющее поле адреса для этого пункта меню - если оно не заполнено (является пустой строкой), то почкму-то сразу вставляется ссылка на плагин (посредством функции generatePluginLink), даже, если никакого имени плагина для этого пункта меню не вводилось - не хорошо.
Я добавил там везде вторую проверку (на пустоту имени плагина), и если имя плагина не было введено (а основное поле адреса для этого пункта меню  пустое), то формируется ссылка, состоящая просто из одного слэша (по сути - на домен сайта, что обычно эквивалентно главной странице). Как вариант, можно было бы сделать, чтобы в таком случае подставлялась ссылка из заглавия меню или какая-нибудь заглушка '#', но лишь бы не таинственное '/plugin///', как возникало в исходном авторском варианте.

Плагин был написан скорее всего на php до 5 версии, и для движка версии 0.9.1 или 0.9.2.  это было давно, релиз 0.9.5, есть utf версия на гите, часть плагинов переписана на версию php > 7  и с поддержкой твига. Так что возмущаться на старьё не есть гут. Можешь перепиши , за это большое спасибо.

Не в сети

#22 2021-08-01 01:57:52

Dip
Участник
Зарегистрирован: 2021-07-24
Сообщений: 12
Рейтинг :   

Re: menu_pro :: Менеджер меню

irbees2008 пишет:

Плагин был написан скорее всего на php до 5 версии, и для движка версии 0.9.1 или 0.9.2.  это было давно, релиз 0.9.5, есть utf версия на гите, часть плагинов переписана на версию php > 7  и с поддержкой твига. Так что возмущаться на старьё не есть гут. Можешь перепиши , за это большое спасибо.

Хочу пояснить - я искал средство визуального редактирования структуры произвольного многоуровневого списка для сайта (как обычно оформляют меню)  для NGCMS, но ЕДИНСТВЕННОЕ, что было создано для этого движка с такой функциональностью - этот старый плагин. Если бы было что-то новее - я бы взял новее.  Честно говоря, для меня совершенно не понятно, почему все эти годы практически никому не было нужно добавить в админку визуальный редактор меню, ведь если сайт делается не для себя, то им будут пользоваться люди, не умеющие сами корректно (не сломав разметку) редактировать файл шаблона, когда им захочется добавить подпункт в меню.

То, о чём я написал до этого на этом форуме - не "возмущение" (я наоборот очень благодарен автору за хорошую заготовку), а просто мысли вслух для таких же, как я, кто найдёт этот плагин на этом сайте и захочет его применить. Я не профессиональный программист, поэтому я не настолько уверен в своих силах, чтобы просто написать "Работаю над новой исправленной версией, скоро выложу". Я действительно уже кое-что переделал и сейчас хочу изменить интерфейс настройки меню (тот, что в админке плагина) - сделать его "древовидным" (а не табличным), да ещё с кастомным контекстным меню на пунктах и т.п. Но для меня это - совсем не просто (хотя я и использую готовую библиотеку TreeView).  Если всё получится и будет иметь "товарный вид" - с радостью тут поделюсь с другими. Но я пока что даже не очень понимаю, как правильно модифицировать инсталлятор плагина, чтобы всё автоматически устанавливалось и работало "из коробки" (документации же никакой по "плагино-строению" нет), поэтому не знаю, чем дело кончится ... 
Что касается версий - у меня написано в админке "0.9.5 Release + GIT 20170301", а PHP на тестовом сервере вообще v5.6 (потом, кстати, и правда надо будет проверить, работает ли это всё на седьмой версии, но думаю должно работать).
Так или иначе - буду рассказывать о результатах своего творчества, т.к. уверен, что хоть один человек кроме меня да захочет реализовать подобную функциональность на своём сайте.

Изменено Dip (2021-08-01 02:02:40)

Не в сети

#23 2021-08-01 07:49:01

rusiq
гуру
Зарегистрирован: 2014-07-16
Сообщений: 639
Рейтинг :   38 

Re: menu_pro :: Менеджер меню

Dip пишет:

...
Я не профессиональный программист
...

Для начала заведите профиль на github. Выкладывайте туда свои «переделки». На гитхабе будет проще помочь вам.

Что касается версии PHP, то берите сразу 8.0.0 как минимум.

Не в сети

#24 2021-08-02 18:22:39

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

Re: menu_pro :: Менеджер меню

Ну вообще с появлением твига  этот плагин  не нужен, все решается на уровне шаблона, и управлении категориями , в шаблоне файл news.categories.tpl оформляем все в соответствии с шаблоном, создаем категории в админке и там отмечаем показывать категорию или нет. Плагин не нужен , все уже автоматизировано .

Не в сети

#25 2021-08-02 19:55:31

Dip
Участник
Зарегистрирован: 2021-07-24
Сообщений: 12
Рейтинг :   

Re: menu_pro :: Менеджер меню

irbees2008 пишет:

Ну вообще с появлением твига  этот плагин  не нужен, все решается на уровне шаблона, и управлении категориями , в шаблоне файл news.categories.tpl оформляем все в соответствии с шаблоном, создаем категории в админке и там отмечаем показывать категорию или нет. Плагин не нужен , все уже автоматизировано.

Не очень понял, о чём Вы.  Мне нужно было сделать обычное меню: "Главное", "О Компании", "Документы", "Информация", "Контакты". В некоторых пунктах по 3-4 подпункта...   Никаких инструментов в админке для этого не было, меню было "нарисовано" руками в шаблоне на обычном HTML и корректировалось в текстовом редакторе руками.  Вот я и делаю нормальный визуальный редактор пунктов меню для админки сайта.
Возможно, Вы описываете какой-то иной сценарий использования NGCMS - как новостной портал. Но у меня новостей фактически нет, а есть сайт организации с набором статических страниц ("статей" в терминологии NGCMS).

Не в сети

Подвал раздела

Работает на FluxBB