Jump to content
Sign in to follow this  
VickoF

[Решено] Вызов из консоли метода из класса контроллера

Recommended Posts

Добрый день. У меня в классе продукта есть метод кототрый импортирует нужные товары, записей много и постоянно выскакивает ошибка таймаута. Решено запускать скрипт через консоль по ssh. Подскажите как в таком случае вызвать нужный контролер и в нем метод? Кто занимался подобным?

Edited by VickoF

Share this post


Link to post
Share on other sites

если это версия 2.3 движка посмотрите \system\framework.php
если 2.1, то index.php в корне

Share this post


Link to post
Share on other sites
1 час назад, thentru сказал:

если это версия 2.3 движка посмотрите \system\framework.php
если 2.1, то index.php в корне

Версия ocStore 2.3.0.2.3

Share this post


Link to post
Share on other sites
4 часа назад, VickoF сказал:

Добрый день. У меня в классе продукта есть метод кототрый импортирует нужные товары, записей много и постоянно выскакивает ошибка таймаута. Решено запускать скрипт через консоль по ssh. Подскажите как в таком случае вызвать нужный контролер и в нем метод? Кто занимался подобным?

Попробуйте вот это - https://github.com/iSenseLabs/oc_cli
обращение к контроллеру OC из консоли .

Скажу честно, попробовал мельком, не стал глубже копать - импорт - экспорт делаю своими скриптами через PHP PDO.
 

  • +1 1

Share this post


Link to post
Share on other sites
27 минут назад, Pirks сказал:

Попробуйте вот это - https://github.com/iSenseLabs/oc_cli
обращение к контроллеру OC из консоли .

Скажу честно, попробовал мельком, не стал глубже копать - импорт - экспорт делаю своими скриптами через PHP PDO.
 

а если контроллер в админке? есть возможность прикрутить авторизацию?

Share this post


Link to post
Share on other sites
28 минут назад, VickoF сказал:

а если контроллер в админке? есть возможность прикрутить авторизацию?

поленились перейти по ссылке и почитать да?

 

Share this post


Link to post
Share on other sites
2 часа назад, VickoF сказал:

а если контроллер в админке? есть возможность прикрутить авторизацию?

А вот тут поподробнее, зачем? 
Вроде вы уже и так по ssh на сервере, уже пробились  через все блокпосты. )

И как правильно говорит коллега выше, там, на гитхабе вот такое видно
image.png.32c620b4d0e25404b378e8af5101aa73.png

Edited by Pirks

Share this post


Link to post
Share on other sites
45 минут назад, Pirks сказал:

А вот тут поподробнее, зачем? 
Вроде вы уже и так по ssh на сервере, уже пробились  через все блокпосты. )

И как правильно говорит коллега выше, там, на гитхабе вот такое видно
 

 да, спасибо, все получилось.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Gilbert
      http://tovarnadom-sharan.ru/ в консоли есть 2 ошибки, как их исправить? Помогите, пожалуйста.
       

    • By dmtrysh7
      Доброго времени суток.
       
      Есть задача:
      Необходимо настроить в админ панели выбор картинки для слайдера. Слайдер - отдельный модуль.
       
      Код контроллера admin/controller/module/slider.php:
      <?php class ControllerModuleSlider extends Controller { private $error = array(); // используется для установки ошибки, если такая возникла public function index() { $this->load->language('module/slider'); //подключаем языковой файл $this->document->setTitle($this->language->get('heading_title')); $this->load->model('setting/setting'); //подключаем модель setting, он позволяет сохранять настройки модуля в БД if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { // если мы нажали "Сохранить" в панели, мы сохраняем текущие настройки $this->model_setting_setting->editSetting('slider', $this->request->post); // анализ и передача данных в Setting Model для сохранения в базе данных $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); // редирект в Module Listing } // объявление переменных // формирование breadcrumbs // обработка ошибок из validate() // статус модуля // обработка текстовых полей // тут работа с изображением (пока что пробую сделать это с одним изображением) $this->load->model('tool/image'); if (isset($this->request->post['config_image1'])) { $data['config_image1'] = $this->request->post['config_image1']; } else { $data['config_image1'] = $this->config->get('config_image1'); } if (isset($this->request->post['config_image1']) && is_file(DIR_IMAGE . $this->request->post['config_image1'])) { $data['thumb1'] = $this->model_tool_image->resize($this->request->post['config_image1'], 100, 100); } elseif ($this->config->get('config_image1') && is_file(DIR_IMAGE . $this->config->get('config_image1'))) { $data['thumb1'] = $this->model_tool_image->resize($this->config->get('config_image1'), 100, 100); } else { $data['thumb1'] = $this->model_tool_image->resize('no_image.png', 100, 100); } $data['placeholder'] = $this->model_tool_image->resize('no_image.png', 100, 100); // далее завершающая часть (setOutput ) } protected function validate() { // проверка прав доступа пользователя для работы с модулем if (!$this->user->hasPermission('modify', 'module/category')) { $this->error['warning'] = $this->language->get('error_permission'); } // проверка заданы ли текстовые поля if (!$this->request->post['config_image1']) { $this->error['code'] = $this->language->get('error_code'); } return !$this->error; } }  
      Кусок кода представления  admin/view/template/module/slider.tpl:
      <div class="form-group"> <label class="col-sm-2 control-label" for="input-image"><?php echo $entry_image; ?></label> <div class="col-sm-10"><a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb1; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></a> <input type="hidden" name="config_image1" value="<?php echo $config_image1; ?>" id="input-image" /> </div> </div>  
      Кусок кода catalog/controller/module/slider.php:
      <?php class ControllerModuleSlider extends Controller { public function index() { $this->load->language('module/slider'); //подключаем любой языковой файл $data['heading_title'] = $this->language->get('heading_title'); //объявляем переменную heading_title с данными из языкового файла $data['slider_slide1_span'] = $this->config->get('slider_slide1_span'); $data['slider_slide2_span'] = $this->config->get('slider_slide2_span'); $data['slider_slide3_span'] = $this->config->get('slider_slide3_span'); $data['slider_slide4_span'] = $this->config->get('slider_slide4_span'); $data['slider_slide1_bold'] = $this->config->get('slider_slide1_bold'); $data['slider_slide2_bold'] = $this->config->get('slider_slide2_bold'); $data['slider_slide3_bold'] = $this->config->get('slider_slide3_bold'); $data['slider_slide4_bold'] = $this->config->get('slider_slide4_bold'); $data['config_image1'] = $this->config->get('config_image1'); //стандартная процедура для контроллеров OpenCart, выбираем файл представления модуля для вывода данных if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/slider.tpl')) { return $this->load->view($this->config->get('config_template') . '/template/module/slider.tpl', $data); } } }?>  
      Кусок кода catalog/view/template/module/slider.tpl:
      <div class="main_title slide" > <img src="<?php echo $config_image1; ?>" alt="<?php echo $slider_slide1_span . ' ' . $slider_slide1_bold; ?>"> <div class="container--small"> <div class="title_text"> <span><?php echo $slider_slide1_span; ?></span> <h1><?php echo $slider_slide1_bold; ?></h1> </div> </div> </div>  
      Проблема в том, что в представление catalog/view/module/slider.tpl $config_image1 передаётся как (unknown). Есть мысли, что это из-за модификации имён переменных, т.к. они участвуют в AJAX запросах. 
       
      Подскажите, пожалуйста, почему приходит (unknown)?
      Не использую модель, т. к. с текстовыми полями это работает и по аналогии (из setting.php) пытаюсь сделать с картинкой.
    • By Ronni10
      Как в /catalog/model/extension/total/shipping.php обратиться к продуктам в корзине? K $this->cart->getProducts(). Opencart 2.3
    • By Granled
      Здравствуйте составил вот такой запрос к базе данных (необходимо иметь возможность быстро редактировать сумму заказа из формы заказа):
      $tsum = $this->db->query("SELECT total FROM oc_order WHERE order_id=414");
      Как подставить в него id мне более менее понятно, сама база с запроса возвращает правильные данные.
      Вопрос - правильно ли я сделал запрос, так как шаблон переменную не возвращает. Пишет Undefined variable , как ее сделать правильно?
      И вообще можно ли лезть в базу данных с контроллера, или только в модели?
    • By Granled
      Нужно прописать и вывести в админку новую переменную, конкретно в форме изменения заказа (версия 2.3)
      Вроде бы все просто, берем контроллер /admin/controller/sale/order.php и пишем в нем к примеру data['переменная'] = $this-> 'значение'; после public function getForm() {
      Далее пишем в файле шаблона <?php echo $переменная; ?> и дело сделано, переменная обозначена. Но я видимо делаю что то не так, так как вижу Notice: Undefined variable.
      Что я делаю не так и как это сделать правильно?
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.