MCMS
[ class tree: MCMS ] [ index: MCMS ] [ all elements ]

Source for file Component.php

Documentation is available at Component.php

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4: */
  3. // +----------------------------------------------------------------------+
  4. // | MCMS: a PHP Content Management System for creating accessible sites. |
  5. // | Copyright (C) 2005  Silvio Moioli                                    |
  6. // |                                                                      |
  7. // | This program is free software; you can redistribute it and/or modify |
  8. // | it under the terms of the GNU General Public License as published by |
  9. // | the Free Software Foundation; either version 2 of the License, or    |
  10. // | (at your option) any later version.                                  |
  11. // |                                                                      |
  12. // | This program is distributed in the hope that it will be useful,      |
  13. // | but WITHOUT ANY WARRANTY; without even the implied warranty of       |
  14. // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        |
  15. // | GNU General Public License for more details.                         |
  16. // |                                                                      |
  17. // | You should have received a copy of the GNU General Public License    |
  18. // | along with this program; if not, write to the Free Software          |
  19. // | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 |
  20. // +----------------------------------------------------------------------+
  21. // | Authors: Silvio Moioli <silvio at moioli dot net> www.moioli.net     |
  22. // +----------------------------------------------------------------------+
  23. //
  24. //$Id:
  25. /**
  26.  * Interfaccia per la gestione degi componenti opzionali dei siti gestiti da
  27.  * MCMS.
  28.  *
  29.  * @package  MCMS
  30.  * @version  2
  31.  * @author   Silvio Moioli <silvio at moioli dot net>
  32.  */
  33.  
  34. /** Carica la classe base di PEAR */
  35. require_once $_SERVER["DOCUMENT_ROOT"]."/admin/include/pear/PEAR.php";
  36. /** Carica la classe base di MCMS per l'interfacciamento al Database */
  37. require_once $_SERVER["DOCUMENT_ROOT"]."/admin/lib/model/Engine.php";
  38.  
  39. /**
  40.  * Interfaccia per la gestione degi componenti opzionali dei siti gestiti da
  41.  * MCMS.
  42.  *
  43.  * Classe astratta che descrive i metodi obbligatori che devono essere
  44.  * implementati da qualsiasi componente opzionale per Component.
  45.  * NOTE IMPORTANTI SULLA COSTRUZIONE DEI COMPONENTI:
  46.  * Ogni componente dovrà estendere questa classe e dovrà essere memorizzato
  47.  * in un file con lo stesso nome della classe. Inoltre tale file
  48.  * deve essere salvato nella cartella Components, altrimenti MCMS non riuscirà
  49.  * a integrarlo correttamente.
  50.  * I nomi dei componenti devono essere univoci, e in sole lettere minuscole.
  51.  *
  52.  * @package  MCMS
  53.  * @version  2
  54.  * @author   Silvio Moioli <silvio at moioli dot net>
  55.  */
  56. class Component extends PEAR
  57. {
  58.     /**
  59.      * Costruttore di default.
  60.      *
  61.      */
  62.     function Component(){
  63.         $this->PEAR();
  64.     }
  65.  
  66.     /**
  67.      * Questo metodo è "astratto" pertanto dovrebbe essere implementato da
  68.      * tutte le classi che estendono questa classe.
  69.      *
  70.      * Ritorna il nome di questo componente.
  71.      *
  72.      * @return string il nome del componente
  73.      */
  74.     /*abstract*/ function getName(){
  75.         return PEAR_raiseError("Unimplemented abstract method called!");
  76.     }
  77.  
  78.     /**
  79.      * Questo metodo è "astratto" pertanto dovrebbe essere implementato da
  80.      * tutte le classi che estendono questa classe.
  81.      *
  82.      * Inizializza il componente. Questo metodo viene richiamato da Engine
  83.      * quando vengono create le tabelle del DB per MCMS. Se il componente ha
  84.      * bisogno di tabelle permanenti proprie per il suo funzionamento, dovrebbe
  85.      * crearle all'interno di questo metodo.
  86.      * Il parametro $engine sarà fornito dal sistema per poter interagire con
  87.      * il database.
  88.      *
  89.      * @param Engine $engine il motore di MCMS
  90.      */
  91.     /*abstract*/ function init($engine){
  92.         return PEAR_raiseError("Unimplemented abstract method called!");
  93.     }
  94.  
  95.     /**
  96.      * Questo metodo è "astratto" pertanto dovrebbe essere implementato da
  97.      * tutte le classi che estendono questa classe.
  98.      *
  99.      * Applica questo componente alla pagina corrente apportando modifiche
  100.      * ai contenuti, al menu e al titolo.
  101.      *
  102.      * @param string $contents i contenuti della pagina da modificare
  103.      * @param array $menuEntries il menu della pagina
  104.      * @param string $title il titolo della pagina da modificare
  105.      * @param string $description la descrizione della pagina da modificare
  106.      * @param Site $site il sito corrente
  107.      */
  108.     /*abstract*/ function applyComponent(&$contents&$menuEntries&$title,
  109.         &$description$site){
  110.         return PEAR_raiseError("Unimplemented abstract method called!");
  111.     }
  112.     
  113.     /**
  114.      * Questo metodo è "astratto" pertanto dovrebbe essere implementato da
  115.      * tutte le classi che estendono questa classe.
  116.      *
  117.      * Se il plugin deve creare o aggiornare dei propri file, può farlo
  118.      * qui. Questo metodo viene richiamato ad ogni modifica di ogni sito,
  119.      * e viene passata un'istanza di Compiler per il salvataggio dei file.
  120.      *
  121.      * @param Site $site il sito corrente
  122.      * @param Compiler $compiler l'oggetto per il salvataggio dei file
  123.      */
  124.     /*abstract*/ function saveFiles($site$compiler){
  125.         return PEAR_raiseError("Unimplemented abstract method called!");
  126.     }
  127. }
  128. ?>

Documentation generated on Wed, 26 Jul 2006 21:44:52 +0200 by phpDocumentor 1.3.0RC6