Chuyển đến nội dung chính

Snippets for Magento 2 Developers

1 - Get ObjectManager Instance
$objectManager      = \Magento\Framework\App\ObjectManager::getInstance();
$customerCollection = $objectManager->create('Magento\Customer\Model\CollectionFactory')->getCollection();

2 - Get BaseUrl
//inject \Magento\Store\Model\StoreManagerInterface $storeManager in constructor
$this->_storeManager = $storeManager;

$url = $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA); //url in media directory

3 - Get Session Customer
//inject \Magento\Customer\Model\Session $customerSession in constructor
$this->_session = $customerSession;


4 - Get Featured Products Collection
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); //dirty way
$productCollection = $objectManager->create('Magento\Catalog\Model\ProductFactory')->getCollection();
//filters
$featuredProducts = $productCollection
                ->addAttributeToSelect('name')
                ->addAttributeToSelect('image')
                ->addAttributeToSelect('price')
                ->addAttributeToFilter('is_featured', 1)
                ->addAttributeToFilter('status', 1)
                ->setPageSize($productCollection->getSize())
                ->setCurPage(1)
                ->load();


5 - Insert Image in Static block or cms page
{{view url="images/image-1.jpg"}} //Url: app/design/VendorName/ThemeName/web/images/image-1.jpg

6 - Call Block in template
$block->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_id')->toHtml();

7 - Call Block in CMS Page
{{block class="Magento\Cms\Block\Block" block_id="block_id"}}

8 - View media
{{view url=Magento_Catalog::images/logo.png}} //in this case, path: pub/static/frontend/Magento/blank/en_US/Magento_Catalog/images/logo.png 

{{media url=test/logo.svg}}" // path: pub/media/test/logo.svg

{{store url="translation/ajax/index"}} // this tag similar like in Magento1x. Url from your current store

9 - Get Media URL
$mediaDirectory = $this->_objectManager->get('Magento\Framework\Filesystem')->getDirectoryRead(DirectoryList::MEDIA);  
$fileAbsolutePath = $this->filesystem->getDirectoryRead(DirectoryList::ROOT)->getAbsolutePath($filePath);

10 - Get/Set Config Value from system
$val = $this->scopeConfig->getValue('rss/config/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE)
$val = Magento\Framework\App\Config\MutableScopeConfigInterface->setValue($path,$value,$scopeType = \Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT,$scopeCode = null);


Updated in January 23
To be continue.....

Nhận xét

Bài đăng phổ biến từ blog này

Magento 2 Code Standards Part 1: Setup Enviroments

Trong bài này mình sẽ trình bày về việc cấu hình PHP_CodeSniffer cho magento 2. Yêu cầu cơ bản là server cài PHP v5.4 trở lên. Cài đặt thành công composer 1- PHP_CodeSniffer là gì 2- Code Standards có lợi gì cho lập trình viên Trong lập trình có rất nhiều chuẩn để lập trình viên làm theo để tạo được code có cấu trúc mạch lạc và khả năng maintance sau này. Trong PHP nói riêng cũng có kha khá chuẩn PSR1234 blah ... Magento cũng có vài chuẩn , ở đây mình chỉ đề cập đến MQEP2 (Marketplace Extension Quality Program) Khi lập trình các extension cho marketplace của magento v2 thì phải theo chuẩn này 3- Cấu hình Magento 2 đã nhúng sẵn bản 1.5.3 codesniffer của squizlabs vào cho lập trình viên. Nếu trên server chưa cài codesniffer thì có thể dùng ngay bản này Đường dẫn nằm ở vendor/bin/phpcs Tải về các rule để chạy (Các rule này kiểu như các convention được quy định sẵn để bắt lập trình viên làm theo) có suggest hoặc báo trên IDE composer require magento/marketplace-eqp After inst

Add external lib to vendor Magento 2

Magento 2 use autoload implement Code style PSR-4 You can add any custom source lib much easier by add require autoload 1. Upload lib files to vendor dir 2. Add file autoload.php in /vendor/lib-folder/autoload.php with content define('FACEBOOK_SDK_V4_SRC_DIR', '/src/Facebook/'); require __DIR__ . '/src/Facebook/autoload.php'; 3. Save and now you can call lib from anywhere like this ---- Injection from constructor and call instance in class \Facebook\Facebook

0xc000000f: Fix lỗi mất boot Windows 8.1

Thời gian thực hiện : 5-10' Window 8.1 noUEFI boot  Dùng đĩa cài hoặc usb boot win Không install mà vào repair mode Từ commandline dùng các lệnh sau theo thứ tự từ trên xuống  bootrec /fixmbr bootrec /fixboot bootrec /rebuildbcd bootrec /scanos exit reboot lại máy