Magento 2 Entwicklung: Unterschied zwischen den Versionen
Aus Vosp.info
V (Diskussion | Beiträge) |
V (Diskussion | Beiträge) (→Ajax Call) |
||
Zeile 150: | Zeile 150: | ||
=== Ajax Call === | === Ajax Call === | ||
− | ==== in phtml ==== | + | ==== * in phtml ==== |
<source lang=js> | <source lang=js> | ||
<script type="text/javascript"> | <script type="text/javascript"> | ||
Zeile 167: | Zeile 167: | ||
</script> | </script> | ||
+ | </source> | ||
+ | ==== * controller ==== | ||
+ | <source lang=php> | ||
+ | |||
+ | use Magento\Framework\Controller\ResultFactory; | ||
+ | class Anctools extends Action | ||
+ | |||
+ | |||
+ | public function __construct( | ||
+ | Context $context, | ||
+ | ) { | ||
+ | parent::__construct($context); | ||
+ | } | ||
+ | |||
+ | |||
+ | public function execute() | ||
+ | { | ||
+ | $string = '<div>test</div>' | ||
+ | $this->resultFactory = $this->context->getResultFactory(); | ||
+ | $result = $resultRedirect = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW); | ||
+ | return $result->setHeader('Content-Type','text/html')->setContents($string);; | ||
+ | } | ||
</source> | </source> |
Aktuelle Version vom 19. September 2017, 17:31 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>
* controller
use Magento\Framework\Controller\ResultFactory;
class Anctools extends Action
public function __construct(
Context $context,
) {
parent::__construct($context);
}
public function execute()
{
$string = '<div>test</div>'
$this->resultFactory = $this->context->getResultFactory();
$result = $resultRedirect = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
return $result->setHeader('Content-Type','text/html')->setContents($string);;
}