| <?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>"; |
| |
| ?> |