Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Чистый вывод через s_list_class

28.01.2010, 18:41
Гость
Гость

При выводе информации через s_list_class() информация помещается в <div class='nc_list nc_text'><div class='nc_row'>%INFO</div></div>
Можно ли от этих двух div'ов избавиться? Не смог раскопать, где находятся.
29.01.2010, 09:20
Хыиуду

Зарегистрирован:
2009-10-21
Сообщений: 156

Можно поступить дубово, но надежно
вместо ".s_list_class(что-то-там)."
написать
".preg_replace("!<div class='nc_list nc_text'><div class='nc_row'>(.*)</div></div>!", "$1", s_list_class(что-то-там))."
Но учтите, что это может неправильно работать, если где-то в выводе s_list_class у вас будет присутствовать </div></div>.

Если у вас вызовы s_list_class происходят в префиксе, суффиксе или в объекте в списке - можете поступить проще. В самом конце написать:
";
$result=preg_replace("!<div class='nc_list nc_text'><div class='nc_row'>(.*)</div></div>!", "$1", $result);
$result.="
В этом случае это можно будет вызвать всего один раз, а не вместе с каждым выводом s_list_class
29.01.2010, 09:54
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Гость писал(а):
При выводе информации через s_list_class() информация помещается в <div class='nc_list nc_text'><div class='nc_row'>%INFO</div></div>
Можно ли от этих двух div'ов избавиться? Не смог раскопать, где находятся.


Вам надо зайти в компонент, который вызываете через s_list_class и найти данный код. Далее 2 варианта:
1. Вызываете ф-ю след. образом: s_list_class(x,y,"&myVar=1"). В компоненте прописываете: ".($myVar?"%INFO":"<div class='nc_list nc_text'><div class='nc_row'>%INFO</div></div>")."
2. В версии 3.6 появилось понятие "шаблон компонента" - для каждого компонента вы можете задать шаблоны их вывода. И когда разделу назначаете компонент, то также можно уточнить и его шаблон. Данный механизм избавляет разработчика от составления целой кучи условных операторов.


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

Temet nosce...
30.03.2010, 12:39
Хыиуду

Зарегистрирован:
2009-10-21
Сообщений: 156

Кстати говоря: пишу в макете шаблона ".s_list_class(389,272,'&test=5').", потом в префиксе компонента вывожу test=$test, и понимаю, что $test пустая. При этом ошибка в самой s_list_class исключена, т.е. объекты выводятся нормально. В чем может быть проблема?
31.03.2010, 18:12
MipH
Спирин Дмитрий
MipH

Зарегистрирован:
2004-12-22
Сообщений: 252

На тему $test - попробуйте поискать ее в массиве $GLOBALS. Также можно попоробовать в системных настройхка компонента написал global $test;

bbzone@gmail.com | bbz.ru | miph.info | miph.ruВы можете обратиться ко мне, если необходима разработка функционала на NetCat
198 196 2010-03-31 18:12:29 7847
Описание проекта