@lakegull

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

Есть плагин, который создаёт карты Гугл с маркерами и прочими элементами. Проблема в том, что он не позволяет применить разные настройки для каждой из созданных карт. Есть необходимость отключить некоторые функции в одной карте, но оставить их в другой. Плагин создаёт шорткоды, различающиеся идентификатором карты.
Сперва думал просто переименовать архив с плагином, например gimap2.zip вместо gimp.zip, и установить таким образом в другую папку, но что делать с одинаковыми шорткодами? Если оба плагина создадут шорткод [gimap id='1'], то явно это вызовет ошибку.
Подскажите, как переименовать шорткод второго плагина на [gimap2 id='1'] ?
Нужно ли ещё переименовывать какие-нибудь CSS-классы или файлы в плагине-дубликате?
  • Вопрос задан
  • 1383 просмотра
Решения вопроса 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 на страницу "Плагины". Там будет отображается эти Ваши две копии. Активируйте их.

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

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

Войти через центр авторизации
Похожие вопросы