You have to add your custom logic in method _prepareLayout()
inside foreach ($groupCollection as $group)
loop and skip that group whichever you want based on group id or group name and add that group tab in last or at your position.
You have to add your custom logic in method _prepareLayout()
inside foreach ($groupCollection as $group)
loop and skip that group whichever you want based on group id or group name and add that group tab in last or at your position.
Copy app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tabs.php
To app/code/local/Mage/Adminhtml/Block/Catalog/Product/Edit/Tabs.php
file content
<?php
/**
* Magento
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Magento to newer
* versions in the future. If you wish to customize Magento for your
* needs please refer to http://www.magentocommerce.com for more information.
*
* @category Mage
* @package Mage_Adminhtml
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
/**
* admin product edit tabs
*
* @category Mage
* @package Mage_Adminhtml
* @author Magento Core Team <[email protected]>
*/
class Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
{
protected $_attributeTabBlock = 'adminhtml/catalog_product_edit_tab_attributes';
public function __construct()
{
parent::__construct();
$this->setId('product_info_tabs');
$this->setDestElementId('product_edit_form');
$this->setTitle(Mage::helper('catalog')->__('Product Information'));
}
protected function _prepareLayout()
{
$product = $this->getProduct();
if (!($setId = $product->getAttributeSetId())) {
$setId = $this->getRequest()->getParam('set', null);
}
if ($setId) {
$groupCollection = Mage::getResourceModel('eav/entity_attribute_group_collection')
->setAttributeSetFilter($setId)
->setSortOrder()
->load();
$total=$groupCollection->count();
$count=1;
$last=null;
foreach ($groupCollection as $group) {
if($count==$total)
{
$last=$group;
break;
}
$count++;
$attributes = $product->getAttributes($group->getId(), true);
// do not add groups without attributes
foreach ($attributes as $key => $attribute) {
if( !$attribute->getIsVisible() ) {
unset($attributes[$key]);
}
}
if (count($attributes)==0) {
continue;
}
$this->addTab('group_'.$group->getId(), array(
'label' => Mage::helper('catalog')->__($group->getAttributeGroupName()),
'content' => $this->_translateHtml($this->getLayout()->createBlock($this->getAttributeTabBlock(),
'adminhtml.catalog.product.edit.tab.attributes')->setGroup($group)
->setGroupAttributes($attributes)
->toHtml()),
));
}
if (Mage::helper('core')->isModuleEnabled('Mage_CatalogInventory')) {
$this->addTab('inventory', array(
'label' => Mage::helper('catalog')->__('Inventory'),
'content' => $this->_translateHtml($this->getLayout()
->createBlock('adminhtml/catalog_product_edit_tab_inventory')->toHtml()),
));
}
/**
* Don't display website tab for single mode
*/
if (!Mage::app()->isSingleStoreMode()) {
$this->addTab('websites', array(
'label' => Mage::helper('catalog')->__('Websites'),
'content' => $this->_translateHtml($this->getLayout()
->createBlock('adminhtml/catalog_product_edit_tab_websites')->toHtml()),
));
}
$this->addTab('categories', array(
'label' => Mage::helper('catalog')->__('Categories'),
'url' => $this->getUrl('*/*/categories', array('_current' => true)),
'class' => 'ajax',
));
$this->addTab('related', array(
'label' => Mage::helper('catalog')->__('Related Products'),
'url' => $this->getUrl('*/*/related', array('_current' => true)),
'class' => 'ajax',
));
$this->addTab('upsell', array(
'label' => Mage::helper('catalog')->__('Up-sells'),
'url' => $this->getUrl('*/*/upsell', array('_current' => true)),
'class' => 'ajax',
));
$this->addTab('crosssell', array(
'label' => Mage::helper('catalog')->__('Cross-sells'),
'url' => $this->getUrl('*/*/crosssell', array('_current' => true)),
'class' => 'ajax',
));
$storeId = 0;
if ($this->getRequest()->getParam('store')) {
$storeId = Mage::app()->getStore($this->getRequest()->getParam('store'))->getId();
}
$alertPriceAllow = Mage::getStoreConfig('catalog/productalert/allow_price');
$alertStockAllow = Mage::getStoreConfig('catalog/productalert/allow_stock');
if (($alertPriceAllow || $alertStockAllow) && !$product->isGrouped()) {
$this->addTab('productalert', array(
'label' => Mage::helper('catalog')->__('Product Alerts'),
'content' => $this->_translateHtml($this->getLayout()
->createBlock('adminhtml/catalog_product_edit_tab_alerts', 'admin.alerts.products')->toHtml())
));
}
if( $this->getRequest()->getParam('id', false) ) {
if (Mage::helper('catalog')->isModuleEnabled('Mage_Review')) {
if (Mage::getSingleton('admin/session')->isAllowed('admin/catalog/reviews_ratings')){
$this->addTab('reviews', array(
'label' => Mage::helper('catalog')->__('Product Reviews'),
'url' => $this->getUrl('*/*/reviews', array('_current' => true)),
'class' => 'ajax',
));
}
}
if (Mage::helper('catalog')->isModuleEnabled('Mage_Tag')) {
if (Mage::getSingleton('admin/session')->isAllowed('admin/catalog/tag')){
$this->addTab('tags', array(
'label' => Mage::helper('catalog')->__('Product Tags'),
'url' => $this->getUrl('*/*/tagGrid', array('_current' => true)),
'class' => 'ajax',
));
$this->addTab('customers_tags', array(
'label' => Mage::helper('catalog')->__('Customers Tagged Product'),
'url' => $this->getUrl('*/*/tagCustomerGrid', array('_current' => true)),
'class' => 'ajax',
));
}
}
}
/**
* Do not change this tab id
* @see Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs_Configurable
* @see Mage_Bundle_Block_Adminhtml_Catalog_Product_Edit_Tabs
*/
if (!$product->isGrouped()) {
$this->addTab('customer_options', array(
'label' => Mage::helper('catalog')->__('Custom Options'),
'url' => $this->getUrl('*/*/options', array('_current' => true)),
'class' => 'ajax',
));
}
if($last)
{
$attributes = $product->getAttributes($last->getId(), true);
// do not add groups without attributes
foreach ($attributes as $key => $attribute) {
if( !$attribute->getIsVisible() ) {
unset($attributes[$key]);
}
}
if (count($attributes)==0) {
continue;
}
$this->addTab('group_'.$last->getId(), array(
'label' => Mage::helper('catalog')->__($last->getAttributeGroupName()),
'content' => $this->_translateHtml($this->getLayout()->createBlock($this->getAttributeTabBlock(),
'adminhtml.catalog.product.edit.tab.attributes')->setGroup($last)
->setGroupAttributes($attributes)
->toHtml()),
));
}
}
else {
$this->addTab('set', array(
'label' => Mage::helper('catalog')->__('Settings'),
'content' => $this->_translateHtml($this->getLayout()
->createBlock('adminhtml/catalog_product_edit_tab_settings')->toHtml()),
'active' => true
));
}
return parent::_prepareLayout();
}
/**
* Retrive product object from object if not from registry
*
* @return Mage_Catalog_Model_Product
*/
public function getProduct()
{
if (!($this->getData('product') instanceof Mage_Catalog_Model_Product)) {
$this->setData('product', Mage::registry('product'));
}
return $this->getData('product');
}
/**
* Getting attribute block name for tabs
*
* @return string
*/
public function getAttributeTabBlock()
{
if (is_null(Mage::helper('adminhtml/catalog')->getAttributeTabBlock())) {
return $this->_attributeTabBlock;
}
return Mage::helper('adminhtml/catalog')->getAttributeTabBlock();
}
public function setAttributeTabBlock($attributeTabBlock)
{
$this->_attributeTabBlock = $attributeTabBlock;
return $this;
}
/**
* Translate html content
*
* @param string $html
* @return string
*/
protected function _translateHtml($html)
{
Mage::getSingleton('core/translate_inline')->processResponseBody($html);
return $html;
}
}
default