Ошибка кода PHP в Textpattern
После недавнего обновления языка PHP до версии php5-5.3.2 вскрылись некоторые ошибки написания кода texpattern-4.2.0. В частности, при конфигурировании ввода комментариев к виду “всплывающее окно”, в этом окне отображаются “строгие предупреждения” от PHP. |
Они имеют следующий вид:
Strict Standards: Non-static method timezone::is_dst() should not be called statically in /textpattern/lib/txplib_misc.php on line 1265 Strict Standards: Non-static method timezone::is_supported() should not be called statically in /textpattern/lib/txplib_misc.php on line 2523
Для устранения этой ошибки вам необходимо подправить код файла txplib_misc.php, а точнее его строки под номерами 1419 и 1424.
В строке 1419 вместо:
# less /usr/local/www/blog/textpattern/lib/txplib_misc.php error_reporting(E_ALL);
внесите следующий код:
# nano -w /usr/local/www/blog/textpattern/lib/txplib_misc.php error_reporting(E_ALL /* TODO: Enable E_STRICT in debug mode/PHP5.x? | (defined('E_STRICT') ? E_STRICT : 0) */);
В строке 1424 вместо:
# less /usr/local/www/blog/textpattern/lib/txplib_misc.php if (defined('E_STRICT')) $suppress |= E_STRICT;
внесите следующий код:
# nano -w /usr/local/www/blog/textpattern/lib/txplib_misc.php // E_STRICT is defined since PHP 5.x and is a member of E_ALL in PHP 6.x. Now handle that! if (defined('E_STRICT') && (E_ALL & E_STRICT)) $suppress |= E_STRICT;
После этих действий ошибка во всплывающем окне комментариев (если вы так сконфигурировали в настройках textpattern) пропадет.
Разница в коде наглядно показана на этой странице.