Перейти к содержанию
EliasKoch

Как передавать данные между контроллерами

Рекомендуемые сообщения

Доброго времени суток, вызываю в контроллере функцию через ajax 
 

 public function catalog_refresh() {
            $catalog_refresh= $this->load->controller('common/catalog_refresh');
            $this->response->setOutput($catalog_refresh);
        }

как мне в контроллер catalog_refresh передать некую переменную?

сам контроллер вот

<?php

    class ControllerCommonCatalogRefresh extends Controller
    {
        public function index()
        {

            $this->load->model('catalog/product');
.........

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
public function controller($route, $data = array()) {

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, fanatic сказал:

public function controller($route, $data = array()) {

 

чет я не совсем понял эту функцию я прикручиваю в свой контроллер и...? я вот хочу что вот вроде этого

 public function catalog_refresh() {
            $catalog_refresh= $this->load->controller('common/catalog_refresh',data=array());
            $this->response->setOutput($catalog_refresh);
        }

и дальше я работаю с данными в контроллере

<?php

    class ControllerCommonCatalogRefresh extends Controller
    {
        public function index($data)
        {

            $this->load->model('catalog/product');
			my_perem=data['..'];
//и т.д.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подобный пример есть в движке.

Смотрите как загружаются модули и передаются настройки
catalog\controller\common\column_left.php
 

$output = $this->load->controller('extension/module/' . $part[0], $setting_info);

и далее, например
catalog\controller\extension\module\bestseller.php
 

public function index($setting) {

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, thentru сказал:

Подобный пример есть в движке.

Смотрите как загружаются модули и передаются настройки
catalog\controller\common\column_left.php
 


$output = $this->load->controller('extension/module/' . $part[0], $setting_info);

и далее, например
catalog\controller\extension\module\bestseller.php
 


public function index($setting) {

 

Спасибо за наводку, посмотрю!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 минут назад, EliasKoch сказал:

$this->response->setOutput($catalog_refresh);

Это лишнее

результат работы контроллера, уже выведет родительский контроллер

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое очень помогли!!! как вам плюсануть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Techno1og
      Заметил в метрике странные метаморфозы - некоторые информационные страницы, то выпадают из поиска, то появляются,хаотично. Хочу найти связь данного явления со своими действиями или действиями модулей, нужно понять к какому модулю принадлежит этот кусок кода и что он выполняет?
       
      У страницы https://site.ru/dostavka.html
      изменился статус в поиске.
      Старый статус: В поиске
      Новый статус: Запрещено элементом noindex
       
      В controller/information.php :
         
       
    • От Snoop3000
      Добрый день всем. Делаю свою страницу вывода нужной информации на печать, где надо вывести данные с \admin\controller\sale\order.php. Оттуда все что мне надо я вытянул, но не могу добраться до фото товара (отдельно контроллера своего нету, делаю все через order.php).
      То есть, создана таблица, где должна быть фото товара и его параметры. Что только не пробовал, даже добавил в order.php контроллер:
      $this->load->controller('catalog/product'); $data['kartinka'] = $product['image']; Но в файле info.tpl и дальше $kartinka просто пустое значение
      <img src="<?php echo $kartinka; ?>" style="float:left"> Моих знаний не хватает, я не могу понять как передать простое значение $product['image'] в другое место, отличающее от product.tpl.
    • От GoldenScrew
      Здравствуйте,
      создавая свой контроллер, подключил загрузил в него уже существующий
       
       
      в подключенном контроллере есть переменная
       
       
      как теперь мне получить значение переменной $data['test']?
    • От EliasKoch
      Доброго времени суток. стоит задача: имеется некторый контроллер в нем есть переменная 
      $data['payment'] = $this->load->controller('payment/moneta); в нее подгружается контроллер менета.php
      Сам контроллер вот такой
      <?php class ControllerPaymentPayanywayMoneta extends Controller { public function index() { $data['button_confirm'] = $this->language->get('button_confirm'); $data['continue'] = $this->url->link('checkout/success'); $this->load->model('checkout/order'); $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']); $this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $this->config->get('config_order_status_id')); $mnt_id = $this->config->get('payanyway_mnt_id'); $order_id = $this->session->data['order_id']; $currency = $this->config->get('payanyway_mnt_currency_code'); $mnt_test_mode = $this->config->get('payanyway_mnt_test_mode'); $mnt_dataintegrity_code = $this->config->get('payanyway_mnt_dataintegrity_code'); $amount = $this->currency->format($order_info['total_with_koef'], $currency, '', false); $amount = number_format($amount, 2, '.', ''); $signature = md5("{$mnt_id}{$order_id}{$amount}{$currency}{$mnt_test_mode}{$mnt_dataintegrity_code}"); $data['action'] = "https://{$this->config->get('payanyway_mnt_server')}/assistant.htm"; $data['mnt_id'] = $mnt_id; $data['order_id'] = $order_id; $data['currency'] = $currency; $data['amount'] = $amount; $data['mnt_signature'] = $signature; $data['mnt_test_mode'] = $mnt_test_mode; $data['paymentSystemUnitId'] = 1015; $data['mnt_success_url'] = $this->url->link('payment/payanyway/success'); $data['mnt_fail_url'] = $this->url->link('checkout/checkout', '', 'SSL'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/payanyway_moneta.tpl')) { return $this->load->view($this->config->get('config_template') . '/template/payment/payanyway_moneta.tpl', $data); } else { return $this->load->view('payment/payanyway_moneta.tpl', $data); } } } ?> Хочу обратить внимание на строку
      $amount = $this->currency->format($order_info['total_with_koef'], $currency, '', false); Здесь берутся данные из бд.(это код оплаты заказа). во время заказа "динамически" в бд меняется Цифра ['total_with_koef'] но при вновь выполнении  $data['payment'] = $this->load->controller('payment/moneta);     берутся не обновленные данные а загруженные впервый раз. Как мне получчить обновленные данные?
    • От userAT
      Всем привет, подскажите где конструкция которая отвечает за левое вертикальное меню, нужно в общем что бы при клике на подкатегорию оно оставалось открытым, может кто сталкивался с такой проблемой, оно на данный момент постоянно захлопывается..
      <?php class ControllerExtensionModuleCategory extends Controller { public function index() { $this->load->language('extension/module/category'); $data['heading_title'] = $this->language->get('heading_title'); if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } if (isset($parts[0])) { $data['category_id'] = $parts[0]; } else { $data['category_id'] = 0; } if (isset($parts[1])) { $data['child_id'] = $parts[1]; } else { $data['child_id'] = 0; } if (isset($parts[2])) { $data['child2_id'] = $parts[2]; } else { $data['child2_id'] = 0; } $this->load->model('catalog/category'); $this->load->model('catalog/product'); $result_all_categories = $this->cache->get('octemplates.module_category.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $this->config->get('config_customer_group_id')); if (!$result_all_categories) { $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $children_data_level2 = array(); $children_level2 = $this->model_catalog_category->getCategories($child['category_id']); foreach ($children_level2 as $child_level2) { $data_level2 = array( 'filter_category_id' => $child_level2['category_id'], 'filter_sub_category' => true ); $children_data_level2[] = array( 'category_id' => $child_level2['category_id'], 'name' => $child_level2['name'], 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'] . '_' . $child_level2['category_id']), 'id' => $category['category_id']. '_' . $child['category_id']. '_' . $child_level2['category_id'] ); } $children_data[] = array( 'category_id' => $child['category_id'], 'name' => $child['name'], 'children2' => $children_data_level2, 'href' => $this->url->link('product/category', 'path=' . $child['category_id']) ); } $result_all_categories[] = array( 'category_id' => $category['category_id'], 'name' => $category['name'], 'children' => $children_data, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } $this->cache->set('octemplates.module_category.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $this->config->get('config_customer_group_id'), $result_all_categories); } $data['categories'] = $result_all_categories; return $this->load->view('extension/module/category', $data); } public function old_index() { $this->load->language('extension/module/category'); $data['heading_title'] = $this->language->get('heading_title'); if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } if (isset($parts[0])) { $data['category_id'] = $parts[0]; } else { $data['category_id'] = 0; } if (isset($parts[1])) { $data['child_id'] = $parts[1]; } else { $data['child_id'] = 0; } // $data['opendop'] = 0; // if($data['parent'] != '0'){ // $opendop = $data['parent']; // $data['opendop'] = $opendop; // } $this->load->model('catalog/category'); $this->load->model('catalog/product'); $data['categories'] = array(); $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { $children_data = array(); if ($category['category_id'] == $data['category_id']) { $children = $this->model_catalog_category->getCategories($category['category_id']); foreach($children as $child) { $filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true); $children_data[] = array( 'category_id' => $child['category_id'], 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } } $filter_data = array( 'filter_category_id' => $category['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'category_id' => $category['category_id'], 'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'children' => $children_data, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } return $this->load->view('extension/module/category', $data); } } этот файл я взял /www/happyhome.ru/system/storage/modification/catalog/controller/extension/module
  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.