Het lijkt erop dat je een OC-versie 3.0.2.x of hoger hebt.
In uw $this->data
van de Event Class, hebt u een gebeurtenis geregistreerd waarvoor een actieparameter ontbreekt.
$this->data[] = array(
'trigger' => $trigger,
'action' => $action, // <-- this must be an Action Object with a method execute()
'priority' => $priority
);
Alle evenementen worden geregistreerd via het register()
methode die expliciet vraagt dat een Action-object als parameter wordt doorgegeven.
Aangezien de fout verwijst naar "Call to undefined method Action::execute()", kan ik aannemen dat je een probleem hebt met de action class.
Hoogstwaarschijnlijk moet je de Wijzigingen van de system/engine/action.php
. controleren bestand in uw system/storage/modifications
.
Het kan zijn dat de methode execute()
ontbreekt of is op de een of andere manier beschadigd.
Foutopsporing
probeer de $value te var_dumpen om te zien wat er is:
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;
}
}
}
}
Ik hoop dat dit helpt