Файл: concrete5.7.5.6/concrete/blocks/google_map/controller.php
Строк: 72
<?php
namespace ConcreteBlockGoogleMap;
use Page;
use ConcreteCoreBlockBlockController;
use Core;
class Controller extends BlockController
{
protected $btTable = 'btGoogleMap';
protected $btInterfaceWidth = "400";
protected $btInterfaceHeight = "320";
protected $btCacheBlockRecord = true;
protected $btCacheBlockOutput = true;
protected $btCacheBlockOutputOnPost = true;
protected $btCacheBlockOutputForRegisteredUsers = false;
public $title = "";
public $location = "";
public $latitude = "";
public $longitude = "";
public $scrollwheel = true;
public $zoom = 14;
/**
* Used for localization. If we want to localize the name/description we have to include this.
*/
public function getBlockTypeDescription()
{
return t("Enter an address and a Google Map of that location will be placed in your page.");
}
public function getBlockTypeName()
{
return t("Google Map");
}
public function validate($args)
{
$error = Core::make('helper/validation/error');
if (empty($args['location']) || $args['latitude'] === '' || $args['longtitude'] === '') {
$error->add(t('You must select a valid location.'));
}
if (!is_numeric($args['zoom'])) {
$error->add(t('Please enter a zoom number from 0 to 21.'));
}
if ($error->has()) {
return $error;
}
}
public function registerViewAssets($outputContent = '')
{
$this->requireAsset('javascript', 'jquery');
$this->addFooterItem(
'<script defer src="https://maps.googleapis.com/maps/api/js"></script>'
);
}
public function view()
{
$this->set('unique_identifier', Core::make('helper/validation/identifier')->getString(18));
$this->set('bID', $this->bID);
$this->set('title', $this->title);
$this->set('location', $this->location);
$this->set('latitude', $this->latitude);
$this->set('longitude', $this->longitude);
$this->set('zoom', $this->zoom);
$this->set('scrollwheel', $this->scrollwheel);
}
public function save($data)
{
$data += array(
'title' => '',
'location' => '',
'zoom' => -1,
'latitude' => 0,
'longitude' => 0,
'width' => null,
'width' => null,
'scrollwheel' => 0,
);
$args['title'] = trim($data['title']);
$args['location'] = trim($data['location']);
$args['zoom'] = (intval($data['zoom']) >= 0 && intval($data['zoom']) <= 21) ? intval($data['zoom']) : 14;
$args['latitude'] = is_numeric($data['latitude']) ? $data['latitude'] : 0;
$args['longitude'] = is_numeric($data['longitude']) ? $data['longitude'] : 0;
$args['width'] = $data['width'];
$args['height'] = $data['height'];
$args['scrollwheel'] = $data['scrollwheel'] ? 1 : 0;
parent::save($args);
}
}