Наверх

Подключение

Для того чтобы использовать модуль в других модулях, в файле modules/модуль/модуль.inc.php описывается класс Модуль_inc.

Обращение к подключению модуля происходит через переменную $this->diafan->_модуль. При первом обращении к переменной создается экземпляр класса Модуль_inc.

Класс подключения наследует класс Model, описанный в файле includes/model.php. Его описание смотрите в разделе «Модель».

В моделе модуля можно обратиться к публичным функциям подключения модуля через переменную $this->inc.

Для примера, давайте реализуем получение новости по её идентификатору из любого места в DIAFAN.CMS.

Для этого создадим в папке modules/news/ файл news.inc.php.

Пример:

<?php
class News_inc extends Model
{
    
/**
    * Получение новости
    * @param int $id идентификатор новости
    * @return array или null если новости нет
    */
    
public function get($id)
    {
        
$row = DB::query_fetch_array("SELECT [name], [anons] FROM {news} WHERE id=%d AND [act]='1' AND trash='0'", $id);

        return
$row;
    }
}

Проверим наш метод в файле modules/shop/shop.model.php в функции get_result(), которая возвращает результаты, сформированные в модели shop. Допишем:

Пример:

$this->result["news"] = $this->diafan->_news->get(1);
print_r($this->result["news"]);
exit;

Перейдя на страницу каталога, мы должны увидеть нашу новость под идентификатором 1.

Ваши комментарии и дополнения

Видимо пример устарел, не срабатывает на новой версии. Побывал на версии 5.3.6.2
судя по var_export($row, TRUE) - значение $row в class News_inc равно null.
Не плохо бы попробовать пример на новой версии движка.
Andrey, действительно была опечатка. Исправили.
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.