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

debugger

  • Новичок
  • 5
  • 0 / 0
Пользуюсь связкой Joomla 1.5.8 + VirtueMart 1.1.2 stable
У меня так выводятся категории на главной странице:
Категория 1
Категория 2
Категория 3
Категория 4
Нужно что было так:
Категория 1
Категория 1_2 | Категория 1_2 | Категория 1_3
Категория 2
Категория 2_1 | Категория 2_2 | Категория 2_3
Был практически на всех форумах по данной тематике но так ответа не нашел. Единственное решение по этому вопросу есть только для версий VM 1.0.x. Но как стало ясно что эти версии отличаются очень сильно по своей структуре. Знаю что ответ данного вопроса лежит где в этих фаилах
categoryChildlist.tpl.php
shop.index.php
ps_product_category.php
Перепробовал тысячу вариантов вывода подкатегорий на главную страницу, единственное чего добился это вывод подгруппы сверху от основного списка категорий. Уже бьюсь четвертый день. Если кто сталкивался с такой проблемой дайте линк или направьте в нужную сторону.
*

tsesl

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

debugger

  • Новичок
  • 5
  • 0 / 0
Это должно выводиться в самом контенте магазина или в модуле категорий?
Если не трудно можно описать собствеyно сам процесс как это реализовать.
*

debugger

  • Новичок
  • 5
  • 0 / 0
В самом контенте на главной странице вот такой схемкой
Категория 1
Категория 1_2 | Категория 1_2 | Категория 1_3
в данный момент это все выводится 
Категория 1 Категория 2 Категория 3
*

tsesl

  • Захожу иногда
  • 363
  • 87 / 0
  • Терпение и труд всё перетрут?
Там, вроде, все аналогично VM1.0.х. Поковырять не могу, а это решение (1-я часть) не внесло просветления?
FAQ смотрел? Версию указал?
*

debugger

  • Новичок
  • 5
  • 0 / 0
Не совсем анологично в старых версиях это можно было все реализовать вот в этом фаиле shop.index.php а вновых как я понел там все прогоняется еще через этот фаил categoryChildlist.tpl.php. Что касается посто линк на который вы дали в своей версии в этом фаиле я дажет не нашел эти переменные
*

tsesl

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

debugger

  • Новичок
  • 5
  • 0 / 0
Спасибо за подсказку!!!! буду разбираться.... как сделаю отпишусь ^-^
*

Sergeych

  • Захожу иногда
  • 161
  • 25 / 0
Поддерживаю вопрос!
очень надо как-то получить вывод категорий с подкатегориями (лично мне без товаров, просто такое дерево категорий)

PS j1.5.8 + VM1.1.2
« Последнее редактирование: 29.01.2009, 23:25:39 от Sergeych »
*

Sergeych

  • Захожу иногда
  • 161
  • 25 / 0
очень надо как-то получить вывод категорий с подкатегориями
PS j1.5.8 + VM1.1.2
*

webman

  • Новичок
  • 2
  • 2 / 0
Поддерживаю вопрос!
очень надо как-то получить вывод категорий с подкатегориями (лично мне без товаров, просто такое дерево категорий)

PS j1.5.8 + VM1.1.2
Ответа нет?
*

Gelik

  • Осваиваюсь на форуме
  • 49
  • 8 / 0
У меня стоит та же задача, не могу решить, покопался в flypage-ask.tpl.php там есть функция вывода подкатегорий, выглядит она так -

<tr>
    <td colspan="2"><hr style="width: 100%; height: 2px;" />
        <div style="text-align: center;">
        </div>
                <?php echo $navigation_childlist ?><br /></td>
</tr>

Если опустить теги таблици и стиля, остается только она - <?php echo $navigation_childlist ?>

Пробовал вставить ее в shopIndex.tpl.php но понятно, что без определения category id она ничего не выводит, может мой пост как то поможет в решении нашей общей проблемы......ждем специалистов )
*

Gelik

  • Осваиваюсь на форуме
  • 49
  • 8 / 0
Короче, у меня получилось  :D (напомню, что у меня Joomla 1.5.10 и VirtueMart 1.1.3) на другом форуме вычитал код, вот, что там писали -



Цитировать
"Re: Как сделать главную страницу с категориями и подкатегориями?
точно не помню вносились ли изменения в другие файлы...
но попробуй в файле /administrator/components/com_VirtueMart/html/shop.index.php
после кода:

   
 Код:
       
Код
<td style="text-align:center;" width="<?php echo $cellwidth ?>%" valign="top">
          <a title="<?php echo $catname ?>" href="<?php echo $sess->url(URL."index.php?option=com_VirtueMart&amp;page=shop.browse&amp;category_id=".$db->f("category_id")); ?>">
          <?php
          if ($db->f("category_thumb_image")) {
            echo $ps_product->show_image( $db->f("category_thumb_image"), "alt=\"$catname\"", 0, "category");
            echo "<br />";
          }
        echo $catname;
          echo ps_product_category::products_in_category( $db->f("category_id") );
?>
          </a>
        </td> 
   



добавь еще одну ячейку:

   
 Код:
   
Код
<td valign="top" align="left" style="padding-left:5px;">
      <a title="<?php echo $catname ?>" href="<?php echo $sess->url(URL."index.php?option=com_VirtueMart&amp;page=shop.browse&amp;category_id=".$db->f("category_id")); ?>">
   <?php    echo $catname;   ?>
   </a>
      <br>
      <a title="<?php echo $catname ?>" href="<?php echo $sess->url(URL."index.php?option=com_VirtueMart&amp;page=shop.browse&amp;category_id=".$db->f("category_id")); ?>">
   <?php    echo ps_product_category::get_subcategory ( $db->f("category_id") );
   ?>
   </a>
      </td> 
   



должно заработать"


Но, сам код немного не правильный и писать его нужно не в /administrator/components/com_VirtueMart/html/shop.index.php, а в /components/com_VirtueMart/themes/ваша тема/templates/common/categoryChildlist.tpl

В общем код я подправил, вот полный код моего categoryChildlist.tpl, который выводит категории и подкатегории на главной  -

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

$iCol = 1;
if( !isset( $categories_per_row )) {
$categories_per_row = 3;
}
$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 valign="top" align="center" width="<?php echo $cellwidth ?>%" >
<br />
         <p><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></p>
<div align="left" style="padding-left:5px;"> <a title="<?php echo $category["category_name"] ?>" href="<?php echo $sess->url(URL."index.php?option=com_VirtueMart&amp;page=shop.browse&amp;category_id=".$category["category_id"]); ?>">
   <?php    echo ps_product_category::get_subcategory ( $category["category_id"] );
   ?>
   </a></div>
</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;
}
else {
$iCol++;
}
}
// Do we need a final closing row tag?
if ($iCol != 1) {
echo "</tr>\n";
}
?>
</table>

Да, на всяки случай отдельно выделю код, который непосредственно отвечает за вывод подкатегорий, вот он (он в дивах, чтобы сделать выравнивание и отступ, без дивов то же работает, это я совсем для чайников написал :) ) -

Код
<div align="left" style="padding-left:5px;"> <a title="<?php echo $category["category_name"] ?>" href="<?php echo $sess->url(URL."index.php?option=com_VirtueMart&amp;page=shop.browse&amp;category_id=".$category["category_id"]); ?>"> 
   <?php    echo ps_product_category::get_subcategory ( $category["category_id"] );
   ?>
   </a></div>


Ну, а теперь благодарности в студию  8)
*

juliayakub

  • Новичок
  • 4
  • 0 / 0
Спасибо, ОГРОМНОЕ!!!  :D Выручил многих  :-*
*

alexjc55

  • Новичок
  • 2
  • 1 / 0
Данный код выводит подкатегории только второго уровня.
А как быть если нужно вывести сразу и второго и третьего уровня
т.е.

Категория 1
  категория 1_1
  категория 1_1
     категория 1_2
*

mark111

  • Захожу иногда
  • 63
  • 1 / 0
Цитировать
Ну, а теперь благодарности в студию  8)
Спасибо "Gelik". Этот вопрос решен, но не решен у меня вопрос - как сделать, чтобы в списке категорий отображалось количество вложенных товаров, а лучше если это колличество будет еще и отображатся и по центру, на главной странице магазина
*

oleizey

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
beagler, СПАСИБИЩЕ, всё гениальное - просто!
*

myreg12345

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
А что нужно добавить в код, чтобы перед названием подкатегории был значок "*" или "+" - в общем что-то похожее на это:

     Категория
* Подкатегория 1
* Подкатегория 2
* Подкатегория 3

Это где-то тут, наверное:

<div align="left" style="padding-left:5px;"> <a title="<?php echo $category["category_name"] ?>" href="<?php echo $sess->url(URL."index.php?option=com_VirtueMart&amp;page=shop.browse&amp;category_id=".$category["category_id"]); ?>">
   <?php echo ps_product_category::get_subcategory ( $category["category_id"] ); ?>
   </a></div>

Но что я уже сюда только не тулил в этом фрагменте...ничего не получается

*

koby84

  • Захожу иногда
  • 55
  • 1 / 0
кстати, этот вопрос решается намного проще - просто в shop.index.tpl.php вызываем shop.browse.php
Странно, но у меня в VM 1.1.3 нет такого файла....
*

Bugs_B

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
  • http://sait-pro.ru
Здраствуйте у меня такой вопрос есть у кого нибудь готовый код www\components\com_virtuemart\themes\default\templates\product_details\includes\categoryChildlist.tpl.php этого фала чтобы в категориях отоборажались подкатегории а в подкатегориях товары а под товарами кнопка купить и колличество штук?
я не опытный программист (Сильно не пенайте) я написал такой код

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

$iCol = 1;
if( !isset( $categories_per_row )) {
$categories_per_row = 3;
}
$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 valign="top" align="center" width="<?php echo $cellwidth ?>%" >
<br />
         <p><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></p>
<div align="left" style="padding-left:5px;"> <a title="<?php echo $category["category_name"] ?>" href="<?php echo $sess->url(URL."index.php?option=com_VirtueMart&amp;page=shop.browse&amp;category_id=".$category["category_id"]); ?>">
   <?php    echo ps_product_category::get_subcategory ( $category["category_id"] );
   ?>
   </a></div>
</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;
}
else {
$iCol++;
}
}
// Do we need a final closing row tag?
if ($iCol != 1) {
echo "</tr>\n";
}
?>
</table>

Конкретно вопрос как вставить кнопку купить в этот PHP докуммент
*

Bugs_B

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
  • http://sait-pro.ru
Это что никому не нужно и не интересно?
Или вы мож меня не поняли тогда вот описание проблемы подробно:
Товарищи помогите решить проблему начинающему программисту
Использую Joomla 1.5.9
VM 1.1.3
Мне нужно, что бы на странице с категориями при входе в любую категорию было такое отображение товаров
Шапка [Категория]
                     [Под категория]
                                      [Товар] – кнопка купить товар и выбрать количество
                                      [Товар] – кнопка купить товар и выбрать количество
                                      [Товар] – кнопка купить товар и выбрать количество

                     [Под категория]

                                      [Товар] – кнопка купить товар и выбрать количество
                                      [Товар] – кнопка купить товар и выбрать количество
                                      [Товар] – кнопка купить товар и выбрать количество


Имя сайта\www\components\com_virtuemart\themes\default\templates\common\categoryChildlist.tpl.php
Сделал проверку (Но проверка кривая, кто может придумать другую, правильную, буду благодарен)
Код
 if($b == "http://komiron.ru/index.php?option=com_virtuemart&Itemid=29" or $b == "http://www.komiron.ru/index.php?option=com_virtuemart&Itemid=29" ){$categories_per_row = 4;}else{$categories_per_row = 1;}                  
То есть если путь загруженной страницы равен пути отображения категории то тогда отображаться 4 категории на страницы если нет то тогда отображение одной подкатегории в строке а дальше проверка какие товары храниться в этой категории и отпечатывание их
Вот полный код
Код

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

$iCol = 1;
if( !isset( $categories_per_row )) {
$b = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    if($b == "http://komiron.ru/index.php?option=com_virtuemart&Itemid=29" or $b == "http://www.komiron.ru/index.php?option=com_virtuemart&Itemid=29" ){$categories_per_row = 4;}else{$categories_per_row = 1;}
}
$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" border="1">
<?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="center" 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($b == "http://komiron.ru/index.php?option=com_virtuemart&Itemid=29" or $b == "http://www.komiron.ru/index.php?option=com_virtuemart&Itemid=29" ){

         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['number_of_products'];
            }
            else{

            do
{

 $result = mysql_query ("SELECT category_description FROM jos_vm_category WHERE category_id=".$category["category_id"]);
$f = mysql_fetch_array ($result);

echo $f['category_description']  ;

       }
       while ($f = mysql_fetch_array ($result));

  }
            ?>


</a>


      <?php         /*вызов продукта из базы и проверка лампочки на свет (теплый, белый, холодный)*/

       if($b == "http://komiron.ru/index.php?option=com_virtuemart&Itemid=29" or $b == "http://www.komiron.ru/index.php?option=com_virtuemart&Itemid=29" ){

          }  else{

          $result_category = mysql_query ("SELECT * FROM jos_vm_product_category_xref WHERE category_id=".$category["category_id"]);
$fooo1 = mysql_fetch_array ($result_category);

           do    /*Находим в какой категории какой продукт лежит*/
{
   $product_id_categor = $fooo1['product_id'];
  $product_name = $fooo1['product_name'];

           if ($product_id_categor == "") {  } else {       /*достаем из бызы картинку и все данные о продукте*/

            $result_product = mysql_query ("SELECT * FROM jos_vm_product WHERE product_id=".$product_id_categor);
$fooo2 = mysql_fetch_array ($result_product);

                 do    /*Находим в какой категории какой продукт лежит*/
{
   $product_id = $fooo2['product_id'];
  $product_thumb_image = $fooo2['product_thumb_image'];


/*? КАК МНЕ ВСТАВИТЬ ВОТ СЮДА КНОПКУ КУПИТЬ?*/
    echo "<a style='font-size:16px; font-weight:bold;' href='\n";
echo $sess->purl(URL."www.g-too.ru/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=".$product_id."&category_id=".$category["category_id"]."&option=com_virtuemart&Itemid=1");

       echo "'>\n";
          echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="1" title="'.$product_name.'" alt="'.$product_name .'"'  ) ;

 echo $mm_action_url;
echo  @$_REQUEST['category_id'];
echo $product_id;
echo $i;


               echo $form_addtocart;
/*? КАК МНЕ ВСТАВИТЬ ВОТ СЮДА КНОПКУ КУПИТЬ?*/
                    }
            while ($fooo2 = mysql_fetch_array ($result_product));
                     }
                 }
            while ($fooo1 = mysql_fetch_array ($result_category));
                 }
             ?>
    </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;
}
else {
$iCol++;
}
}
// Do we need a final closing row tag?
if ($iCol != 1) {
echo "</tr>\n";
}

if($b == "http://komiron.ru/index.php?option=com_virtuemart&Itemid=29" or $b == "http://www.komiron.ru/index.php?option=com_virtuemart&Itemid=29" ){echo "";} else { echo ps_product::image_tag( $category["category_thumb_image"], "alt=\"".$category["category_name"]."\"", 0, "category");           }
?>
</table>


Я нашел что за отображение этой формы (Кнопка купить и количество товаров отвечает вот эта строчка

Код
<div style="float:left;width:90%;margin-top: 3px;"><?php echo $form_addtocart ?> 
в шаблоне отображения товаров
Имя вашего сайта\www\components\com_virtuemart\themes\default\templates\browse\browse_3.php
 Файл формы купить  и количество товаров находиться вот где
ваш сайт\www\components\com_virtuemart\themes\default\templates\browse\includes\addtocart_form.tpl.php
пожалуйста помогите пожалуйста кто чем сможет как мне перенести вот эту строчку
Код
<div style="float:left;width:90%;margin-top: 3px;"><?php echo $form_addtocart ?> 
Из browse_3.php в мой код куда я подписал в закомментированных скобках





отображалась шапка категории с описанием и подкатегории с товарами  а под товарами отображалась форма с кнопкой купить и количеством товаров я все сделал а вот кнопку перенести не могу


PS:  я использую шаблон отображения товаров Browse_3.php
И браузер Мазила заранее всем спасибо
вот моя аська 589514125
*

Stim_ka

  • Осваиваюсь на форуме
  • 29
  • 10 / 0
кстати, этот вопрос решается намного проще - просто в shop.index.tpl.php вызываем shop.browse.php
спасибо Вам большое за ценные советы, но то, что для вас просто, для некоторых - непонятно. не могли бы вы пример кода привести?
как конкретно вызвать этот shop.browse.php?
*

cuba

  • Новичок
  • 5
  • 0 / 0
Есть решение с выводом категорий и подкатегорий + кол-во товара и там и там + картинку категории можно вывести вот ссылочка: http://www.poweredbyvirtuemart.com/Free-VirtueMart-Modules/  создаем материал прописываем модуль как здесь описано: http://www.joomlaspan.com/general/include-any-module-within-content-in-joomla-15.php и пожалуй все....

но есть вопрос с выводом блоков категорий (высота div задается жестко параметром '%;height:' и таблица строится горизонтально, а нужно чтобы таблица формировалась вертикально...  помогите подправить код модуля (mod_frontpage_categories_functions.php), чтобы можно было список категорий и подкатегорий выводить в 2 колонки т.е. вот так:

категория 1          категория 3
   подкатегория       подкатегория
   подкатегория       подкатегория
   подкатегория       подкатегория
   подкатегория       подкатегория
категория 2            подкатегория
   подкатегория       подкатегория
   подкатегория
   подкатегория
   подкатегория
   подкатегория
   подкатегория

код формирующий и заполняющий таблицу:

Код: php
<?php



function find_cat_image($cat_id,$db_username,$db_password,$db_name) {
$con = mysql_connect("localhost",$db_username,$db_password);
if (!$con)
 {
 die('Could not connect: ' . mysql_error());
 }

mysql_select_db($db_name, $con);

$q = 'SELECT * FROM jos_vm_category WHERE category_id='.$cat_id;
$return = mysql_query( $q );
$row = mysql_fetch_array($return);
$return_val = $row['category_thumb_image'];
return $return_val;
}



/**
* This function is used for the frontend to display a
* complete link list of top-level categories
*
* @param int $category_id The category to be highlighted
* @param string $links_css_class The CSS class that marks mainlevel links
* @param string $list_css_class (deprecated)
* @param string $highlighted_style The CSS styles that format the hightlighted category
* @return string HTML code with the link list
*/

function get_category_tree2( $category_id=0,
$links_css_class="mainlevel",$numcolumns=5,
$cat_height,$image_width,
$sub_categories_display=1,
$manufacturer_id = null,
$list_css_class="mm123",
$highlighted_style="font-style:italic;"
) {
global $sess;
$config =& JFactory::getConfig();
$db_username = $config->getValue( 'config.user' );
$db_password = $config->getValue( 'config.password' );
$db_name = $config->getValue( 'config.db' );
$categories = ps_product_category::getCategoryTreeArray(true,"",$manufacturer_id); // Get array of category objects
$result = ps_product_category::sortCategoryTreeArray($categories); // Sort array of category objects
$row_list = $result['row_list'];
$depth_list = $result['depth_list'];
$category_tmp = $result['category_tmp'];
$nrows = sizeof($category_tmp);
$numcolumns = 100/$numcolumns-3;
$k = 0;
// Copy the Array into an Array with auto_incrementing Indexes
$key = array_keys($categories); // Array of category table primary keys

$nrows = $size = sizeOf($key); // Category count

$html = "";

// Find out if we have subcategories to display
$allowed_subcategories = Array();
if( !empty( $categories[$category_id]["category_parent_id"] ) ) {
// Find the Root Category of this category
$root = $categories[$category_id];
$allowed_subcategories[] = $categories[$category_id]["category_parent_id"];
// Loop through the Tree up to the root
while( !empty( $root["category_parent_id"] )) {
$allowed_subcategories[] = $categories[$root["category_child_id"]]["category_child_id"];
$root = $categories[$root["category_parent_id"]];
}
}
// Fix the empty Array Fields
if( $nrows < count( $row_list ) ) {
$nrows = count( $row_list );
}

// Now show the categories
for($n = 0 ; $n < $nrows ; $n++) {

if( !isset( $row_list[$n] ) || !isset( $category_tmp[$row_list[$n]]["category_child_id"] ) )
continue;
if( $category_id == $category_tmp[$row_list[$n]]["category_child_id"] )
$style = $highlighted_style;
else
$style = "";

$allowed = true;
if( $depth_list[$n] > 0 ) {
// Subcategory!
if( isset( $root ) && in_array( $category_tmp[$row_list[$n]]["category_child_id"], $allowed_subcategories )
|| $category_tmp[$row_list[$n]]["category_parent_id"] == $category_id
|| $category_tmp[$row_list[$n]]["category_parent_id"] == @$categories[$category_id]["category_parent_id"]) {
$allowed = true;

}
}
else
$allowed = true;
$append = "";

if( $allowed ) {
if( $style == $highlighted_style ) {
$append = 'id="active_menu2"';
}
if( $depth_list[$n] > 0) {
$css_class = "sublevel_frontpage_categories";
$type = 2;
}
else {
$css_class = $links_css_class;
$css_class = 'mainlevel_frontpage_categories';
$type = 1;
}

$catname = shopMakeHtmlSafe( $category_tmp[$row_list[$n]]["category_name"] );

if ($type == 1) {
if ($k > 0) {
$html .= '</div>';
}
else {
#$html .= '<div style="float:left;text-align: left;padding:3px;background:#000;width:'.$numcolumns.'%;margin:5px;border:100px solid #888;">testtest';

}
$html .= '<div class="mod_frontpage_div" style="width:'.$numcolumns.'%;height:'.$cat_height.'px">';
$cat_image = 'components/com_virtuemart/shop_image/category/';
$base_image = find_cat_image($category_tmp[$row_list[$n]]["category_child_id"],$db_username,$db_password,$db_name);


if ($base_image != '') {
$cat_image .= $base_image;
list($width, $height, $type, $attr) = getimagesize($cat_image);

$target = $image_width;

if ($width != '' && $height != '') {
if ($width > $height) {
$percentage = ($target / $width);
} else {
$percentage = ($target / $width);
}

//gets the new value and applies the percentage, then rounds the value

$width = round($width * $percentage);
$height = round($height * $percentage);
}
}
$html .= '<div style="'.$image_width.'px;float:left;padding:3px;padding-right:6px;height:100%;">
<img src="components/com_virtuemart/shop_image/category/'.find_cat_image($category_tmp[$row_list[$n]]["category_child_id"],$db_username,$db_password,$db_name).'" width='.$width.' height='.$height.'>
</div>';


}
if ($depth_list[$n] < $sub_categories_display+1)
{
$html .=
          '<a title="'.$catname.'" style="display:block;'.$style.'" class="'. $css_class .'" href="'. $sess->url(URL."index.php?page=shop.browse&amp;category_id=".$category_tmp[$row_list[$n]]["category_child_id"].'&manufacturer_id='.$manufacturer_id).'" '.$append.'>'
. str_repeat("&nbsp;&nbsp;",$depth_list[$n]). $catname
. ps_product_category::products_in_category( $category_tmp[$row_list[$n]]["category_child_id"] )
.'</a>';
}
$k = $k + 1;
}
}
$html .= '</div>';
return $html;
}
« Последнее редактирование: 15.03.2010, 20:12:17 от cuba »
*

murat

  • Захожу иногда
  • 261
  • 13 / 0
Короче, у меня получилось  :D (напомню, что у меня Joomla 1.5.10 и VirtueMart 1.1.3) на другом форуме вычитал код, вот, что там писали -




Но, сам код немного неправильный и писать его нужно не в /administrator/components/com_VirtueMart/html/shop.index.php, а в /components/com_VirtueMart/themes/ваша тема/templates/common/categoryChildlist.tpl

В общем код я подправил, вот полный код моего categoryChildlist.tpl, который выводит категории и подкатегории на главной  -

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

$iCol = 1;
if( !isset( $categories_per_row )) {
$categories_per_row = 3;
}
$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 valign="top" align="center" width="<?php echo $cellwidth ?>%" >
<br />
         <p><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></p>
<div align="left" style="padding-left:5px;"> <a title="<?php echo $category["category_name"] ?>" href="<?php echo $sess->url(URL."index.php?option=com_VirtueMart&amp;page=shop.browse&amp;category_id=".$category["category_id"]); ?>">
   <?php    echo ps_product_category::get_subcategory ( $category["category_id"] );
   ?>
   </a></div>
</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;
}
else {
$iCol++;
}
}
// Do we need a final closing row tag?
if ($iCol != 1) {
echo "</tr>\n";
}
?>
</table>

Да, на всяки случай отдельно выделю код, который непосредственно отвечает за вывод подкатегорий, вот он (он в дивах, чтобы сделать выравнивание и отступ, без дивов то же работает, это я совсем для чайников написал :) ) -

Код
<div align="left" style="padding-left:5px;"> <a title="<?php echo $category["category_name"] ?>" href="<?php echo $sess->url(URL."index.php?option=com_VirtueMart&amp;page=shop.browse&amp;category_id=".$category["category_id"]); ?>"> 
   <?php    echo ps_product_category::get_subcategory ( $category["category_id"] );
   ?>
   </a></div>


Ну, а теперь благодарности в студию  8)

А как сделать вывод картинок для подкатегорий?
*

serjii

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Прошу яро не пинать ногами, если не коректно задам вопрос или чего-то недопонимаю.
Пользуюсь Joomla 1.5.14 и VirtueMart 1.1.4
Итак, мне нужно вывести категории товаров желательно с картинками в область (область с текстом
Цитировать
We have the best tools for do-it-yourselfers. Check us out!
You can easily find products selecting the category you would like to browse above.
) которую я указал на скрине. Хочу уточнить что категории должны отображаться только на главной станице и никакой другой ... пользуясь FireBug-ом усмотрел что текст
Цитировать
We have the best tools for do-it-yourselfers. Check us out!

You can easily find products selecting the category you would like to browse above.
выводится в vmMainPage.
Пользуясь рекомендациями Gelik, изменил файл, но категории не выводятся.
Скрин прилагаю ...


Помогите пожалуйста вывести категории ... Спасибо
*

voodoomaniac

  • Захожу иногда
  • 75
  • 4 / 0
У меня почему-то подкатегории вывелись с присвоенным классом как в модуле Product categories. И еще в конец ссылки добавился какой-то идиотски ?root=10 Как убрать этот root, и убрать клаас для подкатегорий!
*

Gelik

  • Осваиваюсь на форуме
  • 49
  • 8 / 0
У меня почему-то подкатегории вывелись с присвоенным классом как в модуле Product categories. И еще в конец ссылки добавился какой-то идиотски ?root=10 Как убрать этот root, и убрать клаас для подкатегорий!

Как убрать ?root=10 знаю, а как убрать класс не знаю -
Идешь в /components/com_sh404sef/sef_ext/com_virtuemart.php

и после <?php пишешь следующее:

Код
if (isset($root))
shRemoveFromGETVarsList('root');

И таким макаром убираешь все встречающиеся кривые окончания.


Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нужно вывести случайные товары на главную Joomla

Автор manowar

Ответов: 3
Просмотров: 5330
Последний ответ 13.12.2016, 12:41:12
от vitaliypoli
Вывод производителя не как ссылка

Автор StivinKing

Ответов: 1
Просмотров: 1362
Последний ответ 12.11.2014, 03:34:56
от evgen777
VirtueMart -как убрать слово "КАТЕГОРИИ" на первой странице магазина

Автор stalker828

Ответов: 12
Просмотров: 9244
Последний ответ 30.07.2014, 11:51:16
от ZAIRA
Как перенести кнопку редактирования товара с fly-страницы на страницу категории?

Автор longestall

Ответов: 5
Просмотров: 2198
Последний ответ 09.07.2014, 17:40:59
от talentas
Вывод модуля везде, кроме определенных категорий

Автор katjuha6

Ответов: 18
Просмотров: 4000
Последний ответ 13.01.2014, 15:24:40
от Fedor Vlasenko