x-ƒ (x_f)

Visu pa plauktiņiem 

otrdien, 30.11.2004 @4:23 pm | x-ƒ

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:

function categorization(string text) : string "Nosaka ieraksta kategoriju" {
  var string category = "";
  if ($text->contains("<span class=\"e-music\">")) {
    $category = " cat-music";
  } elseif ($text->contains("<span class=\"e-fun\">")) {
    $category = " cat-fun";
  } else {
    $category = "";
  }
 return $category;
}

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.

*labprāt, sasodīts | wasted (atbildēt)

trešdien, 19.01.2005 @12:26 am

*labprāt, sasodīts
x-ƒ (x_f)
Tas nu gan būtu ļoti.. | x-ƒ (atbildēt)

piektdien, 21.01.2005 @12:48 pm

Tas nu gan būtu ļoti prātīgi. :) Es kā standarta sākums. :)

Tās kategorijas varēji uzzināt pats, paskatoties mana žūrnāla CSS. Lai nu kā, te tās ir - e-me (pats par sevi), e-music, e-tech, e-soc (vairāk par sabiedrību un tā), e-trash, e-fun.
e-trash vēl nav ticis izmantots un laikam vispār arī nevajag, jo tas ir gandrīz tas pats, kas e-fun. Abi tomēr ir trash. :)
Protams, ka var ieviest vēl, jo pielikt jaunas ir minūtes darbs.
Paldies par interesi!
āā, pareizi, nemaz.. | wasted (atbildēt)

piektdien, 21.01.2005 @6:26 pm

āā, pareizi, nemaz neienāca prātā CSS, domāju, ka tikai ierakstos atrastu :] paldies, paglabāšu kaut kur.