x-ƒ (x_f)

Viss ir nejaušība 

pirmdien, 7.06.2004 @1:09 pm | x-ƒ

Š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.

function print_random_userpic(){

  var string[] pic;

# protams, ka "#" simbolu vietā jāieraksta
# pareizais ceļš pie savas bildītes
  $pic[0]="http://journal.bad.lv/userpic/####/####";
  $pic[1]="http://journal.bad.lv/userpic/####/####";
  $pic[2]="http://journal.bad.lv/userpic/####/####";
  $pic[3]="http://journal.bad.lv/userpic/####/####";
  $pic[4]="http://journal.bad.lv/userpic/####/####";
  $pic[5]="http://journal.bad.lv/userpic/####/####";

  var int randpic;
  $randpic = rand(0, ((size $pic) - 1));

  """<img src="
$pic[$randpic]" alt="Mana bildīte" />""";
}

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.

function print_random_quote(){

  var string[] quote;

  $quote[0] = """&laquo;Not all drugs are good, okay? Some are.. hmm.. great!&raquo;<br /><br /><span class="autors">De | Phazz</span>""";
  $quote[1] = """&laquo;I just met a girl, who believes we can fly.&raquo;<br /><br /><span class="autors">James</span>""";
  $quote[2] = """&laquo;Nightmare is my way to get prepared for the day.&raquo;<br /><br /><span class="autors">De | Phazz</span>""";
  $quote[3] = """&laquo;Par ko es dzīvi nīstu? Par to, ka tā par īsu.&raquo;<br /><br /><span class="autors">S'T'A</span>""";
  $quote[4] = """&laquo;Imagine the worlds' leaders on pills, then imagine the mornin' after.&raquo;<br /><br /><span class="autors">The Streets</span>""";
  $quote[5] = """&laquo;I can feel megabytes of memories in my heart.&raquo;<br /><br /><span class="autors">Bebel Gilberto</span>""";

  var int randquote;
  $randquote = rand(0, ((size $quote) - 1));

  """<span class="citats">
$quote[$randquote]</span>""";
}

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.

how about: var Image img;.. | M. (atbildēt)

pirmdien, 7.06.2004 @2:54 pm

how about:

var Image img;
img.set_url($random_url);

un pēc tam jau img.height, img.width kur vajag?

Es neesmu drošs, ka tāds variants tiešām darbojas.
x-ƒ (x_f)
es arī ne, bet varētu.. | x-ƒ (atbildēt)

ceturtdien, 10.06.2004 @1:50 pm

es arī ne, bet varētu pārbaudīt.
man gan liekas, ka iespējami tikai Cibas lokālie url'i, no palimg vai kā nu tur.