| <?php |
| /******************************************************************************* |
| * Copyright (c) 2016 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 |
| *******************************************************************************/ |
| |
| require_once dirname(__FILE__) . '/Forge.class.inc'; |
| |
| // This file assumes that the $App variable has been defined. |
| |
| function allTrademarksDo($function) { |
| simrelTrademarksDo($function); |
| projectTrademarksDo($function); |
| productTrademarksDo($function); |
| } |
| |
| // function registeredTrademarksDo($function) { |
| // $function('eclipse', 'Eclipse'); |
| // $function('polarsys', 'PolarSys'); |
| // $function('rt.jetty', 'Jetty'); |
| // } |
| |
| function simrelTrademarksDo($function, $key='simrel') { |
| global $App; |
| |
| $sql = "select name from Simrel order by start desc"; |
| |
| $result = $App->dashboard_sql($sql); |
| while ($row = mysql_fetch_assoc($result)) { |
| $id = $row['name']; |
| normalizedTrademarksDo($function, "{$key}.$id", ucwords($id), 'Eclipse', "http://projects.eclipse.org/releases/$id"); |
| } |
| } |
| |
| function productTrademarksDo($function) { |
| normalizedTrademarksDo($function, 'product.zest', 'Zest', 'Eclipse', "/gef/zest/"); |
| normalizedTrademarksDo($function, 'modeling.emf.emf', 'Ecore', 'Eclipse', "https://wiki.eclipse.org/Ecore"); |
| } |
| |
| function projectTrademarksDo($function) { |
| global $App; |
| |
| $sql = " |
| select ProjectId as id, name |
| from Projects |
| where |
| not IsComponent |
| and ParentProjectId not in ('foundation-internal') |
| order by id"; |
| |
| $result = $App->foundation_sql($sql); |
| while ($row = mysql_fetch_assoc($result)) { |
| $id = $row['id']; |
| if (shouldSkipProjectTrademark($id)) continue; |
| |
| $name = $row['name']; |
| $forge = Forge::getForgeForProjectId($id); |
| |
| if (!$forge) continue; |
| |
| $url = "/projects/project.php?id=$id"; |
| |
| /* |
| * If the name includes something in parentheses, then assume |
| * that something is a nickname or alternative name. Or, if there |
| * are two names separated by <space><dash><space>, treat them |
| * as separate names. |
| */ |
| if (preg_match('/^([^\\(]+)\s\\(([^\\)]+)\\)/', $name, $matches)) { |
| normalizedTrademarksDo($function, $id, $matches[1], $forge->getName(), $url); |
| normalizedTrademarksDo($function, $id, $matches[2], $forge->getName(), $url); |
| } elseif (preg_match('/^([^-]*)\s\\-\s([^-]*)$/', $name, $matches)) { |
| normalizedTrademarksDo($function, $id, $matches[1], $forge->getName(), $url); |
| normalizedTrademarksDo($function, $id, $matches[2], $forge->getName(), $url); |
| } else { |
| normalizedTrademarksDo($function, $id, $name, $forge->getName(), $url); |
| } |
| } |
| } |
| |
| /** |
| * This function answers whether or not we should skip a particular |
| * project trademark. Generally, most of the entries that we should |
| * skip are old, so this list shouldn't change too much over time. |
| * |
| * TODO Sort out a means of ignoring via database data. |
| * |
| * @param string $id |
| * @return boolean |
| */ |
| function shouldSkipProjectTrademark($id) { |
| switch ($id) { |
| case 'galileo' : |
| case 'polarsys' : |
| case 'locationtech' : |
| case 'technology.soc' : |
| |
| // TODO Need a better means of identifying moved projects |
| |
| // Moved to technology.athena |
| case 'technology.soc.athena' : |
| case 'technology.dash.athena' : |
| |
| // Moved to rt.equinox |
| case 'eclipse.equinox' : |
| case 'eclipse.equinox.bundles' : |
| case 'eclipse.equinox.p2' : |
| case 'eclipse.equinox.framework' : |
| case 'eclipse.equinox.incubator' : |
| case 'eclipse.incubator.equinox' : |
| |
| // Moved to eclipse.e4 |
| case 'eclipse.incubator.e4' : |
| return true; |
| } |
| return false; |
| } |
| |
| function normalizedTrademarksDo($function, $id, $term, $forge, $url) { |
| $term = trim($term); |
| if (empty($term)) return; |
| $term = preg_replace('/\s?\\[[^\\]]*\\]/','', $term); |
| if (!preg_match("/(?:$forge|Eclipse)/", $term)) { |
| $function($id, "$forge $term", $url); |
| } |
| $function($id, $term, $url); |
| } |
| |
| |
| |
| ?> |