- Cīņa ar skaitītāju
- 2005-7-30. 02:43
-
ramuuns
Vakar intereses pēc izdomāju ielikt šajā lapā skaitītāju. OK domāts - darīts ejam uz stats.tunt.lv un reģistrējamies. Dabūnam skaitītāja kodu, ieliekam to iekš funkcijas print_plain_footer() un viss notiek.
or so I thought.
Precīzāk nenotiek nekas. Kā izrādās labie livejournal veidotāji labu domādami nepieļauj itnekādus javaskritpus iekš S2 layeriem. Oh well. Nu labi tā kā bija vēls apmierinājos ar to, ka tika ielikta vienkārši bildīte. Tomēr bildītei ir tā nepilnība, ka var redzēt tikai apmeklētājus (to skaitu precīzāk). Gribējās tad zināt - ko tieši tad mani dārgie lasītāji lasa.
Tad nu saņēmos un pirmo reizi izbūros cauri S2 dokumentācijai un ar roku piekabināju vajadzīgos parametrus bildei.
Tālāk seko tehnisks apraksts, kas tad tieši tika darīts, neprogrammētājiem varētu būt neinteresanti :)
Tiem, kas vēlas ielikt savā journalā rēķinātāju būtu jāzin sekojošais. To var ielikt (nu lai būtu sakarīgs) tikai S2 sistēmā (vismaz tā man centās iestāstīt livejournal FAQ).
Vispirms būtu jāizdomā kur novietot bildīti. Viena no iespējamām vietām ir footeris (kājene). Taču kā par nelaimi print footer funkcija parasti ir dotam layerim globāla, tātad neko nezinoša par to, kur tā atrodas .
Viņu var protams, apmācīt tai padodot parametrus. Vienīgie TunT interesējošie parametri, kurus mēs varam iegūt no lj ir lapas adrese (URL) un lapas nosaukums.
Taču jāņem vērā, ka urli, piemēram, "http://kautkas.lv/?foo=bar&id=15" un virsrakstu - "Jāņa Bērziņa Emuāri" nevaram dot parametros tādā paskatā, kādā viņi ir. Tas dēļ tā, ka dažiem simboliem ir noteikta nozīme URLī un tos nabaga skripts otrā galā vainu vienkārši nesagremos vai arī sāks izdot dīvainus rezultātus. Tāpēc šīs virknes ir attiecīgi jāpārveido. Par laimi S2 mums piedāvā superglobālo funkciju eurl(), kas dara tieši to.
Tad nu manā gadījumā print_plain_footer funkcija izskatās šādifunction print_plain_footer(string url,string title){ var string imgsrc; $imgsrc = "http://stats.tunt.lv/button.php"; $imgsrc +="?id=930&pg="+eurl($url); $imgsrc +="&lnk="+eurl($title); """<div id="footer">© 2004-2005 dizains <a href="http://journal.bad.lv/~ramuuns/" title="ramuuns">ramuuns</a><br/> <a href="http://stats.tunt.lv/"> <img src="$imgsrc" alt="TunT counter v=0.09" border="0" /> </a> </div> </body> </html>"""; }
viss ir skaisti. Tagad gan rodas jautājums, kur dabūt vajadzīgos parametrus, kurus nodot šai funkcijai. Par laimi šī (vai arī šo funkciju izsaucošā funkcija print_footer()) tiek iekļauta visās lapu drukāšanas funkcijās - piemēram, RecentPage::print(), EntryPage::print() utt. Tad nu mums visur ir jāpieliek attiecīgās lapas URLis un tās nosaukums, kur mēs izsaucam augstāk parādīto kājenes drukāšanas funkciju.
Bet ko tad tieši tur nodot?
Lūk manis izmantotais sarakts:RecentPage::print() print_footer(
$.nav,
$.base_url+"/index.bml",
$this->title()
);EntryPage::print() print_plain_footer(
$.entry.permalink_url,
$.entry.subject
);ReplyPage::print() print_plain_footer(
$.entry.permalink_url+"?mode=reply",
"reply to "+$.entry.subject
);YearPage::print() print_plain_footer(
$.base_url+"/calendar",
$this->title()
);DayPage::print() print_plain_footer(
$.base_url+"/"+$.date.year+"/"+$.date.month+"/"+$.date.day,
$.date->date_format()
);MonthPage::print() print_plain_footer(
$.base_url+"/"+$.date.year+"/"+$.date.month,
$.date->date_format()
);
un tā iegūstam samērā funkcionālu skaitītāju.