📜  空白管理页面 magento 2.3 - PHP (1)

📅  最后修改于: 2023-12-03 15:27:22.347000             🧑  作者: Mango

空白管理页面 magento 2.3 - PHP

Magento是一款流行的电商平台,它提供了一个管理后台,可以轻松地管理商店的内容、订单、客户等。而空白管理页面是Magento管理后台中的一个重要页面,它允许您自定义新页面或修改现有页面的布局和内容。

在本介绍中,我们将讨论Magento 2.3版本中的空白管理页面并介绍如何使用PHP为其添加自定义内容和布局。这将使您能够为您的商店创建独特的管理页面。

使用PHP为空白管理页面添加自定义内容和布局

以下是如何为您的Magento 2.3商店创建自定义空白管理页面的步骤。

步骤1:创建空白管理页面

您可以通过以下步骤创建一个空白的管理页面:

  1. 登录Magento后台。

  2. 进入“Content > Pages”,创建一个新页面。

  3. 在“Page Information”部分中,填写页面的基本信息,例如标题、URL等。

  4. 在“Content”部分中,选择“Empty”页面类型,然后单击保存。

步骤2:连接PHP文件

接下来,您需要连接到您的PHP文件来为其添加内容和布局。您可以通过以下步骤完成此操作:

  1. 打开您的PHP文件并连接到Magento的框架。

    require_once('app/bootstrap.php');
    $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
    $objectManager = $bootstrap->getObjectManager();
    $state = $objectManager->get('Magento\Framework\App\State');
    $state->setAreaCode('adminhtml');
    

    这将连接您的PHP文件到Magento框架,并将状态设置为“adminhtml”以便为管理后台连接。

  2. 获取页面ID并加载页面对象。

    $pageId = 'custom_page_id'; // 替换您的页面ID
    $pageRepository = $objectManager->get('Magento\Cms\Api\PageRepositoryInterface');
    $page = $pageRepository->getById($pageId);
    

    这将获取您的页面ID并加载页面对象,以便可以将内容添加到该页面。

  3. 添加您的PHP代码到页面内容。

    $pageContent = $page->getContent();
    $pageContent .= 'Your PHP code here';
    $page->setContent($pageContent);
    $pageRepository->save($page);
    

    这将获取页面的内容,然后将您的PHP代码添加到内容中。最后,将内容保存回页面对象中。

步骤3:显示页面

上述步骤将为您的Magento商店创建自定义空白管理页面并将您的PHP代码添加到其中。现在,您需要添加代码以在Magento后台中显示该页面。

  1. 创建自定义模块

    在Magento 2.3中,您需要创建一个自定义模块来显示您的自定义管理页面。您可以通过以下步骤创建自定义模块:

    1. 在Magento 2.3根目录下,创建以下目录结构:

      app/code/<Vendor>/<Module>
      

      其中,<Vendor>代表您的公司或组织名称,<Module>代表您的模块名称。

    2. 在您的新模块目录中,创建一个registration.php文件,指定您的模块名称和路径:

      <?php
      \Magento\Framework\Component\ComponentRegistrar::register(
          \Magento\Framework\Component\ComponentRegistrar::MODULE,
          '<Vendor>_<Module>',
          __DIR__
      );
      
    3. 再创建一个module.xml文件,指定您的模块名称和版本号:

      <?xml version="1.0"?>
      <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
          <module name="<Vendor>_<Module>" setup_version="1.0.0"/>
      </config>
      
  2. 创建一个控制器

    接下来,您需要创建一个控制器来呈现您的自定义空白管理页面。您可以通过以下步骤完成此操作:

    1. 在您的自定义模块目录中,创建以下目录结构:

      Controller/Adminhtml/Page/Custom.php
      
    2. Custom.php文件中,添加以下代码:

      <?php
      namespace <Vendor>\<Module>\Controller\Adminhtml\Page;
      use Magento\Framework\App\ResponseInterface;
      use Magento\Framework\View\Result\PageFactory;
      use Magento\Backend\App\Action;
      use Magento\Backend\App\Action\Context;
      
      class Custom extends Action
      {
          /**
           * @var PageFactory
           */
          protected $resultPageFactory;
      
          /**
           * Custom constructor.
           * @param Context $context
           * @param PageFactory $resultPageFactory
           */
          public function __construct(
              Context $context,
              PageFactory $resultPageFactory
          )
          {
              $this->resultPageFactory = $resultPageFactory;
              parent::__construct($context);
          }
      
          /**
           * @return ResponseInterface|\Magento\Framework\Controller\ResultInterface|void
           */
          public function execute()
          {
              $resultPage = $this->resultPageFactory->create();
              $resultPage->getConfig()->getTitle()->prepend(__('Custom Page'));
              return $resultPage;
          }
      }
      
    3. 这将创建一个名为Custom的控制器,用于显示您的自定义空白管理页面。

  3. 配置路由

    最后,您需要配置路由以便正确连接到您创建的控制器。您可以通过以下步骤完成此操作:

    1. 在您的自定义模块目录中,创建以下目录结构:

      etc/adminhtml/routes.xml
      
    2. routes.xml文件中,添加以下代码:

      <?xml version="1.0"?>
      <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
          <router id="admin">
              <route id="<vendor>_<module>" frontName="<vendor>_<module>">
                  <module name="<Vendor>_<Module>" before="Magento_Backend" />
              </route>
          </router>
      </config>
      
    3. 这将配置路由以便连接到您创建的控制器。现在,您可以在Magento后台中访问此页面。

步骤4:访问自定义空白管理页面

经过上述步骤,您现在可以在Magento后台中访问您的自定义空白管理页面。您可以通过以下步骤完成此操作:

  1. 登录Magento后台。

  2. 进入“Content > Pages”。

  3. 找到您创建的空白管理页面,单击“Edit”以编辑它。

  4. 在“Content”部分中,添加以下HTML代码:

    <a href="{{config path="web/secure/base_url"}}admin/<vendor>_<module>/page/custom">Custom Page</a>
    

    请确保将<vendor><module>替换为您的模块名称,然后单击“Save Page”以保存更改。

  5. 现在,在Magento后台顶部栏中,单击“CMS”>“Custom Page”,即可访问您的自定义空白管理页面。

结论

在本介绍中,我们讨论了如何使用PHP为Magento 2.3商店创建自定义空白管理页面。通过按照上述步骤,您可以轻松地为您的商店创建独特的管理页面,并添加自定义内容和布局。此外,通过创建自定义模块和控制器,您可以为Magento商店添加任何自定义页面。