Подскажите как переделать ЧПУ

trOid
На сайте с 08.05.2007
Offline
77
628

Добрый день.

на данный момент он такой: site.ru/news/2013/03/22/549/

Нужно чтобы url был вида site.ru/news/titul-novosti/549/

Помогите пожалуйста. cms самопис.

файл .htaccess

Action throw /index.php

<FilesMatch "^([^.]+)$">
ForceType throw
</FilesMatch>

<FilesMatch index.php>
ForceType application/x-httpd-php
</FilesMatch>

кусок кода в functions.php

function getVar($id,$varname) {

//Получить переменную
global $siteprefix;
$res=@mysql_query("select * from `".$siteprefix."vars` where parent='".$id."' and name='".$varname."';");
$n=@mysql_numrows($res);
if ($n>0) {
$retVal=@mysql_result($res,0,"value");
} else {
// mysql_query("insert into `".$siteprefix."vars`(name,parent,value) values('defaultcats',".$id.",'');");
$retVal='';
}
return $retVal;
}
function setVar($id,$varname,$value) {
//Запись переменной
global $siteprefix;
$value=mysql_escape_string($value);

$res=@mysql_query("select * from `".$siteprefix."vars` where parent='".$id."' and name='".$varname."';");
$n=@mysql_numrows($res);
if ($n>0) {
@mysql_query("update `".$siteprefix."vars` set value='".$value."' where name='".$varname."' and parent=".$id.";");
} else {
@mysql_query("insert into `".$siteprefix."vars`(name,parent,value) values('".$varname."',".$id.",'".$value."');");
}
}

function htmlspechars($var) {
$var=str_replace('"','***039;',$var);
$var=str_replace('№','N',$var);
$var=str_replace("'",'&quot;',$var);
$var=str_replace("<",'&lt;',$var);
$var=str_replace(">",'&gt;',$var);
$var1='';
for($i=0;$i<strlen($var);$i++) {
if((substr($var,$i,1)<' ') and (substr($var,$i,1)<>chr(9))) {
$var1.=' ';
} else {
$var1.=substr($var,$i,1);
}
}
return trim($var1);
}

function conv($tmp) {
global $trans;
$a1="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя";
$a2="abvgdeejziiklmnoprstufhchss-i-euyabvgdeejziiklmnoprstufhchss-i-euy";
$tmp=strtr($tmp,$a1,$a2);
$tmp=trim(strtolower(strtr($tmp, $trans)));
return $tmp;
}

function low($txt) {
$a1="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ";
$a2="абвгдеёжзийклмнопрстуфхцчшщьъыэюя";
$tmp=strtolower($txt);
$tmp=strtr($tmp,$a1,$a2);
return $tmp;
};

function high($txt) {
$a1="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ";
$a2="абвгдеёжзийклмнопрстуфхцчшщьъыэюя";
$tmp=strtoupper($txt);
$tmp=strtr($tmp,$a2,$a1);
return $tmp;
};

function firstUp($var) {
if ($var<>"") {
$var=high(strtoupper(substr($var,0,1))).low(substr($var,1,strlen($var)-1));
}
return $var;
}

function urltext($str) {
//Converts all links in text to normal hyperlinks
$str = ereg_replace("((www.)([a-zA-Z0-9@:%_.~#-\?&]+[a-zA-Z0-9@:%_~#\?&/]))", "http://\\1", $str);
$str = ereg_replace("((ftp://|http://|https://){2})([a-zA-Z0-9@:%_.~#-\?&]+[a-zA-Z0-9@:%_~#\?&/])", "http://\\3", $str);
$str = ereg_replace("(((ftp://|http://|https://){1})[a-zA-Z0-9@:%_.~#-\?&]+[a-zA-Z0-9@:%_~#\?&/])", "<A HREF=\"\\1\" TARGET=\"_blank\" class=read>\\1</A>", $str);
$str = ereg_replace("([_\.0-9A-Za-z-]+@([0-9A-Za-z][0-9A-Za-z-]+\.)+[a-zA-Z]{2,3})","<A HREF=\"mailto:\\1\" class=read>\\1</A>", $str);
return $str;
}
//--------------
function CreateHREF($hf, $bod, $tx, $cla) {
print "<a href=".$hf."/".$bod." class=".$cla.">".$tx."</a>\n";
}
//--------------

вывод новостей в main.php

<?php

if($countid>0) {
print '<div class="newsblock">';
$resd=mysql_query("select * from `".$siteprefix."news` where access<=$access and cat=$newsCat and vis=1 order by ymd desc,id DESC LIMIT 0, 3;");
$n=mysql_numrows($resd);
for ($i=0;$i<$n;$i++) {
$name=mysql_result($resd,$i,'name');
$thumb=mysql_result($resd,$i,'thumb');
$announce=mysql_result($resd,$i,'announce');

if (strlen(strip_tags($announce))>1) {
$text=strip_tags($announce);
} else {
$text=strip_tags(mysql_result($resd,$i,'text'));
if (strlen($text)>250) {
$text=substr($text,0,247).'...';
}
}
$y=mysql_result($resd,$i,'y');
$m=fixDate(mysql_result($resd,$i,'m'));
$d=fixDate(mysql_result($resd,$i,'d'));
$ncreed=mysql_result($resd,$i,'id');
print '<div class="post">
<p class="href"><a title="'.$name.'" href="'.dbstructure($newsCat,"innerpath").dbstructure($newsCat,"alias").'/'.$y.'/'.$m.'/'.$d.'/'.$ncreed.'/">'.$name.'</a></p>
<div class="newsdate">
<span>'.$d.' '.month2str($m,1).' '.$y.'</span>
</div>
<p>'.$announce.'<br><a title="'.$name.'" href="'.dbstructure($newsCat,"innerpath").dbstructure($newsCat,"alias").'/'.$y.'/'.$m.'/'.$d.'/'.$ncreed.'/">читать далее...</a></p>
</div>';
}
print '</div>';
}
?>
maldivec
На сайте с 04.11.2008
Offline
160
#1

Забавно.

Думаете тут кому-то захочется ковырять такой говнокод? :) Тем более что это далеко не все файлы, которые надо смотреть. Я бы даже сказал - вообще не те файлы )))

trOid
На сайте с 08.05.2007
Offline
77
#2

ясно, надеялся на помощь...

говнокод не мой, я вообще не кодю

IL
На сайте с 20.04.2007
Offline
435
#3
trOid:
ясно, надеялся на помощь...

1. данных файлов недостаточно, чтобы ЧПУ полноценно заработал (кроме формирования ссылки нужна ведь ещё и обратная процедура - вывод по ссылке с ЧПУ нужной страницы).

2. Вряд ли кто-то займётся этим из "спортивного" интереса..

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Plutishe
На сайте с 06.03.2006
Offline
205
#4

не WP случаем?

Хостинг за РУБЛИ (http://yousite.ru/h) | VPS/VDS на платформе: XEN c администрированием (http://yousite.ru/v) | Регистрация доменов (http://yousite.ru/d)
IL
На сайте с 20.04.2007
Offline
435
#5
Plutishe:
не WP случаем?

не.. не он: (10)

trOid:
cms самопис.
trOid
На сайте с 08.05.2007
Offline
77
#6
ivan-lev:
1. данных файлов недостаточно, чтобы ЧПУ полноценно заработал (кроме формирования ссылки нужна ведь ещё и обратная процедура - вывод по ссылке с ЧПУ нужной страницы).

я же дал код файла main.php

<div class="post">
<p class="href"><a title="'.$name.'" href="'.dbstructure($newsCat,"innerpath").dbstructure($newsCat,"alias").'/'.$y.'/'.$m.'/'.$d.'/'.$ncreed.'/">'.$name.'</a></p>
<div class="newsdate">
<span>'.$d.' '.month2str($m,1).' '.$y.'</span>
</div>
<p>'.$announce.'<br><a title="'.$name.'" href="'.dbstructure($newsCat,"innerpath").dbstructure($newsCat,"alias").'/'.$y.'/'.$m.'/'.$d.'/'.$ncreed.'/">читать далее...</a></p>
</div>

если это не то, то что примерно искать?

IL
На сайте с 20.04.2007
Offline
435
#7
trOid:
говнокод не мой, я вообще не кодю
trOid:
если это не то, то что примерно искать?

Программиста..

Вы ведь и не поняли (или я плохо объяснил)

ivan-lev:
1. данных файлов недостаточно, чтобы ЧПУ полноценно заработал (кроме формирования ссылки нужна ведь ещё и обратная процедура - вывод по ссылке с ЧПУ нужной страницы).
trOid:
я же дал код файла main.php

В main.php формируются ссылки ЧПУ.. (кстати, не факт, что они ещё где-нибудь не формируется.. есть шанс, что придётся по всему движку бегать.)

А обратная процедура - на странице, у которой адрес - это тот самый сформированный ЧПУ... Вывод соответствующей новости.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий