如何将变量值从一个控制器获取到另一个控制器?

时间:2016-10-24 05:09:06

标签: php model-view-controller opencart

Disable scaling on high DPI settings

这是我的html代码(manufacturer.tpl文件) 此代码从db获取所有制造商,并通过manufacturer.php(控制器)显示在前端。

    This my manufacturer.php(controller file)
     <?php
    class ControllerProductManufacturer extends Controller {
        public function index() {
            $this->load->language('product/manufacturer');

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

            $this->load->model('tool/image');

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

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

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

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

            $data['breadcrumbs'] = array();

            $data['breadcrumbs'][] = array(
                'text' => $this->language->get('text_home'),
                'href' => $this->url->link('common/home')
            );

            $data['breadcrumbs'][] = array(
                'text' => $this->language->get('text_brand'),
                'href' => $this->url->link('product/manufacturer')
            );

            $data['categories'] = array();

            $results = $this->model_catalog_manufacturer->getManufacturers();

            foreach ($results as $result) {
                if (is_numeric(utf8_substr($result['name'], 0, 1))) {
                    $key = '0 - 9';
                } else {
                    $key = utf8_substr(utf8_strtoupper($result['name']), 0, 1);
                }

                if (!isset($data['categories'][$key])) {
                    $data['categories'][$key]['name'] = $key;
                }

                $data['categories'][$key]['manufacturer'][] = array(
                    'name' => $result['name'],
                    'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $result['manufacturer_id'])
                );
            }

            $data['continue'] = $this->url->link('common/home');

            $data['column_left'] = $this->load->controller('common/column_left');
            $data['column_right'] = $this->load->controller('common/column_right');
            $data['content_top'] = $this->load->controller('common/content_top');
            $data['content_bottom'] = $this->load->controller('common/content_bottom');
            $data['footer'] = $this->load->controller('common/footer');
            $data['header'] = $this->load->controller('common/header');

            if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/manufacturer_list.tpl')) {
                $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/manufacturer_list.tpl', $data));
            } else {
                $this->response->setOutput($this->load->view('default/template/product/manufacturer_list.tpl', $data));
            }
        }

        public function info() {
            $this->load->language('product/manufacturer');

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

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

            $this->load->model('tool/image');

            if (isset($this->request->get['manufacturer_id'])) {
                $manufacturer_id = (int)$this->request->get['manufacturer_id'];
            } else {
                $manufacturer_id = 0;
            }

            if (isset($this->request->get['sort'])) {
                $sort = $this->request->get['sort'];
            } else {
                $sort = 'p.sort_order';
            }

            if (isset($this->request->get['order'])) {
                $order = $this->request->get['order'];
            } else {
                $order = 'ASC';
            }

            if (isset($this->request->get['page'])) {
                $page = $this->request->get['page'];
            } else {
                $page = 1;
            }

            if (isset($this->request->get['limit'])) {
                $limit = $this->request->get['limit'];
            } else {
                $limit = $this->config->get('config_product_limit');
            }

            $data['breadcrumbs'] = array();

            $data['breadcrumbs'][] = array(
                'text' => $this->language->get('text_home'),
                'href' => $this->url->link('common/home')
            );

            $data['breadcrumbs'][] = array(
                'text' => $this->language->get('text_brand'),
                'href' => $this->url->link('product/manufacturer')
            );

            $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id);

            if ($manufacturer_info) {
                $this->document->setTitle($manufacturer_info['name']);
                $this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id']), 'canonical');

                $url = '';

                if (isset($this->request->get['sort'])) {
                    $url .= '&sort=' . $this->request->get['sort'];
                }

                if (isset($this->request->get['order'])) {
                    $url .= '&order=' . $this->request->get['order'];
                }

                if (isset($this->request->get['page'])) {
                    $url .= '&page=' . $this->request->get['page'];
                }

                if (isset($this->request->get['limit'])) {
                    $url .= '&limit=' . $this->request->get['limit'];
                }

                $data['breadcrumbs'][] = array(
                    'text' => $manufacturer_info['name'],
                    'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url)
                );

                $data['heading_title'] = $manufacturer_info['name'];

                $data['text_empty'] = $this->language->get('text_empty');
                $data['text_quantity'] = $this->language->get('text_quantity');
                $data['text_manufacturer'] = $this->language->get('text_manufacturer');
                $data['text_model'] = $this->language->get('text_model');
                $data['text_price'] = $this->language->get('text_price');
                $data['text_weight'] = $this->language->get('text_weight');
                $data['text_tax'] = $this->language->get('text_tax');
                $data['text_points'] = $this->language->get('text_points');
                $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
                $data['text_sort'] = $this->language->get('text_sort');
                $data['text_limit'] = $this->language->get('text_limit');

                $data['button_cart'] = $this->language->get('button_cart');
                $data['button_wishlist'] = $this->language->get('button_wishlist');
                $data['button_compare'] = $this->language->get('button_compare');
                $data['button_continue'] = $this->language->get('button_continue');
                $data['button_list'] = $this->language->get('button_list');
                $data['button_grid'] = $this->language->get('button_grid');

                $data['compare'] = $this->url->link('product/compare');

                $data['products'] = array();

                $filter_data = array(
                    'filter_manufacturer_id' => $manufacturer_id,
                    'sort'                   => $sort,
                    'order'                  => $order,
                    'start'                  => ($page - 1) * $limit,
                    'limit'                  => $limit
                );

                $product_total = $this->model_catalog_product->getTotalProducts($filter_data);

                $results = $this->model_catalog_product->getProducts($filter_data);

                foreach ($results as $result) {
                    if ($result['image']) {
                        $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                    } else {
                        $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                    }

                    if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
                        $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
                    } else {
                        $price = false;
                    }

                    if ((float)$result['special']) {
                        $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
                    } else {
                        $special = false;
                    }

                    if ($this->config->get('config_tax')) {
                        $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
                    } else {
                        $tax = false;
                    }

                    if ($this->config->get('config_review_status')) {
                        $rating = (int)$result['rating'];
                    } else {
                        $rating = false;
                    }

                    $data['products'][] = array(
                        'product_id'  => $result['product_id'],
                        'thumb'       => $image,
                        'name'        => $result['name'],
                        'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
                        'price'       => $price,
                        'weight'      => $result['weight'],
                        'weight_class'=> $result['weight_class'],
                        'special'     => $special,
                        'tax'         => $tax,
                        'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
                        'rating'      => $result['rating'],
                        'href'        => $this->url->link('product/product', 'manufacturer_id=' . $result['manufacturer_id'] . '&product_id=' . $result['product_id'] . $url)
                    );
                }

                $url = '';

                if (isset($this->request->get['limit'])) {
                    $url .= '&limit=' . $this->request->get['limit'];
                }

                $data['sorts'] = array();

                $data['sorts'][] = array(
                    'text'  => $this->language->get('text_default'),
                    'value' => 'p.sort_order-ASC',
                    'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.sort_order&order=ASC' . $url)
                );

                $data['sorts'][] = array(
                    'text'  => $this->language->get('text_name_asc'),
                    'value' => 'pd.name-ASC',
                    'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=pd.name&order=ASC' . $url)
                );

                $data['sorts'][] = array(
                    'text'  => $this->language->get('text_name_desc'),
                    'value' => 'pd.name-DESC',
                    'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=pd.name&order=DESC' . $url)
                );

                $data['sorts'][] = array(
                    'text'  => $this->language->get('text_price_asc'),
                    'value' => 'p.price-ASC',
                    'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.price&order=ASC' . $url)
                );

                $data['sorts'][] = array(
                    'text'  => $this->language->get('text_price_desc'),
                    'value' => 'p.price-DESC',
                    'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.price&order=DESC' . $url)
                );

                if ($this->config->get('config_review_status')) {
                    $data['sorts'][] = array(
                        'text'  => $this->language->get('text_rating_desc'),
                        'value' => 'rating-DESC',
                        'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=rating&order=DESC' . $url)
                    );

                    $data['sorts'][] = array(
                        'text'  => $this->language->get('text_rating_asc'),
                        'value' => 'rating-ASC',
                        'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=rating&order=ASC' . $url)
                    );
                }

                $data['sorts'][] = array(
                    'text'  => $this->language->get('text_model_asc'),
                    'value' => 'p.model-ASC',
                    'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.model&order=ASC' . $url)
                );

                $data['sorts'][] = array(
                    'text'  => $this->language->get('text_model_desc'),
                    'value' => 'p.model-DESC',
                    'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.model&order=DESC' . $url)
                );

                $url = '';

                if (isset($this->request->get['sort'])) {
                    $url .= '&sort=' . $this->request->get['sort'];
                }

                if (isset($this->request->get['order'])) {
                    $url .= '&order=' . $this->request->get['order'];
                }

                $data['limits'] = array();

                $limits = array_unique(array($this->config->get('config_product_limit'), 25, 50, 75, 100));

                sort($limits);

                foreach($limits as $value) {
                    $data['limits'][] = array(
                        'text'  => $value,
                        'value' => $value,
                        'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url . '&limit=' . $value)
                    );
                }

                $url = '';

                if (isset($this->request->get['sort'])) {
                    $url .= '&sort=' . $this->request->get['sort'];
                }

                if (isset($this->request->get['order'])) {
                    $url .= '&order=' . $this->request->get['order'];
                }

                if (isset($this->request->get['limit'])) {
                    $url .= '&limit=' . $this->request->get['limit'];
                }

                $pagination = new Pagination();
                $pagination->total = $product_total;
                $pagination->page = $page;
                $pagination->limit = $limit;
                $pagination->url = $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] .  $url . '&page={page}');

                $data['pagination'] = $pagination->render();

                $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit));

                $data['sort'] = $sort;
                $data['order'] = $order;
                $data['limit'] = $limit;

                $data['continue'] = $this->url->link('common/home');

                $data['column_left'] = $this->load->controller('common/column_left');
                $data['column_right'] = $this->load->controller('common/column_right');
                $data['content_top'] = $this->load->controller('common/content_top');
                $data['content_bottom'] = $this->load->controller('common/content_bottom');
                $data['footer'] = $this->load->controller('common/footer');
                $data['header'] = $this->load->controller('common/header');

                if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/manufacturer_info.tpl')) {
                    $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/manufacturer_info.tpl', $data));
                } else {
                    $this->response->setOutput($this->load->view('default/template/product/manufacturer_info.tpl', $data));
                }
            } else {
                $url = '';

                if (isset($this->request->get['manufacturer_id'])) {
                    $url .= '&manufacturer_id=' . $this->request->get['manufacturer_id'];
                }

                if (isset($this->request->get['sort'])) {
                    $url .= '&sort=' . $this->request->get['sort'];
                }

                if (isset($this->request->get['order'])) {
                    $url .= '&order=' . $this->request->get['order'];
                }

                if (isset($this->request->get['page'])) {
                    $url .= '&page=' . $this->request->get['page'];
                }

                if (isset($this->request->get['limit'])) {
                    $url .= '&limit=' . $this->request->get['limit'];
                }

                $data['breadcrumbs'][] = array(
                    'text' => $this->language->get('text_error'),
                    'href' => $this->url->link('product/manufacturer/info', $url)
                );

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

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

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

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

                $data['continue'] = $this->url->link('common/home');

                $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found');

                $data['header'] = $this->load->controller('common/header');
                $data['footer'] = $this->load->controller('common/footer');
                $data['column_left'] = $this->load->controller('common/column_left');
                $data['column_right'] = $this->load->controller('common/column_right');
                $data['content_top'] = $this->load->controller('common/content_top');
                $data['content_bottom'] = $this->load->controller('common/content_bottom');

                if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) {
                    $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/error/not_found.tpl', $data));
                } else {
                    $this->response->setOutput($this->load->view('default/template/error/not_found.tpl', $data));
                }
            }
        }
    }

但我想将上面的html代码显示到我的header.tpl(html)文件中,但它显示未定义的变量。我无法访问该制造商,所以请帮我如何使用我的标题在header.tpl文件中显示制造商值.PHP(控制器)。

这是我的header.php控制器代码:

<a href="<?php echo $category['manufacturer'][$i]['href']; ?>"><?php echo $category['manufacturer'][$i]['name']; ?></a>

这是我的header.tpl文件:

          <?php
      class ControllerCommonHeader extends Controller {
          public function index() {
              $data['title'] = $this->document->getTitle();

              if ($this->request->server['HTTPS']) {
                  $server = $this->config->get('config_ssl');
              } else {
                  $server = $this->config->get('config_url');
              }

              $data['base'] = $server;
              $data['description'] = $this->document->getDescription();
              $data['keywords'] = $this->document->getKeywords();
              $data['links'] = $this->document->getLinks();
              $data['styles'] = $this->document->getStyles();
              $data['scripts'] = $this->document->getScripts();
              $data['lang'] = $this->language->get('code');
              $data['direction'] = $this->language->get('direction');

              if ($this->config->get('config_google_analytics_status')) {
                  $data['google_analytics'] = html_entity_decode($this->config->get('config_google_analytics'), ENT_QUOTES, 'UTF-8');
              } else {
                  $data['google_analytics'] = '';
              }

              $data['name'] = $this->config->get('config_name');

              if (is_file(DIR_IMAGE . $this->config->get('config_icon'))) {
                  $data['icon'] = $server . 'image/' . $this->config->get('config_icon');
              } else {
                  $data['icon'] = '';
              }

              if (is_file(DIR_IMAGE . $this->config->get('config_logo'))) {
                  $data['logo'] = $server . 'image/' . $this->config->get('config_logo');
              } else {
                  $data['logo'] = '';
              }

              $this->load->language('common/header');

              $data['text_home'] = $this->language->get('text_home');
              $data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0));
              $data['text_shopping_cart'] = $this->language->get('text_shopping_cart');
              $data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL'));

              $data['text_account'] = $this->language->get('text_account');
              $data['text_register'] = $this->language->get('text_register');
              $data['text_login'] = $this->language->get('text_login');
              $data['text_order'] = $this->language->get('text_order');
              $data['text_transaction'] = $this->language->get('text_transaction');
              $data['text_download'] = $this->language->get('text_download');
              $data['text_logout'] = $this->language->get('text_logout');
              $data['text_checkout'] = $this->language->get('text_checkout');
              $data['text_category'] = $this->language->get('text_category');
              $data['text_all'] = $this->language->get('text_all');

              $data['home'] = $this->url->link('common/home');
              $data['wishlist'] = $this->url->link('account/wishlist', '', 'SSL');
              $data['logged'] = $this->customer->isLogged();
              $data['account'] = $this->url->link('account/account', '', 'SSL');
              $data['register'] = $this->url->link('account/register', '', 'SSL');
              $data['login'] = $this->url->link('account/login', '', 'SSL');
              $data['order'] = $this->url->link('account/order', '', 'SSL');
              $data['transaction'] = $this->url->link('account/transaction', '', 'SSL');
              $data['download'] = $this->url->link('account/download', '', 'SSL');
              $data['logout'] = $this->url->link('account/logout', '', 'SSL');
              $data['shopping_cart'] = $this->url->link('checkout/cart');
              $data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');
              $data['contact'] = $this->url->link('information/contact');
              $data['telephone'] = $this->config->get('config_telephone');

              $status = true;

              if (isset($this->request->server['HTTP_USER_AGENT'])) {
                  $robots = explode("\n", str_replace(array("\r\n", "\r"), "\n", trim($this->config->get('config_robots'))));

                  foreach ($robots as $robot) {
                      if ($robot && strpos($this->request->server['HTTP_USER_AGENT'], trim($robot)) !== false) {
                          $status = false;

                          break;
                      }
                  }
              }

              // Menu
              $this->load->model('catalog/category');

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

              $data['categories'] = array();

              $categories = $this->model_catalog_category->getCategories(0);

              foreach ($categories as $category) {
                  if ($category['top']) {
                      // Level 2
                      $children_data = array();

                      $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(
                              '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'])
                          );
                      }

                      // Level 1
                      $data['categories'][] = array(
                          'name'     => $category['name'],
                          'children' => $children_data,
                          'column'   => $category['column'] ? $category['column'] : 1,
                          'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])
                      );
                  }
              }

              $data['language'] = $this->load->controller('common/language');
              $data['currency'] = $this->load->controller('common/currency');
              $data['search'] = $this->load->controller('common/search');
              $data['cart'] = $this->load->controller('common/cart');

              // For page specific css
              if (isset($this->request->get['route'])) {
                  if (isset($this->request->get['product_id'])) {
                      $class = '-' . $this->request->get['product_id'];
                  } elseif (isset($this->request->get['path'])) {
                      $class = '-' . $this->request->get['path'];
                  } elseif (isset($this->request->get['manufacturer_id'])) {
                      $class = '-' . $this->request->get['manufacturer_id'];
                  } else {
                      $class = '';
                  }

                  $data['class'] = str_replace('/', '-', $this->request->get['route']) . $class;
              } else {
                  $data['class'] = 'common-home';
              }

              if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {
                  return $this->load->view($this->config->get('config_template') . '/template/common/header.tpl', $data);
              } else {
                  return $this->load->view('default/template/common/header.tpl', $data);
              }
          }
      }

4 个答案:

答案 0 :(得分:1)

这是你的header.php代码

     <?php
      class ControllerCommonHeader extends Controller {
          public function index() {
              $data['title'] = $this->document->getTitle();

              if ($this->request->server['HTTPS']) {
                  $server = $this->config->get('config_ssl');
              } else {
                  $server = $this->config->get('config_url');
              }

              $data['base'] = $server;
              $data['description'] = $this->document->getDescription();
              $data['keywords'] = $this->document->getKeywords();
              $data['links'] = $this->document->getLinks();
              $data['styles'] = $this->document->getStyles();
              $data['scripts'] = $this->document->getScripts();
              $data['lang'] = $this->language->get('code');
              $data['direction'] = $this->language->get('direction');

              if ($this->config->get('config_google_analytics_status')) {
                  $data['google_analytics'] = html_entity_decode($this->config->get('config_google_analytics'), ENT_QUOTES, 'UTF-8');
              } else {
                  $data['google_analytics'] = '';
              }

              $data['name'] = $this->config->get('config_name');

              if (is_file(DIR_IMAGE . $this->config->get('config_icon'))) {
                  $data['icon'] = $server . 'image/' . $this->config->get('config_icon');
              } else {
                  $data['icon'] = '';
              }

              if (is_file(DIR_IMAGE . $this->config->get('config_logo'))) {
                  $data['logo'] = $server . 'image/' . $this->config->get('config_logo');
              } else {
                  $data['logo'] = '';
              }

              $this->load->language('common/header');

              $data['text_home'] = $this->language->get('text_home');
              $data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0));
              $data['text_shopping_cart'] = $this->language->get('text_shopping_cart');
              $data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL'));

              $data['text_account'] = $this->language->get('text_account');
              $data['text_register'] = $this->language->get('text_register');
              $data['text_login'] = $this->language->get('text_login');
              $data['text_order'] = $this->language->get('text_order');
              $data['text_transaction'] = $this->language->get('text_transaction');
              $data['text_download'] = $this->language->get('text_download');
              $data['text_logout'] = $this->language->get('text_logout');
              $data['text_checkout'] = $this->language->get('text_checkout');
              $data['text_category'] = $this->language->get('text_category');
              $data['text_all'] = $this->language->get('text_all');

              $data['home'] = $this->url->link('common/home');
              $data['wishlist'] = $this->url->link('account/wishlist', '', 'SSL');
              $data['logged'] = $this->customer->isLogged();
              $data['account'] = $this->url->link('account/account', '', 'SSL');
              $data['register'] = $this->url->link('account/register', '', 'SSL');
              $data['login'] = $this->url->link('account/login', '', 'SSL');
              $data['order'] = $this->url->link('account/order', '', 'SSL');
              $data['transaction'] = $this->url->link('account/transaction', '', 'SSL');
              $data['download'] = $this->url->link('account/download', '', 'SSL');
              $data['logout'] = $this->url->link('account/logout', '', 'SSL');
              $data['shopping_cart'] = $this->url->link('checkout/cart');
              $data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');
              $data['contact'] = $this->url->link('information/contact');
              $data['telephone'] = $this->config->get('config_telephone');

              $status = true;

              if (isset($this->request->server['HTTP_USER_AGENT'])) {
                  $robots = explode("\n", str_replace(array("\r\n", "\r"), "\n", trim($this->config->get('config_robots'))));

                  foreach ($robots as $robot) {
                      if ($robot && strpos($this->request->server['HTTP_USER_AGENT'], trim($robot)) !== false) {
                          $status = false;

                          break;
                      }
                  }
              }

              // Menu
              $this->load->model('catalog/category');

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

              $data['categories'] = array();

              $categories = $this->model_catalog_category->getCategories(0);

              foreach ($categories as $category) {
                  if ($category['top']) {
                      // Level 2
                      $children_data = array();

                      $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(
                              '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'])
                          );
                      }

                      // Level 1
                      $data['categories'][] = array(
                          'name'     => $category['name'],
                          'children' => $children_data,
                          'column'   => $category['column'] ? $category['column'] : 1,
                          'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])
                      );
                  }
              }

              $data['language'] = $this->load->controller('common/language');
              $data['currency'] = $this->load->controller('common/currency');
              $data['search'] = $this->load->controller('common/search');
              $data['cart'] = $this->load->controller('common/cart');

              // For page specific css
              if (isset($this->request->get['route'])) {
                  if (isset($this->request->get['product_id'])) {
                      $class = '-' . $this->request->get['product_id'];
                  } elseif (isset($this->request->get['path'])) {
                      $class = '-' . $this->request->get['path'];
                  } elseif (isset($this->request->get['manufacturer_id'])) {
                      $class = '-' . $this->request->get['manufacturer_id'];
                  } else {
                      $class = '';
                  }

                  $data['class'] = str_replace('/', '-', $this->request->get['route']) . $class;
              } else {
                  $data['class'] = 'common-home';
              }

              if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {
                  return $this->load->view($this->config->get('config_template') . '/template/common/header.tpl', $data);
              } else {
                  return $this->load->view('default/template/common/header.tpl', $data);
              }
          }
// I have added this
            $data['categories'] = array();

                       $results = $this->model_catalog_manufacturer->getManufacturers();

                       foreach ($results as $result) {
                           if (is_numeric(utf8_substr($result['name'], 0, 1))) {
                               $key = '0 - 9';
                           } else {
                               $key = utf8_substr(utf8_strtoupper($result['name']), 0, 1);
                           }

                           if (!isset($data['categories'][$key])) {
                               $data['categories'][$key]['name'] = $key;
                           }

                           $data['categories'][$key]['manufacturer'][] = array(
                               'name' => $result['name'],
                               'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $result['manufacturer_id'])
                           );
                       }
                 }

答案 1 :(得分:1)

我认为会议将是最佳解决方案
您只能在模型中获取和存储所有数据,然后将其放入$ _SESSION超级变量

    $this->load->library('session');
    $_SESSION['anything']=$your-data;
    echo $_SESSION['anything'];

答案 2 :(得分:0)

这取决于具体情况。如果您想保留数据一段时间,那么会话数据将是最佳选择。但是,如果您只需要使用一次,则Flash数据可能更合适。

第一步是初始化会话库:

$this->load->library('session');

然后将信息存储在闪存数据中:

$this->session->set_flashdata('item', $myVar);

最后,在第二个控制器中,获取数据:

$myVar = $this->session->flashdata('item');

显然这意味着您必须再次从第二个控制器初始化会话库,或者创建自己的基本控制器来加载会话库并让两个控制器都继承该会话库。

答案 3 :(得分:0)

this will work please check..

         <?php
            class ControllerCommonHeader extends Controller {
                public function index() {
                    $data['title'] = $this->document->getTitle();

                    if ($this->request->server['HTTPS']) {
                        $server = $this->config->get('config_ssl');
                    } else {
                        $server = $this->config->get('config_url');
                    }

                    $data['base'] = $server;
                    $data['description'] = $this->document->getDescription();
                    $data['keywords'] = $this->document->getKeywords();
                    $data['links'] = $this->document->getLinks();
                    $data['styles'] = $this->document->getStyles();
                    $data['scripts'] = $this->document->getScripts();
                    $data['lang'] = $this->language->get('code');
                    $data['direction'] = $this->language->get('direction');

                    if ($this->config->get('config_google_analytics_status')) {
                        $data['google_analytics'] = html_entity_decode($this->config->get('config_google_analytics'), ENT_QUOTES, 'UTF-8');
                    } else {
                        $data['google_analytics'] = '';
                    }

                    $data['name'] = $this->config->get('config_name');

                    if (is_file(DIR_IMAGE . $this->config->get('config_icon'))) {
                        $data['icon'] = $server . 'image/' . $this->config->get('config_icon');
                    } else {
                        $data['icon'] = '';
                    }

                    if (is_file(DIR_IMAGE . $this->config->get('config_logo'))) {
                        $data['logo'] = $server . 'image/' . $this->config->get('config_logo');
                    } else {
                        $data['logo'] = '';
                    }

                    $this->load->language('common/header');

                    $data['text_home'] = $this->language->get('text_home');
                    $data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0));
                    $data['text_shopping_cart'] = $this->language->get('text_shopping_cart');
                    $data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL'));

                    $data['text_account'] = $this->language->get('text_account');
                    $data['text_register'] = $this->language->get('text_register');
                    $data['text_login'] = $this->language->get('text_login');
                    $data['text_order'] = $this->language->get('text_order');
                    $data['text_transaction'] = $this->language->get('text_transaction');
                    $data['text_download'] = $this->language->get('text_download');
                    $data['text_logout'] = $this->language->get('text_logout');
                    $data['text_checkout'] = $this->language->get('text_checkout');
                    $data['text_category'] = $this->language->get('text_category');
                    $data['text_all'] = $this->language->get('text_all');
                    $data['manufacturer'] = $this->language->get('manufacturer');

                    $data['home'] = $this->url->link('common/home');
                    $data['wishlist'] = $this->url->link('account/wishlist', '', 'SSL');
                    $data['logged'] = $this->customer->isLogged();
                    $data['account'] = $this->url->link('account/account', '', 'SSL');
                    $data['register'] = $this->url->link('account/register', '', 'SSL');
                    $data['login'] = $this->url->link('account/login', '', 'SSL');
                    $data['order'] = $this->url->link('account/order', '', 'SSL');
                    $data['transaction'] = $this->url->link('account/transaction', '', 'SSL');
                    $data['download'] = $this->url->link('account/download', '', 'SSL');
                    $data['logout'] = $this->url->link('account/logout', '', 'SSL');
                    $data['shopping_cart'] = $this->url->link('checkout/cart');
                    $data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');
                    $data['contact'] = $this->url->link('information/contact');
                    $data['telephone'] = $this->config->get('config_telephone');

                    $status = true;

                    if (isset($this->request->server['HTTP_USER_AGENT'])) {
                        $robots = explode("\n", str_replace(array("\r\n", "\r"), "\n", trim($this->config->get('config_robots'))));

                        foreach ($robots as $robot) {
                            if ($robot && strpos($this->request->server['HTTP_USER_AGENT'], trim($robot)) !== false) {
                                $status = false;

                                break;
                            }
                        }
                    }


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

            $results = $this->model_catalog_manufacturer->getManufacturers();

           $data['manufacturer'] = array();

    foreach ($results as $result) {

        $data['manufacturer'][] = array(     
            'name' => $result['name'],
            'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $result['manufacturer_id'])
        );
    }
    //print_r($data['manufacturer']);exit;


            // Menu
                    $this->load->model('catalog/category');

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

                    $data['categories'] = array();

                    $categories = $this->model_catalog_category->getCategories(0);

                    foreach ($categories as $category) {
                        if ($category['top']) {
                            // Level 2
                            $children_data = array();

                            $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(
                                    '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'])
                                );
                            }

                            // Level 1
                            $data['categories'][] = array(
                                'name'     => $category['name'],
                                'children' => $children_data,
                                'column'   => $category['column'] ? $category['column'] : 1,
                                'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])
                            );
                        }
                    }

                    $data['language'] = $this->load->controller('common/language');
                    $data['currency'] = $this->load->controller('common/currency');
                    $data['search'] = $this->load->controller('common/search');
                    $data['cart'] = $this->load->controller('common/cart');

                    // For page specific css
                    if (isset($this->request->get['route'])) {
                        if (isset($this->request->get['product_id'])) {
                            $class = '-' . $this->request->get['product_id'];
                        } elseif (isset($this->request->get['path'])) {
                            $class = '-' . $this->request->get['path'];
                        } elseif (isset($this->request->get['manufacturer_id'])) {
                            $class = '-' . $this->request->get['manufacturer_id'];
                        } else {
                            $class = '';
                        }

                        $data['class'] = str_replace('/', '-', $this->request->get['route']) . $class;
                    } else {
                        $data['class'] = 'common-home';
                    }

                    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {
                        return $this->load->view($this->config->get('config_template') . '/template/common/header.tpl', $data);
                    } else {
                        return $this->load->view('default/template/common/header.tpl', $data);
                    }
                }
            }

将此tpl代码放入您的文件中:

          <?php foreach ($manufacturer as $manufacturers) { ?>
             <?php  if ($manufacturers['name']){ ?>
         <li><?php echo $manufacturers['name']; ?></li>
                <?php }?>       
                <?php }?>