Magento 2 Entwicklung: Unterschied zwischen den Versionen
Aus Vosp.info
V (Diskussion | Beiträge) (→get) |
V (Diskussion | Beiträge) |
||
Zeile 146: | Zeile 146: | ||
return displayPrices; | return displayPrices; | ||
}, | }, | ||
+ | </source> | ||
+ | |||
+ | |||
+ | === Ajax Call === | ||
+ | ==== in phtml ==== | ||
+ | <source lang=js> | ||
+ | <script type="text/javascript"> | ||
+ | require(['jquery', 'jquery/ui'], function($){ | ||
+ | $('#tool-calc').bind('submit', function(e) { | ||
+ | e.preventDefault(); | ||
+ | var form = $('#tool-calc'); | ||
+ | var data = form.serialize(); | ||
+ | $('#ancajax').css({'display':'block'}); | ||
+ | $.post('<?php echo $this->getUrl('anctools/tools/calctool/') ?>', data, function(response) { | ||
+ | $('#ancToolReplace').replaceWith(response); | ||
+ | }); | ||
+ | return false; | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | </script> | ||
</source> | </source> |
Version vom 19. September 2017, 17:26 Uhr
Inhaltsverzeichnis
Code Snippets Magento2
phtml get arguments Xml/Cms
CMS Page => Design Layout XML
<referenceContainer name="content">
<block class="Anc\Apname\Block\Blockname" name="ancname" as="ancname" template="Magento_Theme::anc//ancname.phtml" >
<arguments>
<argument name="ancspec" xsi:type="array">
<item name="ancFnc" xsi:type="array">
<item name="product" xsi:type="string">5</item>
</item>
</argument>
</arguments>
</block>
</referenceContainer>
Phtml File
$argsFromXml=$block->getData('ancspec') ;
Code Migration Snippets 1.x => 2.x
Text Ausgabe
1.x
echo $this->__('Outputtext');
2.x
echo __('Outputtext');
Bilder
1.x
<img src="<?php echo $this->getSkinUrl('images/product/dir/name.jpg'); ?>" alt="<?php echo $this->__('Name'); ?>"
{{skin url='images/product/dir/name.jpg'}}
2.x
<img src="<?php echo $this->getViewFileUrl('images/product/dir/name.jpg'); ?>" alt="<?php echo __('Name'); ?>" />
{{view url='images/product/dir/name.jpg'}}
Url
1.x
<a href="<?php echo Mage::getUrl('produkte'); ?>" ?>"
2.x
<a href="<?php echo $this->getUrl('produkte'); ?>" ?>" />
Helper
1.x
Mage::helper('anchelper')->ancfnc();
2.x
$this->helper('Anc\Appname\Helper\Anchelper');
Currency
1.x
Mage::helper('core')->currency($_product->getPrice(),true,true)
2.x
$this->helper('Magento\Framework\Pricing\Helper\Data')->currency($_product->getPrice(),true,false);
get
* current
class Data extends \Magento\Framework\App\Helper\AbstractHelper
public function __construct(
\Magento\Framework\Registry $registry
)
{
$this->_registry = $registry;
}
** Produkt
return $this->_registry->registry('current_product');
** Category
return $this->_registry->registry('current_category');
* product by
class Data extends \Magento\Framework\App\Helper\AbstractHelper
....
public function __construct(
\Magento\Catalog\Model\ProductRepository $productRepository,
)
{
$this->_productRepository = $productRepository;
}
** sku
return $this->_productRepository->get($sku);
** id
return $this->_productRepository->getById($id);
Customized configurable product
Preis wird nicht mehr bei Wechsel aktualisiert
$templatestring ="<div class="priceReferenceValue price-box" data-role="priceBox" data-product-id="' . $_product->getId() . '" ><span class="value"> {BASE_PRICE}</span></div>";
- app/design/frontend/Anc/ancdesign/Magento_ConfigurableProduct/web/js/configurable.js
_calculatePrice: function (config) {
var displayPrices = $(this.options.priceHolderSelector).priceBox('option').prices,
newPrices = this.options.spConfig.optionPrices[_.first(config.allowedProducts)];
_.each(displayPrices, function (price, code) {
if (newPrices[code]) {
displayPrices[code].amount = newPrices[code].amount - displayPrices[code].amount;
}
});
/**
* neuen Preis setzen
*/
$(".priceReferenceValue .value .price").html(newPrices.finalPrice.amount.replace(/\./g, ',') + ' €');
return displayPrices;
},
Ajax Call
in phtml
<script type="text/javascript">
require(['jquery', 'jquery/ui'], function($){
$('#tool-calc').bind('submit', function(e) {
e.preventDefault();
var form = $('#tool-calc');
var data = form.serialize();
$('#ancajax').css({'display':'block'});
$.post('<?php echo $this->getUrl('anctools/tools/calctool/') ?>', data, function(response) {
$('#ancToolReplace').replaceWith(response);
});
return false;
});
});
</script>