2012-01-27 74 views
1

我正在创建一个自定义模块,该产品视图页面中添加了一个自定义选项卡,该窗口具有用于输入特定信息的表单。我使用默认/现代主题,所以我已经在产品视图页面上有选项卡,我希望我的自定义选项卡显示在他们旁边。使用自定义模块将自定义选项卡添加到产品查看页面 - 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> 

请指出我做错了什么,以及如何在点击链接的同一选项卡上打开表单。

回答

1

试试这个链接:

- 编辑 -

<?php echo $this->getChildHtml('questionForm'); ?> 

// should be (not child element, block alias as described in tutorial) 

<?php echo $this->getChildHtml('info_tabs'); ?> 
+0

感谢您的链接。我设法创建了一个显示产品问答的区块,并点击链接打开表单,询问与产品相关的问题。现在我已经掌握了基本/默认主题。但如果我使用现代主题在标签中显示这些内容,我无法显示我的产品问题表单。每当我点击这个链接时,它就会一无所有。当然有一种方法可以在catalog.xml或我自己的module.xml文件中以tab格式声明。你有什么线索怎么做? – ivn 2012-01-30 13:28:46

+0

如果没有看到你的代码,我什么都不能说,对此我很抱歉。 – 2012-01-30 13:35:35

+0

我编辑了这个问题。请看看,让我知道你的想法。谢谢。 – ivn 2012-01-30 14:45:10

0

我的解决办法:

<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)必须存在。

相关问题