Magento:在目录中添加产品页面链接 - >管理产品?

时间:2012-09-10 12:14:23

标签: magento

我需要为Magento完成两件应该由官方团队完成的事情。

  1. 如何在目录的每个产品行末尾添加指向各个产品页面的链接 - >管理产品?就像WordPress一样,作者/管理员可以轻松点击打开帖子列表中每个帖子的帖子页面。我甚至不确定我应该编辑哪个phtml文件。

  2. 当特权管理员登录时,如何在单个产品页面上添加“编辑产品”链接,该链接指向产品的编辑器?就像WordPress一样,每个帖子页面的元行应该有一个“编辑帖子”链接,该链接指向帖子的编辑。我知道我应该编辑catalog / product / view.phtml但是如何以编程方式获取当前产品的后端编辑器链接?

  3. 有人可以告诉我如何实现这两件事吗?非常感谢!

4 个答案:

答案 0 :(得分:1)

终于得到了解决自己的第一个问题。详细说明可在此处找到:http://www.magentogoreview.com/add-view-product-page-link-to-products-list-at-catalog-manage-products~280

但仍在寻找第二个问题的答案。当我拥有它时会更新。

答案 1 :(得分:1)

以下内容可帮助您获得一些方法,允许您从后端产品编辑页面查看前端产品:

http://inchoo.net/ecommerce/magento/view-product-in-frontend-from-magento-admin/

答案 2 :(得分:0)

1 - 当您点击线路时,他只需重定向您即可编辑产品页面。但是如果你想在每个产品线上加上链接来编辑页面,那就很难做到。如果我找到了我在这里编辑的内容,我会想一想。

2-在你的phtml文件中,你可以打电话:

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

答案 3 :(得分:0)

我完全理解你为什么要求逻辑,但遗憾的是它不会那么容易实现......虽然你可以很容易地开始工作第1步,但是第2步会有点问题,因为Magento在相反的情况下WP为前端和管理部分提供单独的会话。因此,在前端,您将无法识别登录的站点管理员,因此 - 向他显示链接。但是让我们按顺序解决问题:

  1. 要实现第1步,您需要修改2个文件。请记住,最好不要修改 core 中的文件,而是将它们移动到 local 文件夹,保留目录结构。首先更改: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'
        ))
    );
    

    然后打开app \ design \ adminhtml \ default \ default \ template \ catalog \ product \ edit.phtml模板,并在<?php echo $this->getChildHtml('view_product')?>案例中添加下一个代码<?php if($this->getProductId()): ?>。所以它看起来像这样:

    <?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无法在前端上看到管理员,因此您可以创建前端管理员客户组来处理该问题。您可以在“客户/客户组”节点中创建客户组。然后在catalog / product / 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;?>
    

    请不要忘记使用实际的管理员客户组ID更改/ your_new_group_id /。此外 - 如果您没有登录管理员面板,它会要求您登录,因为正如我之前提到的那样,会话未连接。

  3. 祝你好运!