2012-01-27 105 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)必須存在。

相關問題