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

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

Вы не зашли.

#26 2021-08-03 06:21:20

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

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

Ну что здесь не понятного, можешь почитать редми https://ngcmshak.ru/readme/094/docs/index.html, файл news.categories.tpl . эта папка есть и у тебя ,там все подробно по шаблонам

Не в сети

#27 2021-08-03 18:58:15

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

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

irbees2008 пишет:

Ну что здесь не понятного, можешь почитать редми https://ngcmshak.ru/readme/094/docs/index.html, файл news.categories.tpl . эта папка есть и у тебя ,там все подробно по шаблонам

Да, спасибо, эти все материалы у меня есть - жалко, что там почти ничего не рассказано про создание плагинов ("внутрянки" для программистов). Но я, вероятно, мыслю как-то совершенно иначе, чем все остальные :-) И не могу понять, почему там всё крутится вокруг "новостей": а если у меня их нет на сайте ? Совсем нет! Какое отношение имеют "категории новостей" к нужной мне статической структуре меню с пунктами, ссылающимися на произвольные статические страницы сайта? Сайты ведь бывают не только в виде бесконечной ленты новостей, разбитых на какие-то категории. Бывают и old-school сайты просто с набором страниц без каких-либо "новостей". Просто сайт с информацией об организации. Не магазин, не блог, не новостной сайт. Просто информационный, почти статический, сайт, из пары десятков страниц с какой-то информацией. Но всё же эти страницы иногда (примерно раз-два в год) дополняют, что-то корректируя и добавляя что-то новое (в том числе и корректируя подпункты в меню с ссылками на старые/новые страницы). Вот для такого случая и нужно обычное статическое "неавтоматическое" меню (и редактор для него в админке для владельца сайта).  Думаю, автор этого плагина меня бы понял. Даже, если это нужно в единичных случаях - почему бы не существовать такой возможности ?
Как я могу предположить, идеологически NGCMS проектировалась под совершенно иной (более современный и популярный) сценарий использования сайта, но у небольших организаций бывают разные потребности, и не всем нужны новостные интерактивные порталы - иногда стоит совсем иная задача (например, небольшая общественная организация, использует такой сайт для выполнения минимума обязательных требований закона по раскрытию информации о совей деятельности).

Не в сети

#28 2021-08-04 00:56:43

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

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

Возможно, я пишу это только для себя, но всё же ... продолжу.

Нашёл ещё одну ошибку у автора. Сразу оговорюсь: возможно, здесь имеет значение версия PHP, и у автора раньше работало иначе, но тем не менее.
И так - в файле menu_pro.php в функции plugin_menu_pro_get_nodes есть строка, в которой эта функция рекуррентно вызывает сама себя для заполнения списка подпунктов меню:

$entries = plugin_menu_pro_get_nodes($nodes, ++$pos, $count, $dir, $url, $icon_dir, $icon_url);

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

Изменено Dip (2021-08-04 00:57:33)

Не в сети

#29 2021-08-05 17:22:27

Knopik
Разработчик
Откуда ufa
Зарегистрирован: 2009-10-14
Сообщений: 353
Рейтинг :   62 
Сайт

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

Dip пишет:

И не могу понять, почему там всё крутится вокруг "новостей": а если у меня их нет на сайте ?

Изначально движок новостной

Dip пишет:

Какое отношение имеют "категории новостей" к нужной мне статической структуре меню с пунктами, ссылающимися на произвольные статические страницы сайта?

Это костыль или фича smile

Dip пишет:

там почти ничего не рассказано про создание плагинов ("внутрянки" для программистов)

Повторюсь, небольшая инфа была на вики, при желании, ее можно найти в вебархиве.
Насколько это актуально для текущей версии -- сказать сложно smile

Не в сети

#30 2021-08-05 23:45:43

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

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

Knopik пишет:

... небольшая инфа была на вики ...

Про web.archive то я и забыл - и правда, там есть, что почитать. Спасибо.
Вот только зачем же в марте 2018г. эту Wiki отключили :-(
Надо бы куда-то выложить ценную сохранившуюся информацию - пусть даже с пометкой "архив: возможно устарело".

Изменено Dip (2021-08-06 01:19:31)

Не в сети

#31 2021-08-09 22:02:13

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

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

Продолжаю делиться своими изысканиями.  На этот раз - не ошибка в коде, а причина того, почему автор использовал то, что он назвал "ХАК" (библиотека, которую в его версии надо было руками извлечь из архива и сохранить в системную директорию /includes/ ). Дело в том, что автор, по всей видимости, просто не нашёл описание того, как в NGCMC задумывалось подгружать дополнительные библиотеки плагинов. Я проанализировал код движка и разобрался (до некоторой степени), как работает параметр "Library:" в файле "version".  Оказывается ("открыл Америку"), подобные дополнительные библиотеки надо указывать именно там (по аналогии с параметром "Actions:"), т.е. сначала в этом параметре указывается желаемый идентификатор библиотеки (например, просто слово mylib), а затем (после точки с запятой) относительный путь к файлу библиотеки (от директории плагина с этим файлом "version").
Далее, для корректного подключения библиотеки, в теле файла с кодом плагина просто указывается команда

LoadPluginLibrary('menu_pro', 'mylib');

ВНИМАНИЕ: запись в файле "version" отрабатывается только при "установке" плагина в систему, при которой происходит сохранение этой информации в "недрах" движка (в файл /engine/conf/plugins.php) для корректной работы функции LoadPluginLibrary !

Вооружившись этими знаниями, я сделал в нашем плагине поддиректоию "lib" и поместил туда тот самый "ХАК" ("dbtree.class.ng.php"). Чтобы это работало, я (до "установки" плагина) добавил в файл "version" строку:

Library: mylib; lib/dbtree.class.ng.php

А в файлы с кодом плагина добавил вызов LoadPluginLibrary вместо авторских @include_once ...

Изменено Dip (2021-08-10 20:49:15)

Не в сети

#32 2021-08-12 00:02:12

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

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

Обнаружил у автора ещё одну ошибку (либо я не понял какую-то "недореализованную задумку"). На этот раз пойдёт речь о попытке автора реализовать возможность поддержки локализации не только для интерфейса настройки плагина, но и для названий пунктов меню (отображаемых у пользователя на сайте). При включённой поддержке локализации автор предлагает указывать в пунктах меню идентификатор (вместо истинного имени пункта меня), который при отображении на сайте "разворачивается" в локализованное имя с помощью файла menu.ini в языковой поддиректории плагина (о чём свидетельствуют комментарий самого автора).  Но дело в том, что абсолютно все упоминания этого механизма в коде содержали неверный префикс (название) плагина (должно быть "menu_pro:", а там везде указан "rmenu:").  После внесения исправлений задуманный автором механизм заработал.  Вызывает некоторое недоумение, с чем могла быть связана эта ошибка (или я чего-то не понял в исходной задумке ?), ведь во всех других местах (где выводятся локализованные подписи к пунктам интерфейса настройки плагина) префикс был прописан верный.

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

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

Не в сети

#33 2021-08-14 06:02:30

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

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

Dip пишет:

хотя пока не очень понимаю, как это можно сделать без чрезмерного усложнения кода

Предположим, что вы воплотили в реальност плоды своих стремлений. Дальше, что?

Не в сети

#34 2021-08-15 05:33:43

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

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

rusiq пишет:

Предположим, что вы воплотили в реальност плоды своих стремлений. Дальше, что?

Вы про локализацию или про весь этот плагин в целом ?

Если про локализацию, то уже придумал и сделал (как раз сегодня проверяю) - можно добавлять прямо из админки переводы названий пунктов меню для нужного кол-ва языков (сохраняется в тот самый menu.ini, как задумывал автор в директорию, соответствующую указанному языку, а при выводе меню на сайте подхватывается тот перевод, который соответствует текущему языку).

Если Вы про плагин в целом - то как закончу, буду использовать на паре обслуживаемых мною сайтов, а архивчик с модифицированной версией плагина выложу потом для всех желающих - надо только подробное описание будет оформить.

Не в сети

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

Работает на FluxBB