Сейчас на сайте

  • [Bot] [Bot]
Всего на сайте:
  • 1 гость
  • 1 робот
Последними зарегистрировались:

Дни рождения

В ближайшем будущем дней рождения не предвидится




Правильный выбор доменного имениприносит успех в парковке доменаКомпонент зависимых выпадающих списков для Joomla 2.5 ZavispisКомпонент Matukio - русификация
Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

Как добавить кнопку "дублировать" в компонент
(1 чел.) (1) гость
Здесь можно обсуждать вопросы, связанные с созданием компонентов, плагинов и модулей для Joomla 2.5
  • Страница:
  • 1

ТЕМА: Как добавить кнопку "дублировать" в компонент

Как добавить кнопку "дублировать" в компонент 4 года, 11 мес. назад #211

  • Slim888
  • Вне сайта
  • Эксперт
  • Crazy!!!
  • Постов: 97
  • Репутация: 5
Кнопка clone (дублирование)

Если Ваш компонент работает с достаточно большим количеством записей, выводимых пользователю в админке, которые он сам же и добавляет, то кнопка "дублировать" на панели инструментов будет весьма полезна.

Добавляем кнопку "дублировать" (clone) в компонент

Итак начнем с модели. Нам необходимо в нее добавить функцию:

public function createClone()
{
$table = $this->getTable();//Получаем доступ к таблице
$cids = JRequest::getVar('cid', array(0), 'post', 'array');//массив выбраных чекбоксов
foreach ($cids as $cid)
{
$table->load($cid);//загружаем все данные конкретного id
$table->load($table->id);
$table->set('id', 0);//обнуляем id, чтобы при записи создавался новый
if ($table->name != null)//проверка на выделенность чекбоксов (name - какой-либо столбец таблицы кроме id)
{
if (!$table->store())//запись
{
$this->setError($table->getError());//ошибка, если запись не получилась
return false;
}
}
else
{
$this->setError($table->getError());
return false;
}
}
return true;
}

Собственно, это самое главное)

Изменения в контроллере

В контроллер надо добавить следующую функцию:

public function Cloneit()
{
$model = $this->getModel('fieldlist');//получаем доступ к модели
if ($model->createClone())//если функция из модели сработала...
{
$message = JText::_('MY_COMPONENT_DOUBLE_SUCCESS');//пишем все ок)
}
else
{
$message = JText::_('MY_COMPONENT_DOUBLE_CAN_NOT');//Если нет - пишем, что все плохо и выводим ошибку
$message .= '['.$model->getError().']';
}
$this->setRedirect('index.php?option=com_component, $message);//перенаправляемся на нужную страничку и получаем сообщение
}

Ну и, собственно, создаем нашу кнопку "дублировать" в представлении или шаблоне:

JToolBarHelper::custom('Cloneit', 'copy.png', 'copy.png', 'MY_COMPONENT_FIELDS_DUPLICATE', false, false);

Тут, думаю все понятно)

Так создается кнопка "дублировать". Не сложно, зато полезно)

Подробнее...
Лёх, ты че сделал??? Ч-чини давай!!!
  • Страница:
  • 1
Время создания страницы: 0.34 секунд