Перейти к содержанию
  • В связи с блокировкой банка QIWI оплата через сайт не возможна.
    Для оплаты и получения дополнений просьба писать в личные сообщения
    Admin*у
    После оплаты Вам так же будет доступно скачивание дополнений и обновлений на данном форуме

Загрузка Файлов в Контроллере 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 смотрите в разделе Разработка модулей .

 
 
Ссылка на комментарий
  • Это тема был закреплено и закрыто
  • тема был открыт

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...