summaryrefslogtreecommitdiff
path: root/modules/gallery/helpers
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2011-04-22 13:56:32 -0700
committerBharat Mediratta <bharat@menalto.com>2011-04-22 13:57:46 -0700
commit526859d9605d137ebe053ecbd80f46ca6a331194 (patch)
tree7bad7111918ba9223eda6d880950b7f6918f81b5 /modules/gallery/helpers
parent5af74d4714005c565fc9550dbf1f0689c18429a7 (diff)
Do simple transliteration when converting filenames to slugs, but check
to see if the transliteration module is available and use a more complex transliteration if possible. Fixes #1668.
Diffstat (limited to 'modules/gallery/helpers')
-rw-r--r--modules/gallery/helpers/item.php12
1 files changed, 11 insertions, 1 deletions
diff --git a/modules/gallery/helpers/item.php b/modules/gallery/helpers/item.php
index 1a5c631e..7e779544 100644
--- a/modules/gallery/helpers/item.php
+++ b/modules/gallery/helpers/item.php
@@ -152,8 +152,18 @@ class item_Core {
* @param string $filename
*/
static function convert_filename_to_slug($filename) {
- $result = pathinfo($filename, PATHINFO_FILENAME);
+ $result = str_replace("&", "-and-", $filename);
+ $result = str_replace(" ", "-", $result);
+
+ // It's not easy to extend the text helper since it's called by the Input class which is
+ // referenced in hooks/init_gallery, so it's
+ if (class_exists("transliterate")) {
+ $result = transliterate::utf8_to_ascii($result);
+ } else {
+ $result = text::transliterate_to_ascii($result);
+ }
$result = preg_replace("/[^A-Za-z0-9-_]+/", "-", $result);
+ $result = preg_replace("/-+/", "-", $result);
return trim($result, "-");
}