System pochwał

Forum przeznaczone dla osób poszukujących rozszerzeń do phpBB 3.2.x. oraz ich polskich lokalizacji.
MaRRcin929
Posty: 47
Rejestracja: 22 marca 2013, 01:40
Lokalizacja: Śląsk

System pochwał

Post autor: MaRRcin929 » 19 marca 2017, 21:17

Witam koledzy ;)

Do pełni szczęścia żebym mógł przejść z starszego już 3.0 na 3.2 brakuje mi tylko jeszcze systemu pochwał.

Obecnie posiadam Helpmod który widzę już jest lata nie wspierany. Nie umiem nic znaleźć do wersji 3.2.
Jest ktoś na tropie takiej modyfikacji? Czy w ogóle istnieje?

Zależy mi na obecnej liczbie zebranych punktów. Mam nadzieję ze w phpmMyAdmin da radę do nowej modyfikacji dostosować jakoś export z helpmod.

MagicalFire
Posty: 62
Rejestracja: 08 maja 2011, 12:19

Re: System pochwał

Post autor: MagicalFire » 19 marca 2017, 21:57

niestety na chwile obecną nie ma

MaRRcin929
Posty: 47
Rejestracja: 22 marca 2013, 01:40
Lokalizacja: Śląsk

Re: System pochwał

Post autor: MaRRcin929 » 19 marca 2017, 22:43

No i tu jest problem ;/ Prowadzę tego typu forum, że az punkty pomógł są konieczne. Nawet z moderatorami rozmawiałem to mówili że bez tego nie wyobrażają sie funkcjonowania forum.

MagicalFire masz jeszcze jakieś linki do miejsc z różnymi dodatkami oprócz phpbb.com? Bo tego licznika postów też nie umiałem wyszukać nigdzie na google, a jednak poratowałeś :)

MaRRcin929
Posty: 47
Rejestracja: 22 marca 2013, 01:40
Lokalizacja: Śląsk

Re: System pochwał

Post autor: MaRRcin929 » 24 marca 2017, 11:46

Koledzy udało mi się coś wygrzebać w zakamarkach internetu :D

Tzn. Thanks for post przerobione pod 3.2:

https://github.com/rxu/thanks_for_posts ... elop-3.2.x

W sumie chyba by spełniał w pełni oczekiwania, zbędne funkcje można wyłączyć, pozmieniać teksty itp.

Chciałbym przenieść wszystkie punkty z starego forum na nową wersję bo bez tego cały system pochwał na moim forum nie miał by sensu.

Zajrzałem do bazy i na 3.0 w HelpMod mam:
  • help_id
    post_id
    topic_id
    help_time
    help_from
    help_to
a w 3.2 w tej modyfikacji jest:
  • post_id
    poster_id
    user_id
    topic_id
    forum_id <<-- tego brakuje w bazie z 3.0
    thanks_time
Pomijając tyko zmiane nazw, zbędne help_id które odpowiada za kolejną liczbę punktu to brakuję w starej bazie pozycji forum_id :(
Panowie ma ktoś jakiś pomysł jak przerobić starą bazę i jak ustalić brakującą pozycję forum_id w około 500-1000 pozycjach tabeli?

Mam wielką nadzieję że ktoś będzie umiał mi pomóc bo nie chciałbym stracić starych wpisów.

vader
Moderator
Posty: 1502
Rejestracja: 19 kwietnia 2015, 14:44
Lokalizacja: Kraków
Kontakt:

Re: System pochwał

Post autor: vader » 24 marca 2017, 11:56

Sprawdź jak wygląda struktura danych. Może zamiast tabeli forum_id, teraz jest zapisana w tabeli topic_id jako kolumna? Posprawdzaj, po testuj.

Poczytaj ostatnie strony z tego wątku, może coś jest napisane :) https://www.phpbb.com/community/viewtop ... &start=840

MaRRcin929
Posty: 47
Rejestracja: 22 marca 2013, 01:40
Lokalizacja: Śląsk

Re: System pochwał

Post autor: MaRRcin929 » 24 marca 2017, 18:26

Sory źle sie wyraziłem. Jest jedna tabela i w starej tabeli brakuje kolumny forum_id :(

Stara tabela:

https://s11.postimg.org/491i4sbn7/image.jpg

Wiadomo, reason i id można usunąć.

Nowa tabela:

https://s11.postimg.org/5o84qmj1v/image.jpg

Różnica jedynie w nazwach, ale tak to kolumny wszystkie odpowiadają sobie, jedynie brak w starej wspomnianego forum_id.

Pewnie też dlatego że w wersji 3.0 nie miałem Thanks for post tylko HelpMod

Dzięki za link. Posataram się coś przejrzeć choć moja umiejętność angielskiego końćzy się na: "yes, no, if, then, else, and" itp hahaha. Więc jakiekolwiek działania na zagranicznych stronach są dla mnie utrudnieniem. Jeśli to jest parę stron postów to pół biedy, ale jak to jest 50 stron to ciężko coś wyłapać cennego :D Ale i tak spróbuję się cokolwiek dowiedzieć bo dociekliwy jestem. Pewnie było by łatwiej gdybym też miał w 3.0 Thanks for post.

Pustej kolumny forum_id nie przyjmuje. Oprócz ręcznego sprawdzania każdego tematu i wpisywania brakującej kategorii da się to jakoś z automatu uzupełnić? Mam wielką nadzieję ze tak, bo ręcznie tyle pozycji wyszukać to katastrofa.

vader
Moderator
Posty: 1502
Rejestracja: 19 kwietnia 2015, 14:44
Lokalizacja: Kraków
Kontakt:

Re: System pochwał

Post autor: vader » 24 marca 2017, 20:54

forum_id możesz sam uzupełnić, ale będzie to żmudna robota niestety...

Przykładowo masz adres
pod f masz forum_id = 1, pod t masz topic_id = 1186

MaRRcin929
Posty: 47
Rejestracja: 22 marca 2013, 01:40
Lokalizacja: Śląsk

Re: System pochwał

Post autor: MaRRcin929 » 24 marca 2017, 21:30

Dokładnie tego sie spodziewałem :/ Przy 500-1000 pozycjach chyba wiele godzin przepisywania :(
Chociaż i tak dzięki za pomoc.

vader
Moderator
Posty: 1502
Rejestracja: 19 kwietnia 2015, 14:44
Lokalizacja: Kraków
Kontakt:

Re: System pochwał

Post autor: vader » 24 marca 2017, 21:41

Możesz sobie na bazie tworzyć zapytania, żeby Ci wypisało np.,topic_id, liczba pochwał i je wyświetlić. Niestety chyba najlepiej ręcznie (aby się upewnić) sprawdź, po kolei, który topic_id znajduje się w konkretnym forum_id (możesz też stworzyć zapytanie).

Wtedy dla każdego topic_id robisz zapytanie, żeby wpisało odpowiednią wartość np., jeśli topic_id = 1 to wstaw w forum_id =1. Wtedy uzupełnisz znacznie szybciej.

MaRRcin929
Posty: 47
Rejestracja: 22 marca 2013, 01:40
Lokalizacja: Śląsk

Re: System pochwał

Post autor: MaRRcin929 » 24 marca 2017, 23:31

Właśnie miałem taką nadzieję ze da się to jakoś zrobić przez "skrypt"

Zapytania bazy. Tym mnie zagiąłeś i chyba tu się moja wiedza kończy na temat baz danych :(

Możesz jakoś nakierować lub powiedzieć jak sformułować (gdzie wpisać to wiem) zapytanie do SQL żeby wyświetlić wyniki?
Znowu były by jakieś nowe doświadczenie. Nigdy nie była mi potrzebna zabawa z zapytaniami

vader
Moderator
Posty: 1502
Rejestracja: 19 kwietnia 2015, 14:44
Lokalizacja: Kraków
Kontakt:

Re: System pochwał

Post autor: vader » 25 marca 2017, 13:11

Aby sprawdzić ile pochwał masz w danym topicu wykonaj poniższe zapytanie (powinno działać, nie mam takiej tabeli w bazie danych)

Kod: Zaznacz cały

1. SELECT `topic_id`, COUNT(*) as Liczba_pochwal_w_topicu FROM `phpbb_thanks` GROUP BY `topic_id` ORDER BY `topic_id` ASC

Możesz spisać sobie listę topiców z powyższego zapytani, w których masz pochwały. Aby się upewnić czy liczba topiców jest poprawna, możesz wykonać zapytanie

Kod: Zaznacz cały

2. SELECT COUNT(DISTINCT(`topic_id`)) AS liczba_topicow FROM `phpbb_thanks`
Następnie wyświetl jakie tematy (topici) znajdują się w forach (ich id)

Kod: Zaznacz cały

3. SELECT `forum_id`,`topic_id` FROM `phpbb_topics` GROUP BY `forum_id`, `topic_id`
Następnie z powyższego pytania, trzeba by uzupełnić tabelę `phpbb_thanks` w ten sposób, że jeśli topic_id = 1 to wstaw forum_id = 1 Aby to zautomatyzować, trzeba by napisać odpowiednią pętlę, a w sumie to kilka pętli. Trzeba by też mieć odpowiedni zakres danych (topic_id nie będzie chyba w kolejności, w sensie topic_id =1 będzie w forum_id = 1, topic_id=2 będzie w forum_id = 2, a topic_id = 3 będzie ponownie w forum_id = 1. Nie mam teraz na to czasu, więc po prostu możesz zrobić wspomnianą aktualizację w postaci

Kod: Zaznacz cały

4. UPDATE `phpbb_thanks` SET `forum_id` = nr_forum_ktory_chcesz_wstawic WHERE `topic_id` = nr_topicu_który_znajduje_się_w_danym_forum OR `topic_id` = nr_topciu OR ...
Odpowiednie dane czyli jaki topic_id znajduje się w forum_id masz w zapytaniu nr 3. A jakie topici_id musisz zaktualizować masz w zapytaniu nr 1

Mam nadzieję, że nic nie pomieszałem i napisałem w miarę zrozumiale. Oczyiwiście polecam to testować na lokalnym forum i zrobić sobie kopię bazy danych, aby w razie problemów szybko przywrócić poprawną bazę danych poprzez edycję pliku config_php.

EDIT: Tak sobie przypomniałem, że może będzie działać zapytanie

Kod: Zaznacz cały

4. UPDATE `phpbb_thanks` SET `forum_id` = nr_forum_ktory_chcesz_wstawic WHERE `topic_id` IN (nr_topicu, nr_topicu, nr_topicu, etc.)
nr_topicu, to oczywiście lista topiców, które znajdują się w danym forum. Patrz zapytanie 3.

MaRRcin929
Posty: 47
Rejestracja: 22 marca 2013, 01:40
Lokalizacja: Śląsk

Re: System pochwał

Post autor: MaRRcin929 » 29 marca 2017, 01:04

Vader dziękuje za duże chęci!!
Teraz dopiero znalazłem chwilę czasu zeby to potestować.

O ile pkt 1,2,3 wyświetla wyniki bez najmniejszego problemu i liczba się zgadza to jednak nie do końca wiem jak zastosować i zapętlić punkt czwarty, żeby z dwóch tabel pobrać i wstawić odpowiednie dane :cry: W starym forum mam tabelę phpbb_helpmod - bez forum_id i z tego potrzebuje stworzyć nową tabele (phpbb_thanks) z dodaną kolumną forum_id

vader
Moderator
Posty: 1502
Rejestracja: 19 kwietnia 2015, 14:44
Lokalizacja: Kraków
Kontakt:

Re: System pochwał

Post autor: vader » 29 marca 2017, 07:44

Masz tabelę phpbb_helpmod, trzeba jej danymi uzupełnić tabelę phpbb_thanks. To tak jakbyś mając 2 pliki excel i z jednego przenosił dane do drugiego, ale kolumny są wymieszane i w innej kolejności. Kolumny i ich zawartość jest zależna od siebie więc trzeba mieć to na uwadze.

MaRRcin929
Posty: 47
Rejestracja: 22 marca 2013, 01:40
Lokalizacja: Śląsk

Re: System pochwał

Post autor: MaRRcin929 » 30 marca 2017, 00:15

Vader no też tak nie do końca ;) Nie z dwóch, a trzech tabel.
Bo trzeba wypełnić phpbb_thanks danymi pobranymi z phpbb_helpmod i np phpbb_topics bo w samym phpbb_helpmod brakuje pozycji forum_id

Dla ułatwienia zrobiłem sobie nową tabelę skopiowaną z helpmod. Dodałem nową kolumnę forum_id, usunąłem niepotrzebne, zmieniłem kolejność i nazwy.
Dokładnie taką jak na screen tabelę potrzebuje tylko kolumnę forum_id trzeba jakoś uzupełnić
Da się to jakoś zrobić automatycznie poprzez zapytania SQL? I jak by to zapętlić?

Obrazek

vader
Moderator
Posty: 1502
Rejestracja: 19 kwietnia 2015, 14:44
Lokalizacja: Kraków
Kontakt:

Re: System pochwał

Post autor: vader » 30 marca 2017, 07:17

Marcin, patrz zapytanie 4 i 4* poniżej ;) Nie ukrywam, że mógłbym Ci to zrobić, ale zdecydowanie lepiej, jak sam nad tym popracujesz. Będzie większa satysfakcja.

ODPOWIEDZ

Wróć do „Poszukiwania”