2012-09-10 155 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> 
相关问题