2012-09-10 153 views
0

我需要爲Magento完成本應該由官方團隊完成的兩件事。Magento:在目錄 - >管理產品中添加產品頁面鏈接?

  1. 如何在產品目錄 - >管理產品的每個產品行末添加單個產品頁面的鏈接?就像WordPress一樣,作者/管理員可以輕鬆點擊打開帖子列表中每個帖子的帖子頁面。我甚至不確定我應該編輯哪個phtml文件。

  2. 當特權管理員登錄時,如何在單個產品頁面上添加通向產品編輯器的「編輯產品」鏈接?就像WordPress一樣,每個帖子頁面的元行應該有一個「編輯帖子」鏈接,這個鏈接會導致帖子的編輯。我知道我應該編輯catalog/product/view.phtml,但是如何以編程方式獲取當前產品的後端編輯器鏈接?

有人可以告訴我怎樣才能實現這2件事嗎?非常感謝!

回答

0

我完全可以理解,爲什麼你要求的邏輯,但不幸的是這將是不那麼容易實現的...但你可以很容易地開始工作第1步,第2步會有點問題,因爲與WP相對的Magento爲前端和管理部分分開了會話。因此,在前端,您將無法識別登錄的網站管理員,因此 - 向他顯示鏈接。但讓我們按順序處理:

  1. 要實現第1步,您需要修改2個文件。請記住,最好不要修改核心文件中的文件,而是將它們移動到本地文件夾中,以保留目錄結構。第一次更改:Mage_Adminhtml_Block_Catalog_Product_Edit::_prepareLayout(文件app \ code \ core \ Mage \ Adminhtml \ Block \ Catalog \ Product \ Edit.php)。就在返回語句之前return parent::_prepareLayout();添加下面的代碼:

    $this->setChild('view_product', 
        $this->getLayout()->createBlock('adminhtml/widget_button') 
         ->setData(array(
         'label'  => Mage::helper('catalog')->__('View Product'), 
         'onclick' => "popWin('".$this->getProduct()->getProductUrl(false)."', 'popwin','width=800,height=600,resizable=yes,scrollbars=yes')", 
         'class' => 'save' 
        )) 
    ); 
    

    然後打開應用程序\設計\ adminhtml \ DEFAULT \ DEFAULT \模板\目錄\產品\ edit.phtml模板,並添加<?php if($this->getProductId()): ?>機箱內部下一個代碼<?php echo $this->getChildHtml('view_product')?>。因此,它看起來就像這樣:

    <?php if($this->getProductId()): ?> 
        <?php echo $this->getDeleteButtonHtml() ?> 
        <?php if($this->getProductSetId() && $this->getIsConfigured()): ?> 
         <?php echo $this->getDuplicateButtonHtml() ?> 
        <?php endif; ?> 
        <?php echo $this->getChildHtml('view_product')?> 
    <?php endif; ?> 
    

    第1步完成後,現在你應該能看到你的產品管理屏幕上查看訂單按鈕。

  2. 現在由於Magento無法在前端看到管理員,因此您可以創建前端管理員客戶組來處理該問題。您可以在「客戶/客戶組」節點中創建一個客戶組。然後在目錄/產品/ view.phtml在文件的底部添加下面的代碼:

    <?php if (Mage::helper('customer')->isLoggedIn()):?> 
        <?php /** @var $customer Mage_Customer_Model_Customer */?> 
        <?php $customer = Mage::helper('customer')->getCustomer();?> 
        <?php if ($customer->getGroupId() == /your_new_group_id/):?> 
         <a href="<?php echo Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/catalog_product/edit', array('id' => $this->getProduct()->getId()))?>" target="_blank"> 
          <?php echo $this->__('Edit Product')?></a> 
        <?php endif;?> 
    <?php endif;?> 
    

    只是不要忘記更改/ your_new_group_id /實際管理員用戶組ID。另外 - 如果您未登錄管理控制檯,它會要求您登錄,因爲正如我之前提到的,會話未連接。

祝你好運!

+0

感謝您的解決方案。我不是在產品編輯器頁面上的意思,但我的意思是在產品列表頁面上(目錄 - >管理產品)....我如何在「編輯」後立即在每行末尾添加「查看」鏈接「鏈接? –

0

1 - 當你點擊行時,他只是重定向你編輯產品頁面。但是,如果你想在每個產品線上加入鏈接來編輯頁面,那麼很難做到。我想如果我發現我在這裏編輯的東西。

2 - 在您的PHTML文件,您可以撥打:

<a href="<?php echo Mage::getBaseUrl().'/admin/catalog_product/edit/id/'.$_product->getId()?>">Link to edit product.</a> 
相關問題