Автор Тема: Хранение и использование одиночных данных на сайте MODx  (Прочитано 3279 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sadex13

  • Разработчик
  • *****
  • Сообщений: 1097
    • Просмотр профиля
  • Версия modx: Evo 1.0.6, ClipperCMS 1.2.6
Нередко на сайте MODx необходимо использование одиночных данных, таких как курсы валют (доллар, евро и т.д.), названия компаний, номера телефонов, адреса, имена, и т.д. Такие данные могут применяться относительно редко и могут быть произвольно разбросаны по разным документам сайта.

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

Для решения проблемы пока мне пришло в голову два возможных способа, один – с использованием средств MODx, другой – с дополнительным применением средств PHP.

Способ 1. Создание TV для пустого шаблона

Проделываем следующие шаги

* Создаём шаблон с пустым содержимым (не blank а именно обычный шаблон без содержимого).
* Назначаем этому шаблону необходимые TV с соответствующим типом.
* Создаём документ на базе данного шаблона. Заполняем TV.

Все, дело сделано. Теперь значения этих TV – наши одиночные данные – могут быть доступны для любого произвольного доку-мента сайта, например через сниппет в котором мы легко можем получать и выводить значения этих TV там, где нам нужно, про-водя с ними, при необходимости, нужные преобразования. Эти TV также легко модифицируются, дополняются и удаляются в админке сайта.

Доступ к TV документа из скрипта сниппета – типовой случай, описан в документации MODx.

Способ 2. Создание модуля для работы с таблицей одиночных данных (ТОД)

Создать модуль, который создаст таблицу одиночных данных (ТОД) в БД MySQL, и через который эти данные можно будет до-полнять, удалять и модифицировать. В этом модуле должна быть форма для добавления, модификации и удаления наших одиночных данных в ТОД. Делать это можно простыми SQL-запросами, также с применением средств PDO и xPDO.

Эти данные могут быть доступны для любого документа сайта например, через скрипт сниппета, в котором простым запросом SELECT делается выборка нужных значений из ТОД, далее они могут используются в необходимых преобразованиях и выводится на страницу сайта.

Второй способ, конечно, затратнее по времени и требует создания модуля средствами MODx и PHP. Но он оптимальнее.

В рунете имеется немало примеров, как описанная выше задача может быть реализована средствами PHP.

Вопросы, критику, дополнения – прошу сюда.
FluxBB (PHP/MySQL) - легкий и быстрый форум для MODX с открытым кодом, минимальные требования к ресурсам.

Оффлайн Dolce

  • Создатель
  • ***
  • Сообщений: 130
    • Просмотр профиля
  • Версия modx: EVO | REVO
Я бы все же по отсутствию знаний, хотел бы воспользоваться первым способом. Создать шаблон, тв, вписать курс все понятно. Ну что мне делать дальше, как мне провести математическое действие с ценой и курсом? можно пожалуйста пошаговую инструкцию по типу
1)создаем сниппет.
2) В код сниппета вписывае -(<?php сам код ?>), называем - KURS
2) в шаблоне, там где нужен вывод цены пишем - [[+RURS+]].
Ну то есть подробный мануал для таких как я=))

Оффлайн sadex13

  • Разработчик
  • *****
  • Сообщений: 1097
    • Просмотр профиля
  • Версия modx: Evo 1.0.6, ClipperCMS 1.2.6
Этот топик рассматривает общий вопрос - "Хранение и использование одиночных данных на сайте MODx". И в нем я планировал обсуждать именно способы решения этого общего вопроса.

Ваш случай частный, потому и давайте его подробно обсуждать в вашем топике
http://it-folio.ru/forum/index.php?topic=181.15

А сюда Вам тоже полезно заглядывать - может кто что интересное напишет.
FluxBB (PHP/MySQL) - легкий и быстрый форум для MODX с открытым кодом, минимальные требования к ресурсам.