[Помощь] Картинка в карточке товара

Тема в разделе "Интернет-магазины", создана пользователем webed, 30 окт 2012.

  1. webed

    webed Постоялец

    Регистр.:
    18 июн 2008
    Сообщения:
    64
    Симпатии:
    5
    Всё перерыл,никак не могу изменить картинку в карточке товара
    http://www.giuliarossi.ru/index.php/default/dsd-d-d-d-d-n-d-n/model-172.html
    Что только не делал,но большая фотография и её миниатюры не хотят увеличиваться. Помогите,пожалуйста.
     
  2. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.627
    Симпатии:
    1.330
    Для ясности ситуации следует указывать двиг (видно что магенто, но лучше указывать это сразу) и хак который применялся для такого эффекта увеличения.
    И честно говоря непонятно, поменять картинку? или все же чтобы они увеличивались?!
    Увеличиваются!
    Выбираем вторую фотку. она становится сверху, при наведении появляется зум.
    В чем проблема?!
     
  3. webed

    webed Постоялец

    Регистр.:
    18 июн 2008
    Сообщения:
    64
    Симпатии:
    5
    Извиняюсь, не так выразился.Ночь всётаки) В самой карточке дополнительные картинки мелкие совсем. Я хотел их увеличить. Они на данный момент 56х56px. Заодно и большую, сделать ещё больше.
     
  4. a7ex

    a7ex Постоялец

    Регистр.:
    5 сен 2012
    Сообщения:
    78
    Симпатии:
    23
    найдите в вашем шаблоне вызовы метода resize и передайте в этих вызовах требуемый вам размер вместо 56.
     
    kolala нравится это.
  5. webed

    webed Постоялец

    Регистр.:
    18 июн 2008
    Сообщения:
    64
    Симпатии:
    5
    В том то и беда, что я никак не могу найти именно для карточки товара. Нашёл для списка продукции, для корзины, но блин, для карточки никак не могу.
     
  6. a7ex

    a7ex Постоялец

    Регистр.:
    5 сен 2012
    Сообщения:
    78
    Симпатии:
    23
    Миниатюра изображения создаётся методом resize класса Mage_Catalog_Product_Image
    Выглядит это вот так примерно:
    Код:
    <img
        src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135, 135); ?>"
        width="135"
        height="135"
        alt="<?php echo $this->htmlEscape($_product->getName()) ?>"
    />
     
    kolala нравится это.
  7. webed

    webed Постоялец

    Регистр.:
    18 июн 2008
    Сообщения:
    64
    Симпатии:
    5
    Это я знаю. Мануал читал. Код, что представлен выше, изменит размер изображения в общем каталоге. С этим я разобрался. Не могу найти именно для карточки товара
     
  8. a7ex

    a7ex Постоялец

    Регистр.:
    5 сен 2012
    Сообщения:
    78
    Симпатии:
    23
    Вам нужно разобраться как работает класс Mage_Catalog_Helper_Image
    а методы keepFrame, resize, constrainOnly, backgroundColor и другие позволят гибко настроить параметры отображения товара.
     
    kolala нравится это.
  9. webed

    webed Постоялец

    Регистр.:
    18 июн 2008
    Сообщения:
    64
    Симпатии:
    5
    Проблема в том, что многие пишут,что класс применяется в шаблоне. Открываю шаблон карточки, там нет этого класса.

    Ниже код с файла карточки :

    PHP:
    <?php $_helper $this->helper('catalog/output'); ?>
    <?php $_product 
    $this->getProduct(); ?>
    <script type="text/javascript">
        var optionsPrice = new Product.OptionsPrice(<?php echo $this->getJsonConfig() ?>);
    </script>
     
    <div id="messages_product_view"><?php echo $this->getMessagesBlock()->getGroupedHtml() ?></div>
    <div class="product-view">
      <div class="product-essential">
        <form action="<?php echo $this->getSubmitUrl($_product?>" method="post" id="product_addtocart_form"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>>
          <div class="no-display">
            <input type="hidden" name="product" value="<?php echo $_product->getId() ?>" />
            <input type="hidden" name="related_product" id="related-products-field_1" value="" />
          </div>
     
          <!--Prev/Next Code Start-->
          <?php
    $_helper 
    $this->helper('catalog/output');
    $_product $this->getProduct();
    $prev_url $next_url $url $_product->getProductUrl();
     
    if (
    $this->helper('catalog/data')->getCategory()) {
    $category $this->helper('catalog/data')->getCategory();
    } else {
    $_ccats $this->helper('catalog/data')->getProduct()->getCategoryIds();
    $category Mage::getModel('catalog/category')->load($_ccats[0]);
    }
     
    $children $category->getProductCollection();
    $_count is_array($children) ? count($children) : $children->count();
    if (
    $_count) {
    foreach (
    $children as $product) {
    $plist[] = $product->getId();
    }
     
    /**
    * Determine the previous/next link and link to current category
    */
    $current_pid  $this->helper('catalog/data')->getProduct()->getId();
    $curpos  array_search($current_pid$plist);
    // get link for prev product
    $previd  = isset($plist[$curpos+1])? $plist[$curpos+1] : $current_pid;
    $product  Mage::getModel('catalog/product')->load($previd);
    $prevpos  $curpos;
    while (!
    $product->isVisibleInCatalog()) {
    $prevpos += 1;
    $nextid  = isset($plist[$prevpos])? $plist[$prevpos] : $current_pid;
    $product  Mage::getModel('catalog/product')->load($nextid);
    }
    $prev_url $product->getProductUrl();
    // get link for next product
    $nextid  = isset($plist[$curpos-1])? $plist[$curpos-1] : $current_pid;
    $product  Mage::getModel('catalog/product')->load($nextid);
    $nextpos  $curpos;
    while (!
    $product->isVisibleInCatalog()) {
    $nextpos -= 1;
    $nextid  = isset($plist[$nextpos])? $plist[$nextpos] : $current_pid;
    $product  Mage::getModel('catalog/product')->load($nextid);
    }
    $next_url $product->getProductUrl();
    }
    ?>
     
     
          <!--Prev/Next Code End-->
     
          <div class="upsell_pro"> <?php echo $this->getChildHtml('upsell_products'?>
          </div>
          <div class="product-shop">
     
          <div class="f-fix mb-10">
              <?php if ($url <> $next_url):?>
              <a class="prod-prev" href="<?php echo $next_url?>">пред.</a>
            <?php endif; ?>
            <?php if ($url <> $prev_url):?>
              <a class="prod-next" href="<?php echo $prev_url?>">след.</a>
            <?php endif; ?>
          </div>
            <div class="product-name">
              <h1><?php echo $_helper->productAttribute($_product$_product->getName(), 'name'?></h1>
              <!--<div class="sku">Sku: <?php //echo $this->htmlEscape($_product->getSku()) ?></div>-->
            </div>
            <?php echo $this->getTierPriceHtml() ?>
     
            <?php echo $this->getChildHtml('alert_urls'?>
            <?php echo $this->getChildHtml('product_type_data'?>
            <div class="pro-left">
            <div class="product-collateral"> <?php echo $this->getChildHtml('info_tabs'?>  </div>
     
     
            </div>
     
          </div>
          <div class="product-img-box"> <?php echo $this->getChildHtml('media'?> </div>
          <div class="clearer"></div>
        </form>
      </div>
     
    </div>
    <script type="text/javascript">
        //<![CDATA[
            var productAddToCartForm = new VarienForm('product_addtocart_form');
            productAddToCartForm.submit = function(button, url) {
            if (this.validator.validate()) {
                var form = this.form;
                var oldUrl = form.action;
                if (url) {
                    form.action = url;
                }
                var e = null;
                // Start of our new ajax code
                if (!url) {
                    url = jQuery('#product_addtocart_form').attr('action');
                }
                url = url.replace("checkout/cart","ajax/index"); // New Code
                var data = jQuery('#product_addtocart_form').serialize();
                data += '&isAjax=1';
                jQuery('#ajax_loader').show();
                try {
                    jQuery.ajax( {
                        url : url,
                        dataType : 'json',
                        type : 'post',
                        data : data,
                        success : function(data) {
                            jQuery('#ajax_loader').hide();
                            if(data.status == 'ERROR'){
                                alert(data.message);
                            }else{
                                if(jQuery('.block-cart')){
                                    jQuery('.block-cart').replaceWith(data.sidebar);
                                }
                                if(jQuery('.header .links')){
                                    jQuery('.header .links').replaceWith(data.toplink);
                                }
                            }
                        }
                    });
                } catch (e) {
                }
                // End of our new ajax code
                this.form.action = oldUrl;
                if (e) {
                    throw e;
                }
            }
        }.bind(productAddToCartForm);
        productAddToCartForm.submitLight = function(button, url){
                if(this.validator) {
                    var nv = Validation.methods;
                    delete Validation.methods['required-entry'];
                    delete Validation.methods['validate-one-required'];
                    delete Validation.methods['validate-one-required-by-name'];
                    if (this.validator.validate()) {
                        if (url) {
                            this.form.action = url;
                        }
                        this.form.submit();
                    }
                    Object.extend(Validation.methods, nv);
                }
            }.bind(productAddToCartForm);
        //]]>
        </script>



    update: Решил проблему спустя сутки.
    Немного оффтопа для начала...Я НЕНАВИЖУ магенто всеми фибрами души с этого момента))) Беспорядок полный.
    В общем, кто пользуется всякими зумами как я,посвящаю решение проблемы:Все изменения делать в файле /design/frontend/default/default/template/featurezoom(или ваше название)/media.phtml
    Шаблонную медию вообще можно не трогать. Она бесполезна, как выяснилось.