Parece que tiene una versión de OC 3.0.2.x o superior.
En tu $this->data
de la clase de evento, tiene un evento registrado al que le falta un parámetro de acción.
$this->data[] = array(
'trigger' => $trigger,
'action' => $action, // <-- this must be an Action Object with a method execute()
'priority' => $priority
);
Todos los eventos se registran a través de register()
método que solicita explícitamente que se pase un objeto de acción como parámetro.
Dado que el error apunta a "Llamar a un método indefinido Acción::ejecutar()", puedo suponer que tiene un problema con la clase de acción.
Lo más probable es que necesite verificar las Modificaciones del system/engine/action.php
archivo en su system/storage/modifications
.
Podría ser que el método execute()
falta o está dañado de algún modo.
Depuración
intente var_dump el $valor para ver qué hay:
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 esto ayude