Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Avatary przy ostatnich postach 1.5

Założony przez Flak19.

Avatary przy ostatnich postach 1.5
  • Data aktualizacji

    13.05.2012

  • Autor

    Flak19

  • Licencja

    GPL v2

  • Liczba pobrań

    4 576 (7,12 KB)

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

[Obrazek: g9349734.jpg]

Instalacja

Pliki z folderu "upload" należy umieścić na serwerze z zachowaniem struktury katalogów oraz aktywować plugin w ACP.
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 :shy:
W wersji 1.1 dodana również opcja domyślnego avatara.

Oczywiście ogromne podziękowania dla lukasamd za pomoc :)
Wersja 1.2:
  • liczba zapytań do bazy zredukowana do minimum
Wersja 1.3:
  • poprawka związana z wyświetlaniem avatarów w działach zawierających poddziały
Wersja 1.4:
  • kompatybilność z MyBB 1.6.5
1. Zapomniałeś zmienić wersję w pliku:
"version"        => "1.3",
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.
Wersja 1.4.1:
  • poprawka związana z widokiem kategorii
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ę?
:: Akcja DZIĘKUJĘ ZA POMOC ::
Pomocy udzielam jedynie na forum. Wszystkie rzeczy wykraczające poza tą dziedzinę wykonuję odpłatnie.
Wersja 1.5:
  • poprawka związana z usuniętymi użytkownikami
  • zabezpieczenie przed możliwością wstawiania avatarów do kodu strony przez zwykłego użytkownika



Użytkownicy przeglądający ten wątek:

1 gości