Joomla 2.5 Другие товары категории на странице описания товара

Тема в разделе "VirtueMart", создана пользователем AKopytenko, 27.03.2014.

  1. AKopytenko
    Offline

    AKopytenko Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 963
    Симпатии:
    168
    Пол:
    Мужской
    Всем привет!
    Тема не новая, но всё же...
    Мой, не претендующий на медаль, способ вывода других товаров категории на странице описания товара :)
    (надо допилить лимит кол-ва выводимых товаров, всё никак руки не доходят)

    Код (PHP):
    1. <!-- Другие товары категории (НАЧАЛО) -->
    2. <?php
    3. $db = JFactory::getDbo();
    4. if($db->connected() == 1) {
    5.   $query = $db->getQuery(TRUE);
    6.   $query
    7.     ->select('virtuemart_product_id')
    8.     ->from('#__virtuemart_product_categories')
    9.     ->where('virtuemart_category_id = '.$this->category->virtuemart_category_id);
    10.   $db->setQuery($query);
    11.   $result = $db->loadObjectList();
    12.   foreach($result as $product_id) {
    13.     $other_products_ids[] = $product_id->virtuemart_product_id; // Массив с ID всех товаров категории
    14.   } ?>
    15.  
    16.   <div class="category-products">
    17.  
    18.   <h4><?php echo JText::_ ("COM_VIRTUEMART_OTHER_CATEGORY_PRODUCTS"); ?></h4>
    19.  
    20.   <?php
    21.   $cnt = count($other_products_ids);
    22.   for($i=0; $i < $cnt; $i++) {
    23.     $query = $db->getQuery(TRUE);
    24.     $query
    25.       ->select(array('a.virtuemart_product_id', 'a.published', 'b.product_name', 'c.product_price'))
    26.       ->from('#__virtuemart_products AS a')
    27.       ->join('INNER', '#__virtuemart_products_ru_ru AS b ON b.virtuemart_product_id = '.$other_products_ids[$i])
    28.       ->join('LEFT', '#__virtuemart_product_prices AS c ON c.virtuemart_product_id = '.$other_products_ids[$i])
    29.       ->where('a.virtuemart_product_id = '.$other_products_ids[$i]);
    30.   $db->setQuery($query);
    31.   $products_result = $db->loadObjectList();
    32.  
    33.   $query = $db->getQuery(TRUE);
    34.   $query
    35.     ->select(array('a.virtuemart_media_id', 'b.file_url'))
    36.     ->from('#__virtuemart_product_medias AS a')
    37.     ->join('INNER', '#__virtuemart_medias AS b ON b.virtuemart_media_id = a.virtuemart_media_id')
    38.     ->where('a.virtuemart_product_id = '.$other_products_ids[$i]);
    39.   $db->setQuery($query);
    40.   $medias_result = $db->loadObjectList();
    41.  
    42.   foreach($products_result as $other_product) {
    43.     if($other_product->published && $other_product->virtuemart_product_id != $this->product->virtuemart_product_id) {
    44.       $product_link = JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $other_product->virtuemart_product_id . '&virtuemart_category_id=' . $this->product->virtuemart_category_id );
    45.       ?>
    46.     <div class="category-product">
    47.       <div class="category-product-image">
    48.         <a href="<?php echo $product_link; ?>">
    49.         <img src="<?php echo $medias_result[0]->file_url; ?>" />
    50.         </a>
    51.       </div>
    52.       <div class="category-product-link">
    53.         <a href="<?php echo $product_link; ?>"><?php echo $other_product->product_name; ?></a>
    54.       </div>
    55.       <div class="category-product-price">
    56.         <?php echo round($other_product->product_price); ?> руб.
    57.       </div>
    58.     </div>
    59.     <?php }
    60.     }
    61.   }
    62.   ?>
    63.  
    64.   </div>
    65.  
    66. <?php
    67. } else {
    68.   echo 'Database connection error';
    69. }
    70. ?>
    71. <!-- Другие товары категории (КОНЕЦ) -->


    P.S.: Не забудьте добавить языковую константу "COM_VIRTUEMART_OTHER_CATEGORY_PRODUCTS" с переводом в файл локализации...
     
  2.  

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

Загрузка...