Поле «SEO-текст» для ICMS 2 - Обновление 1.8.0 2.X

656
Поле «SEO-текст» для ICMS 2 - Обновление 1.8.0

Добавлена поддержка свойств, разбиение паттернов на логические блоки и другие новые возможности.


Что нового?

1. Поддержка значений родительской категории. Теперь при составлении паттернов есть возможность использовать такие параметры как ID и title родительской категории.

2. Возможность использовать конструкции вида if-else. Это дает возможность выводить те или иные блоки в зависимости от значения той или иной переменной. Поддерживается стандарный набор условий - ==, !=, <, >, >=, <=.

[if {category-id} == 5]Выводим текст 1[else]Выводим текст 2[/if]

3. Возможность перечисления выбранных значений мультисписков в нужном вам контексте. Например перечислить выбранные элементы списка в виде ссылок на страницы фильтрации. Конструкция вида

{listfield}<a href="/{ctype-name}?listfield={listfield-id}">{listfield-value}{/listfield}

создаст список ссылок для фильтра с указанными в записи значениями.

4. Разбиение паттерна на логические фразы, при помощи разделителя ||. Например, паттерн

{title}|| площадью {prop-8}|| на {prop-9} этаже|| жилой площадью {prop-16}

выведет только те логические "кубики", для которых присутствуют значения указанных свойств(со значениями полей поле работает аналогично). В зависимости от заполненности тех или иных полей(свойств) записи получим разный результат:
- Продам квартиру в новостройке площадью 120 м2 на 5 этаже жилой площадью 100 м2
- Продам квартиру в новостройке на 5 этаже жилой площадью 100 м2;
- Продам квартиру в новостройке площадью 120 м2 жилой площадью 100 м2
- Продам квартиру в новостройке жилой площадью 100 м2
и т.д.

Это позволяет использовать единый паттерн для полей, которые существуют только в определенных категориях , необязательны к заполнению и т.д. А также при использовании свойств, которые как мы знаем изначально привязаны к определенным категориям, и в разных категориях мы имеем разный набор свойств.

5. Поддержка свойств типа контента. Теперь при составлении паттернов можно использовать не только поля записи, но и свойства

Все возможности поля
Поле «Конструктор списков»
Комментарии (10)
Rainbow 19 июня 2019 в 10:38 0
Спасибо поле помогло решить проблему не решаемую стандартными средствами системы по СЕО.
Rainbow 19 июня 2019 в 10:59 0
ЗЫ:
Александр Витальевич 19 июня 2019 в 18:21 0
А как получить обновление? Или была рассылка?
vikont 19 июня 2019 в 19:30 0
Смотрите в своем кабинете на сайте DWD
Pawell 30 июня 2019 в 22:16 0
Здравствуйте. А есть ли возможность вывести ссылку на текущую страницу $_SERVER["REQUEST_URI"]. Как это можно прописать?
dwd 1 июля 2019 в 03:36 +1
Не смог придумать ни одного примера, где бы то могло понадобиться. С точки зрения оптимизации это вообще считается злом. Так что специального тега для этой цели нет, но вы можете попробовать собрать нужную ссылку самостоятельно используя другие теги. Тут все зависит от конкретной задачи, которая перед вами стоит. Например, если вы говорите о страницах записей, то
Код HTML:
  1. <a href="/{ctype-name}/{item-slug}.html">Ссылка</a>
Pawell 1 июля 2019 в 10:04 0
Спасибо. То, что нужно.
Pawell 1 июля 2019 в 11:04 0
Пытаюсь вывести текстовое поле с содержимым:
Спойлер
в записи напрямую <?php echo html($item['имя поля']); ?> или <?php echo $item['имя поля']; ?>, но оно не отображается. В обычном режиме показывается во вновь созданных сообщениях.
dwd 1 июля 2019 в 14:05 +1
В установочном пакете есть замечательный файлик - readme.txt))
А еще в настройках поля есть галочка "Использовать кэш для показа на сайте".

В последних версиях системы результат рендеринга полей содержится не в массиве записи, а в $fieldset['fields'] и выводится вот таким образом:

Код PHP:
  1. <?php foreach ($fieldset['fields'] as $field) { ?>
  2. <div class="value"><?php echo $field['html']; ?></div>
  3. <?php } ?>
Поэтому либо используем кэширование и выводим как

Код PHP:
  1. <?php echo $fieldset['fields']['имя поля']; ?>
либо рендерим на лету

Код PHP:
  1. $fieldset['fields']['имя поля']['parser']->setItem($item)->parse(1);
Pawell 1 июля 2019 в 14:34 0
Спасибо. Разобрался. Пришлось сделать запрос:
Код PHP:
  1. UPDATE `cms_con_articles` SET `название поля`=1;
  2.  
чтобы поле появилось на всех ранее написанных страницах.