Parece que você tem um OC versão 3.0.2.x ou superior.
Em seus
$this->data
da Classe de Eventos, você tem um evento registrado que não possui um parâmetro de ação. $this->data[] = array(
'trigger' => $trigger,
'action' => $action, // <-- this must be an Action Object with a method execute()
'priority' => $priority
);
Todos os eventos são registrados através do
register()
método que solicita explicitamente que um objeto Action esteja sendo passado como parâmetro. Como o erro está apontando para "Call to undefined method Action::execute()", posso supor que você tenha um problema com a classe de ação.
Muito provavelmente você precisa verificar as Modificações do
system/engine/action.php
arquivo em seu system/storage/modifications
. Pode ser que o método
execute()
está ausente ou de alguma forma corrompido. Depurar
tente var_dump o $value para ver o que está lá:
public function trigger($event, array $args = array()) {
foreach ($this->data as $value) {
//log out the $value before the error to see if the Action object is actually there and see what trigger causes this.
var_dump($value);
if (preg_match('/^' . str_replace(array('\*', '\?'), array('.*', '.'), preg_quote($value['trigger'], '/')) . '/', $event)) {
$result = $value['action']->execute($this->registry, $args);
if (!is_null($result) && !($result instanceof Exception)) {
return $result;
}
}
}
}
Espero que isto ajude