使用自定义模块将自定义选项卡添加到产品查看页面 - Magento
问题描述:
我正在创建一个自定义模块,该产品视图页面中添加了一个自定义选项卡,该窗口具有用于输入特定信息的表单。我使用默认/现代主题,所以我已经在产品视图页面上有选项卡,我希望我的自定义选项卡显示在他们旁边。使用自定义模块将自定义选项卡添加到产品查看页面 - Magento
用户输入的这些信息应该是可编辑的,并且可以在网格或其他东西的后端查看。
现在我已经开始创建自己的模块,但是我在进行一些事情时感到困惑。 Stack Overflow在增加我的Magento知识方面非常有帮助,所以我认为在继续之前最好先咨询专家。
1)为了让我的标签显示在产品视图页面上,我的布局文件应该是什么样子?
2)如何在catalog.xml文件中传递我的选项卡的信息?
3)如果我希望此部分显示在Admin的Catalog部分下,那么我需要更改哪些文件?我需要扩展任何核心文件吗?
这也是迄今为止
Companyname
Modulename
etc >> config.xml
Helper >> Data.php
sql >> module_setup >> mysql4-install-0.1.0.php
Model >> Module.php
Mysql4 >> Module.php
Module >> Collection.php
Block
design
default
modern
layout >> module.xml
template >> module >> module.phtml
我下面的教程和我的所有文件都得到了内容类似这样link高达出增加了前端模板的一部分我的文件结构。我还没有开始为Admin部分编写代码,并想到在此之前清理我的概念。
任何建议/输入是超过赞赏。谢谢。
编辑:这是我模块的设计布局文件。 应用程序/设计/前端/默认/现代/布局/ cm_askquestion.xml
<?xml version="1.0"?>
<layout version="0.1.0">
<catalog_product_view>
<reference name="product.info.tabs">
<block type="cm_askquestion/list" name="catalog.ask.question" template="cm_askquestion/list.phtml" >
<block type="core/template" name="question.form" as="questionForm" template="cm_askquestion/form.phtml" />
</reference>
</catalog_product_view>
</layout>
这是我的应用程序/设计/前端/默认/现代/布局/ catalog.xml文件
<catalog_product_view translate="label">
<label>Catalog Product View (Any)</label>
<reference name="content">
<block type="catalog/product_view_tabs" name="product.info.tabs" as="info_tabs" template="catalog/product/view/tabs.phtml" >
<action method="addTab" translate="title" module="catalog">
<alias>description</alias>
<title>Product Description</title>
<block>catalog/product_view_description</block>
<template>catalog/product/view/description.phtml</template>
</action>
<action method="addTab" translate="title" module="catalog">
<alias>askaquestion</alias>
<title>Ask a Question</title>
<block>cm_askquestion/list</block>
<template>cm_askquestion/list.phtml</template>
</action>
</block>
我list.phtml包含一个名为链接“提问”这是用来打通形式
<p><strong><a href="#question-form" id="add-question"><?php echo $this->__('Ask a question'); ?></strong></a></p>
<!-- code to display answered questions-->
<?php echo $this->getChildHtml('questionForm'); ?>
而且我form.phtml开始就是这样,
<a name="question-form"></a>
<form action="<?php echo Mage::getUrl('askquestion/index/addQuestion'); ?>" id="questionForm" method="post" style="display: none;">
<!-- code to display product question form -->
<script type="text/javascript">
//<![CDATA[
$('add-question').observe('click', function(event){
$('questionForm').toggle();
});
var contactForm = new VarienForm('questionForm', true);
//]]>
</script>
请指出我做错了什么,以及如何在点击链接的同一选项卡上打开表单。
答
试试这个链接:
- 编辑 -
<?php echo $this->getChildHtml('questionForm'); ?>
// should be (not child element, block alias as described in tutorial)
<?php echo $this->getChildHtml('info_tabs'); ?>
答
我的解决办法:
<catalog_product_view>
<reference name="product.info">
<!-- Add tabs -->
<block type="catalog/product_view_tabs" name="product.info.tabs" as="info_tabs" template="catalog/product/view/tabs.phtml">
<action method="addTab" translate="title"><alias>comparative</alias><title>Comparative</title><block>core/template</block><template>catalog/product/view/comparative.phtml</template></action>
</block>
</reference>
</catalog_product_view>
模板文件(example.phtml)必须存在。
感谢您的链接。我设法创建了一个显示产品问答的区块,并点击链接打开表单,询问与产品相关的问题。现在我已经掌握了基本/默认主题。但如果我使用现代主题在标签中显示这些内容,我无法显示我的产品问题表单。每当我点击这个链接时,它就会一无所有。当然有一种方法可以在catalog.xml或我自己的module.xml文件中以tab格式声明。你有什么线索怎么做? – ivn 2012-01-30 13:28:46
如果没有看到你的代码,我什么都不能说,对此我很抱歉。 – 2012-01-30 13:35:35
我编辑了这个问题。请看看,让我知道你的想法。谢谢。 – ivn 2012-01-30 14:45:10