x-ƒ (x_f)

Visu pa plauktiņiem

otrdien, 30.11.2004 @4:23 pm | x-ƒ ([info]style)

Nu, tā kā [info]wasted nepieteicās, tad nācās to vien darīt pašam. :) Kaut kādā veidā ierakstu kategorizēšana manā žūrnālā ir iespējama un darbojas. Varat paskatīties. Nekā sarežģīta, tikai tagad, katru reizi rakstot kādu pukstu, jāatceras pielipināt dažus liekus vārdus.

Tātad – kā tas viss darbojas? Tālāk paskaidrošu, kā es to izdarīju, taču galvenais jau ir ideja, ne izpildījums. Manā žūrnālā, lai ierakstus varētu dalīt pa tēmām, tiek izmantoti dažādi fona attēli, taču tas ir tikai viens veids. Man tā patika labāk, taču pilnīgi mierīgi to var izdarīt citā veidā – izvadīt kādu tekstu vai vēl ko.

Manā stilā katrs ieraksts ir savā <div /> tagā ar klasi "ieraksta_teksts", lai to formatētu, kā vajag. Tad, lūk, šim tagam arī tiek pievienota vēl viena klase, kas ir saistīta ar manis izvēlēto kategoriju katram ierakstam. Ja kādu interesē CSS, paskatieties mana žūrnāla HTML kodu. Piemēram lietošu divas kategorijas – "e-music" un "e-fun" ("e" no "entry"), taču to ir vairāk. Nav nekādu grūtību noteikt, cik un kādas vajag.

Kādai kategorijai ieraksts pieder? Es vienkārši katra ieraksta sākumā pierakstu <span class="e-music"></span>. Tas piemēram. Tā kā šis elements ir tukšs un <span /> neko nenozīmē, tad draugu lapās tas izskatās kā parasti. Tālāk, pirms katra ieraksta izvadīšanas, tiek pārbaudīts, kādai kategorijai tas pieder. To dara šī funkcija: dažas rindiņas ) Tur viss elementāri. (Patiesībā tā pārbauda arī, vai klase nav apostrofos, taču noīsināju, lai saprotamāks.) Ja ieraksts satur vajadzīgo frāzi, tad tiek atgriezta atbilstoša CSS klase, kas arī nosaka formatējumu – "e-music" -> "cat-music". Pēc tam šī funkcija tiek izsaukta, piemēram, no funkcijas Page::print_entry(Entry e) apmēram šādi:

var string kategorija = categorization($e.text);
 """<div class="ieraksta_teksts$kategorija" id="e$e.itemid">\n""";

Īsumā. Funkcija, izvadot ierakstu, pārbauda, vai tas satur kādu noteiktu frāzi, un atgriež CSS klases nosaukumu, kurš tad tiek pielipināts attiecīgā ieraksta konteinerim. Un uiss. :) Man ir doma par elementāru filtrēšanu, bet tad jau redzēs. Vēl īsti nav, ko filtrēt.