Nick Parsons
Nick Parsons

Reputation: 8607

Displaying block using custom module

I've created a custom module that handles various tasks for our membership system. I'm now trying to modify the module so that I'm able to drop in a block wherever I'd like. I've been following the tutorial on Gravitywell.com but I have a feeling that I've dropped off somewhere.

app/etc/modules/Hatclub_MembershipHandler.xml

<config>
<modules>
    <Hatclub_MembershipHandler>
        <active>true</active>
        <codePool>local</codePool>
    </Hatclub_MembershipHandler>
</modules>

app/code/local/Hatclub/MembershipHandler/Block/lookup.php

<?php

class Hatclub_MembershipHandler_Block_Lookup extends Mage_Core_Block_Template {    

}

app/code/local/Hatclub/MembershipHandler/etc/config.xml

<modules>
    <Hatclub_MembershipHandler>
        <version>1.0.0</version>
    </Hatclub_MembershipHandler>
</modules>

<global>

    <models>
        <hatclub_membership_handler>
            <class>Hatclub_MembershipHandler_Model</class>
        </hatclub_membership_handler>
    </models>

    <blocks>
        <hatclub_membership_handler>
            <class>Hatclub_MembershipHandler_Block</class>
        </hatclub_membership_handler>
    </blocks>

    <events>

        <customer_register_success>
            <observers>
                <registration_success_observer>
                    <class>hatclub_membership_handler/observer</class>
                    <method>registrationSuccess</method>
                    <type>singleton</type>
                </registration_success_observer>
            </observers>
        </customer_register_success>

    </events>

</global>

app/code/local/Hatclub/MembershipHandler/Model/Observer.php

<?php

class Hatclub_MembershipHandler_Model_Observer {

    // members group id
    const GROUP_ID = 4;

    // called when a customer registers for the site
    public function registrationSuccess(Varien_Event_Observer $observer) {

        // extract customer data from event
        $customer = $observer->getCustomer();

        // a cookie should have been set with the membership id
        if (isset($_COOKIE['membership_account_id'])) {

            $customer
                ->setGroupId(self::GROUP_ID)
                ->setRmsId($_COOKIE['membership_account_id']);

        }

        return $this;

    }

}

/app/design/frontend/enterprise/hatclub/template/persistent/customer/form/register.phtml

<?php 
    echo $this->getLayout()->createBlock('hatclub_membership_handler/lookup')->setTemplate('membership_lookup/lookup.phtml')->toHtml(); ?>

Upvotes: 0

Views: 307

Answers (1)

Rohit S
Rohit S

Reputation: 1040

The code under blocks node in file app/code/local/Hatclub/MembershipHandler/etc/config.xml should look like this

<blocks>
            <membershiphandler>
                <class>Hatclub_MembershipHandler_Block</class>
            </membershiphandler>
</blocks>

membershiphandler represents lowercase version of your module name and

<?php 
    echo $this->getLayout()->createBlock('hatclub_membership_handler/lookup')->setTemplate('membership_lookup/lookup.phtml')->toHtml(); ?>

should be

<?php 
        echo $this->getLayout()->createBlock('membershiphandler/lookup')->setTemplate('path to the template file')->toHtml(); ?>

Upvotes: 1

Related Questions