| Server IP : 89.248.107.232 / Your IP : 216.73.217.70 Web Server : Apache System : Linux host2.kasilh.com 5.14.0-687.36.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 7 05:40:49 EDT 2026 x86_64 User : seg ( 10005) PHP Version : 7.4.33 Disable Function : opcache_get_status MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/vhosts/seg-sa.es/grupo-seg.com/wp-content/plugins/mapplic-geo/admin/ |
Upload File : |
<?php
if (!class_exists('MapplicGeoAdmin')) :
class MapplicGeoAdmin {
public $demos;
public function __construct() {
$this->demos = array(
'germany-cities.json' => esc_html__('Germany - cities', 'mgeo'),
'usa-companies.json' => esc_html__('USA - companies', 'mgeo'),
'world-airports.json' => esc_html__('World - airports', 'mgeo'),
'france-population.json' => esc_html__('France - population', 'mgeo')
);
add_action('admin_init', array($this, 'mgeo_add_demo'));
add_action('admin_enqueue_scripts', array($this, 'mgeo_admin_enqueue'));
add_action('edit_form_after_editor', array($this, 'mgeo_map_builder'));
add_action('in_admin_footer', array($this, 'mgeo_logo'));
add_filter('upload_mimes', array($this, 'mgeo_mime_types'));
add_filter('views_edit-mgeo_map', array($this, 'mgeo_demos'));
add_filter('wp_insert_post_data', array($this, 'mgeo_save_map'), 99, 2);
}
public function mgeo_add_demo() {
global $pagenow;
if ($pagenow === 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] === 'mgeo_map') {
$filename = $_POST['load_map'];
if (!empty($filename) && $file = file_get_contents(plugins_url('mapdata/' . $filename, __FILE__))) {
$pid = wp_insert_post(array(
'post_title' => $this->demos[$filename],
'post_type' => 'mgeo_map',
'post_content' => str_replace('{{pdir}}', MGEO_PATH, $file)
));
wp_redirect(admin_url( '/post.php?post=' . $pid . '&action=edit'));
exit();
}
}
}
public function mgeo_demos($views) {
?>
<form id="mgeo-demos" action="<?php echo admin_url('edit.php') . '?post_type=mgeo_map'; ?>" method="post">
<h4><?php esc_html_e('Demo maps', 'mgeo'); ?></h4>
<select name="load_map" id="load_map">
<?php foreach ($this->demos as $key => $demo) : ?>
<option value="<?php echo $key; ?>"><?php echo $demo; ?></option>
<?php endforeach; ?>
</select>
<input type="submit" id="mgeo-demo-load" class="button" value=" <?php esc_html_e('Load Demo', 'mgeo') ?>"/>
</form>
<?php
return $views;
}
public function mgeo_logo() {
if (get_post_type() != 'mgeo_map') return;
echo '<a id="mgeo-logo" href="//www.mapplic.com/geo" target="_blank"><img src="' . plugins_url('img/mgeo-logo.svg', __FILE__) . '"></a><small style="vertical-align: super;"> ' . MapplicGeo::$version . '</small><br>';
}
public function mgeo_admin_enqueue() {
if (get_post_type() != 'mgeo_map') return;
$dir = plugin_dir_url(__FILE__);
// media
wp_enqueue_media();
// styles
wp_register_style('coloris', $dir . 'css/coloris.min.css', false, '0.12.2');
wp_register_style('fancybox', $dir . 'css/fancybox.css', false, '4.0.26');
wp_register_style('mgeo-admin', $dir . 'css/mgeo-admin.css', array('coloris', 'fancybox'), MapplicGeo::$version);
wp_enqueue_style('mgeo-admin');
wp_enqueue_style('mgeo');
// script
wp_register_script('sortable', $dir . 'js/sortable.min.js', false, '1.14.0');
wp_register_script('coloris', $dir . 'js/coloris.min.js', false, '0.12.2');
wp_register_script('fancybox', $dir . 'js/fancybox.js', false, '4.0.26');
wp_register_script('tinymce', $dir . 'tinymce/tinymce.min.js', false, '5.10.1');
wp_register_script('mgeo-admin', $dir . 'js/mgeo-admin.js', array('wp-i18n', 'sortable', 'coloris', 'fancybox', 'tinymce'), MapplicGeo::$version, true);
wp_enqueue_script('mgeo-admin');
wp_enqueue_script('mgeo');
}
public function mgeo_map_builder($post) {
if (get_post_type() != 'mgeo_map') return;
echo '<input type="hidden" name="mgeo-mapdata" id="mgeo-mapdata">';
$data = user_can_richedit() ? htmlentities($post->post_content, ENT_QUOTES, 'UTF-8') : $post->post_content;
if (empty($data)) echo '<div class="mgeo-map" data-json="' . plugins_url('mapdata/blank.json', __FILE__) . '"></div>';
else echo '<div class="mgeo-map" data-jsonstr="' . $data . '" data-shortcode="[mgeo id=' . $post->ID . ']"></div>';
echo '<div id="mgeo-admin"></div>';
}
public function mgeo_save_map($data, $postarr) {
if (!isset($postarr['ID']) || !$postarr['ID'] || $data['post_type'] != 'mgeo_map') return $data;
$data['post_content'] = $_POST['mgeo-mapdata'];
return $data;
}
public function mgeo_mime_types($mimes) {
$mimes['svg'] = 'image/svg+xml';
$mimes['csv'] = 'text/csv';
return $mimes;
}
public static function mgeo_activation() {
if (!get_option('mgeo-version')) {
add_option('mgeo-version', MapplicGeo::$version);
}
}
}
endif;
?>