如何在模块目录中的文件中设置模板?

时间:2014-06-16 09:49:46

标签: php magento

我在Magento的design目录中有一个地址簿编辑表格的自定义模板:

<layout>
<customer_address_form>
 <reference name='customer_address_edit'>
   <action method='setTemplate'><template>customer/address/edit.phtml</template></action>       
 </reference>
</customer_address_form>
</layout>

但是,将模板保存在那里非常方便 - 我更喜欢在我的模块目录中拥有edit.phtml。如何指向模块目录路径中的模板?我该怎么做而不是???

<action method='setTemplate'><template>???/app/code/local/ContactologyProduct/LogProductUpdate/layout/edit.phtml</template></action>

Breadcrumbs(&#34; ../&#34;)用于指向外部CSS和JS文件,但它似乎不适用于模板。

2 个答案:

答案 0 :(得分:0)

例如:您的模块名称为 vanfolmert ,在layout.xml下方使用代码

<layout version="0.1.0">
    <vanfolmert_index_index>
        <reference name="content">
            <block type="vanfolmert/vanfolmert" name="vanfolmert.edit" template="vanfolmert/edit.phtml"/> 
        </reference>
   </vanfolmert_index_index>
</layout>

您的模板结构应该像

template/vanfolmert/edit.phtml

答案 1 :(得分:0)

简而言之,我们可以看到Magento Logics分为3个逻辑部分。

M - model: - 此目录携带的应用程序的数据库通信

V - View: - 您的fontend视图在此目录中定义

C - Controller: - 如名称所示,它控制您的应用程序。它从模型中获取数据并提供查看。

注意:Magento无法分类为这三个部分。当我们深入研究它时,我们可以认识到其他一些逻辑分歧。但通常我们可以说它有一个MVC结构。

为什么Magento和其他几个框架都拥有MVC结构?

这个问题的答案非常重要。由于业务逻辑分为三个部分,因此易于配置和操作。例如,如果您需要更改页面的标题。如果您了解MVC模型,至少可以理解,您需要编辑视图文件,而不想查看控制器和模型文件。因此,MVC结构使您的一切变得简单。

记住这一点。让我们分析一下你的问题。在layout文件中,它设置了一个模板,它看起来像这样

 <action method='setTemplate'><template>customer/address/edit.phtml</template></action>  

这意味着,只要magento需要呈现您的地址表单,它就会查找此模板文件。它会在哪里看?是。你绝对是猜对了。在View目录中。您的视图目录在哪里?嗯...这很棘手。但是一旦你绕过它,你会发现Magento的视图部分再次分为两个部分。他们是

app/design/frontend | adminhtml - 通常包含布局和模板

skin/frontend | adminhtml - 此目录包含css js等。

所以magento会在这个位置搜索你的文件

app/design/frontend|adminhtml/<package>/<theme>/template/customer/address/edit.phtml

其中

adminhtml: - 包含构成magento管理员端的所有模板

frontend: - 包含magento前视图的模板文件。

我已经详细解释了所有这些,因为在创建模块时,应该始终保留模板文件 app / design / adminhtmlfrontend /&lt; .your_package&gt; /&lt; .your_theme&gt; / template

您需要在此处实现的是设置模板文件。比如说,您需要将模板保存在ContactologyProduct/LogProductUpdate/目录中,然后需要在

中创建这些目录

app/design/ntend/<your_package>/<your_theme>/template/contactlogyproduct/logproductupdate/edit.phtml

并将模板设置为

 <action method='setTemplate'><template>contactlogyproduct/logproductupdate/edit.phtml</template></action>

创建非常复杂的模块时,可能有多个视图文件(模板文件)。由于您将要保存这些模板contactlogyproduct/logproductupdate目录,将来当您需要查看模板文件时,它将变得更加容易。那是因为您知道在哪里需要查找模板文件。

注意:当您输入insdie <template/ >时,magento会在app/desing/frontend/<your_package>/<your_theme>/template内找到这些文件。