Krótki opis: Plugin dodaje avatary ostatnio postujących na liście działów i wątków.
Wersja skryptu MyBB: 1.6.x
Ściągnij spolszczenie: Plugin w języku polskim.
Instalacja: Pliki z folderu "upload" należy umieścić na serwerze z zachowaniem struktury katalogów oraz aktywować plugin w ACP.
Inne uwagi: brak
Pozwolę sobie skorzystać z możliwości dev'a i odpowiedzieć w temacie wtyczki, zresztą nie mam problemu żadnego więc zakładanie nowego tematu nieco mijałoby się z celem.
Jeżeli wrzucimy ten plugin na jakieś forum z np. 1000 użytkowników to może nas to autentycznie zaboleć. Wszystko z powodu zapytania które buduje cache dla listy użytkowników. Przede wszystkim, skoro już musisz je wykonać, to pobieraj tylko to co potrzebne (teraz idzie wszystko, loginy, hasła, emaile, ustawienia).
Najlepiej byłoby jednak go wcale nie wykonywać i tutaj moja sugestia co można by zrobić.
1. W widoku strony głównej / widoku kategorii
W tym wypadku można zrobić zapytanie pobierające informacje o avatarach dla każdego z działu, który jednocześnie nie jest kategorią oraz linkiem, dodatkowo bez zabawy z uprawnieniami. Co prawda również nie jest to idealne rozwiązanie, ale szybkie do wdrożenia a solidnie zmniejszające ilość rekordów - dla forum z 20 faktycznymi działami, będzie to właśnie 20 rekordów zamiast wspomnianych 1000.
2. W widoku działu
W tym wypadku można zrobić podobny "myk". Co prawda hook forumdisplay_thread leci w pętli foreach, ale da się tam zrobić tylko jedno zapytanie przy użyciu zmiennej statycznej: korzystając z globalnego $threadcache pobierasz dane z tematów które będą wyświetlane i pakujesz do niej, tylko przy pierwszym wywołaniu funkcji. W efekcie pobierze tyle rekordów, ile tematów będzie wyświetlanych.
Tak więc zrobiłem teraz pobieranie avatarów "na bieżąco" - pobierane są tylko te, które są potrzebne, i pomijane, które zostały już załadowane. Nie jest to optymalne rozwiązanie, bo wzrasta liczba zapytań, ale będę to poprawiał w kolejnych wersjach. Niestety, brak doświadczenia wychodzi
W wersji 1.1 dodana również opcja domyślnego avatara.
Oczywiście ogromne podziękowania dla
lukasamd za pomoc
1. Zapomniałeś zmienić wersję w pliku:
Should be 1.4.
2. Nadal jest zły avatar w kategoriach na forum. Ostatni poster ma avatar kogoś innego, gdy wejdziemy w kategorię.
Strona Główna = OK.
Działy z tematami = OK.
Kolejny podobny błąd:
Jeżeli poddział w dziale jest ukryty i ktoś odpowie to po wylogowaniu z forum (możliwe że userzy którzy nie mają dostępu do tego działu także) widzą avatar z ukrytego działu, a także ostatni post innego usera z działu ogólnego.
Otrzymałem raport, że w wypadku użytkowników nieistniejących (np. usuniętych) wyświetla się kod zamiast avatara:
http://img.liczniki.org/20120503/screen-1336038461.jpg
Jednak, ja zrobiłem to u mnie i po prostu wyświetlał się błąd nieistniejącej grafiki:
http://img854.imageshack.us/img854/6048/blad2.png
W sumie ani jeden, ani drugi błąd nie wyglądają estetycznie. Nie można by tego poprawić, np. robiąc najpierw zapytanie do bazy, czy kolumna avatar w tabeli mybb_users nie jest pusta i dopiero wtedy wyświetlając grafikę?