Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

kodif

Użytkownik
  • Postów

    812
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    3

Treść opublikowana przez kodif

  1. Bo musiałbym się nauczyć pisać pluginy :P, a dokumentacja na IPS jest raczej słaba.
  2. Aktualizacja. Okazuje się że umieszczając dyrektywę die() w zewnętrznym skrypcie, po unieruchomieniu go jako okno modalne, przy jej wykonaniu następuje jedynie ubicie tego procesu. Główny, czyli ten który ją wywołał działa normalnie, dlatego też ponieaż działanie forum nie było przerywane, błędnie założyłem że nie wykonuje się to: if( $values = $form->values() ) { print_r( $values ); die(); Wykonuje się, tylko że tego die w ogóle nie widać. Tak więc dane są przetwarzane i w przypadku wprowadzenia właściwych danych, są zapisywane tam gdzie trzeba. Nadal występuje problem z weryfikacją danych z formularza, okno modalne jest po prostu zamykane i już.
  3. Warunek if( $values = $form->values() ) jest spełniony tylko w przypadku pomyślnego przesłania formularza, więc die() zadziała tylko wtedy. Ale sytuacja wygląda tak: po uruchomieniu linka w nowym oknie, skrypt script3.php działa normalnie, weryfikuje wprowadzone dane i robi to co miał zrobić. Po kliknięciu na link, czyli de facto uruchomieniu w oknie modalnym, formularz jest, ale co by nie zrobić, nie jest wykonywany po poleceniu "Zapisz". Kręci się ikona, a potem okno się zamyka, pojawia sie flash message i tyle. Efektów brak. Nie ma znaczenia czy są podane prawidłowe dane czy nieprawidłowe. W przypadku prawidłowych, powinno się wykonać to if( $values = $form->values() ) { print_r( $values ); die(); ale nie wykonuje się. Może coś trzeba dodać do skryptu script3.php ?
  4. Tak, o to Ale coś nie idzie. Skrypt jest wywoływany tak <div class="site_services update3"> <a class="register" data-ipsdialog="1" data-ipsdialog-flashmessage="Zapisane" data-ipsdialog-remotesubmit="1" data-ipsdialog-title="Aktualizacja dat" data-ipsdialog-url="services/script3.php" href="services/script3.php" rel="">Aktualizuj</a> </div> w skrypcie jest między innymi: <?php require_once( '../init.php' ); \IPS\Dispatcher\External::i(); \IPS\Session\Front::i(); ...... $form = new \IPS\Helpers\Form; $form->addHeader('Kalendarz'); $form->add( new \IPS\Helpers\Form\Date( 'hsc_start', 0, TRUE, array('min' => $dts, 'max' => $dte ), NULL, null, null, 'one_form' ) ); $form->add( new \IPS\Helpers\Form\Date( 'hsc_end', 0, TRUE, array(), NULL, NULL, null, 'two_form' ) ); .... if( $values = $form->values() ) { .... print(' Dane prawidłowe'); } $elo = (string) $form; \IPS\Member::loggedIn()->language()->parseOutputForDisplay( $elo ); echo $elo; Ale po kliknięciu "zapisz" okno modalne zamyka się bez sprawdzania poprawności podanych danych. Zamyka się nawet gdy są wymagane a nie zostały w ogóle podane. Gdzie jest błąd?
  5. Mam w skrypcie dodany przycisk, który wywołuje zewnętrzny kod php z formularzem. Jak zrobić żeby po kliknięciu otworzyło się okienko modalne, w stylu forum, nie takie przeglądarkowe , a przy jego zamknięciu strona automatycznie odświeżyła się?
  6. Do zamknięcia. Powodem była klasa ipsAdvertisement i Adblock
  7. Chciałem włączyć reklamę typu graficznego. Wgrałem obrazek, ustawiłem adres po kliknięciu na niego, zapisałem i nic. Nic się nie wyświetla, za to co ciekawe, w ACP licznik wyświetleń rośnie. Co jeszcze ciekawsze, sprawdziłem na telefonie a tam niespodzianka - na telefonie jest. Również, na telefonie ustawiając wersję "dla komputerów stacjonarnych" reklama się wyświetla, natomiast na laptopie nie ma nic. Nie również śladu po niej w źródle strony, na żadnym stylu. Czy ktoś wie o co może chodzić?
  8. Ok, prawdopodobnie niezbyt precyzyjnie napisałem. Pisząc filtry, miałem na myśli wszystkie filtrowania w \applications\core\extensions\core\MemberFilter, a gdy zadanie skryptu sprawdza kogo do jakiej grupy przenieść, to te filtry są uruchamiane w pętli, po 20-50 użytkowników.
  9. Hm, wydawało mi się że to jest jasne. Czyli jednak kolejnym zapytaniem sql. Wiesz może które będzie wydajniejsze na silniku IPS? To $lastPost = \IPS\Db::i()->select( 'post_date', 'forums_posts', array( 'author_id=?', $member->member_id ), 'post_date DESC' )->first(); czy to $lastPostdav = \IPS\Db::i()->select( 'MAX(post_date)', 'forums_posts', array( 'author_id=?', $member->member_id ))->first(); a może podejść od strony \IPS\Db::i()->query(....) i z tego wyciągnąć wynik? Te filtry latają w pętli, więc szukam oszczędności
  10. Nie do końca mam to zapisane w bazie. Zdaniem wesołych chłopców z IPSu, pole member_last_post, jak sama nazwa wskazuje, powinno zawierać datę ostatniego posta, albo ostatniej prywatnej wiadomości, w zależności co było ostatnie. Kto im zabroni? Potrzebuję datę ostatniego posta na forum, a nie tego co oni wymyślili.
  11. W kodzie zewnętrznym to bym pewnie dał zapytanie do bazy i nie przejmował się. Konkretnie muszę zrobić zmiany w plikach forum, np w tym: \applications\core\extensions\core\MemberFilter\Lastpost.php
  12. Witam, w jaki sposób najłatwiej uzyskać datę ostatniego posta użytkownika na forum? Jest do tego jakaś funkcja IPSu?
  13. Ale jaja. Niedługo jak będzie ktoś chciał zmienić adres forum, to mu nie pozwolą. Dziękuje Bogu że stawiając nowe forum kupiłem XenForo. Teraz trzeba założyć nowego maila, zmienić konto w IPS na tego maila, a przy sprzedaży sprzedawać całe konto łącznie z tym mailem.
  14. Wszystko działa. Dziękuję za pomoc.
  15. Osobny plik php, który jest uruchamiany z poziomu serwera. Chcę uzyskać taki sam wygląd, ten sam styl jaki ma ten użytkownik na forum. Np. na forum ma Nightmode, to i w tym skrypcie chcę aby kolorystyka, wygląd przycisków, formularzy był taki sam. Do tego potrzebuję klas elementów w htmlu - te będą w pliku .php no i właśnie css-ów od stylu.
  16. W zewnętrznym skrypcie php chciałbym wykorzystać pliki css stylu aktualnie zalogowanego użytkownika. Mogę to zrobić w ten sposób $css = \IPS\Theme::i() -> css_map a potem w pętli foreach utworzyć i powstawiać linki do sekcji <head> skryptu. Ale mam pytanie, czy jest jakaś prostsza metoda utworzenia tych linków?
  17. Tego mi brakowało. A jak wyświetlić w zewnętrznym skrypcie, dowolną frazę językową w języku aktualnie zalogowanego użytkownika? Próbowałem trochę na ślepo tak $dd = '__api_core_messages'; echo \IPS\Member::loggedIn()->language()->parseOutputForDisplay( $dd ); ale to nie to
  18. Dałem. Kompletnie nic się nie zmieniło. Zaczynam podejrzewać że z powodu pages, u Ciebie ten sam kod wykonuje się zupełnie inaczej niż u mnie. U mnie nie ma ani css, ani zrozumiałego języka, tylko jakiś generowany hash. Chyba muszę założyć nowe wątki o css i języku zalogowanego użytkownika w zewnętrznym pliku
  19. W opcjach klucze fraz? Jaka spacja? Nic nie rozumiem
  20. Niestety nie mam Pages. Zacząłem to testować, ale zamiast ładnego formularza mam coś takiego kod: $form = new \IPS\Helpers\Form; $form->add( new \IPS\Helpers\Form\Date( 'form_date_from', \IPS\DateTime::create(), TRUE, array(), NULL, NULL, NULL, 'form_date_from' ) ); $form->add( new \IPS\Helpers\Form\Date( 'form_date_to', \IPS\DateTime::create(), TRUE, array(), NULL, NULL, null, 'form_date_to' ) ); $form->add( new \IPS\Helpers\Form\Select( 'my_select_box', NULL, TRUE, array( 'options' => array( 0 => 'Raz', 1 => 'Dwa', 2=> 'Trzy' ), 'multiple' => TRUE ) ) ); if( $values = $form->values() ) { print(' Wysłane prawidłowo'); } echo $form; Nawet opcje [Raz, Dwa, Trzy] gdzieś znikają.
  21. Może rzeczywiście trochę zagmatwałem. Na forum będzie podany link do skryptu, np data.php, a w skrypcie użytkownicy forum będą podawać datę (i inne dane), która potem będzie zapisywana do bazy, do wybranej tabeli. W skrypcie data.php mogę wstawić formularze z polami input do podania daty, ale myślałem że mógłbym wykorzystać do tego API forum, z ładnym kalendarzykiem. Tylko nie do końca wiem jak w zewnętrznym skrypcie to zrobić
  22. Witam, chciałbym w skrypcie wykorzystać kontrolkę daty w formularzach, takich jak na obrazku Jak dobrać się do tego? Wartości z tego pola są pewnie przekazywane w sesjach, ale jak to umieścić w swoim skrypcie? API IPSu to dla mnie nieznane wody
  23. Tak, chodzi mi o zdebugowanie, ale już nie istotne, pogrzebałem w kodzie i w zmiennych. Ta funkcja jest spieprzona totalnie, są wysyłane do niej istotne paramenty które ona ignoruje, są w niej jakieś pozostałości po szukaniu konkretnego warunku, itd Wygląda jakby gimnazjalista-pasjonat zaczął to pisać, ale się znudził w połowie, a IPS zadowolony uważa że ma gotowy produkt. Praktycznie jest do napisania od nowa, to samo jest w Lastvisit.php
  24. Ewidentnie jest błąd. Funkcja matches w applications/core/extensions/core/MemberFilter/Lastpost.php public function matches( \IPS\Member $member, $filters, $object=NULL ) { /* If we aren't filtering by this, then any member matches */ if( ( !isset( $filters['range'] ) OR !$filters['range'] OR empty( $filters['range']['end'] ) ) AND ( !isset( $filters['days'] ) OR !$filters['days'] ) ) { return TRUE; } zawsze zwraca w tym miejscu TRUE gdy ustawi się warunek filtrowania "mniej niż x dni temu". Gdy ustawi się warunek "więcej niż x dni temu", przepuszcza kod dalej, do dalszego sprawdzania. teraz mam pytanie, czy jest w IPS4 jakaś zdefiniowana funkcja typu "alert" , żeby wyświetlić zawartość $filters? Czy może muszę utworzyć coś, co zrzuci te dane do logu na dysk?
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.