Joomla 3 + Fabrik, Урок №1

Итак, проект придуман, и спланирован, а значит пора приступать к его реализации.

Предполагается, что все необходимое из вводного урока у вас уже установлено, потому не буду отвлекаться на такие детали.

Открываем Fabrik – Списки, здесь можно видеть все основные списки (а фактически это таблицы в БД), здесь уже имеются некоторые списки созданные мною во время изучения компонента, но мы начнем сначала и создадим новый.

Задаем данные в соответствии со скриншотами:

 

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

 

Вот здесь уже интересней. Как видно, мы подключаемся к нашей базе данных и даем имя новой таблице, которая будет создана после сохранения (или можем подключиться к уже существующей). По умолчанию используется БД Joomla, с настройками из файла конфигурации, но при желании можно настроить Fabrik на использование другой базы данных, будь она на этом же хостинге, или даже к внешней. У такого подхода есть некоторые преимущества, но в большинстве случаев такой надобности нет, но если есть желание отделить свои пробные таблицы от основной базы данных можете создать новое соединение — Компоненты — Fabrik – Соединения, и использовать его.

Далее переходим в раздел Доступ.

 

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

Нажимаем — Сохранить, на следующей странице оставляем все по умолчанию и нажимаем Сохранить и закрыть. Попадаем вновь на страницу со Списками, но теперь у нас появилась новая запись с нашей таблицей.

Теперь нам необходимо добавить поля в нашу новую таблицу:

 

Тут все просто: метка — это заголовок, имя — название поля которое будет в БД, а плагин — это тип поля, но он не идентичен типам данных СУБД, а внутренний для Fabrik, с различными настройками и возможностями. В данном случае у нас простое поле ввода.

Внимательный читатель мог заметить, что поля id и date были пропущены, это связано с тем, что Fabrik создал их автоматически при создании таблицы связанной со списком Тикеты. 

Доступ устанавливаем аналогично доступу к списку (но на самом деле это необязательно, т. к. весь наш список и так ограничен, но иногда требуется разделить права)

 

Показывать в списке — означает, что данное поле будет видно на странице списка, а не только в детальном просмотре, не забывайте об этом параметре, иначе можете удивиться, когда в готовом списке увидите всего пару стандартных полей. Поля с большим содержанием текста желательно оставлять скрытыми, лучше их увидеть в подробностях, чем листать «километровую» страницу списка.

Ссылка на детальный просмотр — означает, что данное поле будет отображаться в виде ссылки, кликнув на которую, можно открыть форму детального просмотра записи.

Таким образом мы получили первое наше поле.

Переходим к следующему полю — email.

Здесь уже интересней, т. к. пользователь у нас уже зарегистрирован, то у него уже есть email, и заставлять его вводить дополнительно, нет смысла, потому мы просто возьмем его из joomla, и запишем в свою таблицу, и будем впоследствии использовать для отправки уведомлений.

 

На этой вкладке мы просто поменяем тип поля ввода на Email, и укажем, что оно только для чтения.

Остальные разделы — Доступ, как и предыдущий пример (и далее для всех остальных полей аналогично), в Настройках списка, по желанию, нужно ли вам показывать его в списке или нет, будет ли он ссылкой для детально просмотра или нет. В общем на усмотрение.

Следующее поле для уникального номера заявки.

 

Можно использовать префикс или суфикс, для «маркировки» номера. Я написал TK-, вы же можете написать все что душе угодно. Метод оставляем On Load, это означает, очередной номер будет присваиваться каждый раз когда открывается форма для добавления записи, вне зависимости, будет ли он отправлена и сохранена в базу или нет. Минус данного подхода в том, что появятся «пробелы», например:

У нас запись ТК-0001, кто-то открыл новую форму, и этой форме присвоили ТК-0002, но он не стал сохранять ее. Следующий пользователь открыл новую форму и получил уже ТК-0003, и уже он свою форму сохранил. В итоге в базе данных будет всего две записи, но вторая будет иметь «порядковый номер» - 3. Плюс же данного подхода в том, что в базе гарантированно не сможет оказаться двух записей с одним номером, а это важнее.

Следующие поля создаем так:

  • Статуc: имя – status; Плагин — databasejoin, в разделе Публикация, пока что поставим не опубликован (иначе будет выкидывать с ошибкой при открытии списка) и сохраняем как есть, к нему мы вернемся позже.
  • Тема обращения: имя — topic; Плагин — field, Настройки для списка по желанию.
  • Сообщение: имя — message; Плагин — textarea, на вкладке Расширенные можно включит WYSIWYG текстовый редактор, а на вкладке Длина отредактировать ограничение на количество символов или слов, допустимых для ввода.
  • Файлы: имя — files; Плагин — fileupload, вкладок и настроек очень много, но все они интуитивно понятны, потому не думаю, есть необходимость здесь задерживаться, выбирайте под себя, либо оставляйте по умолчанию. Главное тут определить поддерживаемые форматы файлов, и их размер, ну и желательно выбрать каталог для их хранения.

И осталось поле Пользователь:

 


Если обратить внимание на выпадающий список Данные пользователя, то можно заметить, что там есть email пользователя, и поле, которое мы ранее создали, можно было создать через плагин user.

На этом мы закончим работу с текущим списком и создадим справочник статусов.

Просто создаем новый Список с меткой Статус и именем status. Настройки все по умолчанию. Затем добавим новое поле с плагином field и именем status. Настройки по умолчанию.

Возвращаемся на главную и нажимаем напротив списка Статус — Смотреть данные.

 Добавляем нужные нам статусы:

Теперь возвращаемся к списку Тикеты. Заходим в Fabrik – Элементы. В фильтре выбираем в выпадающем списке Формы — Тикеты. И открываем поле статусы.

По умолчанию ставим просто — 1

Это будет id записи статуса. Вкладку Данные заполняем следующим образом:

В разделе Публикация, переключаем — Опубликовано. В доступе: Form (add) и Form (edit) ставим Super Users, дабы не позволять пользователю самостоятельно менять статус. Сохраняем.

И вот нам осталось создать таблицу комментирования.

Параметры списка таковы:

  • Метка — Комментарии
  • Имя таблицы fabrik_ticket_komments
  • Доступ — разрешить только просмотр и добавление группе зарегистрированных пользователей.

Сохраняем. Теперь добавляем поля

  • Метка: Тикет
  • Имя number_ticket
  • Плагин — field
  • Доступ — пользователям только просмотр.

  • Метка: Тикет
  • Имя komments
  • Плагин — textarea
  • Доступ — пользователям добавление и просмотр.

 

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

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

Давайте их поправим, а то заголовки на английском, да и лишние поля.

 


Полям fabrik_ticket_komments___id

fabrik_ticket_komments___number_ticket


Включаем параметры Невидимый (это необходимо для сокрытия их из формы добавления комментария).

Вот мы и закончили создание необходимых нам таблиц, и реализовали запланированные связи. На этом урок можно считать законченным. Можете создать несколько записей в таблицы и посмотреть, как реализуется связь между таблицами, попробовать различные настройки которые включены в плагины полей, например настроить на свой вкус отображение даты и времени добавления записи.

В следующих уроках нам еще придется доработать форму добавления записей, подключить к ней отправку уведомлений, и научиться публиковать ее на сайте.

© 2019 Akelot

Авторизация

Search