Вставка кода в код страницы

Добрый вечер!

Бьюсь как рыба об лед.

Яндекс карта требует вот такой код (в квадратных скобках) на странице:
[[options.contentLayout observeSize minWidth=235 maxWidth=235 maxHeight=350]]

Modx вырезает все что находится в [[]] вместе с самими скобками.

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

Вопрос, как вставить выражение вида [[options.contentLayout observeSize minWidth=235 maxWidth=235 maxHeight=350]] в код страницы?

Спасибо!
Rrp2010
13 ноября 2015, 19:42
modx.pro
1 907
0

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

Abu
Abu
14 ноября 2015, 02:02
0
Привет, попробуй разделять скобки пробелами, типа "[ пробел [ "
    Rrp2010
    14 ноября 2015, 10:10
    0
    Спасибо за подсказку! [ пробел [ не экранируется, но и карта с пробелом не работает.
    Сергей Шлоков
    14 ноября 2015, 07:58
    0
    Попробуй мнемоники
    [ и ]
      Rrp2010
      14 ноября 2015, 10:28
      0
      Вот так пробовал [[*tv:tag]] в коде страницы получается [ код ]не работает.

      Пробовал даже вот так [[*tv:replace=`[==[`:replace=`]==]`]], как только получается [[]] все исчезает.

      Здесь кстати, в тикете на странице отображается как нужно, а в коде
      #91;[options.contentLayout observeSize minWidth=235 maxWidth=235 maxHeight=350]]

      Буду искать решение в настройках карты чтобы избежать скобки [[]]

      Спасибо за помощь!

      Илья Уткин
      14 ноября 2015, 13:08
      +2
      Могу предложить только такой плагин на событие OnWebPageComplete

      <?php
      if ($modx->context->key == "mgr" ||
          $modx->event->name != "OnWebPageComplete")
          return;
      if (strpos($modx->resource->_output, '<div id="map"></div>') === false) return;
      $modx->resource->_output = str_replace(
                      '<div id="map"></div>',
                      '<div id="map">[[options.contentLayout observeSize minWidth=235 maxWidth=235 maxHeight=350]]</div>',
                      $modx->resource->_output
                  );
      print $modx->resource->_output;
      die();

      В нужном месте на странице вставляете
      <div id="map"></div>

      А плагин заменит его на
      <div id="map">[[options.contentLayout observeSize minWidth=235 maxWidth=235 maxHeight=350]]</div>
        Rrp2010
        14 ноября 2015, 13:59
        0
        Илья, спасибо плагин работает, но в таком случае после загрузки дублируется весь код страницы дважды (загружается вторая страница ниже первой). Причем в первом фрагменте в месте вставки кода
        <div id="map"></div>
        , во втором как должно быть [[options.contentLayout observeSize minWidth=235 maxWidth=235 maxHeight=350]]

        Может на другое событие должен срабатывать плагин?

          Илья Уткин
          14 ноября 2015, 15:02
          +2
          Может, на другое… попробуйте на onWebPagePrerender… но тогда другие плагины могут сломаться…
            Rrp2010
            14 ноября 2015, 15:20
            0
            Илья, спасибо огромнейшее «OnWebPagePrerender» работает.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        8