Index: tags/extensions/SemanticCalendar/REL_0_2_9/INSTALL |
— | — | @@ -0,0 +1,35 @@ |
| 2 | +[[Semantic Calendar 0.2.9]] |
| 3 | + |
| 4 | +Contents: |
| 5 | +* Disclaimer |
| 6 | +* Requirements |
| 7 | +* Installation |
| 8 | +* Contact |
| 9 | + |
| 10 | +== Disclaimer == |
| 11 | + |
| 12 | +Semantic Calendar is a new extension, and there is no |
| 13 | +guarantee that any of it will work on your system. However, it does |
| 14 | +not make any modifications to the database, so it should be a |
| 15 | +low-risk installation. |
| 16 | + |
| 17 | +For a proper legal disclaimer, see the file "COPYING". |
| 18 | + |
| 19 | +== Requirements == |
| 20 | + |
| 21 | +The extension requires an install of Semantic MediaWiki 0.6 or |
| 22 | +greater. For more details, see Semantic MediaWiki's own |
| 23 | +installation requirements. |
| 24 | + |
| 25 | +== Installation == |
| 26 | + |
| 27 | +(1) Extract the archive to obtain the directory "SemanticCalendar" |
| 28 | + that contains all relevant files. Copy this directory (or |
| 29 | + extract/download it) to "[wikipath]/extensions/". |
| 30 | +(2) Insert the following line into the file "[wikipath]/LocalSettings.php": |
| 31 | + include_once('extensions/SemanticCalendar/includes/SC_Settings.php'); |
| 32 | + |
| 33 | +== Contact == |
| 34 | + |
| 35 | +If you have any issues or questions, please send them to |
| 36 | +yaron57@gmail.com. |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/INSTALL |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 37 | + native |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/includes/SC_ParserFunctions.php |
— | — | @@ -0,0 +1,276 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Parser functions for Semantic Calendar. |
| 5 | + * |
| 6 | + * There is currently one parser function defined: 'semantic_calendar'. |
| 7 | + * |
| 8 | + * 'semantic_calendar' is called as: |
| 9 | + * |
| 10 | + * {{#semantic_calendar:date property|query filters}} |
| 11 | + * |
| 12 | + * This function returns HTML that displays a monthly calendar, showing |
| 13 | + * the titles of pages based on their semantic date information. The |
| 14 | + * calendar allows a user to navigate to any month; the default the |
| 15 | + * calenda displays the current month and year. The calendar does not |
| 16 | + * include any links for adding new events; those can be placed separately, |
| 17 | + * including above or below the calendar (the Semantic Forms extension is |
| 18 | + * recommended for this purpose. |
| 19 | + * |
| 20 | + * The first argument, 'date property', is mandatory: it is the name of |
| 21 | + * the semantic date property that is to be queried on. The 'query filters' |
| 22 | + * argument is optional: it is a list of semantic properties and their |
| 23 | + * values, used to provide further constraints on the set of returned |
| 24 | + * values, in the manner of SMW's #ask function. |
| 25 | + * |
| 26 | + * Both of these arguments can be arrays, separated by semicolons, to |
| 27 | + * allow for multiple queries within the same calendar. The number of date |
| 28 | + * properties determines the number of queries: if more date properties |
| 29 | + * than query filters are passed in, the remaining date properties are |
| 30 | + * queried on without any filters, while if more query filters than |
| 31 | + * date properties are passed in, the remaining query filters are |
| 32 | + * ignored. |
| 33 | + * |
| 34 | + * Examples: |
| 35 | + * |
| 36 | + * To display a calendar that shows all pages by their value for the |
| 37 | + * property 'Has date', if they belong to the 'Accounting' department |
| 38 | + * and have an importance of 'High', you should call the following: |
| 39 | + * |
| 40 | + * {{#semantic_calendar:Has date|[[Belongs to department::Accounting]][[Has importance::High]]}} |
| 41 | + * |
| 42 | + * To display a calendar that shows all the previous dates, and also |
| 43 | + * show all pages of category 'Projects' by their value for 'Has |
| 44 | + * deadline', you should call the following: |
| 45 | + * |
| 46 | + * {{#semantic_calendar:Has date;Has deadline|[[Belongs to department::Accounting]][[Has importance::High]];[[Category:Projects]]}} |
| 47 | + * |
| 48 | + * @author Yaron Koren |
| 49 | + */ |
| 50 | + |
| 51 | +function scgRegisterParser( &$parser ) { |
| 52 | + $parser->setFunctionHook('semantic_calendar', 'scRenderSemanticCalendar'); |
| 53 | + return true; |
| 54 | +} |
| 55 | + |
| 56 | +function scgLanguageGetMagic( &$magicWords, $langCode = "en" ) { |
| 57 | + switch ( $langCode ) { |
| 58 | + default: |
| 59 | + $magicWords['semantic_calendar'] = array ( 0, 'semantic_calendar' ); |
| 60 | + } |
| 61 | + return true; |
| 62 | +} |
| 63 | + |
| 64 | +function intToMonth($int) { |
| 65 | + if ($int == '2') {return wfMsg('february'); } |
| 66 | + if ($int == '3') {return wfMsg('march'); } |
| 67 | + if ($int == '4') {return wfMsg('april'); } |
| 68 | + if ($int == '5') {return wfMsg('may'); } |
| 69 | + if ($int == '6') {return wfMsg('june'); } |
| 70 | + if ($int == '7') {return wfMsg('july'); } |
| 71 | + if ($int == '8') {return wfMsg('august'); } |
| 72 | + if ($int == '9') {return wfMsg('september'); } |
| 73 | + if ($int == '10') {return wfMsg('october'); } |
| 74 | + if ($int == '11') {return wfMsg('november'); } |
| 75 | + if ($int == '12') {return wfMsg('december'); } |
| 76 | + // keep it simple - if it's '1' or anything else, return January |
| 77 | + return wfMsg('january'); |
| 78 | +} |
| 79 | + |
| 80 | +function scRenderSemanticCalendar (&$parser, $inDatePropertiesStr = '', $inQueryFiltersStr = '') { |
| 81 | + global $wgOut, $scgScriptPath, $wgRequest; |
| 82 | + |
| 83 | + wfLoadExtensionMessages('SemanticCalendar'); |
| 84 | + $wgOut->addLink( array( |
| 85 | + 'rel' => 'stylesheet', |
| 86 | + 'type' => 'text/css', |
| 87 | + 'media' => "screen, print", |
| 88 | + 'href' => $scgScriptPath . "/skins/SC_main.css" |
| 89 | + )); |
| 90 | + |
| 91 | + // initialize some variables |
| 92 | + $text = ""; |
| 93 | + $title = $parser->getTitle(); |
| 94 | + $skin = $parser->getOptions()->getSkin(); |
| 95 | + $events = array(); |
| 96 | + $smw_version = SMW_VERSION; |
| 97 | + $date_properties = explode(";", $inDatePropertiesStr); |
| 98 | + $query_filters = explode(";", $inQueryFiltersStr); |
| 99 | + // cycle through the date properties, adding to each a query filter |
| 100 | + // when possible; excess query filters, if any exist, are ignored |
| 101 | + foreach ($date_properties as $i => $date_property) { |
| 102 | + if (count($query_filters) > $i) { |
| 103 | + $query_filter_str = $query_filters[$i]; |
| 104 | + } else { |
| 105 | + $query_filter_str = ""; |
| 106 | + } |
| 107 | + $events = array_merge($events, scfGetEvents($date_property, $query_filter_str)); |
| 108 | + } |
| 109 | + |
| 110 | + // get all the date-based values we need - the current month and year |
| 111 | + // (i.e., the one the user is looking at - not necessarily the |
| 112 | + // "current" ones), the previous and next months and years (same - |
| 113 | + // note that the previous or next month could be in a different year), |
| 114 | + // the number of days in the current, previous and next months, etc. |
| 115 | + $cur_month_num = date("n", mktime()); |
| 116 | + if ($wgRequest->getCheck('month')) { |
| 117 | + $query_month = $wgRequest->getVal('month'); |
| 118 | + if (is_numeric($query_month) && (intval($query_month) == $query_month) && $query_month >= 1 && $query_month <= 12) { |
| 119 | + $cur_month_num = $wgRequest->getVal('month'); |
| 120 | + } |
| 121 | + } |
| 122 | + $cur_month = intToMonth($cur_month_num); |
| 123 | + $cur_year = date("Y", mktime()); |
| 124 | + if ($wgRequest->getCheck('year')) { |
| 125 | + $query_year = $wgRequest->getVal('year'); |
| 126 | + if (is_numeric($query_year) && intval($query_year) == $query_year) { |
| 127 | + $cur_year = $wgRequest->getVal('year'); |
| 128 | + } |
| 129 | + } |
| 130 | + if ($cur_month_num == '1') { |
| 131 | + $prev_month_num = '12'; |
| 132 | + $prev_year = $cur_year - 1; |
| 133 | + } else { |
| 134 | + $prev_month_num = $cur_month_num - 1; |
| 135 | + $prev_year = $cur_year; |
| 136 | + } |
| 137 | + if ($cur_month_num == '12') { |
| 138 | + $next_month_num = '1'; |
| 139 | + $next_year = $cur_year + 1; |
| 140 | + } else { |
| 141 | + $next_month_num = $cur_month_num + 1; |
| 142 | + $next_year = $cur_year; |
| 143 | + } |
| 144 | + // there's no year '0' - change it to '1' or '-1' |
| 145 | + if ($cur_year == "0") {$cur_year = "1"; } |
| 146 | + if ($next_year == "0") {$next_year = "1"; } |
| 147 | + if ($prev_year == "0") {$prev_year = "-1"; } |
| 148 | + $prev_month_url = $title->getLocalURL("month=$prev_month_num&year=$prev_year"); |
| 149 | + $next_month_url = $title->getLocalURL("month=$next_month_num&year=$next_year"); |
| 150 | + $today_url = $title->getLocalURL(); |
| 151 | + $today_text = wfMsg('sc_today'); |
| 152 | + $prev_month_text = wfMsg('sc_previousmonth'); |
| 153 | + $next_month_text = wfMsg('sc_nextmonth'); |
| 154 | + $go_to_month_text = wfMsg('sc_gotomonth'); |
| 155 | + |
| 156 | + // get day of the week that the first of this month falls on |
| 157 | + $first_day = new SCHistoricalDate(); |
| 158 | + $first_day->create($cur_year, $cur_month_num, 1); |
| 159 | + $day_of_week_of_1 = $first_day->getDayOfWeek(); |
| 160 | + $start_day = 1 - $day_of_week_of_1; |
| 161 | + $days_in_prev_month = SCHistoricalDate::daysInMonth($prev_year, $prev_month_num); |
| 162 | + $days_in_cur_month = SCHistoricalDate::daysInMonth($cur_year, $cur_month_num); |
| 163 | + $today_string = date("Y n j", mktime()); |
| 164 | + $url_year = $wgRequest->getVal('year'); |
| 165 | + $title = $title->getPrefixedDbKey(); |
| 166 | + |
| 167 | + // create table for holding calendar, and the top (navigation) row |
| 168 | + $text .=<<<END |
| 169 | +<table class="navigation_table"> |
| 170 | +<tr> |
| 171 | +<td class="month_name">$cur_month $cur_year</td> |
| 172 | +<td class="nav_links"> |
| 173 | +<a href="$prev_month_url" title="$prev_month_text"><img src="$scgScriptPath/skins/images/left-arrow.png" border="0" /></a> |
| 174 | + |
| 175 | +<a href="$today_url">$today_text</a> |
| 176 | + |
| 177 | +<a href="$next_month_url" title="$next_month_text"><img src="$scgScriptPath/skins/images/right-arrow.png" border="0" /></a> |
| 178 | +</td> |
| 179 | +<td class="nav_form"> |
| 180 | +<form> |
| 181 | +<input type="hidden" name="title" value="$title"> |
| 182 | +<select name="month"> |
| 183 | + |
| 184 | +END; |
| 185 | + for ($i = 1; $i <= 12; $i++) { |
| 186 | + $month_name = intToMonth($i); |
| 187 | + $selected_str = ($i == $cur_month_num) ? "selected" : ""; |
| 188 | + $text .= "<option value=\"$i\" $selected_str>$month_name</option>\n"; |
| 189 | + } |
| 190 | + $text .=<<<END |
| 191 | +</select> |
| 192 | +<input name="year" type="text" value="$cur_year" size="4"> |
| 193 | +<input type="submit" value="$go_to_month_text"> |
| 194 | +</form> |
| 195 | +</td> |
| 196 | +</tr> |
| 197 | +</table> |
| 198 | + |
| 199 | +<table class="month_calendar"> |
| 200 | + |
| 201 | +END; |
| 202 | + // second row holds the calendar title and current month |
| 203 | + $text .=<<<END |
| 204 | +<tr class="weekdays"> |
| 205 | + |
| 206 | +END; |
| 207 | + |
| 208 | + // third row holds the days of the week |
| 209 | + $week_days = array(wfMsg('sunday'), wfMsg('monday'), wfMsg('tuesday'), wfMsg('wednesday'), wfMsg('thursday'), wfMsg('friday'), wfMsg('saturday')); |
| 210 | + foreach ($week_days as $week_day) { |
| 211 | + $text .= "<td>$week_day</td>"; |
| 212 | + } |
| 213 | + $text .= "</tr>\n"; |
| 214 | + |
| 215 | + // now, create the calendar itself - |
| 216 | + // loop through a set of weeks, from a Sunday (which might be |
| 217 | + // before the beginning of the month) to a Saturday (which might |
| 218 | + // be after the end of the month) |
| 219 | + $day_of_the_week = 1; |
| 220 | + $is_last_week = false; |
| 221 | + for ($day = $start_day; (! $is_last_week || $day_of_the_week != 1); $day++) { |
| 222 | + if ($day_of_the_week == 1) { |
| 223 | + $text .= "<tr>\n"; |
| 224 | + } |
| 225 | + if ("$cur_year $cur_month_num $day" == $today_string) { |
| 226 | + $text .= "<td class=\"today\">\n"; |
| 227 | + } elseif ($day_of_the_week == 1 || $day_of_the_week == 7) { |
| 228 | + $text .= "<td class=\"weekend_day\">\n"; |
| 229 | + } else { |
| 230 | + $text .= "<td>\n"; |
| 231 | + } |
| 232 | + if ($day == $days_in_cur_month || $day > 50) {$is_last_week = true; } |
| 233 | + // if this day is before or after the current month, set a |
| 234 | + // "display day" to show on the calendar, and use a different |
| 235 | + // CSS style for it |
| 236 | + if ($day > $days_in_cur_month || $day < 1) { |
| 237 | + if ($day < 1) { |
| 238 | + $display_day = $day + $days_in_prev_month; |
| 239 | + $date_str = "$prev_year-" . $prev_month_num . "-" . $display_day; |
| 240 | + } |
| 241 | + if ($day > $days_in_cur_month) { |
| 242 | + $display_day = $day - $days_in_cur_month; |
| 243 | + $date_str = "$next_year-" . $next_month_num . "-" . $display_day; |
| 244 | + } |
| 245 | + $text .= "<div class=\"day day_other_month\">$display_day</div>\n"; |
| 246 | + } else { |
| 247 | + $date_str = "$cur_year-" . $cur_month_num . "-" . $day; |
| 248 | + $text .= "<div class=\"day\">$day</div>\n"; |
| 249 | + } |
| 250 | + // finally, the most important step - get the events that |
| 251 | + // match this date, and the given set of criteria, and |
| 252 | + // display them in this date's box |
| 253 | + $text .= "<div class=\"main\">\n"; |
| 254 | + foreach ($events as $event_pair) { |
| 255 | + list($event_title, $event_date) = $event_pair; |
| 256 | + if ($event_date == $date_str) { |
| 257 | + $text .= $skin->makeLinkObj($event_title, str_replace('_', ' ', $event_title->getPrefixedDbKey())); |
| 258 | + $text .= "\n\n"; |
| 259 | + } |
| 260 | + } |
| 261 | + $text .=<<<END |
| 262 | +</div> |
| 263 | +</td> |
| 264 | + |
| 265 | +END; |
| 266 | + if ($day_of_the_week == 7) { |
| 267 | + $text .= "</tr>\n"; |
| 268 | + $day_of_the_week = 1; |
| 269 | + } else { |
| 270 | + $day_of_the_week++; |
| 271 | + } |
| 272 | + } |
| 273 | + |
| 274 | + $text .= "</table>\n"; |
| 275 | + |
| 276 | + return array($text, 'noparse' => 'true', 'isHTML' => 'true'); |
| 277 | +} |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/includes/SC_ParserFunctions.php |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 278 | + native |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/includes/SC_GlobalFunctions.php |
— | — | @@ -0,0 +1,134 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Global functions and constants for Semantic Calendar |
| 5 | + * |
| 6 | + * @author Yaron Koren |
| 7 | + */ |
| 8 | + |
| 9 | +if (!defined('MEDIAWIKI')) die(); |
| 10 | + |
| 11 | +define('SC_VERSION','0.2.9'); |
| 12 | + |
| 13 | +$wgExtensionCredits['parserhook'][]= array( |
| 14 | + 'path' => __FILE__, |
| 15 | + 'name' => 'Semantic Calendar', |
| 16 | + 'version' => SC_VERSION, |
| 17 | + 'author' => 'Yaron Koren', |
| 18 | + 'url' => 'http://www.mediawiki.org/wiki/Extension:Semantic_Calendar', |
| 19 | + 'description' => 'A calendar that displays semantic date information', |
| 20 | + 'descriptionmsg' => 'sc_desc', |
| 21 | +); |
| 22 | + |
| 23 | +$wgHooks['ParserFirstCallInit'][] = 'scgRegisterParser'; |
| 24 | +$wgHooks['LanguageGetMagic'][] = 'scgLanguageGetMagic'; |
| 25 | + |
| 26 | +require_once($scgIP . '/includes/SC_ParserFunctions.php'); |
| 27 | +$wgAutoloadClasses['SCHistoricalDate'] = $scgIP . '/includes/SC_HistoricalDate.php'; |
| 28 | +require_once($scgIP . '/languages/SC_Language.php'); |
| 29 | + |
| 30 | +$wgExtensionMessagesFiles['SemanticCalendar'] = $scgIP . '/languages/SC_Messages.php'; |
| 31 | + |
| 32 | +/**********************************************/ |
| 33 | +/***** namespace settings *****/ |
| 34 | +/**********************************************/ |
| 35 | + |
| 36 | +/**********************************************/ |
| 37 | +/***** language settings *****/ |
| 38 | +/**********************************************/ |
| 39 | + |
| 40 | +/** |
| 41 | + * Initialise a global language object for content language. This |
| 42 | + * must happen early on, even before user language is known, to |
| 43 | + * determine labels for additional namespaces. In contrast, messages |
| 44 | + * can be initialised much later when they are actually needed. |
| 45 | + */ |
| 46 | +function scfInitContentLanguage($langcode) { |
| 47 | + global $scgIP, $scgContLang; |
| 48 | + |
| 49 | + if (!empty($scgContLang)) { return; } |
| 50 | + |
| 51 | + $scContLangClass = 'SC_Language' . str_replace( '-', '_', ucfirst( $langcode ) ); |
| 52 | + |
| 53 | + if (file_exists($scgIP . '/languages/'. $scContLangClass . '.php')) { |
| 54 | + include_once( $scgIP . '/languages/'. $scContLangClass . '.php' ); |
| 55 | + } |
| 56 | + |
| 57 | + // fallback if language not supported |
| 58 | + if ( !class_exists($scContLangClass)) { |
| 59 | + include_once($scgIP . '/languages/SC_LanguageEn.php'); |
| 60 | + $scContLangClass = 'SC_LanguageEn'; |
| 61 | + } |
| 62 | + |
| 63 | + $scgContLang = new $scContLangClass(); |
| 64 | +} |
| 65 | + |
| 66 | +/** |
| 67 | + * Initialize the global language object for user language. This |
| 68 | + * must happen after the content language was initialised, since |
| 69 | + * this language is used as a fallback. |
| 70 | + */ |
| 71 | +function scfInitUserLanguage($langcode) { |
| 72 | + global $scgIP, $scgLang; |
| 73 | + |
| 74 | + if (!empty($scgLang)) { return; } |
| 75 | + |
| 76 | + $scLangClass = 'SC_Language' . str_replace( '-', '_', ucfirst( $langcode ) ); |
| 77 | + if (file_exists($scgIP . '/languages/'. $scLangClass . '.php')) { |
| 78 | + include_once( $scgIP . '/languages/'. $scLangClass . '.php' ); |
| 79 | + } |
| 80 | + |
| 81 | + // fallback if language not supported |
| 82 | + if ( !class_exists($scLangClass)) { |
| 83 | + global $scgContLang; |
| 84 | + $scgLang = $scgContLang; |
| 85 | + } else { |
| 86 | + $scgLang = new $scLangClass(); |
| 87 | + } |
| 88 | +} |
| 89 | + |
| 90 | +/**********************************************/ |
| 91 | +/***** other global helpers *****/ |
| 92 | +/**********************************************/ |
| 93 | + |
| 94 | +function scfGetEvents($date_property, $filter_query) { |
| 95 | + global $smwgIP; |
| 96 | + include_once($smwgIP . "/includes/SMW_QueryProcessor.php"); |
| 97 | + $events = array(); |
| 98 | + // some changes were made to querying in SMW 1.2 |
| 99 | + $smw_version = SMW_VERSION; |
| 100 | + if (version_compare(SMW_VERSION, '1.2', '>=' ) || |
| 101 | + substr($smw_version, 0, 3) == '1.2') { // temporary hack |
| 102 | + $query_string = "[[$date_property::+]]$filter_query"; |
| 103 | + } else { |
| 104 | + $query_string = "[[$date_property::*]][[$date_property::+]]$filter_query"; |
| 105 | + } |
| 106 | + // set a limit sufficiently close to infinity |
| 107 | + $params = array('limit' => 100000); |
| 108 | + $inline = false; |
| 109 | + $format = 'auto'; |
| 110 | + $printlabel = ""; |
| 111 | + $printouts = array(); |
| 112 | + if (class_exists('SMWPropertyValue')) { // SMW 1.4 |
| 113 | + $printouts[] = new SMWPrintRequest(SMWPrintRequest::PRINT_PROP, $printlabel, SMWPropertyValue::makeProperty($date_property)); |
| 114 | + } elseif (version_compare(SMW_VERSION, '1.2', '>=' ) || |
| 115 | + substr($smw_version, 0, 3) == '1.2') { // temporary hack |
| 116 | + $printouts[] = new SMWPrintRequest(SMWPrintRequest::PRINT_PROP, $printlabel, Title::newFromText($date_property, SMW_NS_PROPERTY)); |
| 117 | + } else { |
| 118 | + $printouts[] = new SMWPrintRequest(SMW_PRINT_THIS, $printlabel); |
| 119 | + } |
| 120 | + $query = SMWQueryProcessor::createQuery($query_string, $params, $inline, $format, $printouts); |
| 121 | + $results = smwfGetStore()->getQueryResult($query); |
| 122 | + while ($row = $results->getNext()) { |
| 123 | + $event_names = $row[0]; |
| 124 | + $event_dates = $row[1]; |
| 125 | + $event_title = $event_names->getNextObject()->getTitle(); |
| 126 | + while ($event_date = $event_dates->getNextObject()) { |
| 127 | + if (method_exists('SMWTimeValue', 'getYear')) // SMW 1.4 |
| 128 | + $actual_date = $event_date->getYear() . '-' . $event_date->getMonth() . '-' . $event_date->getDay(); |
| 129 | + else |
| 130 | + $actual_date = date("Y-n-j", $event_date->getNumericValue()); |
| 131 | + $events[] = array($event_title, $actual_date); |
| 132 | + } |
| 133 | + } |
| 134 | + return $events; |
| 135 | +} |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/includes/SC_GlobalFunctions.php |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 136 | + native |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/includes/SC_HistoricalDate.php |
— | — | @@ -0,0 +1,92 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +/** |
| 5 | + * SC_HistoricalDate.php |
| 6 | + * |
| 7 | + * This code is lifted from Terry Hurlbut's 'SMW_DV_HxDate.php' class; |
| 8 | + * that code was itself adapted from the Fourmilab Calendar Converter |
| 9 | + * Javascripts by John Walker, who wrote them in 1999 and released them |
| 10 | + * to the public domain. |
| 11 | + * |
| 12 | + * The internal value, unlike that of the standard SMW Date type, is a |
| 13 | + * 64-bit PHP float. The characteristic gives the days since |
| 14 | + * the epoch. |
| 15 | + * |
| 16 | + * Technically, the Julian calendar is valid only beginning January 1, 45 BC, |
| 17 | + * when Julius Caesar established it as per a formal Senatus consultum. But |
| 18 | + * currently this is the only calendar currently projectible to earlier times; |
| 19 | + * therefore Julian dates are valid for any year in the Julian Period. |
| 20 | + * |
| 21 | + * @author Terry A. Hurlbut |
| 22 | + * @author Yaron Koren |
| 23 | + */ |
| 24 | +class SCHistoricalDate { |
| 25 | + |
| 26 | + const GREGORIAN_EPOCH = 1721425.5; // equivalent to 1 AD |
| 27 | + |
| 28 | + protected $m_date; // the Julian day |
| 29 | + |
| 30 | + function create($year, $month, $day) { |
| 31 | + if ($year < 1582 || |
| 32 | + ($year == 1582 && ($month < 10 || ($month == 10 && $day < 15)))) { |
| 33 | + $this->createFromJulian($year, $month, $day); |
| 34 | + } else { |
| 35 | + $this->createFromGregorian($year, $month, $day); |
| 36 | + } |
| 37 | + } |
| 38 | + |
| 39 | + static protected function leap_gregorian($year) { |
| 40 | + return (($year % 4) == 0) && (!((($year % 100) == 0) && (($year % 400) != 0))); |
| 41 | + } |
| 42 | + |
| 43 | + static protected function leap_julian($year) { |
| 44 | + return (($year % 4) == (($year > 0) ? 0 : 3)); |
| 45 | + } |
| 46 | + |
| 47 | + static protected function leap_jul_greg($year) { |
| 48 | + return (($year < 1582) ? SCHistoricalDate::leap_julian($year) : SCHistoricalDate::leap_gregorian($year)); |
| 49 | + } |
| 50 | + |
| 51 | + protected function createFromGregorian($year, $month, $day) { |
| 52 | + $this->m_date = (self::GREGORIAN_EPOCH - 1) + |
| 53 | + (365 * ($year - 1)) + |
| 54 | + floor(($year - 1) / 4) + |
| 55 | + (-floor(($year - 1) / 100)) + |
| 56 | + floor(($year - 1) / 400) + |
| 57 | + floor((((367 * $month) - 362) / 12) + |
| 58 | + (($month <= 2) ? 0 : |
| 59 | + (SCHistoricalDate::leap_gregorian($year) ? -1 : -2) |
| 60 | + ) + $day); |
| 61 | + } |
| 62 | + |
| 63 | + protected function createFromJulian($year, $month, $day) { |
| 64 | + |
| 65 | + /* Adjust negative common era years to the zero-based notation we use. */ |
| 66 | + if ($year < 1) { |
| 67 | + $year++; |
| 68 | + } |
| 69 | + |
| 70 | + /* Algorithm as given in Meeus, Astronomical Algorithms, Chapter 7, page 61 */ |
| 71 | + if ($month <= 2) { |
| 72 | + $year--; |
| 73 | + $month += 12; |
| 74 | + } |
| 75 | + |
| 76 | + $this->m_date = ((floor((365.25 * ($year + 4716))) + |
| 77 | + floor((30.6001 * ($month + 1))) + |
| 78 | + $day) - 1524.5); |
| 79 | + } |
| 80 | + |
| 81 | + public function getDayOfWeek() { |
| 82 | + return (floor($this->m_date + 1.5) % 7); |
| 83 | + } |
| 84 | + |
| 85 | + static function daysInMonth($year, $month) { |
| 86 | + if ($month == 4 || $month == 6 || $month == 9 || $month == 11) |
| 87 | + return 30; |
| 88 | + if ($month == 2) |
| 89 | + return (SCHistoricalDate::leap_jul_greg($year)) ? 29 : 28; |
| 90 | + return 31; |
| 91 | + } |
| 92 | + |
| 93 | +} |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/includes/SC_HistoricalDate.php |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 94 | + native |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/includes/SC_Settings.php |
— | — | @@ -0,0 +1,30 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Protect against register_globals vulnerabilities. |
| 5 | + * This line must be present before any global variable is referenced. |
| 6 | + */ |
| 7 | +if (!defined('MEDIAWIKI')) die(); |
| 8 | + |
| 9 | + |
| 10 | +### |
| 11 | +# This is the path to your installation of Semantic Calendar as |
| 12 | +# seen from the web. Change it if required ($wgScriptPath is the |
| 13 | +# path to the base directory of your wiki). No final slash. |
| 14 | +## |
| 15 | +$scgScriptPath = $wgScriptPath . '/extensions/SemanticCalendar'; |
| 16 | +## |
| 17 | + |
| 18 | +### |
| 19 | +# This is the path to your installation of Semantic Calendar as |
| 20 | +# seen on your local filesystem. Used against some PHP file path |
| 21 | +# issues. |
| 22 | +## |
| 23 | +$scgIP = $IP . '/extensions/SemanticCalendar'; |
| 24 | +## |
| 25 | + |
| 26 | + |
| 27 | +// PHP fails to find relative includes at some level of inclusion: |
| 28 | +//$pathfix = $IP . $scgScriptPath; |
| 29 | + |
| 30 | +// load global functions |
| 31 | +require_once($scgIP . '/includes/SC_GlobalFunctions.php'); |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/includes/SC_Settings.php |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 32 | + native |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/languages/SC_LanguageEn.php |
— | — | @@ -0,0 +1,12 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * @author Yaron Koren |
| 5 | + */ |
| 6 | + |
| 7 | +class SC_LanguageEn extends SC_Language { |
| 8 | + |
| 9 | +/* private */ var $m_SpecialProperties = array( |
| 10 | + //always start upper-case |
| 11 | +); |
| 12 | + |
| 13 | +} |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/languages/SC_LanguageEn.php |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 14 | + native |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/languages/SC_Messages.php |
— | — | @@ -0,0 +1,471 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Internationalization file for the Semantic Calendar extension |
| 5 | + * |
| 6 | + * @addtogroup Extensions |
| 7 | +*/ |
| 8 | + |
| 9 | +$messages = array(); |
| 10 | + |
| 11 | +/** English |
| 12 | + * @author Yaron Koren |
| 13 | + */ |
| 14 | +$messages['en'] = array( |
| 15 | + // user messages |
| 16 | + 'sc_desc' => 'A calendar that displays semantic date information', |
| 17 | + 'sc_previousmonth' => 'Previous month', |
| 18 | + 'sc_nextmonth' => 'Next month', |
| 19 | + 'sc_today' => 'Today', |
| 20 | + 'sc_gotomonth' => 'Go to month', |
| 21 | +); |
| 22 | + |
| 23 | +/** Message documentation (Message documentation) |
| 24 | + * @author Purodha |
| 25 | + */ |
| 26 | +$messages['qqq'] = array( |
| 27 | + 'sc_desc' => 'Short description of this extension, shown in [[Special:Version]]. Do not translate or change links.', |
| 28 | +); |
| 29 | + |
| 30 | +/** Afrikaans (Afrikaans) |
| 31 | + * @author SPQRobin |
| 32 | + */ |
| 33 | +$messages['af'] = array( |
| 34 | + 'sc_gotomonth' => 'Gaan na maand', |
| 35 | +); |
| 36 | + |
| 37 | +/** Arabic (العربية) |
| 38 | + * @author Meno25 |
| 39 | + */ |
| 40 | +$messages['ar'] = array( |
| 41 | + 'sc_desc' => 'نتيجة تعرض معلومات تاريخ سيمانتيك', |
| 42 | + 'sc_previousmonth' => 'الشهر السابق', |
| 43 | + 'sc_nextmonth' => 'الشهر التالي', |
| 44 | + 'sc_today' => 'اليوم', |
| 45 | + 'sc_gotomonth' => 'اذهب إلى شهر', |
| 46 | +); |
| 47 | + |
| 48 | +/** Egyptian Spoken Arabic (مصرى) |
| 49 | + * @author Meno25 |
| 50 | + */ |
| 51 | +$messages['arz'] = array( |
| 52 | + 'sc_desc' => 'نتيجة تعرض معلومات تاريخ سيمانتيك', |
| 53 | + 'sc_previousmonth' => 'الشهر السابق', |
| 54 | + 'sc_nextmonth' => 'الشهر التالي', |
| 55 | + 'sc_today' => 'اليوم', |
| 56 | + 'sc_gotomonth' => 'اذهب إلى شهر', |
| 57 | +); |
| 58 | + |
| 59 | +/** Bulgarian (Български) |
| 60 | + * @author DCLXVI |
| 61 | + */ |
| 62 | +$messages['bg'] = array( |
| 63 | + 'sc_previousmonth' => 'Предходен месец', |
| 64 | + 'sc_nextmonth' => 'Следващ месец', |
| 65 | + 'sc_today' => 'Днес', |
| 66 | +); |
| 67 | + |
| 68 | +/** Breton (Brezhoneg) |
| 69 | + * @author Fulup |
| 70 | + */ |
| 71 | +$messages['br'] = array( |
| 72 | + 'sc_previousmonth' => 'Miz a-raok', |
| 73 | + 'sc_nextmonth' => 'Miz a zeu', |
| 74 | + 'sc_today' => 'Hiziv', |
| 75 | + 'sc_gotomonth' => "Mont d'ar miz", |
| 76 | +); |
| 77 | + |
| 78 | +/** German (Deutsch) |
| 79 | + * @author Krabina |
| 80 | + */ |
| 81 | +$messages['de'] = array( |
| 82 | + 'sc_previousmonth' => 'Voriger Monat', |
| 83 | + 'sc_nextmonth' => 'Nächster Monat', |
| 84 | + 'sc_today' => 'Heute', |
| 85 | + 'sc_gotomonth' => 'Gehe zu Monat', |
| 86 | +); |
| 87 | + |
| 88 | +/** Greek (Ελληνικά) |
| 89 | + * @author Consta |
| 90 | + */ |
| 91 | +$messages['el'] = array( |
| 92 | + 'sc_previousmonth' => 'Προηγούμενος μήνας', |
| 93 | + 'sc_nextmonth' => 'Επόμενος μήνας', |
| 94 | + 'sc_today' => 'Σήμερα', |
| 95 | +); |
| 96 | + |
| 97 | +/** Esperanto (Esperanto) |
| 98 | + * @author Yekrats |
| 99 | + */ |
| 100 | +$messages['eo'] = array( |
| 101 | + 'sc_previousmonth' => 'Antaŭa monato', |
| 102 | + 'sc_nextmonth' => 'Posta monato', |
| 103 | + 'sc_today' => 'Hodiaŭ', |
| 104 | + 'sc_gotomonth' => 'Iru al monato', |
| 105 | +); |
| 106 | + |
| 107 | +/** Persian (فارسی) |
| 108 | + * @author Tofighi |
| 109 | + */ |
| 110 | +$messages['fa'] = array( |
| 111 | + 'sc_previousmonth' => 'ماه گذشته', |
| 112 | + 'sc_nextmonth' => 'ماه آینده', |
| 113 | + 'sc_today' => 'امروز', |
| 114 | + 'sc_gotomonth' => 'برو به ماه', |
| 115 | +); |
| 116 | + |
| 117 | +/** French (Français) |
| 118 | + * @author Grondin |
| 119 | + * @author Urhixidur |
| 120 | + */ |
| 121 | +$messages['fr'] = array( |
| 122 | + 'sc_desc' => 'Un calendrier qui affiche les informations de date sémantique', |
| 123 | + 'sc_previousmonth' => 'Mois précédent', |
| 124 | + 'sc_nextmonth' => 'Mois suivant', |
| 125 | + 'sc_today' => "Aujourd'hui", |
| 126 | + 'sc_gotomonth' => 'Aller vers le mois', |
| 127 | +); |
| 128 | + |
| 129 | +/** Galician (Galego) |
| 130 | + * @author Alma |
| 131 | + * @author Toliño |
| 132 | + */ |
| 133 | +$messages['gl'] = array( |
| 134 | + 'sc_desc' => 'Un calendario que amosa datos da información semántica', |
| 135 | + 'sc_previousmonth' => 'Mes anterior', |
| 136 | + 'sc_nextmonth' => 'Mes seguinte', |
| 137 | + 'sc_today' => 'Hoxe', |
| 138 | + 'sc_gotomonth' => 'Ir ao mes', |
| 139 | +); |
| 140 | + |
| 141 | +/** Ancient Greek (Ἀρχαία ἑλληνικὴ) |
| 142 | + * @author Omnipaedista |
| 143 | + */ |
| 144 | +$messages['grc'] = array( |
| 145 | + 'sc_today' => 'Σήμερον', |
| 146 | +); |
| 147 | + |
| 148 | +/** Manx (Gaelg) |
| 149 | + * @author MacTire02 |
| 150 | + */ |
| 151 | +$messages['gv'] = array( |
| 152 | + 'sc_previousmonth' => 'Yn mee roish shen', |
| 153 | + 'sc_nextmonth' => 'Yn chied mee elley', |
| 154 | + 'sc_today' => 'Jiu', |
| 155 | +); |
| 156 | + |
| 157 | +/** Hebrew (עברית) |
| 158 | + * @author StuB |
| 159 | + * @author YaronSh |
| 160 | + */ |
| 161 | +$messages['he'] = array( |
| 162 | + 'sc_desc' => 'לוח שנה המציג נתונים סמנטיים אודות התאריך', |
| 163 | + 'sc_previousmonth' => 'החודש הקודם', |
| 164 | + 'sc_nextmonth' => 'החודש הבא', |
| 165 | + 'sc_today' => 'היום', |
| 166 | + 'sc_gotomonth' => 'מעבר לחודש', |
| 167 | +); |
| 168 | + |
| 169 | +/** Hindi (हिन्दी) |
| 170 | + * @author Kaustubh |
| 171 | + */ |
| 172 | +$messages['hi'] = array( |
| 173 | + 'sc_previousmonth' => 'पिछला महिना', |
| 174 | + 'sc_nextmonth' => 'अगला महिना', |
| 175 | + 'sc_today' => 'आज़', |
| 176 | + 'sc_gotomonth' => 'महिनेपर चलें', |
| 177 | +); |
| 178 | + |
| 179 | +/** Upper Sorbian (Hornjoserbsce) |
| 180 | + * @author Michawiki |
| 181 | + */ |
| 182 | +$messages['hsb'] = array( |
| 183 | + 'sc_previousmonth' => 'Předchadny měsac', |
| 184 | + 'sc_nextmonth' => 'Přichodny měsac', |
| 185 | + 'sc_today' => 'Dźensa', |
| 186 | + 'sc_gotomonth' => 'Dźi k měsacej', |
| 187 | +); |
| 188 | + |
| 189 | +/** Hungarian (Magyar) |
| 190 | + * @author Dani |
| 191 | + */ |
| 192 | +$messages['hu'] = array( |
| 193 | + 'sc_previousmonth' => 'Előző hónap', |
| 194 | + 'sc_nextmonth' => 'Következő hónap', |
| 195 | +); |
| 196 | + |
| 197 | +/** Interlingua (Interlingua) |
| 198 | + * @author McDutchie |
| 199 | + */ |
| 200 | +$messages['ia'] = array( |
| 201 | + 'sc_desc' => 'Un calendario que monstra informationes de data semantic', |
| 202 | + 'sc_previousmonth' => 'Mense precedente', |
| 203 | + 'sc_nextmonth' => 'Mense sequente', |
| 204 | + 'sc_today' => 'Hodie', |
| 205 | + 'sc_gotomonth' => 'Ir al mense', |
| 206 | +); |
| 207 | + |
| 208 | +/** Italian (Italiano) |
| 209 | + * @author Darth Kule |
| 210 | + */ |
| 211 | +$messages['it'] = array( |
| 212 | + 'sc_previousmonth' => 'Mese precedente', |
| 213 | + 'sc_nextmonth' => 'Mese successivo', |
| 214 | + 'sc_today' => 'Oggi', |
| 215 | + 'sc_gotomonth' => 'Vai al mese', |
| 216 | +); |
| 217 | + |
| 218 | +/** Japanese (日本語) |
| 219 | + * @author JtFuruhata |
| 220 | + */ |
| 221 | +$messages['ja'] = array( |
| 222 | + 'sc_previousmonth' => '前の月', |
| 223 | + 'sc_nextmonth' => '次の月', |
| 224 | + 'sc_today' => '今日', |
| 225 | + 'sc_gotomonth' => 'この月を表示', |
| 226 | +); |
| 227 | + |
| 228 | +/** Javanese (Basa Jawa) |
| 229 | + * @author Meursault2004 |
| 230 | + */ |
| 231 | +$messages['jv'] = array( |
| 232 | + 'sc_previousmonth' => 'Sasi sadurungé', |
| 233 | + 'sc_nextmonth' => 'Sasi sabanjuré', |
| 234 | + 'sc_today' => 'Dina iki', |
| 235 | + 'sc_gotomonth' => 'Tumuju menyang sasi', |
| 236 | +); |
| 237 | + |
| 238 | +/** Khmer (ភាសាខ្មែរ) |
| 239 | + * @author Lovekhmer |
| 240 | + * @author គីមស៊្រុន |
| 241 | + */ |
| 242 | +$messages['km'] = array( |
| 243 | + 'sc_previousmonth' => 'ខែមុន', |
| 244 | + 'sc_nextmonth' => 'ខែបន្ទាប់', |
| 245 | + 'sc_today' => 'ថ្ងៃនេះ', |
| 246 | + 'sc_gotomonth' => 'ទៅកាន់ខែ', |
| 247 | +); |
| 248 | + |
| 249 | +/** Ripoarisch (Ripoarisch) |
| 250 | + * @author Purodha |
| 251 | + */ |
| 252 | +$messages['ksh'] = array( |
| 253 | + 'sc_desc' => 'Ene Kalländer, dä semantesche Dattums-Enfommazjuhne aanzeisch.', |
| 254 | + 'sc_today' => 'Hück', |
| 255 | +); |
| 256 | + |
| 257 | +/** Luxembourgish (Lëtzebuergesch) |
| 258 | + * @author Robby |
| 259 | + */ |
| 260 | +$messages['lb'] = array( |
| 261 | + 'sc_previousmonth' => 'Mount virdrun', |
| 262 | + 'sc_nextmonth' => 'Nächste Mount', |
| 263 | + 'sc_today' => 'Haut', |
| 264 | + 'sc_gotomonth' => 'Géi op de Mount', |
| 265 | +); |
| 266 | + |
| 267 | +/** Lithuanian (Lietuvių) |
| 268 | + * @author Hugo.arg |
| 269 | + */ |
| 270 | +$messages['lt'] = array( |
| 271 | + 'sc_previousmonth' => 'Praeitas mėnuo', |
| 272 | + 'sc_nextmonth' => 'Ateinantis mėnuo', |
| 273 | + 'sc_today' => 'Šiandien', |
| 274 | + 'sc_gotomonth' => 'Eiti į mėnesį', |
| 275 | +); |
| 276 | + |
| 277 | +/** Malayalam (മലയാളം) |
| 278 | + * @author Shijualex |
| 279 | + */ |
| 280 | +$messages['ml'] = array( |
| 281 | + 'sc_previousmonth' => 'കഴിഞ്ഞ മാസം', |
| 282 | + 'sc_nextmonth' => 'അടുത്ത മാസം', |
| 283 | + 'sc_today' => 'ഇന്ന്', |
| 284 | + 'sc_gotomonth' => 'മാസത്തിലേക്ക് പോവുക', |
| 285 | +); |
| 286 | + |
| 287 | +/** Marathi (मराठी) |
| 288 | + * @author Mahitgar |
| 289 | + */ |
| 290 | +$messages['mr'] = array( |
| 291 | + 'sc_previousmonth' => 'मागचा महीना', |
| 292 | + 'sc_nextmonth' => 'पुढचा महीना', |
| 293 | + 'sc_today' => 'आज', |
| 294 | + 'sc_gotomonth' => 'महीन्याकडे चला', |
| 295 | +); |
| 296 | + |
| 297 | +/** Erzya (Эрзянь) |
| 298 | + * @author Botuzhaleny-sodamo |
| 299 | + */ |
| 300 | +$messages['myv'] = array( |
| 301 | + 'sc_previousmonth' => 'Йутазь ковсто', |
| 302 | + 'sc_nextmonth' => 'Сы ковсто', |
| 303 | + 'sc_today' => 'Течи', |
| 304 | +); |
| 305 | + |
| 306 | +/** Dutch (Nederlands) |
| 307 | + * @author GerardM |
| 308 | + * @author Siebrand |
| 309 | + */ |
| 310 | +$messages['nl'] = array( |
| 311 | + 'sc_desc' => 'Een kalender die semantische datuminformatie weergeeft', |
| 312 | + 'sc_previousmonth' => 'Vorige maand', |
| 313 | + 'sc_nextmonth' => 'Volgende maand', |
| 314 | + 'sc_today' => 'Vandaag', |
| 315 | + 'sc_gotomonth' => 'Ga naar maand', |
| 316 | +); |
| 317 | + |
| 318 | +/** Norwegian Nynorsk (Norsk (nynorsk)) |
| 319 | + * @author Eirik |
| 320 | + */ |
| 321 | +$messages['nn'] = array( |
| 322 | + 'sc_previousmonth' => 'Førre månad', |
| 323 | + 'sc_nextmonth' => 'Neste månad', |
| 324 | + 'sc_today' => 'I dag', |
| 325 | + 'sc_gotomonth' => 'Gå til månad', |
| 326 | +); |
| 327 | + |
| 328 | +/** Norwegian (bokmål) (Norsk (bokmål)) |
| 329 | + * @author Jon Harald Søby |
| 330 | + */ |
| 331 | +$messages['no'] = array( |
| 332 | + 'sc_desc' => 'En kalender som viser semantisk datoinformasjon', |
| 333 | + 'sc_previousmonth' => 'Forrige måned', |
| 334 | + 'sc_nextmonth' => 'Neste måned', |
| 335 | + 'sc_today' => 'I dag', |
| 336 | + 'sc_gotomonth' => 'Gå til måned', |
| 337 | +); |
| 338 | + |
| 339 | +/** Occitan (Occitan) |
| 340 | + * @author Cedric31 |
| 341 | + */ |
| 342 | +$messages['oc'] = array( |
| 343 | + 'sc_desc' => "Un calendièr qu'aficha las entresenhas de data semantica", |
| 344 | + 'sc_previousmonth' => 'Mes precedent', |
| 345 | + 'sc_nextmonth' => 'Mes seguent', |
| 346 | + 'sc_today' => 'Uèi', |
| 347 | + 'sc_gotomonth' => 'Anar cap al mes', |
| 348 | +); |
| 349 | + |
| 350 | +/** Polish (Polski) |
| 351 | + * @author Maire |
| 352 | + */ |
| 353 | +$messages['pl'] = array( |
| 354 | + 'sc_previousmonth' => 'Poprzedni miesiąc', |
| 355 | + 'sc_nextmonth' => 'Następny miesiąc', |
| 356 | + 'sc_today' => 'Dzisiaj', |
| 357 | + 'sc_gotomonth' => 'Idź do miesiąca', |
| 358 | +); |
| 359 | + |
| 360 | +/** Pashto (پښتو) |
| 361 | + * @author Ahmed-Najib-Biabani-Ibrahimkhel |
| 362 | + */ |
| 363 | +$messages['ps'] = array( |
| 364 | + 'sc_previousmonth' => 'پخوانۍ مياشت', |
| 365 | + 'sc_nextmonth' => 'راتلونکې مياشت', |
| 366 | + 'sc_today' => 'نن', |
| 367 | + 'sc_gotomonth' => 'مياشت ته ورځه', |
| 368 | +); |
| 369 | + |
| 370 | +/** Portuguese (Português) |
| 371 | + * @author Malafaya |
| 372 | + */ |
| 373 | +$messages['pt'] = array( |
| 374 | + 'sc_previousmonth' => 'Mês anterior', |
| 375 | + 'sc_nextmonth' => 'Mês seguinte', |
| 376 | + 'sc_today' => 'Hoje', |
| 377 | + 'sc_gotomonth' => 'Ir para mês', |
| 378 | +); |
| 379 | + |
| 380 | +/** Russian (Русский) |
| 381 | + * @author Александр Сигачёв |
| 382 | + */ |
| 383 | +$messages['ru'] = array( |
| 384 | + 'sc_previousmonth' => 'Предыдущий месяц', |
| 385 | + 'sc_nextmonth' => 'Следующий месяц', |
| 386 | + 'sc_today' => 'Сегодня', |
| 387 | + 'sc_gotomonth' => 'Перейти к месяцу', |
| 388 | +); |
| 389 | + |
| 390 | +/** Slovak (Slovenčina) |
| 391 | + * @author Helix84 |
| 392 | + */ |
| 393 | +$messages['sk'] = array( |
| 394 | + 'sc_desc' => 'Kalendár zobrazujúci sémantické dátumové informácie', |
| 395 | + 'sc_previousmonth' => 'Predošlý mesiac', |
| 396 | + 'sc_nextmonth' => 'Ďalší mesiac', |
| 397 | + 'sc_today' => 'Dnes', |
| 398 | + 'sc_gotomonth' => 'Prejsť na mesiac', |
| 399 | +); |
| 400 | + |
| 401 | +/** Swedish (Svenska) |
| 402 | + * @author M.M.S. |
| 403 | + * @author Najami |
| 404 | + */ |
| 405 | +$messages['sv'] = array( |
| 406 | + 'sc_desc' => 'En kalender som visar semantisk datumsinformation', |
| 407 | + 'sc_previousmonth' => 'Föregående månad', |
| 408 | + 'sc_nextmonth' => 'Nästa månad', |
| 409 | + 'sc_today' => 'Idag', |
| 410 | + 'sc_gotomonth' => 'Gå till månad', |
| 411 | +); |
| 412 | + |
| 413 | +/** Telugu (తెలుగు) |
| 414 | + * @author Veeven |
| 415 | + */ |
| 416 | +$messages['te'] = array( |
| 417 | + 'sc_previousmonth' => 'క్రితం నెల', |
| 418 | + 'sc_nextmonth' => 'తర్వాతి నెల', |
| 419 | + 'sc_today' => 'ఈరోజు', |
| 420 | + 'sc_gotomonth' => 'నెలకి వెళ్ళండి', |
| 421 | +); |
| 422 | + |
| 423 | +/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic)) |
| 424 | + * @author Ibrahim |
| 425 | + */ |
| 426 | +$messages['tg-cyrl'] = array( |
| 427 | + 'sc_previousmonth' => 'Моҳи қаблӣ', |
| 428 | + 'sc_nextmonth' => 'Моҳи баъдӣ', |
| 429 | + 'sc_today' => 'Имрӯз', |
| 430 | + 'sc_gotomonth' => 'Рафтан ба моҳ', |
| 431 | +); |
| 432 | + |
| 433 | +/** Vèneto (Vèneto) |
| 434 | + * @author Candalua |
| 435 | + */ |
| 436 | +$messages['vec'] = array( |
| 437 | + 'sc_previousmonth' => 'Mese preçedente', |
| 438 | + 'sc_nextmonth' => 'Mese sucessivo', |
| 439 | + 'sc_today' => 'Ancuó', |
| 440 | + 'sc_gotomonth' => 'Và al mese', |
| 441 | +); |
| 442 | + |
| 443 | +/** Vietnamese (Tiếng Việt) |
| 444 | + * @author Minh Nguyen |
| 445 | + * @author Vinhtantran |
| 446 | + */ |
| 447 | +$messages['vi'] = array( |
| 448 | + 'sc_previousmonth' => 'Tháng trước', |
| 449 | + 'sc_nextmonth' => 'Tháng sau', |
| 450 | + 'sc_today' => 'Hôm nay', |
| 451 | + 'sc_gotomonth' => 'Đến tháng', |
| 452 | +); |
| 453 | + |
| 454 | +/** Volapük (Volapük) |
| 455 | + * @author Malafaya |
| 456 | + */ |
| 457 | +$messages['vo'] = array( |
| 458 | + 'sc_previousmonth' => 'Mul büik', |
| 459 | + 'sc_nextmonth' => 'Mul sököl', |
| 460 | + 'sc_today' => 'Adelo', |
| 461 | +); |
| 462 | + |
| 463 | +/** Chinese (Taiwan) (中文(台灣)) |
| 464 | + * @author Roc michael |
| 465 | + */ |
| 466 | +$messages['zh-tw'] = array( |
| 467 | + 'sc_previousmonth' => '前一月', |
| 468 | + 'sc_nextmonth' => '次一月', |
| 469 | + 'sc_today' => '今日', |
| 470 | + 'sc_gotomonth' => '前往', |
| 471 | +); |
| 472 | + |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/languages/SC_Messages.php |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 473 | + native |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/languages/SC_Language.php |
— | — | @@ -0,0 +1,33 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * @author Yaron Koren |
| 5 | + */ |
| 6 | + |
| 7 | +/** |
| 8 | + * Base class for all language classes - heavily based on Semantic MediaWiki's |
| 9 | + * 'SMW_Language' class |
| 10 | + */ |
| 11 | +abstract class SC_Language { |
| 12 | + |
| 13 | + protected $m_SpecialProperties; |
| 14 | + |
| 15 | + // By default, every language has English-language aliases for |
| 16 | + // special properties and namespaces |
| 17 | + protected $m_SpecialPropertyAliases = array( |
| 18 | + ); |
| 19 | + |
| 20 | + /** |
| 21 | + * Function that returns the labels for the special properties. |
| 22 | + */ |
| 23 | + function getSpecialPropertiesArray() { |
| 24 | + return $this->m_SpecialProperties; |
| 25 | + } |
| 26 | + |
| 27 | + /** |
| 28 | + * Aliases for special properties, if any. |
| 29 | + */ |
| 30 | + function getSpecialPropertyAliases() { |
| 31 | + return $this->m_SpecialPropertyAliases; |
| 32 | + } |
| 33 | + |
| 34 | +} |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/languages/SC_Language.php |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 35 | + native |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/skins/SC_main.css |
— | — | @@ -0,0 +1,91 @@ |
| 2 | +/** |
| 3 | + * The main CSS file for the Semantic Calendar extension. |
| 4 | + */ |
| 5 | + |
| 6 | +table.navigation_table { |
| 7 | + width: 100%; |
| 8 | + padding-bottom: 20px; |
| 9 | +} |
| 10 | +table.navigation_table tr td.month_name { |
| 11 | + font-size: xx-large; |
| 12 | +} |
| 13 | +table.navigation_table tr td.nav_links { |
| 14 | + text-align: center; |
| 15 | + font-weight: bold; |
| 16 | +} |
| 17 | +table.navigation_table tr td.nav_form { |
| 18 | + text-align: right; |
| 19 | +} |
| 20 | +table.month_calendar { |
| 21 | + border-collapse: collapse; |
| 22 | +} |
| 23 | +table.month_calendar tr { |
| 24 | +} |
| 25 | +table.month_calendar td { |
| 26 | + width: 150px; |
| 27 | + border: 1px #888888 solid; |
| 28 | + padding: 0px; |
| 29 | + vertical-align: top; |
| 30 | +} |
| 31 | +table.month_calendar td div.day { |
| 32 | + min-height: 15px; |
| 33 | + min-width: 15px; |
| 34 | + padding: 5px; |
| 35 | + margin: 0px 0px 3px 3px; |
| 36 | + float: right; |
| 37 | + text-align: center; |
| 38 | + vertical-align: middle; |
| 39 | + font-weight: bold; |
| 40 | + font-size: larger; |
| 41 | + color: #555555; |
| 42 | + border-left: 1px #cccccc solid; |
| 43 | + border-bottom: 1px #cccccc solid; |
| 44 | +} |
| 45 | +table.month_calendar td div.day_other_month { |
| 46 | + background: #eeeeee; |
| 47 | + color: #aaaaaa; |
| 48 | + border: none; |
| 49 | +} |
| 50 | +} |
| 51 | +table.month_calendar td div.day_other_month { |
| 52 | + background: #fcffb1; |
| 53 | + color: #aaaaaa; |
| 54 | +} |
| 55 | +table.month_calendar td div.main { |
| 56 | + min-height: 80px; |
| 57 | + padding: 4px; |
| 58 | + height: 100%; |
| 59 | +} |
| 60 | +table.month_calendar td div.main p { |
| 61 | + line-height: 125%; |
| 62 | +} |
| 63 | +table.month_calendar td.today div.day { |
| 64 | + background: #dbe8f9; |
| 65 | + color: black; |
| 66 | + border-left: 1px #999999 solid; |
| 67 | + border-bottom: 1px #999999 solid; |
| 68 | +} |
| 69 | +table.month_calendar td.today div.main { |
| 70 | + background: #f9f9f9; |
| 71 | +} |
| 72 | +table.month_calendar tr.header { |
| 73 | + vertical-align: middle; |
| 74 | +} |
| 75 | +table.month_calendar tr.header td { |
| 76 | + padding: 30px 10px 10px 10px; |
| 77 | + border: 0; |
| 78 | + text-align: center; |
| 79 | + font-size: x-large; |
| 80 | +} |
| 81 | +table.month_calendar tr.weekdays { |
| 82 | + border-top: 1px black solid; |
| 83 | + font-weight: bold; |
| 84 | + background: #dbe8f9; |
| 85 | +} |
| 86 | +table.month_calendar tr.weekdays td { |
| 87 | + border: 0; |
| 88 | + text-align: center; |
| 89 | + vertical-align: middle; |
| 90 | + color: #555555; |
| 91 | + padding: 8px 2px 2px 2px; |
| 92 | +} |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/skins/SC_main.css |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 93 | + native |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/skins/images/left-arrow.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/skins/images/left-arrow.png |
___________________________________________________________________ |
Name: svn:mime-type |
2 | 94 | + image/png |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/skins/images/right-arrow.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/skins/images/right-arrow.png |
___________________________________________________________________ |
Name: svn:mime-type |
3 | 95 | + image/png |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/COPYING |
— | — | @@ -0,0 +1,348 @@ |
| 2 | +The license text below "----" applies to all files within this distribution, other |
| 3 | +than those that are in a directory which contains files named "LICENSE" or |
| 4 | +"COPYING", or a subdirectory thereof. For those files, the license text contained in |
| 5 | +said file overrides any license information contained in directories of smaller depth. |
| 6 | +Alternative licenses are typically used for software that is provided by external |
| 7 | +parties, and merely packaged with the Semantic Calendar release for convenience. |
| 8 | +---- |
| 9 | + |
| 10 | + GNU GENERAL PUBLIC LICENSE |
| 11 | + Version 2, June 1991 |
| 12 | + |
| 13 | + Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
| 14 | + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 15 | + Everyone is permitted to copy and distribute verbatim copies |
| 16 | + of this license document, but changing it is not allowed. |
| 17 | + |
| 18 | + Preamble |
| 19 | + |
| 20 | + The licenses for most software are designed to take away your |
| 21 | +freedom to share and change it. By contrast, the GNU General Public |
| 22 | +License is intended to guarantee your freedom to share and change free |
| 23 | +software--to make sure the software is free for all its users. This |
| 24 | +General Public License applies to most of the Free Software |
| 25 | +Foundation's software and to any other program whose authors commit to |
| 26 | +using it. (Some other Free Software Foundation software is covered by |
| 27 | +the GNU Library General Public License instead.) You can apply it to |
| 28 | +your programs, too. |
| 29 | + |
| 30 | + When we speak of free software, we are referring to freedom, not |
| 31 | +price. Our General Public Licenses are designed to make sure that you |
| 32 | +have the freedom to distribute copies of free software (and charge for |
| 33 | +this service if you wish), that you receive source code or can get it |
| 34 | +if you want it, that you can change the software or use pieces of it |
| 35 | +in new free programs; and that you know you can do these things. |
| 36 | + |
| 37 | + To protect your rights, we need to make restrictions that forbid |
| 38 | +anyone to deny you these rights or to ask you to surrender the rights. |
| 39 | +These restrictions translate to certain responsibilities for you if you |
| 40 | +distribute copies of the software, or if you modify it. |
| 41 | + |
| 42 | + For example, if you distribute copies of such a program, whether |
| 43 | +gratis or for a fee, you must give the recipients all the rights that |
| 44 | +you have. You must make sure that they, too, receive or can get the |
| 45 | +source code. And you must show them these terms so they know their |
| 46 | +rights. |
| 47 | + |
| 48 | + We protect your rights with two steps: (1) copyright the software, and |
| 49 | +(2) offer you this license which gives you legal permission to copy, |
| 50 | +distribute and/or modify the software. |
| 51 | + |
| 52 | + Also, for each author's protection and ours, we want to make certain |
| 53 | +that everyone understands that there is no warranty for this free |
| 54 | +software. If the software is modified by someone else and passed on, we |
| 55 | +want its recipients to know that what they have is not the original, so |
| 56 | +that any problems introduced by others will not reflect on the original |
| 57 | +authors' reputations. |
| 58 | + |
| 59 | + Finally, any free program is threatened constantly by software |
| 60 | +patents. We wish to avoid the danger that redistributors of a free |
| 61 | +program will individually obtain patent licenses, in effect making the |
| 62 | +program proprietary. To prevent this, we have made it clear that any |
| 63 | +patent must be licensed for everyone's free use or not licensed at all. |
| 64 | + |
| 65 | + The precise terms and conditions for copying, distribution and |
| 66 | +modification follow. |
| 67 | + |
| 68 | + GNU GENERAL PUBLIC LICENSE |
| 69 | + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
| 70 | + |
| 71 | + 0. This License applies to any program or other work which contains |
| 72 | +a notice placed by the copyright holder saying it may be distributed |
| 73 | +under the terms of this General Public License. The "Program", below, |
| 74 | +refers to any such program or work, and a "work based on the Program" |
| 75 | +means either the Program or any derivative work under copyright law: |
| 76 | +that is to say, a work containing the Program or a portion of it, |
| 77 | +either verbatim or with modifications and/or translated into another |
| 78 | +language. (Hereinafter, translation is included without limitation in |
| 79 | +the term "modification".) Each licensee is addressed as "you". |
| 80 | + |
| 81 | +Activities other than copying, distribution and modification are not |
| 82 | +covered by this License; they are outside its scope. The act of |
| 83 | +running the Program is not restricted, and the output from the Program |
| 84 | +is covered only if its contents constitute a work based on the |
| 85 | +Program (independent of having been made by running the Program). |
| 86 | +Whether that is true depends on what the Program does. |
| 87 | + |
| 88 | + 1. You may copy and distribute verbatim copies of the Program's |
| 89 | +source code as you receive it, in any medium, provided that you |
| 90 | +conspicuously and appropriately publish on each copy an appropriate |
| 91 | +copyright notice and disclaimer of warranty; keep intact all the |
| 92 | +notices that refer to this License and to the absence of any warranty; |
| 93 | +and give any other recipients of the Program a copy of this License |
| 94 | +along with the Program. |
| 95 | + |
| 96 | +You may charge a fee for the physical act of transferring a copy, and |
| 97 | +you may at your option offer warranty protection in exchange for a fee. |
| 98 | + |
| 99 | + 2. You may modify your copy or copies of the Program or any portion |
| 100 | +of it, thus forming a work based on the Program, and copy and |
| 101 | +distribute such modifications or work under the terms of Section 1 |
| 102 | +above, provided that you also meet all of these conditions: |
| 103 | + |
| 104 | + a) You must cause the modified files to carry prominent notices |
| 105 | + stating that you changed the files and the date of any change. |
| 106 | + |
| 107 | + b) You must cause any work that you distribute or publish, that in |
| 108 | + whole or in part contains or is derived from the Program or any |
| 109 | + part thereof, to be licensed as a whole at no charge to all third |
| 110 | + parties under the terms of this License. |
| 111 | + |
| 112 | + c) If the modified program normally reads commands interactively |
| 113 | + when run, you must cause it, when started running for such |
| 114 | + interactive use in the most ordinary way, to print or display an |
| 115 | + announcement including an appropriate copyright notice and a |
| 116 | + notice that there is no warranty (or else, saying that you provide |
| 117 | + a warranty) and that users may redistribute the program under |
| 118 | + these conditions, and telling the user how to view a copy of this |
| 119 | + License. (Exception: if the Program itself is interactive but |
| 120 | + does not normally print such an announcement, your work based on |
| 121 | + the Program is not required to print an announcement.) |
| 122 | + |
| 123 | +These requirements apply to the modified work as a whole. If |
| 124 | +identifiable sections of that work are not derived from the Program, |
| 125 | +and can be reasonably considered independent and separate works in |
| 126 | +themselves, then this License, and its terms, do not apply to those |
| 127 | +sections when you distribute them as separate works. But when you |
| 128 | +distribute the same sections as part of a whole which is a work based |
| 129 | +on the Program, the distribution of the whole must be on the terms of |
| 130 | +this License, whose permissions for other licensees extend to the |
| 131 | +entire whole, and thus to each and every part regardless of who wrote it. |
| 132 | + |
| 133 | +Thus, it is not the intent of this section to claim rights or contest |
| 134 | +your rights to work written entirely by you; rather, the intent is to |
| 135 | +exercise the right to control the distribution of derivative or |
| 136 | +collective works based on the Program. |
| 137 | + |
| 138 | +In addition, mere aggregation of another work not based on the Program |
| 139 | +with the Program (or with a work based on the Program) on a volume of |
| 140 | +a storage or distribution medium does not bring the other work under |
| 141 | +the scope of this License. |
| 142 | + |
| 143 | + 3. You may copy and distribute the Program (or a work based on it, |
| 144 | +under Section 2) in object code or executable form under the terms of |
| 145 | +Sections 1 and 2 above provided that you also do one of the following: |
| 146 | + |
| 147 | + a) Accompany it with the complete corresponding machine-readable |
| 148 | + source code, which must be distributed under the terms of Sections |
| 149 | + 1 and 2 above on a medium customarily used for software interchange; or, |
| 150 | + |
| 151 | + b) Accompany it with a written offer, valid for at least three |
| 152 | + years, to give any third party, for a charge no more than your |
| 153 | + cost of physically performing source distribution, a complete |
| 154 | + machine-readable copy of the corresponding source code, to be |
| 155 | + distributed under the terms of Sections 1 and 2 above on a medium |
| 156 | + customarily used for software interchange; or, |
| 157 | + |
| 158 | + c) Accompany it with the information you received as to the offer |
| 159 | + to distribute corresponding source code. (This alternative is |
| 160 | + allowed only for noncommercial distribution and only if you |
| 161 | + received the program in object code or executable form with such |
| 162 | + an offer, in accord with Subsection b above.) |
| 163 | + |
| 164 | +The source code for a work means the preferred form of the work for |
| 165 | +making modifications to it. For an executable work, complete source |
| 166 | +code means all the source code for all modules it contains, plus any |
| 167 | +associated interface definition files, plus the scripts used to |
| 168 | +control compilation and installation of the executable. However, as a |
| 169 | +special exception, the source code distributed need not include |
| 170 | +anything that is normally distributed (in either source or binary |
| 171 | +form) with the major components (compiler, kernel, and so on) of the |
| 172 | +operating system on which the executable runs, unless that component |
| 173 | +itself accompanies the executable. |
| 174 | + |
| 175 | +If distribution of executable or object code is made by offering |
| 176 | +access to copy from a designated place, then offering equivalent |
| 177 | +access to copy the source code from the same place counts as |
| 178 | +distribution of the source code, even though third parties are not |
| 179 | +compelled to copy the source along with the object code. |
| 180 | + |
| 181 | + 4. You may not copy, modify, sublicense, or distribute the Program |
| 182 | +except as expressly provided under this License. Any attempt |
| 183 | +otherwise to copy, modify, sublicense or distribute the Program is |
| 184 | +void, and will automatically terminate your rights under this License. |
| 185 | +However, parties who have received copies, or rights, from you under |
| 186 | +this License will not have their licenses terminated so long as such |
| 187 | +parties remain in full compliance. |
| 188 | + |
| 189 | + 5. You are not required to accept this License, since you have not |
| 190 | +signed it. However, nothing else grants you permission to modify or |
| 191 | +distribute the Program or its derivative works. These actions are |
| 192 | +prohibited by law if you do not accept this License. Therefore, by |
| 193 | +modifying or distributing the Program (or any work based on the |
| 194 | +Program), you indicate your acceptance of this License to do so, and |
| 195 | +all its terms and conditions for copying, distributing or modifying |
| 196 | +the Program or works based on it. |
| 197 | + |
| 198 | + 6. Each time you redistribute the Program (or any work based on the |
| 199 | +Program), the recipient automatically receives a license from the |
| 200 | +original licensor to copy, distribute or modify the Program subject to |
| 201 | +these terms and conditions. You may not impose any further |
| 202 | +restrictions on the recipients' exercise of the rights granted herein. |
| 203 | +You are not responsible for enforcing compliance by third parties to |
| 204 | +this License. |
| 205 | + |
| 206 | + 7. If, as a consequence of a court judgment or allegation of patent |
| 207 | +infringement or for any other reason (not limited to patent issues), |
| 208 | +conditions are imposed on you (whether by court order, agreement or |
| 209 | +otherwise) that contradict the conditions of this License, they do not |
| 210 | +excuse you from the conditions of this License. If you cannot |
| 211 | +distribute so as to satisfy simultaneously your obligations under this |
| 212 | +License and any other pertinent obligations, then as a consequence you |
| 213 | +may not distribute the Program at all. For example, if a patent |
| 214 | +license would not permit royalty-free redistribution of the Program by |
| 215 | +all those who receive copies directly or indirectly through you, then |
| 216 | +the only way you could satisfy both it and this License would be to |
| 217 | +refrain entirely from distribution of the Program. |
| 218 | + |
| 219 | +If any portion of this section is held invalid or unenforceable under |
| 220 | +any particular circumstance, the balance of the section is intended to |
| 221 | +apply and the section as a whole is intended to apply in other |
| 222 | +circumstances. |
| 223 | + |
| 224 | +It is not the purpose of this section to induce you to infringe any |
| 225 | +patents or other property right claims or to contest validity of any |
| 226 | +such claims; this section has the sole purpose of protecting the |
| 227 | +integrity of the free software distribution system, which is |
| 228 | +implemented by public license practices. Many people have made |
| 229 | +generous contributions to the wide range of software distributed |
| 230 | +through that system in reliance on consistent application of that |
| 231 | +system; it is up to the author/donor to decide if he or she is willing |
| 232 | +to distribute software through any other system and a licensee cannot |
| 233 | +impose that choice. |
| 234 | + |
| 235 | +This section is intended to make thoroughly clear what is believed to |
| 236 | +be a consequence of the rest of this License. |
| 237 | + |
| 238 | + 8. If the distribution and/or use of the Program is restricted in |
| 239 | +certain countries either by patents or by copyrighted interfaces, the |
| 240 | +original copyright holder who places the Program under this License |
| 241 | +may add an explicit geographical distribution limitation excluding |
| 242 | +those countries, so that distribution is permitted only in or among |
| 243 | +countries not thus excluded. In such case, this License incorporates |
| 244 | +the limitation as if written in the body of this License. |
| 245 | + |
| 246 | + 9. The Free Software Foundation may publish revised and/or new versions |
| 247 | +of the General Public License from time to time. Such new versions will |
| 248 | +be similar in spirit to the present version, but may differ in detail to |
| 249 | +address new problems or concerns. |
| 250 | + |
| 251 | +Each version is given a distinguishing version number. If the Program |
| 252 | +specifies a version number of this License which applies to it and "any |
| 253 | +later version", you have the option of following the terms and conditions |
| 254 | +either of that version or of any later version published by the Free |
| 255 | +Software Foundation. If the Program does not specify a version number of |
| 256 | +this License, you may choose any version ever published by the Free Software |
| 257 | +Foundation. |
| 258 | + |
| 259 | + 10. If you wish to incorporate parts of the Program into other free |
| 260 | +programs whose distribution conditions are different, write to the author |
| 261 | +to ask for permission. For software which is copyrighted by the Free |
| 262 | +Software Foundation, write to the Free Software Foundation; we sometimes |
| 263 | +make exceptions for this. Our decision will be guided by the two goals |
| 264 | +of preserving the free status of all derivatives of our free software and |
| 265 | +of promoting the sharing and reuse of software generally. |
| 266 | + |
| 267 | + NO WARRANTY |
| 268 | + |
| 269 | + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
| 270 | +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
| 271 | +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
| 272 | +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
| 273 | +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| 274 | +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
| 275 | +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
| 276 | +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
| 277 | +REPAIR OR CORRECTION. |
| 278 | + |
| 279 | + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
| 280 | +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
| 281 | +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
| 282 | +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
| 283 | +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
| 284 | +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
| 285 | +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
| 286 | +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
| 287 | +POSSIBILITY OF SUCH DAMAGES. |
| 288 | + |
| 289 | + END OF TERMS AND CONDITIONS |
| 290 | + |
| 291 | + How to Apply These Terms to Your New Programs |
| 292 | + |
| 293 | + If you develop a new program, and you want it to be of the greatest |
| 294 | +possible use to the public, the best way to achieve this is to make it |
| 295 | +free software which everyone can redistribute and change under these terms. |
| 296 | + |
| 297 | + To do so, attach the following notices to the program. It is safest |
| 298 | +to attach them to the start of each source file to most effectively |
| 299 | +convey the exclusion of warranty; and each file should have at least |
| 300 | +the "copyright" line and a pointer to where the full notice is found. |
| 301 | + |
| 302 | + <one line to give the program's name and a brief idea of what it does.> |
| 303 | + Copyright (C) <year> <name of author> |
| 304 | + |
| 305 | + This program is free software; you can redistribute it and/or modify |
| 306 | + it under the terms of the GNU General Public License as published by |
| 307 | + the Free Software Foundation; either version 2 of the License, or |
| 308 | + (at your option) any later version. |
| 309 | + |
| 310 | + This program is distributed in the hope that it will be useful, |
| 311 | + but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 312 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 313 | + GNU General Public License for more details. |
| 314 | + |
| 315 | + You should have received a copy of the GNU General Public License |
| 316 | + along with this program; if not, write to the Free Software |
| 317 | + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 318 | + |
| 319 | + |
| 320 | +Also add information on how to contact you by electronic and paper mail. |
| 321 | + |
| 322 | +If the program is interactive, make it output a short notice like this |
| 323 | +when it starts in an interactive mode: |
| 324 | + |
| 325 | + Gnomovision version 69, Copyright (C) year name of author |
| 326 | + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
| 327 | + This is free software, and you are welcome to redistribute it |
| 328 | + under certain conditions; type `show c' for details. |
| 329 | + |
| 330 | +The hypothetical commands `show w' and `show c' should show the appropriate |
| 331 | +parts of the General Public License. Of course, the commands you use may |
| 332 | +be called something other than `show w' and `show c'; they could even be |
| 333 | +mouse-clicks or menu items--whatever suits your program. |
| 334 | + |
| 335 | +You should also get your employer (if you work as a programmer) or your |
| 336 | +school, if any, to sign a "copyright disclaimer" for the program, if |
| 337 | +necessary. Here is a sample; alter the names: |
| 338 | + |
| 339 | + Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
| 340 | + `Gnomovision' (which makes passes at compilers) written by James Hacker. |
| 341 | + |
| 342 | + <signature of Ty Coon>, 1 April 1989 |
| 343 | + Ty Coon, President of Vice |
| 344 | + |
| 345 | +This General Public License does not permit incorporating your program into |
| 346 | +proprietary programs. If your program is a subroutine library, you may |
| 347 | +consider it more useful to permit linking proprietary applications with the |
| 348 | +library. If this is what you want to do, use the GNU Library General |
| 349 | +Public License instead of this License. |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/COPYING |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 350 | + native |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/OBSOLETE |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +This extension is obsolete; it has been replaced by the 'calendar' format of |
| 3 | +the Semantic Result Formats extension: |
| 4 | + |
| 5 | +http://www.mediawiki.org/wiki/Extension:Semantic_Result_Formats |
| 6 | +http://www.mediawiki.org/wiki/Extension:Semantic_Result_Formats/calendar_format |
Index: tags/extensions/SemanticCalendar/REL_0_2_9/README |
— | — | @@ -0,0 +1,20 @@ |
| 2 | +== About == |
| 3 | + |
| 4 | +Semantic Calendar is an extension to MediaWiki that works in |
| 5 | +conjunction with another extension, Semantic MediaWiki, to provide |
| 6 | +a drilldown interface for all the data on a site. |
| 7 | +For more information on Semantic Calendar, see the extension |
| 8 | +homepage at |
| 9 | +http://www.mediawiki.org/wiki/Extension:Semantic_Calendar |
| 10 | + |
| 11 | +Notes on installing Semantic Calendar can be found in the file INSTALL. |
| 12 | + |
| 13 | +== Credits == |
| 14 | + |
| 15 | +Semantic Calendar was written by Yaron Koren, with important code |
| 16 | +contributions from Terry Hurlbut. |
| 17 | + |
| 18 | +== Contact == |
| 19 | + |
| 20 | +Comments, questions, suggestions and bug reports should be |
| 21 | +sent to Yaron at yaron57@gmail.com. |
Property changes on: tags/extensions/SemanticCalendar/REL_0_2_9/README |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 22 | + native |