карта с пинами

Модули от сторонних разработчиков
Аватара пользователя
duncan
Наш человек
Сообщения: 255
Зарегистрирован: 24 авг 2015, 22:44
Откуда: місто Лева
Благодарил (а): 37 раз
Поблагодарили: 17 раз

карта с пинами

Сообщение duncan » 18 янв 2017, 19:30

Repellent писал(а):Источник цитаты выбор - либо только директория uploads либо обе директории - uploads + modules/gmap/images . Переключается банально - кликом

крутая вещь :thumbup:
но какбє масло масляное
такая фича была бы нужной, если бы дополнительные настройки были для админа, а добавление пинов делал юзер с ограниченными правами, которому открыта либо одна либо другая папка
Repellent писал(а):Источник цитаты Все пожелания помню - реализуем. + причешу для паблика.

:thumbup:

Аватара пользователя
Repellent
Наш человек
Сообщения: 182
Зарегистрирован: 27 мар 2016, 20:52
Откуда: Russia
Благодарил (а): 14 раз
Поблагодарили: 40 раз
Контактная информация:

карта с пинами

Сообщение Repellent » 18 янв 2017, 21:39

duncan писал(а):но какбє масло масляное
такая фича была бы нужной, если бы дополнительные настройки были для админа, а добавление пинов делал юзер с ограниченными правами, которому открыта либо одна либо другая папка


Об этом можно говорить , когда реализацию с самими пинами сделаю. Наделить правами не представляет сложностей

Сейчас файловый менеджер для админов выглядит так:

Screenshot_3.png
Screenshot_3.png (103.13 КБ) 2788 просмотров


А для юзеров , с правами доступа к модулю вот так :

Screenshot_5.png
Screenshot_5.png (23.28 КБ) 2788 просмотров


При условии, что админ не предоставил иное (т.е. обе директории)

Аватара пользователя
duncan
Наш человек
Сообщения: 255
Зарегистрирован: 24 авг 2015, 22:44
Откуда: місто Лева
Благодарил (а): 37 раз
Поблагодарили: 17 раз

карта с пинами

Сообщение duncan » 01 фев 2017, 17:47

мысли вслух или фантазия на свободную тему)

в платной версии можно (если это вообще реально) делать оффлайн версию карты
то есть плагин кеширует саму карту и показывает даже тогда, когда нет доступа к интернету
полезно может быть для сайтов техподдержки

Аватара пользователя
Repellent
Наш человек
Сообщения: 182
Зарегистрирован: 27 мар 2016, 20:52
Откуда: Russia
Благодарил (а): 14 раз
Поблагодарили: 40 раз
Контактная информация:

карта с пинами

Сообщение Repellent » 18 фев 2017, 20:53

duncan писал(а):мысли вслух или фантазия на свободную тему)

в платной версии можно (если это вообще реально) делать оффлайн версию карты
то есть плагин кеширует саму карту и показывает даже тогда, когда нет доступа к интернету
полезно может быть для сайтов техподдержки



в репе обновил модуль до версии 1.0.8b https://gitget.ru/ave-cms-team/module-gmap

Решение с пинами у меня видится такое - сделать категории пинов. Я внимательно их пересмотрел , по цвету нет, не имеет смысла ставить фильтр вывода. Несмотря на разный цвет - еще и само смысловое значение пина так же разное, т.е. я не нашел пару идентичных пинов разных цветов (может плохо искал, хз). Поэтому ставку буду делать на визуально-смысловое значение и создавая категорию , закидывать в нее пины разного цвета. Пока оставлю как есть, т.к. разбор пинов по их логике (че они обозначают) и присвоение им (файлам) соответствующих имен займет время...

Аватара пользователя
Repellent
Наш человек
Сообщения: 182
Зарегистрирован: 27 мар 2016, 20:52
Откуда: Russia
Благодарил (а): 14 раз
Поблагодарили: 40 раз
Контактная информация:

карта с пинами

Сообщение Repellent » 05 мар 2017, 22:42

в репозитории обновление модуля до версии 1.0.9b

Изменения:

1. AJAX загрузка пинов с фильтрами по цвету


Screenshot_2.png
Screenshot_2.png (68.44 КБ) 2472 просмотра


2. Добавлена возможность загружать через файловый менеджер и выводить пользовательские пины.

Screenshot_3-1.png
Screenshot_3-1.png (17.24 КБ) 2472 просмотра


Порядок загрузки пинов пользователя:

1. Имя файла (пина) должно начинаться с pin-userХХХ и иметь расширение .png, где ХХХ - цифровой или буквенный символ. Например user-pin1.png или user-pin-a.png
2. Изображения (файлы) пользовательских пинов копируйте в директорию images в корень (там, где лежат все пины модуля), разбор пинов идет по названию.
3. Вывести пины вы сможете кликнув по иконке
Screenshot_1.png
Screenshot_1.png (786 байт) 2472 просмотра


С уважением.

voldemair
Старожил
Сообщения: 94
Зарегистрирован: 14 июн 2016, 15:01
Благодарил (а): 30 раз
Поблагодарили: 2 раза

карта с пинами

Сообщение voldemair » 22 апр 2017, 21:50

У меня впритык не видит папку uploads, что я делаю не так?

Изображение

Изображение

это тояно) забыл приложить изображения) извиняюсь)
Последний раз редактировалось voldemair 23 апр 2017, 16:16, всего редактировалось 1 раз.

Аватара пользователя
Repellent
Наш человек
Сообщения: 182
Зарегистрирован: 27 мар 2016, 20:52
Откуда: Russia
Благодарил (а): 14 раз
Поблагодарили: 40 раз
Контактная информация:

карта с пинами

Сообщение Repellent » 23 апр 2017, 11:24

voldemair писал(а):У меня впритык не видит папку uploads, что я делаю не так?


Знать бы ))) скриншот хотя бы приложи.

Ну + проверь при установке модуля создается файл connector_module_gmap.php , в папке lib/redactor/elfinder/php/

Его содержимое только для директории = константе UPLOAD_DIR

Код: Выделить всё

<?php
error_reporting(E_ALL); // Set E_ALL for debuging
if (function_exists("date_default_timezone_set")) {
   date_default_timezone_set("Europe/Moscow");
}
include_once dirname(__FILE__).DIRECTORY_SEPARATOR."elFinderConnector.class.php";
include_once dirname(__FILE__).DIRECTORY_SEPARATOR."elFinder.class.php";
include_once dirname(__FILE__).DIRECTORY_SEPARATOR."elFinderVolumeDriver.class.php";
include_once dirname(__FILE__).DIRECTORY_SEPARATOR."elFinderVolumeLocalFileSystem.class.php";
include_once dirname(__FILE__).DIRECTORY_SEPARATOR."elFinderVolumeMySQL.class.php";
include_once "../../../../inc/config.php";
include_once "../../../../inc/config.inc.php";
function debug($o) {
   echo "<pre>";
   print_r($o);
}
function logger($cmd, $voumes, $result) {
   $log = $cmd.": [".date("d.m H:s")."] ".$voumes[0]->id()." ";
   
   if (isset($voumes[1])) {
      $log .= $voumes[1]->id()." ";
   }
   switch ($cmd) {
      case "mkdir":
      case "mkfile":
      case "upload":
         $log .= $result["added"][0]["name"];
         break;
      case "rename":
         $log .= "from ".$result["removedDetails"][0]["name"]." to ".$result["added"][0]["name"];
         break;
      case "duplicate":
         $log .= "src: ".$result["src"]["name"]." copy: ".$result["added"][0]["name"];
         break;
      case "rm":
         $log .= $result["removedDetails"][0]["name"];
         break;
      default:
         $log = "";
   }
   if ($log && is_dir("../../../../cache/redactor") || @mkdir("../../../../cache/redactor")) {
      $fp = fopen("../../../../cache/redactor/log.txt", "a");
      if ($fp) {
         fwrite($fp, $log."\n");
         fclose($fp);
      }
   }
   return $result;
}
class elFinderSimpleLogger {
   public function write($cmd, $voumes, $result) {
      $log = $cmd.": [".date("d.m H:s")."] ".$voumes[0]->id()." ";

      if (isset($voumes[1])) {
         $log .= $voumes[1]->id()." ";
      }
      switch ($cmd) {
         case "mkdir":
         case "mkfile":
         case "upload":
         case "paste":
            $log .= $result["added"][0]["name"];
            break;
         case "rename":
            $log .= "from ".$result["removedDetails"][0]["name"]." to ".$result["added"][0]["name"];
            break;
         case "duplicate":
            $log .= "src: ".$result["src"]["name"]." copy: ".$result["added"][0]["name"];
            break;
         case "rm":
            $log .= $result["removedDetails"][0]["name"];
            break;
         default:
            $log = "";
      }
      if ($log && is_dir("../../../../cache/redactor") || @mkdir("../../../../cache/redactor")) {
         $fp = fopen("../../../../cache/redactor/log.txt", "a");
         if ($fp) {
            fwrite($fp, $log."\n");
            fclose($fp);
         }
      }
      return $result;
   }
} // END class
function access($attr, $path, $data, $volume) {
   return strpos(basename($path), ".") === 0
      ? !($attr == "read" || $attr == "write")
      : $attr == "read" || $attr == "write";
}
class elFinderTestACL {
   public function fsAccess($attr, $path, $data, $volume) {
      
      if ($volume->name() == "localfilesystem") {
         return strpos(basename($path), ".") === 0
            ? !($attr == "read" || $attr == "write")
            : $attr == "read" || $attr == "write";
      }
      return true;
   }
}
$acl = new elFinderTestACL();
function validName($name) {
   return strpos($name, ".") !== 0;
}
$opts = array(
   "locale" => "en_US.UTF-8",
   "bind" => array(
      "mkdir mkfile  rename duplicate upload rm paste" => array(new elFinderSimpleLogger(), "write"),
   ),
   "debug" => true,
   "roots" => array(
      array(
         // "id" => "x5",
         "driver"  => "LocalFileSystem", // driver for accessing file system (REQUIRED)
         "path"    => "../../../../".UPLOAD_DIR, // path to files (REQUIRED)
         "URL"     => "/".UPLOAD_DIR."/", // URL to files (REQUIRED)
         "alias"  => UPLOAD_DIR,
         "disabled" => array(),
         "acceptedName" => "validName",
         "uploadAllow" => array("all"),
         "uploadDeny"  => array("all"),
         "uploadOrder" => "deny,allow",
         "uploadOverwrite" => false,
         "uploadMaxSize" => "128m",
         "copyOverwrite" => false,
         "copyJoin" => true,
         "mimeDetect" => "internal",
         "tmbCrop" => false,
         "imgLib" => "gd",
         "utf8fix" => true,
         "attributes" => array(
            array(
               "pattern" => "/^\/\./",
               "read" => false,
               "write" => false,
               "hidden" => true,
               "locked" => true
            ),
                array(
                    "pattern" => "/.tmb/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
                array(
                    "pattern" => "/\.php$/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
            array(
                    "pattern" => "/.quarantine/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
                array(
                    "pattern" => "/\.htaccess$/",
                    "write" => false,
                    "locked" => false,
                    "hidden" => true
                ),
                array(
                    "pattern" => "/.uploader/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
                array(
                    "pattern" => "/.temp/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                )
         ),
      )
   )
);
header("Access-Control-Allow-Origin: *");
$connector = new elFinderConnector(new elFinder($opts), true);
$connector->run();
?>


Для UPLOAD_DIR + modules/gmap/images

Код: Выделить всё

<?php
error_reporting(E_ALL); // Set E_ALL for debuging
if (function_exists("date_default_timezone_set")) {
   date_default_timezone_set("Europe/Moscow");
}
include_once dirname(__FILE__).DIRECTORY_SEPARATOR."elFinderConnector.class.php";
include_once dirname(__FILE__).DIRECTORY_SEPARATOR."elFinder.class.php";
include_once dirname(__FILE__).DIRECTORY_SEPARATOR."elFinderVolumeDriver.class.php";
include_once dirname(__FILE__).DIRECTORY_SEPARATOR."elFinderVolumeLocalFileSystem.class.php";
include_once dirname(__FILE__).DIRECTORY_SEPARATOR."elFinderVolumeMySQL.class.php";
include_once "../../../../inc/config.php";
include_once "../../../../inc/config.inc.php";
function debug($o) {
   echo "<pre>";
   print_r($o);
}
function logger($cmd, $voumes, $result) {
   $log = $cmd.": [".date("d.m H:s")."] ".$voumes[0]->id()." ";
   
   if (isset($voumes[1])) {
      $log .= $voumes[1]->id()." ";
   }
   switch ($cmd) {
      case "mkdir":
      case "mkfile":
      case "upload":
         $log .= $result["added"][0]["name"];
         break;
      case "rename":
         $log .= "from ".$result["removedDetails"][0]["name"]." to ".$result["added"][0]["name"];
         break;
      case "duplicate":
         $log .= "src: ".$result["src"]["name"]." copy: ".$result["added"][0]["name"];
         break;
      case "rm":
         $log .= $result["removedDetails"][0]["name"];
         break;
      default:
         $log = "";
   }
   if ($log && is_dir("../../../../cache/redactor") || @mkdir("../../../../cache/redactor")) {
      $fp = fopen("../../../../cache/redactor/log.txt", "a");
      if ($fp) {
         fwrite($fp, $log."\n");
         fclose($fp);
      }
   }
   return $result;
}
class elFinderSimpleLogger {
   public function write($cmd, $voumes, $result) {
      $log = $cmd.": [".date("d.m H:s")."] ".$voumes[0]->id()." ";

      if (isset($voumes[1])) {
         $log .= $voumes[1]->id()." ";
      }
      switch ($cmd) {
         case "mkdir":
         case "mkfile":
         case "upload":
         case "paste":
            $log .= $result["added"][0]["name"];
            break;
         case "rename":
            $log .= "from ".$result["removedDetails"][0]["name"]." to ".$result["added"][0]["name"];
            break;
         case "duplicate":
            $log .= "src: ".$result["src"]["name"]." copy: ".$result["added"][0]["name"];
            break;
         case "rm":
            $log .= $result["removedDetails"][0]["name"];
            break;
         default:
            $log = "";
      }
      if ($log && is_dir("../../../../cache/redactor") || @mkdir("../../../../cache/redactor")) {
         $fp = fopen("../../../../cache/redactor/log.txt", "a");
         if ($fp) {
            fwrite($fp, $log."\n");
            fclose($fp);
         }
      }
      return $result;
   }
} // END class
function access($attr, $path, $data, $volume) {
   return strpos(basename($path), ".") === 0
      ? !($attr == "read" || $attr == "write")
      : $attr == "read" || $attr == "write";
}
class elFinderTestACL {
   public function fsAccess($attr, $path, $data, $volume) {
      
      if ($volume->name() == "localfilesystem") {
         return strpos(basename($path), ".") === 0
            ? !($attr == "read" || $attr == "write")
            : $attr == "read" || $attr == "write";
      }
      return true;
   }
}
$acl = new elFinderTestACL();
function validName($name) {
   return strpos($name, ".") !== 0;
}
$opts = array(
   "locale" => "en_US.UTF-8",
   "bind" => array(
      "mkdir mkfile  rename duplicate upload rm paste" => array(new elFinderSimpleLogger(), "write"),
   ),
   "debug" => true,
   "roots" => array(
      array(
         // "id" => "x5",
         "driver"  => "LocalFileSystem", // driver for accessing file system (REQUIRED)
         "path"    => "../../../../".UPLOAD_DIR, // path to files (REQUIRED)
         "URL"     => "/".UPLOAD_DIR."/", // URL to files (REQUIRED)
         "alias"  => UPLOAD_DIR,
         "disabled" => array(),
         "acceptedName" => "validName",
         "uploadAllow" => array("all"),
         "uploadDeny"  => array("all"),
         "uploadOrder" => "deny,allow",
         "uploadOverwrite" => false,
         "uploadMaxSize" => "128m",
         "copyOverwrite" => false,
         "copyJoin" => true,
         "mimeDetect" => "internal",
         "tmbCrop" => false,
         "imgLib" => "gd",
         "utf8fix" => true,
         "attributes" => array(
            array(
               "pattern" => "/^\/\./",
               "read" => false,
               "write" => false,
               "hidden" => true,
               "locked" => true
            ),
                array(
                    "pattern" => "/.tmb/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
                array(
                    "pattern" => "/\.php$/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
            array(
                    "pattern" => "/.quarantine/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
                array(
                    "pattern" => "/\.htaccess$/",
                    "write" => false,
                    "locked" => false,
                    "hidden" => true
                ),
                array(
                    "pattern" => "/.uploader/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
                array(
                    "pattern" => "/.temp/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                )
         ),
      ),
            array(
         // "id" => "x5",
         "driver"  => "LocalFileSystem", // driver for accessing file system (REQUIRED)
         "path"    => "../../../../modules/gmap/images", // path to files (REQUIRED)
         "URL"     => "/modules/gmap/images/", // URL to files (REQUIRED)
         "alias"  => "modules/gmap/images",
         "disabled" => array(),
         "acceptedName" => "validName",
         "uploadAllow" => array("all"),
         "uploadDeny"  => array("all"),
         "uploadOrder" => "deny,allow",
         "uploadOverwrite" => false,
         "uploadMaxSize" => "128m",
         "copyOverwrite" => false,
         "copyJoin" => true,
         "mimeDetect" => "internal",
         "tmbCrop" => false,
         "imgLib" => "gd",
         "utf8fix" => true,
         "attributes" => array(
            array(
               "pattern" => "/^\/\./",
               "read" => false,
               "write" => false,
               "hidden" => true,
               "locked" => true
            ),
                array(
                    "pattern" => "/.tmb/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
                array(
                    "pattern" => "/\.php$/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
            array(
                    "pattern" => "/.quarantine/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
                array(
                    "pattern" => "/\.htaccess$/",
                    "write" => false,
                    "locked" => false,
                    "hidden" => true
                ),
                array(
                    "pattern" => "/.uploader/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                ),
                array(
                    "pattern" => "/.temp/",
                    "read" => false,
                    "write" => false,
                    "hidden" => true,
                    "locked" => false
                )
         ),
      ),
   )
);
header("Access-Control-Allow-Origin: *");
$connector = new elFinderConnector(new elFinder($opts), true);
$connector->run();
?>

voldemair
Старожил
Сообщения: 94
Зарегистрирован: 14 июн 2016, 15:01
Благодарил (а): 30 раз
Поблагодарили: 2 раза

карта с пинами

Сообщение voldemair » 23 апр 2017, 16:21

voldemair писал(а):У меня впритык не видит папку uploads, что я делаю не так?

Изображение

Изображение

это тояно) забыл приложить изображения) извиняюсь)


права на папку lib стояли, не давало создавать файл ( не внимательность

Аватара пользователя
duncan
Наш человек
Сообщения: 255
Зарегистрирован: 24 авг 2015, 22:44
Откуда: місто Лева
Благодарил (а): 37 раз
Поблагодарили: 17 раз

карта с пинами

Сообщение duncan » 06 май 2017, 20:51

точка сохранения.
было бы неплохо такую опцию запилить, а ещё лучше ревизии, как в документах
ато зайдёт пьяный модератор и удалит в один клик месячную работу)

Аватара пользователя
Repellent
Наш человек
Сообщения: 182
Зарегистрирован: 27 мар 2016, 20:52
Откуда: Russia
Благодарил (а): 14 раз
Поблагодарили: 40 раз
Контактная информация:

карта с пинами

Сообщение Repellent » 08 май 2017, 11:38

duncan писал(а):точка сохранения.
было бы неплохо такую опцию запилить, а ещё лучше ревизии, как в документах
ато зайдёт пьяный модератор и удалит в один клик месячную работу)


Это крик души?))) Ну так то этот модуль надо еще пилить и пилить - чистить код и так далее. Я вернусь к нему чуть позже (календарь вроде можно останавливать развитие - нет предложений , значит все всех устраивает или оно не надо особо никому) , подумаю по поводу истории) Сразу вопрос - как делать доступ к ней - что бы "пьяный модератор" не удалил и ее -историю)


Вернуться в «Модули от сообщества»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость