Разобрался.Может кому ещё понадобится, поэтому описываю что нужно делать (
joomla 2.5)
В атрибутах элементов формы прописываем имена переменных
Чтобы код в итоге был короче все переменные для пакетной обработки передавайте в массиве
batch[] На кнопку вешаем код
onclick="Joomla.submitbutton('my_item.batch');"
В контроллере должна быть такая функция
public function batch($model = null)
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
// Set the model
$model = $this->getModel('my_item', '', array());
// Preset the redirect
$this->setRedirect(JRoute::_('index.php?option=com_mycomponent&view=my_items' . $this->getRedirectToListAppend(), false));
return parent::batch($model);
}
Но это только пол дела. Этот код отработает только стандартные функции.
Чтобы прикрутить свои операции, нужно в моделе переопределить функцию
batchПишем такой код
public function batch($commands, $pks, $contexts)
{
// Sanitize user ids.
$pks = array_unique($pks);
JArrayHelper::toInteger($pks);
// Remove any values of zero.
if (array_search(0, $pks, true))
{
unset($pks[array_search(0, $pks, true)]);
}
if (empty($pks))
{
$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
return false;
}
// наша обработка
if($my_var = (int)$commands['my_var'] )
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->update($db->quoteName('#__my_table') );
$query->set($db->quoteName('my_colum').' = '.$db->Quote($my_var));
$query->where($db->quoteName('id').' IN ('.implode(',', $pks).')');
$db->setQuery($query->__toString());
$db->query();
// Check for a database error.
if ($error = $this->_db->getErrorMsg())
{
$this->setError($error);
return false;
}
}
if($commands['category_id'] || $commands['assetgroup_id'] || $commands['language_id']){
$done = parent::batch($commands, $pks, $contexts);
}
return $done;
}
Вместо комментариев пишите свой код
Важное замечание.
Для отработки стандартного кода
1) контроллер должн расширяться от
JControllerForm2) модель должна расширяться от
JModelAdminВ стандартный набор пакетной обработки входит:
1) изменение уровеня доступа
2) изменение языка материала
3) изменение категории материала
Действия производятся на исходном материала или на его копии (при копировании материала)