【问题标题】:Magento: Add product page links in Catalog -> Manage Products?Magento:在目录 -> 管理产品中添加产品页面链接?
【发布时间】:2014-05-19 17:03:43
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: magento


    【解决方案1】:

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

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

    【讨论】:

    • 上述问题的好答案 - 在网格上添加视图链接。
    【解决方案2】:

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

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

    【讨论】:

    【解决方案3】:

    我完全可以理解你为什么要求这个逻辑,但不幸的是它不会那么容易实现......虽然你可以很容易地开始第 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 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 在前端看不到管理员,您可以创建前端管理员客户组来处理该问题。您可以在“客户/客户组”节点中创建客户组。然后在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。另外 - 如果你没有登录到管理面板,它会要求你登录,因为正如我之前提到的,会话没有连接。

    祝你好运!

    【讨论】:

    • 感谢您的解决方案。我的意思不是在产品编辑器页面上,而是在产品列表页面上(目录 -> 管理产品)....如何在“编辑”之后立即在每行末尾添加“查看”链接" 链接?
    【解决方案4】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多