marc-leopold/cms/plugins/graker/photoalbums/controllers/Reorder.php

70 lines
1.5 KiB
PHP

<?php namespace Graker\PhotoAlbums\Controllers;
use BackendMenu;
use Backend\Classes\Controller;
use Graker\PhotoAlbums\Models\Album;
use Graker\PhotoAlbums\Models\Photo;
use Lang;
/**
* Reorder Back-end Controller
*/
class Reorder extends Controller
{
/**
*
* Album model reference
*
* @var null
*/
public $model = NULL;
/**
*
* Display the reorder interface for album
*
* @param null|int $album_id
* @return mixed|string
*/
public function album($album_id = NULL) {
$album = Album::find($album_id);
if (!$album) {
return '';
}
$this->model = $album;
$this->addJs('/modules/backend/behaviors/reordercontroller/assets/js/october.reorder.js', 'core');
$this->pageTitle = Lang::get('graker.photoalbums::lang.plugin.reorder_title', ['name' => $album->title]);
return $this->makePartial('reorder', ['reorderRecords' => $this->model->photos,]);
}
/**
* Callback to save reorder information
* Calls function from Sortable trait on the model
*/
public function onReorder() {
if (!$ids = post('record_ids')) return;
if (!$orders = post('sort_orders')) return;
$model = new Photo();
$model->setSortableOrder($ids, $orders);
}
/**
* Reorder constructor
*/
public function __construct()
{
parent::__construct();
BackendMenu::setContext('Graker.PhotoAlbums', 'photoalbums', 'albums');
}
}