Ultima versione
Versione stabile:
3.1.5
 
Servizi
» Cerca
 
Cerca
Ricerca parole o frasi all’interno del sito.
 
Statistiche
Visite: 1205
 
Donazioni
Flatnuke e' software libero ed e' distribuito grautitamente. Se pensi che flatnuke ti sia stato in qualche modo di aiuto, puoi contribuire con una donazione libera:

Vuoi saperne di piu'?

 
Login





Non sei ancora registrato?
Registrati ora!
Recupera password
Choose your language:
deutsch english espa?ol fran?ais italiano portugu?s
 
Utenti
Persone on-line:
admins 0 amministratori
users 0 utenti
guests 3 ospiti
 
Netsons Ads

Forum



Benvenuto sconosciutoModifica profiloEntraAiuto 1073 utenti registrati

Navigazione:

[ Forum / Flatnuke / Le sezioni / Permalinks ]

Vai alla pagina:
<< <  

UtenteMessaggio
dan
dan

0
10
Livello 0

levellevellevellevellevellevellevellevellevellevel
profile 
Martedi 06 Maggio 2014 17:34:39

Re: Permalinks

Allora:
nel file functions.php ho inserito la seguente funzione
function CleanString($string)
{
$strResult = str_ireplace("à", "a", $string);
$strResult = str_ireplace("á", "a", $strResult);
$strResult = str_ireplace("è", "e", $strResult);
$strResult = str_ireplace("é", "e", $strResult);
$strResult = str_ireplace("ì", "i", $strResult);
$strResult = str_ireplace("í", "i", $strResult);
$strResult = str_ireplace("ò", "o", $strResult);
$strResult = str_ireplace("ó", "o", $strResult);
$strResult = str_ireplace("ù", "u", $strResult);
$strResult = str_ireplace("ú", "u", $strResult);
$strResult = str_ireplace("ç", "c", $strResult);
$strResult = str_ireplace("ö", "o", $strResult);
$strResult = str_ireplace("û", "u", $strResult);
$strResult = str_ireplace("ê", "e", $strResult);
$strResult = str_ireplace("ü", "u", $strResult);
$strResult = str_ireplace("ë", "e", $strResult);
$strResult = str_ireplace("ä", "a", $strResult);
$strResult = str_ireplace("'", "-", $strResult);

$strResult = preg_replace('/[^A-Za-z0-9 ]/', "", $strResult);
$strResult = trim($strResult);
$strResult = preg_replace('/[ ]{2,}/', "-", $strResult);

$strResult = str_replace(" ", "-", $strResult);

return strtolower($strResult);
}

nel file flatnews/include/news_view.php alla riga 613 circa (sto usando la versione 4.0.0) ho modificato il link "Leggi tutto" con il seguente:
href='".CleanString($title).".$news''  ........(il resto invariato)

ho modificato il file .htaccess inserendo ciò che segue:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-]+).([0-9]{10})$ /index.php?action=viewnews&news=$2 [L]


Risultato: le news vengono riscritte nel seguente formato (che volendo si può modificare) nomesito/nome-news.timestamp (qui un esempio, scusate ancora lo spam ma sto facendo le prove nel mio sito)
Ho inserito il timestamp alla fine perché ho letto che alle ultime parole di un url google da meno peso. Sicuramente si può fare di meglio, tipo non mostrare il timestamp/id come fa Wordpress, ma ho notato che molti siti adottano il metodo del "mantenere" l'id nell'url riscritto. Un'altra cosa utile da implementare potrebbe essere una textbox in fase di inserimento news che permetta di modificare il risultato dell'url, ad esempio nel caso si avesse un titolo lungo (ho letto che è consigliabile mantenere i titoli degli url relativamente brevi).
bebabi34
bebabi34

0
10
Livello 10

levellevellevellevellevellevellevellevellevellevel
profile home page
Skype
Mercoledi 07 Maggio 2014 11:39:29

Ultima modifica di bebabi34 (Mercoledi 07 Maggio 2014 11:41:12)

Re: Permalinks

ottimo.
se vuoi giocare un po' con le regex mi sembra che tu possa inserire anche /yyyy/mm/ nella stringa di replacerule per avere
sito/yyyy/mm/titolo.timestamp come wordpress
per il link
href='".date("Y",$news)."/".date("m",$news)."/".CleanString($title)...

EDIT
bella la gestione account nella barra alta. se vuoi mandare una patch...
dan
dan

0
10
Livello 0

levellevellevellevellevellevellevellevellevellevel
profile 
Mercoledi 07 Maggio 2014 13:06:35

Ultima modifica di dan (Mercoledi 07 Maggio 2014 13:51:07)

Re: Permalinks

Come posso mandare una patch? Scrivo qui oppure c'è un link a github o simili?

EDIT: nel dubbio nel frattempo posto qui la patch
In pratica ho creato una funzione nel file del tema theme.php create_login (che in sostanza è una scopiazzatura del codice login che c'è già in flatnuke) e l'ho richiamata in structure.php usando le opportune classi di Bootstrap
N.B. ho anche modificato un file del login cambiando un "input name" da 'nome' a 'regnome', altrimenti dava dei problemi in fase di registrazione (poiché anche il form del login nell'header aveva lo stesso nome e andava in conflitto, dicendo che non era stato inserito il nome utente)
bebabi34
bebabi34

0
10
Livello 10

levellevellevellevellevellevellevellevellevellevel
profile home page
Skype
Giovedi 08 Maggio 2014 21:21:11

Ultima modifica di bebabi34 (Giovedi 08 Maggio 2014 22:07:00)

Re: Permalinks

patch copiata.
qualche sviluppatore è molto interessato alla tua soluzione, ma sono timidi per farsi sentire qui;)
se linki (che bbrutta parola!) una pagina su cui fai dei test di sviluppo non è spam, anzi.
ho provato ad aggiungere anno e mese, ma non mi funziona (le espressioni non sono il mio forte:()

RewriteRule ^([0-9]{4,4}\/[0-1][0-9]\/[a-zA-Z0-9-]+).([0-9]{10})$ /index.php?action=viewnews&news=$2 [L]

cos'ho sbagliato/dimenticato?

per il link in news_view href='".date('Y\/m\/',$news).CleanString($title)... funziona correttamente.

EDIT
ps (dubbio esistenziale)
ma in questo modo non si rischia di affidarsi troppo a condizioni esterne a fn? è garantito che ogni server abbia mod_redirect abilitato? l'alternativa, certo, è rivoluzionare la gestione delle news con sub-sub-dir ecc...

EDIT
no, se si usano le subdirectory con / vanno a banane tutti gli altri link. la forma /anno/mese/... è quindi da scartare, credo.
bebabi34
bebabi34

0
10
Livello 10

levellevellevellevellevellevellevellevellevellevel
profile home page
Skype
Giovedi 08 Maggio 2014 22:49:03

Re: Permalinks

ho caricato il permalink di leggi tutto sul cvs.

la funzione l'ho inserita in news_functions.
promemoria: non è che forse esiste già un'altra funzione di fn che fa più o meno la stessa cosa? controllare per evitare doppioni.

nel .htaccess non ho specificato RewriteEngine On che c'è già molto prima.

grazie.:bier:
bebabi34
bebabi34

0
10
Livello 10

levellevellevellevellevellevellevellevellevellevel
profile home page
Skype
Giovedi 08 Maggio 2014 23:22:49

Re: Permalinks

ocho.
avendo tolto dal link la $modstring, funziona per la sezione di notizie di default ma non per eventuali altre sezioni di news.
bisogna aggiungere questo parametro al rewrite.

il link può diventare
titolonews.albero_sezioni_contenenti_sezione-di-notizie.timestamp

sostituendo / con _ nel link per le eventuali sottosezioni che contengano quella delle news (altrimenti c'è di nuovo il problema degli altri link).

esempio:
una sezione di qualsiasi categoria il contenitore contiene la sezione di notizie le notizie in cui si trova la news evento eccezionale.

il link sarà
evento-eccezionale.il-contenitore_le-notizie.timestamp

il rewrite dovrà rimandare a
index.php?mod=il_contenitore/le_notizie&action...

se hai voglia di ravanare un po' con le espressioni.whistle
dan
dan

0
10
Livello 0

levellevellevellevellevellevellevellevellevellevel
profile 
Sabato 10 Maggio 2014 11:45:45

Re: Permalinks

Per risolvere il problema dei css/javascript che non vengono trovati con /data/nome-news non si potrebbe usare un percorso assoluto? Alla fine basterebbe memorizzare in una variabile l'url del sito e in caso di trasferimenti modificare la variabile...inoltre penso che sia meglio utilizzare di default il format tradizionale e permettere dalle impostazioni (e perché no, anche in fase di installazione) di attivare il rewrite. Ci sono alcuni host ad esempio che non permettono di modificare l'htaccess, quindi bisognerebbe fare alcuni controlli...

Vai alla pagina:
<< <  

print

Freely inspired to Mollio template