今天一位外贸用户的网站管理员需要修改magento的用户权限,其实多简单的事啊,修改下magento用户组就可以了.但发现有个magento做的不是很好的,因为magento的权限里,产品列表页面有个操作功能,可以修改产品为删除.如果员工帐号出了问题直接就是批量的删除(也许你会说,打开产品一样可以删除啊,我相信没谁有那么多的时间无聊的去一个个删掉).为此作者受magento客户的要求修改了下管理页视图:
class Mage_Adminhtml_Block_Catalog_Product_Grid extends Mage_Adminhtml_Block_Widget_Grid
而且Mage_Adminhtml_Block_Widget_Grid使用的视图模板是:$this->setTemplate(‘widget/grid.phtml’);
(注:相关产品等表都是使用该视图模板,后期还要修改)
在grid.phtml模板文件里:
<?php if($this->getMassactionBlock()->isAvailable()): ?>
<?php echo $this->getMassactionBlockHtml() ?>
<?php endif ?>
你可以直接删除这些,但同时也会删除多选的功能,所以跟踪下代码进行修改:
public function getMassactionBlockHtml()
{
return $this->getChildHtml(‘massaction’);
}
好了,这引用了其他的视图模型:
文件在:magento/app/design/adminhtml/default/default/template/widget/grid/massaction.phtml
<?php //权限控制修改开始 ?>
<?php if(Mage::getFobAdmin()) {?>
<td>
<div class=”right”>
<div class=”entry-edit”>
<?php if ($this->getHideFormElement() !== true):?>
<form action=”” id=”<?php echo $this->getHtmlId() ?>-form” method=”post”>
<?php endif ?>
<?php echo $this->getBlockHtml(‘formkey’)?>
<fieldset>
<span class=”field-row”>
<label><?php echo $this->__(‘Actions’) ?></label>
<select id=”<?php echo $this->getHtmlId() ?>-select” class=”required-entry select absolute-advice local-validation”>
<option value=””></option>
<?php foreach($this->getItems() as $_item): ?>
<option value=”<?php echo $_item->getId() ?>”<?php echo ($_item->getSelected() ? ‘ selected=”selected”‘ : ”)?>><?php echo $_item->getLabel() ?></option>
<?php endforeach; ?>
</select>
</span>
<span class=”outer-span” id=”<?php echo $this->getHtmlId() ?>-form-hiddens”></span>
<span class=”outer-span” id=”<?php echo $this->getHtmlId() ?>-form-additional”></span>
<span class=”field-row”>
<?php echo $this->getApplyButtonHtml() ?>
</span>
</fieldset>
<?php if ($this->getHideFormElement() !== true):?>
</form>
<?php endif ?>
</div>
<div class=”no-display”>
<?php foreach($this->getItems() as $_item): ?>
<div id=”<?php echo $this->getHtmlId() ?>-item-<?php echo $_item->getId() ?>-block”>
<?php echo $_item->getAdditionalActionBlockHtml() ?>
</div>
<?php endforeach; ?>
</div>
</div>
</td>
<?php }?>
<?php //权限控制修改结束 ?>
关于作者