• Pagina 1 din 1
  • 1
Comunitatea uCoz » Altele » Instrumente şi Script-uri » Operatori condiţionali (<?if($VAR$)?>...<?else?>...<?endif?>)
Operatori condiţionali
Felicia
Postări: 1326
Reputație: 55
Mesaj # 1 | 2:04 PM
Operatorii condiţionali pentru începători şi profesionişti.


Dacă nu înţelegeţi cum funcţionează operatorii condiţionali, iar informaţia din cadrul Panoului de Control nu este suficientă pentru dvs, voi încerca să vă ofer o explicaţie. În primul rând, trebuie să credeţi că este foarte uşor!

Operatorii condiţionali sunt coduri simbol speciale, ce pot desfăşura anumite scenarii (script-uri). Puteţi crea o opţiune complet nouă pentru site-ul dvs, care să nu fie oferită în cadrul Panoului de Control.

În primul rând, trebuie să înţelegeţi şi să vă obişnuiţi cu componentele codului scriptului. Acestea sunt:

<?if($code$)?> – este o anumită condiţie (cod), ce indică operatorului cu cine şi cu ce avem de-a face. Îl putem înlocui mental cu fraza «Dacă există»;

<?else?> – este operatorul care va face ce spuneţi în cazul în care starea (condiţia) corespunde cu cea indicată. Îl putem înlocui mental cu fraza «Dacă nu»;

<?endif?> – este finalul operatorului condiţional; poate fi înlocuit mental cu fraza «Sfârşit»;




Acum, haideţi să vedem un exemplu simplu din cadrul Panoului de Control:

(din Editorul de Pagină)

<?if($USER_LOGGED_IN$)?> Salut, $USERNAME$ <?else?> Salut, VIZITATOR. Vă rugăm să vă înregistraţi. <?endif?>

În limbajul nostru asta ar însemna: «Dacă este un utilizator autentificat, atunci «Salut, numele său de utilizator!», dacă nu, «Salut, vizitator!» şi sfârşit.»

Acum haideţi să vedem detaliile.

Ce am folosit?

Am spus operatorului <?if($code$)?> că scriptul nostru este destinat pentru a saluta utilizatorii autorizaţi. Introducem codul de mai jos, în loc de $code$ - $USER_LOGGED_IN$ , adică spunem «Dacă este un utilizator autorizat - <?if($USER_LOGGED_IN$)?>». Apoi urmează informaţia, disponibilă tuturor utilizatorilor autentificaţi. În acelaşi timp, putem utiliza condiţii dacă acestea corespund celor indicate, în exemplul nostru sunt Vizitatorii. De aceea, după informaţia pentru utilizatorii autentificaţi, introducem informaţia pentru vizitatori.

Obţinem
<?if($USER_LOGGED_IN$)?> Salut, $USERNAME$ <?else?> Salut, Vizitator!

Acum, trebuie doar să-l închidem.
<?if($USER_LOGGED_IN$)?> Salut, $USERNAME$ <?else?> Salut, Vizitator! <?endif?>

Putem, de asemenea, exclude Vizitatorii şi să afişăm informaţia doar pentru utilizatori autentificaţi. Pentru acest lucru, pur şi simplu nu utilizăm «If not». Şi vom obţine următoarea frază:

<?if($USER_LOGGED_IN$)?> Ne bucurăm că v-aţi înregistrat! <?endif?>

Înseamnă că doar cei care s-au autentificat vor vedea fraza «Ne bucurăm că v-aţi înregistrat!».

Orice cod, specificat ca funcţional pentru un anumit modul, poate fi o condiţie pentru lucrul cu operatori. În cazul nostru (Editorul de Pagini), pot fi utilizate următoarele exemple:

Autentificare şi deconectare:
<?if($USER_LOGGED_IN$)?> <a href="$LOGOUT_LINK$">DECONECTARE</a> <?else?> <a href="$LOGIN_LINK$">AUTENTIFICARE</a> <?endif?>

Zile după înregistrare:
<?if($USER_LOGGED_IN$)?> Sunteţi alături de noi de $USER_REG_DAYS$ zile! <?else?> Vă rugăm să vă înregistraţi. <?endif?>

Şi aşa mai departe.




Condiţiile pentru un script pot fi modificate prin intermediul capacităţilor adiţionale, suportate de către operatori. Aceştia sunt semnele «=», «>», «<». Dacă este necesar, condiţiile echivalente sunt separate de o linie verticală. După semn, veţi menţiona operatorului cărui script complet este destinat.

<?if($code$='condiţie')?> Puteţi vedea aceasta <?else?> Iar aici puteţi vedea asta <?endif?>

Sau

<?if($code$='condiţie')?> Principalul lucru este că pot vedea asta <?endif?>

Exemplu:

<?if($USER$='John')?> John, nu uita să citeşti e-mailul în fiecare zi. <?endif?>

Asta înseamnă «Dacă sunt nume de utilizator şi John este printre ele (='John'), atunci acest mesaj îi este afişat …»

La fel se întâmplă şi în cazul grupurilor, numelui, sexului, datei, etc.
Mai multe exemple:

<?if($USER$='Mike' or $USER$='Lola')?> Mike şi Lola, iată un link secret …. <?endif?>

Grupuri:
<?if($GROUP_ID$=3 or $GROUP_ID$=4)?> Moderatori şi Administratori, daţi click pe anunţ aici … <?endif?>

Şi aşa mai departe.

Cu toate acestea, operatorii pot lucra unul în cadrul altuia. Exemplu:

<?if($USER_LOGGED_IN$)?> Salut $USER$! <?if($GROUP_ID$=3 || $GROUP_ID$=4)?> Nu uita să dai click pe anunţuri! <?endif?> <?else?> Vă rugăm să vă înregistraţi. <?endif?>

Scriptul este următorul: «Dacă sunt utilizatori autentificaţi, atunci Salut, dacă printre aceştia sunt Administratori şi Moderatori, atunci adaugă Click pe anunţuri, dacă sunt utilizatori neînregistraţi, îi rugăm să se înregistreze, şi sfârşit.»




Elementul principal este că trebuie să vă gândiţi bine cum să scrieţi un script, ce coduri să utilizaţi şi cui vor fi destinate. Puteţi scrie orice doriţi, uCoz este foarte flexibil!

Câteva informaţii adiţionale:


  • Numărul de <?if($code$)?> şi <?endif?> trebuie să fie acelaşi.
  • <?else?> este necesar dacă vreţi să afişaţi informaţii celor care nu îndeplinesc condiţiile. În caz contrar, nu este necesar.
  • Condiţiile alternative or şi and (|| şi &&) sunt acceptate.
  • Interrelaţionarea operatorilor este permisă.
  • Compararea variabilelor între ele este permisă: <?if($VAR1$=$VAR2$)?>
  • Textul trebuie să fie între apostrofuri când comparăm: <?if($USER$='Mike') ?>



    Întrebare - răspuns
    Quote
    Când creăm noi pagini, încărcate prin FTP, $SITE_NAME$, $LOGIN_LINK$, $LOGOUT_LINK$ codurile sunt afişate ca text... De ce nu funcţionează?

    $Codes$ lucrează doar pe paginile dinamice, adică pe paginile create în cadrul Panoului de Control, prin intermediul opţiunii "Creaţi pagină". Aceste $Codes$ nu funcţionează pe pagini statice încărcate, cu extensia .html.

    Quote
    Cum pot crea condiţii alternative, de exemplu pentru codul $GROUP_ID$?

    <?if($GROUP_ID$=5 or ($GROUP_ID$=4 and $USER$='Alex'))?>...<?endif?>

    Quote
    Există operatori, care permit unui utilizator să vadă în cadrul listei doar categoriile, la care el/ea are acces?

    Poate fi realizat prin formarea unei liste de categorii manual, adică bifaţi grupul curent şi lista necesară de categorii ce va fi afişată. La următorul pas, veţi bifa secţiunea care nu este necesară.

    Quote
    $GROUP_ID$ nu funcţionează în cadrul şablonului Panoul de Anunţuri. De ce?

    Mesajele Panoului de Anunţuri sunt salvate în memoria cache, aşadar nu puteţi utiliza coduri variabile dinamice.

    Quote
    Există codul $USER_LOGGED_IN$. Există şi codul $USER_LOGGED_OUT$?

    Este suficient să adăugaţi negaţia (!) la condiţia <?if(!$USER_LOGGED_IN$)?>



    Hint: puteţi face următorul
    Code
    <img border="0" src="/path_to_file/group$GROUP_ID$.gif">

    Şi afişaţi imaginea dorită într-o astfel de variantă pentru fiecare grup.

    Notă

    Este un link către ajutorul pentru operatorii condiţionali în cadrul Panoului de Control. Acolo puteţi găsi ce înseamnă secţiunile condiţionale şi aveţi şi exemple pentru acestea.
    Good things come to those who wait!
  • ArtyRo
    Postări: 3502
    Reputație: 140
    Mesaj # 2 | 3:29 PM
    Citat Felicia
    Hint: puteţi face următorul

    Cod
    <img border="0" src="/path_to_file/group$GROUP_ID$.gif">


    Şi afişaţi imaginea dorită într-o astfel de variantă pentru fiecare grup.


    ca sa vedeti cat de bun e acest Hint, uitati-va ce am facut eu: pe MaxRom am folosit aceasta sintaxa pentru avatar implicit
    Cod
    <?if($_AVATAR$)?>$_AVATAR$<?else?><img title="$USERNAME$" border="0" src="http://maxrom.net/images/bd/profil/ava/$GROUP_ID$.png"><?endif?>


    deci dupa cum vedeti http://maxrom.net/images/bd/profil/ava/$GROUP_ID$.png e imaginea si in folderul ava am 7 imagini cu denumirile 1.png 2.png 3.png 4.png 255.png 251.png si 0.png oaspeti.
    daca nu as fi folosit acest hint, codul de mai sus ar arata cam asa:

    Cod
    <?if($_AVATAR$)?>$_AVATAR$<?else?>
    <?if($GROUP_ID$='1')?><img title="$USERNAME$" border="0" src="http://maxrom.net/images/bd/profil/ava/1.png"><?endif?>
    <?if($GROUP_ID$='2')?><img title="$USERNAME$" border="0" src="http://maxrom.net/images/bd/profil/ava/2.png"><?endif?>
    <?if($GROUP_ID$='3')?><img title="$USERNAME$" border="0" src="http://maxrom.net/images/bd/profil/ava/3.png"><?endif?>
    <?if($GROUP_ID$='4')?><img title="$USERNAME$" border="0" src="http://maxrom.net/images/bd/profil/ava/4.png"><?endif?>
    <?if($GROUP_ID$='255')?><img title="$USERNAME$" border="0" src="http://maxrom.net/images/bd/profil/ava/255.png"><?endif?>
    <?if($GROUP_ID$='251')?><img title="$USERNAME$" border="0" src="http://maxrom.net/images/bd/profil/ava/251.png"><?endif?>
    <?if($GROUP_ID$='0')?><img title="$USERNAME$" border="0" src="http://maxrom.net/images/bd/profil/ava/0.png"><?endif?>
    <?endif?>

    este diferenta?

    tot acest hint il folosesc la scriptul cu medalii pentru numaru de comentari si reputatie pe forum, iarasi daca nu as fi folosit acest hint, as fi avea cam 2+36 conditii, atatea cate imagini folosesc.

    Gravedigger
    Postări: 239
    Reputație: 17
    Mesaj # 3 | 10:39 PM
    Dar sa zicem ca avem un tebel(pe forum) iar in celula unde apare mesajul eu as vrea sa apara in coltul dreapta jos o imagine numai la cei care fac parte din anumite grupuri de utilizatori.Adica daca mesajul este postat de un administrator in coltul dreapta jos al celulei cu mesajul si semnatura sa apara aceasta imagine:

    Am incercat eu ceva dar nu am reusit decat sa fac praf totul.

    TheGame
    Postări: 376
    Reputație: 7
    Mesaj # 4 | 11:59 PM
    Felicia, mulţumesc frumos pentru explicaţie, chiar m-a ajutat foarte mult! biggrin
    Material modificat de TheGame - Duminică, 24/02/2013, 0:00 AM
    stand
    Postări: 22
    Reputație: 2
    Mesaj # 5 | 1:00 AM
    Buna! Vreau sa adaug asa un cimp aditional la descrierea fotografiei

    Cod
    <tr><td colspan="2" align="center"><b><font size="4" style="font-size: 10pt;">$OTHER2$</font></b></td></tr>


    dar vreau ca acest cimp sa fie vizibil doar pentru administratori si moderatori.

    Ma poate ajuta cineva cu scrierea acestui cod cu operatori conditionali?

    MERSI AM REUSIT SA FAC SINGUR!
    Material modificat de stand - Miercuri, 05/02/2014, 1:50 AM
    ArtyRo
    Postări: 3502
    Reputație: 140
    Mesaj # 6 | 2:08 AM
    stand, incearca asta si zi daca merge
    Cod
    <?if($GROUP_ID$='4' or '3')?><tr><td colspan="2" align="center"><b><font size="4" style="font-size: 10pt;">$OTHER2$</font></b></td></tr><?endif?>

    stand
    Postări: 22
    Reputație: 2
    Mesaj # 7 | 0:22 AM
    Uff... Am reusit sa fac acest cimp vizibil in pagina cu fotografia. Acum vreau sa se vada si in album putin mai jos de numele fotografiei.

    Presupun ca tre sa pun un cod asemanator in "aspectul inregistrarii pozelor" undeva aici

    Cod
    <span class="photo-title"><a href="$PHOTO_URL$">$PHOTO_NAME$</a></span>
      <span class="photo-block">


    Am incercat si nu reusesc. Mai vrea sa ma ajute cineva ? smile
    ArtyRo
    Postări: 3502
    Reputație: 140
    Mesaj # 8 | 2:23 AM
    stand, acelasi cod pui unde vrei in aspectul intrarii (inregistrarii)
    stand
    Postări: 22
    Reputație: 2
    Mesaj # 9 | 2:47 PM
    Muşatinu, am incercat si nu merge.

    Adăugat (06/02/2014, 1:47 PM)
    ---------------------------------------------
    daca fac faca fara a pune operatori conditionali totul merge bine

    <span class="uphoto">
    <span class="photo-title"><a href="$PHOTO_URL$">$PHOTO_NAME$</a></span>
    <span class="photo-title"><a href="$PHOTO_URL$">$OTHER2$</a></span>
    <span class="photo-block">
    <span class="ph-wrap">

    Daca insa pun operatori conditionali inainte atunci nu mai merge

    Cod
    <span class="uphoto">
      <span class="photo-title"><a href="$PHOTO_URL$">$PHOTO_NAME$</a></span>
      <?if($GROUP_ID$=3 or $GROUP_ID$=4)?><span class="photo-title"><a href="$PHOTO_URL$">$OTHER2$</a></span><?endif?>
      <span class="photo-block">
      <span class="ph-wrap">


    Ce nu am facut eu bine?
    ArtyRo
    Postări: 3502
    Reputație: 140
    Mesaj # 10 | 6:03 PM
    stand, nu stiu ce nu ai facut corect, dar ar trebui sa mearga perfect
    TheGame
    Postări: 376
    Reputație: 7
    Mesaj # 11 | 9:13 PM
    stand, la modulul photo, in "Aspectul înregistrării pozelor" funcționează
    Cod
    $CUR_GROUP_ID$
    în loc de
    Cod
    $GROUP_ID$
    .

    Comunitatea uCoz » Altele » Instrumente şi Script-uri » Operatori condiţionali (<?if($VAR$)?>...<?else?>...<?endif?>)
    • Pagina 1 din 1
    • 1
    Căutare: