Magento 1.9.1.0の使用方法デフォルトのパッケージテーマ(またはカスタムテーマ)で設定可能なスウォッチ?

magento.stackexchange https://magento.stackexchange.com//questions/45948

質問

アップデート:私の答えは今製品ベースの自動変更をサポートするようになりました 見本の後の画像。また、どのように詳細なチュートリアルを見つけることもできます。 もっと画像を含めてこれを行うには ここ

Magento CE 1.9.1.0には非常に素晴らしい新機能が付属しています。設定可能なスウォッチ。残念ながら、これは既定のMagentoインストールに付属のRWDパッケージでのみ利用可能です。 これは、Magento設定可能なスウォッチをデフォルトのパッケージに使用できるようにする方法に関する自己回答疑いです。設定可能なスウォッチを統合したい人のために カスタムテーマに、この情報も同様に便利な場合があります。

注1: magentoのデフォルトパッケージで設定可能なスウォッチを使用できるようにする方法に関する紹介ガイドであることを意味します。これはすべてのカスタムテーマのために(しかしそうではないかもしれません)。 変更を加える前に常に元のファイル(およびデータベース)をバックアップしてください。

注2:スウォッチは仕事をしています(下記のスクリーンショット)が、スウォッチとともに自動的に製品イメージを変えることはできませんでした。私がある時間が見つかったときに私はこれを試してみてください。

Enter Image説明

コメントして提案をすることで貢献できるように感じます!

役に立ちましたか?

解決

  1. フォルダをコピーする

    app/design/frontend/RWD/default/template/configurableswatches/
    
    .

    とその内容

    app/design/frontend/DEFAULT/default/template/
    
    .

    (またはパッケージテンプレートフォルダ)

  2. ファイルをコピー

    app/design/frontend/RWD/default/template/catalog/product/view/type/options/configurable.phtml
    
    .

    app/design/frontend/DEFAULT/default/template/catalog/product/view/type/options/
    
    .

    (またはパッケージテンプレートフォルダ)

  3. ファイルをコピー

    app/design/frontend/RWD/default/template/catalog/product/view/media.phtml
    
    .

    app/design/frontend/DEFAULT/default/template/catalog/product/view/
    
    .

    (またはパッケージテンプレートフォルダ)

  4. フォルダをコピーする

    skin/frontend/RWD/default/js/configurableswatches/
    skin/frontend/RWD/default/js/lib/
    
    .

    とその内容

    skin/frontend/DEFAULT/default/js/
    
    .

    (またはパッケージのスキンフォルダ)

  5. ファイルをコピー

    skin/frontend/RWD/default/js/app.js
    skin/frontend/RWD/default/js/minicart.js
    skin/frontend/RWD/default/js/slideshow.js
    
    .

    skin/frontend/DEFAULT/default/js/
    
    .

    (またはパッケージのスキンフォルダ)

  6. ファイルをコピー

    app/design/frontend/RWD/default/layout/configurableswatches.xml
    
    .

    app/design/frontend/DEFAULT/default/layout/
    
    .

    (またはパッケージのレイアウトフォルダ)

  7. ファイルを作成する

    app/design/frontend/DEFAULT/default/layout/local.xml
    

    あなたのパッケージレイアウトフォルダにlocal.xmlファイルが含まれている場合は、 その後、上書きしないでください。次のステップの変更点を見てください そしてそれらをlocal.xmlファイルのバージョンにコピーします。

    1. local.xmlを開き、次のコードを追加します。

      <?xml version="1.0"?>
      <layout>
      
          <default>
      
              <reference name="head">
      
                      <action method="addJs"><script>lib/jquery/jquery-1.10.2.min.js</script></action>
                      <action method="addJs"><script>lib/jquery/noconflict.js</script></action>
      
                      <action method="addItem"><type>skin_js</type><name>js/lib/modernizr.custom.min.js</name></action>
                      <action method="addItem"><type>skin_js</type><name>js/lib/selectivizr.js</name></action>
                      <action method="addItem"><type>skin_js</type><name>js/lib/matchMedia.js</name></action>
                      <action method="addItem"><type>skin_js</type><name>js/lib/matchMedia.addListener.js</name></action>
                      <action method="addItem"><type>skin_js</type><name>js/lib/enquire.js</name></action>
                      <action method="addItem"><type>skin_js</type><name>js/app.js</name></action>
                      <action method="addItem"><type>skin_js</type><name>js/lib/jquery.cycle2.min.js</name></action>
                      <action method="addItem"><type>skin_js</type><name>js/lib/jquery.cycle2.swipe.min.js</name></action>
                      <action method="addItem"><type>skin_js</type><name>js/slideshow.js</name></action>
                      <action method="addItem"><type>skin_js</type><name>js/lib/imagesloaded.js</name></action>
              <action method="addItem"><type>skin_js</type><name>js/minicart.js</name></action>
      
              </reference>
      
          </default>
      
          <catalog_product_view>
      
              <reference name="head">
      
                  <action method="addItem"><type>skin_js</type><script>js/lib/elevatezoom/jquery.elevateZoom-3.0.8.min.js</script></action>
      
              </reference>
      
              <reference name="product.info.media">
      
                  <block type="core/text_list" name="product.info.media.after" as="after" />
      
              </reference>
      
          </catalog_product_view>
      
          <PRODUCT_TYPE_configurable>
      
              <reference name="product.info.options.configurable">
      
                  <block type="core/text_list" name="product.info.options.configurable.renderers" as="attr_renderers">
                              <block type="configurableswatches/catalog_product_view_type_configurable_swatches" template="configurableswatches/catalog/product/view/type/options/configurable/swatches.phtml" />
                  </block>
                  <block type="core/text_list" name="product.info.options.configurable.after" as="after">
                  <block type="core/template" template="configurableswatches/catalog/product/view/type/configurable/swatch-js.phtml" />
                  </block>
      
              </reference>
      
          </PRODUCT_TYPE_configurable>
      
      </layout>
      

    2. あなたの styles.css file:に次のCSを追加します。

      /* ============================================ *
       * Configurable Swatches
       * ============================================ */
      /* Clears */
      .clearfix:after,
      .configurable-swatch-list:after,
      .product-view .product-options .swatch-attr:after {
        content: '';
        display: table;
        clear: both;
      }
      
      /* General Swatch Styling */
      .swatch-link,
      .swatch-label {
        display: block;
        border-radius: 3px;
        font-size: 14px;
        text-align: center;
        color: #636363;
        text-decoration: none;
        box-sizing: content-box;
      }
      
      .swatch-link {
        border: 1px solid #cccccc;
        margin: 0 0 3px;
      }
      .swatch-link img {
        border-radius: 2px;
      }
      .swatch-link:hover {
        cursor: pointer;
        text-decoration: none;
      }
      .swatch-link .x {
        display: none;
        text-indent: -999em;
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        background: url(../images/bg_x.png) center no-repeat transparent;
        z-index: 10;
      }
      .swatch-link.has-image .swatch-label {
        position: relative;
      }
      .swatch-link.has-image img {
        position: absolute;
        top: 0;
        left: 0;
      }
      
      .swatch-label {
        border: 1px solid #fff;
        margin: 0;
        white-space: nowrap;
        background: #f4f4f4;
      }
      
      .configurable-swatch-list {
        margin-left: -3px;
        zoom: 1;
        clear: both;
        -webkit-transform: translateZ(0px);
      }
      .configurable-swatch-list li {
        float: left;
        zoom: 1;
        margin: 0 0 0 3px;
      }
      .products-grid .configurable-swatch-list li {
        display: inline-block;
        float: none;
        margin: 0;
        vertical-align: top;
      }
      .configurable-swatch-list .not-available .x {
        display: block;
      }
      .configurable-swatch-list .not-available .swatch-link {
        border-color: #ededed;
        position: relative;
      }
      .configurable-swatch-list .not-available .swatch-link.has-image img {
        opacity: 0.4;
        filter: alpha(opacity=40);
      }
      .configurable-swatch-list .not-available .swatch-label {
        color: #aaa;
        background: #fff;
      }
      .configurable-swatch-list .wide-swatch .swatch-label {
        padding: 0 6px;
      }
      .configurable-swatch-list .not-available a:focus {
        outline: 0;
      }
      
      #narrow-by-list dd .configurable-swatch-list li {
        margin: 0 0 0 3px;
        width: 47%;
      }
      #narrow-by-list dd .swatch-link {
        border: none;
        line-height: 25px;
        margin-right: 2px;
        text-align: left;
      }
      #narrow-by-list dd .swatch-link.has-image {
        line-height: inherit;
      }
      #narrow-by-list dd .swatch-link:hover .swatch-label {
        border-color: #3399cc;
      }
      #narrow-by-list dd .swatch-label {
        background: #f4f4f4;
        border: 1px solid #cccccc;
        border-radius: 3px;
        display: block;
        float: left;
        line-height: 1.5em;
        margin: 0 5px 0 0;
        padding: 1px 5px;
        white-space: nowrap;
      }
      #narrow-by-list dd .swatch-label img {
        border: 1px solid #fff;
        border-radius: 3px;
        box-sizing: content-box;
      }
      #narrow-by-list dd .has-image .swatch-label {
        padding: 0;
      }
      
      @media only screen and (max-width: 770px) {
        #narrow-by-list dd .configurable-swatch-list li:nth-child(odd) {
          clear: left;
        }
      }
      .currently .swatch-current {
        position: relative;
      }
      .currently .swatch-current .btn-remove {
        margin-top: -10px;
        position: absolute;
        right: 0;
        top: 50%;
      }
      .currently .swatch-current span {
        display: block;
        float: left;
      }
      .currently .swatch-link {
        display: inline-block;
        margin: 0 0 0 3px;
      }
      .currently .swatch-link:hover {
        border-color: #cccccc;
        cursor: default;
      }
      
      /* Other Swatch States */
      .configurable-swatch-list .hover .swatch-link,
      .configurable-swatch-list .selected .swatch-link,
      .swatch-link:hover {
        border-color: #3399cc;
      }
      
      .configurable-swatch-box {
        background: none !important;
      }
      .configurable-swatch-box select.swatch-select {
        display: none;
      }
      .configurable-swatch-box .validation-advice {
        margin: 0 0 5px;
        background: #df280a;
        padding: 2px 5px !important;
        font-weight: bold;
        color: #fff !important;
        float: left;
        display: block;
        border-radius: 3px;
      }
      .product-view .product-img-box .product-image img {
          max-width: 100%;
          max-height: 750px;
          margin: 0px auto;
      }
      .product-view .product-img-box .product-image-zoom {
          z-index: 0;
      }
      .product-view .product-image-thumbs img {
          max-width: 100%;
          max-height: 100%;
      }
      

    3. ファイルをコピー

      skin/frontend/RWD/default/images/bg_x.png
      
      .

      skin/frontend/DEFAULT/default/images/
      

他のヒント

あなたの解決策は素晴らしいですが、カテゴリリストまたはグリッドで色見本を表示しません。ここで私はそれを示すために解決策を追加し、Magento 1.9.2.4でテストした。

IN:アプリ/デザイン/フロントエンド/カスタムテーマ/テンプレート/カタログ/製品追加後の list.phtml

1 - 最初にリストビューを表示し、そこでこの場合は、NOの場合は、変更Oを更新する(軌道線39):

<?php $_imgSize = 300; ?>
            <img id="product-collection-image-<?php echo $_product->getId(); ?>"
                 src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->keepFrame(false)->resize($_imgSize); ?>"
                 alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
        </a>
.

代替案でこれを使用することができます:

            <img id="product-collection-image-<?php echo $_product->getId(); ?>"
          src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(230,279); ?>" class="small-image" 
          alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />             

        </a>
.

サイズ変更画像を調整します。

2 - 「getratingsummary」= PHP End IF= 1行目のIF= 53行目に追加します。

                        <?php
                    // Provides extra blocks on which to hang some features for products in the list
                    // Features providing UI elements targeting this block will display directly below the product name
                    if ($this->getChild('name.after')) {
                        $_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
                        foreach ($_nameAfterChildren as $_nameAfterChildName) {
                            $_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
                            $_nameAfterChild->setProduct($_product);
                            echo $_nameAfterChild->toHtml();
                        }
                    }
                    ?>
.

3 - ライン120と152の周りのGirdビューに同じ変更を加えます。

4 - ファイルの最後に追加この:

 <?php
// Provides a block where additional page components may be attached, primarily good for in-page JavaScript
if ($this->getChild('after')) {
    $_afterChildren = $this->getChild('after')->getSortedChildren();
    foreach ($_afterChildren as $_afterChildName) {
        $_afterChild = $this->getChild('after')->getChild($_afterChildName);
        //set product collection on after blocks
        $_afterChild->setProductCollection($_productCollection);
        echo $_afterChild->toHtml();
    }
}
?>
.

これはとても役に立ちました!私は画像の切り替えをするために働くことができたいくつかの追加の詳細を持っていました。

  1. ファイルをコピー

    app/design/frontend/RWD/default/template/catalog/product/view/media.phtml
    
    .

    app/design/frontend/DEFAULT/default/template/catalog/product/view/
    
    .

    またはカスタムテーマ

  2. 次のファイルのリストをコピーします。

    app/skin/frontend/RWD/default/js/app.js
    app/skin/frontend/RWD/default/js/slideshow.js
    app/skin/frontend/RWD/default/js/lib/* (all files and the elevatezoom folder)
    
    .

    app/skin/frontend/DEFAULT/default/js
    
    .

    またはカスタムテーマ

  3. これらの新しいスクリプトを含めるには、アプリ/デザイン/フロントエンド/デフォルト/デフォルト/ LAYOUT / PAGE.XMLを編集します(最初にこのファイルのバックアップを作成し、デフォルトのテーマとして更新する場合は変更をマージしてください。上書きされます)

    行後の追加38:

    <action method="addJs"><script>lib/jquery/jquery-1.10.2.min.js</script></action>
    <action method="addJs"><script>lib/jquery/noconflict.js</script></action>
    
    .

    行50の後に追加(52行目に2行を追加した場合は52行):

        <action method="addItem"><type>skin_js</type><name>js/lib/modernizr.custom.min.js</name></action>
        <action method="addItem"><type>skin_js</type><name>js/lib/selectivizr.js</name></action>
        <action method="addItem"><type>skin_js</type><name>js/lib/matchMedia.js</name></action>
        <action method="addItem"><type>skin_js</type><name>js/lib/matchMedia.addListener.js</name></action>
        <action method="addItem"><type>skin_js</type><name>js/lib/enquire.js</name></action>
        <action method="addItem"><type>skin_js</type><name>js/app.js</name></action>
        <action method="addItem"><type>skin_js</type><name>js/lib/jquery.cycle2.min.js</name></action>
        <action method="addItem"><type>skin_js</type><name>js/lib/jquery.cycle2.swipe.min.js</name></action>
        <action method="addItem"><type>skin_js</type><name>js/slideshow.js</name></action>
        <action method="addItem"><type>skin_js</type><name>js/lib/imagesloaded.js</name></action>
    

  4. styles.css ファイル(行783-803桁)から/ *製品画像* /セクションを削除し、rwd styles.cssファイルから次のCSSに貼り付けます。 / P>

    * Product Images */
    .product-img-box {
      width: 50%;
      float: left;
    }
    .product-img-box .product-name h1 {
      border: 0;
    }
    .product-img-box .product-image {
      margin-bottom: 10px;
    }
    .product-img-box .product-image img {
      max-width: 100%;
      max-height: 750px;
      margin: 0px auto;
    }
    
    @media only screen and (max-width: 479px) {
      .product-img-box .product-image img {
        max-height: 450px;
      }
    }
    .product-image-gallery {
      position: relative;
    }
    .product-image-gallery .gallery-image {
      display: none;
    }
    .product-image-gallery .gallery-image.visible {
      display: block;
    }
    .product-image-gallery .gallery-image.visible.hidden {
      visibility: hidden;
    }
    .product-image-gallery:before, .product-image-gallery:after {
      content: '';
      position: absolute;
      top: 0px;
      left: 0px;
      width: 100%;
      height: 100%;
      display: none;
    }
    .product-image-gallery:before {
      background-color: white;
      opacity: 0.8;
      z-index: 2;
    }
    .product-image-gallery:after {
      background-image: url("../images/opc-ajax-loader.gif");
      background-repeat: no-repeat;
      background-position: center;
      z-index: 3;
    }
    .product-image-gallery.loading {
      position: relative;
    }
    .product-image-gallery.loading:before, .product-image-gallery.loading:after {
      display: block;
    }
    
    .product-image-thumbs li {
      display: inline-block;
    }
    .product-image-thumbs li:first-child {
      margin-left: -1px;
    }
    .product-image-thumbs a {
      display: inline-block;
      border: 1px solid transparent;
    }
    
    .no-touch .product-image-thumbs a:hover {
      border-color: #c7c7c7;
    }
    

    最後のものではなく、Googleのおかげで次の投稿を見つけて、 BelvgブログMishel Soiko 、ズームズームやズームウィンドウのオフセットなどのlevatezoomの設定を変更して利用することができました。 。また、クリックしたときに画像にポップアップのFancyBoxを持つことを望んでいました。これは、コメントの上記のブログからのヘルプで有効になっています。

    1. あなたのテーマにコピーした app.js ファイルを開く

      ライン1153(var ProductMediaManager = {)、貼り付け(上記のBelVGブログリンクからコピー):

      var settings = {
      
          // set tint background
          tint:true,
          tintColour:'#F90',
          tintOpacity:0.5,
      
          // Size
          zoomWindowHeight: 300,
          zoomWindowWidth: 400,
          borderSize: 0,
      
          // Position
          zoomWindowOffetx: 10,
          zoomWindowOffety: 0,
      
          // Additional settings for Zoomer positioning.
          // zoomWindowPosition: 1,
          // zoomType: "inner",
      
          // Fade-in speed settings
          zoomWindowFadeIn: 500,
          zoomWindowFadeOut: 500,
          lensFadeIn: 500,
          lensFadeOut: 500,
      
          // Ability to zoom by using the mouse scroll.
          scrollZoom : true,
      
          // inertia - my favorite one 
          easing: true
      }
      
      .

      FancyBoxポップアップを上記の場合には、現在行1227のものに貼り付けてください。

      $j(".product-image-gallery").on("click", function(e) {
          var src = $j('.product-image img.visible').attr('src');
      $j.fancybox(src);
      });
      
      .

      注意、あなたのページのjQueryの後にFancybox JSライブラリをロードする必要があります。

      最後に、行1232(上からの両方からの貼り合わせる場合)のものを変更する:

      image.elevateZoom();
      
      .

      to:

      image.elevateZoom(settings);
      

      すべてのズーム設定の概要については、 levatezoom設定を説明する公式ページをチェックしてください。

      それはそれを働くべきです。あなたがカスタムテーマで働いているなら(私のように)あなたはもっとやることができます。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top