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

Sign in to follow this  
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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this