This is an old revision of the document!
Пример php скрипта, который редактирует path в ЧПУ для товаров интернет магазина.
<?php /** * транслит всех групп интернет магазина и итемов определенной корневой группы * * @author Malinovskii Aleksandr, KAD Systems (©) 2016 * @date 15-03-2016 * Начало >> */ //id интернет магазина $shop_id = 0; // id корневой группы итемов $top_group_id = 0; include('bootstrap.php'); $oGroup = Core_Entity::factory('Shop_Group'); $oGroup->queryBuilder() ->where('shop_id', '=', $shop_id); $aoGroup = $oGroup->findAll(FALSE); foreach ($aoGroup as $group) { //транслит всех групп $group->path = translit($group->name); echo $group->id." ".$group->name." !!! ".$group->path."<br/>"; $group->save(); //транслит итемов определенной корневой группы $oShop_Group = $group; while ($oShop_Group->parent_id) { $oShop_Group = $oShop_Group->getParent(); } if ($oShop_Group->id == $top_group_id) { $oItem = Core_Entity::factory('Shop_item'); $oItem->queryBuilder() ->where('shop_id', '=', $shop_id) ->where('shop_group_id', '=', $group->id); $aoItem = $oItem->findAll(FALSE); foreach ($aoItem as $item) { $item->path = translit($item->name); echo $item->name." !!! ".$item->path."<br/>"; $item->save(); } echo "<br/>"; } } // функция превода текста с кириллицы в траскрипт 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; // возвращаем результат } /** * << Конец * @author Malinovskii Aleksandr, KAD Systems (©) 2016 * @date 15-03-2016 */ ?>