This shows you the differences between two versions of the page.
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; // возвращаем результат | + | |
- | } | + | |
/** | /** | ||
* << Конец | * << Конец |