Eliminare ID articoli Joomla 3.x.x

Questo metodo funziona sia per la versione 2.5 Joomla sia per la versione 3. Lo svantaggio di questo metodo è che ogni volta che si aggiorna la versione di Joomla bisogna rifare le modifiche al file, o semplicemente sovrascriverlo con uno che terremo conservato. 

Il file oggetto di modifica è router.php che si trova nel percorso:

tuosito / components / com_content / router.php.

Cercare la riga (circa 27):

$advanced = $params->get('sef_advanced_link', 0);

E sostituirla con:

$advanced = $params->get('sef_advanced_link', 1);

Trovare la riga (in Joomla 2,5 - circa la riga 228; in Joomla 3 - 250):

$advanced = $params->get('sef_advanced_link', 0);

Sostituirla con:

$advanced = $params->get('sef_advanced_link', 1);

Ora scendiamo un po’ giù (in Joomla 2.5 – la riga 228; in Joomla 3 – la riga 272) e troviamo questo pezzo di codice:

if (strpos($segments[0], ':') === false)
{
$vars['view'] = 'article'; 
$vars['id'] = (int) $segments[0];
return $vars;
}

Lo commentiamo, facendo cosi il codice non sarà più attivo. Per inserire i commenti usiamo: /**/

Quindi avremo:

/*if (strpos($segments[0], ':') === false)
{
$vars['view'] = 'article';
$vars['id'] = (int) $segments[0];
return $vars;
}*/

Ora i link dei articoli sul vostro sito in Joomla 2.5/3 vengono visualizzati senza ID. In Joomla 3 potrete trovare l'errore 404 utilizzando questo metodo, in particolar modo nelle prime versioni, consigliamo di aggiornare prima di eseguire la modifica e non sarà necessario proseguire oltre a quello già fatto, perché la parte che vedremo tra poco la troveremo già modificata nelle nuove versioni.

Sempre nello stesso file router.php:

tuosito/ components / com_content / router.php

trovare la riga 376 (in diverse versioni di Joomla questa riga può essere diversa):

->where($db->quoteName('alias') . ' = ' . $db->quote($db->quote($segment)));

E sostituirla con:

->where($db->quoteName('alias') . ' = ' . $db->quote($segment));

Fatto ciò, tutti i link apriranno le pagine correttamente e senza errori, senza riportare ID.