:::: MENU ::::
Posts tagged with: custom theme

Magento 2 load product by id

Today we talk about how in Magento 2 load product by id. There are three way to get product load in magento 2. First Object Manager second factory Method and third one is Api Repository.

Factory Method:

Best practice method always use this method.

namespace QaisarSatti\Module\Block;

class Product extends \Magento\Framework\View\Element\Template
{

  protected $_product;  


  public function __construct(
     
        \Magento\Catalog\Model\ProductFactory $_product

    ) {


        $this->_productloader = $_productloader;
     
    }
    public function getLoadProduct()
    {
        $product_id=7;
        return $this->_productloader->create()->load($product_id);
    }

}

Api Repository:

This was introduce in Magento 2.1 by magento.

    namespace QaisarSatti\Module\Block;
    use Magento\Catalog\Api\ProductRepositoryInterface;
    class Product extends \Magento\Framework\View\Element\Template
     {
          protected $_productRepository;
       

          public function __construct(
         
            ProductRepositoryInterface $productRepository
          ) {
         

              $this->_productRepository = $productRepository;
          }
          public function getProduct()
          {
              $productId=7;
              return $product = $this->productRepository->getById($productId);
          }
      }

Object Manager:

No recommended method to use in magento2 but so magento use it so here it is just for knowledge.

$product_id=7;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->create('Magento\Catalog\Model\Product')->load($product_id);
Author: Qaisar Satti
Category: Magento 2
Last Modified: September 5, 2018


Magento 2 create  and use helper

Using helper you can put your methods in there that you have no idea where to put them. For example if you want create the thumbnail of image you use the helper method. The method you don’t know where to put put in helper class.

Now creating the helper and use of it.

Create Helper folder in module directory.



namespace QaisarSatti\HelloWorld\Helper

 

Now create the your helper class what name you want to put.In my case i will use Data file. Now the complete path will be.

namespace QaisarSatti\HelloWorld\Helper\Data.php



This file will be extend with.



 \Magento\Framework\App\Helper\AbstractHelper



Now create helper Data class.

 


<?php

/**

* Simple Hello World Module

*

* @category QaisarSatti

* @package QaisarSatti_HelloWorld

* @author Muhammad Qaisar Satti

* @Email [email protected]

*

*/


namespace QaisarSatti\HelloWorld\Helper;



use Magento\Store\Model\Store;



class Data extends \Magento\Framework\App\Helper\AbstractHelper

{



public function getTitle()

{

return  'First Hello World Module';

}

}

Now we will use helper method  in our block.

<?php

/**

* Simple Hello World Module

*

* @category QaisarSatti

* @package QaisarSatti_HelloWorld

* @author Muhammad Qaisar Satti

* @Email [email protected]

*

*/


namespace QaisarSatti\HelloWorld\Block;

class HelloWorld extends \Magento\Framework\View\Element\Template

{

protected $_helper;

public function __construct(

\QaisarSatti\HelloWorld\Helper\Data $_helper,

) {



$this->_helper=$_helper;



}

public function _prepareLayout()

{

parent::_prepareLayout();

$this->pageConfig->getTitle()->set($this->_helper->getTitle());

return $this;

}

}
Author: Qaisar Satti
Category: Magento 2
Last Modified: July 12, 2018


Set meta tag Magento 2

This tutotrial is about how to set Meta tag in magento 2. Magento is a very useful ecommerce platform.Since every Magento project requires a certain level of modification. This may involve changing an existing functionality or adding a new one. In this tutorial we will learn about how to set Meta tag in magento 2.This includes Meta title,Meta Keyword and Meta description. And in this tutorial we will learn how to do it programmatically in Magento 2.

Lets come to our topic and see an example and code.Below are the two methods. Making changes in the block and controller will help to getthe desired results.
 

Block


$this->pageConfig->getTitle()->set(__('First Hello World Module'));
//setting the page title
$this->pageConfig->setDescription('test description'); // set meta description
$this->pageConfig->setKeywords('test keywords'); // set meta keyword

 

Controller

 

namespace QaisarSatti\HelloWorld\Controller\Index;

use Magento\Framework\View\Result\PageFactory;

class Index extends Action {

protected $_resultPage;

public function __construct(
PageFactory $resultPage) {
$this->_resultPage = $resultPage;
}
public function execute() {
$result= $this->_resultPage->create();
$result->getConfig()->getTitle()->set("Meta Title"); //setting the page
$result->getConfig()->setDescription("Description"); // set meta description
$result->getConfig()->setKeywords("Key Words"); // set meta keyword

return $result;
}

I hope this tutorial is easy to understand and serve its purpose.
For any suggestions & question, please feel free to drop a comment.

Author: Qaisar Satti
Category: Magento 2
Last Modified: September 30, 2018


Magento 2 remove layered navigation

In this tutorial we will learn about a method in magento 2,Magento 2 remove layered navigation.Before starting the example i suppose you are familiar with magento 2 and are an advanced learner. If you are a beginner please start from the beginning.

Lets come to our topic.

Removing all categories

If you want to remove all the categories then add this code in your default.xml and add this to your theme or module.

 

default.xml

<referenceBlock name="catalog.leftnav" remove="true" />

 

Removing single category

Furthermore if you want to do this for single category you can do that from admin panel.For that,login to admin panel and then go to

Admin Panel > Products > Categories > YOUR PAGE > Design

  and add the following xml.

<referenceContainer name="catalog.leftnav" remove="true" />

That’s it from this tutorial. I hope it has help you in learning.

Author: Qaisar Satti
Category: Magento 2
Last Modified: September 30, 2018


Remove any link from top links Magento 2

 
Hello and welcome to qaisar satti blog. In this tutorial we will try to learn that how one can “remove any link from top links in Magento 2”.Before starting i assume that you are already performing a task and are struck on this problem. So lets get to the point and find the solution.For removing the top-link you must know the name of the link which is to be removed. For example Register-link is for register-link link.

To make it more simpler, easy to learn and for knowledge,below is the list of top-links.

Top Links



register-link                Create Account Link

authorization-link       Sign In Link

 

wish-list-link              WishList Link

 

my-account-link        My Account Link

 

Right then i believe now you know the top links, now add below code in your default.xml to remove the link. For example,if you want to remove the Create Account Link So for that you have to add below xml code.

<referenceBlock name="top.links">
        <referenceBlock name="register-link" remove="true" />          
 </referenceBlock>

 

Similarly other links can be removed too by following the above mentioned method. I hope this tutorial will help you.

Author: Qaisar Satti
Category: Magento 2
Last Modified: September 26, 2018


Override default theme template files Magento 2

In this tutorial we will discuss about the topic how to override default theme template files in magento 2. I am assuming that you are already familiar with magento 2 and has the know how, how things work in magento 2. So i will directly switch to our topic, and if you are not familiar please start from the basics.Having said that lets come to our topic, so if you are doing the custom theme then you must know how to Override default theme template files in magento 2,in your custom theme.And if you want to override all the files then simply go to.

vendor/magento/module-theme/view/frontend/

And copy the templates folder in your theme. In my case theme name is “theme”. So go to my theme folder and create the Magento_Theme Folder. And paste the templates folder there. Now your theme structure will look like this.

app/design/frontend/QaisarSatti/theme/Magento_Theme/templates

If you want to override the single file like header.phtml. Then copy the file from

vendor/magento/module-theme/view/frontend/templates/html/header.phtml

Paste it in your theme.And the file structure then will look like this

app/design/frontend/QaisarSatti/theme/Magento_Theme/templates/html/header.phtml
Author: Qaisar Satti
Category: Magento 2
Last Modified: September 26, 2018


Pages:123