Vai al contenuto
  • 0

Creazione di Sidebar in uno specifico forum


claudiuzz

Domanda

Ciao a tutti ho installato questa app Custom Sidebar Blocks 2.1.1.

mi crea degli spazi laterali nella home page.

Io invece vorrei inserire uno spazio laterale solo e soltanto nella pagina di elencazione dei topic di determinati e specifici forum.

Come posso fare?

​Ho provato ad utilizzare ad code integration, ma mi inserisce lo spazio laterale in ogni elenco dei topic di ogni forum.

 

Grazie in anticipo a chi vorrà aiutarmi..

 

Link al commento
Condividi su altri siti

24 risposte a questa domanda

Messaggi raccomandati

  • 0

Ciao a tutti ho installato questa app Custom Sidebar Blocks 2.1.1.

mi crea degli spazi laterali nella home page.

Io invece vorrei inserire uno spazio laterale solo e soltanto nella pagina di elencazione dei topic di determinati e specifici forum.

Come posso fare?

​Ho provato ad utilizzare ad code integration, ma mi inserisce lo spazio laterale in ogni elenco dei topic di ogni forum.

 

Grazie in anticipo a chi vorrà aiutarmi..

http://www.invisionita.it/forum/topic/3035-posizionare-banner-pubblicitari-e-adsense-su-ipboard/

http://www.invisionita.it/forum/topic/3723-pubblicit%C3%A0-a-destra-nel-primo-post-di-ogni-topic-o-in-alcuni/?hl=in_array#entry26264

dai un occhiata in queste discussioni

  • Like 1
Link al commento
Condividi su altri siti

  • 0

Ciao Booale ti ringrazio per le info.

Credo che si posso lavorare su questo codice.

 

<if test="showAds:|:$post['post']['post_count'] % $this->settings['display_max_posts'] == 1 && in_array( $topic['forum_id'], array( 14, 17, 48 ) )">
<div style="border:0px; float:right; width:130;">
CODICE BANNER
</div>
</if>

 

Vorrei ottenere un risultato tipo questo in immagine:

post-2314-0-76681800-1389440692_thumb.pn

 

Si può fare qualcosa?

Link al commento
Condividi su altri siti

  • 0

Ciao Booale ti ringrazio per le info.

Credo che si posso lavorare su questo codice.

 

<if test="showAds:|:$post['post']['post_count'] % $this->settings['display_max_posts'] == 1 && in_array( $topic['forum_id'], array( 14, 17, 48 ) )">

<div style="border:0px; float:right; width:130;">

CODICE BANNER

</div>

</if>

 

Vorrei ottenere un risultato tipo questo in immagine:

attachicon.gifImmagine2.png

 

Si può fare qualcosa?

ci sono principalmente 2 possibili strade per fare ciò che chiedi. la prima è la più rapida ma bisogna ripetere il procedimento con altre skin che si installano in futuro, mentre la seconda è attraverso una hook (che si aggancia a dei punti nel template per modificare la struttura) un codice php che genera la sidebar scrivendolo una volta sola e modificando quando si vuole solo un file (consigliato se si usano molte skin).

 

1° metodo (rapido, ma ripetitivo su ogni skin installata)

collegati all'acp > tab Look & Feel > scegli la skin > vai nel template forumIndexTemplate nel gruppo "Forum View"

trova

<if test="showtopics:|:$forum_data['sub_can_post']">

e aggiungi prima

<if test="in_array( $forum_data['id'], array( xxx, yyy, ssss ) )"><div class='ipsLayout ipsLayout_withright ipsLayout_largeright clearfix'>	<div class='ipsLayout_content clearfix'></if>

trova (la fine di quell'< if >)

	</div></if><br class='clear' />

e aggiungi prima di <br...>

<if test="in_array( $forum_data['id'], array( xxx, yyy, ssss ) )"></div></div><div class='ipsLayout_right clearfix'>IL CONTENUTO AGGIUNTIVO QUI</div></if>

2° metodo con un template hook (quando avrò tempo ti scrivo il codice, ci vuole poco se scrivi tutto tramite php senza usare template)

Link al commento
Condividi su altri siti

  • 0

ma seguendo il primo metodo, lo spazio laterale apparirà in ogni elenco topic di ogni forum?

Se volessi far apparire lo spazio laterale in uno specifico forum dove devo inserire inserire l'id topic?

Grazie per la risposta....

Rimango in attesa anche del secondo metodo, naturalmente quando avrai tempo..:)

Link al commento
Condividi su altri siti

  • 0

ma seguendo il primo metodo, lo spazio laterale apparirà in ogni elenco topic di ogni forum?

Se volessi far apparire lo spazio laterale in uno specifico forum dove devo inserire inserire l'id topic?

Grazie per la risposta....

Rimango in attesa anche del secondo metodo, naturalmente quando avrai tempo.. :)

devi cambiare xxx yyy ssss con gli id dei forum dove far apparire il blocco... questo apparirebbe solo mentre si visualizza una sezione (forum) ma non mentre si visualizzano i topic...

Link al commento
Condividi su altri siti

  • 0

<if test="in_array( $forum_data['id'], array( '2' ) )"></div>

</div>

<div class='ipsLayout_right clearfix'>

IL CONTENUTO AGGIUNTIVO QUI

</div></if>

  • Like 1
Link al commento
Condividi su altri siti

  • 0

Ciao BoomAle,

Ho inserito lo spazio laterale. Ho inserito il secondo blocco del codice dopo </if> altrimenti lo spazio mi appariva in basso e non lateralmente.

 

Volevo chiederti un ultima cosa. Vorrei utilizzare uno spazio laterale per indicare "gli ultimi post di un forum specifico". Come posso fare?

 

<if test="in_array( $forum_data['id'], array( '2' ) )"></div>
</div>
<div class='ipsLayout_right clearfix'>
CODICE PER GLI ULTIMI POST DI UN FORUM SPECIFICO

</div></if> 

 

Grazie in anticipo...

Link al commento
Condividi su altri siti

  • 0

Il contenuto da mettere sarebbe

<php>$_topics = array();$this->DB->build(array('select' => 't.*','from' => array('topics' => 't'),'where' => 't.forum_id=ID_NUMERICO','limit' => array( 0, 5 ),'add_join' => array(    array(        'select' => 'm.member_id, m.members_display_name, m.member_group_id, m.members_seo_name',        'from'    => array( 'members' => 'm' ),        'where' => 't.started_id=m.member_id',    ),)));$query = $this->DB->execute();while($r = $this->DB->fetch( $query )){$r['pp_small_photo'] = IPSMember::buildProfilePhoto( $r['started_id'], 'small' );$_topics[] = $r;}</php><if test="!empty( $_topics ) && count( $_topics )"><div class='ipsSideBlock clearfix'>    <h3>{$this->lang->words['recently_added_topics']}</h3>    <div class='_sbcollapsable'>        <ul class='ipsList_withminiphoto'>        <foreach loop="$_topics as $r">        <li class='clearfix'>            {parse template="userSmallPhoto" group="global" params="$r"}            <div class='list_content'>                <a href="{parse url="showtopic={$r['tid']}" base="public" template="showtopic" seotitle="{$r['title_seo']}"}" rel='bookmark' class='ipsType_small' title='{parse expression="strip_tags($r['topic_title'])"} {$this->lang->words['topic_started_on']} {parse date="$r['start_date']" format="LONG"}'>{$r['topic_title']}</a>                <p class='desc ipsType_smaller'>                    <if test="$r['members_display_name']">{parse template="userHoverCard" group="global" params="$r"}<else />{$this->settings['guest_name_pre']}{$r['starter_name']}{$this->settings['guest_name_suf']}</if>                    - {parse date="$r['start_date']" format="short"}                </p>            </div>        </li>        </foreach>        </ul>    </div></div></if>

Nota: la parte HTML occorre farla seguendo lo standard < table >, se vuoi ti scrivo io tutto più tardi...
Per configurarlo occorre sostituire ID_NUMERICO con l'ID del forum scelto.

Dovrei tornare dopodomani...

Modificato da BomAle
completamento codice...
Link al commento
Condividi su altri siti

  • 0

grazie BomAle sei molto gentile. Aspetterò il tuo rientro per avere il codice completo da inserire.

Per najaru , vorrei creare un spazio latera , visibile in un forum specifico, che metta in mostra i post recenti degli utenti. In pratica su ipb esiste uno spazio laterale che mostra i post recenti degli utenti, ma che si riferisce a tutti i forums e che appare unicamente nella home. Io vorrei riproporre uno spazio simile, riferito ad un forum specifico e visibile nella pagina "elenco topic" di un solo forum.

Grazie per il vostro aiuto.

Link al commento
Condividi su altri siti

  • 0

grazie BomAle sei molto gentile. Aspetterò il tuo rientro per avere il codice completo da inserire.

Per najaru , vorrei creare un spazio latera , visibile in un forum specifico, che metta in mostra i post recenti degli utenti. In pratica su ipb esiste uno spazio laterale che mostra i post recenti degli utenti, ma che si riferisce a tutti i forums e che appare unicamente nella home. Io vorrei riproporre uno spazio simile, riferito ad un forum specifico e visibile nella pagina "elenco topic" di un solo forum.

Grazie per il vostro aiuto.

Ho corretto appena ora... ricontrolla il mio messaggio precedente

non ho ancora provato, potresti farlo tu direttamente nel frattempo e dirmi in quale ordine vorresti i topic (in base all'ultimo post, numero di like, ecc...)

Link al commento
Condividi su altri siti

  • 0

Ciao ho provato ad inserire il codice ma ricevo questo errore:

 

There appears to be an error with the database.

If you are seeing this page, it means there was a problem communicating with our database. Sometimes this error is temporary and will go away when you refresh the page. Sometimes the error will need to be fixed by an administrator before the site will become accessible again. 

You can try to refresh the page by clicking here

Link al commento
Condividi su altri siti

  • 0

trova

<if test="showtopics:|:$forum_data['sub_can_post']">

e aggiungi prima

<if test="in_array( $forum_data['id'], array( '2' ) )"><div class='ipsLayout ipsLayout_withright ipsLayout_largeright clearfix'>    <div class='ipsLayout_content clearfix'></if>

trova 

    

</div></if><br class='clear' />

e aggiungi prima (bomale: è dopo </if>)

<if test="in_array( $forum_data['id'], array( '2' ) )"></div></div><div class='ipsLayout_right clearfix'>
<table border="1" width="100%">  <tr>    <td width="100%">
<php>$_topics = array();$this->DB->build(array('select' => 't.*','from' => array('topics' => 't'),'where' => 't.forum_id=ID_NUMERICO','limit' => array( 0, 5 ),'add_join' => array(    array(        'select' => 'm.member_id, m.members_display_name, m.member_group_id, m.members_seo_name',        'from'    => array( 'members' => 'm' ),        'where' => 't.started_id=m.member_id',        'type' => 'left',    ),    array(        'select' => 'p.pid,p.post',        'from'    => array( 'posts' => 'p' ),        'order' => 'p.post_date desc',        'limit' => array(0,1),        'type' => 'left',        'where' => 'p.queued=0 and p.pdelete_time=0 and p.topic_id=t.tid',    ),)));$query = $this->DB->execute();while($r = $this->DB->fetch( $query )){$r['post'] = IPSText::truncate($r['post'], 20); // 20 è il numero massimo di caratteri da estrarreif(substr($r['post'], strlen($r['post']) - 3) != '...'){    $r['post'] .= '...';}$r['pp_small_photo'] = IPSMember::buildProfilePhoto( $r['started_id'], 'small' ); // avatar dell'utente che ha iniziato la discussione$_topics[] = $r;}</php><if test="!empty( $_topics ) && count( $_topics )"><div class='ipsSideBlock clearfix'>    <h3>{$this->lang->words['recently_added_topics']}</h3>    <div class='_sbcollapsable'>        <ul class='ipsList_withminiphoto'>        <foreach loop="$_topics as $r">        <li class='clearfix'>            {parse template="userSmallPhoto" group="global" params="$r"}            <div class='list_content'>                <a href="{parse url="showtopic={$r['tid']}" base="public" template="showtopic" seotitle="{$r['title_seo']}"}" rel='bookmark' class='ipsType_small' title='{parse expression="strip_tags($r['topic_title'])"} {$this->lang->words['topic_started_on']} {parse date="$r['start_date']" format="LONG"}'>{$r['topic_title']}</a>                <p class='desc ipsType_smaller'>                    <if test="$r['members_display_name']">{parse template="userHoverCard" group="global" params="$r"}<else />{$this->settings['guest_name_pre']}{$r['starter_name']}{$this->settings['guest_name_suf']}</if>                    - {parse date="$r['start_date']" format="short"}                </p>                {$r['post']}            </div>        </li>        </foreach>        </ul>    </div></div></if>
  </tr></table></div></if> 

Il forum è il 2 e l'ordine potrebbe essere in modo cronologico decrescente (dal più recente in poi, ultimi 5 post del forum)

Modificato da BomAle
corretto con caratteristiche del post 16/01 di speranzoso
  • Like 1
Link al commento
Condividi su altri siti

  • 0

Appena posso controllo, vedo già un problema riguardo alla procedura che hai espresso..

Dovevi aggiungere prima di <br ..> oppure dopo </if> come avevi anche detto tu prima.

 

Ma vorresti gli ultimi 5 topic che sono stati recentemente commentati o solo estrarre gli ultimi 5 post(può capitare che siano due o più dello stesso topic)? O meglio estrarre l'ultimo post da ognuno dei 5 topic recentemente risposti?

Insomma si più chiaro...

Link al commento
Condividi su altri siti

  • 0

In questo spazio laterale vorrei inserire gli ultimi 5 post di qualsiasi topic del forum di riferimento...anche se gli ultimi 5 post sono inerenti ad un solo topic...

Giusto per non complicare le cose... :D

Link al commento
Condividi su altri siti

  • 0

Ok, per sta notte modifico direttamente il messaggio dove c'è già tutto il codice ;)

Poi in fine settimana provo anche a vedere se possiamo usare le "api" di ipb senza lavorare sulle SQL 

  • Like 1
Link al commento
Condividi su altri siti

  • 0

a bravo, potresti semplicemente aprire il file xml con un editor php...

modifica andando nella riga 100

		$forumIds = $this->_loadForumIds();

in

		if(!$this->request['f'] = 'xx')		{			$forumIds = $this->_loadForumIds();		}                // mentre si visualizza il forum xx si cercano i post recenti del forum con ID yy		else		{			$forumIds = array( 'yy' ); // gli ultimi post fatti in questa sezione		}

e poi se vorresti tenere la versione sidebar e installare la stessa hook dovresti:

modificare il nome della classe php e del file e purtroppo anche l'hook point,

infine modificare il template "recentPosts" in skin_board con le modifiche per la sidebar...

 

potresti contattare HeadStand e dire se può fare una versione per il forum view... io sarei occupato fino al 25 :S

Link al commento
Condividi su altri siti

  • 0

a bravo, potresti semplicemente aprire il file xml con un editor php...

modifica andando nella riga 100

		$forumIds = $this->_loadForumIds();

in

		if(!$this->request['f'] = 'xx')		{			$forumIds = $this->_loadForumIds();		}                // mentre si visualizza il forum xx si cercano i post recenti del forum con ID yy		else		{			$forumIds = array( 'yy' ); // gli ultimi post fatti in questa sezione		}

Ciao @BomAle ma se faccio questa sostituzione al file .xml della hook e tolgo il codice sidebar fatto fin ora, quando installo la hook dovrebbe apparirmi la sidebar nel forum che vado a scegliere.

Modificato da speranzoso
Link al commento
Condividi su altri siti

  • 0

dovresti anche modificare l'hook point una volta che hai installato l'xml

e applicare le modifiche che abbiamo fatto precedentemente nel tema recent posts... insomma per ora ti conviene aspettare il 25 che potrò anche rivederla per il tuo scopo.

Link al commento
Condividi su altri siti

  • 0

Ciao @BomAle se può esserti utile oggi ho trovato anche questa hook che permette la creazione di una sidebar in home page. Permette di selezionare i topic da cui estrarre gli ultimi post e anche il numero dei post da visualizzare nella sidebar.

Unico problema è quello di far apparire lo spazio laterale in uno specifico forum e non nella home come fa di default questa hook.

ecco il link http://community.invisionpower.com/files/file/6491-latest-posts-in-sidebar/ .

L'altra hook che ho linkato mostrava tutte le ultime attività fatte in un topic, questa mostra solo gli ultimi post.

A presto

Sp.

Modificato da speranzoso
Link al commento
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora
  • Chi sta navigando   0 utenti

    • Nessun utente registrato visualizza questa pagina.
×
×
  • Crea Nuovo...

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.