Η αρμοδιότητα του Admin Controller στο Magento 2 και σε ένα PHP MVC Framework γενικότερα είναι να λαμβάνει το αίτημα (request) από τον τελικό χρήστη (π.χ. μέσω του url του browser), να το επεξεργάζεται και να αποδίδει την ανάλογη σελίδα.

Στο Magento 2 έχουμε τους Frontend Controllers και τους Backend Controllers (ή Admin Controllers), τους οποίους θα αναπτύξουμε σε αυτό το άρθρο, η κύρια διαφορά από έναν Frontend Controller είναι ότι ο Admin Controller περιέχει μία μέθοδο για τον έλεγχο δικαιωμάτων χρήσης, που ρυθμίζονται με την σειρά τους από ένα Admin ACL, βλέπε Magento 2 δημιουργία Admin ACL.

Προαπαιτούμενα

Για να ξεκινήσουμε να γράφουμε τα κομμάτια του κώδικά για το Grid, πρέπει να έχουμε:

  1. Ένα custom module που θα φιλοξενήσει τον κώδικα μας, βλέπε Magento 2 δημιουργία module.
  2. Παραμετροποιημένο το custom admin path, βλέπε Magento 2 δημιουργία Admin Route.

Προτείνουμε επίσης:

  1. Το μενού από το οποίο μπορούμε να καλέσουμε τον Controller μας, βλέπε Magento 2 δημιουργία Admin Menu.
  2. Παραμετροποιημένα δικαιώματα για το custom μενού και τον Controller που θα χρησιμοποιήσουμε, βλέπε Magento 2 δημιουργία Admin ACL.

Δημιουργία του Admin Controller

Δημιουργία του αρχείου app/code/Gladd/Demo/Controller/Adminhtml/Item/Index.php

<?php

namespace Gladd\Demo\Controller\Adminhtml\Item;

use Magento\Backend\App\Action;
use Magento\Backend\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
class Index extends Action
{
    private $resultPageFactory;

    public function __construct(
        Context $context,
        PageFactory $resultPageFactory
    ) {
        parent::__construct($context);
        $this->resultPageFactory = $resultPageFactory;
    }

    public function execute()
    {
        return  $resultPage = $this->resultPageFactory->create();
    }
}

Δημιουργία του template

Δημιουργία του αρχείου app/code/Gladd/Demo/view/adminhtml/templates/item.phtml

<p>This is a placeholder template</p>
<p>Visit our <a href="https://www.gladd.gr/blog" target="_blank">gladd blog</a>.</p>

Δημιουργία του layout

Δημιουργία του αρχείου app/code/Gladd/Demo/view/adminhtml/layout/gladd_demo_item_index.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <title>
            Gladd Demo Items
        </title>
    </head>
    <body>
        <referenceContainer name="content">
            <block class="Magento\Backend\Block\Template" template="Gladd_Demo::item.phtml" />
        </referenceContainer>
    </body>
</page>

Με τα παραπάνω αρχεία μπορούμε να πλέον να δοκιμάσουμε τον Admin Controller μας πληκτρολογώντας την παρακάτω διεύθυνση.

https://www.example.com/index.html/admin/gladd_demo/item/index

Σημαντικό! Για να λειτουργήσει το παραπάνω url πρέπει να έχουμε απενεργοποιήσει το «Secret Key» που προσθέτει αυτόματα το Magento σε έλα τα admin url. Αυτό επιτυγχάνεται ένα πάμε Stores > Configuration > Admin > Security και στην παράμετρο «Add Secret Key to URLs» επιλέξουμε No.

Προτείνεται η χρήση του Admin menu που έχουμε δημιουργήσει σε προηγούμενο άρθρο, βλέπε Magento 2 δημιουργία Admin Menu.

Leave a Comment

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *