MSW 1 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 (изменено) 3 минуты назад, celsoft сказал: Есть и много можно по поводу крона - https://forum.dle-news.ru/topic/72552-datalife-engine-v130-press-release/?do=findComment&comment=363662 - решение сказать? Изменено 17 мая 2018 пользователем MSW Цитата Ссылка на сообщение Поделиться на других сайтах
Sander1 62 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 Админка, добавление новостей на сайте и комментарии: <?xml version="1.0" encoding="utf-8"?> <dleplugin> <name>Froala p tag</name> <description>Перенос строки тегом p вместо br</description> <icon></icon> <version></version> <dleversion></dleversion> <versioncompare>less</versioncompare> <mysqlinstall><![CDATA[]]></mysqlinstall> <mysqlupgrade><![CDATA[]]></mysqlupgrade> <mysqlenable><![CDATA[]]></mysqlenable> <mysqldisable><![CDATA[]]></mysqldisable> <mysqldelete><![CDATA[]]></mysqldelete> <file name="engine/editor/shortnews.php"> <operation action="after"> <searchcode><![CDATA[$('.wysiwygeditor').froalaEditor({]]></searchcode> <replacecode><![CDATA[enter: $.FroalaEditor.ENTER_P,]]></replacecode> </operation> </file> <file name="engine/editor/shortsite.php"> <operation action="after"> <searchcode><![CDATA[$('.wysiwygeditor').froalaEditor({]]></searchcode> <replacecode><![CDATA[enter: $.FroalaEditor.ENTER_P,]]></replacecode> </operation> </file> <file name="engine/editor/comments.php"> <operation action="after"> <searchcode><![CDATA[$('#comments').froalaEditor({]]></searchcode> <replacecode><![CDATA[enter: $.FroalaEditor.ENTER_P,]]></replacecode> </operation> </file> </dleplugin> Не забываем обновлять страницу Ctrl->F5 1 Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 Блин, ложная тревога. Это я затупил, не во все файлы вставил. Пардону просим. Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 ещё в дополнение к файлу крона, проблема с файлом /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 находится в списке защищенных файлов. Он не может быть модифицирован при помощи системы плагинов. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 Автор 3 минуты назад, MSW сказал: Файл engine/inc/include/functions.inc.php находится в списке защищенных файлов. Он не может быть модифицирован при помощи системы плагинов. Его можно редактировать. Он там ошибочно https://forum.dle-news.ru/topic/72591-новая-система-плагинов/?do=findComment&comment=363555 удалите его. Мы это уже исправили в дистрибутиве: https://dle-news.ru/release/1747-datalife-engine-v130-final-release.html рядом с ссылкой на скачивание список изменений. Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 А в новой версии rss уже заточен под турбо? Ничего не надо править? Шаблоны там или сам файл php? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 Автор 6 минут назад, alex32 сказал: А в новой версии rss уже заточен под турбо? Ничего не надо править? Шаблоны там или сам файл php? Давно уже, еще с версии 12.1. 6 минут назад, alex32 сказал: Шаблоны там Шаблоны всегда ваши и вы там правите всегда сами. DLE не трогает ваши шаблоны. Примеры в стандартных шаблонах даны, в том числе и для турбо. Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 17 минут назад, celsoft сказал: Он там ошибочно ещё вопрос, если требуется заменить второе вхождение например: 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 как в этом случае быть? Цитата Ссылка на сообщение Поделиться на других сайтах
Sander1 62 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 3 минуты назад, MSW сказал: заменить второе вхождение Заменять больший кусок кода... } else { $file_link = $config['http_home_url'] . "engine/skins/images/all_file.png"; $data_url = "#"; $file_play = ""; }; if( $this->area == "xfieldsfile" ) { Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 4 минуты назад, Sander1 сказал: Заменять больший кусок кода... про больший кусок кода подумал, но думал что вдруг есть предусмотренный вариант какой хотя конешно предусмотреть все случаи вариантов поиска и замены вряд ли удастся полностью и целиком Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 1 минуту назад, MSW сказал: хотя конешно предусмотреть все случаи вариантов поиска и замены вряд ли удастся полностью и целиком Да, в таких случаях надо смотреть отличия выше или ниже. Да оно в приницпе, всегда так и было, когда в "дремучие времена" руками модули ставили А теперь вона как оно... Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 Автор 26 минут назад, MSW сказал: } else { $file_link = $config['http_home_url'] . "engine/skins/images/all_file.png"; $data_url = "#"; $file_play = ""; }; первое вхождение из таблицы " . PREFIX . "_static_files, оно не нужно, а нужно второе из таблицы " . PREFIX . "_files как в этом случае быть Указывать больший кусок кода, который уже будет уникальным. Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 А где инициализаруется редактор, который в всплывающем окне при быстром редактировании? А то там не меняется br Цитата Ссылка на сообщение Поделиться на других сайтах
Sander1 62 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 4 минуты назад, alex32 сказал: А где инициализаруется редактор, который в всплывающем окне при быстром редактировании engine/ajax/editnews.php $('.wysiwygeditor').froalaEditor({ 1 Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 Благодарствую Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 18 мая 2018 Рассказать Опубликовано: 18 мая 2018 Проблемка при выполнении запросов в базу при установке плагина, при установке происходит добавление необходимых для модуля столбцов, раньше использовал проверку в пхп, на подобии: $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; Кроме того что это выполняется медленее, ещё проблема: Цитата Ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER $$ CREATE PROCEDURE PluginAddColumn(IN dbName tinytext, IN tableName ' at line 1 продолжить хотя в "скомпилированном" виде запрос из окна ошибки выполняется без ошибок Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 18 мая 2018 Рассказать Опубликовано: 18 мая 2018 (изменено) Может в "шаблонизатор" запросов модульной системы добавить теги для добавления полей в таблицу, что то типа: [ADD_COLUMN_IF_NOTEXIST=таблица|поле|свойство] например: [ADD_COLUMN_IF_NOTEXIST={prefix}_files|field1|VARCHAR(40) NOT NULL] и уже на стороне пхп перед выполнением/компиляцией запроса делать проверку, по типу как в моём примере с пхп Изменено 18 мая 2018 пользователем MSW 1 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 19 мая 2018 Рассказать Опубликовано: 19 мая 2018 Автор 7 часов назад, MSW сказал: Проблемка при выполнении запросов в базу при установке плагина, при установке происходит добавление необходимых для модуля столбцов, раньше использовал проверку в пхп, на подобии: Зачем вам вообще эти проверки делать? Не хотите чтобы как то пересекалось с другими модулями, используйте имена для полей, которые врядли кто будет использовать, например mymodulename_field1, при установке создавайте эти поля, при удалении модуля удаляйте. И все. В принципе врядли когда либо будет пересечение с другими полями. Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 19 мая 2018 Рассказать Опубликовано: 19 мая 2018 23 минуты назад, celsoft сказал: Зачем вам вообще эти проверки делать? это да, вот только это справедливо для того случая, когда ставим всё на чистую полностью CMS, но вот если обновляться со старой версии, то база уже есть, значит в ней уже поля имеются и тут мы через систему плагинов снова пытаемся добавить уже имеющиеся поля в базе и получаем конфуз Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 19 мая 2018 Рассказать Опубликовано: 19 мая 2018 Автор 18 минут назад, MSW сказал: уже поля имеются и тут мы через систему плагинов снова пытаемся добавить уже имеющиеся поля в базе и получаем конфуз Совершенно не критичный, система логирования ошибок в системе плагинов, просто выведет что поля уже существуют в таблице. Это сообщение тут же можно очистить в админпанели и дальше все будет продолжать работать штатно. Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 19 мая 2018 Рассказать Опубликовано: 19 мая 2018 11 минут назад, celsoft сказал: система логирования ошибок в системе плагинов, просто выведет что поля уже существуют в таблице. Просто было бы логично и красивее, если бы такие моменты были учтены и происходили проверки в процессе установки плагина, а не выводились ошибки и потом раздавать всем пояснения, что это нормально, так задумано и реализовано в CMS что это не разработчик плагина виноват... Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 23 мая 2018 Рассказать Опубликовано: 23 мая 2018 А есть где то список файлов, которые нельзя модифицировать с помощью системы плагинов? Ну там engine/modules/main.php и т.д Цитата Ссылка на сообщение Поделиться на других сайтах
odys 384 Опубликовано: 23 мая 2018 Рассказать Опубликовано: 23 мая 2018 1 час назад, alex32 сказал: А есть где то список файлов, которые нельзя модифицировать с помощью системы плагинов? Ну там engine/modules/main.php и т.д в engine/classes/plugins.class.php написано вот что public static $protected_files = array("engine/classes/mysql.php", "engine/classes/plugins.class.php", "engine/ajax/controller.php", "engine/data/config.php", "engine/data/dbconfig.php", "engine/data/socialconfig.php", "engine/data/videoconfig.php"); я так понимаю только эти файлы запрещены?! Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 23 мая 2018 Рассказать Опубликовано: 23 мая 2018 1 минуту назад, odys сказал: я так понимаю только эти файлы запрещены?! Да нет, @celsoft писал что main.php engine.php тоже запрещены, я потому и спрашиваю. Хотелось бы увидеть список, что бы знать все файлы. Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 625 Опубликовано: 23 мая 2018 Рассказать Опубликовано: 23 мая 2018 16 минут назад, alex32 сказал: Да нет, @celsoft писал что main.php engine.php тоже запрещены, я потому и спрашиваю. Хотелось бы увидеть список, что бы знать все файлы. Не запрещены, в строке public static $protected_files и есть список. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.