| medar | 
					 | 
			
|---|---|
| 
					 Та-дааа!! 
						Я, похоже, таки сделал логику для xtemplate. Тот путь, который я описал в постах выше оказался тупиковым, пришлось сделать все совсем по-другому. Файл пока не коммитю, так как даже обсуждения в Ideas не было. Хотя, ИМХО, обсуждать тут нечего, это мастхэв на 100% и дополнительных тормозов оно не создает. Вообще, когда я увидел ужас, летящий на крыльях ночи в xtemplate в виде массы регулярок и дублирования всех переменных движка, я уже спокойнее отношусь к вопросу "а не затормозит ли это движок?". Не затормозит. Если xtemplate не убил скорость, то точно уже ничего не убьет. :) Вот измененный файл: http://www.cotonti.com/datas/users/xtemplate.class_45.rar . Им надо переписать существующий (system/xtemplate.class.php). Посмотрите-потестите плиз, я погонял у себя, вроде работает везде и стабильно. Я завтра на свежую голову еще его погоняю и закоммитю. Использование. Итак, у нас в шаблонах стала доступна вот такая вот конструкция: <!-- IF <if_statement> --> этот текст будет показан если <if_statement> является true <!-- ENDIF --> <if_statement> - это логическое php-выражение, только вместо переменных используются tpl-тэги (в том числе и глобальные!) Примеры: <!-- IF {PHP.usr.profile.user_name} == "admin" -->
привет, админ !
<!-- ENDIF -->
<!-- IF {PAGE_DESC}== "" -->
Описание страницы пустое. Напишите хоть что-нибудь
<!-- ENDIF -->
<!-- IF {PAGE_DESC} == {PAGE_TITLE} AND {PAGE_COMMENTS_COUNT} > 0-->
Замечена нехилая активность в комментах! И, кстати, тайтл и деск страницы совпадают, если это вам интересно.
<!-- ENDIF -->
и даже можно так: Пример, конечно, надуманный, но больше в такой поздний час ничего в голову не лезет. <!-- IF strpos({PAGE_TITLE}, "жуй") -->
{PAGE_TITLE|str_replace('жуй', '', %s)} ц-ц-ц как нехорошо
<!-- ENDIF -->
<!-- IF !strpos({PAGE_TITLE}, "жуй") -->
{PAGE_TITLE}
<!-- ENDIF -->
"|str_replace" - это, кстати, фишка самого xtemplate - можно изменять значения тэгов callback-функциями. Вот как полезно, оказывается, читать документацию. :)Единственно чего нельзя - делать эти конструкции вложенными. Но так как в выражении можно использовать AND и OR, вложенность и не нужна по сути. rangjungyeshe.ru 
					 |