Перейти к публикации

Рекомендованные сообщения

При выставлении часового пояса (GMT-03:00) Гренландия как Greenland возникает ошибка:

Fatal error: Uncaught Exception: DateTimeZone::__construct(): Unknown or bad timezone (Greenland) in ...

Все значения не проверял.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Добрый день!

В файле 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);

}

 

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, proba сказал:

где у переменной лишняя буква Е.

Принято спасибо

 

2 часа назад, proba сказал:

В файлах functions.php и functions.inc.php имеется функция dle_strpos, которая не применяется в движке, но её реализация в обоих файлах разная, видимо из-за копирования дублированием первоначально функции dle_strrpos (содержание mb_strrpos и iconv_strrpos).

из файла functions.php:

Также принято. Спасибо.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

@celsoft почему в DLE 12.1 в /engine/ajax/registration.php дважды подключен functions.php? А так же 

require_once ENGINE_DIR . '/modules/sitelogin.php';

rrUY4Lp_S2iAni_kkIcCOw.png

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Gameer сказал:

почему в DLE 12.1 в /engine/ajax/registration.php дважды подключен functions.php?

Просто случайно, поставлена лишняя строчка. Дважды он не подключается, благодаря require_once которая как раз для этого предназначена, чтобы файл случайно не был подключен два раза.

Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, celsoft сказал:

Просто случайно, поставлена лишняя строчка. Дважды он не подключается, благодаря require_once которая как раз для этого предназначена, чтобы файл случайно не был подключен два раза.

Это понятно что второй раз не подгружается. Просто заметил при редактировании этого файла.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

Не баг, опечатка.

Файл /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}&nbsp;-&nbsp;<a class=\"tip\" title='{$lang['word_ledit']}' href=\"?mod=editvote&action=edit&id={$item_id}\">{$title}</td>

отсутствует закрывающий тэг A.

 

Ссылка на сообщение
Поделиться на других сайтах
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}&nbsp;-&nbsp;<a class=\"tip\" title='{$lang['word_ledit']}' href=\"?mod=editvote&action=edit&id={$item_id}\">{$title}</td>

отсутствует закрывающий тэг A.

 

Принято, спасибо. Внесем изменения в будущих версиях.

Ссылка на сообщение
Поделиться на других сайтах

Существует функция convert_unicode которая нигде не используется.

Только объявлена \engine\inc\include\functions.inc.php Line 1207 и \engine\modules\functions.php Line 2288

Не понятен смысл ее существования. + комментарий // deprecated

Ссылка на сообщение
Поделиться на других сайтах
34 минуты назад, Gameer сказал:

Существует функция convert_unicode которая нигде не используется.

Только объявлена \engine\inc\include\functions.inc.php Line 1207 и \engine\modules\functions.php Line 2288

Не понятен смысл ее существования. + комментарий // deprecated

Эта функция больше не нужна, она конвретировала данные, что более при utf-8 не требуется. Эта функция раньше активно использовалась в том числе и сторонними плагинами, поэтому ее обьявление и оставлено для совместимости, чтобы множество сторонних модулей и разработок не падало в фатальную ошибку.

Ссылка на сообщение
Поделиться на других сайтах

В модуле плагинов, при вставке длинной строки кода, идёт расползание ссылка (в 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 рядом с двойными кавычками.

Ссылка на сообщение
Поделиться на других сайтах

Казус в работе модуля плагинов: к примеру, для поиска задаётся строка "form class", и надо заменить на какую-нибудь строку, например, "form style='display:none' class" (любая строка отличная от поисковой строки) и все вхождения заменятся как надо, НО, если встретится переменная $formClass (неважно строчные или прописные буквы и БЕЗ пробелов), она так же подвергается замене!

Ссылка на сообщение
Поделиться на других сайтах
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; поэтому модуль плагинов и не учитывает пробелы, для максимальной совместимости.

Ссылка на сообщение
Поделиться на других сайтах
В 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);

 

Ссылка на сообщение
Поделиться на других сайтах
30 минут назад, proba сказал:

Тогда другая ситуация. При указании, например "найти и добавить выше" или "найти и добавить ниже", указать какую-нибудь строку, и добавляемой будет что-то вроде такой:


$df  = preg_replace("'\\{\\*(.*?)\\*\\}'si", '', $sd);

строка вносится так, как и указали, без каких-либо изменений, но если открыть плагин и действием указать "найти и заменить", а всё остальное оставить прежним, то в файле становится строка:

Да верно. Это известное нам ограничение системы плагинов, потому как для строк замены текста есть управляющие символы, для самой функции замены. Если используются регулярные выражения, то для них нужно использовать найти и добавить выше, чтобы отменить стандартную регулярку. Либо выносить в отдельный файл, и подключать через систему плагинов как отдельный файл, в котором записаны регулярные выражения. Мы работаем над тем чтобы устранить это ограничение надежным и безопасным способом. В будущем оно будет снято.

Ссылка на сообщение
Поделиться на других сайтах

В файле 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, а так, вроде как, и не нужна эта строка.

Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, proba сказал:

В файле functions.inc.php в функции check_login имеется строка:


set_cookie( "dle_name", "", 0 );

может вместо dle_name должно dle_skin?!

нет не должно. DLE должен еще и обеспечивать совместимость со старыми версиями DLE, иногда с очень старыми. Это нужно для этого.

Ссылка на сообщение
Поделиться на других сайтах
2 hours ago, celsoft said:

DLE должен еще и обеспечивать совместимость со старыми версиями DLE, иногда с очень старыми.

Уважаемый celsoft,

у меня работает единая авторизация на субдоменах.

Сохраняется ли эта функция в новейшей версии DLE13?

Нужно ли обновляться до 13й одновременно на домене и всех зависимых поддоменах?

Ссылка на сообщение
Поделиться на других сайтах

@celsoft , в api присутствуют опечатки (дублирование точки с запятой)

$password = $this->db->safesql( password_hash($password, PASSWORD_DEFAULT) );;

и

$new_password = $this->db->safesql( password_hash($new_password, PASSWORD_DEFAULT) );;

 

Ссылка на сообщение
Поделиться на других сайтах
18 часов назад, Datagor сказал:

у меня работает единая авторизация на субдоменах.

Сохраняется ли эта функция в новейшей версии DLE13?

Нужно ли обновляться до 13й одновременно на домене и всех зависимых поддоменах?

Да сохраняется. Обновляться везде обязательно. Скрипт должен быть одной версии на всех сайтах где используется единая авторизация.

Ссылка на сообщение
Поделиться на других сайтах

В файле templates.class.php в функции sub_load_template() имеются строки:

return "Template not found: " . $templatefile ;
return false;

если первым идёт возврат, зачем второй?! И в этой же функции используется $page_header_info, но в global не объявлена.

Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, proba сказал:

И в этой же функции используется $page_header_info, но в global не объявлена.

Спасибо за информацию, принято.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

В файле /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";

условия можно и вне вынести.:rolleyes:

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, proba сказал:

 

В файле /ajax/upload.php имеется строка ( ~ 45 ):


if( intval( $_REQUEST['news_id'] ) ) $news_id = intval( $_REQUEST['news_id'] ); else $news_id = 0;

однако с isset опечатка.

 

Какая опечатка? Я не вижу никаких опечаток. Там нет isset и не должно его быть. Все написано так как нужно.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...