UnknownUser
-
Публикации
4 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем UnknownUser
-
-
15 minutes ago, celsoft said:
И ...? Ту функциональность что вы пишите делает в этой функции одна строчка:
$this->data[$name] = $var;
Где в ней изменения между этими версиями?
Никаких багов в данном вопросе нет, иначе бы половина стандартных тегов DLE у вас выводилась бы, а не только ваши правки. В данном случае ваши правки не работают корректно.
Не спорил бы, однако почему-то возникли проблемы после обновления, а до этого на разных версиях подобного не было. Примерный код, где используется функция set.
$tpl->load_template(/*шаблон*/); $tpl->set('{user_id}', ''); $tpl->clear();
-
8 minutes ago, celsoft said:
Ничего подобного. Никаких изменений в данном вопросе в скрипте нет. И все должно также заменяться как и всегда, что собственно и делается.
Это значит что ваша строка $tpl->set('{user_id}', ''); не выполнялась в принципе. Например не туда поставили куда нужно. Тег остается на месте, только если нет никаких кодов которые бы его обработали. Или например тег в шаблоне и ваш тег в PHP коде отличаются. Например русская буква e и латинская визуально одинаковы и ошибиться при написании легко.
Изменения не производились там, где находятся подобные сточки. Проблемы с заменой появилось сразу же после обновления.
Сама функция set была изменена.
До 13.0:
function set($name, $var) { if( is_array( $var ) && count( $var ) ) { foreach ( $var as $key => $key_var ) { $this->set( $key, $key_var ); } } else $var = str_ireplace( "{include", "{include", $var ); $var = str_ireplace( "{custom", "{custom", $var ); $var = str_ireplace( "{content", "{content", $var ); $var = str_ireplace( "[xf", "[xf", $var ); $this->data[$name] = $var; }
В 13.0:
function set($name, $var) { if( is_array( $var ) ) { if( count( $var ) ) { foreach ( $var as $key => $key_var ) { $this->set( $key, $key_var ); } } return; } $var = str_replace(array("{", "["),array("_{_", "_[_"), $var); $this->data[$name] = $var; }
-
Здравствуйте.
До версии 13.0 даже при присваивании тегу пустой строчки он заменялся на пустоту. Сейчас же в подобном случае тег появляется на странице.
Пример:
$tpl->set('{user_id}', '');
Результат на странице до версии 13.0 - пустота.
Результат на странице в версии 13.0 - {user_id}
Хотел бы узнать, было ли так изначально задумано. Если да, то в связи с какими причинами.
$tpl->set
в DataLife Engine (Общие вопросы)
Опубликовано:
Удивительно, судя по всему, помогла обычная чистка кэша.