Задание: привести урлы форума к виду http://localhost/punbb/forum-1.html ... forum-5.html и т.д., урлы топиков к виду http://localhost/punbb/sujet-1.html ... sujet-38.html и т.д.
Дополнительно: убрать ненашенское имя sujet на более приличное например topic
Открыть файл viewforum.php
Найти
$subject = $lang_forum['Moved'].': <a href="viewtopic.php?id='.$cur_topic['moved_to'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
else if ($cur_topic['closed'] == '0')
$subject = '<a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
else
{
$subject = '<a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
Заменить на
$subject = $lang_forum['Moved'].': <a href="sujet-'.$cur_topic['id'].pun_url($cur_topic['subject']).'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
else if ($cur_topic['closed'] == '0')
$subject = '<a href="sujet-'.$cur_topic['id'].pun_url($cur_topic['subject']).'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
Открыть файл include/function.php
Добавть в конец следующий код
function pun_url($str,$more=false) {
if((!isset($more)) || ($more == false)){
$max = 2;
}else{
$max = $more;
}
$str = strtr($str,"?????????????????????????????????????????????????????'`",
"AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc ");
$str = strtolower($str);
$str = preg_replace('/[^a-z0-9_\.\s]/',' ',$str);
$str = preg_replace('/[^a-z0-9_\s]\./','',trim($str));
$str = str_replace('.',' ',$str);
$str = str_replace('_',' ',$str);
$str = " ".$str." ";
$str = ereg_replace(' .{1,'.$max.'} ', ' ', $str);
$str = ereg_replace(' .{1,'.$max.'} ', ' ', $str);
$rep = array(" quel ", " crois ", " etes ", " quand ", " suis ", " aux "," moi ", " sont ", " quelle ", " quoi ", " mon ", " est ", " plus ", " que ", " vous ", " faites ", " par "," dans "," pour "," pas "," les "," des "," que "," une "," avec "," qui "," sur "," mes ");
$str = str_replace($rep," ",$str);
$str = trim($str);
$str = preg_replace('/[\s]+/','-',$str);
if(count(explode("-", $str)) >= 8){
$max++;
$str = pun_url(str_replace('-',' ',$str),$max);
}
if(!$more){
if((!isset($str)) || ($str == "")){
$str = ".html";
}
}
return $str;
}
Мы получили, что топики с русскими названиями в виде урла идут сейчас как sujet-5.html, а вот если название английское (например, dsdsd), то получается http://localhost/punbb/sujet-16dsdsd.
Вопрос: где и что еще надо заменить, дабы решить задачу на 100% ?