0

我需要为 Magento 做两件事,这应该由官方团队完成。

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

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

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

4

4 回答 4

1

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

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

于 2012-09-11T06:44:52.337 回答
1

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

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

于 2013-03-21T21:07:06.613 回答
0

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

  1. 要实现第 1 步,您需要修改 2 个文件。请记住,最好不要修改core中的文件,而是将它们移动到本地文件夹,保留目录结构。第一个更改:(Mage_Adminhtml_Block_Catalog_Product_Edit::_prepareLayout文件 app\code\core\Mage\Adminhtml\Block\Catalog\Product\Edit.php)。在 return 语句之前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;?>
    

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

祝你好运!

于 2012-09-10T17:12:47.577 回答
0

1 - 当您点击在线时,他只是将您重定向到编辑产品页面。但是,如果你想在每个产品线上添加链接来编辑页面,那是很难做到的。如果我发现我在这里编辑的东西,我会考虑。

2- 在您的 phtml 文件中,您可以调用:

<a href="<?php echo Mage::getBaseUrl().'/admin/catalog_product/edit/id/'.$_product->getId()?>">Link to edit product.</a>
于 2012-09-10T13:30:01.490 回答