Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Улучшаем управление переменными сайта
Разработчики часто используют класс COption для хранения и вывода значений каких-либо переменных. И по сути ничего не мешает в этом классе хранить и какие-то переменные сайта/шаблона. Как то: телефон, e-mail и прочие мелкие значения в шаблоне сайта. Часто проблема решается вставкой включаемой области, которую могут править потом редакторы. Но не всегда... Например, в такой ситуации включаемая область мало поможет:
Помещать весь блок кода в одну включаемую область? Не очень красиво. Создавать 3-4 включаемых области? Зачем нам +3-4 доп.файла цеплять? Выход? Хранить все это в вышеозвученном классе. Но как туда записать, и как легко потом менять сие редактору?
Решение и практика
Так родилась идея простого модуля, который бы позволял легко сохранять и выводить такие переменные.
Далее выводим все простой функцией API (о ней ниже):
<?= tplvar('skype');?>
Но это еще не все если у вас есть права на редактирование шаблона и включен режим правки, рядом с каждым значение появится иконка редактирования:
При клике на которую вы переходите к редактированию данной переменной:
Теперь пару слов о функции. Доступна она всегда (после установки модуля) без подключения самого модуля. У нее есть два режима:
1. Для использования голого значения переменной:
<?= tplvar('skype');?>
Например, в коде, или где не требуется вывод иконки даже в режиме редактирования (например, mailto: $var).
Показывает иконку редактирования только в режиме включаемых областей. Хороший пример применения - ссылка на какой-то файл в шапке сайта:
<a href="<?= tplvar('wholesale_pdf');?>">Скачать каталог в PDF</a>
Даже в режиме включаемых областей, нет возможности посмотреть иконку, так как она спрятана в href будет (если быть точным, в данном случае она не выведется вовсе). Поэтому делаем так:
<a href="<?= tplvar('wholesale_pdf');?>">Скачать каталог в PDF</a><?= tplinvis('wholesale_pdf');?>
Имеем иконку, которая появится только в режиме редактирования:
Функция tplvar_set
Применяется для установки значения для определенного кода (например, из API). Использование:
tplvar_set($code, $value, $site);
Все три переменные обязательны: код свойства, значение, ID сайта.
Общие замечания
Модуль работает в рамках текущего сайта (SITE_ID). Вам не надо заботиться о проверке сайта, и одна и та же переменная на разных сайтах может иметь разное значение (например, skype на разных сайтах разный).
Я намеренно сделал вызовы API обезличенными, чтобы партнеры могли применять этот модуль в своей работе не переживая за префиксы чужого партнера.