/** * Уменьшение позиции слайдера * * @param int $id */ public function action_decrease_pos($id = null) { // Получаем элемент текущую позицию $slider_1 = \Model_Slider::find($id); // Получаем элемент с позицией, которую необходимо увеличть $slider_2 = \Model_Slider::find('first', array('where' => array(array('position', $slider_1->position - 1)))); // Если элемент $slider_1 не первый if (!is_null($slider_2)) { // Уменьшаем позицию $slider_1->position = $slider_1->position - 1; $slider_1->save(); // Увеличиваем позицию $slider_2->position = $slider_2->position + 1; $slider_2->save(); \Session::set_flash('success', 'Позиция слайда уменьшена.'); } else { \Session::set_flash('error', 'Невозможно уменьшить позицию первого слайда.'); } \Response::redirect('admin/sliders/index'); }
/** * Действие для отображения слайдера */ public function action_slider() { // Выбираем первых 5 слайдеров $data['slider'] = \Model_Slider::query()->where('position', '<=', 5)->order_by(array('position' => 'ASC'))->get(); return \View::forge('widgets/slider', $data)->render(); }