Как на феном установить счетчики

Часто звучит вопрос и боль: Установил счетчик, вижу белый экран. Сайт на феноме.

Проблема широко известна уже более 10 лет, но новички попадают в эту ловушку fenom.

Феном когда парсит страницу и встречает фигурную скобку { от скрипта Js выпадает в осадок, в ошибку, в ступор. Те он не может просто так пропустить этот участок кода. Он для него является кодом и соответственно, если там не верный синтаксис для фенома, то белый экранчик вам сразу об этом кричит.

Решение достаточно простое. Их несколько.

  1. Создать для счетчиков отдельное ТВ поле с типом поля Текстовая область, и присвоить его, например, Главной странице или Контактам или вообще отдельный ресурс посвятить настройкам для сайта. Вариант, конечно удобный, но не сильно, чтоли верный, то ли правильный - спорный, короче, но рабочий.
  2. Установить ClientConfig и уже в нем создавать настройки для сайта - то же поле и выводить. Вариант верный и правильный. 

Для обоих вариантов вывод будет для фенома с заменой скобочек фигурных без проблела с пробелом. Это стандартный подход и феном игнорирует фигурную скобку с пробелом после или с переносом строки.

В первом случае для примера создаем ТВ tv_counters и присвоем ее главной странице с id = 1. Тогда можно вставить на страницу (где хотите и где подсказывает вам сердце) этот код:

{(1 | resource : 'tv_counters') | replace : '{' : '{ '}

 

Во-втором варианте у нас уже будет фигурировать настройка. Создаем ее в ClientConfig. В данном случае настройки приходит всегда в шаблон и доступны через вызов {$_modx->config.system_setting},  где system_setting -  имя вашей настройки для счетчиков, например создадим mycouters и в результате будем выводить в шаблоне или чанке так:

{$_modx->config.mycounters | replace : '{' : '{ '}

Ничего сложного и нервы спокойны и сайт не "белеет".

Так же можно добавлять тег 

{ ignore} ... код на js ... { /ignore}

Но частенько что-то случается и он не помогает, как например сейчас и пришлось поставить пробелы после скобок в вышенаписанный код т.к. мой ignore не помог в тексте. Поэтому выбирайте вариант с умом.

До новых встреч.