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 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:
$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.
- 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.phpKod 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.