в MODx CMS, Разработка

MODx Evo — Function split() is deprecated

«MODx Parse Error»
MODx encountered the following error while attempting to parse the requested resource:
«PHP Parse Error»

PHP error debug
Error: Function split() is deprecated
Error type/ Nr.: — 8192
File: ../manager/includes/document.parser.class.inc.php
Line: 844
Line 844 source: $tempSnippetParams= split($splitter, $tempSnippetParams);

Ошибка не критическая, с ней или без нее можно жить спокойно.

В конфигурационном файле /manager/includes/config.inc.php отключаем вывод (строка 13):

error_reporting(E_ALL & ~E_DEPRECATED | E_STRICT);

заменяем на строку

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED)

В manager/includes/document.parser.class.php изменяем строку под номером 2502:

if (error_reporting() == 0 || $nr == 0 || ($nr == 8 && $this->stopOnNotice == false)) {

на

if (error_reporting() == 0 || $nr == 0 || (error_reporting() & $nr) != $nr || ($nr == 8 && $this->stopOnNotice == false)) {

Этими действиями мы игнорируем ошибку и сайт работает далее.

 

 

Написать комментарий

Комментарии

  1. Чувак, привет.
    Прости что беспокою, но мне нужна твоя помощь.
    Мне достался сайт на MODx Evo… Как достался.., работать там приходится.. Сам понимаешь, работа такая;).
    И на сайте сейчас вылетает именно та ошибка, которая описана в этой статье.
    Точно сверить доверю текст тебе:
    « MODx Parse Error »
    MODx encountered the following error while attempting to parse the requested resource:
    « PHP Parse Error »

    PHP error debug
    Error: Function split() is deprecated
    Error type/ Nr.: — 8192
    File: /home/u31323/lili-designru/www/manager/includes/document.parser.class.inc.php
    Line: 844
    Line 844 source: $tempSnippetParams= split($splitter, $tempSnippetParams);

    Parser timing
    MySQL: 0.0037 s (0 Requests)
    PHP: 0.2876 s
    Total: 0.2913 s

    Вот ссылка — http://www.lili-design.ru/stat/162.html

  2. У меня в document.parser.class.php вообще нет строки if (error_reporting() == 0 || $nr == 0 || ($nr == 8 && $this->stopOnNotice == false))

    • Посмотрите аналогичную, в зависимости от версий она может быть немного изменена.

  3. Так ты убираешь сообщение об ошибке, а не саму ошибку…

    А решается все просто — в указанной строке заменить split на explode
    Это проблема совместимости разных версий PHP…