CodersCommunity / forum.pasja-informatyki.local

Środowisko deweloperskie forum
https://forum.pasja-informatyki.pl
25 stars 7 forks source link

Advent of Code - widget i podstrona #291

Closed awaluk closed 2 years ago

awaluk commented 2 years ago

Z okazji zbliżającej się nowej edycji Advent of Code, wraz z @Argeento przygotowaliśmy plugin, który dodaje w sidebarze widget z top 15 osób z rankingu oraz podstronę z krótkim opisem i pełnym rankingiem. Wtyczka automatycznie co godzinę będzie pobierała aktualny ranking z serwera AoC, zapisywała u nas, a następnie prezentowała użytkownikom. Najważniejsze opcje konfigurowalne są w panelu administracyjnym.

Wszelkie sugestie czy uwagi mile widziane. Proponuję uruchomić to na produkcji dzień-dwa przed pierwszym zadaniem, wraz z tym wstawić przypięty temat informacyjny. Dodatkowo można też założyć kanał na Discordzie na ogólnie różnego rodzaju rywalizacje/konkursy.

Zrzut ekranu z 2021-11-21 20-31-44 Zrzut ekranu z 2021-11-21 20-31-11 Zrzut ekranu z 2021-11-21 20-35-42

ScriptyChris commented 2 years ago

Dodałem link do profilu każdego użytkownika, który go sobie ustawił, w rankingu. Nie wiem, czy klasy adventofcode_page i adventofcode_widget są ze sobą jakoś powiązane dziedziczeniem, ale można by metodę wrap_username_in_anchor przenieść gdzieś wyżej i reużyć na liście w widgecie.

awaluk commented 2 years ago

Nie, te klasy nie są ze sobą powiązane wprost, ale można byłoby dodać jakąś klasę czy metodę widoczną w obydwu. Nie jestem tylko pewien czy to ma sens? Top ranking w sidebarze to miała być taka najprostsza podglądowa mini wersja, potrzebne są tam linki do profili uczestników skoro będą na pełnym rankingu?

ScriptyChris commented 2 years ago

Skoro w rankingu na stronie AoC są linki do profili, to dla spójności u nas też powinny być wyświetlane.

awaluk commented 2 years ago

No i je już mamy, ale na głównym rankingu, tam gdzie dodałeś, nie ma w sidebarze. Podobnie jak w rankingu AoC są gwiazdki za dane dni, a na rankingu w sidebarze u nas ich nie ma, bo to wersja minimalistyczna, taki szybki podgląd. Jak i w rankingu AoC są zawsze wszyscy, a u nas w sidebarze jest tylko top 15. Więc ja osobiście bym zostawił jak jest i do sidebara już więcej nic nie pchał, aby to była wersja minimalistyczna

ScriptyChris commented 2 years ago

O który ranking w sidebarze na stronie AoC Ci chodzi? Bo ja tam widzę główny ranking, nasz oraz z poszczególnych dni - wszystkie zawierają linki do profili. W sidebarze widzę natomiast sponsorowane wpisy.

awaluk commented 2 years ago

Chodzi mi o ranking u nas w sidebarze (ten dodawany jako widget), nie na stronie AoC. Pełny ranking mamy więc teraz przeniesiony razem z gwiazdkami i linkami do profili do nas, jest na osobnej podstronie. Z kolei u nas na stronie w sidebarze jest ranking minimalistyczny, to tylko top 15 użytkowników, nie zawiera też gwiazdek, więc jak dla mnie nie ma sensu, aby tu pakować jeszcze linki z profili.

ScriptyChris commented 2 years ago

Chodzi mi o ranking u nas w sidebarze (ten dodawany jako widget), nie na stronie AoC. Pełny ranking mamy więc teraz przeniesiony razem z gwiazdkami i linkami do profili do nas, jest na osobnej podstronie. Z kolei u nas na stronie w sidebarze jest ranking minimalistyczny, to tylko top 15 użytkowników, nie zawiera też gwiazdek, więc jak dla mnie nie ma sensu, aby tu pakować jeszcze linki z profili.

Ok, ale o ile rozumiem brak gwiazdek w tym sidebarze, bo ma być minimalistyczny, to nie rozumiem w czym linki miały by przeszkadzać? One miejsca nie zajmują. ;) Rozumiem, że chodzi o jakąś spójność w ilości informacji?

awaluk commented 2 years ago

Wg mnie chodzi o to, aby było tam jak najmniej informacji. To jest sidebar, który pokazuje się na wszystkich podstronach i nie ma odciągać za bardzo uwagi od reszty, nie ma tam być nie wiadomo ile klikania, rozwijania, najeżdżania czy innych elementów/akcji. Jak dla mnie to ma być najprostsza informacja, a jak ktoś szuka szczegółów to musi wejść na całą podstronę, która dotyczy typowo danego tematu i tam można mu pokazać już wszystko co chcemy.

awaluk commented 2 years ago

Zmieniła się godzina i zauważyłem jeszcze jakiś problem - po wejściu na stronę w widgecie w sidebarze pokazała się lista warningów

( ! ) Warning: DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' in Entity, line: 7 in /var/www/html/forum/qa-plugin/adventofcode-widget/src/adventofcode-widget.php on line 159

awaluk commented 2 years ago

Chodziło o &, spróbowałem zamienić na & i niby przeszło, ale od razu wyrzuciło kolejne błędy, np. o braku znajomości taga header. Proponuję więc na ten moment wrzucić wyciszenie rzucania warningów z parsowania HTMLa (libxml_use_internal_errors), poprawność kodu strony AoC nie jest tu dla nas istotna, a i czasu za wiele na to nie mamy.