:::: MENU ::::
Monthly Archives: November 2017

Magento 2 available commands

Today we talk about Magento 2 available commands. In this tutorail we listed all the command that we can use in magento 2. Command like deploy content, setup upgrade, indexing command, cache command and other command too. you can create custom command too with the help of Magento 2 create custom command. So let’s start with our list.

Available commands:

help         Displays help for a command
list         Lists commands

admin

admin:user:create         Creates an administrator
admin:user:unlock         Unlock Admin Account

cache

cache:clean         Cleans cache type(s)
cache:disable         Disables cache type(s)
cache:enable         Enables cache type(s)
cache:flush         Flushes cache storage used by cache type(s)
cache:status         Checks cache status

catalog

catalog:images:resize         Creates resized product images
catalog:product:attributes:cleanup         Removes unused product attributes.

cron

cron:run         Runs jobs by schedule

customer

customer:hash:upgrade         Upgrade customer’s hash according to the latest algorithm

deploy

deploy:mode:set         Set application mode.
deploy:mode:show         Displays current application mode.

dev

dev:source-theme:deploy         Collects and publishes source files for theme.
dev:tests:run         Runs tests
dev:urn-catalog:generate         Generates the catalog of URNs to *.xsd mappings for the IDE to highlight xml.
dev:xml:convert         Converts XML file using XSL style sheets

i18n

i18n:collect-phrases         Discovers phrases in the codebase
i18n:pack         Saves language package
i18n:uninstall         Uninstalls language packages

indexer

indexer:info         Shows allowed Indexers
indexer:reindex         Reindexes Data
indexer:reset         Resets indexer status to invalid
indexer:set-mode         Sets index mode type
indexer:show-mode         Shows Index Mode
indexer:status         Shows status of Indexer

info

info:adminuri         Displays the Magento Admin URI
info:backups:list         Prints list of available backup files
info:currency:list         Displays the list of available currencies
info:dependencies:show-framework         Shows number of dependencies on Magento framework
info:dependencies:show-modules         Shows number of dependencies between modules
info:dependencies:show-modules-circular         Shows number of circular dependencies between modules
info:language:list         Displays the list of available language locales
info:timezone:list         Displays the list of available timezones

maintenance

maintenance:allow-ips         Sets maintenance mode exempt IPs
maintenance:disable         Disables maintenance mode
maintenance:enable         Enables maintenance mode
maintenance:status         Displays maintenance mode status

module

module:disable         Disables specified modules
module:enable         Enables specified modules
module:status         Displays status of modules
module:uninstall         Uninstalls modules installed by composer

sampledata

sampledata:deploy         Deploy sample data modules
sampledata:remove         Remove all sample data packages from composer.json
sampledata:reset         Reset all sample data modules for re-installation

setup

setup:backup         Takes backup of Magento Application code base, media and database
setup:config:set         Creates or modifies the deployment configuration
setup:cron:run         Runs cron job scheduled for setup application
setup:db-data:upgrade         Installs and upgrades data in the DB
setup:db-schema:upgrade         Installs and upgrades the DB schema
setup:db:status         Checks if DB schema or data requires upgrade
setup:di:compile         Generates DI configuration and all missing classes that can be auto-generated
setup:install         Installs the Magento application
setup:performance:generate-fixtures         Generates fixtures
setup:rollback         Rolls back Magento Application codebase, media and database
setup:static-content:deploy         Deploys static view files
setup:store-config:set         Installs the store configuration
setup:uninstall         Uninstalls the Magento application
setup:upgrade         Upgrades the Magento application, DB data, and schema

theme

theme:uninstall         Uninstalls theme

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


Magento 2 call static block

Today we learn about how to call static block from phtm fiile,cms page and layout (xml) file. First you have to create a static block from admin panel, go to menu Content , choose Blocks and Click Add New Block button from top right. Every static block have identifier that are unique. You can call static block by identifier. For example our identifier is QaisarSattiTest.Now we use this identifier in phtml file, layout file and cam page.

Phtml:

echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId(QaisarSattiTest)->toHtml();

Layout (xml):

<block class="Magento\Cms\Block\Block" name="footersocial" before="-">                     
      <arguments>
            <argument name="block_id" xsi:type="string">QaisarSattiTest</arguments>
      </arguments>
 </block>

CMS Page:

{{block  id="QaisarSattiTest"}}
Author: Qaisar Satti
Category: Magento 2
Last Modified: July 12, 2018


Magento 2 Call phtml file in other phtml file or on cms page

Today we talk about how to in Magento 2 Call phtml file another phtml file cms page. Calling a phtml file is no different as compare to magento 1 calling. But if you are calling it in cms block you have to use class instead of type.

Phtml:

First we call in phtml file. It is simple just use below code put it in phtml file and add your block class name and phtml file according your module directory.

<?php
echo $this->getLayout()->createBlock("QaisarSatti\HelloWorld\Block\HelloWorld")->setTemplate("QaisarSatti_HelloWorld::helloworld.phtml")->toHtml();
?>

CMS Page:

Calling a phtml file on cms page. Just add class and phtml file path like below example.

{{block class="QaisarSatti\HelloWorld\Block\HelloWorld" template="QaisarSatti_HelloWorld::helloworld.phtml"}}
Author: Qaisar Satti
Category: Magento 2
Last Modified: July 12, 2018


Magento 2 Move remove block layout

Today we talk about how in Magento 2 move remove block layout. This tutorial includes how to remove block, how to move container and how to remove container.You can move block from one container to another but using the move handle. Same as you can remove any block with remove handle. First we will show the example how we remove the breadcrumbs block. Use the handle of referenceBlock and add the name reference you want to remove. You can check the layout files where the breadcrumbs block is define.

Remove Block

Now we add example code in our default.xml or you want to remove for any specific page block then add his layout file. Now you can remove breadcrumbs by simply adding this code.

<?xml version="1.0"?>
<!--/**
    * Simple Hello World Module
    *
    * @category    QaisarSatti
    * @package     QaisarSatti_HelloWorld
    * @author      Muhammad Qaisar Satti
    * @Email       [email protected]
    *
    */ -->
    <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
        <body>
            <referenceBlock name="breadcrumbs" remove="true"/>
        </body>
    </page>

You can use this example to remove any block.

Remove Container

Now we add example code in our default.xml or you want to remove for any specific page container then add his layout file. Now you can remove page.top by simply adding this code.

<?xml version="1.0"?>
<!--/**
    * Simple Hello World Module
    *
    * @category    QaisarSatti
    * @package     QaisarSatti_HelloWorld
    * @author      Muhammad Qaisar Satti
    * @Email       [email protected]
    *
    */ -->
    <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
        <body>
            <referenceContainer name="page.top" remove="true"/>
        </body>
    </page>

You can use this example to remove any block.

Move Block

For moving the block from one container to another. Just add element Name in my example i am moving the page.top block to store.menu.container. Now below is example code.

<?xml version="1.0"?>
<!--/**
    * Simple Hello World Module
    *
    * @category    QaisarSatti
    * @package     QaisarSatti_HelloWorld
    * @author      Muhammad Qaisar Satti
    * @Email       [email protected]
    *
    */ -->
    <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
        <body>
            <move element="page.top" destination="store.menu.container" before="-" />
        </body>
    </page>

You can use this example to move any block

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


Magento 2 override phtml file in custom module

Today we talk about how to override the magento 2 phtml file in custom module. First thing is simple just create xml file default.xml in your module layout folder. Then call the referenceBlock name you want to override in your module. There are two possible way to do that.

First:

Using the layout file to override the phtml file. You must be aware of block name of phtml file. Now use below simple code to override.

<referenceBlock name="block-name">
    <action method="setTemplate">
        <argument name="template" xsi:type="string">'QaisarSatti_HelloWorld::path/to/my/file.phtml </argument>
    </action>
</referenceBlock>

Note
This solution requires finding all instances where the block is used and create as many xml files as handles in which it is used.

Second:

The block is used very often or you want to make sure each new usage will not require adding this kind of configuration you can do it using plugin.

Declare your plugin either in etc/di.xml or etc/frontend/di.xml

<type name="Other\Module\Block">
    <plugin name="very-unique-name" type="QaisarSatti\HelloWorld\Plugin\Block" />
</type>

And then create a class QaisarSatti\HelloWorld\Plugin\Block with content like

<?php
namespace QaisarSatti\HelloWorld\Plugin;

class Block
{
    public function beforeToHtml(\Other\Module\Block $block)
    {
        $block->setTemplate('QaisarSatti_HelloWorld::path/to/my/file.phtml');
    }
}

Note:
This way you enforce use of this template in each instance so you will be no longer available to set it different just for 1 usage in layout xml file (unless you will add some flag to the block and a logic to check it in the plugin).

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