x-ƒ (x_f)

QuickReply 

pirmdien, 31.10.2005 @9:07 am | x-ƒ

Quickreply ir tāda iespēja, ka, nospiežot uz ieraksta vai komentāra komentēšanas saites, zem tā tiek izvadīta forma, kas ļauj rakstīt atbildi uz šo ierakstu vai komentāru uzreiz, neatverot parasto komentēšanas lapu. Tas gan (diemžēl) darbojas tikai ieraksta lapā, no draugu lapas pa tiešo komentēt gan nevarēs.

Sagribējās sava žūrnāla stilam ieviest quickreply fīču. Pirms laba laika manīju to LiveJournal, pirms kāda laika pamanīju arī vienam stilam Cibā. Tagad nu man arī to savajadzējās. Tā kā nekādas pamācības, kā to pareizi iedabūt kodā, neatradu, tad nācās vien pašam mēģināt. Un vakar vakarā beidzot sanāca arī. Tādu vispārīgu veidu, kā to ieviest kodā, es neatradu, tāpēc vienkārši paskaidrošu, kā es to izdarīju.

Ir divas funkcijas – Page::print_reply_container(string{} opts) un Page::print_reply_link(string{} opts). Tās arī visu izdara, ir tikai jāizsauc pareizajās vietās. Ir divas iespējas – vai nu izmantot quickreply gan ierakstam, gan komentāriem (kā to izdarīju es), vai arī tikai komentāriem.

Vispirms par ierakstu. Man visus ierakstus izvada funkcija Page::print_entry(Entry e). No tās īstajā vietā tiek izsaukta funkcija, kas izvada komentāru saites gan lasīšanai, gan rakstīšanai:

if ($e.comments.enabled) {
$e.comments->print();
}

Eh.. Tūlīt būs kaut kas sarežģīts. No šīs funkcijas (CommentInfo::print()) savukārt tiek izsaukta CommentInfo::print_postlink(), kas izvada linku uz komentēšanas lapu. Nu, lūk. Šajā funkcijā ir svarīgas divas rindiņas:

var Page p = get_page();
$p->print_reply_link( { "target" => "qrentry", "linktext" => $*text_post_comment, "reply_url" => "$.post_url" } );

Page::print_entry()funkcijā (kas izvada katru ierakstu) es īstajā vietā (zem teksta) ierakstīju šo kodu:

$this->print_reply_container({"target" => "qrentry"});

Tātad – nelielas izmaiņas komentēšanas linka kodā un viena rindiņa tai vietā, kur zem ieraksta būtu jāparādās quickreply formai. Galvenais, kam jābūt – jāsakrīt target vērtībai, nosaukumu tur var izvēlēties pēc savas gaumes, tikai abās vietās tam jābūt vienādam, kā šeit tas ir "qrentry".

Lai dabūtu quickreply komentāriem, man bija jāpamaina tikai viena funkcija – EntryPage::print_comment (Comment c), kas izvada katru komentāru (pilno komentāru). Vispirms komentāra komentēšanas links:

$c->print_reply_link( { "linktext" => $*text_comment_reply,
                        "reply_url" => "$c.reply_url" } );

Pēc tam jāizvēlas vieta, kur parādīsies quickreply forma (parasti jau nu zem komentāra) un jāieliek tur šis te:

$c->print_reply_container();

Šeit nekādus target nevajag, viss notiek automātiski. It kā pie parametriem komentēšanas saitei var pielikt arī title, kas to arī linkam nozīmē, taču man tas kaut kādā veidā tika ignorēts.

Nu, tas arī viss. Saprotams, ka komentāriem to pielikt ir vienkāršāk. Neko sakarīgi gan neizskaidroju, taču ceru, ka kaut kādu skaidrību devu. Ja kas, jautājiet, varbūt varēšu atbildēt.

Starp citu. [info]tidliibums Saitenesen interesējās, kā iespējams apvienot ReplyForm ar style=mine. Tad nu lūk – ja izmanto style=mine, tad, komentējot no quickreply formas, lietotājs atgriezīsies tajā pašā lapā ar visu style=mine.

hello | anonīms (atbildēt)

ceturtdien, 27.12.2007 @7:22 am

fun search test! http://greatthebest.info/watches/detecting-a-fake-rolex.html porshe design replica watches (http://greatthebest.info/replica-watches/porshe-design-replica-watches.html) replica rolex quartz china (http://greatthebest.info/rolex-replica/replica-rolex-quartz-china.html) used rolex watches los angeles (http://greatthebest.info/used-rolex-watches-los-angeles.html) http://greatthebest.info/rolex-replica/solid-18kt-rolex-replica.html rolex sweep motion watches (http://greatthebest.info/watches/rolex-sweep-motion-watches.html) rolex fake swiss (http://greatthebest.info/replica-watches/rolex-fake-swiss.html) http://greatthebest.info/replica-watches/replica-luminox-watches.html rolex replica watch (http://greatthebest.info/watches/rolex-replica-watch.html) http://greatthebest.info/watches/rolex-diamond-dials-nashville.html clay kessler replica watches (http://greatthebest.info/replica-watches/clay-kessler-replica-watches.html) womans rolex replica watch (http://greatthebest.info/replica-watches/womans-rolex-replica-watch.html) http://greatthebest.info/watches/rolex-watches-cheap.html man rolex watch (http://greatthebest.info/watches/man-rolex-watch.html) top brand replica watches (http://greatthebest.info/replica-watches/top-brand-replica-watches.html)