Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Принципы

Почти все параметры ЛК, отвечающие за конкретную функциональность настраиваются, через отдельные программные сущности — виджеты. Основная особенность виджета — он может быть настроен индивидуально под каждого клиента. Для каждого виджета в ЛК существует программная обвязка. Так, каждому типу виджета соответствует класс на ruby, а каждому объекту виджета — объект класса. В данный момент все настройки виджеты получают из YML-файлов. Формат настроек в файле индивидуален для каждого типа виджета, но существует общая часть.

Конфигурационные файлы

В качестве конфигурационных файлов для виджетов используются все YML-файлы в директориях $latera_default/widgets, $latera_client/widgets, $server_client/widgets (файлы объединяются именно в таком порядке). Каждый файл после считывания преобразуется в ruby-объекты класса Hash, которые затем рекурсивно объединяются.

Например, виджет ссылок на главной странице может быть сконфигурирован следующим образом. В файле $latera_default/widgets/navigation_links.yml содержатся настройки инсталляции по умолчанию.

$latera_default/widgets/navigation_links.yml
navigation_links:
  index:
    personal_data:
      position: 1
      icon: profile
      links: [passwords, notifications_subscription]

Ключ «navigation_links» обозначает тип виджета. Он совпадает с названием файла, хотя в общем случае этого не требуется (но настоятельно рекомендуется). Вложенный ключ «index» обозначает конкретный объект виджета. В данном случае объект index используется на главной странице ЛК (это предопределенное поведение). К нему может быть добавлен файл $latera_client/widgets/navigation_links.yml со следующим содержимым:

$latera_client/widgets/navigation_links.yml
navigation_links:
  index:
    actions:
      position: 1
      links: [friends]
    personal_data:
      position: 2

При загрузке веб-сервера приложение объединит два файла в следующую структуру (она никуда не записывается, а хранится в памяти и используется приложением):

navigation_links:
  index:
    actions:
      position: 1
      links: [friends]
    personal_data:
      position: 2
      icon: profile
      links: [passwords, notifications_subscription]

Объекту виджета будет доступна следующая информация:

actions:
  position: 1
  links: [friends]
personal_data:
  position: 2
  icon: profile
  links: [passwords, notifications_subscription]
  • No labels