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

Как сохранить имя загружаемого файла в таблицу config

  • 05 августа 2019 г. , редакция: 06 августа 2019 г.
  • Собственно, ситуация такая: создаю в конфиге модуля поле для загрузки файла

    Код
    'file' => array(
    'type' => 'function',
    'name' => 'Файл',
    'help' => '',
    ),


    Через функцию edit_config_variable_file вывожу поле для загружки файла <input type="file" name="file" class="file">

    В функции save_config_variable_file произвожу монипуляции по сохранению файла в нужное место. А так же хочу сохранить имя файла в таблицу config. Тут же в save_config_variable_file сохраняю это имя с помощью $this->diafan->configmodules(), ну или можно запрос к БД, не важно. Но, не сохраняется. Точнее, если остановить отладчиком на этой функции, то сохраняется. Потом же видимо происходит еще раз пересохранение всех полей config второй раз и это поле затирается.

    Как тут быть, что можно сделать?
    • 05 августа 2019 г.
    • А для записи в базу, там надо прописывать все поля прописывать, у тебя так?

      Код
      $this->diafan->configmodules($name, $module_name, $site_id, $lang_id, $value)

      Код
      string $name: имя переменной в конфигурации
      string $module_name: название модуля
      integer $site_id: раздел сайта
      integer $lang_id: номер языковой версии
      boolean $value: новое значение
      • 05 августа 2019 г. , редакция: 05 августа 2019 г.
      • Да. Ну и я же пишу, все записывается. Просто потом затирается основной функцией сохранения полей, видимо.
        • 05 августа 2019 г.
        • Глянь например как картинка печати сохраняется в модуле где безналичный счет выставляется.
          • 05 августа 2019 г.
          • Там имя файла не сохраняется никуда. Там просто файлу печати задаётся имя и потом по этому имени выводится.
            • 05 августа 2019 г.
            • А не проще тогда создать ***.action.php и в нем обработать $_FILE и записать там в базу
              • 06 августа 2019 г.
              • Не совсем понятно как, action вроде как для обработки POST запросов. И вроде бы из файла config он не получает ничего
              • 06 августа 2019 г.
              • Ну так файл ты формой отправляешь?

                В файле your_module.admin.php

                Ты же можешь обрабатывать все $_GET, _POST, $_FILE и перенапралять на нужную функцию в модельку или action
  • 06 августа 2019 г.
  • Цитата
    В файле your_module.admin.php

    Не, в том то и дело, что мне надо это сделать в файле your_module.admin.config.php - это интерфейс настроек модуля.
  • 06 августа 2019 г.
  • Получается что переопределенная функция save_config_variable_file выполняется до выполнения основной функции save полей конфигурации и записанные ей данные в таблицу стираются.
  • 06 августа 2019 г.
  • Разобрался

    Есть функции:
    $this->diafan->set_query();
    $this->diafan->set_value();

    В которые передается поле и нужное значение текущей редактируемой таблицы.

Новости

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

Форум