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

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
*/
?>
private/koding/hostcms/modules/shop/useful/transliteracija.1458036946.txt.gz · Last modified: 15.03.16 в 13:15 by san-ma_yandex.ru