Помощь Вывод иконок подкатегорий в категории

den-ch-s

Постоялец
Регистрация
17 Июл 2015
Сообщения
114
Реакции
5
Всем доброго времени суток, прошу помощи у знающих людей, так как методы предоставленные мне гуглом не работают.
Была задача вывести иконки подкатегорий на странице категории. Массив, который выводит картинку самой подкатегории есть, но он ее выводит уже на странице самой подкатегории. А при подключении этого куска кода для блока вывода списка подкатегорий, сама категория падает. Надеюсь правильно объяснил. Для наглядности линка на страницу категории: Для просмотра ссылки Войди или Зарегистрируйся (в ней видны те самые подкатегории)
Ниже код category.tpl :
Код:
<?php echo $header; ?>
<?php $config = $this->registry->get('config');
$shopme_quicklook = $config->get('shopme_text_ql');
if(empty($shopme_quicklook[$config->get('config_language_id')])) {
$shopme_text_ql = false;
} else if (isset($shopme_quicklook[$config->get('config_language_id')])) {
$shopme_text_ql = html_entity_decode($shopme_quicklook[$config->get('config_language_id')], ENT_QUOTES, 'UTF-8');
}
?>
<div class="container">
  <ul class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
  <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a itemprop="url" <?php if($breadcrumb['href']=='http://st-atlant.ru'.$_SERVER['REQUEST_URI']){echo 'rel="nofollow" ';}?>href="<?php echo $breadcrumb['href']; ?>"><span<?php if($breadcrumb['href']=='http://st-atlant.ru'.$_SERVER['REQUEST_URI']){echo ' style="display:none;"';}?> itemprop="title"><?php echo $breadcrumb['text']; ?></span><?php if($breadcrumb['href']=='http://st-atlant.ru'.$_SERVER['REQUEST_URI']){echo '<span>&darr;</span>';}?></a></li>
    <?php } ?>
  </ul>
  <div class="row">

    <?php echo $column_left; ?>
 
    <?php if ($column_left && $column_right) { ?>
    <?php $class = 'col-sm-6'; ?>
    <?php } elseif ($column_left || $column_right) { ?>
    <?php $class = 'col-md-9 col-sm-8'; ?>
    <?php } else { ?>
    <?php $class = 'col-sm-12'; ?>
    <?php } ?>
   
    <div id="content" class="<?php echo $class; ?> <?php echo $config->get('shopme_grid_category'); ?>" >
    <?php echo $content_top; ?>
 
  <h1><?php echo $heading_title; if ( isset($_GET['page']) && ($_GET['page'] != 1) ) { echo " - страница ". ((int) $_GET['page']);} ?></h1>
  <?php if ($thumb || $description) { ?>
   <?php if ($thumb && $config->get('shopme_category_thumb')) { ?>
    <div class="category_main_image"><img src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" /></div>
   
   <?php } ?>
  <?php } ?>
 
  <?php if ($categories && ($config->get('shopme_category_refine'))) { ?>
  <div class="bordered_content <?php echo $config->get('shopme_category_per_row'); ?> categories_holder">
  <div class="product-grid categories eq_height">
  <?php foreach ($categories as $category) { ?>
    <div class="item">
    <div class="name"><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></div>
   
   
    </div>
    <?php } ?>
    </div>
    </div> 
  <?php } ?>

    <?php echo $category_middle; ?>
  <?php if ($products) { ?>
   <div class="bordered_content products_holder box">
  <div class="product-filter">
    <div class="left_side">
    <div class="limit hidden-sm hidden-xs"><?php echo $text_limit; ?>
      <select id="input-limit" onchange="location = this.value;">
        <?php foreach ($limits as $limits) { ?>
        <?php if ($limits['value'] == $limit) { ?>
        <option value="<?php echo $limits['href']; ?>" selected="selected"><?php echo $limits['text']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $limits['href']; ?>"><?php echo $limits['text']; ?></option>
        <?php } ?>
        <?php } ?>
      </select>
    </div>
    <!--noindex-->
    <div class="sort"><?php echo $text_sort; ?>
      <select id="input-sort" onchange="location = this.value;">
        <?php foreach ($sorts as $sorts) { ?>
        <?php if ($sorts['value'] == $sort . '-' . $order) { ?>
        <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option>
        <?php } ?>
        <?php } ?>
      </select>     
    </div>
    <!--/noindex-->
    </div>
    <div class="right_side display">
    <a id="grid_view_icon"><i class="fa fa-th"></i></a><a id="list_view_icon"><i class="fa fa-list"></i></a>
    </div>
  </div>
  <div id="main" class="eq_height product-<?php echo $config->get('shopme_default_view'); ?>">
    <?php foreach ($products as $product) { ?>
    <div class="item product-layout">
    <div class="left">
        <div class="image_wrap">
       
           
        <div class="btn-holder top">
            <!-- wishlist -->
            <a style="display:none;" class="btn btn-icon wishlist" onclick="wishlist.add('<?php echo $product['product_id']; ?>');" data-toggle="tooltip" data-placement="right" title="<?php echo $button_wishlist; ?>"><i class="fa fa-heart"></i></a>
            <!-- compare -->
            <a style="display:none;" class="btn btn-icon compare" onclick="compare.add('<?php echo $product['product_id']; ?>');" data-toggle="tooltip" title="<?php echo $button_compare; ?>" <?php if ($config->get('shopme_default_product_style') == "style-4") { echo 'data-placement="left"'; } ?>><i class="icon-resize-small"></i></a>
            <!-- quicklook -->
            <div class="centered">
            <div class="centered_cell">
            <?php if ($shopme_text_ql) {?>
            <a class="btn btn-dark qlook quickview" rel="nofollow" href="<?php echo $product['quickview']; ?>"
            <?php if ($config->get('shopme_default_product_style') == "style-2") { echo 'data-toggle="tooltip"'; } ?> title="<?php echo $shopme_text_ql; ?>"><i class="fa fa-eye"></i><span><?php echo $shopme_text_ql; ?></span></a>
            <?php } ?>
            <span class="style-4-break"></span>
            <!-- add to cart -->
            <a  class="btn btn-primary cart" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');" <?php if ($config->get('shopme_default_product_style') == "style-2") { echo 'data-toggle="tooltip" data-placement="left"'; } ?> title="<?php echo $button_cart; ?>"><i class="icon-basket"></i><span><?php echo $button_cart; ?></span></a>
            <a class="buyOneClickBut smallBut" onclick="oneClickDataInit('<?=$product['product_id'];?>', '<?=$product['href']?>', '<?=$product['name'];?>')">Купить в 1 клик</a>
            </div>
            </div>
            </div>
            <div class="image">
                <div class="statuses"><?php echo $product['statuses']; ?></div>
                <?php echo $product['stickers']; ?>
            <?php if ($product['special'] && ($config->get('shopme_percentage_sale_badge') == 'enabled')) { ?>
            <div class="sale_badge">-<?php echo $product['sales_percantage']; ?>%</div>
            <?php } ?>
            <?php if ($product['thumb_hover'] && ($config->get('shopme_rollover_effect') == 'enabled')) { ?>
            <div class="image_hover"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb_hover']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>
            <a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a>
            <?php } elseif ($product['thumb']) { ?>
            <a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a>
            <?php } ?>
            </div><!-- image ends -->
            </div><!-- image_wrap ends -->
Файл категории приложил ниже
 

Вложения

  • category.txt
    12,7 KB · Просмотры: 1
Всем доброго времени суток, прошу помощи у знающих людей, так как методы предоставленные мне гуглом не работают.
Была задача вывести иконки подкатегорий на странице категории. Массив, который выводит картинку самой подкатегории есть, но он ее выводит уже на странице самой подкатегории. А при подключении этого куска кода для блока вывода списка подкатегорий, сама категория падает. Надеюсь правильно объяснил. Для наглядности линка на страницу категории: Для просмотра ссылки Войди или Зарегистрируйся (в ней видны те самые подкатегории)
Ниже код category.tpl :
Код:
<?php echo $header; ?>
<?php $config = $this->registry->get('config');
$shopme_quicklook = $config->get('shopme_text_ql');
if(empty($shopme_quicklook[$config->get('config_language_id')])) {
$shopme_text_ql = false;
} else if (isset($shopme_quicklook[$config->get('config_language_id')])) {
$shopme_text_ql = html_entity_decode($shopme_quicklook[$config->get('config_language_id')], ENT_QUOTES, 'UTF-8');
}
?>
<div class="container">
  <ul class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
  <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a itemprop="url" <?php if($breadcrumb['href']=='http://st-atlant.ru'.$_SERVER['REQUEST_URI']){echo 'rel="nofollow" ';}?>href="<?php echo $breadcrumb['href']; ?>"><span<?php if($breadcrumb['href']=='http://st-atlant.ru'.$_SERVER['REQUEST_URI']){echo ' style="display:none;"';}?> itemprop="title"><?php echo $breadcrumb['text']; ?></span><?php if($breadcrumb['href']=='http://st-atlant.ru'.$_SERVER['REQUEST_URI']){echo '<span>&darr;</span>';}?></a></li>
    <?php } ?>
  </ul>
  <div class="row">

    <?php echo $column_left; ?>

    <?php if ($column_left && $column_right) { ?>
    <?php $class = 'col-sm-6'; ?>
    <?php } elseif ($column_left || $column_right) { ?>
    <?php $class = 'col-md-9 col-sm-8'; ?>
    <?php } else { ?>
    <?php $class = 'col-sm-12'; ?>
    <?php } ?>
 
    <div id="content" class="<?php echo $class; ?> <?php echo $config->get('shopme_grid_category'); ?>" >
    <?php echo $content_top; ?>

  <h1><?php echo $heading_title; if ( isset($_GET['page']) && ($_GET['page'] != 1) ) { echo " - страница ". ((int) $_GET['page']);} ?></h1>
  <?php if ($thumb || $description) { ?>
   <?php if ($thumb && $config->get('shopme_category_thumb')) { ?>
    <div class="category_main_image"><img src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" /></div>
 
   <?php } ?>
  <?php } ?>

  <?php if ($categories && ($config->get('shopme_category_refine'))) { ?>
  <div class="bordered_content <?php echo $config->get('shopme_category_per_row'); ?> categories_holder">
  <div class="product-grid categories eq_height">
  <?php foreach ($categories as $category) { ?>
    <div class="item">
    <div class="name"><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></div>
 
 
    </div>
    <?php } ?>
    </div>
    </div>
  <?php } ?>

    <?php echo $category_middle; ?>
  <?php if ($products) { ?>
   <div class="bordered_content products_holder box">
  <div class="product-filter">
    <div class="left_side">
    <div class="limit hidden-sm hidden-xs"><?php echo $text_limit; ?>
      <select id="input-limit" onchange="location = this.value;">
        <?php foreach ($limits as $limits) { ?>
        <?php if ($limits['value'] == $limit) { ?>
        <option value="<?php echo $limits['href']; ?>" selected="selected"><?php echo $limits['text']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $limits['href']; ?>"><?php echo $limits['text']; ?></option>
        <?php } ?>
        <?php } ?>
      </select>
    </div>
    <!--noindex-->
    <div class="sort"><?php echo $text_sort; ?>
      <select id="input-sort" onchange="location = this.value;">
        <?php foreach ($sorts as $sorts) { ?>
        <?php if ($sorts['value'] == $sort . '-' . $order) { ?>
        <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option>
        <?php } ?>
        <?php } ?>
      </select>   
    </div>
    <!--/noindex-->
    </div>
    <div class="right_side display">
    <a id="grid_view_icon"><i class="fa fa-th"></i></a><a id="list_view_icon"><i class="fa fa-list"></i></a>
    </div>
  </div>
  <div id="main" class="eq_height product-<?php echo $config->get('shopme_default_view'); ?>">
    <?php foreach ($products as $product) { ?>
    <div class="item product-layout">
    <div class="left">
        <div class="image_wrap">
     
         
        <div class="btn-holder top">
            <!-- wishlist -->
            <a style="display:none;" class="btn btn-icon wishlist" onclick="wishlist.add('<?php echo $product['product_id']; ?>');" data-toggle="tooltip" data-placement="right" title="<?php echo $button_wishlist; ?>"><i class="fa fa-heart"></i></a>
            <!-- compare -->
            <a style="display:none;" class="btn btn-icon compare" onclick="compare.add('<?php echo $product['product_id']; ?>');" data-toggle="tooltip" title="<?php echo $button_compare; ?>" <?php if ($config->get('shopme_default_product_style') == "style-4") { echo 'data-placement="left"'; } ?>><i class="icon-resize-small"></i></a>
            <!-- quicklook -->
            <div class="centered">
            <div class="centered_cell">
            <?php if ($shopme_text_ql) {?>
            <a class="btn btn-dark qlook quickview" rel="nofollow" href="<?php echo $product['quickview']; ?>"
            <?php if ($config->get('shopme_default_product_style') == "style-2") { echo 'data-toggle="tooltip"'; } ?> title="<?php echo $shopme_text_ql; ?>"><i class="fa fa-eye"></i><span><?php echo $shopme_text_ql; ?></span></a>
            <?php } ?>
            <span class="style-4-break"></span>
            <!-- add to cart -->
            <a  class="btn btn-primary cart" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');" <?php if ($config->get('shopme_default_product_style') == "style-2") { echo 'data-toggle="tooltip" data-placement="left"'; } ?> title="<?php echo $button_cart; ?>"><i class="icon-basket"></i><span><?php echo $button_cart; ?></span></a>
            <a class="buyOneClickBut smallBut" onclick="oneClickDataInit('<?=$product['product_id'];?>', '<?=$product['href']?>', '<?=$product['name'];?>')">Купить в 1 клик</a>
            </div>
            </div>
            </div>
            <div class="image">
                <div class="statuses"><?php echo $product['statuses']; ?></div>
                <?php echo $product['stickers']; ?>
            <?php if ($product['special'] && ($config->get('shopme_percentage_sale_badge') == 'enabled')) { ?>
            <div class="sale_badge">-<?php echo $product['sales_percantage']; ?>%</div>
            <?php } ?>
            <?php if ($product['thumb_hover'] && ($config->get('shopme_rollover_effect') == 'enabled')) { ?>
            <div class="image_hover"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb_hover']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>
            <a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a>
            <?php } elseif ($product['thumb']) { ?>
            <a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a>
            <?php } ?>
            </div><!-- image ends -->
            </div><!-- image_wrap ends -->
Файл категории приложил ниже

в контроллере catalog/controller/product/category.php на строке где-то 172 будет $data['categories'][] = array(
перед ним добавляем :

if ($result['image']) {
$image_sub_cat = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height'));
}
else{
$image_sub_cat ='';
}

теперь в массив перед которым мы вставляли код добавляем 'thumb' => $image_sub_cat,
должно получится так

$data['categories'][] = array(
'thumb' => $image_sub_cat,



на а теперь в файле категории делаем вывод а именно строка 44 меняем

<div class="name"><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></div>
на
<div class="name"><a href="<?php echo $category['href']; ?>">
<?php echo $category['name']; ?>
<img src="<?php echo $category['thumb']; ?>">
</a>
</div>
 
в контроллере catalog/controller/product/category.php на строке где-то 172 будет $data['categories'][] = array(
перед ним добавляем :

if ($result['image']) {
$image_sub_cat = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height'));
}
else{
$image_sub_cat ='';
}

теперь в массив перед которым мы вставляли код добавляем 'thumb' => $image_sub_cat,
должно получится так

$data['categories'][] = array(
'thumb' => $image_sub_cat,



на а теперь в файле категории делаем вывод а именно строка 44 меняем

<div class="name"><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></div>
на
<div class="name"><a href="<?php echo $category['href']; ?>">
<?php echo $category['name']; ?>
<img src="<?php echo $category['thumb']; ?>">
</a>
</div>
Почти получилось. Я кажется в контроллере категории не туда вписал:

Код:
foreach ($results as $result) {
                $filter_data = array(
                    'filter_category_id'  => $result['category_id'],
                    'filter_sub_category' => true
                );
                if ($result['image']) {
                $image_sub_cat = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height'));
                }
                else{
                $image_sub_cat ='';
                }
                $data['categories'][] = array(
                    'thumb' => $image_sub_cat,
                    'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
                    'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id']/* . $url*/)
                );
            }

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

            $filter_data = array(
                'filter_category_id' => $category_id,
                'filter_filter'      => $filter,
                'sort'               => $sort,
                'order'              => $order,
                'start'              => ($page - 1) * $limit,
                'limit'              => $limit
            );
 
Почти получилось. Я кажется в контроллере категории не туда вписал:

Код:
foreach ($results as $result) {
                $filter_data = array(
                    'filter_category_id'  => $result['category_id'],
                    'filter_sub_category' => true
                );
                if ($result['image']) {
                $image_sub_cat = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height'));
                }
                else{
                $image_sub_cat ='';
                }
                $data['categories'][] = array(
                    'thumb' => $image_sub_cat,
                    'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
                    'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id']/* . $url*/)
                );
            }

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

            $filter_data = array(
                'filter_category_id' => $category_id,
                'filter_filter'      => $filter,
                'sort'               => $sort,
                'order'              => $order,
                'start'              => ($page - 1) * $limit,
                'limit'              => $limit
            );
Все правильно!А что именно у вас не работает?
 
Как я понял, ошибка в урле(((( он картинку не подгружает
 
Как я понял, ошибка в урле(((( он картинку не подгружает
Почистите кеш,обновите модификатор,попробуйте установить иконки другим категория.Путь прописывается правильно,но там картинки нету.Посмотрите может где-то ошиблись!
 
Почистите кеш,обновите модификатор,попробуйте установить иконки другим категория.Путь прописывается правильно,но там картинки нету.Посмотрите может где-то ошиблись!
картинка есть, вот здесь Для просмотра ссылки Войди или Зарегистрируйся она выводится же
Перепроверил, вроде все как было написали
 
Почистите кеш,обновите модификатор,попробуйте установить иконки другим категория.Путь прописывается правильно,но там картинки нету.Посмотрите может где-то ошиблись!
а зачем к названию картинки добавляется -x?
 
Назад
Сверху