Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.14 KB | None | 0 0
  1. public function make_aliases()
  2.     {
  3.         //var_dump(str_replace("…",'-',$this->translit("BRAY СЕРИИ 20/21, DN 25…300, PN 10/16")));
  4.         //exit(12);
  5.         //ini_set('display_errors','ON');
  6.         $sql='SELECT pd.*,ua.* FROM '.DB_PREFIX.'product t  LEFT JOIN '.DB_PREFIX.'product_description pd ON(pd.product_id=t.product_id AND pd.language_id='.$this->config->get('config_language_id').')
  7.         LEFT JOIN '.DB_PREFIX.'url_alias ua ON(ua.query=CONCAT("product_id=",t.product_id)) where ua.keyword IS NULL OR ua.keyword="" ';
  8.         //$sql = 'SELECT * FROM '.DB_PREFIX.'url_alias';
  9.         $p_q=$this->db->query($sql);
  10.         //var_dump($p_q);
  11.         //exit($_SERVER['HTTP_REFERER']);
  12.        
  13.         //exit('test');
  14.         foreach($p_q->rows as $row)
  15.         {
  16.  
  17.             $alias=$this->translit( ( !empty($row['u_title']) ) ? $row['u_title'] : ( !empty($row['u_h1'] ) ? $row['u_h1'] : $row['name']));
  18.             //echo $alias.'<br>';
  19.             if($alias)
  20.             {
  21.                 $ex_q=$this->db->query('select * from '.DB_PREFIX.'url_alias WHERE keyword="'.$this->db->escape($alias).'"');
  22.                 if($ex_q->row) $alias.='_'.$row['product_id'];
  23.                 $this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'product_id=" . (int)$row['product_id'] . "', keyword = '" . $this->db->escape($alias) . "'");
  24.                
  25.             }
  26.         }
  27.        
  28.         $sql='SELECT pd.*,ua.* FROM '.DB_PREFIX.'information t  LEFT JOIN '.DB_PREFIX.'information_description pd ON(pd.information_id=t.information_id AND pd.language_id='.$this->config->get('config_language_id').')
  29.         LEFT JOIN '.DB_PREFIX.'url_alias ua ON(ua.query=CONCAT("information_id=",t.information_id)) where ua.keyword IS NULL OR ua.keyword="" ';
  30.        
  31.         $p_q=$this->db->query($sql);
  32.         //var_dump($p_q->row);
  33.         //exit($_SERVER['HTTP_REFERER']);
  34.        
  35.         //exit('test');
  36.         foreach($p_q->rows as $row)
  37.         {
  38.             $alias=$this->translit( $row['title'] );
  39.             //echo $alias.'<br>';
  40.             if($alias)
  41.             {
  42.                 $ex_q=$this->db->query('select * from '.DB_PREFIX.'url_alias WHERE keyword="'.$this->db->escape($alias).'"');
  43.                 if($ex_q->row) $alias.='_'.$row['information_id'];
  44.                 $this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'information_id=" . (int)$row['information_id'] . "', keyword = '" . $this->db->escape($alias) . "'");
  45.             }
  46.         }
  47.  
  48.  
  49.        
  50.  
  51.         $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'));
  52.         exit('12');
  53.     }
  54.    
  55.     private function translit($str_in)
  56.     {
  57.         $repls=array(
  58.             'а'=>'a', 'б'=>'b', 'в'=>'v', 'г'=>'g', 'д'=>'d', 'е'=>'e', 'ё'=>'e', 'ж'=>'j', 'з'=>'z', 'и'=>'i', 'й'=>'j', 'к'=>'k', 'л'=>'l',
  59.             'м'=>'m', 'н'=>'n', 'о'=>'o', 'п'=>'p', 'р'=>'r', 'с'=>'s', 'т'=>'t', 'у'=>'u', 'ф'=>'f',
  60.             'х'=>'h', 'ц'=>'c', 'ч'=>'ch', 'ш'=>'sch', 'щ'=>'sch','ь'=>'','ъ'=>'','ы'=>'y', 'э'=>'e', 'ю'=>'u', 'я'=>'ja',
  61.             '!'=>'', '@'=>'', '#'=>'', '$'=>'', '%'=>'', '^'=>'', '&'=>'-', '*'=>'', "  " => '-',
  62.             '('=>'', ')'=>'', '='=>'', '.'=>'', ','=>'', '?'=>'', '/'=>'-', '&quot;'=>'','quot' => '', '&quot' => '',
  63.             '\\'=>'', '|'=>'', '"'=>'', "'"=>'', ' '=>'-', '...' => '-', "…" => '-', '&amp;' => '-', 'amp;' => '-'
  64.         );
  65.         $str_in=mb_strtolower($str_in,'UTF-8');
  66.         $str_out=strtr($str_in,$repls);
  67.         return $str_out;
  68.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement