Webboard

Pełna wersja: System Subskrypcji 2.1.0
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Krótki opis: Plugin ten zezwala na wykonanie dożywotniej subskrypcji na wybraną w ustawieniach grupę za pomocą płatności SMS obsługiwanej przez Dotpay.

Ściągnij spolszczenie: Brak

Inne uwagi: Chciałbym złożyć podziękowania tym, którzy pomogli mi wtedy gdy miałem "zastój umysłowy" i udzielili mi pomocnych rad:
- SoulReaver
- Victor
- Dance4Love
- Tyru
- Seba
- Schocker


Update 1.10 BETA: Malutki błąd - podczas testów była komentowana część kodu i nie została od komentowana.

Update 1.11 BETA: Poprawienie tytułu szablonu oraz dodanie zrzutów ekranu do tematu.

Update 1.2: Wykonanie ostatecznych testów, poprawienie błędów kosmetycznych, zmiana ustalania treści SMS i numeru na manualny.

Update 2.0: Wykorzystanie większej ilości funkcji w MyBB, przepisanie całego szablonu na nowo, zmiana pobierania wartości formularza, ponowne wprowadzenie automatycznego dodawania numeru SMS i jego treści do szablonu. (zastosowanie się do rad Victora)

Update 2.0.1: Dodanie odnośnika do regulaminów dotpay, bezpieczeństwa, dodanie hiperłącza do obrazka oraz szyk przestawny pomiędzy obrazkiem Dotpay a hiperłączami.

UPDATE 2.1.0: Dodanie obsługi plików lang'owych.
Mówiłem Nad3jfie, że jak dodasz to rzucę okiem.

Hapaj i najlepiej popraw:
subskrypcja.php:
  • eval i output_page najlepiej dawać na samym końcu. Wyrabiaj nawyki. Najpierw "ogarnia wszystkie możliwość" dopiero potem pokazuje,
  • Kod PHP:
    if(!empty($_POST['code'])) 
    takie myślenie jest powodem kolejnego, dużej wagi błędu. Zamiast $_POST używaj wbudowanego w MyBB
    Kod PHP:
    $mybb->input['code'
    dodatkowo, w funkcje empty możesz jeszcze wsadzić trim. Trim ma na celu usuniecie spacji z lewej i z prawej strony stringu,
  • Kod PHP:
    $settings['subs_syst_kid']; 
    kolejny fail. Nie polegaj na inc/settings.php. Masz od tego
    Kod PHP:
    $mybb->settings['...']; 
  • Kod PHP:
    $handle fopen("http://dotpay.pl/check_code.php?id=".$kid."&code=".$uid."&check=".$kod."&type=".$type."&del=".$del'r'); 
    wiesz dlaczego nie wolno w taki sposób jak Ty używać $_POST? Bo można to tak zmanipulować, że przy takim zapytaniu można by było korzystać zkodu do usranej śmierci. W mysql takie jajca nazywają się SQL Injection. Poczytaj o tym. I poprawm najlepiej tj. mówiłem na $mybb->input... Jeżeli się dobrze orientuje MyBB najpierw odpowiednio obrabia $_GET i $_POST a dopiero laduje je do tablicy $mybb.
  • fopen jest uniwersalne. Ale duzo szybszy jest CURL, chociaz ma wade, ze w malych odsetkach serwerow jest wylaczony. Ja bym skorzystal z curla lub znalazl gotowa funkcje do sprawdzania kodow dotpay. Bo nie ma sensu pisac kawalku kodu, ktorego mozna znalezc a w dodatku uzywa go duzo ludzi co daje nam pewnsoc ze dziala prawidlowo.
  • Kod PHP:
        $db->query("UPDATE mybb_users SET usergroup='".$grupa."' WHERE uid='".$id."'"); 
    Tutaj kategoryczny błąd ustawienia prefixu standardowo. A może ktoś ma inaczej? :)
    Do tego typu sprawdze najlepiej użyć funkcji
    Kod PHP:
    update_query($table$array$where=""$limit=""$no_quote=false
    znajdz ją sobnie np. w inc/db_mysqli.php i zobacz jak działa :). Wtedy Ty MyBB podajesz same konkretne dane a on juz sam tworzy odpowiednie zapytnaie z uwzglednieniem prefixu.
  • Kod PHP:
    if($status == 0
    w/g mnie bez sensem jest sprawdznaie czy status 0 a potem false (po co ten false? to jest koniec skryptu, on tu nic nie zdziala. to nie jest lua...). Najlepiej sprawdzic czy status jest inny niz 0 czyli != 0 i jezeli tak to odrazu instrukcja nadpisania grupy. Ty przeciez tylko sprawdzasz, nie wyswietlasz informacji ze jest zly.
system_subskrypcji.php
  • Kod PHP:
    $db->insert_query_multiple("templates"$zapytanie); 
    Nie potrzenie zrobiles tablice z zapytan. Chyba patrzyles na inny plugin ktory ma wiecej szablonow :). Jak chcesz wrzucac pojedyncze to insert_query ale wtedy bez "tablicy z tablicami".
  • Szablon - w szablonie zamiast tresc smsa mozesz dac
    Kod PHP:
    \$mybb->settings['TRESC SSMA CZY JAK TAM NAZWIESZ/NAZWALES']; 

    Bo w tym momencie przed aktywacja pluginu trzeba zmienic tresc w tym pliku. Przed $mybb musi być \ (backslash).

Mam nadzieje ze to Cienie zniechęci. Najważniejszy jest ten bug, że można pykać ile sie chce jeden kod. Reszta błędów/podpowiedzi też jest ważna, bo jezeli chodzi o bledy to w niektorych warunkach tez moga wysypac plugin. A przeciez chyba chodzi o to, zeby porpawic obecny i nastepny napisac bez bledow? :-)
Dziękuje za uwagi zaraz zrobię z nich małego update - jednak co do fopen jest to z oficjalnego skryptu Dotpay - sms standart - tak więc nie jest złym rozwiązaniem. I póki co tak pozostanie. Za resztę uwag dziękuje w wersji 1.3.0 zostaną uwzględnione, która się jeszcze dziś pojawi.
Leciutko opóźniony no ale już wykonany UPDATE. Jednak zaszło tyle zmian, że zamiast do 1.3.0 postanowiłem tą wersję nazwać 2.0 i już zbliżamy się prawdopodobnie do wersji finalnej. (Jeszcze chcę zrobić parę ulepszeń)

Update 2.0: Wykorzystanie większej ilości funkcji w MyBB, przepisanie całego szablonu na nowo, zmiana pobierania wartości formularza, ponowne wprowadzenie automatycznego dodawania numeru SMS i jego treści do szablonu. (zastosowanie się do rad Victora)
Update 2.0.1: Dodanie odnośnika do regulaminów dotpay, bezpieczeństwa, dodanie hiperłącza do obrazka oraz szyk przestawny pomiędzy obrazkiem Dotpay a hiperłączami.
Wszystkie uwagi piszcie śmiało :) Coś wam nie pasuje ? To postaram się w następnym UPDATE wykonać. Co do PW o indywidualne modyfikacje no to raczej tylko odpłatnie - chyba, że pomysł będzie ciekawy i mnie zainspiruje.
Kolejny UPDATE tym razem wprowadziłem obsługę plików lang - w których można zmienić cały plugin na dowolny język. W paczce znajduje się też tłumaczenie na język Angielski wykonane przez Schockera. Niebawem pojawi się kolejny UPDATE, w którym to zostanie możliwość wybrania na jaki czas ma być wykupiona dana subskrypcja - i to będzie najprawdopodobniej wersja finalna.