blob: 3a137375385d6dea9cd5a8f171b919db9c8b3806 [file] [log] [blame]
<?php
// *****************************************************************************
//
// news.php
//
// Author: Wayne Beaton
// Date: 2005-11-07
//
// Description: Use the get_news($newsfile) function in this file to generate
// the html
// equivalent of the provided RSS file.
//
// ****************************************************************************
require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/xml_sax_parsing.php");
/*
* This function answers an instance of Article containing the
* information represented in $file_name. $file_name is assumed to
* be a file name with a complete path to an XML file conforming
* to the about.xml structure. $root is the directory that contains
* the actual content of the article (generally this is the same
* as the path for $file_name).
*/
function &get_candidate_from_xml($file_name) {
$handler = new CandidateFileHandler();
parse_xml_file($file_name, $handler);
$candidate = $handler->candidate;
$candidate->location = $file_name;
$email = trim($candidate->email);
if ($email) {
$email = str_replace("@", " at ", $email);
$candidate->email = $email;
}
return $candidate;
}
/*
* This class is used by the SAX parser to start parsing
* a Candidate file.
*/
class CandidateFileHandler extends XmlFileHandler {
var $candidate;
/*
* This method returns the root handler for a Candidate file
* The root handler essentially represents the file itself
* rather than any actual element in the file. The returned
* element handler will deal with any elements that may occur
* in the root of the XML file.
*/
function get_root_element_handler() {
$retVal = new CandidateRootHandler();
return $retVal;
}
function end_root_element_handler(& $handler) {
$this->candidate = $handler->candidate;
}
}
/*
* The CandidateRootHandler class takes care of the root element
* in the file. This handler doesn't correspond to any particular
* element that may occur in the XML file. It represents the file
* itself and must deal with any elements that occur at the root
* level in that file.
*/
class CandidateRootHandler extends XmlElementHandler {
var $candidate;
/*
* This method handles the <boardmember>...</boardmember> element.
*/
function &get_boardmember_handler($attributes) {
$retVal = new CandidateHandler($attributes);
return $retVal;
}
function end_boardmember_handler(& $handler) {
$this->candidate = $handler->candidate;
}
}
/*
* The CandidateHandler takes care of the <boardmember> element. This
* element is the root element in the file and is used to contain
* all the categories.
* <boardmember>
* <type>...</type>
* <name>...</name>
* <title>...</title>
* ...
* </boardmember>
*/
class CandidateHandler extends XmlElementHandler {
var $candidate;
function CandidateHandler(&$attributes) {
$this->candidate = new Candidate();
$this->candidate->id = $attributes['ID'];
$type = $attributes['TYPE'];
if (strcasecmp($type, "committer") == 0) {
$this->candidate->type = "committer";
}
else {
$this->candidate->type = "addin";
}
}
/*
* This method handles the <name>...</name> element.
*/
function &get_name_handler(& $attributes) {
$retVal = new SimplePropertyHandler($this->candidate, "name");
return $retVal;
}
/*
* This method handles the <title>...</title> element.
*/
function &get_title_handler(& $attributes) {
$retVal = new SimplePropertyHandler($this->candidate, "title");
return $retVal;
}
/*
* This method handles the <email>...</email> element.
*/
function &get_email_handler(& $attributes) {
$retVal = new SimplePropertyHandler($this->candidate, "email");
return $retVal;
}
/*
* This method handles the <phone>...</phone> element.
*/
function &get_phone_handler(& $attributes) {
$retVal = new SimplePropertyHandler($this->candidate, "phone");
return $retVal;
}
/*
* This method handles the <contact>...</contact> element.
*/
function &get_contact_handler(& $attributes) {
$retVal = new SimplePropertyHandler($this->candidate, "contact");
return $retVal;
}
/*
* This method handles the <image>...</image> element.
*/
function &get_image_handler(& $attributes) {
$retVal = new SimplePropertyHandler($this->candidate, "image");
return $retVal;
}
/*
* This method handles the <vision>...</vision> element.
*/
function &get_vision_handler(& $attributes) {
$retVal = new SimplePropertyHandler($this->candidate, "vision");
return $retVal;
}
/*
* This method handles the <bio>...</bio> element.
*/
function &get_bio_handler(& $attributes) {
$retVal = new SimplePropertyHandler($this->candidate, "bio");
return $retVal;
}
/*
* This method handles the <affiliation>...</affiliation> element.
*/
function &get_affiliation_handler(& $attributes) {
$retVal = new SimplePropertyHandler($this->candidate, "affiliation");
return $retVal;
}
/*
* This method handles the <affiliation>...</affiliation> element.
*/
function &get_eclipse_affiliation_handler(& $attributes) {
$retVal = new SimplePropertyHandler($this->candidate, "eclipse_affiliation");
return $retVal;
}
}