Odkąd pamiętam, zawsze jest wojna o przenoszenie wątków z poszczególnych działów do newbie, ponieważ zaniżają poziom. W tej chwili dział newbie niewiele się różni od kosza, przemieszane posty z php, c++, delphi itp. Ostatnio jest dyskusja z propozycją albo utworzenia działu edukacja albo dodanie jakiejś możliwości załączania takich materiałów do poszczególnych działów.
Właściwie to wszystkie wątki np. dotyczące c++ powinny trafiać do jednego działu i tam powinna być możliwość ich segregacji.
Na razie mamy dwa potencjalne rozwiązania do wyboru (żadne z nich dobre):
a. Stworzenie w każdej kategorii forum [delphi, c++, c#, ...] podforum: [newbie, książki, kursy, ...] - rozwiązanie złe, bo praktycznie do podfor prawie nie się zagląda, poza tym, to niepotrzebne, niewygodny sposób rozbudowy forum 4p
b. Tagowanie wszystkich postów w danej kategorii jako [newbie, książki, kursy, ...] - i prawdę mówiąc tagi do tego akurat nie powinny służyć, zrobi się jeszcze większy bałagan. I dalej nic to nie daje.
A więc zostawiamy w spokoju tagi i podfora - niech dalej są używane tak jak teraz. Możemy jednak spróbować połączyć właściwości obu do stworzenia trzeciego rozwiązania.
To jest może nietypowe rozwiązanie, naruszające trochę samą ideę tego forum, ale może nie jest takie złe. A więc po kolei, weźcie pod uwagę, że to jest tylko szkic, bez wdawania się w niektóre szczegóły:
1. Zmiany w bazie danych:
- do tabeli *topic * dodajemy jedno pole typu int, np. dając mu nazwę topic_level z domyślną wartością 1, taką wartość nadajemy też już instniejącym tematom.
W tym momencie chodzi o to, żeby każdy temat mógł zostać "oznaczony" jako, np.:
1 - tematy zaawansowane
2 - tematy newbie
3 - tematy związane z edukacją w tym forum
- zmiana oznaczenia wątku w danej kategorii np. z zaawansowane na newbie polegałoby zatem na zmianie wartości tego pola
- ponieważ dla różnych for możemy mieć całkiem inne potrzeby tworzymy jedną tabelę forum_levels i przykładowo dla forum o id=3 wypełniamy:
forum_id | forum_level | forum_level_description |
---|---|---|
3 | 1 | zaawansowane |
3 | 2 | newbie |
-
nie potrzeba nawet w tabeli ustawiać kolejności, wystarczy zwykłe
order by forum_level
-
jeśli forum nie ma swojego zapisu w tej tabeli, to nie po prostu nie będzie żadnego podziału, wszyskie tematy będą zaawansowane
-
dodatkowa tabela dlatego, że np. na forum hardware/software można właśnie wpisać {hardware, software} zamiast {zaawansowane, newbie}
-
oczywiście pamiętamy o dostosowaniu triggerów, np. o ustawieniu topic_level=1 jeśli temat jest przenoszony do innego forum itp.
2. Dostosowanie wyglądu forum:
Obecnie góra każdego forum wygląda jak na obrazku poniżej, zaznaczyłem elementy, które mogą zmienić miejsce:
Żeby dostosować bez specjalnego cudowania i drastycznych zmian nową funkcjonalność można:
- przenieść paginację na prawą stronę
- rozwijane menu wsadzić obok szukajki (liczba postów może się ukazywać po rozwinięciu menu)
- w ten sposób mam całą lewą stronę paska do wykorzystania na nowe kategorie/levele
-
gwiazdka to oczywiście wyświetlenie wszystkich postów na tym forum bez względu na kategorię/poziom
-
wybranie klawiszem poziomu powoduje wyświetlanie postów tylko o takim poziomie jak wybrany
-
do zbudowania klawiszy kategorii/levelów można wykorzystać style takie jak przy paginacji (zostanie jednolity wygląd paska)
-
oczywiście, jeśli forum nie ma swoich zapisów w tabeli forum_levels klawisze nie zostaną wyświetlone
-
oczywiście trzeba skorelować działanie nowych przycisków z zakładkami, tzn. musi działać: zaawansowane-moje, zaawansowane-wartościowe itp.
-
wybrana kategoria/poziom byłby zapamiętywany w ustawianiach (cookies) dla każdego forum, tak, żeby umożliwić np. zaraz po wejściu przeglądanie tylko zaawansowanych...
-
zostaje kilka drobiazgów w rodzaju rozróżnienia poziomu/kategorii postów na liście wszystkich wątków, ale myślę, że z tym nie byłoby aż takich problemów
-
przerobienie automatycznego czyszczenia postów tak, żeby nie czyścił danego forum, tylko przelatywał wszystkie fora i zajmował się wątkami o topic_level = 2
3. Tworzenie nowego wątku:
Tu mamy tylko jedną zmianę, dodanie rozwijanej listy z kategoriami/poziomami (i np. można domyślnie ustawić 'podstawy')
4. Wady i zalety takiego rozwiązania:
wady:
- malkontenci, którzy i tak 2/3 postów wywaliłoby do kosza, ponieważ zaniżają poziom, chociaż grubo ponad 2/3 ruchu na tej stronie to właśnie rozwiązania prostych problemów
- nietypowa (prymitywna) modyfikacja struktury bazy danych
zalety:
- względnie prosta implementacja
- nie zmieniamy drastycznie wyglądu forum, nowa funkcjonalnośc niewiele zmienia jego wygląd i obsługę
- mozliwość rezygnacji z działu newbie, który i tak w tej chwili stanowi rodzaj śmietnika (100 pixeli w prezencie)
- wątki dotyczące jednego języka lądują w jednej kategorii niezależnie od tego czy są super zaawansowane, newbie czy dotyczą książek na temat tego języka
- względnie łatwy powrót do stanu obecnego, gdyby się nie sprawdziło (po prostu z automatu przenosimy posty o
topic_level > 1
do działu newbie) - w końcu nie tylko wtajemniczenie będą wiedzieć, że tu jest jakieś rozwijane menu
Zapraszam zatem do dyskusji nad tą propozycją...