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


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

Разделитель полей в ячейке таблицы


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

#1 pascalsf

pascalsf

Отправлено 11 March 2013 - 23:47

Приветствую всех!
В настройках шаблона тизера для каталога недвижимости указал несколько полей (этаж и всего этажей) для одной ячейки таблицы. В итоге на сайте отображается так:
<td> 1 5 </td>
Вопрос: как добавить разделитель между полями? текст на сайте в ячейке должен отображаться так:
<td> 1/5 </td>

  • 0

#2 RomanL

RomanL

Отправлено 12 March 2013 - 06:42

Попробуйте через CSS: http://htmlbook.ru/css/content
  • 0
[color=#aa0000]Не забывайте нажимать кнопку «Вопрос Решён» и «+1» под сообщением, которое Вам помогло[/color]

#3 pascalsf

pascalsf

Отправлено 12 March 2013 - 08:29

Попробуйте через CSS: http://htmlbook.ru/css/content

Причем здесь CSS? Меня интересует какой файл отвечает за вывод полей в ячейке!

Тизер (media/zoo/applications/jbuniversal/templates/catalog/renderer/item/flat/teaser.php) выглядит так:
<?php
defined('_JEXEC') or die('Restricted access');
?>
<tr class="table-row item_<?php echo $item->id;?>">
    <td><?php echo $this->renderPosition('cell1'); ?></td>
    <td><?php echo $this->renderPosition('cell2'); ?></td>
    <td><?php echo $this->renderPosition('cell3'); ?></td>
    <td><?php echo $this->renderPosition('cell4'); ?></td>
    <td><?php echo $this->renderPosition('cell5'); ?></td>
    <td><?php echo $this->renderPosition('cell6'); ?></td>
    <td><?php echo $this->renderPosition('cell7'); ?></td>
    <td><?php echo $this->renderPosition('cell8'); ?></td>
</tr>
Для позиции 'cell5' в админке (настройки шаблона тизера) добавлено 2 поля: "этаж" и "всего этажей". Они выводятся как описано выше.
Мне нужно узнать какой файл отвечает за формирование переменной $this->renderPosition('cell5'); ? Чтобы я мог в него добавить разделитель "/" между выводимыми полями!
  • 0

#4 RomanL

RomanL

Отправлено 12 March 2013 - 09:15

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

#5 pascalsf

pascalsf

Отправлено 12 March 2013 - 09:26

А через CSS не проще?

 Ну и как Вы через CSS добавите разделители между значениями в такие строки:

Сейчас (ячейка - "этаж", поля - "этаж", "всего этажей"):
<td> 1 5 </td>
Нужно:
<td> 1/5 </td>
Сейчас (ячейка - "площадь", поля - "площадь общая","площадь жилая","площадь кухни","балкон/лоджия"):
<td> 42 12 12,5 Б </td>
Нужно:
<td> 42/12/12,5/Б </td>

  • 0

#6 RomanL

RomanL

Отправлено 12 March 2013 - 10:08

Они должны быть в обертке, но у вас еще проще, добавьте свой разделитель в файле media\zoo\elements\text\text.xml (если используется элемент text), потом выберите разделитель в настройке элемента.
  • 0
[color=#aa0000]Не забывайте нажимать кнопку «Вопрос Решён» и «+1» под сообщением, которое Вам помогло[/color]

#7 pascalsf

pascalsf

Отправлено 12 March 2013 - 11:00

Они должны быть в обертке, но у вас еще проще, добавьте свой разделитель в файле media\zoo\elements\text\text.xml (если используется элемент text), потом выберите разделитель в настройке элемента.

Выбрал, ничего не происходит!

Настройка teaser.php:
Изображение

Редактирование полей типа:
Изображение
  • 0

#8 RomanL

RomanL

Отправлено 12 March 2013 - 11:48

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

#9 RomanL

RomanL

Отправлено 12 March 2013 - 12:07

Вам нужно добавить новый шаблон со своим разделителем сюда:

components\com_zoo\renderer\element

Затем поменять строчку
<td><?php echo $this->renderPosition('cell5'); ?></td>
на
<td><?php echo $this->renderPosition('cell5', array('style'=><НАЗВАНИЕ ШАБЛОНА>)); ?></td>

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

#10 pascalsf

pascalsf

Отправлено 12 March 2013 - 13:42

Вам нужно добавить новый шаблон со своим разделителем сюда:

Так и сделал. В папке media/zoo/applications/jbuniversal/templates/catalog/renderer/element создал файл slash.php
<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
// create label
$label = '';
if (isset($params['showlabel']) && $params['showlabel']) {
   $label = ($params['altlabel']) ? $params['altlabel'] : $element->config->get('name');
   if( strlen($label) > 0 ) echo $label.' ';
}
// render element
echo $element->render($params);
if (!$params['last']) echo '/';
Изменил шаблон media/zoo/applications/jbuniversal/templates/catalog/renderer/item/flat/teaser.php
<?php
defined('_JEXEC') or die('Restricted access');
?>
<tr class="table-row item_<?php echo $item->id;?>">
    <td><?php echo $this->renderPosition('cell1'); ?></td>
    <td><?php echo $this->renderPosition('cell2'); ?></td>
    <td><?php echo $this->renderPosition('cell3'); ?></td>
    <td><?php echo $this->renderPosition('cell4'); ?></td>
    <td><?php echo strtr($this->renderPosition('cell5', array('style' => 'slash')), array("\r\n"=>"", "\n"=>"", "\n\r"=>"")); ?></td>
    <td><?php echo strtr($this->renderPosition('cell6', array('style' => 'slash')), array("\r\n"=>"", "\n"=>"", "\n\r"=>"")); ?></td>
    <td><?php echo $this->renderPosition('cell7'); ?></td>
    <td><?php echo $this->renderPosition('cell8'); ?></td>
</tr>
Добавил выбор разделителя "/" для элементов типа TEXT в файле media/zoo/elements/text/text.xml
<option name="Slash"><![CDATA[separator=[/]]]></option>
Добавил выбор разделителя "/" для элементов типа CHECKBOX в файле media/zoo/elements/option/option.xml
<option name="Slash"><![CDATA[separator=[/]]]></option>
После этих всех манипуляций наконец-то получил желаемый результат!
P.S. Спасибо за помощь! :D
  • 1




Click to return to top of page in style!