70 lines
1.5 KiB
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');
|
|
}
|
|
|
|
}
|