Новости Joomla

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

Solser

  • Захожу иногда
  • 64
  • 16 / 1
В общем стоит задача: чтобы у товара , который показывается в карусели товаров (mod_productscroller) показывалось кроме названия товара еще и фирма-производитель (manufacturer \ mf_name). Как сделать, подскажите?
Joomla 1.5.9 + Virtuemart 1.1.3.
Заранее признателен.
*

PG II

  • Осваиваюсь на форуме
  • 19
  • 5 / 0
Т.К. совсем нет времени, могу только подсказать куда копать...

\administrator\components\com_virtuemart\classes\ps_product.php
добавить функцию...
Код
	function show_mf_name($product_id ) {
echo $this->get_mf_name( $product_id );
}

далее в файл...
\modules\mod_productscroller\mod_productscroller.php
в функцию productScroller добавить...
Код
$this->mf_name =  $params->get('mf_name', "yes");

а затем в этом же файле после строки...
Код
	$ps_product->show_snapshot( $row->product_sku, $show_price, $show_addtocart, $show_product_name );

добавить...
Код
	echo '<br>';
       $ps_product->show_mf_name($mf_name);

я думаю если что, меня поправят...
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Спасибо, похоже мысль правильная, я там же копал. Увы, пока предложенное изменение эффекта не дает. Явно где-то рядом, какой то ньюанс не учитываем.

в файле: \administrator\components\com_virtuemart\classes\ps_product.php  есть функция получения имени производителя

function get_mf_name($product_id) {
      $db = new ps_DB;

      $q = "SELECT mf_name,#__{vm}_manufacturer.manufacturer_id FROM #__{vm}_product_mf_xref,#__{vm}_manufacturer ";
      $q .= "WHERE product_id='$product_id' ";
      $q .= "AND #__{vm}_manufacturer.manufacturer_id=#__{vm}_product_mf_xref.manufacturer_id";

      $db->query($q);
      $db->next_record();
      if ($db->f("mf_name")) {
         return $db->f("mf_name");
      }
      else {
         return "";
      }
   }

После я и вставляю функцию показа show_mf_name.

function show_mf_name($product_id ) {
      echo $this->get_mf_name( $product_id );
   }

По идее здесь должно сработать.
Видимо что-то в mod_productscroller не так прописываем.
Если кто может подключиться и додавить проблему, буду признателен.
Возможно, исправление будет полезно многим, так как если в магазине много производителей похожего товара, то однозначно нужно выводить бренд в товар.
*

PG II

  • Осваиваюсь на форуме
  • 19
  • 5 / 0
Один момент упустил...
Ещё надо добавить в функцию displayScroller
Код
			$mf_name = ( $this->mf_name == "yes" ) ? true : false;

при этом у меня выводиться первый в списке производитель, при этом у всех без разбору...

прикрепляю на всякий случай...

[вложение удалено Администратором]
« Последнее редактирование: 07.03.2009, 07:50:15 от PG II »
*

morph

  • Давно я тут
  • 924
  • 105 / 0
опять повторюсь.
$ps_product->show_snapshot( $row->product_sku, $show_price, $show_addtocart, $show_product_name );
так выводяться все товары в модулях
тоесть смотрим файл ps_product функция show_snapshot
в 1.1.3 функция снипшота шаблонизирована
components\com_virtuemart\themes\default\templates\common\productsnapshot.tpl.php
значит нужны эти 2 файла для правки отображения товаров в модулях вирта.


ну а по производителю в данном случае.....добавим ссыль на него
productsnapshot.tpl.php:(да можно и в модуле)
вставим на скорую руку:
Цитировать
<?php
echo "<br>";
 require_once(CLASSPATH . 'ps_product.php' );
  $ps_product = new ps_product;
$manufacturer_id = $ps_product->get_manufacturer_id($product_id);
  $manufacturer_name = $ps_product->get_mf_name($product_id);
  $manufacturer_link = "";
  if( $manufacturer_id && !empty($manufacturer_name) ) {
    $link = "$mosConfig_live_site/index2.php?page=shop.manufacturer_page&amp;manufacturer_id=$manufacturer_id&amp;output=lite&amp;option=com_virtuemart&amp;Itemid=".$Itemid;
   $text = $manufacturer_name;
    $manufacturer_link .= "<a href=\"$link\" target=\"_blank\" title=\"$text\">$text</a>";
  }
  echo $manufacturer_link;
 
  ?>
де надо.
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Спасибо большое за помощь. Общими усилиями удалось решить задачу. Всех благодарю.
*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
А можно ли установить размер изображений в скроллере, отличный от превьюшек?
Никак сама не додумаю.. Подскажите, третий день бьюсь..
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
в ps_product.php скопировать show_snapshot, назвать её как-нибудь show_snapshot_my, поставить нужный размер и из скроллера вызывать именно её.
*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Все поняла, но вот только подскажите как "поставить нужный размер". Что именно добавить в код??
Спасибо заранее.

 Вот код сам. Где добавить размер изображения??


function show_snapshot($product_sku, $show_price=true, $show_addtocart=true, $show_product_name = true ) {
      echo $this->product_snapshot( $product_sku, $show_price, $show_addtocart, $show_product_name );
   }
« Последнее редактирование: 18.05.2009, 17:21:25 от Camelia »
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Сделала. Но где именно размер изображения установить?
Есть такая строчка. Предполагаю, что в ней. Но никаких изменений не происходит..

         $tpl->set( 'product_thumb_image', $db->f("product_full_image"), "alt=\"".$db->f("product_name")."\"");



         
*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Неа, не работает(( Видимо еще где-то поменять надо...

*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
1. В mod_productscroller.php прописала ссылку на show_snapshot_my
2. В ps_product.php добавила

function show_snapshot_my($product_sku, $show_price=true, $show_addtocart=true, $show_product_name = true ) {
      echo $this->product_snapshot( $product_sku, $show_price, $show_addtocart, $show_product_name );
   }

и ниже еще 

function product_snapshot_my( $product_sku, $show_price=true, $show_addtocart=true, $show_product_name = true ) {

      global $sess, $mm_action_url;

      $db = new ps_DB;

      require_once(CLASSPATH.'ps_product_category.php');
      $ps_product_category = new ps_product_category;

      $q = "SELECT product_id, product_name, product_parent_id, product_thumb_image,product_full_image, product_desc FROM #__{vm}_product WHERE product_sku='$product_sku'";
      $db->query( $q );

      if ($db->next_record()) {
         $product_id = $db->f("product_id" );
         $tpl = new $GLOBALS['VM_THEMECLASS']();
         
         $cid = $ps_product_category->get_cid( $product_id );

         $tpl->set( 'product_id', $product_id);
         
         $tpl->set( 'product_name', $db->f("product_name") );
         
         $tpl->set( 'product_desc', $db->f("product_desc") );
         
         $tpl->set( 'show_product_name', $show_product_name );
         
         if ($db->f("product_parent_id")) {
            $url = "?page=shop.product_details&category_id=$cid&flypage=".$this->get_flypage($db->f("product_parent_id"));
            $url .= "&product_id=" . $db->f("product_parent_id");
         } else {
            $url = "?page=shop.product_details&category_id=$cid&flypage=".$this->get_flypage($db->f("product_id"));
            $url .= "&product_id=" . $db->f("product_id");
         }
         $product_link = $sess->url($mm_action_url. "index.php" . $url);
         $tpl->set( 'product_link', $product_link );
         $tpl->set( 'product_thumb_image', $db->f("product_full_image"), "height=\"200\" alt=\"".$db->f("product_name")."\"");

         if (_SHOW_PRICES == '1' && $show_price) {
            // Show price, but without "including X% tax"
            $price = $this->show_price( $db->f("product_id"), true );
            $tpl->set( 'price', $price );
         }
         if (USE_AS_CATALOGUE != 1 && $show_addtocart && isset( $GLOBALS['product_info'][$product_id]['price']['product_price_id'] )) {
            $url = "?page=shop.cart&func=cartAdd&product_id=" .  $db->f("product_id");
            $addtocart_link = $sess->url($mm_action_url. "index.php" . $url);
            $tpl->set( 'addtocart_link', $addtocart_link );
         }
         return $tpl->fetch( 'common/productsnapshot.tpl.php');
      }
      
      return '';
      
   }


Все правильно?
3. Мы же не заменяем function product_snapshot? Он же остается?


*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
вместо
Код
function show_snapshot_my($product_sku, $show_price=true, $show_addtocart=true, $show_product_name = true ) {
      echo $this->product_snapshot( $product_sku, $show_price, $show_addtocart, $show_product_name );
   }
нужно сделать
Код
function show_snapshot_my($product_sku, $show_price=true, $show_addtocart=true, $show_product_name = true ) {
      echo $this->product_snapshot_my( $product_sku, $show_price, $show_addtocart, $show_product_name );
   }
иначе получается, что вы свою новую функцию product_snapshot_my ниоткуда не вызываете.
*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Ну точно, опять моя невнимательность!!
Только, правда, все равно ничего не выходит... Ну в чем же еще дело???

А в файле common/productsnapshot.tpl.php ничего менять не нужно?
*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Ясен. Но толку маловато...
Еще больше запутало следующее наблюдение. Поменяла в настройках "размер мини-изображения", оставила там только высоту. Так вот после этого в продуктскроллере те картинки, которые были "альбомными" действительно стали меньше (как прописала в снапшопе), а вот "книжного" формата остались прежними.
После этого вообще ничего не понимаю...
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
ага, похоже в 1.1.3 проще -в tpl всё можно сделать
вместо
Код
echo ps_product::image_tag( $product_thumb_image, "alt=\"".$product_name."\"");
поставь
Код
echo ps_product::image_tag( $product_thumb_image, "alt=\"".$product_name."\"",1,,200);

Формат imagetag:
Код
image_tag($image, $args="", $resize=1, $path_appendix='product', $thumb_width=0, $thumb_height=0 )
*

morph

  • Давно я тут
  • 924
  • 105 / 0
 return $tpl->fetch( 'common/productsnapshot.tpl.php');
так и показывает путь к шаблону снипшета :)
если копируете функцию то надо и файл productsnapshot.tpl.php новый с другим названием создать и прописать ссыль на него из функции,ну и править соответственно отображение уже в новом файле шаба.в вирте 1.1.3 почти все так выведено )
*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Спасибо, конечно, за помощь, но ничего не выходит. Начинаю отчаиваться...
Создала common/productsnapshot_my.tpl.php, в котором поменяла

echo ps_product::image_tag( $product_thumb_image, "alt=\"".$product_name."\"");

на

echo ps_product::image_tag( $product_thumb_image, "alt=\"".$product_name."\"",1,,200);

в ps_product вместо

function show_image($image, $args="", $resize=1, $path_appendix="product") {
      echo $this->image_tag($image, $args, $resize, $path_appendix);
   }

поставила

function show_image($image, $args="", $resize=1, $path_appendix="product") {
      echo $this->image_tag($image, $args="", $resize=1, $path_appendix='product', $thumb_width=0, $thumb_height=0 );
   }

а также

function image_tag($image, $args="", $resize=1, $path_appendix='product', $thumb_width=0, $thumb_height=0 ) {

Теперь картинки на сайте вообще не отображаются..

*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Все вернула назад, все равно картинки большие и разной высоты..
Beagler, пожалуйста, укажите последовательность действий. У вас на сайте, по-моему то, что нужно.
Думаю, не только мне это пригодится. vm 1.1.3
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Ясно. Ну, значит, придется скроллер совсем отключать. ((
Жаль...
*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
На http://forum.virtuemart.net/index.php?topic=53274.0 нашла вроде то, что мне нужно, но все равно до конца не пойму на счет Mootools. Куда их вставлять?..

// default image sizes
    var maxShopImageWidth = 150;
    var maxShopImageHeight = 100;
    window.addEvent( 'load', function()
    {
      var horiz = $$('.module_scroller img');
      $each( horiz, resizeHoriz );
      $$('.module_scroller').setStyle( 'visibility', 'visible' );
    });
   
    function resizeHoriz( el, i )
    {
      var oSize, ox, oy;
      oSize = el.getSize();
      ox = oSize.size.x;
      oy = oSize.size.y;
      // no sense in upscaling image - causes layout problems
      if( maxShopImageWidth < ox )
      {
        el.setStyle( 'width', maxShopImageWidth );
        el.setStyle( 'height', ( maxShopImageWidth * oy ) / ox );
      }
    }
*

Camelia

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Ну неужели никто не сталкивался с этим? Как изменить размер картинок в продукт скроллере? joom 1.0.12 vm1.1.3
*

sanax

  • Новичок
  • 1
  • 0 / 0
Подскажите, пожалуйста, как в mod_productscroller на кнопке "Add to cart" изменить надпись? Спасибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавить модуль в товар

Автор Tokyo

Ответов: 2
Просмотров: 2961
Последний ответ 11.05.2015, 20:43:32
от tierex
Логотип производителя вместо ссылки[Super-Puper]

Автор john123

Ответов: 8
Просмотров: 4300
Последний ответ 30.04.2014, 17:26:43
от terr
В VirtueMart как добавить капчу ко всем формам?

Автор tiptopvkr

Ответов: 0
Просмотров: 1218
Последний ответ 02.03.2014, 13:25:17
от tiptopvkr
Как в VirtueMart 1.1.9 stable добавить на товар картинку «новинка»?

Автор blade86

Ответов: 12
Просмотров: 16637
Последний ответ 14.09.2013, 18:45:16
от blade86
Как добавить в выподающий список сортировки - "По производителю"?

Автор al982

Ответов: 1
Просмотров: 1468
Последний ответ 10.06.2013, 20:44:58
от al982