Перейдем в каталог ext/wforum/models/. Многие файлы, созданные по умолчанию, не требуют каких-либо изменений. Необходимо поменять код основных 4 файлов модели – index.php, forums.php, topics.php, posts.php. Поменяйте все содержимое файлов на содержимое файлов из архива модуля Учебный пример форума, который вы скачали на сайте - http://www.wad-er.com/download.
Файл index.php формирует список категорий (метод getCategories()), список форумов внутри категорий (метод getForums()) и список последних сообщений пользователей (метод getLastposts()).
Файл forums.php обеспечивает работу с таблицей БД wforum_forums (форумы). Обратите внимание, что это - наследник wPrototype.
Метод _onBeforeInsert() срабатывает перед добавлением форума и устанавливает значения для полей creatby, creaton и присваивает роль модератора пользователю, который добавил форум.
Метод _onUpdate() работает при обновлении форума и загружает аватар пользователя, который добавил сообщение.
Файл topics.php – обеспечивает работу с таблицей wforum_topics (темы форума). Обратите внимание, что класс - наследник wPrototype.
Метод getTopics() формирует список тем форума.
При добавлении новой темы модератор форума получает извещение по почте:
$pars = array('to' => $a[5], 'subject' => strip_tags($this->parser->gt('subjnewtopic', '', $a[6])), 'message' => $this->parser->gt('messnewtopic', '', $topicref, $a[6]) ); $this->parser->utils->sendMail($pars);
Создадим еще один файл модели – posts.php. В нем будет отображена вся бизнес-логика работы с сообщениями пользователей. Снова скопируйте код из файла архива Учебного примера форума.
Метод getPosts() формирует список сообщений форума.
Метод _onDelete() срабатывает при удалении записи.
protected function _onDelete() { $this->calcTopic(); //пересчет количества сообщений в теме $this->calcForum(); //пересчет количества сообщений в форуме return ''; }