Перейти к содержанию
Форум поддержки пользователей VamShop

Категории в слайдере


retroman

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

Добрый вечер! Подскажите, а возможно в слайдере на главной выводить вместо рекомендуемых товаров, категории товаров?

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

Есть категория 1. В ней есть две дочерних категории - 2 и 3

Поставил модуль для отображения категорий на главной странице сайта. Стандартный код файла includes/modules/sitemap.php подредактировал слегка.

<?php
/* -----------------------------------------------------------------------------------------
   $Id: sitemap.php 782 2007-02-13 10:23:57 VaM $

   VaM Shop - open source ecommerce solution
   http://vamshop.ru
   http://vamshop.com

   Copyright (c) 2007 VaM Shop
   -----------------------------------------------------------------------------------------
   based on:
   (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
   (c) 2002-2003 osCommerce; www.oscommerce.com
   (c) 2003     nextcommerce; www.nextcommerce.org
   (c) 2004 xt:Commerce (sitemap.php,v 1.19 2004/08/25); xt-commerce.com

   Released under the GNU General Public License
   ---------------------------------------------------------------------------------------*/

$module = new vamTemplate;
$module->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');

 //to get category trees
function get_category_tree($parent_id = '1') {
    $categories_query = vamDBquery("select c.categories_id, cd.categories_name, cd.categories_description, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id = '" . $_SESSION['languages_id'] . "' and c.parent_id = '" . $parent_id . "' and c.categories_status = '1' order by c.sort_order, cd.categories_name");

    while ($categories = vam_db_fetch_array($categories_query,true)) {
        $href = vam_href_link(FILENAME_DEFAULT, vam_category_link($categories['categories_id'],$categories['categories_name']));

        if ($categories['categories_image'] != '')
            $image = DIR_WS_IMAGES.'categories/'.$categories['categories_image'];
        else
            $image = DIR_WS_IMAGES.'product_images/noimage.gif';

        $category_tree_array[] = array(
            'id' => $categories['categories_id'],
            'name' => $categories['categories_name'],
            'text' => $categories['categories_description'],
            'image' => $image,
            'link' => $href,
            'sub' => get_category_tree($categories['categories_id'])
        );
    }
    return $category_tree_array;
}

function render_category_tree($array, $level = 1) {
    if (!count($array)) return;
    foreach ($array as $value) {
        $category_tree .= '<div class="text">';
        $category_tree .= '<a href="'.$value['link'].'"><h'.($level+1).'>'.$value['name'].'</h'.($level+1).'></a>';
        $category_tree .= '<a href="'.$value['link'].'"><img src="'.$value['image'].'"></a><p>'.$value['text'].'</p>';

        if (count($value['sub']) > 0 AND $level < 3) {
// or use it construction to get needed level
// if (count($value['sub']) > 0 AND $level < 3) {
            $category_tree .= render_category_tree($value['sub'], $level+1);
        }

        $category_tree .= '</div>';
    }
    return $category_tree;
}
//вывод наименования категории, картинки, описания.


 $module_content = render_category_tree(get_category_tree());

 // if there's sth -> assign it
 if (sizeof($module_content)>=1)
 {
 $module->assign('language', $_SESSION['language']);
 $module->assign('module_content',$module_content);
 // set cache ID
 if (!CacheCheck()) {
 $module->caching = 0;
 $module = $module->fetch(CURRENT_TEMPLATE.'/module/sitemap_default.html');
 } else {
 $module->caching = 1;
 $module->cache_lifetime=CACHE_LIFETIME;
 $module->cache_modified_check=CACHE_CHECK;
 $cache_id = $GET['cPath'].$_SESSION['language'].$_SESSION['customers_status']['customers_status_name'].$_SESSION['currency'];
 $module = $module->fetch(CURRENT_TEMPLATE.'/module/sitemap_default.html',$cache_id);
 }
     $default->assign('MODULE_sitemap_default', $module);
 }


?>

Код файла templates/vamshop1/module/sitemap_default.html поменял на:

{config_load file="$language/lang_$language.conf" section="sitemap"}
<script type="text/javascript" src="jscript/jquery/plugins/sequence/sequence.jquery-min.js"></script>
<script type="text/javascript" src="jscript/jquery/plugins/sequence/sequencejs-options.js"></script>

<div class="page">
<div class="pageItem">

<section id="slider">
<div id="sequence-theme">
     <div id="sequence">
        <div class="prev"><i class="fa fa-chevron-left"></i></div>
        <div class="next"><i class="fa fa-chevron-right"></i></div>
        <ul>
            <li>

                 {$module_content}

            </li>
        </ul>
     </div>
</div>
</section>

</div>
</div>
<div class="clear"></div>

По аналогии с кодом слайдера для рекомендуемых. Тем самым добился отображения в слайдере обеих дочерних категорий. Чего и хотел. Но вот только отображаются они разом, одна наслаивается на другую без пролистывания. Что, где не учёл?

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

Что б каждая в отдельном слайде была - нужно добавляться li ... /li для каждой категории.

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

По идее, да.

 

Каждая ссылка внутри module_content должна быть li ... /li

 

А в шаблоне бокса удалить li ... /li около метки $module_content

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