Перейти к содержанию
  • Загрузка Файлов в Контроллере OpenCart


    Загрузка файлов в контроллер

    В платформе OpenCart MVC-L контроллер вашего модуля является связующим звеном, соединяющим файлы языка, модели и шаблона друг с другом. Контроллер отвечает за захват текста, содержащегося в языковом файле, и обеспечение его доступности в качестве переменных PHP в файле шаблона представления. В дополнение к наследованию функций, доступных в родительском классе контроллера, Controller, вы также можете загрузить любые файлы моделей OpenCart по умолчанию и их функции в контроллер. В этой документации мы покажем PHP-код, необходимый для загрузки файлов языка, модели и их функций.

    Загрузка языкового файла в Контроллере

    Контроллер выводит текст, хранящийся в языковом файле, и превращает его в переменные, которые могут быть воспроизведены в файле шаблона для отображаемого текста. Это особенно полезно для управления переводами вашего модуля. Вместо того, чтобы менять свой .файл tpl каждый раз, когда у вас есть новый перевод для изменения различных фрагментов текста внутри файла, вам просто нужно изменить текст в вашем языковом файле, и переменные в контроллере и шаблоне останутся такими же, как раньше.

    Приведенный ниже фрагмент кода загрузит языковой файл внутри контроллера вашего модуля. Внутри круглых скобок вам нужно будет указать путь к языковому файлу из языковой папки.

    $this->load->language('module/my_module');

    Важно помнить, что контроллер администратора будет загружать только файл языка администратора, но не языковой файл каталога; и точно так же контроллер каталога будет загружать только языковой файл каталога. После того, как языковой файл будет загружен в контроллер,вы можете сохранить его текст в переменной php с использованием массива $data. $this->language->get('text') захватит текст из переменной $_['text'] внутри языкового файла.

    $this->data['text'] = $this->language->get('text');

    $this->language->get('text') захватит текст из переменной $_['text'] внутри языкового файла, который мы только что загрузили выше. Каждый элемент массива данных будет преобразован в свою собственную переменную. $data ['text'] станет $text для файла шаблона внутри представления. Переменная $text может jnj,hf;fnmcz в файле представления .tpl, где это необходимо:

    <p><?php echo $text; ?></p>

    Подгрузка заголовка тайтла

    Следующий код установит текст из языкового файла в качестве заголовка страницы:

    $this->document->setTitle($this->language->get('heading_title'));

    Это приведет к захвату текста переменной $_['heading_title'], хранящейся в языковом файле модуля.

    Если вам нужно, чтобы текст хранился как переменная сеанса php, используйте

    $this->session->data['text'] вместо $this->data['text'].

    Загрузка файлов моделей

    Загрузка файлов модели в файл контроллера позволит вашему модулю использовать встроенные функции OpenCart. Функции внутри файлов модели взаимодействуют с базой данных магазина и позволяют добавлять / извлекать важную информацию для вашего модуля. Мы рекомендуем вам воспользоваться этими функциями, а не создавать собственные запросы к БД. Потратьте некоторое время на изучение папок модели в файлах администратора и каталога, чтобы увидеть, какие файлы могут принести пользу вашему модулю. Например, если вашему модулю необходимо извлечь информацию о товаре из базы данных магазина, будет полезно загрузить admin/model/catalog/products.php файл, так как он уже имеет множество полезных, встроенных функций, которые взаимодействуют с товарами магазина в базе данных.

    Ваш модуль может загрузить любой файл модели в свой файл контроллера, используя следующий код, при условии, что они находятся в той же папке администратора или каталога, что и контроллер.

    $this->load->model('setting/setting');

    Вам нужно будет указать путь к файлу, который вы хотите загрузить из папки администратора, в скобках. Приведенный выше код загрузит класс settings, чтобы у нас был доступ к функциям в классе ModelSettingSetting в файле контроллера нашей модели. Используйте следующий формат кода для вызова функции из загруженного файла модели:

    $this->model_setting_setting->editSetting('my_module', $this->request->post);

    Подчеркивания относятся к обозначениям файлов для model/setting/setting.php. Если у вас есть файл модели, включенный для вашего модуля, ваш код будет следовать формату, указанному выше, так как файл модели загружается в папку model.

    $this->load->model(module/my_module.php);
    $this->model_module_my_module->myFunction();

    Приведенный выше код загрузит my_module.php, хранящийся в папке admin/model/module/my_module.php.

    Вместо пробелов в именах файлов для вашего модуля используйте символы подчеркивания.

    Загрузка файлов шаблонов

    В контроллере вам нужно будет загрузить файл шаблона вашего модуля в представление. Для этого установите $this->template следующим образом:

    $this->template = 'module/my_module.tpl';

    Загрузка файлов библиотеки

    Каталог OpenCart содержит коллекцию файлов библиотек, доступ к которым могут получить как администратор, так и файлы контроллера каталога. Эти файлы находятся в разделе system/library в корневой папке магазина OpenCart. В примерах кода, показанных при загрузке языкового файла, как $this->load->language, так и $this->document предоставляют доступ к функциям в файлах language.php и document.php в папке библиотеки. Если вы хотите получить доступ к функции в файле библиотеки, вам нужно вызвать ее с помощью $this->[insert library file name]->function() в классе контроллера.

    Дополнительная информация

    Дополнительные сведения о концепции поведения контроллера в рамках MVC framework или в контексте разработки модуля для OpenCart смотрите в разделе Разработка модулей .



×
×
  • Создать...