Support » Plugin: Oi Yandex.Maps for WordPress » Совместимость с php 7 | Compatible with php 7

  • Resolved keellye

    (@keellye)


    Уважаемые разработчики, большое спасибо за замечательный плагин.

    Огромная просьба, добавьте, пожалуйста, совместимость с php 7.

    К сожалению при включении php 7 возникает ошибка. Чтобы её получить произвёл следующие действия (всё несколько раз перепроверил):

    Делаем карту (php 5.6) — вписываем адрес (например: Сочи) в поле «Адрес»… в поле «Координаты» сами собой появляются координаты (43.585525,39.723062)… Вставляем:

    [showyamap] [placemark address=”Сочи” coordinates=”43.585525,39.723062″/] [/showyamap]

    Всё в порядке.

    Включаем php 7.

    Смотрим на только что сделанную карту — всё в порядке.

    Делаем ещё карту… такую же, и после ввода адреса в поле «Адрес», в поле «Координаты» вместо координат (43.585525,39.723062) появляется текст вот с такой ошибкой (адрес сайта заменил ***):

    <br /><b>Fatal error</b>: Uncaught Error: Call to undefined function split() in /home/***/docs/wp-content/plugins/oi-yamaps/oi-ya-maps.php:106Stack trace:#0 /home/***/docs/wp-content/plugins/oi-yamaps/include/thickbox.php(112): coordinates('%D0%A1%D0%BE%D1...')#1 /home/***/docs/wp-includes/plugin.php(525): get_cords('')#2 /home/***/docs/wp-admin/admin-ajax.php(89): do_action('wp_ajax_get_cor...')#3 {main} thrown in <b>/home/***/docs/wp-content/plugins/oi-yamaps/oi-ya-maps.php</b> on line <b>106</b><br />

    На самой странице отображается следующее (либо просто пустое место):

    {"pid":1,"header":"","body":"","footer":"","hint":"","coordinates":"
    \nFatal error<\/b>: Uncaught Error: Call to undefined function split() in \/home\/***\/docs\/wp-content\/plugins\/oi-yamaps\/oi-ya-maps.php:106Stack trace:#0 \/home\/***\/docs\/wp-content\/plugins\/oi-yamaps\/include\/thickbox.php(112): coordinates('%D0%A1%D0%BE%D1...')#1 \/home\/***\/docs\/wp-includes\/plugin.php(525): get_cords('')#2 \/home\/***\/docs\/wp-admin\/admin-ajax.php(89): do_action('wp_ajax_get_cor...')#3 {main} thrown in \/home\/***\/docs\/wp-content\/plugins\/oi-yamaps\/oi-ya-maps.php<\/b> on line 106<\/b>
    \n","iconcontent":"","placemark":"","iconimage":"","iconsize":"","iconoffset":"","iconrect":""}

    В текстовом редакторе WP следующее:

    [showyamap] [placemark address="Сочи" coordinates="
    Fatal error: Uncaught Error: Call to undefined function split() in /home/***/docs/wp-content/plugins/oi-yamaps/oi-ya-maps.php:106Stack trace:#0 /home/***/docs/wp-content/plugins/oi-yamaps/include/thickbox.php(112): coordinates('%D0%A1%D0%BE%D1...')#1 /home/***/docs/wp-includes/plugin.php(525): get_cords('')#2 /home/***/docs/wp-admin/admin-ajax.php(89): do_action('wp_ajax_get_cor...')#3 {main} thrown in /home/***/docs/wp-content/plugins/oi-yamaps/oi-ya-maps.php on line 106
    "/] [/showyamap]

    https://wordpress.org/plugins/oi-yamaps/

Viewing 4 replies - 1 through 4 (of 4 total)
  • Всё просто. В файле /wp-content/plugins/oi-yamaps/oi-ya-maps.php находим строчку
    return implode(‘,’,array_reverse(split(‘ ‘,trim(strip_tags($point[1])))));
    и меняем её на
    return implode(‘,’,array_reverse(str_split(‘ ‘,trim(strip_tags($point[1])))));
    __
    PHP7 fix for OI YA MAPS

    /wp-content/plugins/oi-yamaps/oi-ya-maps.php находим строчку
    return implode(‘,’,array_reverse(split(‘ ‘,trim(strip_tags($point[1])))));
    ->
    return implode(‘,’,array_reverse(str_split(‘ ‘,trim(strip_tags($point[1])))));

    Thread Starter keellye

    (@keellye)

    К сожалению не помогло. Теперь при вводе адреса (например названия города) перестали появляться координаты. Ошибку не показывает — просто пустое поле. Причем на более ранних версиях php, например 5.3, после внесения изменений произошло тоже самое — координаты появляться перестали.

    Я решал проблему с ошибкой. Вот решение, чтобы работали карты – заменяем split (ну или str_split) на explode.

    return implode(‘,’,array_reverse(explode(‘ ‘,trim(strip_tags($point[1])))));

    Протестировал – работает.

    Thread Starter keellye

    (@keellye)

    Всё прекрасно работает. Большое спасибо за помощь.

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘Совместимость с php 7 | Compatible with php 7’ is closed to new replies.