Source for file Dispatcher.php
Documentation is available at Dispatcher.php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | MCMS: a PHP Content Management System for creating accessible sites. |
// | Copyright (C) 2005 Silvio Moioli |
// | This program is free software; you can redistribute it and/or modify |
// | it under the terms of the GNU General Public License as published by |
// | the Free Software Foundation; either version 2 of the License, or |
// | (at your option) any later version. |
// | This program is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// | GNU General Public License for more details. |
// | You should have received a copy of the GNU General Public License |
// | along with this program; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 |
// +----------------------------------------------------------------------+
// | Authors: Silvio Moioli <silvio at moioli dot net> www.moioli.net |
// +----------------------------------------------------------------------+
/** Carica la classe base di MCMS per l'interfacciamento al Database */
require_once $_SERVER["DOCUMENT_ROOT"]. "/admin/lib/model/Engine.php";
/** Carica il componente per l'aggiornamento di View e Model */
require_once $_SERVER["DOCUMENT_ROOT"]. "/admin/lib/controller/Committer.php";
/** Carica le pagine della vista Admin */
require_once $_SERVER["DOCUMENT_ROOT"]. "/admin/lib/view/alladmin.inc";
* Gestisce eventi scatenando le opportune azioni su View e Model.
/** @var Engine l'oggetto per la comunicazione al Database */
/** @var Compiler il compilatore di interfacce XHTML */
/** @var Committer il componente per l'aggiornamento di View e Model */
//Piccolo hack per evitare un click tra la creazione di un nuovo sito
//Piccolo hack per evitare di far rifare il login a un autore appena registato
* @param Engine $this->engine l'oggetto per la comunicazione al DB in uso
if ($event->getParameter("javascript")== "off") {
if(is_a($event,"ActionEvent")){
switch ($event->getAction()){
$event->getParameter("contents"),
$event->getParameter("title"),
$event->getParameter("keywords"),
$event->getParameter("description"),
$event->getParameter("contents"),
$event->getParameter("title"),
$event->getParameter("keywords"),
$event->getParameter("description"),
$event->getParameter("surname"),
$event->getParameter("nick"),
$event->getParameter("email"),
$event->getParameter("password"));
$event->getParameter("name"),
$event->getParameter("surname"),
$event->getParameter("nick"),
$event->getParameter("email"));
$event->getParameter("contents"),
$event->getParameter("title"),
$event->getParameter("keywords"),
$event->getParameter("source"),
$event->getParameter("contents"),
$event->getParameter("title"),
$event->getParameter("keywords"),
$event->getParameter("source"),
$event->getParameter("name"),
$event->getParameter("description"));
$event->getParameter("name"),
$event->getParameter("description"));
$event->getParameter("name"),
$event->getParameter("slogan"),
$event->getParameter("keywords"));
$event->getComponents());
$event->getParameter("contents"),
$event->getParameter("slogan"),
$event->getParameter("keywords"));
print "do.php: unrecognized action ". $event->getParameter("action"). " <br />";
elseif(is_a($event,"GoToEvent")){
switch ($event->getPage()) {
if ($event->getParameter("defaults") == "true") {
$page->setDefaultName($event->getParameter("name"));
$page->setDefaultSurname($event->getParameter("surname"));
$page->setDefaultNick($event->getParameter("nick"));
$page->setDefaultEmail($event->getParameter("email"));
//Se sono al primo login dopo la registrazione...
//Se ĆØ un login ordinario
$author = $event->getAuthor();
if ($event->getParameter("defaults") == "true") {
$page->setDefaultName($event->getParameter("name"));
$page->setDefaultSurname($event->getParameter("surname"));
$page->setDefaultNickname($event->getParameter("nick"));
$page->setDefaultEmail($event->getParameter("email"));
if ($event->getParameter("mode") == "new") {
$page = new AdminEditNews($event->getAuthor(), $event->getSite(),
null, "new", $javascript);
elseif ($event->getParameter("mode") == "edit") {
$news = $event->getNews();
$page = new AdminEditNews($event->getAuthor(), $event->getSite(),
$news, "edit", $javascript);
//Se sono specificati valori di default per la pagina, settali
if ($event->getParameter("defaults") == "true") {
$page->setDefaultTitle($event->getParameter("title"));
$page->setDefaultKeywords($event->getParameter("keywords"));
$page->setDefaultSource($event->getParameter("source"));
$page->setDefaultContents($event->getParameter("contents"));
$page->setDefaultCorrelatedArticles($event->getArticles());
$page = new AdminListNews($event->getAuthor(), $event->getSite());
//Controlla i permessi e inizializza la pagina
if ($event->getParameter("mode") == "new") {
$article,"new",$javascript);
elseif ($event->getParameter("mode") == "edit") {
$article = $event->getArticle();
$article,"edit",$javascript);
//Se sono specificati valori di default per la pagina, settali
if ($event->getParameter("defaults") == "true") {
$page->setDefaultTitle($event->getParameter("title"));
$page->setDefaultKeywords($event->getParameter("keywords"));
$page->setDefaultDescription($event->getParameter("description"));
$page->setDefaultContents($event->getParameter("contents"));
$page->setDefaultCorrelatedArticles($event->getArticles());
$page->setDefaultCategory($event->getCategory());
case "AdminListArticles":
case "AdminListCategories":
case "AdminEditCategory":
if ($event->getParameter("mode") == "new") {
elseif ($event->getParameter("mode") == "edit") {
$category = $event->getCategory();
//Se sono specificati valori di default per la pagina, settali
if ($event->getParameter("defaults") == "true") {
$page->setDefaultName($event->getParameter("name"));
$page->setDefaultDescription($event->getParameter("description"));
case "AdminEditHomepage":
$site = $event->getSite();
$dataDispatcheromepage = $site->getHomepage();
$event->getParameter("slogan"),
$event->getParameter("keywords"),
$event->getParameter("contents"));
if ($event->getParameter("defaults") == "true") {
$page->setDefaultSlogan($event->getParameter("slogan"));
$page->setDefaultKeywords($event->getParameter("keywords"));
$page->setDefaultContents($event->getParameter("contents"));
case "AdminDropCategory":
$event->getSite(), $event->getCategory()));
print "NO GOTO page specified! ";
|