Бетонные 5 атрибутов блока - PullRequest
1 голос
/ 22 февраля 2012

У меня есть несколько изображений на домашней странице, и я хочу, чтобы клиент мог время от времени менять изображения. Прямо сейчас они жестко закодированы как:

<img src="<?=$this->getThemePath()?>/img/welcomePhoto1.jpg" alt="" class="welcome-photo" />

Если я установлю это на новую область блока, где они могут изменить фотографию, могу ли я быть уверенным, что каждый раз, когда они меняют изображения, блок сохранит класс. Мне не очень нравится добавлять классы через пользовательский интерфейс (просто не думаю, что это хорошая практика). Я знаю, что вы можете обернуть блоки так:

<?php 
$a = new Area('sidebar');
$a->setBlockWrapperStart('<div class="box">');
$a->setBlockWrapperEnd('</div>');
$a->display($c); 
?>

Это что-то вроде $a->setBlockClass('welcome-photo');?

Ответы [ 2 ]

2 голосов
/ 27 марта 2012

Да, возможно, есть способ добиться того, что вы пытаетесь сделать, с помощью метода setCustomTemplate для класса Area.

$m = new Area('Main');
$m->setCustomTemplate('image','templates/welcome-photo.php');
$m->display($c);

Затем в вашем файле templates / welcome-photo.php вы можетеустановите обертку вокруг этих изображений, как вы хотите.Имейте в виду, однако, что это просто устанавливает шаблон по умолчанию для любого блока типа 'image' (в этом примере) в этой области, но он МОЖЕТ быть переопределен через интерфейс редактирования.

0 голосов
/ 23 февраля 2012

Я не вижу ничего плохого в использовании setBlockWrapperStart() и setBlockWrapperEnd() - это то, для чего они нужны.

Но если вам по какой-то причине нужно альтернативное решение, вы можете жестко закодироватьвместо этого установите файл и попросите пользователя поменять изображения этого набора с помощью диспетчера файлов.

Или вы можете жестко закодировать блок записок (если используется версия 5.4 или ниже) или стек (если используется версия 5.5 или выше) иПопросите пользователя отредактировать изображение с помощью скриншота панели инструментов (5.4) или стеков панели инструментов (5.5).

Если вам нужны примеры кода для любого из этих подходов, дайте мне знать, и я дополню свой ответ этим,Но, пожалуйста, сначала объясните проблему с вашим первоначальным подходом setBlockWrapper, чтобы я понял конкретную проблему, с которой вы столкнулись.

...