Конфликт JSON значений в тегах с Fenom

Правильно ли понимаю, что Fenom будет конфликтовать, если атрибуты тега содержат массив значений в Json? Проблема в частности с Jevix.
Такая конструкция ломает верстку.
<a href="my-image.jpg" data="{group}" title="">...</a>
Это конечно не то, что хотелось бы получить, но на этом этапе уже проблема. В итоге должно быть
<a href="my-image.jpg" data="{group:'gallery'}" title="">...</a>
Обработка Fenom включена везде!
Alexander V
28 октября 2015, 13:57
modx.pro
2 372
0

Комментарии: 10

Іван Клімчук
28 октября 2015, 18:06
0
Ошибка будет, так как fenom пробует распознать, что за теги ему подсунули и падает на этом.
Один вариант — это добавить теги {ignore}{/ignore} вокруг json.
Второй вариант — это разнести символы { и } на разные строки.
<a href="my-image.jpg" data="{
	group: 'gallery'
}" title="">...</a>
Выглядит в обоих случаях не круто, но вариантов особо и нет.
    Іван Клімчук
    28 октября 2015, 18:09
    0
    Ну и можно еще избавиться от json в ссылке. Не думаю, что там будет такая большая вложенность, что нужен json. Можно и нужно сделать flat-массив из тегов data-.
    <a href="my-image.jpg" data-group="gallery" data-author="Gecktor" data-something="smth" title="">...</a>
    В случае с jquery это все потом хорошо получается методом .data().
      Василий Наумкин
      28 октября 2015, 18:09
      +1
      Отставить разные строки, достаточно пробелов:
      <a href="my-image.jpg" data="{ group:'gallery' }" title="">...</a>
      Обсуждали здесь уже раз 20.
        Іван Клімчук
        28 октября 2015, 18:11
        +1
        Ну или так. Хотя легко потом убрать пробел и рвать волосы на жопе в поисках бага :) Со строками нагляднее, если ввести в привычку.
          Alexander V
          28 октября 2015, 18:23
          0
          К сожалению такая конструкция не работает, атрибут пропадает полностью.
          В Jevix параметр cfgSetTagParamDefault
          [["a","data",{ group:'gallery' },true]]
          А если указать
          [["a","data",{ },true]]
          или
          [["a","data",[],true]]
          То видно, что от меня ожидается массив
          data="Array"
            Alexander V
            28 октября 2015, 19:19
            0
            Хм. Странно, но с десятого раза получилось именно
            [["a","data",{ group:'gallery' },true]]
            Василий, спасибо.
        Dekr
        07 октября 2017, 09:40
        0
        Не могу вывести данные через fenom
        Таблица: modx_site_content
        Поле: properties
        Данные поля:
        {"stercseo":{"index":"1","follow":"1","sitemap":"1","priority":"0.25","changefreq":"monthly"}}
        {$_modx->resource.properties}
        Выводит array. Ок.
        {set $rows = json_decode($_modx->resource.properties, true)}
        {foreach $rows as $row}
            <h2>{$row.changefreq}</h2>
            <h3>{$row.priority}</h3>
            <p>{$row.sitemap}</p>
        {/foreach}
        Ошибка: json_decode() expects parameter 1 to be string, array given
        Как вывести через fenom?
          Максим Кузнецов
          07 октября 2017, 10:00
          0
          Если у вас $_modx->resource.properties уже выводит array, зачем делать json_decode?
            Dekr
            07 октября 2017, 21:24
            0
            Спасибо!
            До такого простого варианта не додумал… :(
          Dekr
          07 октября 2017, 09:54
          0
          Идея скрестить значения SeoPro c pdositemap.
          К сожалению seoPro не может вывести ресурсы minishop2
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            10