0

メンバーシップ システムのさまざまなタスクを処理するカスタム モジュールを作成しました。好きな場所にブロックをドロップできるように、モジュールを変更しようとしています。Gravitywell.comのチュートリアルに従ってきましたが、どこかに落ちたような気がします。

app/etc/modules/Hatclub_MembershipHandler.xml

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

アプリ/コード/ローカル/Hatclub/MembershipHandler/ブロック/lookup.php

<?php

class Hatclub_MembershipHandler_Block_Lookup extends Mage_Core_Block_Template {    

}

アプリ/コード/ローカル/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>

アプリ/コード/ローカル/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(); ?>
4

1 に答える 1

1

ファイルapp/code/local/Hatclub/MembershipHandler/etc/config.xmlのブロックノードの下のコードは、次のようになります。

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

membershandlerは、モジュール名の小文字バージョンを表し、

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

する必要があります

<?php 
        echo $this->getLayout()->createBlock('membershiphandler/lookup')->setTemplate('path to the template file')->toHtml(); ?>
于 2013-01-14T05:55:22.877 に答える