x-ƒ (x_f)

Viss ir nejaušība

pirmdien, 7.06.2004 @1:09 pm | x-ƒ ([info]style)

Šoreiz pamācīšu, kā kaut ko izvadīt random'ā. Piemēram, manam iepriekšējam stilam žūrnāla augšā tika izvadīts kāds no manis noteiktajiem banneriem, bet sānā – citāts no kādas dziesmas. Katru reiz pārlādējot lapu, tā izskatījās nedaudz savādāk.
Šajā piemērā uzzināsi, kā izvadīt kādu no saviem noteiktajiem userpic'iem. Nevis to, kurš uzstādīts pēc noklusējuma, bet gan jebkuru no tiem, kas uzlādēti uz servera (lai gan ne tikai – var ņemt attēlu arī no citām vietām). Pēc tam beigās paskaidrošu arī, kas jāmaina, lai attēlu vietā izvadītu tekstu – kādu citātu, sveicienu vai ko līdzīgu.

Un tātad. Savā S2 layout slānī jāizveido globālā funkcija print_random_userpic(), kas izvadīs nejauši izvēlētu lietotāja bildīti jebkurā vietā, kur vien būs vēlēšanās. Šo kodu varēs izsaukt no jebkuras funkcijas vai klases savā stilā. Un, protams, ka to var pielāgot pēc katra vajadzībām un gaumes.

Visupirms ir jātiek pie sava S2 slāņa koda. Lūk, Saitešōrtkats, lai tiktu pie saviem slāņiem. :) Izvēlies vajadzīgo un nospied pogu "Edit". Tagad Tev ir redzams Tavs S2 kods un Tev tikai jāatrod kāda vieta (kur vien vēlies), kur ievietot zemāk esošo kodu.

funkcijas kods )

Protams, jāaizvieto katra http://journal.bad.lv/userpic/####/#### teksta virkne ar ceļu pie attēliem, kurus vēlies izmantot. Šajā vietā var izmantot ne tikai userpic'us, bet kaut vai bannerus. Šis jau ir tikai piemērs.
Ņem vērā, ka, lai gan šajā piemērā tiek izmantoti seši attēli, tas nav ne minimālais, ne maksimālais vērtību skaits – vari izmantot tik daudzus, cik vien vēlies. Tāpat var arī droši mainīt izvadāmo HTML kodu pēc vajadzības, ja vien attēla src atribūts paliek nemainīgs.
Lai izsauktu šo funkciju, vajadzīgajā vietā savā S2 slāņa kodā (kur vien tas vajadzīgs) ievieto šo rindiņu:
print_random_userpic();.

Lielākoties tulkots, Saitesaite.

Trūkums šādam risinājumam ir tāds, ka nav iespējams noteikt attēla izmērus. Protams, ja ir zināms, ka visi izvadāmie attēli ir vienāda izmēra, tad nav problēmu.
Pie izmēra iespējams tikt tikai defoltajam attēlam (tai lietotāja bildei, kas uzstādīta kā "noklusētā"), piemēram, $.journal.default_pic.width un $.journal.default_pic.height (no jebkuras funkcijas, kas ietilpst Page klasē vai tās apakšklasēs). Bet ne šeit.

Lai izvadītu tekstu, ir tikai pavisam nedaudz jāpamaina iepriekš izmantotais kods.

funkcijas kods )

Nedaudz par funkciju Saiterand(). Patiesībā ir divas funkcijas ar šādu nosaukumu – rand(int high) : int un rand(int low, int high) : int. Abos gadījumos tā, kā jau redzams, atgriezīs integer tipa vērtību – kādu nejauši izvēlētu skaitli. Pirmajā gadījumā tas būs starp 1 un $high ieskaitot, otrajā – starp $low un $high ieskaitot.