|
sega
|
 |
« : 12.04.2008, 22:08:01 » |
|
Нужно чтобы на одной странице выводилась как категория, так и её подкатегории. Сейчас подкатегории ввыводятся только при нажатии на родительской кат. В моём случае это не удобно.
|
|
|
|
|
Записан
|
|
|
|
tsesl
Завсегдатай
   
Репутация: +83/-0
Offline
Сообщений: 409
Терпение и труд всё перетрут?
|
 |
« Ответ #1 : 06.07.2009, 16:37:24 » |
|
Картинку давайте. Версии указывайте! На какой странице должно быть такое отображение? ничивонипанимаю...
|
|
|
|
|
Записан
|
|
|
|
G.FlouZ
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 17
|
 |
« Ответ #2 : 08.07.2009, 00:05:43 » |
|
Хотелось бы примерно так же как на аттаче Joomla 1.0.15, VM 1.1.2
|
|
|
|
|
Записан
|
|
|
|
tsesl
Завсегдатай
   
Репутация: +83/-0
Offline
Сообщений: 409
Терпение и труд всё перетрут?
|
 |
« Ответ #3 : 08.07.2009, 10:45:11 » |
|
Оборудование -> Барное дальше не делится на подкатегории или на главной только 1-й подуровень нужно отобразить?
|
|
|
|
|
Записан
|
|
|
|
G.FlouZ
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 17
|
 |
« Ответ #4 : 08.07.2009, 11:01:52 » |
|
Оборудование -> Барное дальше не делится на подкатегории или на главной только 1-й подуровень нужно отобразить?
один подуровень ниже категории
|
|
|
|
|
Записан
|
|
|
|
tsesl
Завсегдатай
   
Репутация: +83/-0
Offline
Сообщений: 409
Терпение и труд всё перетрут?
|
 |
« Ответ #5 : 08.07.2009, 12:08:56 » |
|
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->url( URL . 'index.php?option=com_virtuemart&page=shop.browse&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, 18:22:29 от tsesl »
|
Записан
|
|
|
|
G.FlouZ
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 17
|
 |
« Ответ #6 : 08.07.2009, 18:05:57 » |
|
Спасибо, работает 
|
|
|
|
|
Записан
|
|
|
|
|
Jekson
Гость
|
 |
« Ответ #7 : 16.07.2009, 02:16:25 » |
|
А у меня подкатегория вывелась на ту же страницу, где и категория, но при нажатии на эту подкатегорию ничего не происходит, новой страницы с товарами не появляется. Не подскажите как исправить?
|
|
|
|
|
Записан
|
|
|
|
darkmaster
Захожу иногда

Репутация: +1/-0
Offline
Сообщений: 22
|
 |
« Ответ #8 : 20.09.2009, 11:20:33 » |
|
У меня после вставки этого кода на главной появились подкатегории, но при нажатии на ссылку ошибка 404. Внимательно посмотрев сгенерированную ссылку обнаружил что option=com_VirtueMart у меня пишется маленькими. Я подправил код и заработало. Нужно в в файле components/com_VirtueMart/themes/default/templates/common/categoryChildlist.tpl.php строку
$link = $sess->url( URL . 'index.php?option=com_VirtueMart&page=shop.browse&
исправить на
$link = $sess->url( URL . 'index.php?option=com_virtuemart&page=shop.browse&
И еще может кто подскажет как изменить код, чтобы выводились подкатегории 2го уровня?
|
|
|
|
« Последнее редактирование: 20.09.2009, 12:13:03 от darkmaster »
|
Записан
|
|
|
|
GTpro
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 98
|
 |
« Ответ #9 : 20.09.2009, 17:26:38 » |
|
А как сделать такой вывод подкатегорий в главной категории?
Картинка - Подкатегория1
Картинка - Подкатегория2
Картинка - Подкатегория3
Картинка - Подкатегория4
Картинка - Подкатегория5
Т.е. в столбик.
Сейчас подкатегории отображаются в строчку:
Подкатегория1 Подкатегория2 Подкатегория3 Подкатегория4 Подкатегория5
Заранее благодарен!
|
|
|
|
|
Записан
|
|
|
|
mark111
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 63
|
 |
« Ответ #10 : 08.10.2009, 18:47:30 » |
|
ОГРОМНЫЙ респект "tsesl" и небольшой "darkmaster". Все заработало!
Прошу еще одну маленькую деталь подсказать: что нужно дописать в файл categoryChildlist.tpl.php , чтобы на главной странице при отображении подкатегорий в скобках рядом отображалось колличество товаров в каждой из категорий? Пример показан во вложении. В примере в скобках колличество товара отображается только для самых верхних категорий, но мне бы хоть так, а лучше конечно, чтобы отображалось только для подкатегорий второго уровня. Заранее БОЛЬШОЕ спасибо за понимание новичка в ПХП
|
|
|
|
|
terr
Завсегдатай
   
Репутация: +10/-4
Offline
Пол: 
Сообщений: 750
Ученик html-я
|
 |
« Ответ #11 : 25.10.2010, 16:13:13 » |
|
как сделать такое на VirtueMart 1.0.15 re ?
|
|
|
|
|
Записан
|
|
|
|
tsesl
Завсегдатай
   
Репутация: +83/-0
Offline
Сообщений: 409
Терпение и труд всё перетрут?
|
 |
« Ответ #12 : 02.11.2010, 18:24:03 » |
|
обновил решение, описаное выше. Теперь строится полная иерархия всех подкатегорий в виде немаркированого списка.
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #13 : 02.11.2010, 18:45:43 » |
|
+1 спасибо
|
|
|
|
|
Записан
|
|
|
|
terr
Завсегдатай
   
Репутация: +10/-4
Offline
Пол: 
Сообщений: 750
Ученик html-я
|
 |
« Ответ #14 : 08.11.2010, 11:05:21 » |
|
К меня все в столбик и по середине, как сделать слева и как на скрине в строчку подкатегории а именно как тут 
|
|
|
|
« Последнее редактирование: 08.11.2010, 23:43:34 от terr »
|
Записан
|
|
|
|
terr
Завсегдатай
   
Репутация: +10/-4
Offline
Пол: 
Сообщений: 750
Ученик html-я
|
 |
« Ответ #15 : 09.11.2010, 02:51:31 » |
|
Уже таблицу стилей приделать пытаюсь а даже с ней ничего не выходит( 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
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 55
|
 |
« Ответ #16 : 09.11.2010, 15:27:15 » |
|
Есть вопрос, может немного не в тему... Уважаемый tsesl строит некое дерево подкатегорий. Мне требуется примерно тоже самое. Требуется получить список всех подкатегорий начиная с текущей категории вплоть до последнего уровня (требуются подкатегории только от текущей категории и вплоть до листьев), ну или этот самый последний уровень, у которого "родитель" - текущая категория (эти самые листья). Под списком имеется ввиду, например, массив. В идеале строка с id через запятую (чтобы использовать в SQL запросе). Извиняюсь за кривое изложение. Речь идет о VirtueMart 1.1.3 Joomla 1.5
|
|
|
|
|
Записан
|
|
|
|
tsesl
Завсегдатай
   
Репутация: +83/-0
Offline
Сообщений: 409
Терпение и труд всё перетрут?
|
 |
« Ответ #17 : 13.11.2010, 01:24:44 » |
|
delomac, в $cat_tree_array имеем полное дерево категорий магазина. Подставив вторым параметром нужную id категории-родителя в функцию getSubCatergoryChildsList получишь свой массив всех дочерних. Остаётся только пробежаться по нему и сформировать требуемую строку для запроса, либо подправить саму getSubCatergoryChildsList с той же целью...
|
|
|
|
|
Записан
|
|
|
|
delomac
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 55
|
 |
« Ответ #18 : 13.11.2010, 12:01:11 » |
|
Пробежаться или подправить getSubCatergoryChildsList это конечно хорошо, но что там в качестве первого параметра идет? как мне вычленить только id-шники подкатегорий? Это бы мне помогло, если бы я разбирался хорошо в PHP... Но все-равно спасибо за ответ.
|
|
|
|
|
Записан
|
|
|
|
tsesl
Завсегдатай
   
Репутация: +83/-0
Offline
Сообщений: 409
Терпение и труд всё перетрут?
|
 |
« Ответ #19 : 13.11.2010, 12:22:20 » |
|
первый параметр - полное дерево категорий $cat_tree_array, по которому функция getSubCatergoryChildsList рекурсивно выискивает все дочерние категории от заданой вторым параметром...
|
|
|
|
|
Записан
|
|
|
|
delomac
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 55
|
 |
« Ответ #20 : 13.11.2010, 15:50:18 » |
|
Уже легче, а результат её как выглядит? Можно пример небольшой.
|
|
|
|
|
Записан
|
|
|
|
tsesl
Завсегдатай
   
Репутация: +83/-0
Offline
Сообщений: 409
Терпение и труд всё перетрут?
|
 |
« Ответ #21 : 13.11.2010, 15:52:47 » |
|
ну сделай print_r на то, что вернёт. В чём проблема? Там многомерный массив. Если посмотреть внимательно на код в посте в верху страницы, то можно и без этого дебаг-вывода разобрать, впринципе
|
|
|
|
|
Записан
|
|
|
|
terr
Завсегдатай
   
Репутация: +10/-4
Offline
Пол: 
Сообщений: 750
Ученик html-я
|
 |
« Ответ #22 : 14.11.2010, 21:05:35 » |
|
tsesl а не подскажете как в моем случае поступить, чтоб вывод был как на скрине выше? а то я зашел в тупик, мнеб пинка дать в нужную сторону
|
|
|
|
|
Записан
|
|
|
|
tsesl
Завсегдатай
   
Репутация: +83/-0
Offline
Сообщений: 409
Терпение и труд всё перетрут?
|
 |
« Ответ #23 : 15.11.2010, 01:27:11 » |
|
terr, дай ссылку (можно в личку) - разверстаем вместе без проблем...
|
|
|
|
|
Записан
|
|
|
|
terr
Завсегдатай
   
Репутация: +10/-4
Offline
Пол: 
Сообщений: 750
Ученик html-я
|
 |
« Ответ #24 : 30.11.2010, 17:05:28 » |
|
не выводит подкатегории вообще((( Вобщем вот код 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&page=shop.browse&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&page=shop.browse&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, 17:12:40 от terr »
|
Записан
|
|
|
|
terr
Завсегдатай
   
Репутация: +10/-4
Offline
Пол: 
Сообщений: 750
Ученик html-я
|
 |
« Ответ #25 : 07.12.2010, 21:59:56 » |
|
вобщем ненада уже, решил просто, взял 2 переменных и просто вывел их в div таблицей и все 
|
|
|
|
|
Записан
|
|
|
|
Letos
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 27
|
 |
« Ответ #26 : 17.10.2011, 18:30:44 » |
|
А как сделать так,что бы выводился не полный список,а только первый уровень?
|
|
|
|
|
Записан
|
|
|
|
ИринаМ
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 20
|
 |
« Ответ #27 : 14.11.2011, 21:36:19 » |
|
есть каталог: Изделия для записи _ Ежедневники _Недатированые _Датированиы Брелоки _металлические _пластиковые Как сделать так что бы при нажатии на "Изделия для записи" раскрывались все подкатегории (Ежедневни, Недатированые, Датированиы). только этой категории!При этом в категории "Брелоки" не раскрываются подкатегории. А если нажать на "Брелоки" то раскоются все подкатегории.Помогите пожалуйста решить проблему!! j-1.5.17, VM-1.1.5 stable Или что бы отображалось вот так:http://www.happygifts.ru/catalog/razdel.php?SECTION_ID=75
|
|
|
|
|
Записан
|
|
|
|
|
ELLE
|
 |
« Ответ #28 : 14.11.2011, 22:45:07 » |
|
есть каталог: Изделия для записи _ Ежедневники _Недатированые _Датированиы Брелоки _металлические _пластиковые Как сделать так что бы при нажатии на "Изделия для записи" раскрывались все подкатегории (Ежедневни, Недатированые, Датированиы). только этой категории!При этом в категории "Брелоки" не раскрываются подкатегории. А если нажать на "Брелоки" то раскоются все подкатегории.Помогите пожалуйста решить проблему!! 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
|
|
|
|
|
Записан
|
|
|
|
ИринаМ
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 20
|
 |
« Ответ #29 : 16.11.2011, 10:15:28 » |
|
да стоит основной модуль. Если поставить модуль который вы предложили, при надатии на категорию будут открываться все подкатегории и подподкатегории этой категории?
|
|
|
|
|
Записан
|
|
|
|
|