vishneviy_sad_c
@vishneviy_sad_c

Как сделать проверку отложенной функции ShowProperty?

Как сделать проверку отложенной функции ShowProperty,
в компоненте новостей > в детальном шаблоне компонента устанавливаю
$APPLICATION->SetPageProperty("H_tit", "какой-то текст"; ?>


В теге h1, который находится выше генерации(причина по которой GetProperty не работает), получаю <?php $APPLICATION->ShowProperty("H_tit"); ?>
Вопрос, как сделать условие проверки,так работать не будет:
<h1><?php 
						$H_tit = $APPLICATION->GetProperty("H_tit");
						if (strlen($H_tit)>0 ): ?>
							<?php $APPLICATION->ShowProperty("H_tit"); ?>
							<?php else: ?>
							<?$APPLICATION->ShowTitle()?>
							<?php endif ?></h1>


и так не корректно пашет:
<h1><?php 
						$H_tit = $APPLICATION->ShowProperty("H_tit");
						if (strlen($H_tit)>0 ): ?>
							<?php $APPLICATION->ShowProperty("H_tit"); ?>
							<?php else: ?>
							<?$APPLICATION->ShowTitle()?>
							<?php endif ?></h1>
  • Вопрос задан
  • 1930 просмотров
Пригласить эксперта
Ответы на вопрос 2
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Вот что говорит битрикс про отложенные функции:

Внимание! При использовании этой технологии необходимо учитывать, что над результатами работы функций, обеспечивающих откладывание других функций, нельзя выполнять какие-либо действия.
Значение, возвращаемое отложенной функцией, не возвращается, а сразу выводится в месте вызова AddBufferContent, а всё, что выводится в отложенной функции, будет выведено до начала шаблона.


Почитайте внимательно документацию

И вы пишите:
в компоненте новостей > в детальном шаблоне компонента устанавливаю

Если вызываете $APPLICATION->SetPageProperty в template.php, то ваш код не будет работать при включенном кешировании. Подробнее об этом можно почитать тут

Если я правильно понял, вы пытаетесь установить h1 где то в шаблоне сайта.
Воспользуйтесь этой шпаргалкой:

$APPLICATION->SetTitle("Заголовок 1"); //- задать заголовок страницы
$APPLICATION->SetPageProperty('title','Заголовок 2');// - тоже задать заголовок страницы (но эта функция имеет приоритет над первой)
<?$APPLICATION->ShowTitle()?> - показ заголовка страницы  // покажет заголовок 1
<?$APPLICATION->ShowTitle(false)?> - показ заголовка страницы, заданного через SetTitle // покажет заголовок 2
Ответ написан
Комментировать
Вот пример через отложенные функции, можно сделать по аналогии. Как уже было замечено, SetPageProperty нужно вызывать в component_epilog.php

Как узнать что находимся в карточке товара компонента каталог?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы