skapunker 71 Опубликовано: В понедельник в 13:07 Рассказать Опубликовано: В понедельник в 13:07 13.12.2024 в 15:10, celsoft сказал: Ничего не мешает. Нет цели усложнять пользователям делать верстку шаблонов. там и так их десятки, а еще от одного шаблона ничего не изменится и уж точно не усложнится, наоборот работа облегчится, так как не нужно будет делать плагины и заниматься подобной ерундой 13.12.2024 в 16:50, weddaan сказал: Мне нужно например поставить смайлы в форме ответа на комментарий, а не могу! вот я об этом же, щас приходится делать плагин, который ломается после каждого обновления это никуда не годится Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 090 Опубликовано: В понедельник в 13:48 Рассказать Опубликовано: В понедельник в 13:48 Автор 39 минут назад, skapunker сказал: вот я об этом же, щас приходится делать плагин, который ломается после каждого обновления Пишите так чтобы не сломалось. Не надо обвинять других в своих действиях. Это примитивная манипуляция. Они не проходят поэтому не засоряйте тему. Написали, пожелание, на этом все. Уговаривать и манипулировать не нужно, это не ускоряет ничего. Просто пустая трата времени. Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: Во вторник в 07:25 Рассказать Опубликовано: Во вторник в 07:25 17 часов назад, celsoft сказал: Пишите так чтобы не сломалось. Не надо обвинять других в своих действиях. Это примитивная манипуляция. Они не проходят поэтому не засоряйте тему. Написали, пожелание, на этом все. Уговаривать и манипулировать не нужно, это не ускоряет ничего. Просто пустая трата времени. Часто таки бывает, иногда может пробел изменится в каком-то из условий, и всё, нужно править. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 090 Опубликовано: Во вторник в 10:43 Рассказать Опубликовано: Во вторник в 10:43 Автор 3 часа назад, Gameer сказал: Часто таки бывает, иногда может пробел изменится в каком-то из условий, и всё, нужно править. Пробел не повлияет )) так устроена система плагинов )) Проблема в том, что люди очень часто при написании плагинов не думают, когда привязываются к точке вызова, или начинают менять код, тогда когда это не нужно. Например на нашем сайте стоит достаточно большой и объемный плагин для разных действий чтобы реализовать нужный нам функционал, тот же по продаже лицензий, показу их клиентам, учету клиентов и т.д. Так вот за все время он ни разу при обновлении не потребовал адаптации под новую версию, при этом новые версии никогда не писались под него, потому как в случае чего проще плагин адаптировать, чем оглядываться каждый раз на плагин при разработке новых версий. Просто он грамотно привязан к коду и написан. Он не меняет базового кода, не лезет в работу стандартного кода, он все что ему нужно делает и добавляет сам, а грамотно привязанные точки входа позволяют не сильно переживать что там что то изменится. Если подумать над структурой плагина, посмотреть внимательно что и как работает, что и как менялось со временем, правильно организовать работу самого плагина, то он будет работать долго и мало от чего зависеть, а если просто "шлепнуть на коленке" тут заменить, тут заменить и вроде как работает, то и адаптировать его нужно будет постоянно. Поэтому тут вопрос больше зависит от подхода разработчика. Приведу пример правильного и неправильно мышления. Предположим есть абстрактный код: $code = "<div class=\"myclass\"></div>"; $next = true; Условно две строчки, это два логических блока идущий друг за другом по коду. Автору плагина нужно поменять оформление. Что он делает часто? Правильно, т.к. ему нужно поменять оформление, он берет первый блок $code = "<div class=\"myclass\"></div>"; и делает замену. Зачем? Вероятность что будут изменения достаточно высока. Это неправильный подход. Правильнее привязаться к началу второго блока $next = true; и перед ним сделать вставку никак не трогая первый блок $code = "<div class=\"myclass2\"></div>"; Итоговый код соответственно станет $code = "<div class=\"myclass\"></div>"; $code = "<div class=\"myclass2\"></div>"; $next = true; И какие бы изменения не были в первом логическом блоке, ваш блок будет всегда отменять это и всегда использовать свой код и свою верстку, чтобы в DLE не менялось. А начало логического второго блока вряд ли измениться, потому как возможности крайне редко убираются. И то что код будет выполнен дважды по сути мало на что повлияет, это сверх быстрое выполнение в данном случае. Поэтому всегда нужно думать, а не просто "раз два и готово". Цитата Ссылка на сообщение Поделиться на других сайтах
fanera 25 Опубликовано: Во вторник в 16:23 Рассказать Опубликовано: Во вторник в 16:23 Невозможно создавать/редактировать плагины, когда действий много. DLE просто без каких-либо уведомлений и предупреждений сносит часть действий, из-за чего теряются правки, сделайте уже с этим что-то Цитата Ссылка на сообщение Поделиться на других сайтах
MSK 289 Опубликовано: Во вторник в 16:50 Рассказать Опубликовано: Во вторник в 16:50 22 минуты назад, fanera сказал: Невозможно создавать/редактировать плагины, когда действий много. DLE просто без каких-либо уведомлений и предупреждений сносит часть действий, из-за чего теряются правки, сделайте уже с этим что-то Добавляемый код вставляется в динамические поля и если при сохранении найдена ошибка, вернуться к ним нельзя. Давно пора перевести сохранение правки плагинов на аякс, тогда не потеряются введенные данные. Это же касается и иных мест в админке, где поля формируются подобныи образом. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 090 Опубликовано: Во вторник в 19:46 Рассказать Опубликовано: Во вторник в 19:46 Автор 3 часа назад, fanera сказал: Невозможно создавать/редактировать плагины, когда действий много. DLE просто без каких-либо уведомлений и предупреждений сносит часть действий, из-за чего теряются правки, сделайте уже с этим что-то Как то подробней опишите проблему, предоставьте коды и видео. Никаких проблем в редактировании и создании мы не фиксируем. Поэтому очень как то подробнее все нужно, чтобы проблему можно было воспроизвести. И если проблема возникает именно в вашем коде, то ее нужно изучить, а может быть проблема в принципе кроется в вашем браузере, потому как редактируете вы в браузере, DLE запустится только при сохранении собственно данных на сайт, а когда вы что то делаете на странице, вы делаете это с использованием браузера, и DLE сам ничего удалить не может. А может на вашем сервере стоит фильтр входящих данный и он что либо отсекает. Либо есть лимиты в настройках сервера на обьем входящих данных. Много вариантов может быть. Поэтому этот вопрос нужно изучать, никаких жалоб что DLE что то сам удаляет мы ранее не получали, кодов и каких то воспроизведений проблемы тоже. Поэтому вам не в пожелания нужно, а в тех поддержку https://dle-news.ru/index.php?do=feedback с предоставлением всех данных для изучения конкретной проблемы и конкретного вопроса. 3 часа назад, MSK сказал: Добавляемый код вставляется в динамические поля и если при сохранении найдена ошибка, вернуться к ним нельзя. Какая ошибка возникает? Имя плагина это единственное обязательное поле, все остальное DLE сохранит в любом случае и можно перейти к редактированию, и ничего не теряется. Или вы пишите много кода, не написав имени плагина? Не понятна суть проблемы. Поясните. Цитата Ссылка на сообщение Поделиться на других сайтах
fanera 25 Опубликовано: Во вторник в 22:46 Рассказать Опубликовано: Во вторник в 22:46 (изменено) 3 часа назад, celsoft сказал: Как то подробней опишите проблему, предоставьте коды и видео. Никаких проблем в редактировании и создании мы не фиксируем. Поэтому очень как то подробнее все нужно, чтобы проблему можно было воспроизвести. И если проблема возникает именно в вашем коде, то ее нужно изучить, а может быть проблема в принципе кроется в вашем браузере, потому как редактируете вы в браузере, DLE запустится только при сохранении собственно данных на сайт, а когда вы что то делаете на странице, вы делаете это с использованием браузера, и DLE сам ничего удалить не может. А может на вашем сервере стоит фильтр входящих данный и он что либо отсекает. Либо есть лимиты в настройках сервера на обьем входящих данных. Много вариантов может быть. Поэтому этот вопрос нужно изучать, никаких жалоб что DLE что то сам удаляет мы ранее не получали, кодов и каких то воспроизведений проблемы тоже. Поэтому вам не в пожелания нужно, а в тех поддержку https://dle-news.ru/index.php?do=feedback с предоставлением всех данных для изучения конкретной проблемы и конкретного вопроса. 5 часов назад, MSK сказал: 1) Самый банальный способ вызвать проблему - модифицировать один из файлов из массива $protected_files. Если попытаться сохранить - ошибка, возврат назад - ничего нет 2) Создаем чистый плагин, отправляем в mysql запрос: вместо 62 указываем ID созданного плагина INSERT INTO dle_plugins_files (plugin_id, file, action, searchcode, replacecode, active, searchcount, replacecount, filedisable, filedleversion, fileversioncompare) SELECT 62, 'language/English/adminpanel.lng', 'replace', '$lang = array (', '$lang = array (', 1, 0, 0, 1, '', '==' FROM (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t1, (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t2 LIMIT 100; INSERT INTO dle_plugins_files (plugin_id, file, action, searchcode, replacecode, active, searchcount, replacecount, filedisable, filedleversion, fileversioncompare) SELECT 62, 'language/Russian/adminpanel.lng', 'replace', '$lang = array (', '$lang = array (', 1, 0, 0, 1, '', '==' FROM (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t1, (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t2 LIMIT 100; INSERT INTO dle_plugins_files (plugin_id, file, action, searchcode, replacecode, active, searchcount, replacecount, filedisable, filedleversion, fileversioncompare) SELECT 62, 'language/English/website.lng', 'replace', '$lang = array (', '$lang = array (', 1, 0, 0, 1, '', '==' FROM (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t1, (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t2 LIMIT 100; INSERT INTO dle_plugins_files (plugin_id, file, action, searchcode, replacecode, active, searchcount, replacecount, filedisable, filedleversion, fileversioncompare) SELECT 62, 'language/Russian/website.lng', 'replace', '$lang = array (', '$lang = array (', 1, 0, 0, 1, '', '==' FROM (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t1, (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t2 LIMIT 100; INSERT INTO dle_plugins_files (plugin_id, file, action, searchcode, replacecode, active, searchcount, replacecount, filedisable, filedleversion, fileversioncompare) SELECT 62, 'engine/engine.php', 'replace', '$lang = array (', '$lang = array (', 1, 0, 0, 1, '', '==' FROM (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t1, (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t2 LIMIT 100; INSERT INTO dle_plugins_files (plugin_id, file, action, searchcode, replacecode, active, searchcount, replacecount, filedisable, filedleversion, fileversioncompare) SELECT 62, 'engine/download.php', 'replace', '$lang = array (', '$lang = array (', 1, 0, 0, 1, '', '==' FROM (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t1, (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t2 LIMIT 100; INSERT INTO dle_plugins_files (plugin_id, file, action, searchcode, replacecode, active, searchcount, replacecount, filedisable, filedleversion, fileversioncompare) SELECT 62, 'engine/opensearch.php', 'replace', '$lang = array (', '$lang = array (', 1, 0, 0, 1, '', '==' FROM (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t1, (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 10) AS t2 LIMIT 100; Открываем плагин и поиском: - Имя файла - 7 штук - Действие - 175 штук Жмем сохранить, открываем заново - файлов стало 5, действий 124. Этот пример с рандомными файлами и действиями, но ровно такое же происходит, когда я пытаюсь добавить в 1 плагин много файлов и много действий - часть данных просто пропадает при сохранении Ещё другое - если плагин отключен или отключена система плагинов - его нельзя редактировать. Если что-то не так сделал в действии, которое приводит к поломке сайта (ошибки php), как быть? Замкнутый круг, из которого никак не выйти, в системе нет защиты от этого Изменено Во вторник в 22:48 пользователем fanera Цитата Ссылка на сообщение Поделиться на других сайтах
TeraMoune 56 Опубликовано: В среду в 00:48 Рассказать Опубликовано: В среду в 00:48 (изменено) 2 часа назад, fanera сказал: часть данных просто пропадает при сохранении У вас в сервере в настройках ограниченно получение данных, у меня тоже есть большой плагин, 150 действий на 58 изменений в двух десятков файлов + заметок на 5к символов, причём действия не на 5 символов, где-то большие куски кода добавляются, функции и существенные изменения на сотню символов в одном действии). Плагин весит 130кб, на минуточку ваш код в плагине весит 30кб занимает 33к символов, у меня плагин который весит 130кб занимает 112к символов. И всё прекрасно сохраняет. Изменено В среду в 00:54 пользователем TeraMoune Цитата Ссылка на сообщение Поделиться на других сайтах
MSK 289 Опубликовано: В среду в 04:33 Рассказать Опубликовано: В среду в 04:33 8 часов назад, celsoft сказал: Имя плагина это единственное обязательное поле В интерфейсе нет метки, что это обязательное поле. И этого достаточно, чтобы потерять все сделанное при создании плагина. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 090 Опубликовано: В среду в 07:23 Рассказать Опубликовано: В среду в 07:23 Автор 8 часов назад, fanera сказал: 1) Самый банальный способ вызвать проблему - модифицировать один из файлов из массива $protected_files. Если попытаться сохранить - ошибка, возврат назад - ничего нет Какая именно ошибка? DLE сделан так, что никаких ошибок при сохранении он выдавать не должен. Только название плагина является обязательным. Поэтому ошибка важна, а вы не пишите какая. 8 часов назад, fanera сказал: Ещё другое - если плагин отключен или отключена система плагинов - его нельзя редактировать. Если плагин отключен его можно редактировать. Нет никаких ограничений в DLE в этом вопросе. 8 часов назад, fanera сказал: Жмем сохранить, открываем заново - файлов стало 5, действий 124. Этот пример с рандомными файлами и действиями, но ровно такое же происходит, когда я пытаюсь добавить в 1 плагин много файлов и много действий - часть данных просто пропадает при сохранении Вам нужно искать свою проблему на сервере. В нем какие то ограничения. Какие могут быть я написал выше. 8 часов назад, fanera сказал: Создаем чистый плагин, отправляем в mysql запрос: Свои прямые запросы в MySQL не нужно вписывать к багам DLE. Это ваши запросы, что они сделали верно, что неверно, это изучать уже вам. Если просто заходя в админпанель, и сохраняя плагин, например ничего не меняя все работает, полностью сохраняется, а после ваших запросов перестало сохраняться и теряется часть, то очевидно что проблема возникла в результате ваших прямых запросов к БД. 3 часа назад, MSK сказал: В интерфейсе нет метки, что это обязательное поле. И этого достаточно, чтобы потерять все сделанное при создании плагина. Подумаем над этим. Просто не предполагалось что кто то что то будет писать объемное, не написав по сути главного, а именно названия. 8 часов назад, fanera сказал: Ещё другое - если плагин отключен или отключена система плагинов - его нельзя редактировать. Если что-то не так сделал в действии, которое приводит к поломке сайта (ошибки php), как быть? Замкнутый круг, из которого никак не выйти, в системе нет защиты от этого Ну во первых не нужно "лезть" своими плагинами в базовую стартовую часть DLE, там вам делать нечего точно, во вторых не нужно лезть плагинами в систему управления плагинами, там вам тоже делать нечего, никакая дополнительная функциональность этого не требует, и если вы думаете иначе, то просто банально некорректно подходите к проектированию своего плагина и функциональности. И тогда если соблюдать эти два простых правила, какие бы ошибки не возникли всегда можно войти в систему управления плагинами и отключить плагин. А если вы все таки полезли в базовую стартовую часть, то всегда нужно помнить, что вы пишите нативный PHP код, поэтому сломав работу сайта, ничто не может это отменить, поэтому тестировать и проверять в таких случах нужно точно не писав код в админпанели, а именно сначала написать и протестировать его редактируя файлы напрямую, а потом уже перенести в систему плагинов, когда точно уверены в работе. Думать что как то DLE может обойти или заблокировать выполнение нативного PHP если в нем ошибка, это наивно. Это невозможно чисто технически. Цитата Ссылка на сообщение Поделиться на других сайтах
fanera 25 Опубликовано: В среду в 07:47 Рассказать Опубликовано: В среду в 07:47 (изменено) 26 минут назад, celsoft сказал: Свои прямые запросы в MySQL не нужно вписывать к багам DLE. Это ваши запросы, что они сделали верно, что неверно, это изучать уже вам. Если просто заходя в админпанель, и сохраняя плагин, например ничего не меняя все работает, полностью сохраняется, а после ваших запросов перестало сохраняться и теряется часть, то очевидно что проблема возникла в результате ваших прямых запросов к БД. 3 часа назад, MSK сказал: Это тоже самое, что делать в ручную, нет разницы, запросами или руками, проблема одна, и как сказали - проблема в ограничениях сервера, но при этом движок об этом никак не предупреждает, не сохраняет в локальное хранилище, чтобы можно было восстановить - просто удаляет часть правок и все. Не нужно переворачивать слова, чтобы не устранять проблемы 26 минут назад, celsoft сказал: Ну во первых не нужно "лезть" своими плагинами в базовую стартовую часть DLE, там вам делать нечего точно, во вторых не нужно лезть плагинами в систему управления плагинами, там вам тоже делать нечего, никакая дополнительная функциональность этого не требует, и если вы думаете иначе, то просто банально некорректно подходите к проектированию своего плагина и функциональности. И тогда если соблюдать эти два простых правила, какие бы ошибки не возникли всегда можно войти в систему управления плагинами и отключить плагин. А если вы все таки полезли в базовую стартовую часть, то всегда нужно помнить, что вы пишите нативный PHP код, поэтому сломав работу сайта, ничто не может это отменить, поэтому тестировать и проверять в таких случах нужно точно не писав код в админпанели, а именно сначала написать и протестировать его редактируя файлы напрямую, а потом уже перенести в систему плагинов, когда точно уверены в работе. Думать что как то DLE может обойти или заблокировать выполнение нативного PHP если в нем ошибка, это наивно. Это невозможно чисто технически. Опять переворачиваете слова, чтобы не решать проблемы. Я вам о том, что движок никак не информирует, а просто шлет запрос, отклоняет, возврат назад - никаких внесенных данных. Вы мне километровым текстом о том, что не надо трогать файлы и не будет проблем, гениальный ответ 👍 Изменено В среду в 07:50 пользователем fanera Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 090 Опубликовано: В среду в 07:58 Рассказать Опубликовано: В среду в 07:58 Автор 13 минут назад, fanera сказал: Это тоже самое, что делать в ручную, нет разницы, запросами или руками, проблема одна, и как сказали - проблема в ограничениях сервера, но при этом движок об этом никак не предупреждает, DLE не может об этом предупреждать, DLE об этом не знает и никак технически даже если захочет узнать не может. Сервер об этом никогда не сообщает, при наступлении лимитов он выключает полностью все, включая DLE, поэтому DLE не может об этом предупредить или как то перехватить и соответственно предотвратить потерю. Все лимиты сервера срабатывают до запуска DLE!!!! это важно, если вы этого не знаете. Сервер сначала все отфильтрует, сократит, и только потом запустит DLE, DLE даже не узнает о том что часть чего то в данных пропало. Или вообще сервер заблокирует запрос, даже без запуска DLE. Поэтому это невозможно исключительно по техническим причинам, потому что от сервера нет об этом никакой обратной связи и информации. 13 минут назад, fanera сказал: Не нужно переворачивать слова, чтобы не устранять проблемы Не нужно путать теплое с мягким, и придумывать что проблемы на сервере, это проблемы DLE. Проблемы, которые связаны с DLE и зависят от DLE, это проблемы DLE, а проблемы связанные с сервером это проблемы сервера, которые решать нужно на сервере. Каждый должен решать исключительно свои проблемы. Цитата Ссылка на сообщение Поделиться на других сайтах
fanera 25 Опубликовано: В среду в 08:05 Рассказать Опубликовано: В среду в 08:05 4 минуты назад, celsoft сказал: DLE не может об этом предупреждать, DLE об этом не знает и никак технически даже если захочет узнать не может. Сервер об этом никогда не сообщает, при наступлении лимитов он выключает полностью все, включая DLE, поэтому DLE не может об этом предупредить или как то перехватить и соответственно предотвратить потерю. Все лимиты сервера срабатывают до запуска DLE!!!! это важно, если вы этого не знаете. Сервер сначала все отфильтрует, сократит, и только потом запустит DLE, DLE даже не узнает о том что часть чего то в данных пропало. Или вообще сервер заблокирует запрос, даже без запуска DLE. Поэтому это невозможно исключительно по техническим причинам, потому что от сервера нет об этом никакой обратной связи и информации. 16 минут назад, fanera сказал: Что технически вы не можете узнать и сделать? Значение max_input_vars узнать и отправлять по AJAX при сохранении? Не можете переписать на другое решение, чтобы не заставлять людей увеличивать лимиты max_input_vars и открывать дыры для уязвимостей? Я не могу понять ни одной причины, по которой у вас там что-то технически в 2024 невозможно. 8 минут назад, celsoft сказал: Не нужно путать теплое с мягким, и придумывать что проблемы на сервере, это проблемы DLE. Проблемы, которые связаны с DLE и зависят от DLE, это проблемы DLE, а проблемы связанные с сервером это проблемы сервера, которые решать нужно на сервере. Каждый должен решать исключительно свои проблемы. Одно дело свои частные проблемы и совсем другое, когда движок ни о чем не информирует, не предупреждает в системных требованиях и вообще нигде нет пометки, просто сносит и все и ты потом думаешь в чем проблема. И вместо того, чтобы сохранять данные иным способом получать ответ - исправляйте сервер и увеличивайте лимиты, чтобы потенциально открывать дыры в системе - впервые слышу такой ответ Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 090 Опубликовано: В среду в 08:29 Рассказать Опубликовано: В среду в 08:29 Автор 24 минуты назад, fanera сказал: Значение max_input_vars узнать и отправлять по AJAX при сохранении? По вашему фильтры бывают только в max_input_vars? Если так думаете, то очень мало знаете о том как фильтруют и что ставят и их разнообразности. Это первое. Второе вы пишите что у вас часть действий теряются, т.е. данные удаляются частично. Как AJAX сохранения вас спасет от частичного сохранения? Никак. 24 минуты назад, fanera сказал: впервые слышу такой ответ Если не слышали таких ответов, значит никогда не слышали правдивых и главное правильных ответов. Отсюда и берутся такие специалисты которые сначала людям говорят да да, это можно, это можно, это сделаем это сделаем, а потом по факту ничего в итоге и потом одни "отмазки" и абстракции. Мы так не делаем. Я всегда говорю только правду и так как оно есть и так как должно быть. И мне не важно понравится вам мой ответ или нет. Моя цель правильно помочь решить проблему, а не угодить вам ответом. Всегда нужно устранять источник проблемы, а не думать о костылях. Цитата чтобы потенциально открывать дыры в системе Так нужно головой думать прежде чем менять настройки. Никто вам не говорит увеличивайте лимит до миллиарда переменных. Ставьте ровно столько сколько вам нужно, с небольшим запасом. Да и по умолчанию тот же max_input_vars имеет более чем приличное значение, которое даже с вашим плагинов не превысится. А то что вы его понизили, так это уже ваше действие непонятно зачем. Так что не нужно перекладывать с больной головы на здоровую. Цитата Ссылка на сообщение Поделиться на других сайтах
andriy159 0 Опубликовано: В среду в 08:33 Рассказать Опубликовано: В среду в 08:33 Сегодня решил что-небудь написать, так как благодаря DLE я стал кем то. Во первых это самый лучший по моему мнению движок и дело даже не в самом движке какой он сейчас, а в "драйверах" (класах базы данных, шаблонизатор) и фундаментально вообще. Не помню уже с какой версии начинал, но я тогда лишь учился понимать PHP и DLE был самым лучшим и легким учитилем. Сразу начал все переделывать под себя, ламать, перестраивать. Опережал вас на лет так два-три. Помню подсматривал когда же вы додумаетесь чтоб дописать LIMIT 1. Не хотел светится. Да и не хочу сильно подсказывать. Могу лишь сообщить, что вы даже не представляете, даже не представляете на сколько далеко я ушел от ваших версий. У меня не помню сколько лет (>6 точно) вообще не имеет значения какие правила в tpl существуют. Я могу брать все что захочу. [...] и {..} с строгим поиском и заменой вообще не нужны. Решил дать вам подсказку. Сами допишите функции. s - это публичная переменная $site в которую можно передавать что хотите. Да, знаю, что у вас совсем другая концепция и ваш релиз для всех, но {r.title} лучше чем {title} которого нужно еще и декларировать. Это работает на много, на очень много быстрей чем декларированные поиски с заменой. В PHPStorm очень хорошо видно мою разметку и колапс (+) работает (видит отлично блоки) # IS True <block>...</block> exempl: <is-r.lastname>...</is-r.lastname> preg_match_all('#<is-(t|s|m|c|g|Gi|G|P|r)\\.(.+?):>#', $this->copy_template, $matches, PREG_SET_ORDER);$u_matches=[];foreach($matches as $m){$m_=$m[1].'_'.$m[2];if(!isset($u_matches[$m_]))$u_matches[$m_]=$m;} foreach($u_matches as $v){ $tag="is-$v[1].$v[2]:"; if($v[1]=='s'){if($site[$v[2]])$this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template);else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='m'){if($member_id[$v[2]]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='c'){if($category[$v[2]]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='g'){if($user_group[$member_id['user_group']][$v[2]]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='G'){if($_GET[$v[2]]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='P'){if($_POST[$v[2]]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} } # IS NOT True <block:>...</block:> exempl: <not-is-r.lastname>...</not-is-r.lastname> preg_match_all('#<not-is-(t|s|m|c|g|Gi|G|P|r)\\.(.+?):>#', $this->copy_template, $matches, PREG_SET_ORDER);$u_matches=[];foreach($matches as $m){$m_=$m[1].'_'.$m[2];if(!isset($u_matches[$m_]))$u_matches[$m_]=$m;} foreach($u_matches as $v){ $tag="not-is-$v[1]\\.$v[2]:"; if($v[1]=='s'){if(!$site[$v[2]]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='m'){if(!$member_id[$v[2]]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='c'){if(!$category[$v[2]]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='g'){if(!$user_group[$member_id['user_group']][$v[2]]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='G'){if(!$_GET[$v[2]]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='P'){if(!$_POST[$v[2]]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} } # IF Field == Value <block>...</block>, <m.user_id-1:>если user_id то покажем</m.user_id:> <foreach.div-rows:*>...</foreach.div-rows:> сделал но не испльзовал preg_match_all('#<(t|s|m|c|g|G|Gi|P|r|foreach)\\.(.+?)-([\d_a-zA-Z]+?):(.*?)>#', $this->copy_template, $matches, PREG_SET_ORDER);$u_matches=[];foreach($matches as $m){$k=$m[1];if(!isset($u_matches[$k]))$u_matches[$k]=$m;} foreach($u_matches as $v){ $tag="$v[1]\\.$v[2]-$v[3]:"; if($v[1]=='s'){if($site[$v[2]]==$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='m'){if($member_id[$v[2]]==$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='c'){if($category[$v[2]]==$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='g'){if($user_group[$member_id['user_group']][$v[2]]==$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.":>([\s\S]*?)</".$tag.":>#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='G'){if($_GET[$v[2]]==$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='P'){if($_POST[$v[2]]==$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='foreach'){global ${$v[3]};$tmp_row_=${$v[3]};$this->copy_template=preg_replace_callback("#<$tag(.*?)>(.*?)</$tag>#s",function($m) use ($v, $tmp_row_){return $this->_for_each($m, $v, $tmp_row_);},$this->copy_template);} } # IF Field != Value <block>...</block> наоборот предыдущему правилу preg_match_all('#<not-(t|s|m|c|g|Gi|G|P|r)\\.(.+?)-([\d_a-zA-Z]+?):>#', $this->copy_template, $matches, PREG_SET_ORDER);$u_matches=[];foreach($matches as $m){$k=$m[1];if(!isset($u_matches[$k]))$u_matches[$k]=$m;} foreach($u_matches as $v){ $tag="not-$v[1]\\.$v[2]-$v[3]:"; if($v[1]=='s'){if($site[$v[2]]!=$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='m'){if($member_id[$v[2]]!=$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='c'){if($category[$v[2]]!=$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='g'){if($user_group[$member_id['user_group']][$v[2]]!=$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='G'){if($_GET[$v[2]]!=$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} elseif($v[1]=='P'){if($_POST[$v[2]]!=$v[3]) $this->copy_template = preg_replace_callback( "#<".$tag.">([\s\S]*?)</".$tag.">#",function($m){return $m[1];},$this->copy_template); else $this->copy_template = preg_replace_callback( "#<".$tag.">[\s\S]*?</".$tag.">#",function($m){return '';},$this->copy_template);} } # Show Value of Field {s.xxx} вывод чего угодно например {m.name} с $member_id[name]; {r.title} с $row[title] preg_match_all('#\\{(t|s|m|c|g|Gi|G|P|S|r|l|C|SE)\\.(.+?)\\}#', $this->copy_template, $matches, PREG_SET_ORDER);$u_matches=[];foreach($matches as $m){$k=$m[1];if(!isset($u_matches[$k]))$u_matches[$k]=$m;} foreach($u_matches as $v){ if($v[1]=='r') $this->copy_template = preg_replace_callback("#\\{r\\.(.+?)\\}#",function($m){global $row;return $row[$m[1]];},$this->copy_template); elseif($v[1]=='t') $this->copy_template = preg_replace_callback("#\\{t\\.(.+?)\\}#",function($m){return $this->result[$m[1]];},$this->copy_template); elseif($v[1]=='s') $this->copy_template = preg_replace_callback("#\\{s\\.(.+?)\\}#",function($m){global $site;return $site[$m[1]];},$this->copy_template); elseif($v[1]=='m') $this->copy_template = preg_replace_callback("#\\{m\\.(.+?)\\}#",function($m){global $member_id;return $member_id[$m[1]];},$this->copy_template); elseif($v[1]=='c') $this->copy_template = preg_replace_callback("#\\{c\\.(.+?)\\}#",function($m){global $category;return $category[$m[1]];},$this->copy_template); elseif($v[1]=='g') $this->copy_template = preg_replace_callback("#\\{g\\.(.+?)\\}#",function($m){global $member_id,$user_group;return $user_group[$member_id['user_group']][$m[1]];},$this->copy_template); elseif($v[1]=='Gi') $this->copy_template = preg_replace_callback("#\\{Gi\\.(.+?)\\}#",function($m){return intval($_GET[$m[1]]);},$this->copy_template); elseif($v[1]=='G') $this->copy_template = preg_replace_callback("#\\{G\\.(.+?)\\}#",function($m){return $_GET[$m[1]];},$this->copy_template); elseif($v[1]=='P') $this->copy_template = preg_replace_callback("#\\{P\\.(.+?)\\}#",function($m){return $_POST[$m[1]];},$this->copy_template); elseif($v[1]=='S') $this->copy_template = preg_replace_callback("#\\{S\\.(.+?)\\}#",[&$this,'load_with_script'],$this->copy_template); elseif($v[1]=='C') $this->copy_template = preg_replace_callback("#\\{C\\.(.+?)\\}#",function($m){global $config;return $config[$m[1]];},$this->copy_template); elseif($v[1]=='l') $this->copy_template = preg_replace_callback("#\\{l\\.(.+?)\\}#",function($m){global $lang;return $lang[$m[1]];},$this->copy_template); elseif($v[1]=='SE') $this->copy_template = preg_replace_callback("#\\{SE\\.(.+?)\\}#",function($m){return $_SERVER[$m[1]];},$this->copy_template); } Это только часть. Еще есть типа UI Вот как это выглядит: {include file="all_head.tpl"} <not-is-s.service_module:>{include file="all_menu.tpl"}</not-is-s.service_module:> <form id="auto_save_form" method="post" save_url="https://..../admin/{s.name_module}/{add||edit}/{r.id}/"> <div fvc wm> <div mwhd pb50> <div t-head fhbc p10> <div title><add:>Додавання</add:><edit:>Редагування</edit:> {s.title}</div> <div>{{save|title=Зберегти}}</div> </div> <div class="doc"> <div mt20 w100> <div t-head p10 b>Звернення і запити</div> <div t-head pv20 fh g20 class="box-content"> <div fvc g20 p10 w100> <edit:>{{value|name=id|title=#}}</edit:> <edit:>{{value|name=fullname|title=Створено користувачем}}</edit:> {{select|name=title|title=Заголовок|list=source}} {{textarea!|name=text|title=Суть звернення}} {{select|name=status|title=Статус|list=source}} {{multicombo|name=tag|title=Мітка|list=source}} {{checkbox|name=approved|title=Перевірено модератором}} <edit:>{{value|name=date_created|title=Час створення}}</edit:> </div> </div> </div> <is-s.is_comment:> <div mt20 mb100 w100> <div t-head p10 b>Коментарі</div> <div t-head pv20 fh g20 class="box-content"> <div fvc g20 p10 w100> {s.comments} </div> </div> </div> </is-s.is_comment:> </div> </div> </div> </form> И еще.. у вас все модули не оптимизированы почти совсем. Если часто что-то повторяется в каждом модуле, то это можно обобщить. Дублировать прикольно только тогда, когда у вас есть еще прекомпилятор из другого кода который делает сборку. Потому что проект масштабировать очень сложно, особенно если много изменений и в каждом модуле нужно тоже самое менять. По этому я ушол от этого. И с css ушел далеко и с JS ))) Удачи с релизами и спасибо. DLE на много круче всяких там Ларавелов, Юі, Коденайтеров, Вордпресов и всякой другой дичи... Мда.. Но ваша система авторизации еще такая отсталя... OMG... Это просто издевательство. Я уже давно забыл как это... Всякие там "я не робот"))) Лет так через 5 наверное подтянитесь. Вас же там команда наверное. Спасибо за внимание)) Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 090 Опубликовано: В среду в 08:44 Рассказать Опубликовано: В среду в 08:44 Автор @andriy159 я с вами согласен. Много чего в DLE далеко от идеала в плане архитектуры. И много чего можно было бы написать иначе. Но нужно не забывать, что мы не начинаем каждый раз что то с нуля, мы ведем проект который взял свое начало в 2004 году. На котором огромное количество сайтов, которые постоянно обновляются и нам в отличии от тех кто просто начал проект, что то дописал, потом начал другой, дописал по другому для него, крайне важно соблюдать принцип обратной совместимости. Мы не можем и не хотим выпускать движок, на который невозможно обновится, или для того чтобы обновится нужно переписать весь шаблон с нуля. Мы не можем сломать обратную совместимость. Это по нашему убеждению неправильный подход к клиентам. Поэтому мы в какой то мере заложники части архитектуры заложенной очень давно, еще 20 лет назад. Некоторые разработчики CMS так делают, но как по мне, это неправильно. Но тут у каждого свое субъективное мнение, т.к. нет правильного ответа на этот вопрос. Каждый сам решает. 21 минуту назад, andriy159 сказал: Мда.. Но ваша система авторизации еще такая отсталя... OMG... Это просто издевательство. Я уже давно забыл как это... Всякие там "я не робот"))) Лет так через 5 наверное подтянитесь. Вас же там команда наверное. Спасибо за внимание)) 🤣 так то в DLE если что давно есть методы проверки и без этого, а именно на выбор аж пять разных типов. Куда уж больше. Выбрать и включить тот который подходит можно и без "Я не робот" 🤣 Цитата Ссылка на сообщение Поделиться на других сайтах
andriy159 0 Опубликовано: В среду в 10:51 Рассказать Опубликовано: В среду в 10:51 1 час назад, celsoft сказал: 🤣 так то в DLE если что давно есть методы проверки и без этого, а именно на выбор аж пять разных типов. Куда уж больше. Выбрать и включить тот который подходит можно и без "Я не робот" 🤣 Та вы даже не поняли о чем я. Ну да ладно. Когда небудь доедете, наверное. Хочу поблагодарить талантливих людей, которые придумали DLE, поскольку много перепробывал с точки зрения удобства использования и с точки зрения програмного кода, его расширения, редактирования и не то, чтобы это был мой первый опыт - нет. Этот движок действительно пока самый удобный, хотя да, много чего тут уже устарело. И не к чему придратся или кого-то винить за это, так как ели вспомнить как развивался тот же Нортон командер, то там вообще через много времени лишь придумали "удалить папку с всем ее содержимым", а это сегодня может каждый. А к примеру нейросеть от однослойной до многослойной нужно было 20 лет, хотя там очень простая математика. Вот так и сдесь. Вы не видите пока очевидного и это норм. Всего хорошего. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 090 Опубликовано: В среду в 11:52 Рассказать Опубликовано: В среду в 11:52 Автор 1 час назад, andriy159 сказал: Та вы даже не поняли о чем я. Ну да ладно. Когда небудь доедете, наверное. Так пояснили бы о чем пишите. Человек загадка ))), если это кому и нужно, так другим людям в первую очередь, а не нам ))), и пока этого никто не просит, значит не востребовано, а если не востребовано, то и думать об этом и доезжать нет никакой нужды, есть список из 274 страниц из того что просят, а значит востребовано ))) Цитата Ссылка на сообщение Поделиться на других сайтах
fanera 25 Опубликовано: В среду в 12:38 Рассказать Опубликовано: В среду в 12:38 4 часа назад, celsoft сказал: Так нужно головой думать прежде чем менять настройки. Никто вам не говорит увеличивайте лимит до миллиарда переменных. Ставьте ровно столько сколько вам нужно, с небольшим запасом. Да и по умолчанию тот же max_input_vars имеет более чем приличное значение, которое даже с вашим плагинов не превысится. А то что вы его понизили, так это уже ваше действие непонятно зачем. Так что не нужно перекладывать с больной головы на здоровую. Так он по умолчанию и выставлен на 1000 и использовался мною, что вы там придумываете лишь бы не признавать проблемы движка и не устранять их - я не понимаю. В плагине у меня 32 файлов со 140+ действиями в них. Это так много, что "это невозможно чисто технически" в 2024 году сделать либо хотя бы предупреждение, либо слать запрос иным образом, а не по 1000 GET и POST переменных, что неожиданно оказывается 1000 становится мало, о чем вообще сразу и не догадываешься, и нужно увеличивать лимиты и потом из проекта в проект еще об этом вспоминать? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 090 Опубликовано: В среду в 13:00 Рассказать Опубликовано: В среду в 13:00 Автор 2 часа назад, fanera сказал: что вы там придумываете лишь бы не признавать проблемы движка и не устранять их Я по моему очень четко написал что вам нужно делать, чтобы выяснить проблемы это DLE или нет. Пока что вы льете одну воду и ничего не сделали к выполнению указанных мной действий. А раз не сделали, то и смысла дискутировать тут нет. Так что это не я не признаю проблемы, это вы во первых ничего не делаете для проверки есть ли проблема в DLE, а также приписываете свои проблемы в настройке сервера к проблемам DLE. И не более того. 2 часа назад, fanera сказал: в 2024 году сделать либо хотя бы предупреждение, либо слать запрос иным образом, а не по 1000 GET и POST переменных Да хоть миллионный год будет. Вы сколько данных написали, столько DLE и послал, никто не заставляет вас придумывать и посылать тысячи полей и действий, в DLE даже столько файлов и действий которые нужно поменять нет, сколько вы шлете, не можете сделать все в одном файле и просто подключить его, а плагин в архив? вместо тысячи действий? Это не DLE что то сделал неправильно, это вы сделали неправильное проектирование своего плагина в тысячу действий над стандартными файлами DLE. DLE посылает не более десятка переменных. Только вы забываете или не знаете, что элементы массива это для этого ограничения тоже как отдельные переменные и проверяются по этому лимиту тоже, а элементы этого массива, это уже результат деятельности вашей головы и вашей мозговой активности, потому как это вы их придумали, что их должно быть столько, а не DLE за вас придумал данное количество элементов, поэтому не перекладываете с больной головы на здоровую. Сервер нужно настраивать под конкретные нужды и требования конкретного сайта всегда, а не придумывать костыли. Почему нельзя предупреждать заранее я вам написал об этом ранее, вам не одно так другое будет отсекать, не третье так десятое, нельзя предвидеть и проверить все фильтры, а некоторые недоступны в принципе, видимо вы предпочитаете не читать и продвигать свое видение. Я уже тысячу раз писал, написали пожелания, пошли дальше, не надо продвигать свои видения, точки зрения, спорить. Все это бессмысленно. Одной страницей раньше это написано, а еще тремя сообщениями выше вашего первого. Но зачем вам это было читать? У вас же свое видение, вы же умнее всех. Так если так, тогда и пишите себе скрипт и плагин, который будет проверять ваш плагин, одной тысячей переменных больше, одной меньше, какая разница верно? Ваш плагин, ваши костыли, никто не запрещает вам их написать. Все умные пишут себе сами, а не навязывают это другим, а то повадились, они плагин не могут нормально спроектировать, тысячу действий над стандартными файлами напридумывали, наплевав на нагрузку, на такие замены, расход памяти, на контроль изменений, на головную боль адаптации под новые версии, а ты им "костыль" напиши под под конкретный лимит, которых еще не один десяток может быть, и будут же упираться, продвигать, просто поражаюсь таким отчаянным и уверенным в себе людям. P.S.: Риторическое отсупление для супер программистов: Как вы собираетесь решать задачу: ограничение в настройках сервера 1000 переменных, на сервер отправлен массив из 1500 элементов, потому что так придумал супер программист, сервер получив это количество "сам отсек 500" и только после этого запустил DLE. DLE видит что лимит 1000 пришло 1000 ничего не превышено. Как ему предусмотреть и предотвратить коллизию? Ваше решение? Как он должен предотвратить согласно логике супер программиста, и догадаться о том что в браузере у супер программиста на самом деле было 1500? Он ведь на сервере работает, а не в браузере и про содержание браузера ничего не знает. Супер программист скажет: посылай не весь массив, а сделать прогресс бар и пошли это десятком запросов к серверу по 100 элементов, потому как браузер не знает что там за лимит на сервере, а по 100 будет надежно, итого наблюдаем прогресс бар в 15 обращений к серверу и временно их где то сохраняем, потом объединяем. Ура они лимит победили. Теперь можете начать заниматься другими лимитами которых не один десяток. Верное решение согласно вашей логике? Какой только бред не придет людям, лишь бы продвинуть свои косяки или лимиты и ограничения не имеющие отношения к DLE, за баги DLE. Мы живем в свободных странах, каждый сам решает заниматься ему ерундой или нет, так что это вы реализуйте уже своим плагином под ваш плагин. А мы предпочитаем не заниматься глупостями. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
MSK 289 Опубликовано: В четверг в 09:57 Рассказать Опубликовано: В четверг в 09:57 Выбор периода дат при поиске. При первом выборе периода, когда выбирается первая дата и потом при выборе даты ДО - сделайте фокус в календаре не на текущую дату (ее при клике на домик можно вставить), а дату выбранную в поле ОТ. Когда делается поиск старых материалов, приходится в обоих полях "перематывать" календарь... Цитата Ссылка на сообщение Поделиться на других сайтах
fanera 25 Опубликовано: В четверг в 15:10 Рассказать Опубликовано: В четверг в 15:10 (изменено) 18.12.2024 в 16:00, celsoft сказал: Я по моему очень четко написал что вам нужно делать, чтобы выяснить проблемы это DLE или нет. Пока что вы льете одну воду и ничего не сделали к выполнению указанных мной действий. А раз не сделали, то и смысла дискутировать тут нет. Так что это не я не признаю проблемы, это вы во первых ничего не делаете для проверки есть ли проблема в DLE, а также приписываете свои проблемы в настройке сервера к проблемам DLE. И не более того. Да хоть миллионный год будет. Вы сколько данных написали, столько DLE и послал, никто не заставляет вас придумывать и посылать тысячи полей и действий, в DLE даже столько файлов и действий которые нужно поменять нет, сколько вы шлете, не можете сделать все в одном файле и просто подключить его, а плагин в архив? вместо тысячи действий? Это не DLE что то сделал неправильно, это вы сделали неправильное проектирование своего плагина в тысячу действий над стандартными файлами DLE. DLE посылает не более десятка переменных. Только вы забываете или не знаете, что элементы массива это для этого ограничения тоже как отдельные переменные и проверяются по этому лимиту тоже, а элементы этого массива, это уже результат деятельности вашей головы и вашей мозговой активности, потому как это вы их придумали, что их должно быть столько, а не DLE за вас придумал данное количество элементов, поэтому не перекладываете с больной головы на здоровую. Сервер нужно настраивать под конкретные нужды и требования конкретного сайта всегда, а не придумывать костыли. Почему нельзя предупреждать заранее я вам написал об этом ранее, вам не одно так другое будет отсекать, не третье так десятое, нельзя предвидеть и проверить все фильтры, а некоторые недоступны в принципе, видимо вы предпочитаете не читать и продвигать свое видение. Я уже тысячу раз писал, написали пожелания, пошли дальше, не надо продвигать свои видения, точки зрения, спорить. Все это бессмысленно. Одной страницей раньше это написано, а еще тремя сообщениями выше вашего первого. Но зачем вам это было читать? У вас же свое видение, вы же умнее всех. Так если так, тогда и пишите себе скрипт и плагин, который будет проверять ваш плагин, одной тысячей переменных больше, одной меньше, какая разница верно? Ваш плагин, ваши костыли, никто не запрещает вам их написать. Все умные пишут себе сами, а не навязывают это другим, а то повадились, они плагин не могут нормально спроектировать, тысячу действий над стандартными файлами напридумывали, наплевав на нагрузку, на такие замены, расход памяти, на контроль изменений, на головную боль адаптации под новые версии, а ты им "костыль" напиши под под конкретный лимит, которых еще не один десяток может быть, и будут же упираться, продвигать, просто поражаюсь таким отчаянным и уверенным в себе людям. P.S.: Риторическое отсупление для супер программистов: Как вы собираетесь решать задачу: ограничение в настройках сервера 1000 переменных, на сервер отправлен массив из 1500 элементов, потому что так придумал супер программист, сервер получив это количество "сам отсек 500" и только после этого запустил DLE. DLE видит что лимит 1000 пришло 1000 ничего не превышено. Как ему предусмотреть и предотвратить коллизию? Ваше решение? Как он должен предотвратить согласно логике супер программиста, и догадаться о том что в браузере у супер программиста на самом деле было 1500? Он ведь на сервере работает, а не в браузере и про содержание браузера ничего не знает. Супер программист скажет: посылай не весь массив, а сделать прогресс бар и пошли это десятком запросов к серверу по 100 элементов, потому как браузер не знает что там за лимит на сервере, а по 100 будет надежно, итого наблюдаем прогресс бар в 15 обращений к серверу и временно их где то сохраняем, потом объединяем. Ура они лимит победили. Теперь можете начать заниматься другими лимитами которых не один десяток. Верное решение согласно вашей логике? Какой только бред не придет людям, лишь бы продвинуть свои косяки или лимиты и ограничения не имеющие отношения к DLE, за баги DLE. Мы живем в свободных странах, каждый сам решает заниматься ему ерундой или нет, так что это вы реализуйте уже своим плагином под ваш плагин. А мы предпочитаем не заниматься глупостями. Разработчики PHP в документации прямо говорят, что изменение переменной для этого увеличивает риск атак. Давайте напишите еще 10 томов о том, чтобы не решать проблемы движка и сваливать все на настройки сервера, каждый раз придумывая новую удивительную историю, где дурак пользователь, а не разработчик, который все скидывает на то, что "работало жы с 2004 года шо менять то". Сервер нужно настраивать под конкретные задачи, а не трогать те переменные, что потенциально могут создать новых проблем. Но если у вас одна логика и принцип - кроме вас нихто не жаловался нечего буянить, тогда мне нечего добавить. Риторическое отсупление для супер программистов, если мы были супер программистами, мы бы и использовали самопис или strapi или иные решения. Так что встаньте перед зеркалом, задайте этот вопрос себе, а не скидывайте ответственность на людей, которые платят за продукт и сообщают о проблемах, которые мешают. Какой бред только не придет тем, кто просит за продукт деньги и не делает ничего, чтобы исправлять проблемы, а из года в год делает велосипед с квадратными колесами и рулем от камаза. Изменено В четверг в 15:10 пользователем fanera 1 Цитата Ссылка на сообщение Поделиться на других сайтах
flake 25 Опубликовано: В четверг в 16:11 Рассказать Опубликовано: В четверг в 16:11 18.12.2024 в 14:00, celsoft сказал: Я по моему очень четко написал что вам нужно делать......... каждый сам решает заниматься ему ерундой или нет, так что это вы реализуйте уже своим плагином под ваш плагин. А мы предпочитаем не заниматься глупостями. С такой манерой общения вы совсем скоро останетесь без клиентов. Это просто п... какой-то. Но что мы, давайте посмотрим что ChatGPT думает: Цитата Манера общения, изложенная в ответе, достаточно агрессивная и неприятная. Несмотря на наличие аргументов, человек, который написал ответ, использует высокомерный и уничижительный тон, что делает его послание не очень конструктивным и воспринимаемым как защиту своих позиций на основе эмоционального порыва, а не логики. Не хорошо как-то 🕊️. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 090 Опубликовано: вчера в 04:20 Рассказать Опубликовано: вчера в 04:20 Автор 14 часов назад, fanera сказал: Разработчики PHP в документации прямо говорят, что изменение переменной для этого увеличивает риск атак. Давайте напишите еще 10 томов о том, чтобы не решать проблемы движка и сваливать все на настройки сервера, каждый раз придумывая новую удивительную историю, где дурак пользователь, а не разработчик, который все скидывает на то, что "работало жы с 2004 года шо менять то". Сервер нужно настраивать под конкретные задачи, а не трогать те переменные, что потенциально могут создать новых проблем. Но если у вас одна логика и принцип - кроме вас нихто не жаловался нечего буянить, тогда мне нечего добавить. Так это вы пишите код, который требует увеличения лимитов, а не DLE или мы требуем этого. Это вы написали плагин которому нужно сделать более одной тысячи действий, но не просто сделать, а именно описали столько инструкций к действиям. Если бы внимательно прочитали бы что я написал, то увидели бы что первая рекомендация была не увеличить лимиты, а правильно написать плагин, которому не надо посылать в виде отдельных тысяч инструкций. По поводу переменных, безопасности и прочего путем изменения настроек. Лимиты делаются для предотвращения выхода за пределы физических возможностей железа, но нельзя делать и лимиты и чтобы все работала выходя за пределы лимитов настроек. Например нельзя выделить 1мб оперативной памяти в лимитах, при этом загрузить картинку в 10мб и наложить на например водяной знак. Невозможно физически. Но и увеличение лимитов оперативной памяти тоже несет риски, и вы должны решать либо разрешать загрузку больших картинок или нет. Это условный пример потому как для картинки в 10 мегабайт требуется больше сотни мегабайт оперативной памяти, и поставив памяти больше чем физически присутствует на сервере, вызовите проблемы в безопасности, тоже самое как с картинками по количество переменных, потому что они память занимают в первую очередь, поэтому и лимиты. Но пересекаете эти лимиты вы, а ге DLE вас заствляет это сделать. DLE отправляет всего 7 переменных, но эти переменные массивы!!!! а значения массивов задали вы, и вы не переменными пересекаете лимиты, а своими значениями!!! написанные вами!!! То есть говоря по аналогии вы пытаетесь отправить большую картинку, выделив для нее недостаточно памяти для обработки. Поэтому даже увеличив лимиты вы не делаете свой сайт небезопасным, вы расширяете возможности, а увеличивать нужно грамотно, не ставить миллиард, а ставить ровно столько сколько нужно для конкретной работы. Всегда есть минимальные требования, например минимальные требования DLE https://dle-news.ru/request.html и ваш плагин который вы написали, тоже обладает такими требованиями, это вы написали плагин который требует изменения стандартных лимитов. Это вы его таким написали, а не мы, поэтому либо пишите свой плагин так, чтобы он этого не требовал, либо если написали так, то соблюдайте эти минимальные требования. Тут все очень просто. 14 часов назад, fanera сказал: Риторическое отсупление для супер программистов, если мы были супер программистами, мы бы и использовали самопис или strapi или иные решения. Так что встаньте перед зеркалом, задайте этот вопрос себе, а не скидывайте ответственность на людей, которые платят за продукт и сообщают о проблемах, которые мешают. Какой бред только не придет тем, кто просит за продукт деньги и не делает ничего, чтобы исправлять проблемы, а из года в год делает велосипед с квадратными колесами и рулем от камаза. Так и нужно прислушиваться к тем кто это знает и умеет, и в отличии от вас сделал, а не просто говорит. И следуйте их рекомендациям а не придумывайте ересь про AJAX и якобы этим что то решается, попутно обвиняя людей, которые эту ересь не принимают. И не скидывайте ответственность на людей, за ответственность которую несете вы. А ответственность за это несут не авторы и разработчики скрипта, а авторы и разработчики плагина. Мы разработчики вашего плагина? Это мы его сделали таким, что для его работы требуется изменение базовых настроек PHP? Нет не мы, так зачем тогда на нас перекладывать эту ответственность? Вы написали "реализацию" плагина, для работы которой требуется изменять настройки, чтобы задействовать больше памяти, а виноваты при этом мы. Ну очень оригинально. Поэтому если вы не программист, тогда не пишите плагинов, потому как если вы не понимаете базовых принципов работы серверов и серверного ПО, не понимаете как правильно писать и организовывать структуру, это не повод обвинять других в мифических якобы "косяках других". 13 часов назад, flake сказал: С такой манерой общения вы совсем скоро останетесь без клиентов. Это просто п... какой-то. Но что мы, давайте посмотрим что ChatGPT думает: Цитата Манера общения, изложенная в ответе, достаточно агрессивная и неприятная. Несмотря на наличие аргументов, человек, который написал ответ, использует высокомерный и уничижительный тон, что делает его послание не очень конструктивным и воспринимаемым как защиту своих позиций на основе эмоционального порыва, а не логики. Не хорошо как-то 🕊️. Прекрасный ответ ChatGPT мне прям нравится ))) Честно. А если вас смущает ответ о том что мы не будем заниматься ерундой, так вы задайте ChatGPT вопрос: "Что лучше сделать для компании: бездумно следовать советам и рекомендациям некомпетентных, неграмотных людей, дающим очевидно неверные рекомендации, чтобы их не обидеть или задеть, или расстаться с этими людьми". Если интересно, то посмотрите видео с ответом еще не анонсированной новой версии DLE https://dropmefiles.com/oqxWn )))) которая еще в разработке пока, которая идет полным ходом. Безусловно. Манера общения ровно такая, как ее начал вести оппонент. Он же начал свои ошибочные действия и непонимание вести с обвинения с несуществующих ошибок с нашей стороны, и нас обвинять в том, что сделал сам, то есть допустил ошибки сам, а обвинил в своих действиях других. Поэтому к другим нужно относится ровно так же, как ты хочешь чтобы относились к тебе. Не начни он диалог с обвинений, не получил бы ответа, где акцентируется внимание на его некомпетентность. Почему я должен получать необснованные обвинения и при этом "целовать оппонента и расшаркиваться". Фраза "клиент всегда прав" не финальная фраза, прочитайте ее полностью в оригинале. Но многие почему то считают эту фразу законченной и как следствие начинают заниматься потребительским экстремизмом. И данный оппонент также активно только и делает что занимается потребительским экстремизмом, допустив личные ошибки, не признает их и продолжает перекладывать ответственность на других и требовать исправления его ошибок от других. А что касается ChatGPT это помощник, а не руководство к действию, который дает как мифические ответы, так и неправильные, особенно если ему не задать правильных входящих данных ))) а именно пытаться анализировать ответ не дав изначальных входящих данных в виде начальных действий оппонента. Но если вы хотите руководствоваться его ответами в безусловном порядке, но это ваш выбор, я не буду вас от него отговаривать )) А вообще да если отвечать на ваш вопрос, то если человек решил что он может делать ошибки, может устраивать истерики и заниматься потребительским экстремизмом, то он может проходить мимо, мы в принципе не желаем иметь таких клиентов, и предпочитаем видеть в своих клиентах грамотных, адекватных и профессиональных людей, а не всех подряд, даже при условии что их будет гораздо меньше. Полистайте форум я всегда это так говорил и пресекал любой потребительский экстремизм здесь, и моя позиция по этому вопросу не изменилась и не изменится. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.