Вопрос

I've create a custom page in opencart. but it shows not found... Below showing code am using for creating the page...Am new to opencart.so i didn't find the mistake.anybody please help...Thanks

My files are

in catalog/controller/category/category.php Code is

<?php echo $header; ?><?php //echo $column_left; ?><?php echo $column_right; ?>
<div id="rightside" style="padding-left:10px;"><?php echo $content_top; ?>  
 <div class="box">
  <div class="box-heading"><?php echo $heading_title; ?></div>
  <div class="box-content">
    <div class="box-category">
      <ul>
        <?php foreach ($categories as $category) { ?>
        <li>
          <?php if ($category['category_id'] == $category_id) { ?>
          <a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
          <?php } else { ?>
          <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
          <?php } ?>
          <?php if ($category['children']) { ?>
          <ul>
            <?php foreach ($category['children'] as $child) { ?>
            <li>
              <?php if ($child['category_id'] == $child_id) { ?>
              <a href="<?php echo $child['href']; ?>" class="active"> - <?php echo $child['name']; ?></a>
              <?php } else { ?>
              <a href="<?php echo $child['href']; ?>"> - <?php echo $child['name']; ?></a>
              <?php } ?>
            </li>
            <?php } ?>
          </ul>
          <?php } ?>
        </li>
        <?php } ?>
      </ul>
    </div>
  </div>
</div>  
</div>
<?php echo $footer; ?>

In catalog/view/theme/new/template/category/category.tpl code is

<?php

class ControllerCategoryCategory extends Controller {

    protected function index($setting) {
        $this->language->load('category/category');

        $this->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])) {
            $this->data['category_id'] = $parts[0];
        } else {
            $this->data['category_id'] = 0;
        }

        if (isset($parts[1])) {
            $this->data['child_id'] = $parts[1];
        } else {
            $this->data['child_id'] = 0;
        }

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

        $this->data['categories'] = array();

        $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) {
                $data = array(
                    'filter_category_id' => $child['category_id'],
                    'filter_sub_category' => true
                );

                if ($setting['count']) {
                    $product_total = $this->model_catalog_product->getTotalProducts($data);

                    $children_data[] = array(
                        'category_id' => $child['category_id'],
                        'name' => $child['name'] . ' (' . $product_total . ')',
                        'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
                    );
                } else {
                    $children_data[] = array(
                        'category_id' => $child['category_id'],
                        'name' => $child['name'],
                        'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
                    );
                }
            }

            $data = array(
                'filter_category_id' => $category['category_id'],
                'filter_sub_category' => true
            );

            if ($setting['count']) {
                $product_total = $this->model_catalog_product->getTotalProducts($data);

                $this->data['categories'][] = array(
                    'category_id' => $category['category_id'],
                    'name' => $category['name'] . ' (' . $product_total . ')',
                    'children' => $children_data,
                    'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
                );
            } else {
                $this->data['categories'][] = array(
                    'category_id' => $category['category_id'],
                    'name' => $category['name'],
                    'children' => $children_data,
                    'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
                );
            }
        }

        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/category/category.tpl')) {
            $this->template = $this->config->get('config_template') . '/template/category/category.tpl';
        } else {
            $this->template = 'default/template/category/category.tpl';
        }

        $this->render();
    }

}

?>

In catalog/language/english/category/category.php

Code is

<?php
$_['heading_title'] = 'Categories';
?>
Это было полезно?

Решение

The index function in your controller class must be public, not protected. Try to change that to public see if that solves the problem.

By the way I don't know how you want to pass $settings to index(). To my knowledge, you shouldn't be able to do that :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top