Новости Joomla

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором представлены новости, интервью, рецензии и есть небольшой магазин на JoomShopping. Возникла необходимость внутри Joomla статей вставлять упоминание релиза и кнопочку «добавить в корзину». Я взял плагин WT JShopping products anywhere Сергея Толкачева (@webtolkru). Плагин отображает название товара и ссылку. При помощи напильника, ИИ и навыков вёрстки появился Uikit макет для шаблонов на базе Yootheme Pro.Учитываается мобильная версия - телефоны и ipad.Кнопка добавления в корзину работает по Ajax и появляется всплывающее окно (Notification Bar от Uikit) с информацией.Пока это базовый вариант, требующий доведения до лоска, однако он уже работает и его можно применять на проектах.Взять макет можно здесь.А плагин вставки товаров в материалы можно забрать здесь.Приветствуется доведение до ума и оформление в виде PR.

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

👩‍💻 WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla.Пакет плагинов галереи изображений и видео для вставки в материалы и модули Joomla, а так же везде, где работают плагины группы content. Поддержка собственных макетов вывода для галерей. Смешанные фото+видео галереи. Плагин создан как замена Simple Image Gallery и поддерживает синтаксис {gallery}{/gallery}.👩‍💻 v.1.2.3. Что нового?- Обработка вступительного и полного текста для материалов Joomla. Добавлена обработка шорткодов в полном и вступительном текстах материалов Joomla.- Системные требования. Повышены минимальные требования до Joomla 5 и PHP 8.1.- Мелкие правки. Исправлена ошибка работы макета по умолчанию в плагине контента.- Joomla 6. Пакет плагинов успешно протестирован на Joomla 6.Страница расширения.GitHub расширенияJoomla Extensions Directory@joomlafeed#joomla #расширения

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

Обсуждения этих вещей не нашел, поэтому создаю тему.
Речь о VirtueMart 1.1.4
Дело в том, что мне нужно выводить "последние товары" только на фронтпейдже виртмарта. Для этого в настройках->сайт->настройки шаблона есть опция "Show the latest products on the frontpage?".
Но она не работает! В файле shopIndex.tpl.php есть блок, после "спец. предложений", который и должен выводить "последние товары". В нём идет обращение к функции latestProducts, которая, в свою очередь, определена в файле classes\ps_product.php. Вот её определение:
Код
function latestProducts($random, $products) { 
        return "";
    }

Клёво, да?   :dry:
А также в этом блоке есть коммент:
Код
//latestproducts(random, no_of_products, month_based, 
//category_based) no_of_products 0 = all else numeric amount
//edit latestproduct.tpl.php to edit layout  
Так вот, вопросы:
1. Где взять файл latestproduct.tpl.php, о котором написано в shopIndex.tpl.php ? Ибо в дистрибе его нет и в других шаблонах виртмарта я его тоже не встречал.   :(
2. Есть ли у кого-нибудь реализация функции "latestProducts"? Google друг, но тут даже он не помог, может просто искать не умею.
Стандартный модуль LatestProd устанавливал - ничего не изменилось. Он болтается и на фронтпейдже и при просмотре категорий и при просмотре товара, а мне нужно ТОЛЬКО на главной странице. В коде упомянутых файлов после его установки тоже ничего не поменялось.
Возможно я заблудился в трех соснах и вообще не туда полез. Короче нужен ваш хелп.  >:(
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Похоже, что эта фишка в версии 1.1.4 еще не реализована, так как в пакете нет модуля для вывода последнего товара. Также при переключении чекбокса "Show the latest products on the frontpage?" - в конфигурационный файл (theme.config.php) ничего не записывается.
Даже при ручном редактировании переменной showlatest=1 - в единицу на главной ничего не отображается, так как модуль не стоит.

У меня нет
Цитировать
Стандартный модуль LatestProd
- поэтому проверить не могу. Попробуй отключить этот модуль в менеджере модулей, а конфиг. файле (указан выше) выставить в "1".
*

strelok_im

  • Новичок
  • 2
  • 1 / 0
Если еще актуально:

В админке VirtueMart предусмотрен вывод featured products(Специальное предложение) и latest products(новые товары) на главной странице(shop.index). Но отображаются только featured products.

Файла latestProducts.tpl.php отвечающего за вывод новых товаров нет. В файле administrator\components\com_virtuemart\classes\ps _product.php функция вывода latest products имеет вид:


function latestProducts($random, $products, $categories) {
        return ""; 
}


Не понятно почему, но разработчики VirtueMart либо забыли прописать данную функцию, либо забыли. Далее будем исправлять это недоразумение.

В файле administrator\components\com_virtuemart\classes\ps _product.php заменяем функцию latestProducts:


function latestProducts($random, $products, $categories) {
      //return "";
      global $VM_LANG;
      require_once( CLASSPATH . 'ps_product_attribute.php');
      $ps_product_attribute = new ps_product_attribute();
      $db = new ps_DB;
      $tpl = new $GLOBALS['VM_THEMECLASS']();
      $category_id = null;
      if($categories) {
          $category_id = vmRequest::getInt('category_id');
      }
        if ( $category_id ) {
          $q  = "SELECT DISTINCT product_sku,#__{vm}_product.product_id,product_name,product_s_desc,product_thumb_image, product_full_image, product_in_stock, product_url FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category WHERE \n";
          $q .= "(#__{vm}_product.product_parent_id='' OR #__{vm}_product.product_parent_id='0') \n";
          $q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id \n";
          $q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id \n";
            $q .= "AND #__{vm}_category.category_id='$category_id' \n";
          $q .= "AND #__{vm}_product.product_publish='Y' \n";
          if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") {
            $q .= " AND product_in_stock > 0 \n";
          }
          $q .= 'ORDER BY #__{vm}_product.product_id DESC LIMIT 0, '.(int)$products;
        }
        else {
          $q  = "SELECT DISTINCT product_sku,product_id,product_name,product_s_desc,product_thumb_image, product_full_image, product_in_stock, product_url FROM #__{vm}_product WHERE ";
          $q .= "(#__{vm}_product.product_parent_id='' OR #__{vm}_product.product_parent_id='0') AND vendor_id='".$_SESSION['ps_vendor_id']."' ";
          $q .= "AND #__{vm}_product.product_publish='Y' ";
          if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") {
            $q .= " AND product_in_stock > 0 ";
          }
          $q .= 'ORDER BY #__{vm}_product.product_id DESC LIMIT 0, '.(int)$products;
        }
        $db->query($q);
        // Output using template
        if( $db->num_rows() > 0 ) {
          $i = 0;
            $latest_products = array();
          while($db->next_record()) {
                //$flypage = $this->get_flypage($db->f("product_id"));
                $latest_products[$i]['product_sku'] = $db->f("product_sku");
                $latest_products[$i]['product_name'] = $db->f("product_name");
                $price = "";
                if (_SHOW_PRICES == '1') {
            // Show price, but without "including X% tax"
            $price = $this->show_price( $db->f("product_id"), false );
          }
                $latest_products[$i]['product_price'] = $price;
                $latest_products[$i]['product_s_desc'] = $db->f("product_s_desc");
                $latest_products[$i]['product_url'] = $db->f("product_url");
                $latest_products[$i]['product_thumb'] = $db->f("product_thumb_image");
                $latest_products[$i]['product_full_image'] = $db->f("product_full_image");
                $latest_products[$i]['product_id'] = $db->f("product_id");
                $latest_products[$i]['flypage'] = $flypage;
                $latest_products[$i]['form_addtocart'] = "";
                if (USE_AS_CATALOGUE != '1' && $price != ""
                  && !stristr( $price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL') )
                  && !$this->product_has_attributes( $db->f('product_id'), true )
                  && $tpl->get_cfg( 'showAddtocartButtonOnProductList' ) ) {
              $tpl->set( 'i', $i );
              $tpl->set( 'product_id', $db->f('product_id') );
              $tpl->set( 'ps_product_attribute', $ps_product_attribute );
              $tpl->set( 'product_in_stock', $db->f('product_in_stock'));
              $latest_products[$i]['form_addtocart'] = $tpl->fetch( 'browse/includes/addtocart_form.tpl.php' );
              $latest_products[$i]['has_addtocart'] = true;
            }
            $i++;
          }
            $tpl->set( 'latest_products', $latest_products );
            return $tpl->fetch( 'common/latestProducts.tpl.php');
        }   
    }


Далее в папке components\com_virtuemart\theme\default\templates\common\ создаем файл latestProducts.tpl.php в нем прописываем код:


<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
$iCol = 1;
  //Number of latest products to show per row
  $latest_per_row = 2;
  //Set the cell width
  $cellwidth = intval( (100 / $latest_per_row) - 6 );
  if( empty( $latest_products )) {
  return; // Do nothing, if there are no latest products!
  }
  echo "<h3 style=\"margin-top:-10px\">".$VM_LANG->_('VM_LATEST_PRODUCT')."</h3>";
  foreach( $latest_products as $latest ) {
  ?>
  <div class="browseProductContainer latestProducts" style="float:left;width:<?php echo $cellwidth ?>%;text-align:top;padding:0px; border:1px solid #dedede; margin:5px; padding:0 4px; height:230px;" >
 
  <?php
  if ( $latest["product_thumb"] ) { ?>
  <div class="browseProductImageContainer image_a_gauche">
  <a title="<?php echo $latest["product_name"] ?>" href="<?php $sess->purl(URL."index.php?option=com_virtuemart&amp;page=shop.product_details&amp;flypage=".$latest["flypage"]."&amp;product_id=".$latest["product_id"])?>">
  <?php echo ps_product::image_tag( $latest["product_thumb"], " class='browseProductImage' border=\"0\" alt=\"".$latest["product_name"]."\"");
  ?></a></div>
  <?php
  }?>
 
  <h3 class="browseProductTitle"><a title="<?php echo $latest["product_name"] ?>" href="<?php $sess->purl(URL."index.php?option=com_virtuemart&amp;page=shop.product_details&amp;flypage=".$latest["flypage"]."&amp;product_id=".$latest["product_id"])?>">
  <?php echo $latest["product_name"] ?></a></h3>
  <div class="browseProductDescription"><?php echo $latest['product_s_desc'] ?><br /></div>
  <div class"homeAddToCart" style="text-align:right; padding:5px 10px;"><div style="float:left"><?php echo $latest['product_price'] ?></div><?php echo ereg_replace('<input type="submit"','<br><input type="submit"',$latest['form_addtocart']);?></div>
 
  </div>
  <?php
  // Do we need to close the current row now?
  if ($iCol == $latest_per_row) { // If the number of products per row has been reached
  echo "<br style=\"clear:both;\" />\n";
  $iCol = 1;
  }
  else {
  $iCol++;
  }
  }
?>
  <br style="clear:both;" />


Далее в в файле components\com_virtuemart\theme\defa ult\templates\common\shopIndex.tpl.php делаем замену кода:

ps_product::latestProducts(true,4,false,false);

на код:

echo $ps_product->latestProducts(true,4,false,false);

Это все!

(Источник: http://slaffko.name/virtuemart/86-latest-products-on-frontpage.html)
*

Zyama

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Большое человеческое спасибо
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как к товару прикрипить файл (PDF,ZIP,RAR)

Автор Kuzmitch

Ответов: 2
Просмотров: 2095
Последний ответ 15.04.2011, 03:21:51
от Kuzmitch