Source for file Committer.php
Documentation is available at Committer.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 la classe del compilatore di interfacce XHTML */
require_once $_SERVER["DOCUMENT_ROOT"]. "/admin/lib/view/Compiler.php";
/** Carica il gestore dei permessi degli utenti in MCMS */
require_once $_SERVER["DOCUMENT_ROOT"]. "/admin/lib/controller/AuthManager.php";
* Aggiorna View e Model a fronte di determinati comandi.
* @author Silvio Moioli <silvio at moioli dot net>
/** @var Engine l'oggetto per la comunicazione al Database */
/** @var Compiler l'oggetto per il salvataggio dei file dei siti */
/** @var AuthManager il gestore dei permessi degli utenti in MCMS */
* @param Engine $engine l'oggetto per la comunicazione al DB in uso
* Aggiunge un articolo al sito specificato.
* @param Site $site il sito a cui agguingere l'articolo
* @param Author $author l'autore dell'articolo
* @param string $contents i contenuti XHTML dell'articolo
* @param string $title il titolo dell'articolo
* @param string $keywords le parole-chiave dell'articolo
* @param Category $category la categoria a cui l'articolo appartiene
* @param string $description una breve descrizione dell'articolo
* @param array $articles gli articoli ad esso correlati
* @return l'articolo aggiunto o un PEAR_ERROR
function addArticle($site, $author, $contents, $title, $keywords,
$category, $description, $articles)
$article = $site->addArticle($author, $contents, $title,
$keywords, $category, $description, $articles);
foreach ($articles as $i){
* @param Site $site il sito a cui l'articolo appartiene
* @param Article $article l'articolo da modificare
* @param string $contents i contenuti XHTML dell'articolo
* @param string $title il titolo dell'articolo
* @param string $keywords le parole-chiave dell'articolo
* @param Category $category la categoria a cui l'articolo appartiene
* @param string $description una breve descrizione dell'articolo
* @param array $articles gli articoli ad esso correlati
* @return l'articolo modificato o un PEAR_ERROR
function editArticle($site, $article, $contents, $title, $keywords,
$category, $description, $articles)
$result = $result and $article->setContents($contents);
$result = $result and $article->setTitle($title);
$result = $result and $article->setKeywords($keywords);
$oldCategory = $article->getCategory();
$result = $result and $article->setCategory($category);
$result = $result and $article->setDescription($description);
$oldCorrelatedArticles = $article->getCorrelatedArticles();
$result = $result and $article->setCorrelatedArticles($articles);
foreach (array_merge($articles,$oldCorrelatedArticles) as $i){
if($oldCategory->getID() != $category->getID()){
* @param Site $site il sito a cui l'articolo appartiene
* @param Article $article l'articolo da cancellare
* @return true o un PEAR_ERROR
$oldCorrelatedArticles = $article->getCorrelatedArticles();
$oldCategory = $article->getCategory();
$result = $site->dropArticle($article);
foreach ($oldCorrelatedArticles as $i){
* @param string $name il nome del nuovo autore
* @param string $surname il cognome del nuovo autore
* @param string $nick il nickname del nuovo autore
* @param string $email l'indirizzo email del nuovo autore
* @param string $password la password per MCMS del nuovo autore
* @return il nuovo autore aggiunto o un PEAR_ERROR
function addAuthor($name, $surname, $nick, $email, $password)
* Modifica i dati di un autore.
* @param Author $author l'autore da modificare
* @param string $name il nome dell'autore
* @param string $surname il cognome dell'autore
* @param string $nick il nickname dell'autore
* @param string $email l'indirizzo email dell'autore
* @return l'autore modificato o un PEAR_ERROR
function editAuthor($author, $name, $surname, $nick, $email)
$result = $result and $author->setName($name);
$result = $result and $author->setSurname($surname);
$result = $result and $author->setNick($nick);
$result = $result and $author->setEmail($email);
* @param Author $author l'autore da cancellare
* @return true o un PEAR_ERROR
* Aggiunge una notizia al sito specificato.
* @param Site $site il sito a cui aggiungere la notizia
* @param Author $author l'autore della notizia
* @param string $contents i contenuti XHTML della notizia
* @param string $title il titolo della notizia
* @param string $keywords le parole-chiave della notizia
* @param string $source la fonte originale della notizia
* @param array $articles gli articoli ad essa correlati
* @return la notizia aggiunta o un PEAR_ERROR
function addNews($site, $author, $contents, $title, $keywords, $source,
$news = $site->addNews($author, $contents, $title, $keywords,
* @param Site $site il sito a cui la notizia appartiene
* @param News $news la notizia da modificare
* @param Author $author l'autore della notizia
* @param string $contents i contenuti XHTML della notizia
* @param string $title il titolo della notizia
* @param string $keywords le parole-chiave della notizia
* @param string $source la fonte originale della notizia
* @param array $articles gli articoli ad essa correlati
* @return la notizia modificata o un PEAR_ERROR
function editNews($site, $news, $contents, $title, $keywords,
$result = $result and $news->setContents($contents);
$result = $result and $news->setTitle($title);
$result = $result and $news->setKeywords($keywords);
$result = $result and $news->setSource($source);
$result = $result and $news->setCorrelatedArticles($articles);
* @param Site $site il sito a cui la notizia appartiene
* @param News $news la notizia da cancellare
* @return true o un PEAR_ERROR
$result = $site->dropNews($news);
* Aggiunge una sezione al sito specificato.
* @param Site $site il sito a cui aggiungere la sezione
* @param string $name il nome della sezione
* @param string $description una breve descrizione della sezione
* @return la sezione aggiunta o un PEAR_ERROR
$category = $site->addCategory($name, $description);
* Modifica una sezione del sito specificato.
* @param Site $site il sito a cui aggiungere la sezione
* @param Category $category la sezione da modificare
* @param string $name il nome della sezione
* @param string $description una breve descrizione della sezione
* @return la sezione aggiunta o un PEAR_ERROR
function editCategory($site, $category, $name, $description)
$result = $result and $category->setName($name);
$result = $result and $category->setDescription($description);
$articles = $category->getArticles();
foreach ($articles as $i){
* Cancella una sezione del sito.
* @param Site $site il sito a cui la sezione appartiene
* @param Category $category la sezione da cancellare
* @return true o un PEAR_ERROR
//Deve restare sempre almeno una categoria
if ($site->getCategoriesCount()> 1) {
$result = $site->dropCategory($category);
* Aggiunge un nuovo sito.
* @param Author $author l'autore (fondatore) del sito
* @param string $name il nome del nuovo sito
* @param string $slogan il motto del sito
* @param string $keywords le parole-chiave del sito
* @return il nuovo sito o un PEAR_ERROR
function addSite($author, $name, $slogan, $keywords)
$site = $this->engine->addSite($name, $slogan, $author, $keywords);
* @param Site $site il sito da cancellare
* @return true o un PEAR_ERROR
* Modifica i componenti opzionali attivati su un sito.
* @param Site $site il sito da modificare
* @param array $components i componenti da attivare
* @return il sito modificato o un PEAR_ERROR
$result = $site->changeComponents($components);
* Modifica la pagina iniziale di un sito.
* @param Site $site il sito da modificare
* @param string $contents i contenuti XHTML della pagina
* @param string $slogan il motto del sito
* @param string $keywords le parole-chiave del sito
* @return la pagina modificata o un PEAR_ERROR
$homepage = $site->getHomepage();
$result = $result and $homepage->setContents($contents);
$result = $result and $homepage->setSlogan($slogan);
$result = $result and $homepage->setKeywords($keywords);
|