Код: Выделить всё
class Helper {
public static function translit($model)
{
$charset = 'utf-8';
$replace=array(
"'"=>"",
"`"=>"",
"а"=>"a","А"=>"a",
"б"=>"b","Б"=>"b",
"в"=>"v","В"=>"v",
"г"=>"g","Г"=>"g",
"д"=>"d","Д"=>"d",
"е"=>"e","Е"=>"e",
"ж"=>"zh","Ж"=>"zh",
"з"=>"z","З"=>"z",
"и"=>"i","И"=>"i",
"й"=>"y","Й"=>"y",
"к"=>"k","К"=>"k",
"л"=>"l","Л"=>"l",
"м"=>"m","М"=>"m",
"н"=>"n","Н"=>"n",
"о"=>"o","О"=>"o",
"п"=>"p","П"=>"p",
"р"=>"r","Р"=>"r",
"с"=>"s","С"=>"s",
"т"=>"t","Т"=>"t",
"у"=>"u","У"=>"u",
"ф"=>"f","Ф"=>"f",
"х"=>"h","Х"=>"h",
"ц"=>"c","Ц"=>"c",
"ч"=>"ch","Ч"=>"ch",
"ш"=>"sh","Ш"=>"sh",
"щ"=>"sch","Щ"=>"sch",
"ъ"=>"","Ъ"=>"",
"ы"=>"y","Ы"=>"y",
"ь"=>"","Ь"=>"",
"э"=>"e","Э"=>"e",
"ю"=>"yu","Ю"=>"yu",
"я"=>"ya","Я"=>"ya",
"і"=>"i","І"=>"i",
"ї"=>"yi","Ї"=>"yi",
"є"=>"e","Є"=>"e"
);
$var = preg_replace( "/\s+/ms", "_", $model->title );
$model->alias = iconv($charset, $charset."//IGNORE", strtr($var, $replace));
}
public static function create_descr($model)
{
if(!empty($model->description)) return '';
$var = $model->title . ' ' . $model->full;
$replace = array( "\x27", "\x22", "\x60", "\t","\n","\r",'"',"'", '\r', '\n', "/", "\\"," ");
$var = trim(strip_tags($var));
$var = str_replace($replace, '', $var );
$model->description = substr(strip_tags(stripslashes($var)), 0, 190);
}
public static function create_keywords($model)
{
if(!empty($model->keywords)) return '';
$var = $model->title . ' ' . $model->full;
$new_array = array();
$keyword_count = 20;
$replace = array( "\x27", "\x22", "\x60", "\t","\n","\r",'"',"'",",",".", '\r', '\n', "/", "\\"," ");
$var = trim(strip_tags($var));
$var = str_replace($replace, '', $var );
$array = explode(" ", $var);
foreach ($array as $word)
{
if(strlen($word) > 4) $new_array[] = $word;
if(count($new_array) > 19) { break; }
}
$model->keywords = implode (", ", $new_array);
}
}
вроде все работает.
Если админ не указал дескрипшин или кейвродс то он генерится из титла и текста, если указал то вставляем указанный