Задать вопрос
@lakegull

Возможно ли установить два одинаковых плагина на один сайт?

Есть плагин, который создаёт карты Гугл с маркерами и прочими элементами. Проблема в том, что он не позволяет применить разные настройки для каждой из созданных карт. Есть необходимость отключить некоторые функции в одной карте, но оставить их в другой. Плагин создаёт шорткоды, различающиеся идентификатором карты.
Сперва думал просто переименовать архив с плагином, например gimap2.zip вместо gimp.zip, и установить таким образом в другую папку, но что делать с одинаковыми шорткодами? Если оба плагина создадут шорткод [gimap id='1'], то явно это вызовет ошибку.
Подскажите, как переименовать шорткод второго плагина на [gimap2 id='1'] ?
Нужно ли ещё переименовывать какие-нибудь CSS-классы или файлы в плагине-дубликате?
  • Вопрос задан
  • 1419 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
@lakegull Автор вопроса
Всем спасибо за подсказки, решение найдено.
Первоначально предложенный мной действия были абсурдными. Затраченные усилия и результат походили бы на симбиоз костылей и велосипеда - инвалидную коляску.
Покопавшись в коде понял, что можно напрямую установить параметры создаваемой карты через Google Maps API.
В персональных настройках карты есть выпадающее меню с возможностью выбрать Basic Map Types из четырёх предложенных вариантов: ROADMAP, SATELLITE, HYBRID и TERRAIN.
Кусок нужного JS кода в каждом из типов карт выглядит следующим образом:
if (override_type === "HYBRID") { 
                var myOptions = {
                        zoom:zoom,
                        minZoom: wpgmza_max_zoom,
                        maxZoom: 21,
                        center: latLng,
                        draggable: wpgmza_settings_map_draggable,
                        disableDoubleClickZoom: wpgmza_settings_map_clickzoom,
                        scrollwheel: wpgmza_settings_map_scroll,
                        zoomControl: wpgmza_settings_map_zoom,
                        panControl: wpgmza_settings_map_pan,
                        mapTypeControl: wpgmza_settings_map_type,
                        streetViewControl: wpgmza_settings_map_streetview,
                        mapTypeId: google.maps.MapTypeId.HYBRID
                };
            }

Мне нужен был тип карты HYBRID, но с заблокированными элементами управления.
Я создал копию HYBRID-кода и вставил его чуть ниже, затем переименовал тип на свой (PERSONAL), отключил элементы управления. Получился такой код:
if (override_type === "PERSONAL") {
                var myOptions = {
                        zoom:zoom,
                        minZoom: wpgmza_max_zoom,
                        maxZoom: 21,
                        center: latLng,
                        draggable: false,
                        disableDoubleClickZoom: true,
                        scrollwheel: false,
                        zoomControl: false,
                        panControl: false,
                        mapTypeControl: false,
                        streetViewControl: false,
                        mapTypeId: google.maps.MapTypeId.ROADMAP
                };
            }

В прочих PHP и JS файлах так же добавил нужный код, чтобы в выпадающем списке настроек появился PERSONAL. Все места, где нужно добавить код нашёл по тегу ROADMAP, прошерстив весь плагин, создавая копию уже существующих строк и переименовывая их должным образом.
В результате цель была достигнута.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Punkie
@Punkie
Вряд ли. Особенно если плагин хранит что-то в базе от себя. Вам придётся весь плагин перелопатить, изменить все глобальные переменные, сменить названия полей или таблиц и т.п.
Ответ написан
Комментировать
kumaxim
@kumaxim
Web-программист
Способ, конечно, не совсем верный и может вызвать кучу побочных глюков на сайте... Хотя, по большей части зависит от того куда там этот плагин и что пишет.

  1. Распоковать архив gimap.zip в папку gimap
  2. Создать копию папки gimap, назвав ее, например, gimap-v2
  3. Заходите в папку gimap-v2
  4. Открыть index.php
  5. Найти в заголовке /* Plugin name: gimap */ - это имя Вашего плагина
  6. Сменить gimap на gimap-v2 - имя, отображаемое у Вас в адмике на странице с плагинами
  7. Залить по ftp обе папки на сервер в папку плагинов: /wp-content/plugins


После этих манипуляций заходите в амдинку WP на страницу "Плагины". Там будет отображается эти Ваши две копии. Активируйте их.

Хотя если плагин работает с шорткодами в корректности работы одновременно двух его копий не уверен, они, возможно, будут перезатирать данные друг друга.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы