Jump to content
Amy Pond

Creare liste di topic divise per argomento

Recommended Posts

Amy Pond

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?

Share this post


Link to post
Share on other sites
BomAle

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 :/

Share this post


Link to post
Share on other sites
BomAle

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.

Share this post


Link to post
Share on other sites
BomAle

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"....

Share this post


Link to post
Share on other sites
Amy Pond

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 :-)

Share this post


Link to post
Share on other sites
najaru

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

Share this post


Link to post
Share on other sites
BomAle

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.

Share this post


Link to post
Share on other sites
Amy Pond

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 :)

Share this post


Link to post
Share on other sites
BomAle

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.

Share this post


Link to post
Share on other sites
Amy Pond

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?

Edited by Ayame

Share this post


Link to post
Share on other sites
BomAle

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Crea Nuovo...

Important Information

By using this site, you agree to our Terms of Use.