link w obrazku kategoria, produkt
Strona 1 z 2 12 OstatniOstatni
Wyniki 1 do 10 z 11

Temat: link w obrazku kategoria, produkt

  1. #1
    Przeglądacz
    Dołączył
    28-07-2015
    Wpisy
    31
    Punkty
    2

    Domyślny link w obrazku kategoria, produkt

    Cześć!
    Mam pytanie do znawców VirtueMart.
    Jak podlinkować zdjęcia w kategorii i danego produktu ? Zamiast klikać na tekst, bezpośrednio na zdjęcie

    dla zobrazowania: http://demo.omegatheme.com/index.php...mla&i=ot_keila
    Zamiast kliknąć w flower & plant kliknąć w samo zdjęcie.
    Z góry dziękuje za pomoc

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Senior Bazyl awatar
    Dołączył
    02-08-2008
    Skąd
    Skierniewice
    Wpisy
    7 693
    Punkty
    574

    Domyślny

    Hej,

    należy zmodyfikować szablon VM.

  4. #3
    Przeglądacz
    Dołączył
    28-07-2015
    Wpisy
    31
    Punkty
    2

    Domyślny

    Dzięki za informacje. Szukam instrukcji jak to można zrobić w miarę prosty sposób.

  5. #4
    Przeglądacz
    Dołączył
    28-07-2015
    Wpisy
    31
    Punkty
    2

    Domyślny

    Znalazłem na zagranicznym forum że muszę podmienić kod w pliku components\com_virtuemart\views\category\tmpl\defa ult.php jak poniżej. Tylko jest pjeden problem - nie mam takiego kodu w tym pliku. Posiadam VM 3

    z tego
    <?php /** @todo make image popup */
    echo $product->images[0]->displayMediaThumb ('class="browseProductImage" border="0" title="' . $product->product_name . '" ', TRUE, 'class="modal"');
    ?>

    na
    <?php /** @todo make image popup */

    echo JHTML::_ ( 'link', JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetai ls&virtuemart_product_id=' .



    $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id ),



    $product->images[0]->displayMediaThumb( 'class="featuredProductImage" border="0"',false,'class="modal"' ) );

    ?>


  6. #5
    Przeglądacz Hajmus awatar
    Dołączył
    20-08-2014
    Skąd
    Warszawa
    Wpisy
    84
    Punkty
    11

    Domyślny

    Być może kod, który znalazłeś dotyczy starszej wersji VM niż posiadasz na serwerze. Jaką wersje VM3 dokładnie posiadasz, no i podlinkuj zawartość default.php swojego

  7. #6
    Przeglądacz
    Dołączył
    28-07-2015
    Wpisy
    31
    Punkty
    2

    Domyślny

    Chyba jets tak jak mówisz. Wersja VirtueMart 3.0.18

    Kod PHP:
    <?php/** * * Show the products in a category * * @package    VirtueMart * @subpackage * @author RolandD * @author Max Milbers * @todo add pagination * @link http://www.virtuemart.net * @copyright Copyright (c) 2004 - 2010 VirtueMart Team. 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. * @version $Id: default.php 8811 2015-03-30 23:11:08Z Milbo $ */
    defined ('_JEXEC') or die('Restricted access');
    ?> <div class="category-view"> <?php$js "jQuery(document).ready(function () {    jQuery('.orderlistcontainer').hover(        function() { jQuery(this).find('.orderlist').stop().show()},        function() { jQuery(this).find('.orderlist').stop().hide()}    )});";vmJsApi::addJScript('vm.hover',$js);
    if (empty(
    $this->keyword) and !empty($this->category)) {    ?><div class="category_description">    <?php echo $this->category->category_description?></div><?php}
    // Show child categoriesif (VmConfig::get ('showCategory', 1) and empty($this->keyword)) {    if (!empty($this->category->haschildren)) {
            
    echo ShopFunctionsF::renderVmSubLayout('categories',array('categories'=>$this->category->children));
        }}
    if(
    $this->showproducts){?><div class="browse-view"><?php
    if (!empty($this->keyword)) {    //id taken in the view.html.php could be modified    $category_id  = vRequest::getInt ('virtuemart_category_id', 0); ?>    <h3><?php echo $this->keyword?></h3>
        <form action="<?php echo JRoute::('index.php?option=com_virtuemart&view=category&limitstart=0'FALSE); ?>" method="get">
            <!--BEGIN Search Box -->        <div class="virtuemart_search">            <?php echo $this->searchcustom ?>            <br/>            <?php echo $this->searchCustomValues ?>            <input name="keyword" class="inputbox" type="text" size="20" value="<?php echo $this->keyword ?>"/>            <input type="submit" value="<?php echo vmText::('COM_VIRTUEMART_SEARCH'?>" class="button" onclick="this.form.keyword.focus();"/>        </div>        <input type="hidden" name="search" value="true"/>        <input type="hidden" name="view" value="category"/>        <input type="hidden" name="option" value="com_virtuemart"/>        <input type="hidden" name="virtuemart_category_id" value="<?php echo $category_id?>"/>
        </form>    <!-- End Search Box --><?php  ?>
    <?php 
    // Show child categories
        
    ?><div class="orderby-displaynumber">    <div class="floatleft vm-order-list">        <?php echo $this->orderByList['orderby']; ?>        <?php echo $this->orderByList['manufacturer']; ?>    </div>    <div class="vm-pagination vm-pagination-top">        <?php echo $this->vmPagination->getPagesLinks (); ?>        <span class="vm-page-counter"><?php echo $this->vmPagination->getPagesCounter (); ?></span>    </div>    <div class="floatright display-number"><?php echo $this->vmPagination->getResultsCounter ();?><br/><?php echo $this->vmPagination->getLimitBox ($this->category->limit_list_step); ?></div>

        <div class="clear"></div></div> <!-- end of orderby-displaynumber -->
    <h1><?php echo vmText::_($this->category->category_name); ?></h1>
        <?php    if (!empty($this->products)) {    $products = array();    $products[0] = $this->products;    echo shopFunctionsF::renderVmSubLayout($this->productsLayout,array('products'=>$products,'currency'=>$this->currency,'products_per_row'=>$this->perRow,'showRating'=>$this->showRating));
        
    ?>
    <div class="vm-pagination vm-pagination-bottom"><?php echo $this->vmPagination->getPagesLinks (); ?><span class="vm-page-counter"><?php echo $this->vmPagination->getPagesCounter (); ?></span></div>
        <?php} elseif (!empty($this->keyword)) {    echo vmText::('COM_VIRTUEMART_NO_RESULT') . ($this->keyword ' : (' $this->keyword ')' '');}?></div>
    <?php ?></div>
    <?php$j "Virtuemart.container = jQuery('.category-view');Virtuemart.containerSelector = '.category-view';";
    vmJsApi::addJScript('ajaxContent',$j);?><!-- end browse-view -->

  8. #7
    Bywalec
    Dołączył
    17-04-2014
    Skąd
    Szczecin
    Wpisy
    360
    Punkty
    42

    Domyślny

    Modyfikacji trzeba dokonać nadpisywaniem w szablonie.
    W zależności jak szablon jest poskładany. Powyzszy plik który wskazałeś odpowiada za wyświetlanie kategori/podkategorii w widoku przeglądu kategorii, a nie wyświetlania samych produktów.

    Poszukaj w:
    Kod:
    components\com_virtuemart\views\category\tmpl\default.php
    Lub w szablonie odpowiednika - nadpisywania szablonem.

    Dokładnie szukaj:
    Kod PHP:
    echo shopFunctionsF::renderVmSubLayout($this->productsLayout,array('products'=>$this->products,'currency'=>$this->currency,'products_per_row'=>$this->perRow,'showRating'=>$this->showRating)); 
    Powyższe odpowiada za ładowanie sublayots dla wyglądu pojedynczego produktu.
    Kod:
    components\com_virtuemart\sublayouts\products.php
    Lub odpowiednik nadpisywania w Twoim szablonie.

    Musisz zmodyfikować sublayouts\products.php - oczywiście jeśli Twój szablon nadpisuje widoki w taki sam sposób jak oryginalny Virtuemart.
    Trzeba dążyć do doskonałości w tym co się robi, jeśli robisz coś dobrze zrób wszystko aby robić to jeszcze lepiej!

    Potrzebujesz pomocy przy Virtuemart 3? - napisz tutaj

    Portfolio - sulzycki.com.pl

  9. #8
    Przeglądacz
    Dołączył
    28-07-2015
    Wpisy
    31
    Punkty
    2

    Domyślny

    Dokładnie pisząc to chodzi mi o podlinkowanie zdjęć zarówno w kategoriach jak i produktach.

    Znalazłem ten kod
    Cytat Wysłane przez noras Zobacz wiadomość
    Dokładnie szukaj:
    Kod PHP:
    echo*shopFunctionsF::renderVmSubLayout($this->productsLayout,array('products'=>$this->products,'currency'=>$this->currency,'products_per_row'=>$this->perRow,'showRating'=>$this->showRating));*
    I teraz pytanie co tam wpisać ?
    ten kod
    Kod PHP:
    <?php /** @todo make image popup */

                   
    echo JHTML::'link'JRoute::'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' 



    $product->virtuemart_product_id '&virtuemart_category_id=' $product->virtuemart_category_id ), 



    $product->images[0]->displayMediaThumb'class="featuredProductImage" border="0"',false,'class="modal"' ) );

                   
    ?>
    Czy coś innego ? Podstawowe elementy ogarniam ale tu nie mam pojęcia co wpisać ;/

    Z góry dzięki za czas i podpowiedzi.

  10. #9
    Bywalec
    Dołączył
    17-04-2014
    Skąd
    Szczecin
    Wpisy
    360
    Punkty
    42

    Domyślny

    Jeśli znalazłeś:
    Kod PHP:
    echo shopFunctionsF::renderVmSubLayout($this->productsLayout,array('products'=>$this->products,'currency'=>$this->currency,'products_per_row'=>$this->perRow,'showRating'=>$this->showRating)); 
    To znaczy że szablon szuka sublayots z których VM korzysta do wygenerowania widoku pojedynczego produktu w widoku kategorii.

    Sublayots - to bardzo fajna sprawa w VMie. Działa to w taki sposób że, jak zmodyfikujesz sobie przycisk 'Dodaj do koszyka', albo wyświetlanie cen produktu. To wystarczy dokonać takiej modyfikacji w jednym miejscu, sublayots odpowiedzialnym za przycisk 'Dodaj do koszyka' albo za ceny. Jeśli szablon i nadpisywanie trzyma się tej konwencji, to zmieniając w jednym miejscu 'Dodaj do koszyka' zmieni Ci się to w każdym produkcie, w widoku kategorii, w modułach itd.

    Powyższy kod PHP wczytuje sublayouts z:
    Kod:
    components\com_virtuemart\sublayouts\products.php
    U mnie ten plik wygląda następiująco:
    Kod PHP:
    <?php
    /**
     * sublayout products
     *
     * @package    VirtueMart
     * @author Max Milbers
     * @link http://www.virtuemart.net
     * @copyright Copyright (c) 2014 VirtueMart Team. All rights reserved.
     * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL2, see LICENSE.php
     * @version $Id: cart.php 7682 2014-02-26 17:07:20Z Milbo $
     */

    defined('_JEXEC') or die('Restricted access');
    $products_per_row = empty($viewData['products_per_row'])? 1:$viewData['products_per_row'] ;
    $currency $viewData['currency'];
    $showRating $viewData['showRating'];
    $verticalseparator " vertical-separator";
    echo 
    shopFunctionsF::renderVmSubLayout('askrecomjs');

    $ItemidStr '';
    $Itemid shopFunctionsF::getLastVisitedItemId();
    if(!empty(
    $Itemid)){
       
    $ItemidStr '&Itemid='.$Itemid;
    }


    foreach (
    $viewData['products'] as $type => $products ) {

       
    $rowsHeight shopFunctionsF::calculateProductRowsHeights($products,$currency,$products_per_row);

       if(!empty(
    $type) and count($products)>0){
          
    $productTitle vmText::_('COM_VIRTUEMART_'.strtoupper($type).'_PRODUCT'); ?>
    <div class="<?php echo $type ?>-view">
      <h4><?php echo $productTitle ?></h4>
          <?php // Start the Output
        
    } else if(count($viewData['products'])>and count($products)>0){
        
    $productTitle vmText::_('COM_VIRTUEMART_'.strtoupper($type).'_PRODUCT'); ?>
    <div class="<?php echo $type ?>-view">
      <h4><?php echo $productTitle ?></h4><?php
        
    }

       
    // Calculating Products Per Row
       
    $cellwidth ' width'.floor 100 $products_per_row );

       
    $BrowseTotalProducts count($products);

       
    $col 1;
       
    $nb 1;
       
    $row 1;

       foreach ( 
    $products as $product ) {
          if(!
    is_object($product) or empty($product->link)) {
             
    //vmdebug('$product',$product);
             
    continue;
          }
          
    // Show the horizontal seperator
          
    if ($col == && $nb $products_per_row) { ?>
       <div class="horizontal-separator"></div>
          <?php }

          
    // this is an indicator wether a row needs to be opened or not
          
    if ($col == 1) { ?>
       <div class="row">
          <?php }

          
    // Show the vertical seperator
          
    if ($nb == $products_per_row or $nb $products_per_row == 0) {
             
    $show_vertical_separator ' ';
          } else {
             
    $show_vertical_separator $verticalseparator;
          }

        
    // Show Products ?>
       <div class="product vm-col<?php echo ' vm-col-' $products_per_row $show_vertical_separator ?>">
          <div class="spacer product-container">
             <div class="vm-product-media-container">

                   <a title="<?php echo $product->product_name ?>" href="<?php echo $product->link.$ItemidStr?>">
                      <?php
                      
    echo $product->images[0]->displayMediaThumb('class="browseProductImage"'false);
                      
    ?>
                   </a>

             </div>

             <div class="vm-product-rating-container">
                <?php echo shopFunctionsF::renderVmSubLayout('rating',array('showRating'=>$showRating'product'=>$product));
                if ( 
    VmConfig::get ('display_stock'1)) { ?>
                   <span class="vmicon vm2-<?php echo $product->stock->stock_level ?>" title="<?php echo $product->stock->stock_tip ?>"></span>
                <?php }
                echo 
    shopFunctionsF::renderVmSubLayout('stockhandle',array('product'=>$product));
                
    ?>
             </div>


                <div class="vm-product-descr-container-<?php echo $rowsHeight[$row]['product_s_desc'?>">
                   <h2><?php echo JHtml::link ($product->link.$ItemidStr$product->product_name); ?></h2>
                   <?php if(!empty($rowsHeight[$row]['product_s_desc'])){
                   
    ?>
                   <p class="product_s_desc">
                      <?php // Product Short Description
                      
    if (!empty($product->product_s_desc)) {
                         echo 
    shopFunctionsF::limitStringByWord ($product->product_s_desc60' ...'?>
                      <?php ?>
                   </p>
             <?php  ?>
                </div>


             <?php //echo $rowsHeight[$row]['price'] ?>
             <div class="vm3pr-<?php echo $rowsHeight[$row]['price'?>"> <?php
                
    echo shopFunctionsF::renderVmSubLayout('prices',array('product'=>$product,'currency'=>$currency)); ?>
                <div class="clear"></div>
             </div>
             <?php //echo $rowsHeight[$row]['customs'] ?>
             <div class="vm3pr-<?php echo $rowsHeight[$row]['customfields'?>"> <?php
                
    echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$product,'rowHeights'=>$rowsHeight[$row], 'position' => array('ontop''addtocart'))); ?>
             </div>

             <div class="vm-details-button">
                <?php // Product Details Button
                
    $link = empty($product->link)? $product->canonical:$product->link;
                echo 
    JHtml::link($link.$ItemidStr,vmText::'COM_VIRTUEMART_PRODUCT_DETAILS' ), array ('title' => $product->product_name'class' => 'product-details' ) );
                
    //echo JHtml::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id , FALSE), vmText::_ ( 'COM_VIRTUEMART_PRODUCT_DETAILS' ), array ('title' => $product->product_name, 'class' => 'product-details' ) );
                
    ?>
             </div>

          </div>
       </div>

       <?php
        $nb 
    ++;

          
    // Do we need to close the current row now?
          
    if ($col == $products_per_row || $nb>$BrowseTotalProducts) { ?>
        <div class="clear"></div>
      </div>
          <?php
           $col 
    1;
          
    $row++;
        } else {
          
    $col ++;
        }
      }

          if(!empty(
    $type)and count($products)>0){
            
    // Do we need a final closing row tag?
            //if ($col != 1) {
          
    ?>
        <div class="clear"></div>
      </div>
        <?php
        
    // }
        
    }
      }
    A w miniatura z linkiem to kod:
    Kod PHP:
    <div class="vm-product-media-container">

          <a title="<?php echo $product->product_name ?>" href="<?php echo $product->link.$ItemidStr?>">
             <?php
             
    echo $product->images[0]->displayMediaThumb('class="browseProductImage"'false);
             
    ?>
          </a>

    </div>
    Zobacz jak to u Ciebie wygląda, i kombinuj ;) Nie jest to aż tak strasznie skomplikowane - poradzisz sobie na pewno.
    PS. Możesz podejrzeć oryginalne pliki VMa, bo oryginalnie miniatura kieruje na stronę produktu ;)
    Trzeba dążyć do doskonałości w tym co się robi, jeśli robisz coś dobrze zrób wszystko aby robić to jeszcze lepiej!

    Potrzebujesz pomocy przy Virtuemart 3? - napisz tutaj

    Portfolio - sulzycki.com.pl

  11. #10
    Przeglądacz
    Dołączył
    28-07-2015
    Wpisy
    31
    Punkty
    2

    Domyślny

    No to tak:
    Znalazłem ten kod w sublayots (po włączeniu zdjęcia są podlinkowane) którego nie używam bo mi nie odpowiada, rozjeżdża się itd. W ustawieniach VM mam no override przy category i cart Layout

    Cytat Wysłane przez noras Zobacz wiadomość
    Kod PHP:
    <div*class="vm-product-media-container">

    ******<a*title="<?php*echo*$product->product_name*?>"*href="<?php*echo*$product->link.$ItemidStr;*?>">
    *********<?php
    *********echo*$product->images[0]->displayMediaThumb('class="browseProductImage"',*f alse);
    *********?>
    ******</a>

    </div>
    Czy nie lepiej mi by było dokopać się do domyślnego szablonu i tam wpisać w/w regułę ? Czy może za no override odpowiada inny plik ?

Strona 1 z 2 12 OstatniOstatni

Podobne tematy

  1. Problemy z linkiem w obrazku
    przez pazur75 na forum Administracja - ogólnie
    Odpowiedzi: 2
    Ostatni post/autor: 29-09-2012, 11:13
  2. VM problem ze zdjęciami produktów gdy jest ustawiony produkt rodzic i produkt dziecko
    przez bapraster na forum Biznes: sklepy, ogłoszenia, katalogi produktów
    Odpowiedzi: 6
    Ostatni post/autor: 09-02-2012, 12:32
  3. Url na obrazku
    przez maisa na forum Różne
    Odpowiedzi: 10
    Ostatni post/autor: 05-11-2009, 15:59
  4. dodanie obrazku
    przez wampir666 na forum Szablony, wygląd, formatowanie
    Odpowiedzi: 0
    Ostatni post/autor: 14-12-2008, 14:32
  5. Margines przy obrazku
    przez kwintosz na forum Szablony graficzne
    Odpowiedzi: 5
    Ostatni post/autor: 19-10-2007, 22:16

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •