0

I am getting a 404 message within the body of the index and magento connect admin pages. When I remove the module that I recently added, they come back. Can you see what is wrong with my module that is causing this issue? I got the files from this tutorial.

Caitlinhavenerr/Addschool/Block/ShowTabsAdminBlock.php:

<?php

class Caitlinhavener_Addschool_Block_ShowTabsAdminBlock extends Mage_Adminhtml_Block_Widget_Tabs
{
    public function __construct()
    {
        parent::__construct();
        $this->setId('my_custom_freely_assigned_id_for_tabs');

        /*
         * By default DestElementId = 'content'... if you trace the function you will see.
         * Meaning, it responds to layout block name?! like "content", "footer", "left"... 
         * Its basicaly telling the layout where to output tabs canvas aka display area
         */
        //$this->setDestElementId('my_custom_edit_form');

        $this->setTitle(Mage::helper('coffefreakhelper1')->__('Add Schools'));
    }

    protected function _beforeToHtml()
    {
       /* $this->addTab('custom_assigned_tab1_id_name', array(
            'label'     => Mage::helper('coffefreakhelper1')->__('Custom tab1 here'),
            'title'     => Mage::helper('coffefreakhelper1')->__('My custom tab1 title here'),
            'content'   => 'Some content here. We could add direct string here, or we can use something like $this->getLayout()->createBlock("adminhtml/cms_page_edit_tab_main")->toHtml()',
            'active'    => true
        ));

        $this->addTab('custom_aka_freely_assigned_tab2_id_name', array(
            'label'     => Mage::helper('coffefreakhelper1')->__('Custom tab2 here'),
            'title'     => Mage::helper('coffefreakhelper1')->__('My custom tab2 title here'),
            'content'   => 'Another content here. As mentioned, we could add direct string here, or we can use something like $this->getLayout()->createBlock("adminhtml/cms_page_edit_tab_main")->toHtml()',
            'active'    => false
        ));

        $this->addTab('custom_aka_freely_assigned_tab3_id_name', array(
            'label'     => Mage::helper('coffefreakhelper1')->__('Custom tab3 here<br />(usses class block)'),
            'title'     => Mage::helper('coffefreakhelper1')->__('My custom tab3 title here'),
            'content'   => $this->getLayout()->createBlock("coffefreakblock2/SampleBlockForTabAreaShowoff")->toHtml(),
            'active'    => false
        ));  */  

        $this->addTab('custom_aka_freely_assigned_tab4_id_name', array(
            'label'     => Mage::helper('coffefreakhelper1')->__('Add Public School'),
            'title'     => Mage::helper('coffefreakhelper1')->__('Add Public School'),
            'content'   => $this->getLayout()->createBlock("coffefreakblock1/SampleBlockForTabAreaShowoffWithExtraInfo")->toHtml(),
            'active'    => false
        ));          

        return parent::_beforeToHtml();
    }  
}

controllers/AdminControllersHere/FreakOutController.php:

<?php

class Caitlinhavener_Addschool_AdminControllersHere_FreakOutController extends Mage_Adminhtml_Controller_Action
{
    public function indexAction()
    {
        //Get current layout state
        $this->loadLayout();

        //Create core block based on inchoo/example_core_block.phtml template (view) file
        //Note the location "adminhtml"... needs to be there since this is admin controller
        $block = $this->getLayout()->createBlock(
            'Mage_Core_Block_Template',
            'my_block_name_here',
            array('template' => 'Caitlinhavener/example_core_block.phtml')
        );




        $this->getLayout()->getBlock('content')->append($block);
        //Below example does the same thing, and looks cooler :)
        //$this->_addContent($block);

        //Release layout stream... lol... sounds fancy
        $this->renderLayout();
    }
}

same folder FreakOutController2.php:

<?php

class Caitlinhavener_Addschool_AdminControllersHere_FreakOut2Controller extends Mage_Adminhtml_Controller_Action
{
    public function indexAction()
    {
        $this->loadLayout();

        $block = $this->getLayout()->createBlock(
            'Mage_Core_Block_Template',
            'my_block_name_here',
            array('template' => 'Caitlinhavener/example_core_block.phtml')
        );

        //$this->_addContent($block);

        $this->_addLeft($this->getLayout()->createBlock('Caitlinhavener_Addschool_Block_ShowTabsAdminBlock'));

        $this->renderLayout();
    }
}

config.xml:

<?xml version="1.0"?>

<config>
    <modules>
        <Caitlinhavener_Addschool>
            <version>0.1.0</version>
        </Caitlinhavener_Addschool>
    </modules> 

    <global>
        <blocks>
            <coffefreakblock1>
                <class>Caitlinhavener_Addschool_Block</class>
            </coffefreakblock1>  
            <coffefreakblock2>
                <class>Caitlinhavener_Addschool_Block_EditSpecial</class>
            </coffefreakblock2> 
        </blocks>
        <helpers>
            <coffefreakhelper1>
                <class>Caitlinhavener_Addschool_Helper</class>
            </coffefreakhelper1>
        </helpers>  
    </global>    






    <admin>
        <routers>

           <samplerouter1>
                <use>admin</use>
                <args>
                    <module>Caitlinhavener_Addschool_AdminControllersHere</module>
                    <frontName>admin</frontName>

                    <modules>
                        <sintax after="Caitlinhavener_Addschool_AdminControllersHere">Mage_Adminhtml</sintax>
                    </modules>
                </args>
           </samplerouter1>          



         </routers>     
    </admin>





    <adminhtml>


        <menu>
             <mymenu1 translate="title" module="coffefreakhelper1">
                <title>Schools</title>
                <sort_order>20</sort_order>
                <children>
                <!-- Note the misleading "module" attribute. 
                    It actualy refers to one of the declared helpers -->

                    <!--<myitem1 translate="title" module="coffefreakhelper1">
                        <title>Simple one column layout with custom template file assigned for view</title>
                        <action>samplerouter1/FreakOut</action>
                        <sort_order>1</sort_order>                        
                    </myitem1>-->

                    <myitem2 translate="title" module="coffefreakhelper1">
                        <title>Add Schools</title>
                        <action>samplerouter1/FreakOut2</action>
                        <sort_order>2</sort_order>                        
                    </myitem2>                    


                </children>
             </mymenu1>
        </menu>
    </adminhtml>    

</config>

2 Answers 2

1

Your <routers> configuration is incorrect. As guessed at, your configuration is telling Magento to use your module as a place to look for admin controllers. When it can't find them, it gets sad.

Specifically,

  • <samplerouter1/> should be <adminhtml/>
  • Remove the <module>Caitlinhavener_Addschool_AdminControllersHere</module> tag, it's not needed
  • Remove the <frontName>admin</frontName> tag, it's not needed

More information at

3
  • Changing samplerouter tag to adminhtml makes the index page return but when I click into the module page it redirects to the frontend 404 message. Aug 6, 2013 at 17:35
  • Which means Magento's having trouble finding your controller files. There's debugging information in the above linked articles. Aug 6, 2013 at 17:36
  • If you get a chance : magento.stackexchange.com/questions/6559/… :) Aug 8, 2013 at 17:27
1

Do not Remove the "Caitlinhavener_Addschool_AdminControllersHere" In the action use: adminhtml/FreakOut

Move the module from the "community" folder to "local" folder. Change the codepool (in etc/modules .xml) from community to local.

Works perfect with Magento 1.7.0.2.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.