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


Фотография
- - - - -

Добавить уникальные классы к span


Лучший Ответ kostricyny , 16 April 2013 - 19:30

Вот окончательный вид формирования строки класса для каждого checkbox.

$class = $this->app->string->sluggify($element->config->get('name')).' element element-'.$element->getElementType(); 
   
Это выражение $this->app->string->sluggify($element->config->get('name')) тождественно значению выше обсуждаемого value Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 32

#11 vector

vector

Отправлено 11 April 2013 - 19:05

этот топик я читал все получилось, добавил label'у уникальный класс, вывел иконки в поиске http://s018.radikal....c19a713cf8b.png . А вот в teaser все значения выводятся <span> без каких либо классов. url скинул в личку

  • 0

#12 kostricyny

kostricyny

Отправлено 11 April 2013 - 19:05

Извините за ошибку. Правильная вторая ссылка:

http://forum.joomla-...0.html#msg15610
  • 0

#13 vector

vector

Отправлено 11 April 2013 - 19:28

Да я тоже добавил title к label, это для поиска где выводится Chekbox, но вопрос в другом :) как добавить класс к <span> который выводится в teaser
  • 0

#14 vector

vector

Отправлено 11 April 2013 - 19:38

Вот текущий вывод в teaser чекбокса http://s60.radikal.r...4fac5f80be1.jpg
  • 0

#15 kostricyny

kostricyny

Отправлено 12 April 2013 - 09:36

Понятно.
В шаблонах вывода указав в качестве разделителя просто <span> не получить стили при "рендеринге" tizer или full.
На сколько я понимаю, необходимо по условию типа данных checkbox добавить переменную:
$this->renderPosition ("имя области вывода в шаблоне", array(" 'style' => 'имя-нужного-стиля', 'class' => 'свой-для-каждого-span"):

в файле:
media/zoo/applications/jbuniversal/templates/catalog/renderer/item/здесь-алиас-каталога/здесь-имя-шаблона.php

Я попробовал разные "имена-нужного-стиля" и все они обрамляют дополнительным тегом наши span и т.д. и т.д.
Надо ждать ответа Дениса, он может подсказать. 


  • 0

#16 RomanL

RomanL

Отправлено 12 April 2013 - 09:48

Вы можете создать собственный "style" с классами, добавив его сюда: components\com_zoo\renderer\element
  • 0
[color=#aa0000]Не забывайте нажимать кнопку «Вопрос Решён» и «+1» под сообщением, которое Вам помогло[/color]

#17 kostricyny

kostricyny

Отправлено 15 April 2013 - 17:11

Вы можете создать собственный "style" с классами, добавив его сюда: components\com_zoo\renderer\element

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

Сейчас опять вернулся к этой проблеме, после того, как заказчик попросил сделать пиктограммы не только при выводе в модуле поиска, но и в "тизере".  Мне не понятно, как присвоить персональные стили каждому отдельному CheckBox по их значению Value перед их выводом функцией $this->renderPosition.     

Я предполагал, что эти стили можно присвоить в функции:
private function _list() из файла /media/zoo/applications/jbuniversal/framework/helpers/jbhtml.php
Но выяснилось, что там формируется только <input> и <label> для вывода в форме поиска. Разобраться с переменной $this->renderPosition не пробовал. 

Прошу помощи в подсказке, как осуществить подобное для тизерной формы вывода. 



  • 0

#18 RomanL

RomanL

Отправлено 15 April 2013 - 19:09

Каждому элементу checkbox или каждому input в элементе checkbox ?
  • 0
[color=#aa0000]Не забывайте нажимать кнопку «Вопрос Решён» и «+1» под сообщением, которое Вам помогло[/color]

#19 kostricyny

kostricyny

Отправлено 15 April 2013 - 20:22

Уважаемый RomanL, отвечаю на Ваш вопрос: "Каждому элементу CheckBox".

Я думаю, что надо в функции public function renderPosition ($position, $args = array()) из файла /administrator/components/com_zoo/classes/renderer/item.php модифицировать вот эту часть кода:

foreach ($elements as $i => $data) {
            $params  = array_merge(array('first' => ($i == 0), 'last' => ($i == count($elements)-1)), $data['params']);

			$output[$i] = parent::render("element.$style", array('element' => $data['element'], 'params' => $params));
	
		// trigger elements afterdisplay event
			$this->app->event->dispatcher->notify($this->app->event->create($this->_item, 'element:afterdisplay', array('html' => &$output[$i], 'element' => $data['element'], 'params' => $params)));
        }

Здесь массив $output[$i] уже содержит отформатированный html код. Но пока у меня не очень получается с этой модификацией.
  • 0

#20 RomanL

RomanL

Отправлено 15 April 2013 - 20:37

Тогда я уже это писал:

Вы можете создать собственный "style" с классами, добавив его сюда: components\com_zoo\renderer\element

На основе имеющегося стиля, например block, сделайте свой стиль с классами
  • 0
[color=#aa0000]Не забывайте нажимать кнопку «Вопрос Решён» и «+1» под сообщением, которое Вам помогло[/color]




Click to return to top of page in style!