3 Stimmen

Cakephp Überschreibung HtmlHelper::link

Ich möchte HtmlHelper::link()-Methode einrichten, so dass die Standardoptionen Array Escape = false haben.

Wie kann ich dies erreichen, ohne die Kernklasse zu ändern?

OBS: Ich habe die Formulareingabe bereits bereinigt, so dass dies wohl kein Problem sein wird.

Vielen Dank im Voraus.

0voto

numerical25 Punkte 10246

Eine weitere gute Praxis, die ich denke, cakephp sollte, dass Sie auch implementieren können, ist eine einfache Factory Pattern Helper. Das Folgende sollte nur als Pseudo und nicht als echter Code betrachtet werden.

$this->Factory->getHelper('Html')->link();

anstelle von

$this->Html->link();

zum Beispiel Folgendes

class FactoryHelper extends  Helper {
    public function getHelper($name) {
        if(Configure::read('Overrides.{$name}')) {
            return $this->{Configure::read('Overrides.{$name}')};
        }
        return (isset($this->{$name})?$this->{$name}:false);
    }

}

//Bootstrap is where you will set all your overrides
Configure::write('Overrides',array(
    'Html'=>'NewHtml'
));

//so können Sie jetzt, wenn Sie einen Helfer außer Kraft setzen wollen

Also jetzt in der Bootstrap, die Sie setzen, um Html Helper überschreiben. In Ihrer gesamten Website wird Ihre neue "NewHtml"-Hilfe anstelle der traditionellen Hilfe aufgerufen werden.

-3voto

dogmatic69 Punkte 7527

Können Sie jede Helper-Methode von AppHelper überschreiben, also

class AppHelper extends Helper{
    function link($params, $go, $here){ ... code ...}
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X