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

proba

Интересная логика кода

Recommended Posts

Ну все правильно. Вы не забывайте, что настройка config['allow_comments_wysiwyg'] указывает какой редактор используется, и когда используется визуальный редактор, вы вставляете свою строчку не в исходный код, а в визуальную часть, соответственно при использовании визуальный редакторов, на сервер уже поступает визуальная часть, т.е. просто в виде строки, а не в виде кода, а чтобы на странице эта строка была обычной строкой, а не воспринималось как HTML код, эти теги браузером при визуальном редактировании переводятся в HTML сущности. А в простом редакторе нет такого понятия как визуальная часть, там текстовое поле, соответственно браузер на сервер шлет в том виде в котором в ставили в textarea, а в визуальный редакторах вы код не в textarea ставите, он работает совершенно по другому. 

 

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

Share this post


Link to post
Share on other sites

Для понимания зайдите в добавление новости

Хорошо.

Share this post


Link to post
Share on other sites

В файле parse.class.php для переменных find и replace есть регулярка и замена для onmouseenter, соответственно. Во всех остальных упоминаниях этих переменных отсутствует onmouseenter. Так и должно быть? Зато, в тех остальных упоминаниях, в массиве переменной find имеются дубликаты регулярок javascript.

 

По предыдущему "вопросу". В файле parse.class.php фун-ия filterTags() не работает (не обрезает теги). Это недоработка?

Share this post


Link to post
Share on other sites

Диплом по СMS сдаёшь или мания?:)

  • Like 1

Share this post


Link to post
Share on other sites

К багам не относится, но ...

В файлах xfields.php и userfields.php добавление доп. полей осуществляется через xfieldssubactionadd, являясь каким-то аппендиксом от xfieldssubaction. С чем связана такая реализация? Ведь можно реализовать через одну xfieldssubaction не создавая её "дубликат".

  • Upvote 1

Share this post


Link to post
Share on other sites

По предыдущему "вопросу". В файле parse.class.php фун-ия filterTags() не работает (не обрезает теги). Это недоработка?

Нет никакой недоработки или багов в данном вопросе. Эта функция обрабатывает исполняемый HTML код, а он в вашем предыдущем вопросе перестает быть таковым, т.к. экранируется в HTML сущности, т.е. в обычный текст. 

Share this post


Link to post
Share on other sites

В xfields.php удаляется editedxfield["2_custom"], но где оно вносится / присваивается - нет. При этом, для добавления / редактирования доп. поля формируется скрипт с фун-ей onCategoryChange() которая не нужна, т.к. не задействована.

В куске

if( ! $user_group[$member_id['user_group']]['admin_xfields'] ) {
	msg( "error", $lang['index_denied'], $lang['index_denied'] );
	die();
}

не нужна die(), в msg() уже имеется.

 

В userfields.php описание поля обрабатывается так:

$editedxfield[1] = htmlspecialchars(trim($editedxfield[1]), ENT_QUOTES, $config['charset']);

в xfields.php обработки нет.

 

Хотелось бы ещё узнать ответ на "простой" вопрос: die() является псевдонимом exit() и выполняют в принципе одно и тоже. Но используются почему-то, то одна, то другая. Например, в xfields.php при сохранении данных доп. полей в файл используется die(), в userfields.php в том же случае используется exit(). Покопавшись в сети, выяснил, что в xfields.php 9.7 применялась exit(), но в 9.8 её заменили на die(). Так же, встретилось упоминание, о том, что комбинация header + exit криво работают в IE и советуют применять header + die. Но такого на IE не замечал. С чем всё-таки связано использование то die, то exit? Если есть разница, то в чём конкретно?:huh:

  • Upvote 1

Share this post


Link to post
Share on other sites

С чем всё-таки связано использование то die, то exit? Если есть разница, то в чём конкретно?

С временем это связано. Некоторому коду DLE уже 10 лет. Когда то писалось одним стилем, потом другим. При этом переписывать код ради кода нет никакого смысла. И это пустая трата времени в данном случае. Разницы в этих функциях нет никакой. 

Share this post


Link to post
Share on other sites

Во многих файлах встречаются строки подобные таким:

$_COOKIE['dle_skin'] = trim( totranslit($_COOKIE['dle_skin'], false, false) );
$skin = trim( totranslit($_REQUEST['skin'], false, false) );
$rss_tag = totranslit( strip_tags( trim( $_POST['rss_tag'] ) ) );
$editedxfield[0] = totranslit(trim($editedxfield[0]));

но trim() применяется в totranslit() и выходит, что применение trim() в подобных строках лишне.

  • Upvote 1

Share this post


Link to post
Share on other sites

В /inc/editusers.php строка

<td class="news-list-tab" tyle="width: 40px"><i class="icon-comment-alt tip" data-original-title="{$lang['edit_com']}"></i></td>

атрибут style был обрезан после добавления атрибута class.

  • Upvote 1

Share this post


Link to post
Share on other sites

принципиально это или нет,

в файле init.php кодировка ('charset') в config переводится в нижний регистр, но при подключении website.lng такое преобразование отсутствует.

 

в engine/editor/shortsite.php имеется строка:

content_css : "{$config['http_home_url']}engine/editor/css/content.css",

здесь замена на root случаем не нужна?!

ниже в этом же файле ещё 2 строки

image : '{$config['http_home_url']}engine/editor/jscripts/tiny_mce/skins/dle_upload.gif',
url: '{$config['http_home_url']}engine/editor/jscripts/tiny_mce/plugins/emoticons/emotions.php',

 

Edited by proba
добавление
  • Upvote 2

Share this post


Link to post
Share on other sites
7 часов назад, proba сказал:

в файле init.php кодировка ('charset') в config переводится в нижний регистр, но при подключении website.lng такое преобразование отсутствует.

Этого и не нужно, там кодировка должна быть пописана именно в нижнем регистре, ее вообще нужно всегда писать в нижнем регистре, поэтому принудительный привод, это лишь если пользователь в настройках в админпанели напишет неправильно.

 

7 часов назад, proba сказал:

здесь замена на root случаем не нужна?!

Нет. В данном вопросе все так, как и должно быть.

  • Upvote 1

Share this post


Link to post
Share on other sites

В окошках смайлов WYSIWYG редакторов смайлы отображаются в левой части. Если в 2-х файлах emotions.php в теге table указать атрибут width=100%, как в bbcode.php, смайлы смотрятся симпатичнее. И может так же добавить переменную count_smilies и учитывать ее при формировании таблицы?!

 

При включенном BB-редакторе, если заглянуть в исходный код страницы, например при добавлении новости, то объявленных переменных в script будет и от краткой, и от подробной части, а если ещё и в доп. полях используется редактор, то и от них тоже. Хотя достаточно одного раза.

  • Upvote 1

Share this post


Link to post
Share on other sites

в ajax/editnews.php есть строка:

<textarea name="dleeditnews{$id}" id="dleeditnews{$id}" {$params} class="quick-edit-textarea">{$news_txt}</textarea>

если config['allow_quick_wysiwyg'] > 0, то params = "class=\"wysiwygeditor\"". Такое же для "полной новости" и доп. полей.

Планировалось объединение классов?

  • Upvote 1

Share this post


Link to post
Share on other sites

В inserttag.php есть две функции, DLEimagePrompt() и DLEurlPrompt(), с виду однозначные, но в одной имеется проверка на наличие http, https, ftp, в другой - нет.

  • Upvote 1

Share this post


Link to post
Share on other sites
16 минуту назад, proba сказал:

В inserttag.php есть две функции, DLEimagePrompt() и DLEurlPrompt(), с виду однозначные, но в одной имеется проверка на наличие http, https, ftp, в другой - нет.

Они и разные по своему назначению. Так и должно быть.

Share this post


Link to post
Share on other sites
Цитата

Так и должно быть.

Просто заметил, что со стороны сайта в обоих фун-иях имеется проверка, а со стороны админки - только в одной.

  • Upvote 1

Share this post


Link to post
Share on other sites

В файле inc/editnews.php имеются два одинаковых запроса на удаление записи из таблицы _post_log. (стр. 1737 и 1740).

  • Upvote 1

Share this post


Link to post
Share on other sites
2 часа назад, proba сказал:

В файле inc/editnews.php имеются два одинаковых запроса на удаление записи из таблицы _post_log. (стр. 1737 и 1740).

Принято

Share this post


Link to post
Share on other sites

В файле /inc/categories.php в самом низу, в функции DisplayCategories() строка:

$category_name = $cat[$id];

не используется.

  • Upvote 2

Share this post


Link to post
Share on other sites

Ниже написанное - не баг, но лёгкое недоразумение...

Попробуйте создать пользователя с логином, например, таким 1234%%%%55.

Во время регистрации, указав в качестве логина и проверив его, можно увидеть сообщение о возможности использовать данный логин. Сама регистрация проходит успешно и пользователь будет авторизован. Вот только войти в профиль он не сможет. В адресной строке будет красоваться как 1234%25%25%25%2555, а в спидбаре - 1234%%%U.

  • Thanks 1

Share this post


Link to post
Share on other sites

Добрый день!

Файл /modules/static.php содержит две строки (286 и 333):

if ($info['filename'] == "spoiler-plus" OR $info['filename'] == "spoiler-plus" ) continue;

Файл /inc/cmoderation.php содержит две строки (156 и 172) с двойными знаками вопроса:

$body = str_replace( "{%unsubscribe%}", $slink . "index.php??subaction=userinfo&user=" . urlencode ( $news_author_subscribe['name'] ), $body );

 

  • Upvote 1

Share this post


Link to post
Share on other sites

@celsoft не совсем баг, но при добавлении статической страницы на кнопке пишет не Добавить а Сохранить, что малость не разумно, так как  мы только добавляем ее.

U-27W0KSQGOPrKjdsBZHXw.png

  • Upvote 1

Share this post


Link to post
Share on other sites
В 04.10.2017 в 15:11, Gameer сказал:

не Добавить а Сохранить, что малость не разумно

Это уже бабка надвое сказала. На кнопке можно написать и "Создать". Создашь, а как же тогда сохранить? Или сохранишь, а как же тогда создать? Ну а если добавить, тогда вообще дело труба - как же тогда создать и сохранить? Мда, надо думать :) 

  • Like 3

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now