Главная | Новости | Блог | Ответы | Учебник | Правила |
Вы здесь: ГлавнаяУчебникСобытия в структурах данных
Вход | Регистрация
Всего существует 7 событий:
1. Проверка данных формы.
Событие вызывается перед добавлением данных в базу. Позволяет дополнительно обработать данные и выставить ошибки полям в случае невыполнения определенных условий.
2. Добавление записи.
Вызывается сразу после добавления записи в базу. Используется для обработки связанных данных.
3. Удаление записи.
Вызывается после удаления записи. Используется для обработки связанных данных (увеличение/уменьшение счетчиков, удаление данных).
4. Детальный вывод одной записи.
Вызывается при просмотре расширенного вывода одной записи. Используется для увеличения счетчиков просмотра страницы или для выборки дополнительных данных для вывода.
5. Вывод одной строчки в списке вывода
Вызывается для каждого выводимого элемента списка. Внимание! При большом количестве выводимых элементов и множестве действий система может очень сильно притормаживать. По возможности не используйте действия в этом событии.
6. Редактирование записи.
Вызывается после изменения записи в базе данных. Смотрите событие номер 2.
7. Вызов функцией.
Вызывается из шаблонов с помощью функций. Позволяет работать с данными без ввода данных в форму. Например, можно реализовать подтверждение подписки/отписки на мыло с помощью перехода на специальную страницу. Еще интересный способ использования - это создание простой игры "угадай число" с начислением кредитов пользователю за угадывание числа.

Действия при возникновении событий.
Существует 8 общих действий и 1 действие, работающее только с проверкой данных формы. Для каждого события можно создать несколько действий, которые будут выполняться по порядку.
1. Обновить запись.
Для работы обязательно указать структуру данных. Действие позволяет обновить запись в указанной структуре данных. Например, при добавлении нового сообщения в форум можно обновить кол-во сообщений в структуре тем форума.
2. Вставить запись.
Вставляет запись в базу указанной структуры. При создании новой темы форума можно добавить сообщение в эту тему.
3. Получить данные.
Действие позволяет получить одну запись из указанной структуры и кол-во записей подходящих под указанные параметры. Полученные данные станут доступны последующим действиям в данном событии. Обратите внимание. Выбирается только одна первая запись. Действие может использоваться при необходимости получить данные из других структур. Например, перед добавлением сообщения в форуме можно считать данные о пользователе и проверить, имеет ли он право писать в форуме. Или проверить на максимально допустимое количество добавленных сообщений в определенный промежуток времени.
4. Получение кол-ва элементов, сумм, среднего и т.д.
Действие позволяет получить данные группировок - это кол-во элементов, сумма, максимальное значение, минимальное значение, среднее значение.
5. Удалить запись.
Действие позволяет удалить запись (записи) в указанной структуре. При удалении темы можно удалить все сообщения из темы.
6. Произвольный шаблон.
Позволяет вызвать любые функции как в шаблонах. Например, можно сгенерировать случайное число и занести его в поле.
7. Отослать e-mail.
В действии можно указать e-mail, тему и сообщение с использованием шаблонов. При возникновении события можно добавить выполнение действия "отослать e-mail" несколько раз. Например, при добавление записи в гостевой отослать несколько сообщений на разные e-mail.
8. Проверка данных.
Специализированное действие для события "проверка данных формы". Позволяет с помощью условий и функций шаблонизатора дополнительно проверить данные формы и в случае необходимости вывести в форме ошибку с просьбой изменить неправильные данные.
9. PHP файл.
Действие открывает указанный php файл. Вызываемый скрипт имеет доступ к переменным и может выполнять любые действия над этими данным. Действие используется только тогда, когда невозможно реализовать нормальную реакцию с помощью предыдущих 7 действий. Для реализации необходимо обладать знаниями в php, и сайт должен размещаться на хостинге.

Давайте рассмотрим события и действия, которые необходимо прописать для создания простенького форума.
Для форума нужно 3 структуры данных: forums - список форумов, forumtopic - список тем, forumpost - сообщения.
forums может иметь 4 поля: название, описание, количество тем, дата последней темы. Событий в нем не будем создавать.
forumtopic имеет 8 полей: автор, тема, сообщение (это будет первое сообщение в теме), кол-во сообщений, кол-во просмотров, последний автор, дата последнего сообщения, статус закрытия темы.
События и действия в структуре:
1. Событие "проверка данных". Действие "проверка данных формы". Проверяем на минимальное и максимальное количество символов в названии темы.
2. Событие "добавление записи". Действия "вставить запись в forumpost" - вставляет первое сообщение в тему, "обновить запись forums" - обновляет количество тем в структуре forums.
3. Событие "детальный вывод записи". Действие "обновить запись (текущая)" - обновляет количество просмотров в структуре forumtopic (т.е. структура обновляет собственные данные).
4. Событие "удаление записи". Действие "удаление записи forumpost" - удаляет все сообщения из удаленной темы.
forumpost может иметь 4 поля: автор, сообщение, дата добавления, признак закрытости темы (можно выводить только автору темы).
События и действия в структуре:
1. Событие "добавление записи". Действие "обновить запись forumtopic" - обновление количества сообщений в теме, даты и автора последнего сообщения, признак закрытия темы.
2. Событие "удаление записи". Действие "обновить запись forumtopic" - обновление количества сообщений в теме.
Здесь еще можно добавить дополнительные действия для обработки удаления последней записи, для смены последней даты и автора сообщения. Для этого использовать действие "получить данные", но это оставим для тех, кто всерьез решил создать хороший сайт.

Еще один пример использования событий. Необходимо сделать регистрацию в систему только по пригласительным.
Для этого кроме структуры регистрации users нужно создать структуру для хранения пинкодов. В структуре пинкодов (pin) 2 поля: пин-код и id зарегистрированного по нему пользователя.
В структуре users также есть поле pincod, которое будет заполняться при регистрации.
С точки зрения событий это выглядит так:
1. Событие "проверка данных users", действие "проверка данных" из структуры пинкодов. При регистрации пользователь вводит пин-код, а событие проверяет, есть ли такой неиспользованный пинкод.
2. Событие "добавление записи", действие "обновить запись pin".
При вводе данных проверится существует ли неиспользованный пинкод. Если существует, то выдать ошибку. Если существует, о при добавлении данных в структуру users, событие обновляет данные записи этого пинкода.
О нас | Написать нам | Сообщить о правонарушении |

Создать свой сайт © Конструктор сайтов Letnick.com 2006-2017