]> git.andy128k.dev Git - ipf-legacy-orm.git/commitdiff
russian translit in default urlize
authorAndrey Kutejko <andy128k@gmail.com>
Sun, 21 Apr 2013 09:49:22 +0000 (12:49 +0300)
committerAndrey Kutejko <andy128k@gmail.com>
Sun, 21 Apr 2013 09:49:22 +0000 (12:49 +0300)
ipf/orm/inflector.php
ipf/orm/template/sluggable.php

index 6a6561b7c40bff7513cf9a3d5a8c3046479134e6..4946ac54a390961eace64867832b02254996a26c 100644 (file)
@@ -41,12 +41,12 @@ class IPF_ORM_Inflector
         $lowercasedWord = strtolower($word);
 
         foreach ($uncountable as $_uncountable) {
-            if(substr($lowercasedWord, (-1 * strlen($_uncountable))) == $_uncountable) {
+            if (substr($lowercasedWord, (-1 * strlen($_uncountable))) == $_uncountable) {
                 return $word;
             }
         }
 
-        foreach ($irregular as $_plural=> $_singular){
+        foreach ($irregular as $_plural=> $_singular) {
             if (preg_match('/('.$_plural.')$/i', $word, $arr)) {
                 return preg_replace('/('.$_plural.')$/i', substr($arr[0],0,1) . substr($_singular,1), $word);
             }
@@ -108,8 +108,8 @@ class IPF_ORM_Inflector
                            'move'   => 'moves');
 
         $lowercasedWord = strtolower($word);
-        foreach ($uncountable as $_uncountable){
-            if(substr($lowercasedWord, ( -1 * strlen($_uncountable))) == $_uncountable){
+        foreach ($uncountable as $_uncountable) {
+            if (substr($lowercasedWord, ( -1 * strlen($_uncountable))) == $_uncountable) {
                 return $word;
             }
         }
@@ -148,152 +148,174 @@ class IPF_ORM_Inflector
 
     public static function seemsUtf8($string)
     {
-       for ($i = 0; $i < strlen($string); $i++) {
-               if (ord($string[$i]) < 0x80) continue; # 0bbbbbbb
-               elseif ((ord($string[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb
-               elseif ((ord($string[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb
-               elseif ((ord($string[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb
-               elseif ((ord($string[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb
-               elseif ((ord($string[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b
-               else return false; # Does not match any model
-               for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
-                       if ((++$i == strlen($string)) || ((ord($string[$i]) & 0xC0) != 0x80))
-                       return false;
-               }
-       }
-       return true;
+        for ($i = 0; $i < strlen($string); $i++) {
+            if (ord($string[$i]) < 0x80) continue; # 0bbbbbbb
+            elseif ((ord($string[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb
+            elseif ((ord($string[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb
+            elseif ((ord($string[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb
+            elseif ((ord($string[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb
+            elseif ((ord($string[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b
+            else return false; # Does not match any model
+            for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
+                if ((++$i == strlen($string)) || ((ord($string[$i]) & 0xC0) != 0x80))
+                return false;
+            }
+        }
+        return true;
     }
-    
+
     public static function unaccent($string)
     {
-       if ( ! preg_match('/[\x80-\xff]/', $string) ) {
-               return $string;
-               }
+        if (!preg_match('/[\x80-\xff]/', $string)) {
+            return $string;
+        }
+
+        if (self::seemsUtf8($string)) {
+            $chars = array(
+            // Decompositions for Latin-1 Supplement
+            chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
+            chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
+            chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
+            chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
+            chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
+            chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
+            chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
+            chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
+            chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
+            chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
+            chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
+            chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
+            chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
+            chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
+            chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
+            chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
+            chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
+            chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
+            chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
+            chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
+            chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
+            chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
+            chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
+            chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
+            chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',
+            chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
+            chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
+            chr(195).chr(191) => 'y',
+            // Decompositions for Latin Extended-A
+            chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
+            chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
+            chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
+            chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
+            chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
+            chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
+            chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
+            chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
+            chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
+            chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
+            chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
+            chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
+            chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
+            chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
+            chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
+            chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
+            chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
+            chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
+            chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
+            chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
+            chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
+            chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
+            chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
+            chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
+            chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
+            chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
+            chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
+            chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
+            chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
+            chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
+            chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
+            chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
+            chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
+            chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
+            chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
+            chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
+            chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
+            chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
+            chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
+            chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
+            chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
+            chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
+            chr(197).chr(148) => 'R', chr(197).chr(149) => 'r',
+            chr(197).chr(150) => 'R', chr(197).chr(151) => 'r',
+            chr(197).chr(152) => 'R', chr(197).chr(153) => 'r',
+            chr(197).chr(154) => 'S', chr(197).chr(155) => 's',
+            chr(197).chr(156) => 'S', chr(197).chr(157) => 's',
+            chr(197).chr(158) => 'S', chr(197).chr(159) => 's',
+            chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
+            chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
+            chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
+            chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
+            chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
+            chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
+            chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
+            chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
+            chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
+            chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
+            chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
+            chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
+            chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
+            chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
+            chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
+            chr(197).chr(190) => 'z', chr(197).chr(191) => 's',
+            // Euro Sign
+            chr(226).chr(130).chr(172) => 'E',
+            // GBP (Pound) Sign
+            chr(194).chr(163) => '');
 
-       if (self::seemsUtf8($string)) {
-               $chars = array(
-               // Decompositions for Latin-1 Supplement
-               chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
-               chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
-               chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
-               chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
-               chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
-               chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
-               chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
-               chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
-               chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
-               chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
-               chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
-               chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
-               chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
-               chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
-               chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
-               chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
-               chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
-               chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
-               chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
-               chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
-               chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
-               chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
-               chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
-               chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
-               chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',
-               chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
-               chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
-               chr(195).chr(191) => 'y',
-               // Decompositions for Latin Extended-A
-               chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
-               chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
-               chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
-               chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
-               chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
-               chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
-               chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
-               chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
-               chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
-               chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
-               chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
-               chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
-               chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
-               chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
-               chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
-               chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
-               chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
-               chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
-               chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
-               chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
-               chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
-               chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
-               chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
-               chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
-               chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
-               chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
-               chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
-               chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
-               chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
-               chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
-               chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
-               chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
-               chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
-               chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
-               chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
-               chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
-               chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
-               chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
-               chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
-               chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
-               chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
-               chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
-               chr(197).chr(148) => 'R', chr(197).chr(149) => 'r',
-               chr(197).chr(150) => 'R', chr(197).chr(151) => 'r',
-               chr(197).chr(152) => 'R', chr(197).chr(153) => 'r',
-               chr(197).chr(154) => 'S', chr(197).chr(155) => 's',
-               chr(197).chr(156) => 'S', chr(197).chr(157) => 's',
-               chr(197).chr(158) => 'S', chr(197).chr(159) => 's',
-               chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
-               chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
-               chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
-               chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
-               chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
-               chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
-               chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
-               chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
-               chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
-               chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
-               chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
-               chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
-               chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
-               chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
-               chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
-               chr(197).chr(190) => 'z', chr(197).chr(191) => 's',
-               // Euro Sign
-               chr(226).chr(130).chr(172) => 'E',
-               // GBP (Pound) Sign
-               chr(194).chr(163) => '');
+            $string = strtr($string, $chars);
+        } else {
+            // Assume ISO-8859-1 if not UTF-8
+            $chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158)
+                .chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194)
+                .chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202)
+                .chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210)
+                .chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218)
+                .chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227)
+                .chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235)
+                .chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243)
+                .chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251)
+                .chr(252).chr(253).chr(255);
 
-               $string = strtr($string, $chars);
-       } else {
-               // Assume ISO-8859-1 if not UTF-8
-               $chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158)
-                       .chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194)
-                       .chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202)
-                       .chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210)
-                       .chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218)
-                       .chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227)
-                       .chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235)
-                       .chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243)
-                       .chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251)
-                       .chr(252).chr(253).chr(255);
+            $chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";
 
-               $chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";
+            $string = strtr($string, $chars['in'], $chars['out']);
+            $doubleChars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254));
+            $doubleChars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th');
+            $string = str_replace($doubleChars['in'], $doubleChars['out'], $string);
+        }
+
+        return $string;
+    }
 
-               $string = strtr($string, $chars['in'], $chars['out']);
-               $doubleChars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254));
-               $doubleChars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th');
-               $string = str_replace($doubleChars['in'], $doubleChars['out'], $string);
-       }
+    public static function translit($st)
+    {
+        $st = strtr($st, array(
+            'а' => 'a',  'б' => 'b',    'в' => 'v',  'г' => 'g',  'д' => 'd',
+            'е' => 'e',  'ё' => 'e',    'ж' => 'zh', 'з' => 'z',  'и' => 'i',
+            'й' => 'y',  'к' => 'k',    'л' => 'l',  'м' => 'm',  'н' => 'n',
+            'о' => 'o',  'п' => 'p',    'р' => 'r',  'с' => 's',  'т' => 't',
+            'у' => 'u',  'ф' => 'f',    'х' => 'h',  'ц' => 'ts', 'ч' => 'ch',
+            'ш' => 'sh', 'щ' => 'shch', 'ъ' => '\'', 'ы' => 'i',  'ь' => '',
+            'э' => 'e',  'ю' => 'yu',   'я' => 'ya', 'ї' => 'i',  'є' => 'ie',
 
-       return $string;
+            'А' => 'A',  'Б' => 'B',    'В' => 'V',  'Г' => 'G',  'Д' => 'D',
+            'Е' => 'E',  'Ё' => 'E',    'Ж' => 'Zh', 'З' => 'Z',  'И' => 'I',
+            'Й' => 'Y',  'К' => 'K',    'Л' => 'L',  'М' => 'M',  'Н' => 'N',
+            'О' => 'O',  'П' => 'P',    'Р' => 'R',  'С' => 'S',  'Т' => 'T',
+            'У' => 'U',  'Ф' => 'F',    'Х' => 'H',  'Ц' => 'Ts', 'Ч' => 'Ch',
+            'Ш' => 'Sh', 'Щ' => 'Shch', 'Ъ' => '\'', 'Ы' => 'I',  'Ь' => '',
+            'Э' => 'E',  'Ю' => 'Yu',   'Я' => 'Ya', 'Ї' => 'Yi', 'Є' => 'Ye',
+        ));
+        return $st;
     }
 
     public static function urlize($text)
@@ -301,6 +323,9 @@ class IPF_ORM_Inflector
         // Remove all non url friendly characters with the unaccent function
         $text = self::unaccent($text);
         
+        // Transliterate cyrillic
+        $text = self::translit($text);
+
         // Remove all none word characters
         $text = preg_replace('/\W/', ' ', $text);
         
@@ -312,4 +337,5 @@ class IPF_ORM_Inflector
         
         return trim($text, '-');
     }
-}
\ No newline at end of file
+}
+
index 6e0e87b8f87823e98e533f660fba6408e5351a75..6812c696add22699b462089c25e1ace88174aa49 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 
-class IPF_ORM_Template_Sluggable extends IPF_ORM_Template{
+class IPF_ORM_Template_Sluggable extends IPF_ORM_Template
+{
     protected $_options = array('name'          =>  'slug',
                                 'type'          =>  'string',
                                 'length'        =>  255,
@@ -31,4 +32,5 @@ class IPF_ORM_Template_Sluggable extends IPF_ORM_Template{
         }
         $this->addListener(new IPF_ORM_Template_Listener_Sluggable($this->_options));
     }
-}
\ No newline at end of file
+}
+