• User

    Devo costruire un conditional corretto, mi aiutate?

    Salve a tutti,

    Ho creato dei conditional su vb3 come questi:

    <if condition="$threadinfo['threadid'] == '1'">

    Ads specifico

    <else />
    Ads generico
    </if>

    per visualizzare su un thread specifico un determinato banner, nel caso in cui la condizione non si realizza viene visualizzato un banner generico.

    Fin qui tutto bene.

    Il problema e' che se voglio ( anzi purtroppo DEVO ) inserire altre condizioni nella stessa pagina, poniamo 5 condizioni per 5 thread ID diversi,

    e quindi :

    <if condition="$threadinfo['threadid'] == '1'">
    Ads specifico 1
    <else />
    Ads generico
    </if>

    <if condition="$threadinfo['threadid'] == "2'">
    Ads specifico 2
    <else />
    Ads generico
    </if>

    <if condition="$threadinfo['threadid'] == "3'">
    Ads specifico 3
    <else />
    Ads generico
    </if>

    <if condition="$threadinfo['threadid'] == "4'">
    Ads specifico 4
    <else />
    Ads generico
    </if>

    <if condition="$threadinfo['threadid'] == "5'">
    Ads specifico 5
    <else />
    Ads generico
    </if>

    purtroppo visualizzo per 4 volte il banner generico, tranne nel thread in cui l'ID coincide con la condizione : in questo caso visualizzo il banner specifico.

    Ricapitolando , usando questo codice , se carico un thread poniamo con id "3" visualizzo il banner specifico 3 ma anche 4 banner generici ( che non voglio visualizzare )

    Sapete dirmi come ovviare a questa cosa? Sapete scrivere un conditional piu' corretto?

    Grazie per la collaborazione.


  • ModSenior

    Non conosco il linguaggio da te proposto, ma riscontro delle similitudini da quelli che conosco.
    Il problema sta nel fatto che entri negli else di tutti gli altri blocchi che non sono l'id che tratti.

    Quindi posso solo consigliarti di provare un costrutto del seguente tipo.

     
    IF condizione=1
    FAI 1
    ELSE IF condizione=2
    FAI 2
    ELSE IF condizione=3
    FAI 3
    ELSE
    GENERICO
    FINE IF
    
    

    O se esiste un costrutto del tipo SELECT CASE, che solitamente nei linguaggi di programmazione consiste nel proporre delle casistiche dei valori di una determinata variabile.

     
    SELECT CASE $threadinfo['threadid']
    CASE 1
    FAI 1
    CASE 2
    FAI 2
    CASE ELSE
    FAI GENERICO
    END SELECT
    
    

  • User

    Cionfs sul suo forum
    (non posso inserire links)

    mi ha consigliato di fare cosi':

    <if condition="$threadinfo['threadid'] == '1'">
    ADS 1
    </if>

    <if condition="$threadinfo['threadid'] == '2'">
    ADS 2
    </if>

    <if condition="$threadinfo['threadid'] == '3'">
    ADS 3
    </if>

    <if condition="!in_array($threadinfo['threadid'],array(1,2,3))">
    ADS generico
    </if>

    e funziona!

    Grazie comunque per il tuo suggerimento Marco.