numero di risultati nella ricerca post per utente
numero di risultati nella ricerca post per utente
Dal profilo degli utenti, provo a elencare i messaggi in ordine cronologico, cliccando "Cerca i messaggi dell'utente". Essendo la ricerca limitata a 250 messaggi* vengono troncati i post più vecchi, con alcuni utenti molto attivi la ricerca trova risultati per pochi mesi. Sarebbe possibile togliere il limite per questo specifico uso della funzione di ricerca?
*anche usando la ricerca avanzata e richiedendo i primi 1000 messaggi il risultato è lo stesso.
*anche usando la ricerca avanzata e richiedendo i primi 1000 messaggi il risultato è lo stesso.
We no longer think of chairs as technology; we just think of them as chairs. But there was a time when we hadn't worked out how many legs chairs should have, how tall they should be, and they would often 'crash' when we tried to use them.
- steff
- Moderatore Globale
- Messaggi: 40299
- Iscrizione: domenica 18 febbraio 2007, 19:48
- Desktop: LXQt+labwc
- Distribuzione: Arch; Debian; Ubuntu Server
- Sesso: Maschile
- Località: Toscana
- Contatti:
Re: numero di risultati nella ricerca post per utente
Se ne parlato qui e qualche trucco c'è:
http://forum.ubuntu-it.org/viewtopic.ph ... &p=4183853
http://forum.ubuntu-it.org/viewtopic.ph ... &p=4183853
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
Re: numero di risultati nella ricerca post per utente
Ho già provato con la ricerca avanzata, e qualsiasi limite si scelga il risultato è sempre limitato a 250 messaggi. IMHO la ricerca così è un po' inutile, è impossibile per esempio trovare il primo messaggio di un utente: si può cambiare l'ordine cronologico dei risultati, ma questa operazione sarà comunque effettuata dopo aver ricevuto dal db i primi 250 risultati. Credo sarebbe molto utile se si potesse implementare un'eccezione per questa specifica funzione. Credo sia inutile parlare di caching perché di sicuro ne fate largo uso. Si potrebbe però applicare la seguente soluzione alternativa: invece di usare la dispendiosa funzione di ricerca del forum, creare un piccolo script php che restituisce una singola pagina html con tutti i messaggi di un dato utente. Non conosco phpbb e sono passati 3 anni dall'ultima volta che ho messo mano ad sql, ma la query per estrarre i messaggi dovrebbe essere qualcosa di simile:
Si potrebbe anche usare poster_name al posto di poster_id. Non dovrebbe rappresentare un problema, vista anche la scarsa frequenza con cui è usata la funzione. Poi bisognerebbe modificare phpbb perché il link "mostra i messaggi dell'utente" punti allo script. Siccome tengo a questa funzione, sono disponibile a dedicare il mio tempo alla sua realizzazione, ma le mie competenze sono assai ridotte (e quelle in mio possesso sono abbastanza arrugginite);
Codice: Seleziona tutto
SELECT post_subject, post_text FROM phpbb_posts_text WHERE post_id IN (SELECT post_id FROM phpbb_posts WHERE poster_id = $id)
We no longer think of chairs as technology; we just think of them as chairs. But there was a time when we hadn't worked out how many legs chairs should have, how tall they should be, and they would often 'crash' when we tried to use them.
Re: numero di risultati nella ricerca post per utente
per avere anche l'orario del post (grazie phpbb per le informazioni sparse su due tabelle), ho partorito questo sgorbio, non so se possa funzionare.
Codice: Seleziona tutto
SELECT phpbb_posts_text.post_id, phpbb_posts_text.post_subject, phpbb_posts_text.post_text, phpbb_posts.post_time FROM 'phpbb_posts_text' WHERE post_id IN
(SELECT post_id FROM 'phpbb_posts' WHERE poster_id = $id)
INNER JOIN phpbb_posts ON phpbb_posts_text.post_id = phpbb_posts.post_id
ORDER BY phpbb_posts.post_time;
We no longer think of chairs as technology; we just think of them as chairs. But there was a time when we hadn't worked out how many legs chairs should have, how tall they should be, and they would often 'crash' when we tried to use them.
Re: numero di risultati nella ricerca post per utente
La parte di phpbb da modificare dovrebbe essere il template. Esempio col tema di default:
riga 111:
bisognerebbe sostituire {memberrow.POSTS} con l'url allo script. Non saprei come accedere all'id dell'utente, non conosco phpbb ed ora non voglio indagare, ma si potrebbe anche in sua assenza farlo recuperare allo script dal referer.
Alternamente si può fare qualcosa tipo /url/script.php?name={S_USERNAME}
e fare un lookup dell'id relativo all'utente nello script, con
Si potrebbe anche modificare le subquery per cercare per 'post_username' e non per 'poster_id', ma credo che così sia meglio, è meno dispendioso di risorse e restituisce i risultati anche per i nickname precedenti dello stesso utente.
Si potrebbe combinare in un'unica query:
Codice: Seleziona tutto
styles/prosilver/template/memberlist_body.html
Codice: Seleziona tutto
<td class="posts"><!-- IF memberrow.POSTS and S_DISPLAY_SEARCH --><a href="{memberrow.U_SEARCH_USER}" title="{L_SEARCH_USER_POSTS}">{memberrow.POSTS}</a><!-- ELSE -->{memberrow.POSTS}<!-- ENDIF --></td>
Alternamente si può fare qualcosa tipo /url/script.php?name={S_USERNAME}
e fare un lookup dell'id relativo all'utente nello script, con
Codice: Seleziona tutto
SELECT user_id from phpbb_users where username = '$username'
Si potrebbe combinare in un'unica query:
Codice: Seleziona tutto
SELECT phpbb_posts_text.post_id, phpbb_posts_text.post_subject, phpbb_posts_text.post_text, phpbb_posts.post_time FROM 'phpbb_posts_text' WHERE post_id IN
(SELECT post_id FROM 'phpbb_posts' WHERE poster_id =
(SELECT user_id FROM 'phpbb_users' WHERE username = '$username'))
INNER JOIN 'phpbb_posts' ON phpbb_posts_text.post_id = phpbb_posts.post_id
ORDER BY phpbb_posts.post_time DESC;
We no longer think of chairs as technology; we just think of them as chairs. But there was a time when we hadn't worked out how many legs chairs should have, how tall they should be, and they would often 'crash' when we tried to use them.
- Janvitus
- Amministratore
- Messaggi: 18775
- Iscrizione: lunedì 25 aprile 2005, 15:52
- Desktop: GNOME Shell / Xfce
- Sesso: Maschile
- Località: Potenza
- Contatti:
Re: numero di risultati nella ricerca post per utente
Ho già scritto altrove che la ricerca per ora non si tocca, il supporto a postgresql (per la ricerca) è sperimentale, sarà stabile per la 3.1 di phpbb, quindi pazienza...
Re: numero di risultati nella ricerca post per utente
infatti proponevo di bypassare totalmente la ricerca di phpbb e di lasciare elencare i messaggi di un utente ad uno script php, saranno 15-20 righe di codice, più la piccola modifica al template se si vuole che phpbb linki allo scriptJanvitus [url=http://forum.ubuntu-it.org/viewtopic.php?p=4382023#p4382023][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Ho già scritto altrove che la ricerca per ora non si tocca, il supporto a postgresql (per la ricerca) è sperimentale, sarà stabile per la 3.1 di phpbb, quindi pazienza...
We no longer think of chairs as technology; we just think of them as chairs. But there was a time when we hadn't worked out how many legs chairs should have, how tall they should be, and they would often 'crash' when we tried to use them.
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 9 ospiti