Помогите подправить модуль вывода категорий

Тема в разделе "Модули Joomla для Virtuemart", создана пользователем Light_And_Dark, 12.11.2010.

  1. Offline

    Light_And_Dark Недавно здесь

    Регистрация:
    17.07.2010
    Сообщения:
    3
    Симпатии:
    1
    Пол:
    Женский
    Хочу сделать модуль вывода подкатегорий, что бы выводит имеено подкатегории товаров визуально, так как выводит продукты в категориях модуль jxtc_vmshowcase в шаблоне Teqmart.
    За основу взяла модуль frontpage_categories и подправила вывод информации.
    Но столкнулась с двумя проблемами:
    1. модуль выводит подкатегории, но вывод информации о под категориях не под описанием гланой категории, а на категорию ниже. В иноге все сбивается. На рисунке стрелками показано в какой строке должны быть указанные строки подкатегорий.
    Как это исправить не могу понят.
    2.Хотелось бы, что бы система не все подряд главные катеогрии мне выдавала, а только выбранные, через админ Джумлы. Что я не знаю как реализовать.

    Правку осуществляла только php фаилов, ни css, ни xml не трогала.

    Помогите, пожалуйста, разобраться с этим.
     

    Вложения:

    MrPupkins нравится это.
  2.  
  3. Offline

    Light_And_Dark Недавно здесь

    Регистрация:
    17.07.2010
    Сообщения:
    3
    Симпатии:
    1
    Пол:
    Женский
    mod_frontpage_categories.php

    Код (PHP):
    1. <?php
    2. if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
    3.  
    4. include_once "mod_frontpage_categories_functions.php";
    5.    
    6. global $jscook_type, $jscookMenu_style, $jscookTree_style;
    7.  
    8. // Load the virtuemart main parse code
    9. if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
    10.     require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
    11.     $mosConfig_absolute_path = realpath( dirname(__FILE__).'/../..' );
    12. } else {
    13.     require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
    14. }
    15.  
    16. $category_id = vmGet( $_REQUEST, 'category_id');
    17.  
    18. /* Get module parameters */
    19. $class_sfx = $params->get( 'class_sfx', "" );
    20. $num_columns = $params->get( 'num_columns', "3" );
    21. $mod_height = $params->get( 'mod_height', "200" );
    22. $mod_width = $params->get( 'mod_width', "700" );
    23. $cat_height = $params->get( 'cat_height', "90" );
    24. $image_width = $params->get( 'image_width', "90" );
    25. $sub_categories_display = $params->get( 'sub_categories_display', '1' );
    26. $_REQUEST['root_label'] = $params->get( 'root_label', 'Shop' );
    27. $class_mainlevel = "mainlevel".$class_sfx;
    28.  
    29.  
    30. global $VM_LANG, $sess;
    31. if( vmIsJoomla('1.5' )) {
    32.     $vm_path = $mosConfig_absolute_path.'/modules/mod_virtuemart';
    33. } else {
    34.     $vm_path = $mosConfig_absolute_path.'/modules';
    35. }
    36.  
    37. require_once(CLASSPATH.'ps_product_category.php');
    38. $ps_product_category = new ps_product_category();
    39.  
    40. #echo $ps_product_category->get_category_tree( $category_id, $class_mainlevel );
    41. #echo $ps_product_category->get_subcategory( '1'); '.$mosConfig_absolute_path.'
    42. echo '<link rel="stylesheet" href="modules/mod_frontpage_categories/mod_frontpage_categories.css" type="text/css" />
    43. <div style="width: '.$mod_width.'px;background:#FFF;">';
    44. echo get_category_tree2( $category_id, $class_mainlevel,$num_columns,$cat_height,$image_width,$sub_categories_display);
    45. echo '</div>';
    46.  
    47.  
    48.  ?>


    mod_frontpage_categories_functions.php

    Код (PHP):
    1. <?php
    2.  
    3.  
    4.  
    5. function find_cat_image($cat_id,$db_username,$db_password,$db_name) {
    6.     $con = mysql_connect("localhost",$db_username,$db_password);
    7.     if (!$con)
    8.       {
    9.       die('Could not connect: ' . mysql_error());
    10.       }
    11.  
    12.     mysql_select_db($db_name, $con);
    13.    
    14.     $q = 'SELECT * FROM jos_vm_category WHERE category_id='.$cat_id;
    15.     $return = mysql_query( $q );
    16.     $row = mysql_fetch_array($return);
    17.     $return_val = $row['category_thumb_image'];
    18.     return $return_val;
    19.     }
    20.  
    21.  
    22.  
    23. /**
    24.      * This function is used for the frontend to display a
    25.      * complete link list of top-level categories
    26.      *
    27.      * @param int $category_id The category to be highlighted
    28.      * @param string $links_css_class The css class that marks mainlevel links
    29.      * @param string $list_css_class (deprecated)
    30.      * @param string $highlighted_style The css styles that format the hightlighted category
    31.      * @return string HTML code with the link list
    32.      */
    33.  
    34.     function get_category_tree2( $category_id=0,
    35.                 $links_css_class="mainlevel",$numcolumns=5,
    36.                 $cat_height,$image_width,
    37.                 $sub_categories_display=1,
    38.                 $list_css_class="mm123",
    39.                 $highlighted_style="font-style:italic;") {
    40.         global $sess;
    41.         $config =& JFactory::getConfig();
    42.         $db_username = $config->getValue( 'config.user' );
    43.         $db_password = $config->getValue( 'config.password' );
    44.         $db_name = $config->getValue( 'config.db' );
    45.         $categories = ps_product_category::getCategoryTreeArray(); // Get array of category objects
    46.         $result = ps_product_category::sortCategoryTreeArray($categories); // Sort array of category objects
    47.         $row_list = $result['row_list'];
    48.         $depth_list = $result['depth_list'];
    49.         $category_tmp = $result['category_tmp'];
    50.         $nrows = sizeof($category_tmp);
    51.         $numcolumns = 100/$numcolumns-3;
    52.         $category_list = $result ['category_list'];
    53.         $k = 0;
    54.         $tt = 0;
    55.         // Copy the Array into an Array with auto_incrementing Indexes
    56.         $key = array_keys($categories); // Array of category table primary keys
    57.        
    58.         $nrows = $size = sizeOf($key); // Category count
    59.  
    60.         $html = "";
    61.  
    62.         $pos_cat = $neg_cat = array() ;
    63.         $cat_ids = explode("|",$category_list);
    64.         if (count($cat_ids) > 0) {
    65.         foreach ($cat_ids as $cat_id) {
    66.             if ($cat_id < 0) $neg_cat[] = abs($cat_id);
    67.                 else if ($cat_id > 0) $pos_cat[] = $cat_id;
    68.                 }
    69.             }
    70.        
    71.         // Find out if we have subcategories to display
    72.         $allowed_subcategories = Array();
    73.         if( !empty( $categories[$category_id]["category_parent_id"] ) ) {
    74.             // Find the Root Category of this category
    75.             $root = $categories[$category_id];
    76.             $allowed_subcategories[] = $categories[$category_id]["category_parent_id"];
    77.             // Loop through the Tree up to the root
    78.             while( !empty( $root["category_parent_id"] )) {
    79.                 $allowed_subcategories[] = $categories[$root["category_child_id"]]["category_child_id"];
    80.                 $root = $categories[$root["category_parent_id"]];
    81.             }
    82.         }
    83.         // Fix the empty Array Fields
    84.         if( $nrows < count( $row_list ) ) {
    85.             $nrows = count( $row_list );
    86.         }
    87.  
    88.         // Now show the categories
    89.         for($n = 0 ; $n < $nrows ; $n++) {
    90.  
    91.             if( !isset( $row_list[$n] ) || !isset( $category_tmp[$row_list[$n]]["category_child_id"] ) )
    92.             continue;
    93.             if( $category_id == $category_tmp[$row_list[$n]]["category_child_id"] )
    94.             $style = $highlighted_style;
    95.             else
    96.             $style = "";
    97.  
    98.             $allowed = true;
    99.             if( $depth_list[$n] > 0 ) {
    100.                 // Subcategory!
    101.                 if( isset( $root ) && in_array( $category_tmp[$row_list[$n]]["category_child_id"], $allowed_subcategories )
    102.                 || $category_tmp[$row_list[$n]]["category_parent_id"] == $category_id
    103.                 || $category_tmp[$row_list[$n]]["category_parent_id"] == @$categories[$category_id]["category_parent_id"]) {
    104.                     $allowed = true;
    105.  
    106.                 }
    107.             }
    108.             else
    109.             $allowed = true;
    110.             $append = "";
    111.            
    112.             if( $allowed ) {
    113.                 if( $style == $highlighted_style ) {
    114.                     $append = 'id="active_menu2"';
    115.                 }
    116.                 if( $depth_list[$n] > 0) {
    117.                     $css_class = "sublevel_frontpage_categories";
    118.                     $ttype = 2;
    119.                 }
    120.                 else {
    121.                     $css_class = $links_css_class;
    122.                     $css_class = 'mainlevel_frontpage_categories';
    123.                     $ttype = 1;
    124.                 }
    125.  
    126.                 $catname = shopMakeHtmlSafe( $category_tmp[$row_list[$n]]["category_name"] );
    127.                
    128.                 if ($ttype == 1) {
    129.                     if ($k > 0) {
    130.                         $html .= '</div></div><br>'.$k;
    131.                         }
    132.                     else {
    133.                         #$html .= '<div style="float:left;text-align: left;padding:3px;background:#000;width:'.$numcolumns.'%;margin:5px;border:100px solid #888;">testtest';
    134.                        $html .= $k;
    135.                         }
    136.  
    137.                     $cat_image = 'components/com_virtuemart/shop_image/category/';
    138.                     $base_image = find_cat_image($category_tmp[$row_list[$n]]["category_child_id"],$db_username,$db_password,$db_name);
    139.                        
    140.                        
    141.                         if ($base_image != '') {
    142.                             $cat_image .= $base_image;
    143.                             list($width, $height, $ttype, $attr) = getimagesize($cat_image);
    144.                            
    145.                             $ttarget = $image_width;
    146.  
    147.                             if ($width != '' && $height != '') {
    148.                                 if ($width > $height) {
    149.                                 $percentage = ($ttarget / $width);
    150.                                 } else {
    151.                                 $percentage = ($ttarget / $width);
    152.                                 }
    153.  
    154.                                 //gets the new value and applies the percentage, then rounds the value
    155.  
    156.                                 $width = round($width * $percentage);
    157.                                 $height = round($height * $percentage);
    158.                             }
    159.                         }
    160.                     }
    161.                 if ($depth_list[$n] < $sub_categories_display+1) {
    162.                     if ($depth_list[$n] == 0) {
    163.                             if ($tt == 0) {
    164.  
    165.                                 $html .= '<div class="listheading">';
    166.                                 $html .= '<div style="margin-right:7px; margin-top:1px; float:left; padding-left:3px;"><img src="/images/arrow.png"></div>';
    167.                                 $html .= '<p style="float:left; margin-top:-2px; font-size: 12px; font-weight: bold;"><a href="'. $sess->url(URL."index.php?page=shop.browse&amp;category_id=".$category_tmp[$row_list[$n]]["category_child_id"]) .'" '.$append.'" style="color#999999 !important!">'.$catname.'</a></p></div>';
    168.                                 $html .= "<div><table border='0' cellpadding='0' cellspacing='0' style='float:left;width:700px'><tr ></tr></div>";
    169.                             }
    170.                             else {
    171.                                 $html .= '</tr></div>';
    172.                                 $tt = 0;
    173.                                 $html .= '<div class="listheading">';
    174.                                 $html .= '<div style="margin-right:7px; margin-top:1px; float:left; padding-left:3px;"><img src="/images/arrow.png"></div>';
    175.                                 $html .= '<p style="float:left; margin-top:-2px; font-size: 12px; font-weight: bold;"><a href="'. $sess->url(URL."index.php?page=shop.browse&amp;category_id=".$category_tmp[$row_list[$n]]["category_child_id"]) .'" '.$append.'" style="color#999999 !important!">'.$catname.'</a></p></div>';
    176.                                 $html .= "</div><div><table border='0' cellpadding='0' cellspacing='0' style='float:left;width:700px'><tr >";
    177.                             }
    178.                     }
    179.                     else {
    180.                             $html .= "<td width='20%' align='center' valign='middle' ><div style='padding:0px 20px 0px 0px;margin:0px 10px 0px 3px; width:116px; border-right:1px dotted #dddddd; '>";
    181.                             $html .= '<a class="listtext" title="'.$catname.'" href="'. $sess->url(URL."index.php?page=shop.browse&amp;category_id=".$category_tmp[$row_list[$n]]["category_child_id"]).'">'.$catname.'</a>';
    182.                             $html .= '<a title="'.$catname.'" href="'. $sess->url(URL."index.php?page=shop.browse&amp;category_id=".$category_tmp[$row_list[$n]]["category_child_id"]).'"><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.'style="margin-top:-33px;padding:0px" title="'.$catname.'" alt="'.$catname.'" /></a>';
    183.                             $html .= '<div class="listdotted">';
    184.                             $html .= '<div align="center" style="padding-top:5px;"><a href="href="'. $sess->url(URL."index.php?page=shop.browse&amp;category_id=".$category_tmp[$row_list[$n]]["category_child_id"]).'"><img src="/images/democontent/readmore.gif">';
    185.                             $html .= '</a> </div></td>';
    186.                             $tt = $tt + 1;
    187.  
    188.                            
    189.                     }
    190.                 }
    191.  
    192.                 $k = $k + 1;
    193.             }
    194.         }
    195.         $html .= '</td></div>';
    196.         return $html;
    197.     }
     

Поделиться этой страницей

Загрузка...