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

proba

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

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

10 часов назад, celsoft сказал:

Какая опечатка? Я не вижу никаких опечаток.

Коль одни переменные проверяются на существование, а другие - на своё значение, пусть так тогда и будет.

Тогда у меня другой вопрос. В файле /inc/files.php проверяется:

if ( $userdir == "files/" ) msg( "error", $lang['addnews_denied'], $lang['index_denied'] );

т.е. в папку FILES подразумевается, что нельзя, но при этом нет проверки на случай, когда $userdir = "", а $sub_dir = "files".

Поделиться сообщением


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

Не баг!

 

Если удаляется "категория1" и имеется такой вариант:

категория1 (за ней имеются публикации)
  подкатегория1 (за ней имеются публикации)
  подкатегория2 (за ней имеются публикации)

 

При выборе "убрать эту категорию у публикаций", удаляются "категория1", "подкатегория1" и "подкатегория2", а у публикаций удаляется только категория с id соответствующей "категория1". Не правильнее было бы в таком случае, удалять у публикаций из категорий и id соответствующие "подкатегория1" и "подкатегория2"?

 

При выборе "Удалить также и публикации", удаляются "категория1", "подкатегория1" и "подкатегория2" и удаляются публикации только с id соответствующими "категория1". Не правильнее было бы в таком случае, удалять и публикаций с id соответствующими "подкатегория1" и "подкатегория2", либо добавлять им 0?

 

При выборе "Переместить в другую категорию", удаляются "категория1", "подкатегория1" и "подкатегория2" и только публикации с id соответствующими "категория1" перемещаются в указанную категорию. Не правильнее было бы в таком случае, если публикациям с id соответствующим "подкатегория1" и "подкатегория2", добавлять id указанной новой категории или 0?

 

В случае, если удаляется "категория1" и имеется такой вариант:

категория1 (публикаций нет)
  подкатегория1 (имеются публикации)
  подкатегория2 (имеются публикации)

то так же удаляются "категория1", "подкатегория1" и "подкатегория2" и публикации с id соответствующими "подкатегория1" и "подкатегория2" не затрагиваются.
Не правильнее было бы в таком случае, публикациям с id "подкатегория1" и "подкатегория2" добавлять 0 (если имелось по одной id)? Получается, что категории с подкатегориями удаляются, а публикации имеют номера своих бывших категорий, о которых ничего не известно, а если не известно, то зачем они остаются?!

 

Подводя всё это, как вариант, не лучше при удалении, например "категория1", помимо трёх предлагаемых действий (на данный момент), добавить действие, при котором всем имеющимся подкатегориям ("подкатегория1" и "подкатегория2") в parentid устанавливать parentid самой "категория1", т.е. все подкатегории не удалять, а поднимать на уровень выше, либо, если удалять (как сейчас реализовано) и подкатегории тоже, то тогда и с учётом их id для публикаций, как это делается для удаляемой "категория1"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 18.06.2018 в 10:17, proba сказал:

Подводя всё это, как вариант, не лучше при удалении, например "категория1", помимо трёх предлагаемых действий (на данный момент), добавить действие, при котором всем имеющимся подкатегориям ("подкатегория1" и "подкатегория2") в parentid устанавливать parentid самой "категория1", т.е. все подкатегории не удалять, а поднимать на уровень выше, либо, если удалять (как сейчас реализовано) и подкатегории тоже, то тогда и с учётом их id для публикаций, как это делается для удаляемой "категория1"?

Первый вариант не нужен, т.к. перед удалением категории, можно итак поднять все подкатегории на уровень выше, чтобы они больше не являлись подкатегориями удаляемой категории. А вот второй вариант чтобы все действия применялись и к удаляемым подкатегориям имеет смысл. Будет сделано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 26.06.2018 в 09:24, celsoft сказал:

перед удалением категории, можно итак поднять все подкатегории на уровень выше

Согласен, но для каждой подкатегории придётся совершать однотипные действия по поднятию, а так было бы меньше телодвижений и проще.

Поделиться сообщением


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

Есть функция в файле /engine/inc/options.php которая принимает 4 параметра, но 4 параметр нигде не используется в функции.

function showRow($title = "", $description = "", $field = "", $class = "") {
	
	
	echo "<tr>
	<td class=\"col-xs-6 col-sm-6 col-md-7\"><h6 class=\"media-heading text-semibold\">{$title}</h6><span class=\"text-muted text-size-small hidden-xs\">{$description}</span></td>
	<td class=\"col-xs-6 col-sm-6 col-md-5\">{$field}</td>
	</tr>";
}
showRow( $lang['opt_sys_ht'], $lang['opt_sys_htd'], "<input type=\"text\" class=\"form-control\" name=\"save_con[home_title]\" value=\"{$config['home_title']}\">", "white-line" );

 

Поделиться сообщением


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

@celsoft функция echofooter выводит если юзер не вошел в админ панель $skin_not_logged_footer но в global она не подтягивается.

function echofooter() {
	global $is_loged_in, $skin_footer;

	if( $is_loged_in ) echo $skin_footer;
	else echo $skin_not_logged_footer;

}

Так же echoheader выводит переменную $skin_not_logged_header которая не берется в global

Поделиться сообщением


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

@celsoft 

Файл /engine/clasees/templates.class.php функция load_template. Имя файла обрабатывается функцией totranslit, в которой выполняется следующий код

$var = str_ireplace( ".php", "", $var );
$var = str_ireplace( ".php", ".ppp", $var );

Позже в функции load_template есть код

if( stripos ( $tpl_name, ".php" ) !== false ) {

Вопросы. Зачем после удаления .php делать замену .php на .ppp когда его никогда уже не будет? И зачем делать проверку на существование подстроки .php в названии файла, если эта подстрока уже стерта?

 

Файл /engine/inc/options.php зачем передавать данные в функцию оборачивая в скобки? Пример:

"{$config['allow_comments_wysiwyg']}"
"{$config['comments_rating_type']}"

 

Поделиться сообщением


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

Вопросы. Зачем после удаления .php делать замену .php на .ppp когда его никогда уже не будет?

что будет в результате работы строки $var = str_ireplace( ".php", "", $var ); если строка будет ".p.phphp", это ответ на ваш вопрос зачем это делать, и о ложном утверждении что его уже никогда не будет. От такой невнимательности к деталям и взламывают коды и в результате сайты.

 

10 часов назад, Gameer сказал:

зачем передавать данные в функцию оборачивая в скобки?

Затем чтобы передать их как именно строки.

Поделиться сообщением


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

Затем чтобы передать их как именно строки.

Зачем?

Поделиться сообщением


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

@celsoft зачем использовать class который называется unifrom но использовать для него js скрипт selectpicker а не uniform?

$('select.uniform').selectpicker();

Это сбивает с толку, использовал метод апдейта uniform и какое было удивление что ничего не происходит и данные не обновляются. Пришлось заглядывать в главный скрипт что бы понять что там совсем не uniform

Изменено пользователем Gameer

Поделиться сообщением


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

зачем использовать class который называется unifrom но использовать для него js скрипт selectpicker а не uniform?

Затем что не всем элементам с этим классом назначается именно selectpicker

Поделиться сообщением


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

Затем что не всем элементам с этим классом назначается именно selectpicker

Я знаю, но почему для selectpicker не использовать отдельный класс?

Поделиться сообщением


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

Я знаю, но почему для selectpicker не использовать отдельный класс?

Зачем? Нам удобно так.

Поделиться сообщением


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

В движке используется $not_allow_symbol, но например, в файлах feedback.php (ajax и module) по сравнению с другими, отсутствуют символы пробела и &. А в файле editusers.php только &.

Поделиться сообщением


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

В файле register.php:

strlen( $email ) > 40,

В файле profile.php:

strlen( $email ) > 50

В social.php:

strlen( $email ) > 50

Да же в api до 50.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти