Magento 1.9.1.0の使用方法デフォルトのパッケージテーマ(またはカスタムテーマ)で設定可能なスウォッチ?
-
12-12-2019 - |
質問
アップデート:私の答えは今製品ベースの自動変更をサポートするようになりました 見本の後の画像。また、どのように詳細なチュートリアルを見つけることもできます。 もっと画像を含めてこれを行うには ここ。
注2:スウォッチは仕事をしています(下記のスクリーンショット)が、スウォッチとともに自動的に製品イメージを変えることはできませんでした。私がある時間が見つかったときに私はこれを試してみてください。
解決
-
フォルダをコピーする
.app/design/frontend/RWD/default/template/configurableswatches/
とその内容
.app/design/frontend/DEFAULT/default/template/
(またはパッケージテンプレートフォルダ)
-
ファイルをコピー
.app/design/frontend/RWD/default/template/catalog/product/view/type/options/configurable.phtml
.app/design/frontend/DEFAULT/default/template/catalog/product/view/type/options/
(またはパッケージテンプレートフォルダ)
-
ファイルをコピー
.app/design/frontend/RWD/default/template/catalog/product/view/media.phtml
.app/design/frontend/DEFAULT/default/template/catalog/product/view/
(またはパッケージテンプレートフォルダ)
-
フォルダをコピーする
.skin/frontend/RWD/default/js/configurableswatches/ skin/frontend/RWD/default/js/lib/
とその内容
.skin/frontend/DEFAULT/default/js/
(またはパッケージのスキンフォルダ)
-
ファイルをコピー
.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/
(またはパッケージのスキンフォルダ)
-
ファイルをコピー
.app/design/frontend/RWD/default/layout/configurableswatches.xml
.app/design/frontend/DEFAULT/default/layout/
(またはパッケージのレイアウトフォルダ)
-
ファイルを作成する
app/design/frontend/DEFAULT/default/layout/local.xml
あなたのパッケージレイアウトフォルダに
local.xml
ファイルが含まれている場合は、 その後、上書きしないでください。次のステップの変更点を見てください そしてそれらをlocal.xml
ファイルのバージョンにコピーします。-
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>
-
あなたの 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%; }
-
ファイルをコピー
.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();
}
}
?>
これはとても役に立ちました!私は画像の切り替えをするために働くことができたいくつかの追加の詳細を持っていました。
-
ファイルをコピー
.app/design/frontend/RWD/default/template/catalog/product/view/media.phtml
.app/design/frontend/DEFAULT/default/template/catalog/product/view/
またはカスタムテーマ
-
次のファイルのリストをコピーします。
.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
またはカスタムテーマ
-
これらの新しいスクリプトを含めるには、アプリ/デザイン/フロントエンド/デフォルト/デフォルト/ 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>
-
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を持つことを望んでいました。これは、コメントの上記のブログからのヘルプで有効になっています。
-
あなたのテーマにコピーした 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設定を説明する公式ページをチェックしてください。
それはそれを働くべきです。あなたがカスタムテーマで働いているなら(私のように)あなたはもっとやることができます。
-