Powered by slightly modified MediaWiki and TED Notepad text editor.

Dev:Classes/Storage

Image:Classes_-_Storage.png

Navigation: Dev:Classes.

Contents

Uvod

Trieda: Storage

Uzivatelove osobne ulozisko fotiek (vid Photo). Kazdy uzivatel ma iba jedno ulozisko fotiek. Jeho primarna uloha je poskytovat uzivatelovi pristup k jeho fotkam, ale i zarucit dodrzanie opravneni nad nimi (napr. velkost povoleneho limitu).

Okrem uzivatelskych ulozisk system obsahuje aj jedno verejne ulozisko (shared storage), ktore nema priradeneho ziadneho konkretneho uzivatela. Jeho ucelom je dat vsetkym uzivatelom moznost pouzivat spolocne obrazky, napr. systemove iknoky a podobne. Toto verejne ulozisko je zdielane vsetkymi uzivatelmi, avsak ich prava na nom sa mozu lisit. Napriklad nie kazdy uzivatel ma moznost do neho pridavat nove fotky alebo editovat tagy fotiek (vid triedu PhotoTag).


name type description
space_usage int Velkost priestoru zabrateho uzivatelovymi fotkami.

Poznamka: Pokial uzivatel do systemu nahra nejaku fotku viac krat, tj. nahra do systemu niekolko fotiek s rovnakymi fyzickymi datami, ulozia sa tieto fotky fyzicky vsetky na jedno miesto. Do uzivatelovho limitu sa preto tieto fotky pocitaju iba raz. Pokial vsak dvaja rozny uzivatelia vlozia do systemu rovnaku fotku, kazdemu z nich sa dana fotka zapocita do limitu zvlast, i ked fyzicky dane fotky system zatazia iba raz.


Trieda: Photo

Uzivatelova fotka. Uzivatel si do systemu (do svojho uloziska) moze nahrat viacero takychto fotiek. Fotky sa v systeme daju pouzit viacerymi sposobmi. Napriklad sa daju vkladat do albumov alebo pouzivat ako ich ikony (vid Album). Uzivatel si tiez moze v profile nastavit jednu takuto fotku ako svoj fotoportret.


name type description
storage link Linka na ulozisko, do ktoreho fotka patri.
image image Linka na fyzicke data samotnej fotky.

Poznamka: Tento atribut sluzi na zabezpecenie zdielania fyzickych dat fotiek medzi uzivatelmi, ktore bude blizsie opisane v triede Image. Toto zdielanie je transparentne a uzivatelia systemu o nom nemusia vediet. Jeho vyznam je predovstekym v hospodareni s diskovou kapacitou.

private bool Hovori, ci je fotka privatna. Pokial ano, nezobrazuje sa ani v priradenych albumoch, ani ako ikonka ziadneho albumu, ci adresaru albumov.

Poznamka: Vlastnik (moderator) albumu by sa mal dozvediet, ze v jeho albume je taka fotka, i ked sa na nu uz pravdepodobne nebude moct pozriet. Dovodom je hlavne to, ze jeden uzivatel moze vediet, ze album jeho vlastnik spravuje vzdy iba v piatok a preto vzdy v piatok nastavi fotke atribut private. Tym sa fotka na chvilu strati zo zoznamov. Vlastnik (moderator) albumu vsak musi o tom vediet.


Trieda: Photo.Info

 Vlastnikom fotky zadane informacie o danej fotke. Obsahuje napr. nazov fotky, jej popis, miesto, odkial fotka pochadza a podobne. Tieto informacie moze vlastnik fotky kedykolvek menit.

Poznamka: Trieda momentalne obsahuje aj atributy watermark_disabled a last_comments_access, ktore sem logicky moc nepatria. Pravdepodobne budu casom presunute do nejakej novej triedy.


name type description
added datetime Cas, kedy bola fotka nahrata do systemu.
name string Meno fotky zvolene uzivatelom.
description text Popis fotky, napisany uzivatelom.
location string Miesto, kde bola fotka odfotena, vyplnene uzivatelom.
author string Meno autora fotky, pripadne copyright, atd. Vyplneny uzivatelom.
date datetime Datum vzniku fotky, vyplneny uzivatelom.
exif_info struct EXIF data vytiahnute z fotky, pripadne rucne zadane.

Poznamka: S fyzickymi EXIF datami ma tento atribut spolocny len nazov a povod. Uzivatel si tento atribut moze upravit. Fyzicke data sa pri uprave menit nebudu.

watermark_disabled bool Hovori, ci si vlastnik fotky praje zrusit zobrazovanie watermarku na danej fotke alebo nie.

Poznamka: Pokial sa nejaky watermark na fotke zobrazuje, tak vsetkym uzivatelom rovnako. A to bud podla watermarku vlastnika fotky (User.Settings.watermark_position a User.Settings.watermark_image), alebo podla toho, ako to prikazuju celosystemove nastavenia (GlobalSettings.Photo.allow_user_watermark, GlobalSettings.Photo.default_watermark_position a GlobalSettings.Photo.default_watermark_image).

Poznamka: V pripade, ze celosystemove nastavenie GlobalSettings.Photo.allow_user_watermark nedovoluje uzivatelske watermarky, tento atribut nema vyznam.

last_comments_access datetime Cas, kedy vlastnik fotky posledne videl jej komentare.

Poznamka: Na zaklade tohto casu sa potom daju vyhladat fotky, ktorym pribudli nove komentare, ktore uzivatel este nevidel.


Trieda: Photo.Score

Hodnotenie fotky, skladajuce sa z jej popularity (poctu zobrazeni) a priemerneho oznamkovania.

Pocet zobrazeni fotky za zvysuje o jednicku vzdy, ked sa zobrazi detail fotky. Nepocita sa vsak zobrazenie nahladu fotky, editacneho formularu fotky a pod. Pocet zobrazeni sa pocita aj v pripade, ze sa vysledny pocet zobrazeni fotky v systeme nezobrazuje z dovodu celosystemovych nastaveni.

Aktualna znamka fotky sa vzdy spocita ako poddiel atributov nominator a denominator, co je aritmeticky priemer vsetkych doterajsich znamok. Pokial uzivatel hodnoti fotku nejakou znamkou, tato znamka sa pricita k atributu nominator a atribut denominator sa zvysi o jednicku.

Poznamka: Fotosutaze nie su nijak zalozene na tejto forme znamkovania. Pokial sa nejaka fotka ucastni nejakej fotosutaze, jej hodnotenie v danej sutazi sa uklada vo Fotosutazi(link).


name type description
count int Pocet zobrazeni detailu fotky. Za zobrazenie sa nepocita zobrazenie nahladu ani automaticke zobrazenia, napr. ako ikona albumu a pod.
numerator int Citatel priemernej znamky fotky, cize sucet vsetkych doterajsich znamok.
denominator int Menovatel priemernej znamky fotky, cize pocet vsetkych doterajsich znamok.


Trieda: PhotoTag

 Tag (keyword) fotky. Uzivatel si ku kazdej fotke moze priradit skupinu tagov, oddelenu medzerami, podla ktorych si dane fotky jednak rozdeluje akoby do adresarov a jednak ponuka ostatnym uzivatelom moznost v jeho fotkach vyhladavat.

Tagy, v porovnani s klasickymi adresarmi tvoria pohyblivu a tiez rozsirenu adresarovu strukturu, pretoze fotka s tagmi dovolenka leto sa da povazovat za fotku zaroven nachadzajucu sa v adresari dovolenka/leto aj leto/dovolenka. Zatial, co pri adresaroch na poradi casto zalezi, u tagov vobec.

Zobrazenie fotiek podla tagov

Zobrazenie fotiek podla tagov ponuka tri moznosti filtrovania:

  • vsetky fotky oznacene aspon nejakou mnozinou tagov.
  • vsetky fotky oznacene aspon nejakou mnozinou tagov, ale neoznacene inou mnozinou tagov.
  • vsetky fotky oznacene prave nejakou mnozinou tagov.

Prve zobrazenie uzivatel definuje zadanim jednotlivych tagov, oddelenych medzerami, napriklad dovolenka leto. V takomto zobrazeni sa nachadzaju fotky s tagmi dovolenka leto, dovolenka leto 2005, ale nie fotky s tagmi dovolenka 2005. Uzivatel si takto moze zobrazit fotky zo vsetkych letnych dovoleniek.

Druhe zobrazenie uzivatel definuje doplnenim prveho o tzv. zaporne tagy, napriklad dovolenka leto -2005. V takomto zobrazeni sa nachadzaju fotky s tagmi dovolenka leto, dovolenka leto 2002, ale nie fotky s tagmi dovolenka leto 2005 ani dovolenka 2002. Prikladom uzitocneho zobrazenia tohto typu moze byt dovolenka leto -pokazene, ktore zobrazi vsetky fotky z letnych dovoleniek, vyjma tych, ktore su oznacene ako pokazene.

Poznamka: Operator minus moze byt od tagu oddeleny medzerov, tj. leto -2005 je to iste, ako leto - 2005.

Poznamka: Operator minus sa vztahuje iba na bezprostredne nasledujuce slovo (oddelene medzerami). Vyraz dovolenka leto -2005 ma rovnaky vyznam ako dovolenka -2005 leto.

Tretie zobrazenie uzivatel definuje doplnenim prveho o vykricnik, napriklad dovolenka leto !. V takomto zobrazeni sa nachadzaju vyhradne fotky s tagmi dovolenka a leto. Toto zobrazenie sluzi predovsetkym na vyhladanie fotiek, ktore maju rovnake tagy, pripadne na dosiahnutie spravania sa podobneho beznej adresarovej strukture.

Poznamky

Poznamka: Vykricnik nemusi byt nutne na konci vyrazu, ale musi byt oddeleny medzerou z oboch stran. Niektore jazyky totiz vykricnik pouzivaju ako sucast slova.

Poznamka: Zobrazenie typu dovolenka leto -2005 ! nema ziaden prakticky vyznam, pretoze rovnaky vysledok sa da dosiahnut i zobrazenim dovolenka leto !. System by vsak aj taketo zobrazenie mal spracovat spravne.

Poznamka: V tagoch fotiek nie su dovolene html tagy. V pripade, ze uzivatel predsalen html pouzije, system by mal zobrazovat dane html ako plain text. T.j. tag <b>leto</b> by sa mal vzdy zobrazovat ako <b>leto</b>, nie ako tucne leto.

Obmedzenia

Pre potrebu pouzitia operatorov minus a vykricnik tagy fotiek nemozu obsahovat tieto dva znaky uplne volne. Samotny vykricnik nie je tagom a system nesmie povolit priradenie takeho tagu. Podobne tag nesmie zacinat znakom minus.


name type description
photo link Linka na fotku, ku ktorej tag patri.
tag string Meno tagu. Meno nesmie obsahovat medzeru, nesmie zacinat znakom minus a nesmie to byt samotny vykricnik.


Trieda: Image


name type description
size int Velkost originalneho obrazku v bytoch.
width int Sirka originalneho obrazku (horizontalna velkost).
height int Vyska originalneho obrazku (vertikalna velkost).
md5 hash Hash z dat originalneho obrazku. Tento hash sa da pouzit napr. na rychle vyhladanie duplicity vkladanych suborov a nasledne zdielanie dat.
md5ex int Md5 hash generovany z dat originalneho obrazku sluzi zaroven aj na pomenovanie pripadnych suborov ulozenych vo filesysteme. Je teda ziadane, aby bol vzdy unikatny. Preto, pokial by dva datovo rozne obrazky mali mat rovnaky md5 hash, atribut md5ex obsahujuci poradove cislo ich navzajom rozlisi. Dvojica md5-md5ex je vzdy unikatna.
data blob Fyzicke nemodifikovane data originalneho obrazku.


Trieda: PhotoPreview


name type description
photo link Fotka, ku ktorej spracovana verzia patri.
filename string Relativna cesta a meno suboru, kde je dana verzia fotky aktualne ulozena.
parameters record Parametre, s ktorymi bola verzia fotky vyrobena (velkost, watermark) a podla ktorych sa da jednoznacne identifikovat ako ta, ktora ma byt zobrazena v prehliadaci.
last_access datetime Posledny pristup k verzii fotky. Vzdy, ked sa verzia fotky zobrazi, tento atribut sa aktualizuje. Spravca tak bude moct v ramci udrzby systemu cas od casu mazat davno nepouzite verzie fotiek.


Trieda: PhotoComment


name type description
photo link Fotka, ku ktorej sa komentar viaze.
parent link V pripade ze je komentar odpovedov na iny komentar, obsahuje linku na povodny komentar.
state enum Stav komentaru. Mozne hodnoty:
  • waiting-approval - komentar caka na potvrdenie vlastnikom fotky.
  • approved - komentar je potvrdeny a zobrazuje sa.
  • deleted - komentar je zmazany a miesto neho sa v pripadnom strome komentarov zobrazuje iba oznam o jeho zmazani.

Poznamka: Pokial je komentar sucastou stromu, jeho fyzicke odstranenie nemusi byt mozne, kvoli vazbam. Vid atribut parent.

Poznamka: Pokial vlastnik fotky nechce komentare potvrdzovat, stavom waiting-approval fotka nikdy neprejde.

date datetime Datum a cas pridania komentaru.
user link Link na uzivatela, ktory komentar pridal. Tento atribut je dobrovolny. Jednak preto, ze existuju aj prispevky od navstevnikov a jednak preto, ze uzivatel svoju identitu nemusi chciet priamo zverejnit.
name string Meno autora komentaru. Autor komentaru moze zadat meno lubovolne, nezavisle na svojom uzivatelskom ucte.
mail string Kontaktny mail na autora komentaru. Autor komentaru moze zadat mail lubovolne, nezavisle na svojom uzivatelskom ucte.
text text Text komentaru.
ip netip IP adresa, z ktorej bol komentar pridany.
host string Hostname, z ktoreho bol komentar pridany.