0 Пользователей и 1 Гость просматривают эту тему.
  • 44 Ответов
  • 14186 Просмотров
*

sega

  • Захожу иногда
  • 272
  • 5 / 0
Нужно чтобы на одной странице выводилась как категория, так и её подкатегории. Сейчас подкатегории ввыводятся только при нажатии на родительской кат. В моём случае это не удобно.
*

tsesl

  • Захожу иногда
  • 363
  • 87 / 0
  • Терпение и труд всё перетрут?
Картинку давайте. Версии указывайте! На какой странице должно быть такое отображение? ничивонипанимаю...
FAQ смотрел? Версию указал?
*

G.FlouZ

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Хотелось бы примерно так же как на аттаче
Joomla 1.0.15, VM 1.1.2

[вложение удалено Администратором]
*

tsesl

  • Захожу иногда
  • 363
  • 87 / 0
  • Терпение и труд всё перетрут?
Оборудование -> Барное дальше не делится на подкатегории или на главной только 1-й подуровень нужно отобразить?
FAQ смотрел? Версию указал?
*

G.FlouZ

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Оборудование -> Барное дальше не делится на подкатегории или на главной только 1-й подуровень нужно отобразить?
один подуровень ниже категории
*

tsesl

  • Захожу иногда
  • 363
  • 87 / 0
  • Терпение и труд всё перетрут?
UPD. Выводит всю иерархию подкатегорий в виде немаркированных списков.

в файле administrator/components/com_virtuemart/html/shop.index.php ниже

$category_childs 
$ps_product_category->get_child_list(0);


добавляем

function getSubCatergoryChildsList$clist$catid ){
	
$res_list = array();
	
foreach( 
$clist as $c_catid => $val ){
	
	
if( 
$val['category_parent_id'] == $catid $res_list[] = array('category_name'=>$val['category_name'],'category_id'=>$c_catid,'child_list'=>getSubCatergoryChildsList$clist$c_catid ));
	
}
	
return 
$res_list;
}

$cat_tree_array $ps_product_category->getCategoryTreeArray();
for( 
$i=0$i<count($category_childs); $i++ ){
	
$category_childs[$i]['child_list'] = getSubCatergoryChildsList$cat_tree_array$category_childs[$i]['category_id'] );
}


далее в файле components/com_virtuemart/themes/default/templates/common/categoryChildlist.tpl.php ниже

mm_showMyFileName
(__FILE__);


добавляем


function getChildsList$tree ){
	
global 
$sess;
	

	
$res '';
	
if( 
$tree ){
	
	
$res .= '<ul>';
	
	
foreach( 
$tree as $stree ){
	
	
	
$res .= '<li>';
	
	
	
$link $sess->urlURL 'index.php?option=com_virtuemart&amp;page=shop.browse&amp;category_id='.$stree['category_id'] );
	
	
	
$res .= '<a title="'.$stree["category_name"].'" href="'.$link.'">'.$stree["category_name"].'</a>';
	
	
	
if( 
$stree'child_list' ] ) $res .= getChildsList$stree'child_list' ] );
	
	
	
$res .= '</li>';
	
	
}
	
	
$res .= '</ul>';
	
}
	
return 
$res;
}


далее, ниже


	
	
	
echo 
$category["category_name"];
	
	
	
echo 
$category['number_of_products'];
	
	
	
?>
	
	
 </a><br/>


добавить

<?php
	
if( 
$category['child_list'] ){
	
	
echo 
getChildsList$category['child_list'] );
	
}
?>
« Последнее редактирование: 02.11.2010, 17:22:29 от tsesl »
FAQ смотрел? Версию указал?
*

G.FlouZ

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Спасибо, работает :)

А у меня подкатегория вывелась на ту же страницу, где и категория, но при нажатии на эту подкатегорию ничего не происходит, новой страницы с товарами не появляется. Не подскажите как исправить?
*

darkmaster

  • Осваиваюсь на форуме
  • 18
  • 1 / 0
У меня после вставки этого кода на главной появились подкатегории, но при нажатии на ссылку ошибка 404. Внимательно посмотрев сгенерированную ссылку обнаружил что option=com_VirtueMart у меня пишется маленькими. Я подправил код и заработало.
Нужно в в файле components/com_VirtueMart/themes/default/templates/common/categoryChildlist.tpl.php  строку

$link = $sess->url( URL . 'index.php?option=com_VirtueMart&amp;page=shop.browse&

исправить на

$link = $sess->url( URL . 'index.php?option=com_virtuemart&amp;page=shop.browse&

И еще может кто подскажет как изменить код, чтобы выводились подкатегории 2го уровня? 
« Последнее редактирование: 20.09.2009, 12:13:03 от darkmaster »
*

GTpro

  • Захожу иногда
  • 102
  • 1 / 0
А как сделать такой вывод подкатегорий в главной категории?

Картинка  -  Подкатегория1

Картинка  -  Подкатегория2

Картинка  -  Подкатегория3

Картинка  -  Подкатегория4

Картинка  -  Подкатегория5


Т.е. в столбик.

Сейчас подкатегории отображаются в строчку:

Подкатегория1    Подкатегория2   Подкатегория3   Подкатегория4   Подкатегория5

Заранее благодарен!
*

mark111

  • Захожу иногда
  • 63
  • 1 / 0
ОГРОМНЫЙ респект "tsesl"  и небольшой "darkmaster". Все заработало!

Прошу еще одну маленькую деталь подсказать: что нужно дописать в файл categoryChildlist.tpl.php ,  чтобы на главной странице при отображении подкатегорий в скобках рядом отображалось колличество товаров в каждой из категорий?
Пример показан во вложении. В примере в скобках колличество товара отображается только для самых верхних категорий, но мне бы хоть так, а лучше конечно, чтобы отображалось только для подкатегорий второго уровня.
Заранее БОЛЬШОЕ спасибо за понимание новичка в ПХП


[вложение удалено Администратором]
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
как сделать такое на VirtueMart 1.0.15 re
?
*

tsesl

  • Захожу иногда
  • 363
  • 87 / 0
  • Терпение и труд всё перетрут?
обновил решение, описаное выше. Теперь строится полная иерархия всех подкатегорий в виде немаркированого списка.
FAQ смотрел? Версию указал?
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
К меня все в столбик и по середине, как сделать слева и как на скрине в строчку подкатегории
а именно как тут
« Последнее редактирование: 08.11.2010, 22:43:34 от terr »
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
Уже таблицу стилей приделать пытаюсь а даже с ней ничего не выходит(

Код
a.minicategory {
float: left;
width: 125px;
height: 40px;
background-color: #ffffff;
border-left: 2px solid #ffffff;
text-decoration: none;
text-align: center;
padding: 5;
padding-top: 10px;
font-size: 10px;
color: #000000
}
*

delomac

  • Захожу иногда
  • 59
  • 2 / 0
Есть вопрос, может немного не в тему...
Уважаемый tsesl строит некое дерево подкатегорий.
Мне требуется примерно тоже самое. Требуется получить список всех подкатегорий начиная с текущей категории вплоть до последнего уровня (требуются подкатегории только от текущей категории и вплоть до листьев), ну или этот самый последний уровень, у которого "родитель" - текущая категория (эти самые листья).
Под списком имеется ввиду, например, массив. В идеале строка с id через запятую (чтобы использовать в SQL запросе).
Извиняюсь за кривое изложение.
Речь идет о VirtueMart 1.1.3 Joomla 1.5
*

tsesl

  • Захожу иногда
  • 363
  • 87 / 0
  • Терпение и труд всё перетрут?
delomac, в $cat_tree_array имеем полное дерево категорий магазина. Подставив вторым параметром нужную id категории-родителя в функцию getSubCatergoryChildsList получишь свой массив всех дочерних. Остаётся только пробежаться по нему и сформировать требуемую строку для запроса, либо подправить саму getSubCatergoryChildsList с той же целью...
FAQ смотрел? Версию указал?
*

delomac

  • Захожу иногда
  • 59
  • 2 / 0
Пробежаться или подправить getSubCatergoryChildsList это конечно хорошо, но что там в качестве первого параметра идет? как мне вычленить только id-шники подкатегорий?
Это бы мне помогло, если бы я разбирался хорошо в PHP...
Но все-равно спасибо за ответ.
*

tsesl

  • Захожу иногда
  • 363
  • 87 / 0
  • Терпение и труд всё перетрут?
первый параметр - полное дерево категорий $cat_tree_array, по которому функция getSubCatergoryChildsList рекурсивно выискивает все дочерние категории от заданой вторым параметром...
FAQ смотрел? Версию указал?
*

delomac

  • Захожу иногда
  • 59
  • 2 / 0
Уже легче, а результат её как выглядит? Можно пример небольшой.
*

tsesl

  • Захожу иногда
  • 363
  • 87 / 0
  • Терпение и труд всё перетрут?
ну сделай print_r на то, что вернёт. В чём проблема? Там многомерный массив. Если посмотреть внимательно на код в посте в верху страницы, то можно и без этого дебаг-вывода разобрать, впринципе
FAQ смотрел? Версию указал?
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
tsesl а не подскажете как в моем случае поступить, чтоб вывод был как на скрине выше? а то я зашел в тупик, мнеб пинка дать в нужную сторону
*

tsesl

  • Захожу иногда
  • 363
  • 87 / 0
  • Терпение и труд всё перетрут?
terr, дай ссылку (можно в личку) - разверстаем вместе без проблем...
FAQ смотрел? Версию указал?
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
не выводит подкатегории вообще(((
Вобщем вот код
categoryChildlist.tpl.php

Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); 
mm_showMyFileName(__FILE__);

          function getChildsList( $tree ){
          global $sess;
             $res = '';
               if( $tree ){
                $res .= '<ul>';
                  foreach( $tree as $stree ){
                   $res .= '<li>';
 $link = $sess->url( URL . 'index.php?option=com_virtuemart&amp;page=shop.browse&amp;category_id='.$stree['category_id'] );
 $res .= '<a title="'.$stree["category_name"].'" href="'.$link.'">'.$stree["category_name"].'</a>';
               if( $stree[ 'child_list' ] ) $res .= getChildsList( $stree[ 'child_list' ] );
               $res .= '</li>';
           }
               $res .= '</ul>';
           }
               return $res;
           }

$iCol = 10;
$bCol = 0;
$categories_row=1; //Количество отделяемых строк
if( !isset( $categories_per_row )) {
    $categories_per_row = 10;
}
$cellwidth = intval( 100 / $categories_per_row );

if( empty( $categories )) {
    return; // Do nothing, if there are no child categories!
}
?>
<br/>
<table width="100%" cellspacing="0" cellpadding="0">
<?php
foreach( $categories as $category ) {
    if ($iCol == 1) { // this is an indicator wether a row needs to be opened or not
        echo "<tr>\n";
    }
    ?>
   
   
    <td align="left" width="<?php echo $cellwidth ?>%" >
        <br />
         <a title="<?php echo $category["category_name"] ?>" href="<?php $sess->purl(URL."index.php?option=com_virtuemart&amp;page=shop.browse&amp;category_id=".$category["category_id"])?>">
            <?php
            if ( $category["category_thumb_image"] ) {
                echo ps_product::image_tag( $category["category_thumb_image"], "alt=\"".$category["category_name"]."\"", 0, "category");
                echo "<br /><br/>\n";
            }
            echo $category["category_name"];
            echo $category['number_of_products'];
            ?>


         </a><br/>

<?php
             if( $category['child_list'] ){
             echo getChildsList( $category['child_list'] );
             }
         ?>
    </td>
   

    <?php
    // Do we need to close the current row now?
    if ($iCol == $categories_per_row) { // If the number of products per row has been reached
        echo "</tr>\n";
        $iCol = 1;
$bCol++;
    }
    else {
        $iCol++;

    }
if ($bCol == $categories_row) { // If the number of products per row has been reached
        echo "<tr><td colspan=".$categories_per_row."><hr/></td></tr>\n"; //Вставляем разделитель
    }
}
// Do we need a final closing row tag?
if ($iCol != 1) {
    echo "</tr>\n";
}
?>
</table>

и shop.index.php

Код
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/**
*
* @version $Id: shop.index.php 2409 2010-05-20 20:05:30Z soeren $
* @package VirtueMart
* @subpackage html
* @copyright Copyright (C) 2004-2007 soeren - All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details.
*
* http://virtuemart.net
*/
require_once( CLASSPATH . 'ps_product.php');
require_once( CLASSPATH . 'ps_product_category.php');
$ps_product_category = new ps_product_category();
$ps_product = new ps_product();
// Show only top level categories and categories that are
// being published
$tpl = new $GLOBALS['VM_THEMECLASS']();
$category_childs = $ps_product_category->get_child_list(0);
        function getSubCatergoryChildsList( $clist, $catid ){
     $res_list = array();
        foreach( $clist as $c_catid => $val ){
        if( $val['category_parent_id'] == $catid ) $res_list[] = array('category_name'=>$val['category_name'],'category_id'=>$c_catid,'child_list'=>getSubCatergoryChildsList( $clist, $c_catid ));
}
        return $res_list;
}
    $cat_tree_array = $ps_product_category->getCategoryTreeArray();
        for( $i=0; $i<count($category_childs); $i++ ){
    $category_childs[$i]['child_list'] = getSubCatergoryChildsList( $cat_tree_array, $category_childs[$i]['category_id'] );
}
$tpl->set( 'categories', $category_childs );
//echo $vendor_store_desc;
$categories = $tpl->fetch( 'common/categoryChildlist.tpl.php');
$tpl->set( 'vendor_store_desc', $vendor_store_desc );
$tpl->set( 'categories', $categories );
$tpl->set('ps_product',$ps_product);
$tpl->set('recent_products',$ps_product->recentProducts(null,$tpl->get_cfg('showRecent', 5)));

if( file_exists( CLASSPATH.'payment/ps_paypal_api.php') ) {
require_once( CLASSPATH.'payment/ps_paypal_api.php');
if( ps_paypal_api::getPaymentMethodId() && ps_paypal_api::isActive() ) {
// PayPal API / Express
$lang = jfactory::getLanguage();
$lang_iso = str_replace( '-', '_', $lang->gettag() );
$paypal_buttonurls = array('en_US' => 'https://www.paypal.com/en_US/i/logo/PayPal_mark_60x38.gif',
'en_GB' => 'https://www.paypal.com/en_GB/i/bnr/horizontal_solution_PP.gif',
'de_DE' => 'https://www.paypal.com/de_DE/DE/i/logo/lockbox_150x47.gif',
'es_ES' => 'https://www.paypalobjects.com/WEBSCR-600-20100105-1/en_US/FR/i/bnr/bnr_horizontal_solution_PP_327wx80h.gif',
'pl_PL' => 'https://www.paypalobjects.com/WEBSCR-600-20100105-1/en_US/FR/i/bnr/bnr_horizontal_solution_PP_327wx80h.gif',
'nl_NL' => 'https://www.paypalobjects.com/WEBSCR-600-20100105-1/en_US/FR/i/bnr/bnr_horizontal_solution_PP_327wx80h.gif',
'fr_FR' => 'https://www.paypalobjects.com/WEBSCR-600-20100105-1/en_US/FR/i/bnr/bnr_horizontal_solution_PP_327wx80h.gif',
'it_IT' => 'https://www.paypalobjects.com/WEBSCR-600-20100105-1/it_IT/IT/i/bnr/bnr_horizontal_solution_PP_178wx80h.gif',
'zn_CN' => 'https://www.paypalobjects.com/WEBSCR-600-20100105-1/en_US/FR/i/bnr/bnr_horizontal_solution_PP_327wx80h.gif' );
$paypal_infolink = array('en_US' => 'https://www.paypal.com/us/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside',
'en_GB' => 'https://www.paypal.com/uk/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside',
'de_DE' => 'https://www.paypal.com/de/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside',
'es_ES' => 'https://www.paypal.com/es/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside',
'pl_PL' => 'https://www.paypal.com/pl/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside',
'nl_NL' => 'https://www.paypal.com/nl/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside',
'fr_FR' => 'https://www.paypal.com/fr/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside',
'it_IT' => 'https://www.paypal.com/it/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside',
'zn_CN' => 'https://www.paypal.com/cn/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside' );
if( !isset( $paypal_buttonurls[$lang_iso])) {
$lang_iso = 'en_US';
}

$html = '<img id="paypalLogo" src="'.$paypal_buttonurls[$lang_iso].'" alt="PayPal Checkout Available" border="0" style="cursor:pointer;" /></a>';
$html .= '<script type="text/javascript">window.addEvent("domready", function() {
$("paypalLogo").addEvent("click", function() {
window.open(\''.$paypal_infolink[$lang_iso].'\',\'olcwhatispaypal\',\'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=400, height=500\');
});
});
</script>';

$tpl->set('paypalLogo', $html);
}
}

echo $tpl->fetch( 'common/shopIndex.tpl.php');
?>

сайт ekbt.ru не выводит данный хак подкатегории tsesl я тебе написал в личку пасмотри а а то уже 2 недели бьюсь и толку не добьюсь))))
« Последнее редактирование: 30.11.2010, 16:12:40 от terr »
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
вобщем ненада уже, решил просто, взял 2 переменных и просто вывел их в div таблицей и все *DRINK*
*

Letos

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
А как сделать так,что бы выводился не полный список,а только первый уровень?
*

ИринаМ

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
есть каталог: Изделия для записи
                     _ Ежедневники
                        _Недатированые
                        _Датированиы
                    Брелоки
                      _металлические
                      _пластиковые
Как сделать так что бы при нажатии на "Изделия для записи" раскрывались все подкатегории (Ежедневни, Недатированые, Датированиы). только этой категории!При этом в категории "Брелоки" не раскрываются подкатегории. А если нажать на "Брелоки" то раскоются все подкатегории.Помогите пожалуйста решить проблему!!
j-1.5.17, VM-1.1.5 stable
Или что бы отображалось вот так:http://www.happygifts.ru/catalog/razdel.php?SECTION_ID=75
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
есть каталог: Изделия для записи
                     _ Ежедневники
                        _Недатированые
                        _Датированиы
                    Брелоки
                      _металлические
                      _пластиковые
Как сделать так что бы при нажатии на "Изделия для записи" раскрывались все подкатегории (Ежедневни, Недатированые, Датированиы). только этой категории!При этом в категории "Брелоки" не раскрываются подкатегории. А если нажать на "Брелоки" то раскоются все подкатегории.Помогите пожалуйста решить проблему!!
j-1.5.17, VM-1.1.5 stable
Или что бы отображалось вот так:http://www.happygifts.ru/catalog/razdel.php?SECTION_ID=75
ИринаМ, у вас стоит основной модуль VM? - там в настройках есть
Category display type - TigraTree (диз не такой как вы хотите, но можно подправить)
или попробуйте этот модуль - http://joomlaforum.ru/index.php/topic,109669.0.html
*

ИринаМ

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
да стоит основной модуль. Если поставить модуль который вы предложили, при надатии на категорию будут открываться все подкатегории и подподкатегории этой категории?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Отобразить кол-во товаров из всех подкатегорий V1.1.3

Автор bazic

Ответов: 19
Просмотров: 12512
Последний ответ 18.09.2014, 06:39:33
от fila61
[Решено] Вывод товаров из подкатегорий в родительскую категорию V1.0.15 V1.1.3

Автор baldesarini

Ответов: 273
Просмотров: 93027
Последний ответ 08.04.2013, 15:20:07
от asterix_kpi
[Решено] Вывод прикрепленных файлов в списке товаров V1.0.15 V1.1.3

Автор a69

Ответов: 13
Просмотров: 10406
Последний ответ 20.02.2013, 23:41:04
от kreolka_8
Решено - все товары заменяются на первый в этой категории товар

Автор Nitr0geN

Ответов: 8
Просмотров: 7702
Последний ответ 04.05.2012, 09:43:01
от doomsr
В сопутствующих товарах вывод характеристик

Автор BernagcheN

Ответов: 2
Просмотров: 1825
Последний ответ 11.12.2011, 21:02:50
от frsh