PDA

Zobacz pełną wersję : Problem / Joomla 2.5.6 na hostingu z PHP5.3



Bidder
27-08-2012, 08:32
Witam,

Mam problem po przeiesieniu Joomla 2.5.6 z 1-go hostingu (PHP5.2) na inny (PHP5.3.3-7).
Pojawia się poniższy komunikat błędu:
Deprecated: Call-time pass-by-reference has been deprecated in /home/public_html/www.example.com/libraries/joomla/event/event.php on line 71
której treść wygląda tak:
return call_user_func_array(array($this, $event), &$args);

A funkcja w całości wygląda jak poniżej:
public function update(&$args)
{
// First let's get the event from the argument array. Next we will unset the
// event argument as it has no bearing on the method to handle the event.
$event = $args['event'];
unset($args['event']);

/*
* If the method to handle an event exists, call it and return its return
* value. If it does not exist, return null.
*/
if (method_exists($this, $event))
{
return call_user_func_array(array($this, $event), &$args);
}
else
{
return null;
}
}

Skorzystałem z pomocy http://pastebin.com/mVMkPHUC
niestety bez efektu. Oczywiście można wyłączyć wyświetlanie błędów ale nie załwtwia to problemu, ponieważ przestają działać pewne funkcjonalności.
Czy ktoś spotkał na swej drodze podobny problem i zna jego rozwiązanie?

Z góry dziękuję za pomoc.

- - - Updated - - -

Witam ponownie,
Z powyższym problemem walczyłem wczoraj kilka godzin i chyba za długo:-) bo umysł już nie dostrzegał, że pod latarnią najciemniej:-)
Korzystałem z poniższych - może się komuś przyda:
http://stackoverflow.com/questions/11502777/joomla-php-error-warning-parameter-3-to-plgcontentpagenavigationoncontentbef
http://php.net/manual/en/function.call-user-func-array.php
http://stackoverflow.com/questions/2045875/pass-by-reference-problem-with-php-5-3-1

a nie dostrzegłem rozwiązania w poniższym:
http://forum.joomla.org/viewtopic.php?f=628&t=715408

Oryinał:
return call_user_func_array(array($this, $event), &$args);
należy zastąpić poniższym:
return @call_user_func_array(array($this, $event), $args);

i jest ok, komunikat błędu: /libraries/joomla/event/event.php on line 71
już się nie pojawia. Funkcjonalności pewnych komponentów Joomla! zostały przywrócone do życia (np. AllVideos, EasyBlog) zostały przywrócone:-)

Przy tej okazji nasunęła i się myśl:
Jak pojawia się problem, warto sobie odpuścić, napić się kawy, pospacerować po świeżym powietrzu i gdy umysł jest czysty, ponownie poszukać rozwiązania, rozwiązanie odnajdzie się szybciej:-)