Repository URL to install this package:
|
Version:
3.4.2 ▾
|
<?php
namespace Evsmash\Banners\Http\Admin;
use Evsmash\Core\Http\Base as Base;
use Evsmash\Core\Database\Query;
use Evsmash\Core\Dec\Bar;
use Evsmash\Core\Dec\Thumb;
use Evsmash\Core\Helpers\Redirect;
use Evsmash\Core\Helpers\Str;
use Evsmash\Core\Helpers\Sanitize;
use Evsmash\Core\Helpers\View;
use Evsmash\Core\Input\Route;
use Evsmash\Core\Simpy\Element;
use Evsmash\Banners\Imgmap;
class Imgmaps extends Base {
// index
public function index() {
// rel
$rel = explode('-', Route::get('rel'));
$table = Sanitize::alpha($rel[0]);
if(!isset($rel[1])) {
die();
}
$id = Sanitize::int($rel[1]);
// element
$element = null;
$photo_field = 'photo';
if($rel[0] == 'banners') {
$photo_field = 'banner';
}
if(in_array($table, cfg('evsmash-banners-imgmaps-tables'))) {
$element = Query::table($table)->where('id', $id)->select(['id', 'name', $photo_field])->first();
if(!isset($element->photo)) {
$element->photo = $element->banner;
}
}
// check
Element::exists($element);
// searchin
$searchin = Route::get('searchin');
// relation
$relation = Route::get('rel');
// dots
$dots = Imgmap::where('rel', $relation)->get();
// bar
$bar = Bar::shared();
// view
$this->view(compact(['element', 'searchin', 'relation', 'dots', 'bar']));
}
// search
public function search() {
// validate
Route::validate([
'searchin' => 'req|min:3|max:30',
'phrase' => 'req|min:3|max:30'
]);
// table
$table = Sanitize::alpha(Route::get('searchin'));
// check
$data = [];
if(in_array($table, cfg('evsmash-banners-imgmaps-tables'))) {
// phrase
$phrase = Str::phrase(Route::get('phrase'));
// elements
$elements = Query::table($table)->where(cfg('evsmash-banners-imgmaps-searchby'), 'LIKE', '%'.$phrase.'%')->select(['id', 'name', 'photo'])->take(30)->orderBy('id', 'desc')->get();
foreach($elements as $row) {
// item
$item = [];
$item['id'] = $row->id;
$item['name'] = Str::words($row->name, 6, '...');
$item['slug'] = Str::slug($row->name);
// thumb
$item['thumb'] = '';
if(!empty($row->photo)) {
$item['thumb'] = Thumb::url($row->photo, '75xauto');
}
// assign
$data[] = $item;
}
}
// view
View::json(['data' => $data]);
}
// add
public function add() {
// validate
Route::validate(Imgmap::validate());
// insert
$item = new Imgmap;
$item->rel = Route::get('rel');
$item->item = Route::get('item');
$item->name = Route::get('name');
$item->left = Route::get('left');
$item->top = Route::get('top');
$item->save();
// finish
Redirect::msg('Added', 'success');
Redirect::back();
}
// delete
public function delete() {
Element::delete(new Imgmap);
}
}