Muy buenos días a todos, este es mi primer aporte para la página y espero que les guste, ya para empezar los créditos son para Angel (DXDrHank86), 002 y Freack…. Si me olvide de alguien pido disculpas, esta guía de url’s amigables es para Ultimos posts, top post, sticky, últimos comentarios, y posts relacionados, ahi al final de yapa dejo como se hace para que al poner el buscador amigable ejecute su funcion, el gran problema que habia a muchos es que al aplicar las url's amigables en determinadas partes "NO" agarraba las categorias, sin mas preámbulos empecemos luego de hacer un backup (copia de seguridad) de los archivos:
Guia url amigables
Abrir recent.template de su theme… que esta en la carpeta Themes
Buscar por
href="', $scripturl ,'?topic=', $st['id'],'"
remplaza por esto
href="/post/',urls_amigables($st['id']),'/'.urls_amigables($st['category']), '/',urls_amigables($st['title']), '.html"
busca por
href="', $scripturl ,'?topic=', $np['id'],'"
Reemplaza por
href="/post/',urls_amigables($np['id']),'/'.urls_amigables($np['category']), '/',urls_amigables($np['title']), '.html"
Ahora al SSI
Buscar por
<?php
Despues agregar:
include_once('includes/urls_amigables.php');-ahora en el acciones-sp-1.1.js colocamos una ( / ) a los siguiente archivo y nos quedara asi
Busca:
url: 'add_comment.php',
Remplaza por:
url: '/add_comment.php',
Busca por:
url: 'index.php?action=enviar-puntos;do=sendmoney2;ajax=1;topic=' + id +
Remplaza por
url: '/index.php?action=enviar-puntos;do=sendmoney2;ajax=1;topic=' + id +
Busca por
url: 'index.php?action=favoritos;sa=add;ajax=1;topic=' + id ,
Remplaza por
url: '/index.php?action=favoritos;sa=add;ajax=1;topic=' + id ,
Hasta aca nadie tenia problemas con las url’s amigables… pero cuando uno quería poner en comentarios, en los top posts y demás yerbas ya no les salía la categoría… entonces:
Continuamos en el recent.template, buscamos:
function ultimos_comments()
{
global $context, $settings, $scripturl, $txt, $db_prefix, $ID_MEMBER;
global $user_info, $modSettings, $func;
$rs = db_query("SELECT c.id_post, c.id_coment, m.subject, m.ID_TOPIC, c.id_user, mem.ID_MEMBER, mem.RealName, mem.memberName
FROM ({$db_prefix}comentarios AS c, {$db_prefix}messages AS m, {$db_prefix}members AS mem)
WHERE id_post = m.ID_TOPIC AND c.id_user = mem.ID_MEMBER
ORDER BY c.id_coment DESC
LIMIT 15", __FILE__, __LINE__);
$context['ult_comms'] = array();
while ($row = mysql_fetch_assoc($rs))
$context['ult_comms'][] = array(
'id_comment' => $row['id_coment'],
'titulo' => $row['subject'],
'ID_TOPIC' => $row['ID_TOPIC'],
'memberName' => $row['memberName'],
'RealName' => $row['RealName'],
);
mysql_free_result($rs);
foreach ($context['ult_comms'] as $comments){
echo '<font class="size11" title="'. $comments['titulo'] .'"><b>'.$comments['RealName'].'</b> - <a href="'.$scripturl.'?topic='.$comments['ID_TOPIC'].'#cmt_'.$comments['id_comment'] .'">'.$comments['titulo'].'</a></font><br />';
}
}
Y lo remplazamos por:
function ultimos_comments()
{
global $context, $settings, $scripturl, $txt, $db_prefix, $ID_MEMBER;
global $user_info, $modSettings, $func;
$rs = db_query("SELECT c.id_post, c.id_coment, m.subject, m.ID_TOPIC, m.ID_BOARD, c.id_user, mem.ID_MEMBER, mem.RealName, mem.memberName, b.ID_BOARD, b.name AS bname
FROM ({$db_prefix}comentarios AS c, {$db_prefix}messages AS m, {$db_prefix}members AS mem, {$db_prefix}boards AS b)
WHERE id_post = m.ID_TOPIC AND c.id_user = mem.ID_MEMBER
AND m.ID_BOARD = b.ID_BOARD
ORDER BY c.id_coment DESC
LIMIT 15", __FILE__, __LINE__);
$context['ult_comms'] = array();
while ($row = mysql_fetch_assoc($rs))
$context['ult_comms'][] = array(
'id_comment' => $row['id_coment'],
'titulo' => $row['subject'],
'ID_TOPIC' => $row['ID_TOPIC'],
'memberName' => $row['memberName'],
'RealName' => $row['RealName'],
'bname' => $row['bname'],
);
mysql_free_result($rs);
foreach ($context['ult_comms'] as $comments){
echo '<font class="size11" title="'. $comments['titulo'] .'"><b>'.$comments['RealName'].'</b> - <a href="/post/'.urls_amigables($comments['ID_TOPIC']).'/'.$comments['bname'].'/'.urls_amigables($comments['titulo']).'.html#cmt_'.$comments['id_comment'] .'">'.$comments['titulo'].'</a></font><br />';
}
}
Era uno de los grandes problemas con las url’s amigables, otro de ellos era en top posts… busca por:
href="', $scripturl ,'?topic=', $tpw['id'], '">
remplaza por:
href="/post/',urls_amigables($tpw['id']),'/'.urls_amigables($tpw['categoria']), '/',urls_amigables($tpw['titulo']), '.html">
Ahora abren el archivo Recent.php que esta en la carpeta Sources
Buscan:
$request = db_query("
SELECT m.subject, m.ID_TOPIC, t.ID_TOPIC, t.puntos
FROM {$db_prefix}topics AS t INNER JOIN {$db_prefix}messages AS m ON t.ID_TOPIC = m.ID_TOPIC
WHERE m.posterTime > $starttime
ORDER BY t.puntos DESC
LIMIT 10", __FILE__, __LINE__);
$context['top_posts_week'] = array();
while ($row = mysql_fetch_assoc($request))
$context['top_posts_week'][] = array(
'titulo' => $row['subject'],
'puntos' => $row['puntos'],
'id' => $row['ID_TOPIC']
);
mysql_free_result($request);Y remplazan por:
$request = db_query("
SELECT m.subject, m.ID_TOPIC, t.ID_TOPIC, t.puntos, b.name
FROM ({$db_prefix}topics AS t INNER JOIN {$db_prefix}messages AS m, {$db_prefix}boards AS b)
WHERE t.ID_TOPIC = m.ID_TOPIC
AND b.ID_BOARD = m.ID_BOARD
AND m.posterTime > $starttime
ORDER BY t.puntos DESC
LIMIT 10 ", __FILE__, __LINE__);
$context['top_posts_week'] = array();
while ($row = mysql_fetch_assoc($request))
$context['top_posts_week'][] = array(
'titulo' => $row['subject'],
'puntos' => $row['puntos'],
'categoria' => $row['name'],
'id' => $row['ID_TOPIC'],
);
mysql_free_result($request);Ahora hagamos amigables los posts relacionados :D
Abren su display.template que esta en la carpeta Themes
Buscan:
href="', $scripturl ,'?topic='.$posts10['id'].'"
y lo remplazan por:
href="/post/',urls_amigables($posts10['id']),'/'.urls_amigables($posts10['bname']), '/',urls_amigables($posts10['subject']), '.html "
Ahora vamos al archivo .htacces que se encuentra en la raíz
Buscan:
RewriteEngine on
Abajo agregan:
RewriteRule ^post/([^/]*)/([^/]*)/([^/]*)\.html$ /?topic=$1&id_board=$2&body=$3 [L]
Rewriterule ^post/(.*)$ index.php?topic=$1
Suben la carpeta includes que esta en este post a la raiz:
http://spirate.net/foro/tutoriales-de-ayuda/(tuto)como-agregar-url-amigables-donde-se-quiera-(v2-3)/ Ah y otra cosa mas… algunos habran intentado poner url’s amigables con el .httacces con el buscador poniendo asi:
Rewriterule ^buscar(.*)$ index.php?action=search
Y luego en el index.template buscaron:
El href="', $scripturl, '?action=search y luego lo cambiaron por
a href="', $scripturl, '/buscar "
a mi personalmente esto “NO” me funciono, para que me funcionara lo cambie por
a href="', $url, '/buscar "
y luego busque en el search.template:
<br><form name="buscador" method="GET"><center>
Y lo cambie por:
<br><form name="buscador" action="/" method="GET"><center>
Sin estos cambios el buscador no encuentro nada con las amigables
Además en el index.template en vez de usar
', $scripturl, '
usaba
', $url, '
Lo digo por si a alguien no le funciona y prueba como yo lo probe… si ven abajo en mi pagina por ejemplo en el pie veran protocolo, terminus y condiciones y otras cosas con urls amigables, solo me funcionan poniendo: ', $url, '/protocolo NO ', $scripturl, '/protocolo
Que pasaba si ponía ', $scripturl, ' se preguntaran, sencillo, me iba a un post y cuando apretaba por ejemplo protocolo… se agregaba al final del url /protocolo y NO me redirigía al protocolo
Se que no es aun 100% amigable… pero poco a poco se hara :) con la ayuda de todos
Por favor si dejan puntos no me lo den a mi, den a los que sudaron la gota gorda para esto, yo solo lo publique... los creditos estan arriba... denle los puntos a ellos ;)
Mi web para que vean las amigables:
www.vinculame.comSi algo no les salio me avisan porfa