Хуки в формах администрирования Интернет-магазина

#
Re: Хуки в формах администрирования Интернет-магазина
lipton_ice_tea,
Определяете модель getModel() (на выходе shop_group или shop_item)

Перенести на вкладку и вставить после поля moveAfter()

П.с. Пишу по памяти
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Хуки в формах администрирования Интернет-магазина
Спасибо! moveAfter() помог! А вот $controller->getModel() не работает.

Поэтому остается 2 актуальных проблемы:
1. Как скрыть/перенести поля типа type, modification_id, shop_measure_id и т.д.
2. Как узнать что редактируется: shop_group или shop_item?

И возникла еще 1 проблема) Как перенести поле из Дополнительных свойств (желательно вообще все дополнительные св-ва вместе с группами перенести на вкладку Основные)?
#
Re: Хуки в формах администрирования Интернет-магазина
Что бы определить модель, надо использовать $controller->getObject().

Отсюда остается только 2 вопроса:
1. Как скрыть/перенести поля типа type, modification_id, shop_measure_id и т.д.
2. Как перенести поле из Дополнительных свойств
#
Re: Хуки в формах администрирования Интернет-магазина
По переносу дополнительных св-тв нашел такое решение.
//Получаем 2 вкладки (основную и доп.св-ва)
$oMainTab = $controller->getTab('main');
$oPropertyTab=$controller->getTab('Property');

//Получаем массив доп.св-тв
$aChildrenAll=$oPropertyTab->getChildren();
$aChildrenAll=array_reverse($aChildrenAll[0]->getChildren());

//Проходимся по массиву и переносим поля наглавную
foreach ($aChildrenAll as $aChildren) {
    $aChildren=$aChildren->getChildren();
    $oPropertyTab->moveAfter($aChildren[0],$controller->getField('name'), $oMainTab);
}
#
Re: Хуки в формах администрирования Интернет-магазина
lipton_ice_tea писал(а):
1. Как скрыть/перенести поля типа type, modification_id, shop_measure_id и т.д.

с этим немного сложнее, таких полей с именем как бы нет, а есть новые созданные объекты select и тп., но можно получить массив объектов на вкладке getFields(), перебрать, и удалить по ключу, больше решения не вижу, может ТП поправит
$aFields = $oMainTab->getFields();

$aDeleteFields = array(46,47);

foreach ($aFields as $key => $oField)
{
      in_array($key, $aDeleteFields) && $oMainTab->delete($oField);
}
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Хуки в формах администрирования Интернет-магазина
Просто целью всех этих манипуляций с полями является создание удобной админки для заказчика, в формах которой не куча вкладок со 100500 полями, а 1-2 вкладки с только необходимыми полями
Но пока данного результата получить не удается.

п.с. Очень удобно этот же функционал сделан в битриксе
#
Re: Хуки в формах администрирования Интернет-магазина
lipton_ice_tea,
ну тогда может проще удалить вкладки и создать по новой с нужными полями?
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Хуки в формах администрирования Интернет-магазина
alexpimnev,
Тоже думал об этом) Но к примеру, поля изображений тоже не получается перенести с главной на новую вкладку и некоторые поля типа select
#
Re: Хуки в формах администрирования Интернет-магазина
lipton_ice_tea,
ну как я уже выше писал, удалите вкладку "Основная", создайте снова вкладку "Основная" и заполните нужными полями, в том числе и полем для изображения
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Хуки в формах администрирования Интернет-магазина
Можно ли пример, как создать новую вкладку и создать поле на ней для изображения, в котором будет храниться основное изображение товара?
При этом, поле что бы не вылезало за края формы)

Пока сделал такой код:
$oMainTab = $controller->getTab('main');

// Создаем новую вкладку
$oAdmin_Form_Tab_Entity_L = Admin_Form_Entity::factory('Tab')
        ->name('lhome')
        ->caption('Домашняя');

//Добавляем ее перед вкладкой Основные
$controller
    ->addTabBefore($oAdmin_Form_Tab_Entity_L, $oMainTab);

//Переносим поле с вкладки Основные на новую пустую вкладку (но поле вылезает за края формы)
$oLhomeTab = $controller->getTab('lhome');
$oMainTab->move($controller->getField('name'),$oLhomeTab);

//Создаем новое поле (но как в него передать все параметры и данные из поля основного изображения товара?)
$oImageField = Admin_Form_Entity::factory('File')
    ->type('file')
    ->caption('Изображение товара')
    ->name('image')
    ->id('image');
Авторизация