Dev:UseCases/Komentare fotky
Navigation: Dev:UseCases.
Navstevnik muze mit moznost precist si komentare k fotce, pripadne pridat svuj komentar.
Uzivatel muze mit tytez moznosti jako navstevnik.
Vlastnik fotky muze take komentare potvrzovat, mazat a menit.
Contents |
Prehled komentaru
Pomoci komentare muze navstevnik vyjadrit svuj nazor na vybranou fotku.
Prehled komentaru
Pokud maji navstevnici v systemu pravo prohlizet si komentare (atribut GlobalSettings.Photo.hide_comments), tak se navstevnikovi zobrazi prehled komentaru k fotce, a to podle nastaveneho stylu (atribut Visitor.Settings.comments_display_type).
V prehledu se navstevnikovi zobrazuji pouze komentare, jejichz stav je nastaven na potvrzen nebo smazan (atribut PhotoComment.state). U komentaru, jejichz stav je nastaven na smazan, se nezobrazuje jejich text (atribut PhotoComment.text), ale pouze text ve smyslu, ze dany komentar byl smazan.
Poznamka: Pokud je mezi komentari komentar od uzivatelova nepritele, bude misto textu komentare zobrazovan pouze text ve smyslu, ze komentar je od ignorovaneho uzivatele.
U kazdeho komentare se zobrazi jeho autor (atribut PhotoComment.name), cas pridani komentare (atribut PhotoComment.date) a jako subject zacatek textu komentare (atribut PhotoComment.text).
Take se zobrazuje celkovy pocet komentaru u fotky.
Styly zobrazeni
Navstevnik si muze styl zobrazovani komentaru zmenit (atribut Visitor.Settings.comments_display_type) a to primo zde u komentaru. Navstevnik si muze vybrat mezi styly, ktere byly popsany v kapitole Diskusia albumu. Styly zobrazovani komentaru jsou tytez jako u prispevku v diskuzi.
Dalsi moznosti
Pokud maji navstevnici v systemu pravo pridavat komentare (atribut GlobalSettings.Photo.hide_comments), pak muze navstevnik pridat svuj komentar nebo odpovedet na jiz existujici komentar, coz bude popsano dale.
Pokud jsou v systemu povoleny notifikace (atribut GlobalSettings.Notification.hide_all_notifications), muze si uzivatel vytvorit nebo zrusit notifikaci o novych komentarich k teto fotce (podle atributu PhotoNotification.type), coz bylo popsano v kapitole Detail fotky.
Poznamka: Pri vytvoreni nebo zruseni teto notifikace se uzivateli nezobrazi seznam vsech moznych notifikaci k teto fotce. Pouze se rovnou vytvori/zrusi tato notifikace.
Vlastnik fotky ma navic moznost vybrany komentar smazat, coz bude popsano dale.
Vlastnik fotky ma take moznost zobrazit si nepotvrzene komentare, coz bude popsano dale.
Cas pristupu
Pokud jsou v systemu povoleny notifikace (atribut GlobalSettings.Notification.hide_all_notifications) a pokud ma uzivatel vytvorenou notifikaci o novych komentarich u teto fotky (atribut PhotoNotification.type), tak se mu pri prohlizeni komentaru nastavi cas posledniho pristupu ke komentarum teto fotky (atribut PhotoNotification.last_access) na aktualni hodnotu.
Vlastnikovi se pri prohlizeni komentaru nastavi cas posledniho pristupu ke komentarum teto fotky (atribut Photo.Info.last_comments_access) na aktualni hodnotu.
Zobrazeni textu komentaru
Podle nastaveneho stylu zobrazovani komentaru (atribut Visitor.Settings.comments_display_type) si navstevnik muze zobrazit texty vsech komentaru nebo jen texty komentaru jednoho stromu, jak bylo popsano v kapitole Diskusia albumu. Komentare se take strankuji stejne jako prispevky v diskuzi.
Navstevnikovi se u kazdeho komentare zobrazi jeho autor (atribut PhotoComment.name), autoruv email (atribut PhotoComment.mail) - podle nastaveni zobrazovani emailu v systemu (atribut GlobalSettings.mangle_mails), cas pridani komentare (atribut PhotoComment.date), hostname, ze ktereho byl komentar pridan (atribut PhotoComment.host), a text komentare (atribut PhotoComment.text). Pokud komentar pridaval uzivatel, muze se take zobrazit odkaz na jeho profil (podle atributu PhotoComment.user), ktery byl popsan v kapitole Prehlad uzivatelov.
Navstevnik/uzivatel ma pri zobrazovani textu komentaru tytez moznosti jako pri zobrazovani prehledu komentaru.
Vlastnik ma moznost vybrany komentar zmenit, coz bude popsano dale.
Vlastnik ma moznost vybrany komentar smazat, coz bude popsano dale.
Uzivateli/vlastnikovi se pri zobrazovani textu prispevku aktualizuje cas posledniho pristupu ke komentarum stejne jako pri zobrazovani prehledu komentaru.
Pridani komentare
Pokud maji navstevnici v systemu pravo pridavat komentare (atribut GlobalSettings.Photo.hide_comments), muze navstevnik k fotce pridat vlastni komentar - a to jako 'novy' komentar nebo jako odpoved na nejaky predchozi komentar. Pokud odpovida na nejaky komentar, zobrazi se mu cely tento komentar, jak bylo popsano vyse.
Zadani komentare
Navstevnik vyplni povinne polozky - text komentare (atribut PhotoComment.text), pripadne i nepovinne polozky komentare - sve jmeno (atribut PhotoComment.name) a svuj email (atribut PhotoComment.mail), pricemz polozky jmeno a email jsou predvyplneny hodnotami, ktere navstevnik zadal napr. pri predchozim pridavani komentare pri teto navsteve systemu (podle atributu Visitor.Settings.signature_name a Visitor.Settings.signature_email).
Poznamka: Uzivatel si muze predvyplnene hodnoty zmenit zpet na sve jmeno (atribut User.Profile.display_name) a kontaktni email (atribut User.Profile.email_contact).
Pokud jsou vyzadovany captcha obrazky (captcha images - atribut GlobalSettings.captcha_length), tak navstevnik opise captcha obrazek. Navstevnik si muze nechat vygenerovat novy obrazek, napr. pokud se mu zda necitelny.
Poznamka: Po uzivateli nemusi byt vyzadovano opsani captcha obrazku (podle nastaveni atributu User.AdminSettings.skip_captcha), v tom pripade se mu captcha obrazek nezobrazi a to bez ohledu na nastaveni atributu GlobalSettings.captcha_length.
Dale se uzivateli zobrazuje, zda je nastaveno pridavani odkazu na jeho profil (atribut User.Settings.signature_add_id). Uzivatel si zde toto nastaveni muze zmenit.
Navstevnik ma moznost pridavani komentare zrusit. Pokud pridavani komentare zrusi, zobrazi se mu prehled komentaru, ktery byl popsan vyse.
Kontrola
Polozky se zkontroluji, zda jsou vyplneny povinne polozky a zda text komentare neprekracuje maximalni povolenou delku (atribut GlobalSettings.Photo.max_comment_length). Take se zkontroluje, zda je spravne opsan obrazek (captcha image), pokud je pouzit.
Pokud nejsou nejake polozky spravne vyplneny, je na to navstevnik upozornen a musi dane polozky opravit.
Pokud je spatne opsany obrazek (captcha image), tak se navstevnikovi zobrazi novy obrazek s upozornenim, ze predchozi opsal spatne.
Pokud je vse spravne, vyplni se atributy komentare podle polozek a doplni se automaticky vyplnene atributy komentare:
- v atributu PhotoComment.photo bude odkaz na aktualni fotku,
- pokud navstevnik odpovida na uz existujici komentar, doplni se do atributu PhotoComment.parent odkaz na ten komentar,
- cas pridani kometare (atribut PhotoComment.date) se nastavi na aktualni cas,
- doplni se IP adresa a hostname navstevnika (atributy PhotoComment.ip a PhotoComment.host).
- Take se podle nastaveni atributu User.Settings.signature_add_id ulozi odkaz na uzivatele, ktery komentar pridal (do atributu PhotoComment.user).
Dale se zjisti, zda je vlastnikem fotky vyzadovano potvrzovani komentaru (atribut User.Settings.want_confirm_comments). Pokud ano, je stav komentare nastaven na cekajici na potvrzeni (atribut PhotoComment.state). Jinak je nastaven stav komentare na potvrzen.
Pokud komentar fotky pridava vlastnik, muze si ho rovnou potvrdit.
Pokud je stav komentare nastaven na potvrzen (atribut PhotoComment.state), zvetsi se pocet komentaru u teto fotky o jedna.
Pote je komentar pridan ke komentarum fotky.
Dalsi moznosti
Navstevnikovi se pro tuto navstevu systemu zapamatuje jmeno a email (do atributu Visitor.Settings.signature_name a Visitor.Settings. signature_email), ktere zadal pri vyplnovani komentare, a pri pridavani dalsiho komentare apod. se mu automaticky predvyplni.
Pokud jsou v systemu povoleny notifikace (atribut GlobalSettings.Notification.hide_all_notifications), muze si uzivatel vytvorit nebo zrusit notifikaci o novych komentarich k teto fotce (podle atributu PhotoNotification.type), coz bylo popsano v kapitole Detail fotky.
Poznamka: Pri vytvoreni nebo zruseni teto notifikace se uzivateli nezobrazi seznam vsech moznych notifikaci k teto fotce. Pouze se rovnou vytvori/zrusi tato notifikace.
Uzivateli/vlastnikovi se pri pridavani komentare aktualizuje cas posledniho pristupu ke komentarum fotky stejne jako pri zobrazovani prehledu komentaru, coz bylo popsano vyse.
Zpracovani notifikaci
Pokud je stav noveho komentare nastaven na potvrzen (atribut PhotoComment.state) a pokud jsou v systemu povoleny notifikace (atribut GlobalSettings.Notification.hide_all_notifications), zjisti se, jestli maji nejaci uzivatele vytvorenou notifikaci ke komentarum teto fotky (atribut PhotoNotification.type). Temto uzivatelum se prida email do seznamu neposlanych emailu.
Vyplni se atributy emailu, podrobny popis je uveden ve tride Mail:
- jako typ emailu (atribut Mail.type) bude uvedeno notifikace o novem komentari,
- do subjectu (atribut Mail.subject) se doplni idetifikace noveho komentare,
- v textu emailu (atribut Mail.text) bude uveden text komentare (atribut PhotoComment.text).
Poznamka: Notifikace o novem komentari se neposila autorovy komentare, i kdyz ji ma nastavenou.
Zmena komentare
Vlastnik fotky muze zmenit text vybraneho komentare, napr. kvuli spamu, nevhodnym vyrazum apod.
Pokud jsou v systemu povoleny komentare (atribut GlobalSettings.Photo.hide_comments), tak se vlastnikovi zobrazi editovatelny text komentare (atribut PhotoComment.text). Ostatni atributy komentare (z tridy PhotoComment) vlastnik zmenit nemuze.
Dale vlastnik opise captcha obrazek, pokud je to vyzadovano, jak bylo popsano vyse.
Po ukonceni editace komentare se zkontroluje, zda vlastnik spravne opsal captcha obrazek. Pokud ne, tak se vlastnikovi zobrazi novy obrazek s upozornenim, ze predchozi opsal spatne. Take se zkontroluje text komentare, jak bylo popsano vyse. Pokud je vse v poradku, novy text se ulozi. Pokud ne, musi vlastnik text upravit.
Pri uprave textu komentare se take zrusi odkaz na uzivatele, ktery komentar pridaval (atribut PhotoComment.user).
Vlastnik ma moznost zmenu komentare zrusit. Pokud akci zrusi, zobrazi se mu prehled komentaru, ktery byl popsan vyse.
Dale se vlastnikovi nastavi cas posledniho pristupu ke komentarum u teto fotky (atribut Photo.Info.last_comments_access) na aktualni hodnotu.
Smazani komentare
Vlastnik fotky muze smazat vybrany komentar k dane fotce.
Neexistuje-li na komentar neci odpoved, muze byt smazan. Existuje-li na komentar neci odpoved, zmeni se stav komentare na smazan (atribut PhotoComment.state) a misto puvodniho textu (atribut PhotoComment.text) bude zobrazovan pouze text ve smyslu, ze dany komentar byl smazan.
Pokud jsou v systemu povoleny komentare (atribut GlobalSettings.Photo.hide_comments), muze vlastnik smazat vybrany komentar. Vlastnik je dotazan, zda chce vybranou operaci opravdu provest. Pokud ano, zkontroluje se stav vybraneho komentare (atribut PhotoComment.state). Pokud je nastaven na potvrzen, zmensi se pocet komentaru u fotky o jedna. Pote je vybrany komentar smazan. Pokud nechce komentar smazat, je akce zrusena a vlastnikovi se znovu zobrazi prehled komentaru, ktery byl popsan vyse.
Dale muze mit vlastnik moznost smazat cely podstrom komentaru. Vlastnik je dotazan, zda chce vybranou operaci opravdu provest. Pokud ano, probehne kontrola stavu komentaru a prepocitani poctu kometaru u fotky, jako pri smazani jednoho komentare. Pote jsou vsechny komentare ve vybranem podstrome smazany (u zadneho se nebude menit stav na smazan). Pokud nechce komentare smazat, je akce zrusena a vlastnikovi se znovu zobrazi prehled komentaru, ktery byl popsan vyse.
Implementacni poznamka: Pokud byl komentar smazan a pokud ma jeho otec (atribut PhotoComment.parent) nastaven stav na smazan (atribut PhotoComment.state) a pokud nema zadne syny, smaze se take. Toto probehne rekurzivne nahoru. Muze tedy dojit ke smazani vice komentaru.
Vlastnikovi se nastavi cas posledniho pristupu ke komentarum u teto fotky (atribut Photo.Info.last_comments_access) na aktualni hodnotu.
Prehled nepotvrzenych komentaru
Vlastnik fotky si muze zobrazit prehled nepotvrzenych komentaru u fotky.
Pokud jsou v systemu povoleny komentare (atribut GlobalSettings.Photo.hide_comments), zobrazi se vlastnikovi fotky prehled komentaru, jejichz stav je nastaven na cekajici na potvrzeni (atribut PhotoComment.state), jak bylo popsano vyse.
Vlastnik ma moznost vybrany komentar potvrdit, coz bude popsano dale.
Dale ma vlastnik vsechny moznosti popsane vyse - tj. pridani, smazani a zmenu komentare.
Vlastnikovi se take nastavi cas posledniho pristupu ke komentarum u teto fotky (atribut Photo.Info.last_comments_access) na aktualni hodnotu.
Potvrzeni komentare
Vlastnik fotky muze potvrdit vybrany komentar. Potvrzene komentare se pak budou zobrazovat v prehledu komentaru i ostatnim uzivatelum.
Pokud jsou v systemu povoleny komentare (atribut GlobalSettings.Photo.hide_comments), muze vlastnik potvrdit vybrany komentar. Pri potvrzovani se vlastnikovi zobrazi text vybraneho komentare a pripadne i text komentare, na ktery vybrany komentar reaguje, coz bylo popsano vyse.
Pokud vlastnik potvrdi vybrany komentar, zmeni se stav tohoto komentare na potvrzen (atribut PhotoComment.state). Take se zvetsi pocet komentaru u teto fotky o jedna. Pokud vlastnik vybrany komentar nepovoli, je tento komentar smazan, coz bylo popsano vyse.
Vlastnik ma moznost potvrzovani komentare zrusit. Pokud akci zrusi, zobrazi se mu prehled nepotvrzenych komentaru, ktery byl popsan vyse.
Pokud byl komentar vlastnikem potvrzen a pokud jsou v systemu povoleny notifikace (atribut GlobalSettings.Notification.hide_all_notifications), posle se notifikace o novem komentari, jak bylo popsano vyse.
Poznamka: Notifikace se neposila vlastnikovi fotky, i kdyz ji ma nastavou, a posila se autorovi komentare, pokud ji ma nastavenou.
Dale se vlastnikovi nastavi cas posledniho pristupu ke komentarum u teto fotky (atribut Photo.Info.last_comments_access) na aktualni hodnotu.