Русские категории для phpprobid
25.07.2011
У сайтов на phpprobid есть одна особенность – при русификации и оформлении русских категорий в панели и на главной и других страницах сайта, русский язык не транслируется, а как бы просто убирается. Если в английской версии ссылка имеет вид сайт/Century-Antiques,category,216 , то категории на русском выводятся уже в виде сайт/–,category,230. Недоразумение вроде бы и не критичное, но совсем не красиво в форме отображения.
Решение для преобразования есть и ниже опишем необходимые действия. Предлагаем внести изменения в файл /includes/functions_date.php. Заменить в нем всю функцию function show_date на следующее:
function sanitize_var($value){
$translation = array(
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
"Е"=>"E","Ё"=>"JO","Ж"=>"ZH",
"З"=>"Z","И"=>"I","Й"=>"JJ","К"=>"K","Л"=>"L",
"М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
"С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"KH",
"Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
"Ы"=>"Y","Ь"=>"","Э"=>"EH","Ю"=>"YU","Я"=>"YA",
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
"е"=>"e","ё"=>"jo","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"jj","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"kh",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
"ы"=>"y","ь"=>"","э"=>"eh","ю"=>"yu","я"=>"ya"
);
$value = strtr($value,$translation);
if (!is_numeric($value)){
$value = ereg_replace("[^A-Za-z0-9_ ]", "", $value);
$value = str_replace('amp','and',$value);
$value = str_replace('quot','',$value);
$value = str_replace('039','',$value);
$value = str_replace(' ','-',$value);
}
return $value;
}
Тем самым русские буквы категорий в ссылке заменяются на свои аналоги и очищаются от нежелательных включений. Результат работы измененой функции представлены на шорт картинке
или вы можете посмотреть воочию на демо сайте. На демо сайте используются только несколько категорий, но даже на этих коротких примерах вполне видна корректность преобразования русских букв в урлах на сайте.
Тест на демо сайте показывает, что вносимые изменения практически не приводят к увеличению времени развертывания страницы и какому либо сильному увеличению нагрузки на сервер.
Возможно, это и не столь необходимое изменение. Кого-то вполне устроит и тот вид ссылок, который выдает сам аукцион. Предлагаемые изменения чисто косметические, более наглядны для глаз, более логичны для вывода информации.
Если у вас есть другой путь решения, то неплохо бы было поделиться с сообществом и вашими наработками.
Прошла непреднамеренная ошибка и статья была разделена на две части. Вторую часть по изменению файлов для верного отображения дат на аукционе читайте позднее. Причина проблемы в обновлении синтаксхайлайтера (подсветка кода) и глюк css в IE с наползанием текстов и развертки. Пришлось затратить время на исправления.