blob: f7eead12909e2032be58e12e54b1811ae5274202 [file] [log] [blame]
<?php
/*******************************************************************************
* Copyright (c) 2006 Eclipse Foundation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Denis Roy (Eclipse Foundation)- initial API and implementation
* Nathan Gervais (Eclipse Foundation) - Expanded new fields being added
*******************************************************************************/
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/classes/drops/drop.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/classes/projects/project.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/smartconnection.class.php");
//require_once("/home/data/httpd/eclipse-php-classes/system/dbconnection.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
class ProjectList {
#*****************************************************************************
#
# projectList.class.php
#
# Author: Denis Roy
# Date: 2004-11-16
#
# Description: Functions and modules related Lists of projects
#
# HISTORY:
#
#*****************************************************************************
var $list = array();
function getList() {
return $this->$list;
}
function setList($_list) {
$this->list = $_list;
}
function add($_project) {
$this->list[count($this->list)] = $_project;
}
function getCount() {
return count($this->list);
}
function getItemAt($_pos) {
if($_pos < $this->getCount()) {
return $this->list[$_pos];
}
}
function selectProjectList($_project_id, $_name, $_level, $_parent_project_id, $_description, $_order_by, $_is_project = 0) {
$App = new App();
$WHERE = " PRJ.is_active = 1";
if($_project_id != "") {
$WHERE = $App->addAndIfNotNull($WHERE);
$WHERE .= " PRJ.project_id = " . $App->returnQuotedString($_project_id);
}
if($_name != "") {
$WHERE = $App->addAndIfNotNull($WHERE);
$WHERE .= " PRJ.name LIKE " . $App->returnQuotedString("%" . $_name . "%");
}
if($_level > 0) {
$WHERE = $App->addAndIfNotNull($WHERE);
$WHERE .= " PRJ.level = " . $_level;
}
if($_parent_project_id != "") {
$WHERE = $App->addAndIfNotNull($WHERE);
$WHERE .= " PRJ.parent_project_id = " . $App->returnQuotedString($_parent_project_id);
}
if($_description != "") {
$WHERE = $App->addAndIfNotNull($WHERE);
$WHERE .= " PRJ.description LIKE " . $App->returnQuotedString("%" . $_description . "%");
}
if ($_is_project != 0)
{
$WHERE = $App->addAndIfNotNull($WHERE);
$WHERE .= " PRJ.is_project = " . $_is_project;
}
if($WHERE != "") {
$WHERE = " WHERE " . $WHERE;
}
if($_order_by == "") {
$_order_by = "PRJ.name";
}
$_order_by = " ORDER BY " . $_order_by;
$dbc = new DBConnection();
$dbh = $dbc->connect();
$sql = "SELECT
PRJ.project_id,
PRJ.name,
PRJ.level,
PRJ.parent_project_id,
PRJ.description,
PRJ.url_download,
PRJ.url_index,
PRJ.is_topframe,
PRJ.sort_order,
PRJ.is_active,
PRJ.url_newsgroup,
PRJ.url_mailinglist,
PRJ.url_wiki,
PRJ.url_docs,
PRJ.is_project
FROM
projects AS PRJ "
. $WHERE
. $_order_by;
# echo $sql;
$result = mysql_query($sql, $dbh);
while($myrow = mysql_fetch_array($result))
{
$Project = new Project();
$Project->setProjectID ($myrow["project_id"]);
$Project->setName ($myrow["name"]);
$Project->setLevel ($myrow["level"]);
$Project->setParentProjectID($myrow["parent_project_id"]);
$Project->setDescription ($myrow["description"]);
$Project->setUrlDownload ($myrow["url_download"]);
$Project->setUrlIndex ($myrow["url_index"]);
$Project->setIsTopframe ($myrow["is_topframe"]);
$Project->setSortOrder ($myrow["sort_order"]);
$Project->setIsActive ($myrow["is_active"]);
$Project->setUrlNewsgroup ($myrow["url_newsgroup"]);
$Project->setUrlMailingList($myrow["url_mailinglist"]);
$Project->setUrlWiki ($myrow["url_wiki"]);
$Project->setUrlDocs ($myrow["url_docs"]);
$Project->setIsProject ($myrow["is_project"]);
$this->add($Project);
}
$dbc->disconnect();
$dbh = null;
$dbc = null;
$result = null;
$myrow = null;
}
}
?>