Перейти к содержимому


- - - - -

Указание class для ul и li при создании виджетов


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 zuzer

zuzer

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 09.11.2009, 20:37

Иногда, при создании шаблонов, для "правильного" отображения виджетов требуется указать class для <ul> и <li>.

Я сделал это так:
functions.php
$sidebar->addWidget(new zwidget_pagemenu('pages', array(
	'title' => 'Страницы', // Заголовок блока
	'type' => 'minimal', // Тип вывода меню: minimal или full

		   ...

	'ulclass' => 'li',

)));
zengine/classes/zwidget/pagemenu.php
	public function displayContent ()
	{

		$this->zpage = zengine::template()->getPage();
		$this->pagepath = $this->zpage->getPagepath();

		$menu = zengine::repository()->getPageInfo($this->params['childs_of']);
		if ($menu) {
			if ($this->params['title']) {

		 	if ($this->params['ulclass']) {
					echo '<ul class=' .$this->params['ulclass']. '>';
				} else {
					echo '<ul>';
				}

			}
			$this->displayItems($menu, 1);
			if ($this->params['title']) {
				echo '</ul>';
			}
		}
	}

Этот метод работает, но приходится, если нужно, править zwidget/pagemenu.php для каждого сайта. Возможно ли это сделать иным способом, чтобы изменения пришлось приводить только в functions.php?

#2 support

support

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 1 140 сообщений

Отправлено 10.11.2009, 05:21

Можно привязываться к классу виджета, например:

.widget_pages ul {
}

.widget_pages ul li {
}

Конструктор для создания виджета принимает следующие аргументы: $name, $params, $classname.

В качестве названия виджета выступает либо $classname, либо widget_$name, если не указан класс.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей