+7 495 008 8452
  • Загрузка
Выберите ваш цвет
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Улучшаем управление переменными сайта

Разработчики часто используют класс COption для хранения и вывода значений каких-либо переменных. И по сути ничего не мешает в этом классе хранить и какие-то переменные сайта/шаблона. Как то: телефон, e-mail и прочие мелкие значения в шаблоне сайта. Часто проблема решается вставкой включаемой области, которую могут править потом редакторы. Но не всегда...

Например, в такой ситуации включаемая область мало поможет:

2013_05_12_00_01_my.png

Помещать весь блок кода в одну включаемую область? Не очень красиво. Создавать 3-4 включаемых области? Зачем нам +3-4 доп.файла цеплять? Выход? Хранить все это в вышеозвученном классе. Но как туда записать, и как легко потом менять сие редактору?

Решение и практика

Так родилась идея простого модуля, который бы позволял легко сохранять и выводить такие переменные.

scr1.png

scr2.png

Далее выводим все простой функцией API (о ней ниже):
<?= tplvar('skype');?>

Но это еще не все :) если у вас есть права на редактирование шаблона и включен режим правки, рядом с каждым значение появится иконка редактирования:

scr3.png

При клике на которую вы переходите к редактированию данной переменной:

scr4.png

Теперь пару слов о функции. Доступна она всегда (после установки модуля) без подключения самого модуля. У нее есть два режима:

1. Для использования голого значения переменной:
<?= tplvar('skype');?>
Например, в коде, или где не требуется вывод иконки даже в режиме редактирования (например, mailto: $var).

2. С поддержанием вывода иконки редактирования:
<?= tplvar('icq', true);?>
Результат вы видели выше.

Пример вывода скайпа:
<li><a class="underlined-link" href="skype:<?= tplvar('skype');?>"><i class="icon icon-skype"></i><span><?= tplvar('skype', true);?></span></a></li>


Функция tplinvis

Показывает иконку редактирования только в режиме включаемых областей. Хороший пример применения - ссылка на какой-то файл в шапке сайта:
<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 обезличенными, чтобы партнеры могли применять этот модуль в своей работе не переживая за префиксы чужого партнера.

Установка

Модуль можно установить по ссылке.  

 

 

Источник: https://dev.1c-bitrix.ru/community/webdev/user/11948/blog/7543/

Назад в раздел

Подписаться на новые материалы раздела:
Загрузка...