我需要为Magento完成两件应该由官方团队完成的事情。
如何在目录的每个产品行末尾添加指向各个产品页面的链接 - >管理产品?就像WordPress一样,作者/管理员可以轻松点击打开帖子列表中每个帖子的帖子页面。我甚至不确定我应该编辑哪个phtml文件。
当特权管理员登录时,如何在单个产品页面上添加“编辑产品”链接,该链接指向产品的编辑器?就像WordPress一样,每个帖子页面的元行应该有一个“编辑帖子”链接,该链接指向帖子的编辑。我知道我应该编辑catalog / product / view.phtml但是如何以编程方式获取当前产品的后端编辑器链接?
有人可以告诉我如何实现这两件事吗?非常感谢!
答案 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步,您需要修改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步已完成,现在您应该可以在“产品管理”屏幕上看到查看订单按钮。
现在,由于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 /。此外 - 如果您没有登录管理员面板,它会要求您登录,因为正如我之前提到的那样,会话未连接。