/
home
/
assocoweys
/
vsez
/
plugins
/
system
/
nrframework
/
NRFramework
/
Widgets
/
Upload File
HOME
<?php /** * @author Tassos Marinos <info@tassos.gr> * @link https://www.tassos.gr * @copyright Copyright © 2024 Tassos All Rights Reserved * @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later */ namespace Tassos\Framework\Widgets; defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Factory; use Joomla\CMS\Uri\Uri; use Joomla\CMS\Language\Text; class MapEditor extends Widget { /** * Widget default options * * @var array */ protected $widget_options = [ /** * The list of markers added to the map. * * Example: * * [ * 'lat' => 37.9838, * 'lng' => 23.7275, * 'title' => 'Athens', * 'description' => 'The capital of Greece', * ] */ 'value' => [], // The default map latitude. Where it points when no markers are added. 'lat' => null, // The default map longitude. Where it points when no markers are added. 'lng' => null, // Initial zoom when no markers are added 'initialZoom' => 0, // Max markers allowed 'maxMarkers' => 1, // Set whether to show the map editor sidebar 'showSidebar' => true, // Set the marker image, relative path to an image file 'markerImage' => '', // TODO: Remove this once ACF is updated and after a reasonable time 'hide_input' => false ]; public function __construct($options = []) { parent::__construct($options); $this->prepare(); $this->loadMedia(); } private function prepare() { if (!$this->options['pro'] && is_array($this->options['value']) && count($this->options['value']) >= 1) { $this->options['css_class'] .= ' markers-limit-reached'; } if ($this->options['markerImage']) { $markerImage = explode('#', ltrim($this->options['markerImage'], DIRECTORY_SEPARATOR)); $this->options['markerImage'] = Uri::root() . reset($markerImage); } Text::script('NR_ENTER_AN_ADDRESS_OR_COORDINATES'); Text::script('NR_ARE_YOU_SURE_YOU_WANT_TO_DELETE_ALL_SELECTED_MARKERS'); Text::script('NR_ARE_YOU_SURE_YOU_WANT_TO_DELETE_THIS_MARKER'); Text::script('NR_ADD_MARKER'); Text::script('NR_EDIT_MARKER'); Text::script('NR_DELETE_MARKER'); Text::script('NR_UNKNOWN_LOCATION'); Text::script('NR_UNLIMITED_MARKERS'); Text::script('NR_ADD_MORE_MARKERS_UPGRADE_TO_PRO'); Text::script('NR_MARKERS'); Text::script('NR_YOU_HAVENT_ADDED_ANY_MARKERS_YET'); Text::script('NR_ADD_YOUR_FIRST_MARKER'); Text::script('NR_NO_MARKERS_FOUND'); Text::script('NR_LOCATION_ADDRESS'); Text::script('NR_ADD_TO_MAP'); Text::script('NR_COORDINATES'); Text::script('NR_ADDRESS_ADDRESS_HINT'); Text::script('NR_LATITUDE'); Text::script('NR_LONGITUDE'); Text::script('NR_MARKER_INFO'); Text::script('NR_LABEL'); Text::script('NR_DESCRIPTION'); Text::script('NR_MARKER_LABEL'); Text::script('NR_MARKER_DESCRIPTION'); Text::script('NR_SAVE'); Text::script('NR_PLEASE_SELECT_A_LOCATION'); Text::script('NR_IMPORT'); Text::script('NR_IMPORT_MARKERS'); Text::script('NR_IMPORT_LOCATIONS_DESC'); Text::script('NR_IMPORT_LOCATIONS_DESC2'); Text::script('NR_PLEASE_ENTER_LOCATIONS_TO_IMPORT'); Text::script('NR_COULDNT_IMPORT_LOCATIONS'); Text::script('NR_ADDING_MARKERS'); Text::script('NR_SAVE_YOUR_FIRST_MARKER'); Text::script('NR_OUT_OF'); Text::script('NR_MARKERS_ADDED'); Text::script('NR_MARKERS_LIMIT_REACHED_DELETE_MARKER_TO_ADD'); Text::script('NR_EXPORT_MARKERS'); Text::script('NR_EXPORT_MARKERS_DESC'); Text::script('NR_THERE_ARE_NO_LOCATIONS_TO_EXPORT'); Text::script('NR_LOCATIONS_IMPORTED'); Factory::getDocument()->addScriptOptions('TFMapEditor', [ 'images_url' => Uri::root() . 'media/plg_system_nrframework/css/vendor/images/', ]); } /** * Loads media files * * @return void */ public function loadMedia() { HTMLHelper::script('plg_system_nrframework/vendor/react.min.js', ['relative' => true, 'version' => 'auto']); HTMLHelper::script('plg_system_nrframework/vendor/react-dom.min.js', ['relative' => true, 'version' => 'auto']); HTMLHelper::stylesheet('plg_system_nrframework/vendor/leaflet.min.css', ['relative' => true, 'version' => 'auto']); HTMLHelper::script('plg_system_nrframework/vendor/leaflet.min.js', ['relative' => true, 'version' => 'auto']); HTMLHelper::stylesheet('plg_system_nrframework/widgets/mapeditor.css', ['relative' => true, 'version' => 'auto']); HTMLHelper::script('plg_system_nrframework/mapeditor.js', ['relative' => true, 'version' => 'auto']); } }