Forums / National / Russian / Модули и плагины / Заявки на обновление и совместимость с PHP 8.x / [Решено] Menu Generator

плагин Menu Generator, который позволяет неопытному пользователю манипулировать главным меню без опасности нанести серьезный вред сайту.

webitproff
#1 2023-05-26 23:22

Введение

плагин в разработке и процессе адаптации

Для чего нужен плагин Menu Generator

Часто, выполняя заказ на создание веб-сайта, мы сталкиваемся с необходимостью предоставить Заказчику возможность комфортного и простого в понимании инструмента для наполнения и редактирования многоуровневого главного меню. Непосредственная работа с шаблоном по FTP или через онлайновый редактор сложна и чревата ошибками в разметке. Именно поэтому мы разработали и создали плагин Menu Generator, который позволяет неопытному пользователю манипулировать главным меню без опасности нанести серьезный вред сайту. Установка плагина

Распаковать плагин в каталог /plugins/
Проинсталлировать плагин из панели управления сайтом
Разместить в шаблоне тег {MENU_GENERAL}
Заполнить меню из раздела администрирования плагина

What is Menu Generator

During website development you often come across situations when the Customer needs a convenient and simple-to-understand tool to fill end edit multi-level navigation menu. Working with the template via FTP or online template editor is complicated and prone to errors. That is why we've developed the Menu Generator plugin that enables main menu management by an unexperienced user without endangering the html-layout. Plugin Installation

Unpack the zipped file into the /plugins/ folder
Install the plugin from the admin panel
Place {MENU_GENERAL} tag in the template
Fill out the menu using the tools section

©️ Страница и авторство плагина для Cotonti

 

Ход работы

  1. перенес инструкции установки из menu.setup.php в menu/setup/menu.install.sql
  2. [***_SED_EXTPLUGIN] заменил на [***_COT_EXT]
  3. sed_skinfile заменил на cot_tplfile
  4. $sql=sed_sql_query заменил на $sql = Cot::$db->query
  5. преффикс sed_ заменил на cot_ соблюдая регистр
  6. на php 7.4 плагин в админке установил и запустил, появилась форма для создания меню (и довольно прикольно), но по заполнению формы, кликая "создать меню" - отправляет по адресу "http://мой-сайт/admin.php?m=tools&p=menu" - и там получаю очень содержательное

Ошибка в параметрах запроса
Один из параметров запроса недействителен или устарел. Вернитесь назад и попробуйте отправить форму заново.

ссылка прописана в menu.admin.php таким образом

$tt->assign('MENU_FORMACTION', cot_url('admin', 'm=tools&p=menu'));

Дальше я тупо застрял, искал может что похожее в движке, но не пофортило, а мозгов не хватает.

 

Дмитрий (Kort)

предполагаю, это ваша разработка.

в репозиториях у вас плагина не нашел, и поэтому со своими правками залил к себе на github. [удалено как не актуальное]

пожалуйста, как будет время, помогите с адаптацией под актуальную версию движка

аккаунт удален - не срослось с разработчиками
ушел на другой движок
This post was edited by webitproff (2023-05-27 15:56, 10 months ago)
Kabak
#2 2023-05-27 05:31

Этот плагин генерит только HTML или CSS , привязывает ссылки ресурсов сайта к кнопкам/элементам меню ?  ( Непонятное описание, для чего нужен плагин )

Alex300
#3 2023-05-27 05:58
Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
webitproff
#4 2023-05-27 06:03
#46681 Alex300:

https://github.com/Cotonti-Extensions/menugenerator

Очень признателен, Алексей.

счас буду тестить ))

laughlaughlaugh

аккаунт удален - не срослось с разработчиками
ушел на другой движок
This post was edited by webitproff (2023-05-27 06:28, 10 months ago)
Alex300
#5 2023-05-27 06:05
Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
This post was edited by Alex300 (2023-05-27 10:15, 10 months ago)
webitproff
#6 2023-05-27 06:23

по установке получил фатальныйирор )))

но не отчаялся, быстро разобрался, - нужно преобразовать немного

/* Create menus data table */
CREATE TABLE IF NOT EXISTS cot_menugenerator (
        mg_id int(10) unsigned NOT NULL auto_increment,
        mg_path varchar(255) NOT NULL default '0',
        mg_title varchar(255) NOT NULL default '',
        mg_extra varchar(255) NOT NULL default '',
        mg_href varchar(255) NOT NULL default '',
        mg_desc varchar(255) NOT NULL default '',
        mg_users varchar(255) NOT NULL default '',
        PRIMARY KEY  (mg_id)
        );

в такой вид

/* Create menus data table */
CREATE TABLE IF NOT EXISTS `cot_menugenerator` (
        `mg_id` int(10) unsigned NOT NULL auto_increment,
        `mg_path` varchar(255) NOT NULL default '0',
        `mg_title` varchar(255) NOT NULL default '',
        `mg_extra` varchar(255) NOT NULL default '',
        `mg_href` varchar(255) NOT NULL default '',
        `mg_desc` varchar(255) NOT NULL default '',
        `mg_users` varchar(255) NOT NULL default '',
        PRIMARY KEY  (mg_id)
        );

интуитивно понимаю,

а как тот пёс,

объяснить техническим языком не могу.

 

но робить! yes

Добавлено 1 минута спустя:

это на бета 0.9.23 и на php 7.4, на 8.1  еще не проверял

Добавлено 1 час спустя:

#46683 Alex300:

Описание сейчас подготовлю :)

 

Такой момент, а можно ли создать собственные шаблоны (TPL) menugenerator.MyName.tpl

то есть, как пример, подключить диффецировано, отдельно меню в

header.tpl

footer.tpl

page.tpl

page.list.tpl

?

прошу подсказать, как это можно сделать "глобально".

если такой возможности нет, - будет лучше "клонировать" плагин?

аккаунт удален - не срослось с разработчиками
ушел на другой движок
This post was edited by webitproff (2023-05-27 08:07, 10 months ago)
Alex300
#7 2023-05-27 10:16

Все добавил в описание.

Добавлено 33 минуты спустя:

#46684 webitproff:

по установке получил фатальныйирор )))

но не отчаялся, быстро разобрался, - нужно преобразовать немного

/* Create menus data table */
CREATE TABLE IF NOT EXISTS cot_menugenerator (
        mg_id int(10) unsigned NOT NULL auto_increment,
        mg_path varchar(255) NOT NULL default '0',
        mg_title varchar(255) NOT NULL default '',
        mg_extra varchar(255) NOT NULL default '',
        mg_href varchar(255) NOT NULL default '',
        mg_desc varchar(255) NOT NULL default '',
        mg_users varchar(255) NOT NULL default '',
        PRIMARY KEY  (mg_id)
        );

в такой вид

/* Create menus data table */
CREATE TABLE IF NOT EXISTS `cot_menugenerator` (
        `mg_id` int(10) unsigned NOT NULL auto_increment,
        `mg_path` varchar(255) NOT NULL default '0',
        `mg_title` varchar(255) NOT NULL default '',
        `mg_extra` varchar(255) NOT NULL default '',
        `mg_href` varchar(255) NOT NULL default '',
        `mg_desc` varchar(255) NOT NULL default '',
        `mg_users` varchar(255) NOT NULL default '',
        PRIMARY KEY  (mg_id)
        );

интуитивно понимаю,

а как тот пёс,

объяснить техническим языком не могу.

 

но робить! yes

На мастер ветке все прошло без ошибок. Хорошо было бы само сообщение об ошибке приложить. И я не вижу разницы в запросах кроме кавычек в полях и зазвании таблицы. Но это имеет значение, если название поля или таблицы совпадает с каким-либо ключевым словом MySQL

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
This post was edited by Alex300 (2023-05-27 10:52, 10 months ago)
webitproff
#8 2023-05-27 12:44
#46685 Alex300:

На мастер ветке все прошло без ошибок. Хорошо было бы само сообщение об ошибке приложить. И я не вижу разницы в запросах кроме кавычек в полях и зазвании таблицы. Но это имеет значение, если название поля или таблицы совпадает с каким-либо ключевым словом MySQL

по опыту, эти кавычки, спасают, когда преффикс БД отличается от "cot_"

плагин ставил на фриланс-биржу - текст ошибки


Fatal error

2023-05-27 12:35

SQL error 42S02: Base table or view not found: 1146 Table 'bitrix.flance_menugenerator' doesn't exist

#0  cot_diefatal(SQL error 42S02: Base table or view not found: 1146 Table 'bitrix.flance_menugenerator' doesn't exist) called at [E:\OSPanel\domains\tradebuild\system\database.php:372]
#1  CotDB->query(SELECT * FROM flance_menugenerator ORDER BY mg_path ASC) called at [E:\OSPanel\domains\tradebuild\plugins\menugenerator\menugenerator.global.php:20]
#2  cot_read_sqltable() called at [E:\OSPanel\domains\tradebuild\plugins\menugenerator\menugenerator.global.php:128]
#3  include(E:\OSPanel\domains\tradebuild\plugins\menugenerator\menugenerator.global.php) called at [E:\OSPanel\domains\tradebuild\system\common.php:734]
#4  require_once(E:\OSPanel\domains\tradebuild\system\common.php) called at [E:\OSPanel\domains\tradebuild\admin.php:20]

Title of your site

где bitrix - имя базы. а в ней новая таблица cot_menugenerator

что бы запустить сайт (ошибка же уже никуда не пускает)

решаю через "Rename a Table in MySQL"

RENAME TABLE `cot_menugenerator` TO `flance_menugenerator`;

сайт пошел )) плагин встал ))

уже по-второму кругу laugh

 

Добавлено 10 минут спустя:

вот для проверки только что, снова. через админку плагин удалил, базу проверил, таблица удалена.

модифицирую инструкцию

CREATE TABLE IF NOT EXISTS `cot_menugenerator` (
	`mg_id` int(10) unsigned NOT NULL auto_increment,
	`mg_path` varchar(255) NOT NULL default '0',
	`mg_title` varchar(255) NOT NULL default '',
	`mg_extra` varchar(255) NOT NULL default '',
	`mg_href` varchar(255) NOT NULL default '',
	`mg_desc` varchar(255) NOT NULL default '',
	`mg_users` varchar(255) NOT NULL default '',
	PRIMARY KEY  (mg_id)
	);

плагин встал как надо и без ошибок в процессе установки.

а префикс таблицы автоматом при установке взят из config.php

$db_x = 'flance_';

может в теории математика вовсе другая,

но практика именно как изложил выше

Добавлено 4 минуты спустя:

#46683 Alex300:

Описание https://www.cotonti.com/extensions/administration-management/menu-generator

 

спасибо за довольно "доступное" xDDD описание.

буду юзать и варить воду с вопросами laughlaughlaugh

если они конечно возникнут.

Алексей, таких как Вы еще бы 3-5 человек в команду, - "порвали" бы "кота" wink

аккаунт удален - не срослось с разработчиками
ушел на другой движок
This post was edited by webitproff (2023-05-27 13:22, 10 months ago)
Alex300
#9 2023-05-27 14:46

по опыту, эти кавычки, спасают, когда преффикс БД отличается от "cot_"

Да, точно. Есть такая особенность установщика. Спасибо. Поправил.

Добавлено 17 минут спустя:

Если все ок, можно перед заголовком темы написать "[РЕШЕНО]"

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
This post was edited by Alex300 (2023-05-27 15:04, 10 months ago)
webitproff
#10 2023-05-27 15:07
#46687 Alex300:

по опыту, эти кавычки, спасают, когда преффикс БД отличается от "cot_"

Да, точно. Есть такая особенность установщика. Спасибо. Поправил.

Добавлено 17 минут спустя:

Если все ок, можно перед заголовком темы написать "[РЕШЕНО]"

да,

всё пока отлично!

форкнул к себе smiley

аккаунт удален - не срослось с разработчиками
ушел на другой движок