На днях возникла необходимость применения своих глобальных настроек (переменных) на сайте под управлением CMS UCOZ. В системе не реализована возможность использования полей, не предусмотренных системой. Но иногда возникает необходимость вносить такие переменные.
После прочтения данного материала Вы сможете вносить любые свои переменные, которые будут действовать практически на всех страницах сайта, за исключением вида материалов. А при умелом обращении, можно разграничить эти переменные (настройки) для каждой группы пользователей, или даже для каждого пользователя в отдельности.
Поставим тривиальную задачу. Скажем на сайте имеются рекламные баннеры. Вы хотите разделить группы пользователей на тех, кто должен видеть рекламу, и тех, кто не должен. При этом, иметь возможность динамически менять группы, которым баннер должен быть виден. Назовем группу, которая должна видеть баннеры рекламными группами. Скажу сразу, у меня стояла совсем другая задача, говорить о которой не имеет смысла.
Понятное дело, можно сделать такое разграничение и при помощи встроенных в систему UCOZ переменных и условных операторов. Но если баннеры размещены в разных шаблонах сайта, то смена рекламных групп займет много времени. А "быстрая замена" может не сработать в некоторых шаблонах. Поэтому, будем применять к сайту свои переменные.
Что нам потребуется для подобного извращения:
Все добыли? Теперь можно продолжать.
Для начала создаем любой текстовый файл, даем ему любое название и задаем расширение xml, например, options.xml . Учтите то, что файлу нужно задать кодировку UTF-8, так как UCOZ отдает содержимое именно в этой кодировке. Иначе возможно появление каракулей или иероглифов вместо русских символов в переменной. Если кириллических или других, отличных от латинского, буковок не предполагается, то можно оставить кодировку как есть. Я обычно юзаю для таких случаев Notepad2.
В полученный файл пишем следующее:
Писать в файл больше ничего не нужно. Этим будет заниматься скрипт. Как Вы могли понять, в нем и будут храниться наши настройки.
Теперь заходим в панель управления и проходим по менюшке "Инструменты" - "Файловый менеджер", и заливаем наш файл глобальных настроек в любую удобную директорию. Напрямую в этот файл мы лазать не будем, поэтому положение значения не имеет.
Приступаем к созданию страницы редактирования настроек.
Заходим в панель управления. Идем по пути: "Редактор страниц" - "Управление страницами сайта", нажимаем кнопку "Добавить страницу".
Размечаем, кому можно редактировать глобальные переменные, и убираем галочку с пункта "Добавить ссылку на страницу в главное меню сайта". Логично, что доступ оставляем только администраторам.
Задаем странице любое название. Например: глобальные настройки сайта.
Далее в содержимом страницы прописываем форму для редактирования прав. Код может быть таким:
ВАЖНО! У создаваемой формы должен быть ID. У значимых полей формы должен быть задан атрибут name, и он должен быть уникальным в пределах данной формы.
Теперь нужно организовать функционал сохранения данных нашей формы в файл options.xml . Для этого я потратил пару часов своей жизни, изучил исходники сайтов UCOZ и встроенные в него скрипты. В результате был составлен скрипт, выполняющий функцию сохранения настроек в файл. Подключаем данный скрипт. Добавляем после кода формы следующие строки:
Функция _uMyOptions.init(id, file) выполняет следующую работу:
Логично, что id - это id формы, а file - это путь и имя файла от корня сайта.
Теперь можно сохранить страницу и открыть ее. Смотрим, что мы натворили.
На данном этапе поля формы останутся пустыми. Это нормальное поведение, так как файл настроек пока пустой. Сейчас уже можно попробовать поставить галочки и сохранить настройки. Если все сделано правильно, то при обновлении страницы опции должны отметиться так, как Вы их сохранили.
Выдергивать параметры из файла настроек мы будем встроенным в UCOZ импортом удаленного кода. Создадим его.
Заходим в панель управления и проходим по следующему пути: "Дизайн" - "Импорт удаленного кода". На открывшейся странице жмем кнопку "Добавить импорт удаленной страницы". В поле "URL адрес страницы для импортирования кода" вставляем ссылку на наш файл настроек. Поле "Частота обновления кеш файла" ставим возможное минимальное значение. Обычно оно равняется 3 часам. Жмем кнопку "Добавить". Импорт готов.
Теперь запоминаем код импорта. Обычно это $RCODE_n$, где n - номер импорта. Если импорт у Вас один, то код выглядит так: $RCODE_1$. Из него и будем вытаскивать наши переменные и их значения.
Для получения значения переменной можно использовать 2 метода. Один используется для вывода значения переменной на странице (скажем, рекламный код), второй для использования в условных операторах.
Для вывода значения глобальной переменной на странице используется достаточно длинный код. Выглядит он так:
Вместо текста name в коде ставим название поля формы (атрибут name элементов формы). Меняем во всех 5-и местах кода. Название переменной name обязательно пишем в нижнем регистре.
Для использования в условных операторах можно ограничиться упрощенным кодом:
Тут также текст name в коде меняем на имя элемента формы (атрибут name). Вместо текста value используем проверяемое значение. Название переменной пишем в нижнем регистре, а value - учитывать регистр ввода в форму.
Этот вариант лучше всего использовать для <input type="checkbox">, <input type="radio"> или <select>.
В самом начале данного повествования была поставлена задача. Теперь мы можем ее решить. В месте, где выводится код рекламы пишем:
Теперь отображением рекламы можно управлять только с одной страницы сайта.
Мы научились использовать свои собственные глобальные переменные на сайте UCOZ. Стоит иметь ввиду несколько минусов такого подхода. Значение переменных не очень динамичны. Так как использовался удаленный импорт, изменения в файле будут видны только через 3 часа. Можно форсировать данную задержку. Для этого нужно войти в панель управления на страницу удаленного импорта, открыть импорт на редактирование и сохранить, не внеся никаких изменений.
Также помните, что файл настроек может содержать не более 1000 символов. В принципе, этого должно хватить с лихвой.
На этой ноте заканчиваю.
Удачи в свершениях!
Вы можете присоедениться к моему микроблогу в Твиттере @SzenProgs. Буду благодарен, если оцените мой труд, и щелкните по звездочкам ниже.
x;z-index:1 }Свои глобальные настройки (переменные) на UCOZ сайте
Инструкции
Скрипты, инструкции, справочники
Категория: | Инструкции |
Просмотрено: | 15444 |
Рейтинг: | 4.3/10 |
Дата добавления: | 2014-04-15 13:05, Вторник |
Добавил: | Szen |
Теги: | переменные, ucoz, настройки |
№ 0 | 2014-04-15 13:05 |
Szen | Здесь вы можете задать вопрос или оставить комментарий по теме "Свои глобальные настройки (переменные) на UCOZ сайте". |
Гость |