| <?php | |
| /******************************************************************************* | |
| * Copyright (c) 2010 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: | |
| * Wayne Beaton (Eclipse Foundation)- initial API and implementation | |
| *******************************************************************************/ | |
| /* | |
| * This script returns--in XML format--information about reviews. | |
| * | |
| * The following parameters can be used: | |
| * | |
| * date | |
| * Include only information about reviews occurring on this date. This | |
| * parameter is optional; if it is specified, it overrides the value of | |
| * the 'start' parameter. | |
| * | |
| * start | |
| * The start date; information for all reviews from this date forward are | |
| * included in the results. The 'date' parameter overrides this value. If | |
| * neither the 'date' nor the 'start' field are specified, the script | |
| * will report on those reviews that occur from the future date forward. | |
| * | |
| * name | |
| * Name of the review. The text provided is used to attempt a partial match | |
| * on the name of the review. More specifically, the name is used in an SQL | |
| * "like" statement. | |
| * | |
| * test | |
| * Include this parameter if you want to include some test data in the output; | |
| * handy if you're testing locally and just want to have some data to play with. | |
| * | |
| * Example: | |
| * http://www.eclipse.org/projects/xml/review_status.php?name=Helios | |
| * | |
| * returns something along the lines of: | |
| * | |
| * <review-status start-date="2010-05-26" review-name="Helios"> | |
| * <review name="Helios Release" projectid="soa.jwt" iplog="" posted="" slides=""/> | |
| * <review name="Helios Graduation/Release" projectid="dsdp.sequoyah" iplog="" posted="" slides=""/> | |
| * </review-status> | |
| * | |
| * Note that only review entries that have a date explicitly set will be included in | |
| * the response. This information is all set in the Foundation Portal. | |
| */ | |
| header("Content-type: text/xml"); | |
| header("Content-Disposition: inline; filename=reviews.xml"); | |
| echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; | |
| require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); | |
| if (!isset($App)) $App = new App(); | |
| $reviewDate = $App->getHttpParameter('date'); | |
| if ($reviewDate) { | |
| $reviewDate = strtotime($reviewDate); | |
| $reviewDate = date('Y-m-d', $reviewDate); | |
| } | |
| $startDate = $App->getHttpParameter('start'); | |
| if (!$startDate) $startDate = strtotime('now'); | |
| $startDate = date('Y-m-d', $startDate); | |
| $reviewName = $App->getHttpParameter('name'); | |
| $reviewName = $App->sqlSanitize($reviewName); | |
| $testing = $App->getHttpParameter('test'); | |
| $sql = "SELECT distinct | |
| r.ProjectName, r.ProjectId, | |
| r.ReviewName, r.SlidesURL, r.IPLogURL, | |
| iplog.value as IPLogDate, | |
| docuware.value as DocuwareDate | |
| FROM | |
| ProjectReviews as r | |
| left join ProjectReviewStatus as iplog on (r.id = iplog.id and iplog.Status = 'Legal Review Requested') | |
| left join ProjectReviewStatus as docuware on (r.id = docuware.id and docuware.Status = 'Slides Posted') | |
| WHERE 1=1"; | |
| $summary = ''; | |
| //if ($reviewDate) { | |
| // $sql .= " and ReviewDate = '$reviewDate'"; | |
| // $summary .= " review-date=\"$reviewDate\""; | |
| //} else { | |
| // $sql .= " and ReviewDate > '$startDate'"; | |
| // $summary .= " start-date=\"$startDate\""; | |
| //} | |
| if ($reviewName) { | |
| $sql .= " and reviewName like '%$reviewName%'"; | |
| $summary .= " review-name=\"$reviewName\""; | |
| } else { | |
| $sql .= " and reviewName is not null"; | |
| } | |
| echo "<!-- \n$sql\n-->"; | |
| $result = $App->foundation_sql($sql); | |
| echo "<review-status $summary>"; | |
| if ($test) | |
| echo "<review name=\"Bogus\" projectid=\"technology.bogus\" iplog=\"http://www.place.com\" posted=\"2010-10-10\" slides=\"http://slides.url.com\"/>"; | |
| while ($row = mysql_fetch_assoc($result)) { | |
| $id = $row['ProjectId']; | |
| $iplog_url = $row['IPLogURL']; | |
| $iplog_date = $row['IPLogDate']; | |
| $docuware_url = $row['SlidesURL']; | |
| $docuware_date = $row['DocuwareDate']; | |
| $review_name = $row['ReviewName']; | |
| echo "<review name=\"$review_name\" projectid=\"$id\" iplog=\"$iplog_url\" iplog-date=\"$iplog_date\" docuware=\"$docuware_url\" docuware-date=\"$docuware_date\"/>"; | |
| } | |
| echo "</review-status>"; | |
| ?> |