Kaik i jego historie

Strona główna blogu

Blog prowadzony przez: kaik

Kategorie

RSS Subskrybuj RSS

Wszystkie blogi

Odwiedź pozostałe blogi lub załóż swój własny!

...wszystkie blogi

Kaik i jego historie

Moje przemyślenia i paranoje na różne tematy związane z internetem...

Mister Wong iconTechnorati iconDigg icondel.icio.us iconma.gnolia iconFurl iconNewsvine iconReddit iconYahoo MyWeb iconBlinkbits iconGoogle iconSimpy iconBlogmarks icon

Mediashare tuning

OpisujÄ™ tutaj moje perypetie z mediashare...

Jak już pisałem jakiś czas temu na forum poszukiwałem Galerii, która wspierała by portal o charakterze społecznościowym, czyli zdjęcia użytkowników zamiast awatarów, albumy, bajery, wszystko ładne, łatwe i szybkie...

Po niesamowicie pozytywnych odczuciach z Pagesetterem postanowiłem dać szansę Mediashare ale to co ona oferuje na starcie trochę nie pasuje moim założeniom:

1. Każdy użytkownik ma swój 1 własny album - w nim może mieć swoje pod albumy.
2. Można będzie wybrać "zdjęcie identyfikujące użytkownika" - jak awatar (ale jak to zrobić)
3. Inne bajery typu slideshow jakieś ciekawe dodatki jak możliwość obsługi innych typów mediów

!!! Najważniejsze to żebym miał dobre odczucie co do powiązania modułu z systemem to znaczy, żeby w przyszłości mnie nie ograniczał jakoś oraz co do wykonania modułu.

No więc, miałem tą Mediashare już zainstalowaną i obsługiwała ona zdjęcia u mnie, więc ją pierwszą na warsztat... Najpierw na elfisk.dk co tam słychać o niej i ta droga poprowadziła mnie jak po sznurku do www.sexyandfamous.com

No i po przejrzeniu tej strony już wiedziałem, że to będzie mediashare i co najważniejsze wiedziałem jak to będzie zrobione :D no nie do końca, ale jak się ma na coś pozór to się ma :D

Jedziemy... pierwsza sprawa każdy user ma mieć tylko jeden album główny no więc:
Pownikałem w stronę www.sexyandfamous.com i co się okazało, oni to zrobili tak, że nie ma albumu o aid (album id) =1, czyli głównego po prostu nie ma?...
Nie ma żadnego zbiorczego albumu z którego można by przeglądać inne albumy... Inna sprawa to taka, że w profilu, klikając na zdjęcie, można przejść do albumu użytkownika! a jak się jest zalogowanym będąc na stronie swojego profilu to klikając na ikonkę/zdjęcie przechodzi się do swojego własnego albumu !! i tu uwaga nawet jeśli się go nie ma założonego!!! System sam zakłada album główny z nazwą taką samą jaką ma użytkownik i przenosi nas do jego w tryb edycji...

Ideał hmm... to co powiecie na to, że główne zdjęcie w głównym albumie użytkownika (to z zieloną kropką) jest zdjęciem identyfikującym nas na całej stronie, czyli forum i wszędzie !!!

No wiec ja też chce ;]

Ok więc najpierw szkielet;

Żeby każdy user miał tylko jeden album główny... No to jest całkiem skomplikowane do opisywania jak cała mediashare...
Najpierw wywaliłem z templatek wszystkie możliwości założenia albumu w albumie aid 1, czyli w głównym.

Teraz za edycję albumu odpowiada funkcja edit, więc każdy user jak chce edytować jakiś album musi ją wywołać i tutaj na starcie musi być podany aid, a jak nie jest to jest wstawiany nr 1
Ja bym chciał żeby przy braku podania albumu sprawdzało, czy użytkownik ma już album jeśli tak to przekierowanie do niego, a jeśli nie to założenie i następnie przekierowanie do niego... to akurat było łatwe każdy album ma określony tzw nestedLevel, czyli poziom zagnieżdżenia...


| |---3
1 |-2----|
| |---3

1-- album główny

2-- albumy które widzimy w głównym

3--podalbumy

Czyli ifami w php sprawdzamy, czy jest podany aid jak nie jest to sprawdzamy, czy user ma album z nested lewel == 2( trzeba napisać funkcję api:)), a jak nie ma to wywołujemy funkcję api(już napisaną)( w parametrach możemy podać tytuł albumu np: nazwę użytkownika), która zakłada taki album i zwraca jego aid :)
załatwione :)

Ok teraz inna sprawa to główne zdjęcie i tu jest ból

  NapisaÅ‚em funkcjÄ™, która podaje częściowÄ… Å›cieżkÄ™ pliku miniaturki głównego zdjÄ™cia jakie ma user w swoim albumie...
W mediashare sÄ… 3 tabele
1 tabela albumy w niej sÄ… takie kolumny jak uid,  aid,  nestedLevel,  mainItemId ...
2 tabela media w niej kolumny miedzy innymi takie jak mainItemId, thumbnajlId, PrevId, OrginalId ...
3 tabela store jest to tabela z Å›cieżkami do plików  sÄ… w niej takie kolumny jak mssID(odpowiednio: thumbnajlId, PrevId, OrginalId ), filetype, fileref...

Podałem tylko te interesujące nas kolumny. Każdy zdjęcie w mediashare zapisane jest w 3 postaciach miniaturki podglądu oraz oryginał
 Na starcie mam uid, czyli id usera chcÄ™ mainItemId, ale tylko tych co majÄ… nestedLevel == 2 ....sql
Ok... mam teraz do drugiej tabeli mam mainItemId chcÄ™ odpowiedni thumbnajlId... sql
Ok... mam no to teraz trzecia tabela, ponieważ thumbnajlId to mssID więc wyciągam fileRef...sql
mam !!!  ;( ale dÅ‚uuugie zapytanie sql nieporÄ™czne wywoÅ‚ywanie w templatkach (pnmodapifunc) no porażka....
Sprawdzałem z jednym dużym sql później rozbiłem na mniejsze zapytania.... porażka taka fuszera mi się strasznie nie podobała...:(:(:(

I tak se myślę... kurde fajnie by było wywoływać zdjęcie dokładnie tak jak awatar, czyli za pomocą zmiennej użytkownika _YOURAVATAR
I tutaj jak ktoś pamięta bajkę Pomysłowy Dobromir to już wiecie jak wyglądałem jak wpadłem na ten niecny plan :D

   Podczas ustalania głównego zdjÄ™cia w albumie (ta zielona kropka) wywoÅ‚ywana jest funkcja i ona nie robi nic innego jak odbiera id zdjÄ™cia i id albumu i wstawia odpowiednie dane do bazy(mainItemId).
   Skoro mam id zdjÄ™cia, id albumu i dane usera, to wystarczy tylko sprawdzić, czy czasem nie jest to album o nestedLevel == 2
Jeśli jest to pobrać zakodowaną ścieżkę miniaturki (fileRef) i jedną funkcją setuservar wstawić do _YOURAVATAR banał w trampkach!!!
Zapytanie jest długie, ale jest wykonywane sporadycznie kiedy user zmienia zdjęcie główne.

Teraz mam w zmiennej  _YOURAVATAR częściowÄ… Å›cieżkÄ™ do pliku np: le/14ytosqp2u35m0i022ayj2jeipfpe2-tmb.png
wystarczy pozmieniać wszÄ™dzie z /images/avatar na /mediashare i mamy zdjÄ™cie :D zamiast awataru 
Jeśli jeszcze przeniesiemy nasze avatary z images/avatar do /mediashare to użytkownicy nie odczują przejścia tak bardzo :D

Achh.pl  sielanka teraz wszystko gra, buczy, Å‚aduje siÄ™ szybko i nie ryje bazy specjalnie bardziej... oczywiÅ›cie jest wiele spraw, które można dopracować... np: teraz w albumie głównym mam peÅ‚no albumów użytkowników, w których nic nie ma...
odkąd założenie albumu głównego odbywa się za pomocą jednego kliknięcia...
oczywiście to nie jest jakiś specjalny problem bo i z założenia galeria ma być przeglądana poprzez profil ewentualnie bloki ze zdjęciami i inne takie... główna strona galerii to mogą być wybrane albumy przez admina i dodawane wg admina uznania jako warte obejrzenia :D

Jest idealnie :D jestem happy i powoli myślę nad nowymi ficzerami właśnie związanymi z ocenianiem zdjęć rankingiem i innymi klimatami

Przy okazji chce powiedzieć jeszcze, że jestem oburzony na nowe wersje phpFreeChat nie chcą sie implementować...

Pozdrawiam


Komentarze

Możesz komentować ten wpis także bezpośrednio na forum

  • te wszystkie sprawy możesz podejrzeć w najnowszej wersji gallery2 wszystkie te opcje już tam sÄ… ...
  • ZajrzÄ™, ale i tak teraz caÅ‚a moja uwaga zwrócona jest na members list i możliwość wyszukiwania...
    Jeśli chodzi o dodatki to tak naprawdę potrzebny jest dobry blok do Ratings albo nawet 2...
    np:
    Top Rated, najwyżej oceniane z możliwością wyboru modułu, pozycji na liście itp...
    Most Rated, najczęściej oceniane te same opcje...
    Pytań jest klika 1 sprawa to, czy top rated ma wskazywać tylko na pozycję z najwyższą oceną w danym module, czy na pozycję o najwyższym stosunku ocena/ilość ocen?