Вы не зашли.
Ну что здесь не понятного, можешь почитать редми https://ngcmshak.ru/readme/094/docs/index.html, файл news.categories.tpl . эта папка есть и у тебя ,там все подробно по шаблонам
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
Ну что здесь не понятного, можешь почитать редми https://ngcmshak.ru/readme/094/docs/index.html, файл news.categories.tpl . эта папка есть и у тебя ,там все подробно по шаблонам
Да, спасибо, эти все материалы у меня есть - жалко, что там почти ничего не рассказано про создание плагинов ("внутрянки" для программистов). Но я, вероятно, мыслю как-то совершенно иначе, чем все остальные :-) И не могу понять, почему там всё крутится вокруг "новостей": а если у меня их нет на сайте ? Совсем нет! Какое отношение имеют "категории новостей" к нужной мне статической структуре меню с пунктами, ссылающимися на произвольные статические страницы сайта? Сайты ведь бывают не только в виде бесконечной ленты новостей, разбитых на какие-то категории. Бывают и old-school сайты просто с набором страниц без каких-либо "новостей". Просто сайт с информацией об организации. Не магазин, не блог, не новостной сайт. Просто информационный, почти статический, сайт, из пары десятков страниц с какой-то информацией. Но всё же эти страницы иногда (примерно раз-два в год) дополняют, что-то корректируя и добавляя что-то новое (в том числе и корректируя подпункты в меню с ссылками на старые/новые страницы). Вот для такого случая и нужно обычное статическое "неавтоматическое" меню (и редактор для него в админке для владельца сайта). Думаю, автор этого плагина меня бы понял. Даже, если это нужно в единичных случаях - почему бы не существовать такой возможности ?
Как я могу предположить, идеологически NGCMS проектировалась под совершенно иной (более современный и популярный) сценарий использования сайта, но у небольших организаций бывают разные потребности, и не всем нужны новостные интерактивные порталы - иногда стоит совсем иная задача (например, небольшая общественная организация, использует такой сайт для выполнения минимума обязательных требований закона по раскрытию информации о совей деятельности).
Не в сети
Возможно, я пишу это только для себя, но всё же ... продолжу.
Нашёл ещё одну ошибку у автора. Сразу оговорюсь: возможно, здесь имеет значение версия 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)
Не в сети
И не могу понять, почему там всё крутится вокруг "новостей": а если у меня их нет на сайте ?
Изначально движок новостной
Какое отношение имеют "категории новостей" к нужной мне статической структуре меню с пунктами, ссылающимися на произвольные статические страницы сайта?
Это костыль или фича
там почти ничего не рассказано про создание плагинов ("внутрянки" для программистов)
Повторюсь, небольшая инфа была на вики, при желании, ее можно найти в вебархиве.
Насколько это актуально для текущей версии -- сказать сложно
Не в сети
... небольшая инфа была на вики ...
Про web.archive то я и забыл - и правда, там есть, что почитать. Спасибо.
Вот только зачем же в марте 2018г. эту Wiki отключили :-(
Надо бы куда-то выложить ценную сохранившуюся информацию - пусть даже с пометкой "архив: возможно устарело".
Изменено Dip (2021-08-06 01:19:31)
Не в сети
Продолжаю делиться своими изысканиями. На этот раз - не ошибка в коде, а причина того, почему автор использовал то, что он назвал "ХАК" (библиотека, которую в его версии надо было руками извлечь из архива и сохранить в системную директорию /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)
Не в сети
Обнаружил у автора ещё одну ошибку (либо я не понял какую-то "недореализованную задумку"). На этот раз пойдёт речь о попытке автора реализовать возможность поддержки локализации не только для интерфейса настройки плагина, но и для названий пунктов меню (отображаемых у пользователя на сайте). При включённой поддержке локализации автор предлагает указывать в пунктах меню идентификатор (вместо истинного имени пункта меня), который при отображении на сайте "разворачивается" в локализованное имя с помощью файла menu.ini в языковой поддиректории плагина (о чём свидетельствуют комментарий самого автора). Но дело в том, что абсолютно все упоминания этого механизма в коде содержали неверный префикс (название) плагина (должно быть "menu_pro:", а там везде указан "rmenu:"). После внесения исправлений задуманный автором механизм заработал. Вызывает некоторое недоумение, с чем могла быть связана эта ошибка (или я чего-то не понял в исходной задумке ?), ведь во всех других местах (где выводятся локализованные подписи к пунктам интерфейса настройки плагина) префикс был прописан верный.
Кстати, необходимость руками оформлять тот самый файл локализации menu.ini в случае, когда пользователю нужно задействовать механизм локализации, безусловно нельзя считать удачным решением (думаю, автор планировал как-то решить этот вопрос позже, но забросил свою разработку). Я попробую добавить какой-то механизм "визуального" редактирования файла локализации из админки, хотя пока не очень понимаю, как это можно сделать без чрезмерного усложнения кода.
Изменено Dip (2021-08-12 00:02:40)
Не в сети
Предположим, что вы воплотили в реальност плоды своих стремлений. Дальше, что?
Вы про локализацию или про весь этот плагин в целом ?
Если про локализацию, то уже придумал и сделал (как раз сегодня проверяю) - можно добавлять прямо из админки переводы названий пунктов меню для нужного кол-ва языков (сохраняется в тот самый menu.ini, как задумывал автор в директорию, соответствующую указанному языку, а при выводе меню на сайте подхватывается тот перевод, который соответствует текущему языку).
Если Вы про плагин в целом - то как закончу, буду использовать на паре обслуживаемых мною сайтов, а архивчик с модифицированной версией плагина выложу потом для всех желающих - надо только подробное описание будет оформить.
Не в сети