Hi,
I have followed exact steps given in the below magento guide link but no data is showing in the custom php page.
Please help
Hi @neelav_barai,
Can you check your module structure?
MyCompany `-- ExampleAdminNewPage | |-- Controller | |-- Adminhtml | |-- HelloWorld | `-- Index.php |-- etc | |-- adminhtml | | |-- menu.xml | | `-- routes.xml | `-- module.xml |-- view | |-- adminhtml | |-- layout | | `-- exampleadminnewpage_helloworld_index.xml | `-- templates | `-- helloworld.phtml |-- composer.json `-- registration.php
Are the layout and template files in the right place?
Did you refreshed cache?
In which mode is your application?
Hi @Damian Culotta,
Yes the directory structure is correct, I have double checked it.
I have complied megento after completion, i have done any deletion of cache, can it do it like this :
php -f bin/magento cache:flush
I am running in developer mode.
Below is my complete code:
C:\xampp\htdocs\app\code\BBC\ProdAdmin\composer.jason
{"name": "bbc/ProdAdmin", "description": "A module that creates a page in the Magento admin area", "type": "magento2-module", "version": "1.0.0", "license": [ "OSL-3.0", "AFL-3.0" ], "require": { "php": "~5.6.0|7.0.2|7.0.4|~7.0.6" }, "autoload": { "files": [ "registration.php" ], "psr-4": { "BBC\\ProdAdmin\\": "" } }}
C:\xampp\htdocs\app\code\BBC\ProdAdmin\registration.php
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'BBC_ProdAdmin', __DIR__ );
C:\xampp\htdocs\app\code\BBC\ProdAdmin\etc\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="BBC_ProdAdmin" setup_version="1.0.0"> </module> </config>
C:\xampp\htdocs\app\code\BBC\ProdAdmin\etc\adminhtml\menu.xml
<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd"> <menu> <add id="BBC_ProdAdmin::greetings" title="Prod Admin Panel" translate="title" module="BBC_ProdAdmin" parent="Magento_Backend::content" sortOrder="50" dependsOnModule="BBC_ProdAdmin" resource="BBC_ProdAdmin::greetings"/> <add id="BBC_ProdAdmin::greetings_helloworld" title="Admin Access" translate="title" module="BBC_ProdAdmin" parent="BBC_ProdAdmin::greetings" sortOrder="10" dependsOnModule="BBC_ProdAdmin" action="prodadmin/ProdAdminControl" resource="BBC_ProdAdmin::greetings"/> </menu> </config>
C:\xampp\htdocs\app\code\BBC\ProdAdmin\etc\adminhtml\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="prodadmin" frontName="prodadmin"> <module name="BBC_ProdAdmin"/> </route> </router>
C:\xampp\htdocs\app\code\BBC\ProdAdmin\Controller\Adminhtml\ProdAdminControl\Index.php
<?php namespace BBC\ProdAdmin\Controller\Adminhtml\ProdAdminControl; class Index extends \Magento\Backend\App\Action { /** * @var \Magento\Framework\View\Result\PageFactory */ protected $resultPageFactory; /** * Constructor * * @param \Magento\Backend\App\Action\Context $context * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory */ public function __construct( \Magento\Backend\App\Action\Context $context, \Magento\Framework\View\Result\PageFactory $resultPageFactory ) { parent::__construct($context); $this->resultPageFactory = $resultPageFactory; } /** * Load the page defined in view/adminhtml/layout/exampleadminnewpage_helloworld_index.xml * * @return \Magento\Framework\View\Result\Page */ public function execute() { return $resultPage = $this->resultPageFactory->create(); } } ?>
C:\xampp\htdocs\app\code\BBC\ProdAdmin\view\adminhtml\layout\ProdAdmin_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> Product Admin Access </title> </head> <body> <referenceContainer name="content"> <block class="Magento\Backend\Block\Template" template="BBC_ProdAdmin::AdminAccess.phtml"/> </referenceContainer> </body> </page>
C:\xampp\htdocs\app\code\BBC\ProdAdmin\view\adminhtml\templates\AdminAccess.phtml
<p>Hello World!</p>
And after these steps i get the below screen:
You need to create xml file like below namespace,
C:\xampp\htdocs\app\code\BBC\ProdAdmin\view\adminhtml\layout\prodadmin_prodadmincontrol_index.xml
you have kept name Prodadmin_index.xml file. Please correct filename and clear cache and check,
Please check route. Xml file. Route id= [xyzid] and layout file name must start with that id