Jump to content
  • 0
Amy Pond

Creare liste di topic divise per argomento

Question

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

14 answers to this question

Recommended Posts

  • 0
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
  • 0
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
  • 0
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
  • 0
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
  • 0
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
  • 0
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
  • 0
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
  • 0
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
  • 0
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
  • 0
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
Answer this question...

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

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. to insert a cookie message.