phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
[gotowa modyfikacja] Prośby o nowe linki
Autor Wiadomość
Warmix

Pomógł: 60 razy
Posty: 328
Wysłany: 04-07-2012, 19:43   [gotowa modyfikacja] Prośby o nowe linki

Taka prosta modyfikacja na wzór DW, dla tych, którzy chcieliby z niej skorzystać...

Kod:
##############################################################
## MOD Title: Prośby o nowe linki
## MOD Author: Warmix marcin7848@interia.pl http://www.przemo.org/phpBB2/forum/profile.php?mode=viewprofile,u,29980
## MOD Description: Modyfikacja dodaje możliwość poproszenia o nowe posty z linkami do wybranego tematu.
##                       
## MOD Version:     1.1
##             
## Installation Level:  (Easy)
## Installation Time:   5 Minutes
## Files To Edit (10):
##        admin/modules_data.php
##        includes/constants.php
##        includes/usercp_viewprofile.php
##        language/lang_polish/lang_admin.php
##        language/lang_polish/lang_main.php
##        templates/block/overall_header.tpl
##        templates/block/profile_view_body.tpl
##        templates/block/viewtopic_body.tpl
##        posting.php
##        viewtopic.php
##                   
## Included Files (7):
##        admin/admin_prosby.php
##        images/pojedyncze.png
##        images/popros.gif
##        images/prosbylogo.png
##        templates/styl/admin/prosby_body_config.tpl
##        templates/styl/prosby.tpl
##        prosby.php
##       
## License:    GPL 3
##        ang. http://www.gnu.org/licenses/gpl-3.0.txt
##        PL http://itlaw.computerworld.pl/index.php/2008/03/10/tekst-licencji-gpl-v3-po-polsku-plus-prosba-o-pomoc/
#############################################################


Opiszę co nieco działanie skryptu.
Po włączeniu modyfikacji każdy użytkownik może poprosić o nowe post w temacie. Działy, w których modyfikacja będzie działać, określa się w Panelu Administratora.
Każdy użytkownik wchodząc w temat ujrzy, obok 'Wiadomość' button obrazkowy: 'Poproś o nowe linki'. Klikając na niego, w panelu Próśb pojawi się nowa prośba (lub zaktualizuje już obecną, dodając do liczby próśb +1). Każda prośba o linki kosztuje 1 punkt. Standardowo na początku każdy ma 10 punktów (można zmodyfikować domyślą wartość podczas wysyłania zapytania sql bądź bezpośrednio po dodaniu w bazie danych mysql). W przypadku, gdy komuś zabraknie punktów, nie może on prosić o nowe linki. Aby zdobyć punkty i dalej móc prosić o nowe linki, trzeba spełnić prośbę o linki innego użytkownika. Każda prośba jest ważna do spełnienia jej, poprzez dodanie minimum 3 postów do tematu, niekoniecznie przez jednego użytkownika lub do utraty ważności prośby, czyli po upływie 7 dni od pojawienia się prośby. Nawet jeżeli któryś z kolei użytkownik poprosi o linki po upływie 6 dni, to prośba, bez względu na to, zostanie usunięta kolejnego dnia. Po upływie 7 dni, prośba zostaje skasowana, a do wszystkich użytkowników, którzy prosili o linki, zostaje wysłana prywatna wiadomość z informacją o niespełnionej prośbie (skrypt ten wywołuje plik prosby.php). Punkty zdobywamy poprzez spełnianie próśb innych użytkowników, jak już wcześniej pisałem. Warto wiedzieć, jak naliczane są punkty. Każdemu z 3 użytkowników spełniających prośbę innych, zostają przyznane punkty. 1 punkty za jedną prośbę, czyli jeżeli o dany link prosi jedna osoba, to każda z 3 osób spełniających prośbę (wymagane są 3 posty) otrzyma o 1 punkcie. Jeżeli proszących o link jest 10, to każda osoba spełniająca otrzyma 10 punktów. Teraz ograniczenia dla proszących i spełniających. Jedna osoba nie może prosić i spełniać w tym samym momencie w tym samym temacie. Dlatego też, jeżeli użytkownik poprosi o link, a później doda link do tego tematu, gdzie poprosił o linki, to punkty nie będą mu naliczane. To samo jest w drugą stronę. Jeżeli użytkownik spełnia już prośbę o linki w temacie, to nie może on poprosić o linki w tym temacie (żeby nie zdobywał dodatkowych punktów). Kolejnym ograniczeniem jest to, że jeden użytkownik nie może spełnić prośby. Jeżeli system dodał użytkownika jako jedną osobę ze spełniających, to jeżeli ta sama osoba doda kolejny post w tym temacie, nie będzie on ponownie zaliczony jako spełniający prośbę. Cały system spełniania jest zawarty w pliku posting.php, czyli skrypt aktywowany jest podczas wysyłania trzeciego spełniającego prośbę, czyli w momencie wysłania postu, który trafia na listę spełniających. Gdy prośba zostaje spełniona, każdemu z spełniających dodane są punkty, każdej osobie proszącej zostaje wysłana prywatna wiadomość o spełnionej prośbie oraz prośba zostaje usunięta. Na stronie głównej prosby.php są zawarte wszelkie informacje skryptu (ile spełniono, ile próśb itd.) oraz na stronie głównej standardowo wyświetlane są prośby w zależności od ilości próśb. Im więcej proszących => tym wyżej prośba. Wyświetlane są tylko prośby, które mają więcej niż 1 prośbę (można kliknąć na button 'Pojedyncze prośby', wtedy pokazuje nam tylko pojedyncze prośby, zaczynając od najstarszych). Wszystkie wyniki, nadal według ilości próśb, ale także z prośbami z 1 proszącym, są wyświetlane podczas sortowania próśb według działów. Na koniec dodam, że w panelu próśb można prosić tylko o te linki w tematach, w których już ktoś prosi (zapobiegnie to możliwości przypadkowego zmienienia ID topicu w pasku adresu).
Resztę poznasz, jak już zainstalujesz modyfikację.

Czekam na komentarze, czy wszystko działa w porządku, bo części nie chciało mi się testować, by działanie było oczywiście, ale gdzieś zawsze mogła wkraść się literówka :p
Jeżeli coś fajnego dodadzą do modyfikacji na DW, zrobię aktualizację.

prosby.png
Plik ściągnięto 279 raz(y) 53,65 KB

Prośby o nowe linki.rar
Pobierz Plik ściągnięto 519 raz(y) 33,13 KB

Ostatnio zmieniony przez Warmix 15-08-2012, 15:08, w całości zmieniany 3 razy  
 
     
Gadatliwa Kasia 

   
kevin_


Pomógł: 768 razy
Posty: 2680
Wysłany: 06-07-2012, 08:22   

- po co za każdym wywołaniem prośby.php czyścisz board_config?

- teksty trzymałbym w langach i za pomocą np. sprintf przekazywał dodatkowe parametry typu id_tematu - choć w ogóle cały link powinieneś przefiltrować przez append_sid()

- 65 linijka podaność na atak sql injection - dopiero w 69 sprawdzasz czy jest numeryczna czy nie:F

- poczytaj o relacjach, bo z tego co mi się wydaje zapis z 124 linijki oraz 129 mógłbys złączyć jako jedno (143 i 148 to samo)

- 135#daty formatuj za pomocą funkcji gotowej z phpBB - ponieważ jak ktoś zmieni tam konfiguracje daty w edycji profilu bodajże to i tak ujrzy Twój standard.

- #180 nie filtrujesz danych

- #203 nie narzucaj swoich kolorów, tylko trzymaj się tych co ktoś ma zdefiniowane w stylu; tablica $theme zwraca komórki row1, row2 (kolory)

- sama tabela/konstrukcja prosi się o nałożenie indeksów na id_forum oraz id_topic
sprawdź czy dobrałeś też odpowiedni typ - czy id_forum to faktycznie int(11) z phpbb_forums i to samo dla tematów.

Pzdr.
_________________
Prezes :mrgreen:
 
     
Majkelo



Pomógł: 1283 razy
Posty: 3081
Wysłany: 06-07-2012, 08:42   

Kod:
while($wynik = mysql_fetch_assoc($result))


Standardy + wszystkie powyższe uwagi. Brakuje też screenów, bez tego nie przeniosę modyfikacji do gotowych.
 
     
Warmix

Pomógł: 60 razy
Posty: 328
Wysłany: 06-07-2012, 08:49   

ok, poprawię to wszystko, tylko nie dziś... bo jadę na basen.

Zdjęcia też zrobię :P
 
     
zaba1992

Pomógł: 3 razy
Posty: 524
Wysłany: 12-07-2012, 17:51   

Można poprosić screen ??
 
     
Warmix

Pomógł: 60 razy
Posty: 328
Wysłany: 15-07-2012, 10:01   

Aktualizacja do wersji 1.1
 
     
zaba1992

Pomógł: 3 razy
Posty: 524
Wysłany: 15-07-2012, 14:30   

Po instalacji wywala mi blad viewtopic.php


Cytat:
Could not obtain post/user information.

DEBUG MODE

SQL Error : 1054 Unknown column 'u.prosby_pkt' in 'field list'

SELECT p.post_id, p.post_time, p.enable_sig, p.enable_html, p.enable_smilies, p.post_edit_count, p.post_edit_time, p.post_username, p.post_lp, p.post_approve, p.poster_delete, p.post_edit_by, p.post_parent, p.user_agent, p.post_attachment, p.post_expire, u.user_sig_image, u.user_birthday, u.user_from, u.user_regdate, u.user_gender, u.user_aim, u.user_viewaim, u.user_avatar_width, u.user_avatar_height, u.user_field_1, u.user_allow_field_1, u.user_field_2, u.user_allow_field_2, u.user_field_3, u.user_allow_field_3, u.user_id, u.username, u.user_level, u.user_jr, u.user_allowhtml, u.user_posts, u.user_points, u.user_allowsig, u.user_sig, u.user_sig_bbcode_uid, u.user_allowsmile, u.user_avatar_type, u.user_allowavatar, u.user_avatar, u.user_rank, u.user_viewemail, u.user_website, u.user_email, u.can_custom_ranks, u.user_custom_rank, u.user_session_time, u.user_allow_viewonline, u.prosby_pkt, u.user_spend_time, u.user_visit, pt.post_text, pt.bbcode_uid, pt.post_subject , ph.th_post_id FROM phpbb_posts p LEFT JOIN phpbb_posts_text_history ph ON (ph.th_post_id = p.post_id) LEFT JOIN phpbb_posts_text pt ON (pt.post_id = p.post_id) LEFT JOIN phpbb_users u ON (u.user_id = p.poster_id) WHERE p.topic_id = 1072 GROUP by p.post_id ORDER BY p.post_order, p.post_time ASC LIMIT 0, 15

Line : 957
File : viewtopic.php

Jeśli nie potrafisz znaleźć rozwiązania tego problemu,
możesz spróbować poszukać, lub zadać pytanie na forum: http://www.przemo.org/phpBB2/
 
     
Warmix

Pomógł: 60 razy
Posty: 328
Wysłany: 16-07-2012, 08:00   

zaba1992, wykonaj te zapytania:
Kod:
ALTER TABLE phpbb_users ADD `prosby_twoje` INT(11) DEFAULT '0';
ALTER TABLE phpbb_users ADD `prosby_spel` INT(11) DEFAULT '0';
ALTER TABLE phpbb_users ADD `prosby_pkt` INT(11) DEFAULT '10';
 
     
zaba1992

Pomógł: 3 razy
Posty: 524
Wysłany: 16-07-2012, 20:16   

Działa dzięki. Ale teraz jak chcę zgłosić "Prośbę o nowe linki " w danym temacie to wywala mi białą strone i

Cytat:
Not Found

The requested URL /topics7/1074.htm&start=1 was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the reque
 
     
Warmix

Pomógł: 60 razy
Posty: 328
Wysłany: 17-07-2012, 15:13   

Sprawdź, czy poprawnie wykonałeś instrukcję dotyczącą viewtopic.php

W razie czego, daj mi ten plik.


PS. Widzę, że modyfikacja już Ci działa, więc OK. :D
 
     
Boltex



Pomógł: 475 razy
Posty: 2239
Wysłany: 12-08-2012, 16:44   

Warmix napisał/a:
PS. Widzę, że modyfikacja już Ci działa, więc OK. :D

Wyłączył przepisywanie linków to mu działa. Ogólnie to gryzie się z Spider Friendly.
 
     
Warmix

Pomógł: 60 razy
Posty: 328
Wysłany: 12-08-2012, 17:03   

Boltex napisał/a:
Wyłączył przepisywanie linków to mu działa. Ogólnie to gryzie się z Spider Friendly.


Może pomyślę nad jakimś patchem, żeby z SF też działało.
 
     
Boltex



Pomógł: 475 razy
Posty: 2239
Wysłany: 12-08-2012, 17:53   

Warmix, jeszcze jest błąd w filtrowaniu. Jak poproszę o dwa linki z jednego działu to w filtracji dział pokazywany jest 2x(Filmy, Filmy), a powinien raz.
 
     
Warmix

Pomógł: 60 razy
Posty: 328
Wysłany: 12-08-2012, 18:12   

Boltex, ale modyfikacja działa na tematach nie działach... działy są tylko podane informacyjnie.
 
     
Gadatliwa Kasia 

   
Boltex



Pomógł: 475 razy
Posty: 2239
Wysłany: 12-08-2012, 18:11   

Warmix napisał/a:
Boltex, ale modyfikacja działa na tematach nie działach... działy są tylko podane informacyjnie.
W takim razie jak poproszę o 100 filmów(każdy inny) to będę miał 100x dział Film w filtracji. Trochę bez sensu.
Ostatnio zmieniony przez Boltex 14-08-2012, 19:24, w całości zmieniany 1 raz  
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!

Powered by phpBB modified by Przemo © 2003 phpBB
Strona wygenerowana w 0,12 sekundy. Zapytań do SQL: 16
Polecane serwisy

Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a

Sklep z gadżetami

serwis laptopów

phpbb

Polisy Ubezpieczeniowe TU Europa

Design Cart - Tworzenie sklepu internetowego

dnirozwoju.pl

Ranking Hostingów HostingOnline.pl

• Zamów reklamę