Вход • Регистрация

Непонятная особенность diafan..

  • 24 июня 2012 г. , редакция: 24 июня 2012 г.
  • Занялся созданием модуля и столкнулся с непонятной для меня особенностью этой системы.. Как мне через url обратиться к функции в контроллере ?

    Например:

    http://site.ru/module/

    Запускает контроллер модуля module.php и выполняется функция init, ну а вместе с ней и выводится вьюшка..

    Нужно:

    http://site.ru/module/function/param

    Как перехватывать обращение к этой функции и передавать ей параметры?
    • 25 июня 2012 г.
    • В init можно объявить $this->rewrite_variable_names это переменные которые будут поступать из url
      Весь список возможных переменных задается в файле /includes/init.php

      public $rewrite_variable_names_all = array('cat', 'param', 'show', 'page', 'year', 'month', 'day', 'step', 'sort', 'add', 'edit');

      Смысл таков - site.ru/module/show2 $this->diafan->show = 2

  • 25 июня 2012 г. , редакция: 25 июня 2012 г.
  • Здесь логика немного другая. Вызовом функций в моделе занимается функция init() файла [имя модуля].php. Cтавим условие реагирующее на состояние переменных

    Код
    $this->rewrite_variable_names = array('page', 'show', 'cat', 'sort', 'param');


    Код
    if ($this->diafan->param)
    {
    $model->list_param();
    }
  • 25 июня 2012 г. , редакция: 25 июня 2012 г.
  • Понял, спасибо.

    Теперь немного другой вопрос:

    в функцию init прописываю:
    Код

    $this->rewrite_variable_names = array('action');

    Далее условие:
    Код

    if ($this->diafan->action)
    {
    echo '123';
    }


    Но это условие срабатывает только если я передаю какой-нибудь параметр для action, например:
    Цитата
    http://site.ru/module/action123

    а как сделать, чтобы условие срабатывало даже если параметр не передан? то есть:
    Цитата
    http://site.ru/module/action
    • 25 июня 2012 г.
    • И чтобы не создавать отдельных тем, спрошу здесь..

      Есть модуль, который работает с таблицей example. Есть также таблица example_param в которой есть поле id_example. Вопрос: Как при удалении записи с таблицы example, через панель администратора, удалять и её запись из example_param по полю id_example ?
    • 25 июня 2012 г.
    • К стати да, вот это особенность совсем не нравится. Уже не раз у себя сталкивались с этим, приходилось городить костыли с htaccess и прочей ерундой.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум