diff options
author | Arthur <arthur@hoa.ro> | 2016-02-24 19:26:57 +0100 |
---|---|---|
committer | Arthur <arthur@hoa.ro> | 2016-02-24 19:26:57 +0100 |
commit | fa40b43f60c5367fc28a22d05c3f344ce39340c6 (patch) | |
tree | 5398143a2b92e365b20667822335d330723c1646 /index.php | |
parent | 6c3d6a31f413862941fe514e7167c04fe71ba1a7 (diff) | |
parent | 7eb0a832018621b3662f9fb5c45c0a67f5936088 (diff) | |
download | Shaarli-fa40b43f60c5367fc28a22d05c3f344ce39340c6.tar.gz Shaarli-fa40b43f60c5367fc28a22d05c3f344ce39340c6.tar.zst Shaarli-fa40b43f60c5367fc28a22d05c3f344ce39340c6.zip |
Merge pull request #492 from ArthurHoaro/locale-sort-fix
Fixes #481: tag cloud fatal error
Diffstat (limited to 'index.php')
-rw-r--r-- | index.php | 31 |
1 files changed, 6 insertions, 25 deletions
@@ -268,7 +268,7 @@ $GLOBALS['redirector'] = !empty($GLOBALS['redirector']) ? escape($GLOBALS['redir | |||
268 | // a token depending of deployment salt, user password, and the current ip | 268 | // a token depending of deployment salt, user password, and the current ip |
269 | define('STAY_SIGNED_IN_TOKEN', sha1($GLOBALS['hash'].$_SERVER["REMOTE_ADDR"].$GLOBALS['salt'])); | 269 | define('STAY_SIGNED_IN_TOKEN', sha1($GLOBALS['hash'].$_SERVER["REMOTE_ADDR"].$GLOBALS['salt'])); |
270 | 270 | ||
271 | autoLocale(); // Sniff browser language and set date format accordingly. | 271 | autoLocale($_SERVER['HTTP_ACCEPT_LANGUAGE']); // Sniff browser language and set date format accordingly. |
272 | header('Content-Type: text/html; charset=utf-8'); // We use UTF-8 for proper international characters handling. | 272 | header('Content-Type: text/html; charset=utf-8'); // We use UTF-8 for proper international characters handling. |
273 | 273 | ||
274 | //================================================================================================== | 274 | //================================================================================================== |
@@ -315,26 +315,6 @@ function setup_login_state() { | |||
315 | } | 315 | } |
316 | $userIsLoggedIn = setup_login_state(); | 316 | $userIsLoggedIn = setup_login_state(); |
317 | 317 | ||
318 | |||
319 | // ------------------------------------------------------------------------------------------ | ||
320 | // Sniff browser language to display dates in the right format automatically. | ||
321 | // (Note that is may not work on your server if the corresponding local is not installed.) | ||
322 | function autoLocale() | ||
323 | { | ||
324 | $attempts = array('en_US'); // Default if browser does not send HTTP_ACCEPT_LANGUAGE | ||
325 | if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) // e.g. "fr,fr-fr;q=0.8,en;q=0.5,en-us;q=0.3" | ||
326 | { // (It's a bit crude, but it works very well. Preferred language is always presented first.) | ||
327 | if (preg_match('/([a-z]{2})-?([a-z]{2})?/i',$_SERVER['HTTP_ACCEPT_LANGUAGE'],$matches)) { | ||
328 | $loc = $matches[1] . (!empty($matches[2]) ? '_' . strtoupper($matches[2]) : ''); | ||
329 | $attempts = array($loc.'.UTF-8', $loc, str_replace('_', '-', $loc).'.UTF-8', str_replace('_', '-', $loc), | ||
330 | $loc . '_' . strtoupper($loc).'.UTF-8', $loc . '_' . strtoupper($loc), | ||
331 | $loc . '_' . $loc.'.UTF-8', $loc . '_' . $loc, $loc . '-' . strtoupper($loc).'.UTF-8', | ||
332 | $loc . '-' . strtoupper($loc), $loc . '-' . $loc.'.UTF-8', $loc . '-' . $loc); | ||
333 | } | ||
334 | } | ||
335 | setlocale(LC_TIME, $attempts); // LC_TIME = Set local for date/time format only. | ||
336 | } | ||
337 | |||
338 | // ------------------------------------------------------------------------------------------ | 318 | // ------------------------------------------------------------------------------------------ |
339 | // PubSubHubbub protocol support (if enabled) [UNTESTED] | 319 | // PubSubHubbub protocol support (if enabled) [UNTESTED] |
340 | // (Source: http://aldarone.fr/les-flux-rss-shaarli-et-pubsubhubbub/ ) | 320 | // (Source: http://aldarone.fr/les-flux-rss-shaarli-et-pubsubhubbub/ ) |
@@ -1219,11 +1199,12 @@ function renderPage() | |||
1219 | uksort($tags, function($a, $b) { | 1199 | uksort($tags, function($a, $b) { |
1220 | // Collator is part of PHP intl. | 1200 | // Collator is part of PHP intl. |
1221 | if (class_exists('Collator')) { | 1201 | if (class_exists('Collator')) { |
1222 | $c = new Collator(setlocale(LC_ALL, 0)); | 1202 | $c = new Collator(setlocale(LC_COLLATE, 0)); |
1223 | return $c->compare($a, $b); | 1203 | if (!intl_is_failure(intl_get_error_code())) { |
1224 | } else { | 1204 | return $c->compare($a, $b); |
1225 | return strcasecmp($a, $b); | 1205 | } |
1226 | } | 1206 | } |
1207 | return strcasecmp($a, $b); | ||
1227 | }); | 1208 | }); |
1228 | 1209 | ||
1229 | $tagList=array(); | 1210 | $tagList=array(); |