Vai al contenuto

Creare liste di topic divise per argomento

Featured Replies

Inviato

Buonasera a tutti :-)

C'è un modo, con IP.Content di creare delle categorie con le quali suddividere i topic e generare in tal modo delle liste suddivise per argomento?

Inviato

Buonasera a tutti :-)

C'è un modo, con IP.Content di creare delle categorie con le quali suddividere i topic e generare in tal modo delle liste suddivise per argomento?

si, devi creare un database

aggiungere o meno categorie oppure anche solo i fields

a questo punto creando un blocco feed

nello step 2 devi selezionare ip.content database e nello step 3 "records" e il database dove prendere i vari "topic" dalle categorie...

una volta fatto questo basta scegliere il template da usare poi nello step 5... se vuoi puoi quindi personalizzare la lista con i fields che hai creato

per maggiori dettagli torno mercoledi :/

Inviato

penso che lei voglia ordinare dei TOPIC e npn dei record

Inviato

si piu probabile, allora nello step 1 deve selezionare forums

step 3 topics

nello step 4 filtra a piacere i dati da estrarre...

il resto è come il mio precedente messaggio.

Inviato

è proprio filtrare che può essere incasinato, perchè dipende loro come hanno strutturato i topic

Inviato

comunque cambierebbe di certo il template... perchè vorrebbe dividere la lista per argomento.

quindi si dovrebbe mettere un ulteriore foreach per ogni $r['category']

e fare un template simile a

<h3>{$r['category']}</h3><foreach loop="$r as $topic"....
Inviato
  • Autore

Non credo di aver compreso tutto :S

Inviato

:| dovresti dirmi almeno se la lista si basa sui record o sui topic del forum!

almeno lavoriamo su qualcosa lol

Inviato
  • Autore

Lo dice il titolo :-D Devo suddividere dei topic per argomento. I tag non sono sufficienti, per cui vorrei trovare un modo per fare un elenco di argomenti e poi ficcarci dentro i topic :-)

Inviato

ecco però se non ci specifichi il criterio sulla base del quale vuoi farlo , noi non possiamo inventarcelo ;)

immagina che volessi dividere in categorie per topic che hanno solo 13 post oppure per topic dove hanno postato solo delle fanciulle ecc....... :D

Inviato

infatti argomento=criterio... di solito si usano i tags per questo scopo.

se non sono presenti, o c'è almeno una suddivisione con le sezioni(forum id-n):

forum id-1

-topic1

-topic2

forum id-2

-topic3

oppure cercare tramite una query sql di trovare una parola o frase nei posts dei topics...

esempio:

$this->DB->build(array(

'select' => '*',

'from' => 'posts as p',

'where' => 'p.post LIKE "%frase%"'

'addjoin' => array(

select...

from ... topics as t

where ...'t.tid=p.topic_id'

)

))

$this->db->execute;

$r=fetch...

while($r)...

$topics[]=$r;

da qui in poi devi costruire la parte html...

prima dimmi quali parole chiave identificano gli argomenti, come najaru ha gia detto.

Inviato
  • Autore

Leggendo le vostre risposte capisco sia una cosa eccessivamente complessa: io vorrei suddividerli in base all'argomento di cui si parla all'interno della discussione; per esempio, tutti i topic in cui si parla di medicina vengono indicizzati nella categoria "medicina", quelli che parlano di storia uguale, e via discorrendo.

 

Se invece creo a mano dei tag e categorizzo in tal modo le discussioni posso poi fare l'elenco per tag grazie a Content?

 

Grazie :)

Inviato

Se invece creo a mano dei tag e categorizzo in tal modo le discussioni posso poi fare l'elenco per tag grazie a Content?

Grazie :)

si, puoi usare il vantaggio di prelevare info impostando il blocco come feed e poi di eseguire una query buildandfetch per ogni risultato... ma nn so se nel feed include gia i tags, se li include non dovresti nemmeno usare una query.

ti faccio sapere appena posso.

  • 4 settimane dopo...
Inviato
  • Autore

si, puoi usare il vantaggio di prelevare info impostando il blocco come feed e poi di eseguire una query buildandfetch per ogni risultato... ma nn so se nel feed include gia i tags, se li include non dovresti nemmeno usare una query.

ti faccio sapere appena posso.

 

Hai notizie per me? :)

 

EDIT:

 

http://community.invisionpower.com/files/file/5885-tagged-data-feeds/

 

sbaglio o questo mi darebbe esattamente la possibilità di includere tra i feed i tag?

Modificato da Ayame

  • 4 settimane dopo...
Inviato

Hai notizie per me? :)

 

EDIT:

 

http://community.invisionpower.com/files/file/5885-tagged-data-feeds/

 

sbaglio o questo mi darebbe esattamente la possibilità di includere tra i feed i tag?

filtra i feed in base ai tag se imposti il valore "Filter by Tags"...

 

 

ma l'alternativa è costruire una query come vuoi tu eh!

 $tag_da_cercare = 'medicina'; // attenzione che non prende tags con lettere maiuscole a meno che non vari la query con operatori OR ...   $this->DB->build(array(	'select' => 't.*',	'from' => array('topics' => 't'),	'where' => 'ct.tag_text="'. $tag_da_cercare .'"',	'order' => 't.last_post DESC',	'limit' => array(0, 25),	'add_join' => array(	    array(		'select' => 'ct.tag_text',		'from' => array('core_tags' => 'ct'),		'where' => 'ct.tag_meta_app="forums" AND tag_meta_area="topics" AND ct.tag_meta_id=t.tid',	    ),	)    ));//    echo '<textarea>'; print_r($this->DB->fetchSqlString()); echo '</textarea>';    $this->DB->execute();    while ($risultato = $this->DB->fetch()) {	$topics_medicina[] = $risultato; // o meglio $topics['medicina'][] cosi puoi riutilizzare l'array nella stessa pagina...    }//    echo '<textarea>';//    print_r($topics_medicina);//    echo '</textarea>';

testato e funzionante ;)

ecco la query sql che ne risulta...

SELECT t.*,ct.tag_text FROM ibf_topics t  LEFT JOIN ibf_core_tags ct ON ( ct.tag_meta_app="forums" AND tag_meta_area="topics" AND ct.tag_meta_id=t.tid )   WHERE ct.tag_text="medicina" ORDER BY t.last_post DESC LIMIT 0,25

e l'array...

Array(    [0] => Array        (            [tid] => 21            [title] => prova            [state] => open            [posts] => 42            [starter_id] => 2937            [start_date] => 1365718692            [last_poster_id] => 2937            [last_post] => 1378252686            [starter_name] => bomale            [last_poster_name] => bomale            [poll_state] => 0            [last_vote] => 0            [views] => 547            [forum_id] => 76            [approved] => 1            [author_mode] =>             [pinned] => 0            [moved_to] =>             [topic_hasattach] => 0            [topic_firstpost] => 22335            [topic_queuedposts] => 0            [topic_open_time] => 0            [topic_close_time] => 0            [topic_rating_total] => 0            [topic_rating_hits] => 0            [title_seo] => prova            [seo_last_name] => bomale            [seo_first_name] => bomale            [topic_deleted_posts] => 0            [tdelete_time] => 0            [moved_on] => 0            [topic_archive_status] => 0            [last_real_post] => 1378252686            [topic_answered_pid] => 0            [description] =>             [template_fields] =>             [set_id] => 0            [tag_text] => medicina        ))

FONTE: https://www.invisionpower.com/support/guides/_/advanced-and-developers/api-methods/kernel-databases-classdbphp-r166

Per favore accedi per lasciare un commento

Potrai lasciare un commento dopo aver effettuato l'accesso

Accedi Ora

Chi sta navigando 0

  • Nessun utente registrato visualizza questa pagina.

Informazioni importanti

Abbiamo inserito dei cookies nel tuo dispositivo per aiutarti a migliorare la tua esperienza su questo sito. Puoi modificare le impostazioni dei cookie, altrimenti puoi accettarli cliccando su continua. to insert a cookie message.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.