private:koding:hostcms:modules:shop:useful:transliteracija

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
private:koding:hostcms:modules:shop:useful:transliteracija [15.03.16 в 13:15]
san-ma_yandex.ru создано
private:koding:hostcms:modules:shop:useful:transliteracija [27.06.17 в 15:59] (current)
maximzasorin_gmail.com ↷ Страница перемещена из private:koding:hostcms:shop:transliteracija в private:koding:hostcms:modules:shop:useful:transliteracija
Line 12: Line 12:
 * Начало >> * Начало >>
 */ */
 + 
 //id интернет магазина //id интернет магазина
-$shop_id = 0;+$shop_id = 9;
 // id корневой группы итемов // id корневой группы итемов
-$top_group_id = 0+$top_group_id = 2093
- +  
- +  
- +  
 + 
 include('​bootstrap.php'​);​ include('​bootstrap.php'​);​
 $oGroup = Core_Entity::​factory('​Shop_Group'​);​ $oGroup = Core_Entity::​factory('​Shop_Group'​);​
Line 26: Line 26:
    ​->​where('​shop_id',​ '​=',​ $shop_id);    ​->​where('​shop_id',​ '​=',​ $shop_id);
 $aoGroup = $oGroup->​findAll(FALSE);​ $aoGroup = $oGroup->​findAll(FALSE);​
- +  
-foreach ($aoGroup as $group) { +foreach ($aoGroup as $group) ​ 
 +
   //​транслит всех групп   //​транслит всех групп
-  $group->​path = translit($group->​name); ​    +  $group->​path = Core_Str::​transliteration($group->​name); ​    
   echo $group->​id."​ "​.$group->​name."​ !!! "​.$group->​path."<​br/>";​   echo $group->​id."​ "​.$group->​name."​ !!! "​.$group->​path."<​br/>";​
   $group->​save();​   $group->​save();​
Line 43: Line 44:
     $oItem = Core_Entity::​factory('​Shop_item'​);​     $oItem = Core_Entity::​factory('​Shop_item'​);​
     $oItem->​queryBuilder()     $oItem->​queryBuilder()
-       ​->​where('​shop_id',​ '​=',​ $shop_id) 
        ​->​where('​shop_group_id',​ '​=',​ $group->​id);​        ​->​where('​shop_group_id',​ '​=',​ $group->​id);​
     $aoItem = $oItem->​findAll(FALSE);​     $aoItem = $oItem->​findAll(FALSE);​
-    foreach ($aoItem as $item) { +    foreach ($aoItem as $item) ​ 
-      $item->​path = translit($item->​name); ​    +    ​
 +      $item->​path = Core_Str::​transliteration($item->​name); ​    
       echo $item->​name."​ !!! "​.$item->​path."<​br/>";​       echo $item->​name."​ !!! "​.$item->​path."<​br/>";​
       $item->​save();​       $item->​save();​
Line 54: Line 55:
   }   }
 } }
- + 
- +
-// функция превода текста с кириллицы в траскрипт +
-function translit($s) { +
-  //$s = (string) $s; // преобразуем в строковое значение +
-  $s = strip_tags($s);​ // убираем HTML-теги +
-  $s = str_replace(array("​\n",​ "​\r"​),​ " ", $s); // убираем перевод каретки +
-  $s = preg_replace("/​\s+/",​ ' ', $s); // удаляем повторяющие пробелы +
-  $s = trim($s); // убираем пробелы в начале и конце строки +
-  $s = function_exists('​mb_strtolower'​) ? mb_strtolower($s) : strtolower($s);​ // переводим строку в нижний регистр (иногда надо задать локаль) +
-  $s = strtr($s, array('​а'​=>'​a','​б'​=>'​b','​в'​=>'​v','​г'​=>'​g','​д'​=>'​d','​е'​=>'​e','​ё'​=>'​e','​ж'​=>'​j','​з'​=>'​z','​и'​=>'​i','​й'​=>'​y','​к'​=>'​k','​л'​=>'​l','​м'​=>'​m','​н'​=>'​n','​о'​=>'​o','​п'​=>'​p','​р'​=>'​r','​с'​=>'​s','​т'​=>'​t','​у'​=>'​u','​ф'​=>'​f','​х'​=>'​h','​ц'​=>'​c','​ч'​=>'​ch','​ш'​=>'​sh','​щ'​=>'​shch','​ы'​=>'​y','​э'​=>'​e','​ю'​=>'​yu','​я'​=>'​ya','​ъ'​=>'','​ь'​=>''​));​ +
-  $s = preg_replace("/​[^0-9a-z-_ ]/i", "",​ $s); // очищаем строку от недопустимых символов +
-  $s = str_replace("​ ", "​-",​ $s); // заменяем пробелы знаком минус +
-  return $s; // возвращаем результат +
-+
 /** /**
 * << Конец ​ * << Конец ​
private/koding/hostcms/modules/shop/useful/transliteracija.1458036946.txt.gz · Last modified: 15.03.16 в 13:15 by san-ma_yandex.ru