Здравствуйте.
С недавнего времени при загрузке файлов наблюдаю такие ошибки:
* warning: Parameter 2 to content_copy_form_alter() expected to be a reference, value given in /var/www/htdocs/includes/common.inc on line 2839.
* warning: Parameter 2 to fivestar_comment_form_alter() expected to be a reference, value given in /var/www/htdocs/includes/common.inc on line 2839.
* warning: Parameter 2 to fivestar_form_alter() expected to be a reference, value given in /var/www/htdocs/includes/common.inc on line 2839.
* warning: Parameter 2 to moderation_form_alter() expected to be a reference, value given in /var/www/htdocs/includes/common.inc on line 2839.
Я так понял, проблема кроется либо в файле /var/www/htdocs/includes/common.inc, либо в чем-то еще.
В файле указанная строка - последняя в теле цикла:
foreach (module_implements($type .'_alter') as $module) {
$function = $module .'_'. $type .'_alter';
call_user_func_array($function, $args);
}
Никто с подобным не сталкивался? Что я сделал не так?
Спасибо за внимание.
Комментарии
они сталкивались
php 5.3?
Да, он самый...
итак, после прочтения материала по ссылке, я нашел ответ на свой вопрос. Хорошо, что я немного знаю английский.
Для тех, кто его не знает - проблема была в амперсандах в функциях, которые находятся в свою очередь в дополнительных модулях.
Итак, мне пришлось поработать с модулем CCK, с модулем FiveStar и с модулем moderation.
Ищем там функцию, заканчивающуюся на _alter_form() и в передаваемых ей параметрах (их там везде три) у первых двух убираем амперсанд. Все.
Теперь эти предупреждения не выводятся.
Осталось только понять:
1. Что плохого в PHP 5.3?
2. Почему в firefox файлы добавляются, а в Opera выскакивает диалоговое окно с ошибкой и грузится текст на Javascript при нажатии кнопки ОК.
К стати, заметил, что на Drupal.ru при добавлении файлов в Opera тоже самое происходит. Это в Opera косяк или что-то где-то в JavaScript недоделали?
Моя проблема:
Добавил CCK поле для загрузки картинок без ограничения в их количестве.
При создании материала после нажатия кнопки “Добавить” выводились следующие варнинги:
<?php
warning: Parameter 2 to date_form_alter() expected to be a reference, value given in
Z:\home\soc.lcl\www\includes\common.inc on line 2883.
warning: Parameter 2 to date_timezone_form_alter() expected to be a reference, value given in
Z:\home\soc.lcl\www\includes\common.inc on line 2883.
?>
Моё решение:
В файле
sites\all\modules\date\date\date.module
в строке
убрал амперсанд у второго аргумента.
получил
Аналогично в файле
sites\all\modules\date\date_timezone\date_timezone.module
строку
исправляем на
У первого аргумента ни в коем случае не убирать амперсанд!
Спасибо народ, помогли решить проблему с ошибками!
update. После понижения версии php до 5.2.x ошибки исчезают.
Как это можно сделать? Написать хостеру, или переставить самому, если VDS.
P.S. К примеру мастерхост без проблем перенес по запросу на сервер с php 5.2.x версии.