proba 57 Опубликовано: 30 декабря 2017 Рассказать Опубликовано: 30 декабря 2017 Автор При выставлении часового пояса (GMT-03:00) Гренландия как Greenland возникает ошибка: Fatal error: Uncaught Exception: DateTimeZone::__construct(): Unknown or bad timezone (Greenland) in ... Все значения не проверял. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 27 февраля 2018 Рассказать Опубликовано: 27 февраля 2018 Автор Добрый день! В файле templates.class.php имеется строка ( ~ 400 ): $templatee = preg_replace( "'\\[page-description\\](.*?)\\[/page-description\\]'is", "", $template ); где у переменной лишняя буква Е. В файлах functions.php и functions.inc.php имеется функция dle_strpos, которая не применяется в движке, но её реализация в обоих файлах разная, видимо из-за копирования дублированием первоначально функции dle_strrpos (содержание mb_strrpos и iconv_strrpos). из файла functions.php: function dle_strpos($str, $needle, $charset ) { if ( strtolower($charset) == "utf-8") { if( function_exists( 'mb_strpos' ) ) { return mb_strpos( $str, $needle, null, "utf-8" ); } elseif( function_exists( 'iconv_strrpos' ) ) { return iconv_strpos($str, $needle, null, "utf-8"); } } return strpos($str, $needle); } из файла functions.inc.php: function dle_strpos($str, $needle, $charset ) { if ( strtolower($charset) == "utf-8") { if( function_exists( 'mb_strrpos' ) ) { return mb_strpos( $str, $needle, null, "utf-8" ); } elseif( function_exists( 'iconv_strrpos' ) ) { return iconv_strpos($str, $needle, null, "utf-8"); } } return strpos($str, $needle); } 1 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 27 февраля 2018 Рассказать Опубликовано: 27 февраля 2018 2 часа назад, proba сказал: где у переменной лишняя буква Е. Принято спасибо 2 часа назад, proba сказал: В файлах functions.php и functions.inc.php имеется функция dle_strpos, которая не применяется в движке, но её реализация в обоих файлах разная, видимо из-за копирования дублированием первоначально функции dle_strrpos (содержание mb_strrpos и iconv_strrpos). из файла functions.php: Также принято. Спасибо. Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 14 марта 2018 Рассказать Опубликовано: 14 марта 2018 @celsoft почему в DLE 12.1 в /engine/ajax/registration.php дважды подключен functions.php? А так же require_once ENGINE_DIR . '/modules/sitelogin.php'; 1 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 14 марта 2018 Рассказать Опубликовано: 14 марта 2018 1 час назад, Gameer сказал: почему в DLE 12.1 в /engine/ajax/registration.php дважды подключен functions.php? Просто случайно, поставлена лишняя строчка. Дважды он не подключается, благодаря require_once которая как раз для этого предназначена, чтобы файл случайно не был подключен два раза. Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 14 марта 2018 Рассказать Опубликовано: 14 марта 2018 29 минут назад, celsoft сказал: Просто случайно, поставлена лишняя строчка. Дважды он не подключается, благодаря require_once которая как раз для этого предназначена, чтобы файл случайно не был подключен два раза. Это понятно что второй раз не подгружается. Просто заметил при редактировании этого файла. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 Автор Не баг, опечатка. Файл /inc/editvote.php строка ( ~ 436 ): <label class="control-label control-label col-md-2 col-sm-3">{$lang['vote_title']}</label> дважды один и тот же класс указан. в этом же файле, строка ( ~ 573 ): <td class=\"cursor-pointer\" onclick=\"document.location = '?mod=editvote&action=edit&id={$item_id}'; return false;\">{$item_date} - <a class=\"tip\" title='{$lang['word_ledit']}' href=\"?mod=editvote&action=edit&id={$item_id}\">{$title}</td> отсутствует закрывающий тэг A. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 3 часа назад, proba сказал: Не баг, опечатка. Файл /inc/editvote.php строка ( ~ 436 ): <label class="control-label control-label col-md-2 col-sm-3">{$lang['vote_title']}</label> дважды один и тот же класс указан. в этом же файле, строка ( ~ 573 ): <td class=\"cursor-pointer\" onclick=\"document.location = '?mod=editvote&action=edit&id={$item_id}'; return false;\">{$item_date} - <a class=\"tip\" title='{$lang['word_ledit']}' href=\"?mod=editvote&action=edit&id={$item_id}\">{$title}</td> отсутствует закрывающий тэг A. Принято, спасибо. Внесем изменения в будущих версиях. Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 Существует функция convert_unicode которая нигде не используется. Только объявлена \engine\inc\include\functions.inc.php Line 1207 и \engine\modules\functions.php Line 2288 Не понятен смысл ее существования. + комментарий // deprecated Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 17 мая 2018 Рассказать Опубликовано: 17 мая 2018 34 минуты назад, Gameer сказал: Существует функция convert_unicode которая нигде не используется. Только объявлена \engine\inc\include\functions.inc.php Line 1207 и \engine\modules\functions.php Line 2288 Не понятен смысл ее существования. + комментарий // deprecated Эта функция больше не нужна, она конвретировала данные, что более при utf-8 не требуется. Эта функция раньше активно использовалась в том числе и сторонними плагинами, поэтому ее обьявление и оставлено для совместимости, чтобы множество сторонних модулей и разработок не падало в фатальную ошибку. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 22 мая 2018 Рассказать Опубликовано: 22 мая 2018 Автор В модуле плагинов, при вставке длинной строки кода, идёт расползание ссылка (в Firefox 49.0.2), в Яше.Браузере (в Хроме скорей всего тоже) такого не замечено. В файле inc/plugins.php имеется строка ( ~ 893): <li><a onclick="PluginUpdate('{$row['id']}'); return false;"href="#"><i class="fa fa-upload"></i> {$lang['plugins_update']}</a></li> Атрибут href рядом с двойными кавычками. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 22 мая 2018 Рассказать Опубликовано: 22 мая 2018 Автор Казус в работе модуля плагинов: к примеру, для поиска задаётся строка "form class", и надо заменить на какую-нибудь строку, например, "form style='display:none' class" (любая строка отличная от поисковой строки) и все вхождения заменятся как надо, НО, если встретится переменная $formClass (неважно строчные или прописные буквы и БЕЗ пробелов), она так же подвергается замене! Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 22 мая 2018 Рассказать Опубликовано: 22 мая 2018 3 часа назад, proba сказал: В модуле плагинов, при вставке длинной строки кода, идёт расползание ссылка (в Firefox 49.0.2), в Яше.Браузере (в Хроме скорей всего тоже) такого не замечено. В актуальной версии FF проблем не зафиксировано. Актуальной является аж 60.xx, ваша 49.xx давно морально устарела. 1 час назад, proba сказал: Казус в работе модуля плагинов: к примеру, для поиска задаётся строка "form class", и надо заменить на какую-нибудь строку, например, "form style='display:none' class" (любая строка отличная от поисковой строки) и все вхождения заменятся как надо, НО, если встретится переменная $formClass (неважно строчные или прописные буквы и БЕЗ пробелов), она так же подвергается замене! Для шаблона поиска неважен регистр написанных букв и количество пробелов и отступов между словам. Это сделано в целях максимальной совместимости плагина с будущими версиями. например если в коде появились дополнительные пробелы в будущем или переносы строк и т.д. они не влияли на нахождение того что указано в шаблоне поиска. Поэтому в вашем случае срабатывает ваша замена. Он заменяет вам не переменную, а "form class" найдет ваше "formClass" и найдет также "form Class" и т.д. Вам нужно в данном случае делать более точную строку для поиска, расширив ее дополнительными элементами. Это же модуль поиска по PHP коду, а не по просто HTML, а в PHP коде пробелы играют не существенную роль. Например $test = $test1 . $test2 ; эквивалентно и $test=$test1.$test2; поэтому модуль плагинов и не учитывает пробелы, для максимальной совместимости. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 23 мая 2018 Рассказать Опубликовано: 23 мая 2018 Автор В 22.05.2018 в 14:17, celsoft сказал: В актуальной версии FF проблем не зафиксировано. Актуальной является аж 60.xx, ваша 49.xx давно морально устарела. Не проверял на 52.хх, но для 60.хх придётся полный апгрейд делать, что пока в планы не вписывается :-( В 22.05.2018 в 14:17, celsoft сказал: Это же модуль поиска по PHP коду Тогда другая ситуация. При указании, например "найти и добавить выше" или "найти и добавить ниже", указать какую-нибудь строку, и добавляемой будет что-то вроде такой: $df = preg_replace("'\\{\\*(.*?)\\*\\}'si", '', $sd); строка вносится так, как и указали, без каких-либо изменений, но если открыть плагин и действием указать "найти и заменить", а всё остальное оставить прежним, то в файле становится строка: $df = preg_replace("'\{\*(.*?)\*\}'si", '', $sd); Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 23 мая 2018 Рассказать Опубликовано: 23 мая 2018 30 минут назад, proba сказал: Тогда другая ситуация. При указании, например "найти и добавить выше" или "найти и добавить ниже", указать какую-нибудь строку, и добавляемой будет что-то вроде такой: $df = preg_replace("'\\{\\*(.*?)\\*\\}'si", '', $sd); строка вносится так, как и указали, без каких-либо изменений, но если открыть плагин и действием указать "найти и заменить", а всё остальное оставить прежним, то в файле становится строка: Да верно. Это известное нам ограничение системы плагинов, потому как для строк замены текста есть управляющие символы, для самой функции замены. Если используются регулярные выражения, то для них нужно использовать найти и добавить выше, чтобы отменить стандартную регулярку. Либо выносить в отдельный файл, и подключать через систему плагинов как отдельный файл, в котором записаны регулярные выражения. Мы работаем над тем чтобы устранить это ограничение надежным и безопасным способом. В будущем оно будет снято. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 24 мая 2018 Рассказать Опубликовано: 24 мая 2018 Автор В файле sitelogin.php не используются переменные: $dle_user_id = ""; $dle_password = ""; В файле /ajax/allvotes.php не используется переменная: $vote_skin = $config['skin']; В файле /modules/vote.php в строке: $.get(dle_root + "engine/ajax/controller.php?mod=vote", { vote_id: "{$rid}", vote_action: event, vote_check: vote_check, vote_skin: dle_skin, user_hash: dle_login_hash }, function(data){ передаётся параметр vote_skin, его наверное надо переименовать в dle_skin или просто skin, смотря что для controller.php выгоднее оставить. В самом controller.php имеется строка: $_REQUEST['dle_skin'] = $_REQUEST['dle_skin'] = $config['skin']; дублируется _REQUEST. Если задумано передавать дальше файлам, то один dle_skin наверное должен быть skin, а так, вроде как, и не нужна эта строка. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 24 мая 2018 Рассказать Опубликовано: 24 мая 2018 Автор В файле functions.inc.php в функции check_login имеется строка: set_cookie( "dle_name", "", 0 ); может вместо dle_name должно dle_skin?! Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 24 мая 2018 Рассказать Опубликовано: 24 мая 2018 15 минут назад, proba сказал: В файле functions.inc.php в функции check_login имеется строка: set_cookie( "dle_name", "", 0 ); может вместо dle_name должно dle_skin?! нет не должно. DLE должен еще и обеспечивать совместимость со старыми версиями DLE, иногда с очень старыми. Это нужно для этого. Цитата Ссылка на сообщение Поделиться на других сайтах
Datagor 31 Опубликовано: 24 мая 2018 Рассказать Опубликовано: 24 мая 2018 2 hours ago, celsoft said: DLE должен еще и обеспечивать совместимость со старыми версиями DLE, иногда с очень старыми. Уважаемый celsoft, у меня работает единая авторизация на субдоменах. Сохраняется ли эта функция в новейшей версии DLE13? Нужно ли обновляться до 13й одновременно на домене и всех зависимых поддоменах? Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 24 мая 2018 Рассказать Опубликовано: 24 мая 2018 @celsoft , в api присутствуют опечатки (дублирование точки с запятой) $password = $this->db->safesql( password_hash($password, PASSWORD_DEFAULT) );; и $new_password = $this->db->safesql( password_hash($new_password, PASSWORD_DEFAULT) );; Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 25 мая 2018 Рассказать Опубликовано: 25 мая 2018 18 часов назад, Datagor сказал: у меня работает единая авторизация на субдоменах. Сохраняется ли эта функция в новейшей версии DLE13? Нужно ли обновляться до 13й одновременно на домене и всех зависимых поддоменах? Да сохраняется. Обновляться везде обязательно. Скрипт должен быть одной версии на всех сайтах где используется единая авторизация. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 26 мая 2018 Рассказать Опубликовано: 26 мая 2018 Автор В файле templates.class.php в функции sub_load_template() имеются строки: return "Template not found: " . $templatefile ; return false; если первым идёт возврат, зачем второй?! И в этой же функции используется $page_header_info, но в global не объявлена. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 26 мая 2018 Рассказать Опубликовано: 26 мая 2018 7 часов назад, proba сказал: И в этой же функции используется $page_header_info, но в global не объявлена. Спасибо за информацию, принято. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 3 июня 2018 Рассказать Опубликовано: 3 июня 2018 Автор В файле /ajax/upload.php имеется строка ( ~ 45 ): if( intval( $_REQUEST['news_id'] ) ) $news_id = intval( $_REQUEST['news_id'] ); else $news_id = 0; однако с isset опечатка. В файле /inc/editvote.php имеется (~ 516): while ( $row = $db->get_row() ) { if( !$langformatdate ) $langformatdate = "d.m.Y"; if( !$langformatdatefull ) $langformatdatefull = "d.m.Y H:i"; условия можно и вне вынести. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 3 июня 2018 Рассказать Опубликовано: 3 июня 2018 5 часов назад, proba сказал: В файле /ajax/upload.php имеется строка ( ~ 45 ): if( intval( $_REQUEST['news_id'] ) ) $news_id = intval( $_REQUEST['news_id'] ); else $news_id = 0; однако с isset опечатка. Какая опечатка? Я не вижу никаких опечаток. Там нет isset и не должно его быть. Все написано так как нужно. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.