Vai al contenuto
Amy Pond

3.x 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?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
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 :/

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
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.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
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"....

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
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 :-)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
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

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
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.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
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 :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
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.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
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?

Modificato da Ayame

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
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

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora


×