cancel
Showing results for 
Search instead for 
Did you mean: 

Как прописать атрибуты макета блока?

SOLVED

Как прописать атрибуты макета блока?

Я пишу модуль для magento1.9. Помогите пожалуйста выставить атрибуты для
app/design/frontend/rwd/default/layout/kalinin_form.xml:

<?xml version="1.0" ?>
<layout>
    <kalininform_index_index>
        <reference name="content">
            <block type="kalininform/form" template="Kalinin_Form/index.phtml" />
        </reference>
    </kalininform_index_index>
</layout>

Как видите, сейчас у меня атрибут type(а может быть и другие) установлен неверно.

Проблема в том, что браузер показывает страницу с пустой областью контента по адресу localhost/magento3/index.php/form

Привожу остальной код модуля.

app/design/frontend/rwd/default/template/Kalinin_Form/index.phtml:

<?php
echo('qqqqqqqqqqqqq');

app/code/local/Kalinin/Form/controllers/IndexController.php:

<?php
class Kalinin_Form_IndexController extends Mage_Core_Controller_Front_Action
{

    public function indexAction()
    {                     
        $this->loadLayout();
        $this->renderLayout();
    }

}

app/code/local/Kalinin/Form/Block/Form.php:

<?php
class Kalinin_Form_Block_Form extends Mage_Core_Block_Template
{

    public function getNewsCollection()
    {
        Mage::log("Your Log Message");    
        return true;
    }

}

app/code/local/Kalinin/Form/etc/config.xml:

<?xml version="1.0" ?>
<config>
    <modules>
        <Kalinin_Form>
            <version>0.0.1</version>
        </Kalinin_Form>
    </modules>
    <frontend>    
        <layout>
            <updates>
                <kalininform>
                    <file>kalinin_form.xml</file>
                </kalininform>
            </updates>
        </layout>           
        <routers>
            <kalininform>
                <use>standard</use>
                <args>
                    <module>Kalinin_Form</module>
                    <frontName>form</frontName>
                </args>
            </kalininform>
        </routers>
    </frontend>    
    <global>        
        <blocks>
            <Kalinin_Form>
                <class>Kalinin_Form_Block</class>
            </Kalinin_Form>
        </blocks>      
    </global>    
</config>

Вообще у меня проблема с пониманием атрубутов в app/design/frontend/rwd/default/layout/kalinin_form.xml. Официальной документации нет. Буду благодарен, если объясните что к чему.

2 REPLIES

Re: Как прописать атрибуты макета блока?

Разрешение на этот type прописали? Мадженто не обрабатывает сторонние блоки, если им не дать разрешения( от версии 1.9.2.х)
middle developer

Re: Как прописать атрибуты макета блока?

Поменяйте секцию blocks  в config.xml на

<blocks>
            <kalininform>
                <class>Kalinin_Form_Block</class>
            </kalininform>
        </blocks>

в config.xml в секциях blocks, helpers, models вы указываете alias - короткое имя для обращения к блокам, моделям и хелперам.

В вашем случае с учетом моего исправления это kalininform. То есть type="kalininform/block_path..."

либо можно оставить ваш конфиг, но тогда придется поменять в layout - type="Kalinin_Form/..."