我想在magento中更改消息(成功/错误)的位置。我得到了代码。
这是布局:
<layout>
<default>
<reference name="after_body_start">
<block type="core/template" name="top.messages" template="core/messages/top.phtml" before="-" />
</reference>
</default>
</layout>
这是模板文件:
<?php $_messageCollection = $this->getMessagesBlock()->getMessageCollection() ?>
<?php if ($_messageCollection->count()): ?>
<div>
<?php
echo $this->getMessagesBlock()->getGroupedHtml();
$_messageCollection->clear();
?>
</div>
<?php endif; ?>
这是用于将错误/成功消息更改为页面顶部的代码之一。
我需要更改消息的设计。哪个文件包含messages.phtml?我使用了这个路径文件app/design/frontend/your_package/your_theme/template/core/
。
但它不起作用。任何人都可以帮助改变设计。
由于
答案 0 :(得分:5)
html不会在模板文件中生成,而是在块中生成 - Mage_Core_Block_Messages
因此,如果你想自定义它,那么:
Mage_Core_Block_Messages
,以便您可以提供自己的getGroupedHtml()
getMessages()
代替getGroupedHtml()
如果您使用方法2,那么您可以查看core / messages.phtml以获取灵感。您的模板可能类似于:
<?php
$types = array(
Mage_Core_Model_Message::ERROR,
Mage_Core_Model_Message::WARNING,
Mage_Core_Model_Message::NOTICE,
Mage_Core_Model_Message::SUCCESS
);
$html = '';
foreach ($types as $type) {
if ( $messages = $this->getMessagesBlock()->getMessages($type) ) {
if ( !$html ) {
$html .= '<ul class="messages">';
}
$html .= '<li class="' . $type . '-msg">';
$html .= '<ul>';
foreach ( $messages as $message ) {
$html.= '<li>';
$html.= $message->getText();
$html.= '</li>';
}
$html .= '</ul>';
$html .= '</li>';
}
}
if ( $html) {
$html .= '</ul>';
}
echo $html;
?>
<?php $_messageCollection = $this->getMessagesBlock()->getMessageCollection()->clear() ?>
虽然不是模板最好的代码,但是你需要考虑重新分解并将一些逻辑移出到一个块,这将涉及创建自己的模块。
答案 1 :(得分:-1)
Prasoft 首先我明白你需要改变错误信息的位置和设计。
予。要更改设计:您可以编辑Css来执行此操作,但如果您还想更改HTML结构,请参阅文件
的magento /应用/设计/前端/碱/默认/模板/型芯/ messages.phtml
当然,您需要对主题进行更改。
II。要更改消息的位置,您需要引用该文件。
的magento /应用/设计/前端/碱/默认/模板/页/ 1column.phtml
参考代码。
<body<?php echo $this->getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>>
<?php echo $this->getChildHtml('after_body_start') ?>
<div class="wrapper">
<?php echo $this->getChildHtml('global_notices') ?>
<div class="page">
<?php echo $this->getChildHtml('header') ?>
<div class="main-container col1-layout">
<div class="main">
<?php echo $this->getChildHtml('breadcrumbs') ?>
<div class="col-main">
<?php echo $this->getChildHtml('global_messages') ?>
<?php echo $this->getChildHtml('content') ?>
</div>
</div>
</div>
<?php echo $this->getChildHtml('footer') ?>
<?php echo $this->getChildHtml('before_body_end') ?>
</div>
</div>
<?php echo $this->getAbsoluteFooter() ?>
</body>
当您在讨论global_messages
部分下的错误消息时,请根据您的HTML结构更改位置,重新找到此<?php echo $this->getChildHtml('global_messages') ?>
行。