Einfach statische Seiten

Anleitungen und Quellcode-Auszüge die den Start vereinfachen sollen.

Einfach statische Seiten

Beitragvon havanna am Mo 30. Mär 2009, 21:44

Die Tage habe ich eine interessante Variante entdeckt, einfach statische Seiten aufzurufen.
Die Quelle stammt von Jonathan Snook http://snook.ca/archives/cakephp/static_pages_cakephp12/

Code: Alles auswählen
<?php

class AppError extends ErrorHandler {

    function __construct($method, $messages) {
        $params = Router::getParams();
     
        if (($method == 'missingController' || $method == 'missingAction')
           &amp;&amp; file_exists(VIEWS . DS. $params['controller'] . DS . $params['action'] . ".ctp")) {          
            $this->controller =&amp; new AppController();
            $this->controller->_set(Router::getPaths());
            $this->controller->params = $params;
            $this->controller->constructClasses();
            $this->controller->viewPath = $params['controller'];
            $this->controller->render($params['action']);
            e($this->controller->output);
            exit();
        }

        parent::__construct($method, $messages);
        exit();
    }
}
?>


Diese Datei speichert man als error.php im /app Verzeichnis.
Wie funktioniert's? Die Funktion überschreibt das Standard-Error-Handling von Cake. Wenn eine Datei mit dem Namen der Funktion und Endung .ctp im Verzeichnis des aufgerufenen Controllers existiert, dann wird diese einfach als statische Seite dargestellt.
Beispiel: der Aufruf lautet http://deineDomain.com/hallo/machwas und es gibt keinen Controller mit dem Namen "hallo" aber ein Verzeichnis /app/views/hallo und in diesem Verzeichnis eine Datei machwas.ctp, dann wird diese als statische Seite dargestellt.

Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 174
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Einfach statische Seiten

Beitragvon Flo am Di 31. Mär 2009, 08:08

nette Idee, halte ich aber für kritisch, damit könntest du z.B sachen anzeigen lassen die sonst per Ajax nachgeladen werden, insofern der view natürlich anders heisst als die dazugehörige funktion, z.B im Rechnungswesen hab ich teilweise verschiedene Templates für verschiedene Rechnungen die aber alle von der selben Funktion verarbeitet werden. Un ich möchte nicht das jemand die sonst schreibgeschützten PDF rohdaten bekommt die ich erzeuge *g
Flo
 
Beiträge: 67
Registriert: Mi 11. Jun 2008, 20:48
Wohnort: Bielefeld
CakePHP-Version: 1.3
OS: Mac OSX 10.6

Re: Einfach statische Seiten

Beitragvon havanna am Di 31. Mär 2009, 11:37

Hallo Flo,

du hast natürlich Recht, dass man das im Einzelfall kritisch prüfen muss.
Aber die Funktion greift ja auch nur dann, wenn es keinen Controller mit dem Namen gibt jedoch ein Verzeichnis und eine passende .ctp Datei.
D.h. bei PDF-Dateien etc. ist die Bedingung nicht erfüllt und es greift das normale Error-Handling.

Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 174
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN


Zurück zu Tutorials und Snippets

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron