Check-in [8a9ff4b69d]
Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Move tags handling into separate tags:: module. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
8a9ff4b69da1b87d5470f67515f643a4 |
User & Date: | mario 2014-07-23 19:41:48 |
Context
2014-07-23
| ||
19:42 | Move /submit form into template/submit_* and introduce project imports (DOAP, JSON, PKG-INFO, freecode) check-in: 7c4b578abe user: mario tags: trunk | |
19:41 | Move tags handling into separate tags:: module. check-in: 8a9ff4b69d user: mario tags: trunk | |
2014-07-21
| ||
12:26 | updated autoloader map check-in: 458de713c4 user: mario tags: trunk | |
Changes
Changes to aux.php.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php /** * api: freshmeat * title: template auxiliary code * description: A few utility functions and data for the templates * version: 0.5 * license: AGPL * * This function asortment prepares some common output. * While a few are parsing helpers or DB query shortcuts. * */ | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php /** * api: freshmeat * title: template auxiliary code * description: A few utility functions and data for the templates * version: 0.5 * license: AGPL * * This function asortment prepares some common output. * While a few are parsing helpers or DB query shortcuts. * */ #-- Additional input filters // Project names may be alphanumeric, and contain dashes function proj_name($s) { |
︙ | ︙ | |||
288 289 290 291 292 293 294 | $store[$id] = time() + 3600; // timeout return "<input type=hidden name=.ct value=$id>"; } } | > > | > | 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 | $store[$id] = time() + 3600; // timeout return "<input type=hidden name=.ct value=$id>"; } } #-- Some string parsing /** * Plain comma-separated list * */ function p_csv($str) { return preg_split("/\s*,\s*/", trim($str)); } /** * Extracts key = value list. * Keys may be wrapped in $, % or [] * Values may not contain spaces * */ |
︙ | ︙ | |||
319 320 321 322 323 324 325 | @imsx", $str, $m ); return array_change_key_case(array_combine($m[1], $m[2]), CASE_LOWER); } | < < < < < < < < < | 241 242 243 244 245 246 247 248 249 250 | @imsx", $str, $m ); return array_change_key_case(array_combine($m[1], $m[2]), CASE_LOWER); } ?> |
Added tags.php.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | <?php /** * API: freshcode * title: Tags and Trove * description: Provides categorization backend for tree-mapped tags and Trove grouping. * version: 0.1 * type: library * category: taxonomy * doc: http://fossil.include-once.org/freshcode/wiki/Trove+map * license: mixed * * This module provides major tags in a tree, which serves as base for trove categories. * * → Still permits free-form tags. * → Provides for aliasing. * → Only major topic tags end up in trove tree. * → Allows to map licenses from and to tags. * → Handles some HTML and JS output. * * */ /** * Foremost bundles static arrays for tags. * * @static * @dataProvider map * */ class Tags { /** * License monikers and full names. * */ static public $licenses = [ "" => "Unspecified", "Apache" => "Apache License 2.0", "Artistic" => "Artistic license 2.0", "BSDL" => "BSD 3-Clause 'New/Revised' License", "BSDL-2" => "BSD 2-Clause 'Simplified/FreeBSD' License", "CDDL" => "Common Development and Distribution License 1.0", "MITL" => "MIT license", "MPL" => "Mozilla Public License 2.0", "Public Domain" => "Public Domain (no copyright)", "Python" => "Python License", "PHPL" => "PHP License 3.0", "GNU GPL" => "GNU General Public License 2.0", "GNU GPLv3" => "GNU General Public License 3.0", "GNU LGPL" => "GNU Library/Lesser General Public License 2.1", "GNU LGPLv3" => "GNU Library/Lesser General Public License 3.0", "Affero GPL" => "Affero GNU Public License 2.0", "Affero GPLv3" => "GNU Affero General Public License v3", "AFL" => "Academic Free License 3.0", "APL" => "Adaptive Public License", "APSL" => "Apple Public Source License", "AAL" => "Attribution Assurance Licenses", "BSL" => "Boost Software License", "CECILL" => "CeCILL License 2.1", "CATOSL" => "Computer Associates Trusted Open Source License 1.1", "CDDL" => "Common Development and Distribution License 1.0", "CPAL" => "Common Public Attribution License 1.0", "CUA" => "CUA Office Public License Version 1.0", "EUDatagrid" => "EU DataGrid Software License", "EPL" => "Eclipse Public License 1.0", "ECL" => "Educational Community License, Version 2.0", "EFL" => "Eiffel Forum License V2.0", "Entessa" => "Entessa Public License", "EUPL" => "European Union Public License, Version 1.1 (EUPL-1.1)", "Fair" => "Fair License", "Frameworx" => "Frameworx License", "HPND" => "Historical Permission Notice and Disclaimer", "IPL" => "IBM Public License 1.0", "IPA" => "IPA Font License", "ISC" => "ISC License", "LPPL" => "LaTeX Project Public License 1.3c", "LPL" => "Lucent Public License Version 1.02", "MirOS" => "MirOS Licence", "MS" => "Microsoft Reciprocal License", "MIT" => "MIT license", "Motosoto" => "Motosoto License", "Multics" => "Multics License", "NASA" => "NASA Open Source Agreement 1.3", "NTP" => "NTP License", "Naumen" => "Naumen Public License", "NGPL" => "Nethack General Public License", "Nokia" => "Nokia Open Source License", "NPOSL" => "Non-Profit Open Software License 3.0", "OCLC" => "OCLC Research Public License 2.0", "OFL" => "Open Font License 1.1", "OGTSL" => "Open Group Test Suite License", "OSL" => "Open Software License 3.0", "PostgreSQL" => "The PostgreSQL License", "CNRI" => "CNRI Python license (CNRI-Python)", "QPL" => "Q Public License", "RPSL" => "RealNetworks Public Source License V1.0", "RPL" => "Reciprocal Public License 1.5", "RSCPL" => "Ricoh Source Code Public License", "SimPL" => "Simple Public License 2.0", "Sleepycat" => "Sleepycat License", "SPL" => "Sun Public License 1.0", "Watcom" => "Sybase Open Watcom Public License 1.0", "NCSA" => "University of Illinois/NCSA Open Source License", "VSL" => "Vovida Software License v. 1.0", "W3C" => "W3C License", "WXwindows" => "wxWindows Library License", "Xnet" => "X.Net License", "ZPL" => "Zope Public License 2.0", "Zlib" => "zlib/libpng license", "Other" => "Other License", "Mixed" => "Multiple Licenses", ]; // todo: Dicuss entry for Commercial/Proprietary code anyhow. // hint: Separation usually works better than prohibition. // (Filtering instead of cleanups) /** * Tag aliases. * */ static public $alias = [ "email" => "e-mail", ]; /** * Tag tree. * */ static public $tree = [ ]; /** * Try to map SPDX.org names onto our license tags, * or find entry in long description; * */ function map_license($id) { // exact find if (isset(tags::$licenses[$id])) { return $id; } // partial matches if (preg_match_all("/\d+.\d+|\w+/", $id, $p) and ($p = $p[0]) and (preg_grep("/$p[0].+$p[1]/", tags::$licenses, $match) or preg_grep("/$p[0]/", tags::$licenses, $match))) { return key($match); } } /** * Get leaves from Trove categories * */ function trove_to_tags($array, $tags="") { foreach (preg_grep("/^Topic :: .+ :: \w+$/", $array) as $trove) { $tags .= ", " . trim(strrchr($trove, ":"), ": "); } return $tags; } } ?> |