CMS DataLife Engine - Система управления сайтами

MSW

новички
  • Публикаций

    37
  • Зарегистрирован

  • Посещение

Репутация

1 Обычный

Информация о MSW

  • Звание
    Новичок
  • День рождения 01.10.1984

Информация

  • Пол
    Мужчина
  1. Предложение: добавить функцию открытия страницы после установки плагина, например, для дополнительной инструкции по установке модуля, внесению правок в шаблон, настройки параметров и т.д. Для безопасности можно ограничить - открывать только файлы загруженные на сайт, а не внешние ссылки
  2. Просто было бы логично и красивее, если бы такие моменты были учтены и происходили проверки в процессе установки плагина, а не выводились ошибки и потом раздавать всем пояснения, что это нормально, так задумано и реализовано в CMS что это не разработчик плагина виноват...
  3. это да, вот только это справедливо для того случая, когда ставим всё на чистую полностью CMS, но вот если обновляться со старой версии, то база уже есть, значит в ней уже поля имеются и тут мы через систему плагинов снова пытаемся добавить уже имеющиеся поля в базе и получаем конфуз
  4. Может в "шаблонизатор" запросов модульной системы добавить теги для добавления полей в таблицу, что то типа: [ADD_COLUMN_IF_NOTEXIST=таблица|поле|свойство] например: [ADD_COLUMN_IF_NOTEXIST={prefix}_files|field1|VARCHAR(40) NOT NULL] и уже на стороне пхп перед выполнением/компиляцией запроса делать проверку, по типу как в моём примере с пхп
  5. Проблемка при выполнении запросов в базу при установке плагина, при установке происходит добавление необходимых для модуля столбцов, раньше использовал проверку в пхп, на подобии: $f = $f_sql = array(); $dbZ = $db->query("SHOW columns FROM " . PREFIX . "_files"); while($row = $db->get_row($dbZ)) { $f[] = $row['Field']; } if( !in_array("field1", $f) ) { $f_sql[] = "ADD `field1` VARCHAR(40) NOT NULL"; } if( !in_array("field2", $f) ) { $f_sql[] = "ADD `field2` VARCHAR(40) NOT NULL"; } if( count($f_sql)>0 ) { $db->query("ALTER TABLE " . PREFIX . "_files " . implode(", ", $f_sql) ); } теперь эти проверки требуется перенести на сторону плагиновой системы, то есть на сторону MySQL пока что приходит на ум такой вариант: DROP PROCEDURE IF EXISTS PluginAddColumn; DELIMITER $$ CREATE PROCEDURE PluginAddColumn(IN dbName tinytext, IN tableName tinytext, IN fieldName tinytext, IN fieldDef text) BEGIN IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE column_name=fieldName AND table_name=tableName AND table_schema=dbName) THEN set @ddl = CONCAT("ALTER TABLE `",tableName,"` ADD COLUMN `",fieldName,"` ",fieldDef); prepare stmt from @ddl; execute stmt; END IF; END $$ DELIMITER ; call PluginAddColumn(Database(), '{prefix}_files', 'field1', "VARCHAR(40) NOT NULL"); call PluginAddColumn(Database(), '{prefix}_files', 'field2', "VARCHAR(40) NOT NULL"); DROP PROCEDURE PluginAddColumn; Кроме того что это выполняется медленее, ещё проблема: хотя в "скомпилированном" виде запрос из окна ошибки выполняется без ошибок
  6. про больший кусок кода подумал, но думал что вдруг есть предусмотренный вариант какой хотя конешно предусмотреть все случаи вариантов поиска и замены вряд ли удастся полностью и целиком
  7. ещё вопрос, если требуется заменить второе вхождение например: engine/classes/uploads/upload.class.php поиск: } else { $file_link = $config['http_home_url'] . "engine/skins/images/all_file.png"; $data_url = "#"; $file_play = ""; }; первое вхождение из таблицы " . PREFIX . "_static_files, оно не нужно, а нужно второе из таблицы " . PREFIX . "_files как в этом случае быть?
  8. ещё в дополнение к файлу крона, проблема с файлом /engine/inc/include/functions.inc.php в нём происходит удаление файлов, загруженных в новость, собственно нужны правки в строки: @unlink( ROOT_DIR . "/uploads/files/" . $folder_prefix . $file ); $db->query( "DELETE FROM " . PREFIX . "_files WHERE news_id = '{$id}'" ); но: Файл engine/inc/include/functions.inc.php находится в списке защищенных файлов. Он не может быть модифицирован при помощи системы плагинов.
  9. можно по поводу крона - https://forum.dle-news.ru/topic/72552-datalife-engine-v130-press-release/?do=findComment&comment=363662 - решение сказать?
  10. только пришлось бы для последнего задания, по бекапу, тоже определить $cronmode, а то оно каждый раз выполнялось бы хотя при вписывании крон заданий для модулей, достаточно было бы заканчивать их die ("done"); или подобным, тогда бекап каждый раз не дёргался бы
  11. вот с cron.php как раз проблема, в нём нет стороннего файла, в который можно внести свою функциональность при определённом запросе может в него подключить файл заглушку, в который уже через систему плагинов можно вписывать нужные $cronmode? например перед if($cronmode == "sitemap") { добавить инклуд: include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/cron_plugins.php')); и все нужные задания для крона модулей уже через систему плагинов вносились бы в этот файл
  12. Поправка, файлы engine/inc/addnews.php engine/inc/editnews.php сохраняются, почему то с первого раза не сохранились, ну то ладно вопрос с файлом крона остался
  13. Вопросик: Нельзя вносить правки в плагине для файлов в engine/inc например для отслеживания добавляемых новостей, а они могут добавляться не только с сайта но и с админ панели а так как система не вносит правки в эти файлы то надо вручную вносить часть правок в эти файлы и каждый раз снова перевносить после обновления движка так же как и файл cron.php в корне сайта - не сохраняются правки в плагине как с этим быть? есть идеи кроме старой системы внесения правок вручную?