Tortilla
Użytkownik-
Postów
76 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Pliki
Galeria
Blogi
Sklep
Wydarzenia
Treść opublikowana przez Tortilla
-
Walidacja danych formularza
Tortilla odpowiedział(a) na Tortilla temat w Programowanie / tworzenie styli
Sposób, który podał mrdrifter działa. Miałem po prostu niepotrzebnie w tablice w tablicy. Dzięki za pomoc. -
Walidacja danych formularza
Tortilla odpowiedział(a) na Tortilla temat w Programowanie / tworzenie styli
Widziałem to, ale jak ustawiam opcję min i max na takie jakie chce, czyli 5 i 100 to dane nie są sprawdzane czy są większe od 5 i mniejsze od 100, stąd myślałem, że potrzeba wywołać jeszcze jakąś funkcje aby przeprowadzić walidację. -
Walidacja danych formularza
Tortilla odpowiedział(a) na Tortilla temat w Programowanie / tworzenie styli
Przeszukiwałem ale nic sensownego nie mogę znaleźć . Przykładowo w ustawieniach(settings.php w aplikacji core) sprawdzałem formularz do zmiany hasła i nie widzę tam nic co określałoby w ogóle ilość znaków. -
Walidacja danych formularza
Tortilla odpowiedział(a) na Tortilla temat w Programowanie / tworzenie styli
No z tego co widziałem przy tworzeniu pola w formularzu można ustalić w opcjach jaka jest minimalna i maksymalna wartość pola. Jak ustawiam 'min'=> na 5 to po wysłaniu formularza nie jest to automatycznie sprawdzane i przy wartości 1 zapytanie i tak zostanie przesłane. Chce to po prostu ograniczyć. -
Cześć. Mam(znowu) pewien zapewne prosty problem do rozwiązania. Mianowicie, w klasie Helpers\Form\Number istnieje metoda validate(), którą nie wiem jak zastosować potem w kodzie. Tutaj przykładowy kod jak dodaje pole, potem nie wiem jak do tego się własnie odnieść w walidacji. $formChar->add( new \IPS\Helpers\Form\Number( 'gamecp_createchar_text_3', 5, TRUE, array( 'options' => array( 'min' => 5, 'max' => 100, 'range' => array('start' => array('min'=>5, 'max'=>5), 'end'=>array('min'=>100, 'max'=>100)))), NULL, NULL, NULL, '2' ) ); Z góry dzięki za pomoc.
-
Pobieranie zawartości pola z formularza
Tortilla odpowiedział(a) na Tortilla temat w Programowanie / tworzenie styli
Dzięki, działa jak powinno . -
Pobieranie zawartości pola z formularza
Tortilla opublikował(a) temat w Programowanie / tworzenie styli
Cześć, mam pewien problem, który jest pewnie banalny do rozwiązania ale nie umiem tego sam znaleźć. Mam taki kodzik: protected function manage() { $skins = [1 => '', 2 => '']; $formChar = new \IPS\Helpers\Form( 'form', 'report_submit' ); $formChar->addHeader(\IPS\Member::loggedIn()->language()->addToStack( 'gamecp_createchar_header_1' )); $formChar->add( new \IPS\Helpers\Form\Text( \IPS\Member::loggedIn()->language()->addToStack( 'gamecp_createchar_text_1'), NULL, FALSE, array( 'options' => array( 'minLength' => 2, 'maxLength' => 20 )), NULL, NULL, NULL, 'imie' ) ); $formChar->add( new \IPS\Helpers\Form\Text( \IPS\Member::loggedIn()->language()->addToStack( 'gamecp_createchar_text_2'), NULL, FALSE, array( 'options' => array( 'minLength' => 2, 'maxLength' => 20 )), NULL, NULL, NULL, 'nazwisko' ) ); $formChar->add( new \IPS\Helpers\Form\Number( \IPS\Member::loggedIn()->language()->addToStack( 'gamecp_createchar_text_3'), NULL, FALSE, array( 'options' => array( 'min' => 5, 'max' => 100 )), NULL, NULL, NULL, 'wiek' ) ); $formChar->add(new \IPS\Helpers\Form\TextArea(\IPS\Member::loggedIn()->language()->addToStack( 'gamecp_createchar_text_5'), NULL, FALSE, array( 'options' => array( 'minLength' => 40, 'maxLength' => 300, 'disabled' => FALSE, 'placeholder' => NULL, 'nullLang' => NULL, 'tags' => array(), 'rows' => NULL, 'class' => 'ipsField_codeInput')), NULL, NULL, NULL, 'desc' )); foreach ( \IPS\Db::i()->select( '*', 'rp_skins') as $row) { $skins[$row['sex']] .= '<img src=\'skiny/Skin_' .$row['id'] . '.png\' class=\'skinItem\' id=\'s' . $row['id'] . '\' alt=\'\' /> '; } $formChar->addHeader('Ubrania i płeć'); $formChar->add( new \IPS\Helpers\Form\Select( \IPS\Member::loggedIn()->language()->addToStack( 'gamecp_createchar_text_4'), NULL, FALSE, array( 'options' => array( 0 => '---', 1 => 'Mężczyzna', 2 => 'Kobieta' )), NULL, NULL, \IPS\Theme::i()->getTemplate( 'main' )->skinForm($skins), 'plec' ) ); \IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack( 'gamecp_title' ); $formChar->addMessage('Ubrania wyświetlą się po wybraniu płci postaci.'); $formChar->class = 'ipsForm_horizontal'; if ( $values = $formChar->values() ) { /*\IPS\Db::i()->insert( 'rp_characters', array('name' => $values['elInput_imie'] );*/ $formChar->addMessage('asdfasdf '.\IPS\Request::i()->elInput_imie); } // This is the default method if no 'do' parameter is specified \IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'main' )->createCharacter($formChar); \IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles, \IPS\Output::i()->js( 'skins.js', 'gamecp', 'interface' ) ); \IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles, \IPS\Output::i()->js( 'front_createCharacter.js', 'gamecp' ) ); } I problem jest w tym, że gdy chce pobrać dane za pomocą Request to nie wyświetla się nic(wpisuje imie oraz elInput_imie, z pola id="" w HTML) oraz, gdy używam $values to zwraca mi, że nie potrafi znaleźć takich indexów. Ktoś wie jak to naprawić? Po plikach IPS'u nie mogę się połapać jak pobierają te dane z formularzy. -
Proste aplikacje do zrozumienia działania IP.Board 4
Tortilla odpowiedział(a) na Tortilla temat w Programowanie / tworzenie styli
Okey, można zamknąć, KoPciu wytłumaczył mi to w bardzo fajny sposób i już mam początki pierwszej aplikacji . -
Proste aplikacje do zrozumienia działania IP.Board 4
Tortilla opublikował(a) temat w Programowanie / tworzenie styli
Cześć. Mimo, że z IP.Boardem 3.x nie mam żadnych problemów jeśli chodzi o programowanie pod nią aplikacji to o tyle ciężko jest mi się połapać w wersjach 4.x, że nie wiem totalnie co robić. Stworzyłem na razie sam folder z aplikacją i nie wiem jak napisać pierwszy moduł. Dokumentacja na community jest tak niepełna, że aż głowa boli. Chciałem Was poprosić o jakąś prostą aplikacje(jeśli taka istnieje oczywiście) dzięki której będę mógł zrozumieć na jakiej zasadzie działa pisanie modułów i sekcji w wersjach 4.x. Bo z tego co zauważyłem, to osobno pisze się moduł do wyświetlania a osobno do tworzenia nowych rzeczy, gdzie w 3.x można to było łączyć. Z góry wielkie dzięki. -
Lagujące wiadomości prywatne
Tortilla odpowiedział(a) na Tortilla temat w Programowanie / tworzenie styli
Na innym skinie działają właśnie te wiadomości prywatne, a na tym, który mam aktualnie nie. Jednakże chciałbym przy nim zostać i nie wiem gdzie szukać błędu. -
Cześć, witajcie. A więc, zauważyłem, że w moim stylu na forum lagują prywatne wiadomości. Styl został pobrany z internetu i zmodyfikowany. Jednakże, przy wysłaniu wiadomości wydaje mi się, że pada AJAX czy coś takiego. Wiadomości prywatne wysyłają się bardzo powoli i trzeba odświeżać samemu stronę, to samo z innymi rzeczami, np. ostrzeżaniem użytkownika. Nie wiem gdzie szukać błędu, ale na pewno on jest gdzieś w szablonach. Jeśli możecie, proszę, pokierujcie mnie jakoś, dzięki wielkie .
-
Witajcie. Na moim forum zapodział się gdzieś przycisk zgłaszania postu. Nie wiem gdzie to znaleźć w szablonach. Dzięki za pomoc.
-
Dodam, że jest to w szablonie globalTemplate.
-
Szukam zawartości zmiennej $html. W jakim może być pliku, albo gdzie w panelu admina? Jest tam pewien javascript, który muszę usunąć. <if test="mainpageContent:|:$html">{$html}</if>
-
Problem rozwiązałem w sposób taki, że usunąłem vHosta. Forum miało wpisaną tą drugą domenę, na której nie znajdowało adresów SEO.
-
Cześć. Mój problem polega na tym, że mam dwie podpięte domeny na jeden serwer dedykowany. IP Board wczytuje normalnie adres http://xxx.pl/index- pokazuje całe forum, jednakże gdy już wejdę na domenę drugą(dodam jeszcze, że mam na nią dodanego vhosta w Apache) to pokazuje, że nie znaleziono pliku. W skrócie: http://xxx.pl/index- działa, http://xxx2.pl/index - nie działa. .htaccess wygląda następująco: <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule \.(jpeg|jpg|gif|png)$ /public/404.php [NC,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> <Files 403.shtml> order allow,deny allow from all </Files> rewrite w apache włączony.
-
Problem z regexem furlTemplates.php
Tortilla odpowiedział(a) na Tortilla temat w Programowanie / tworzenie styli
Rozwiązane. -
Siemaneczko, mam taki kod: <?php $_SEOTEMPLATES = array( 'kokpit' => array( 'app' => 'kokpit', 'allowRedirect' => 1, 'out' => array( '#app=kokpit(&|$)#i', 'kokpit' ), 'in' => array( 'regex' => "#/kokpit(/|$)#i", 'matches' => array( array( 'app', 'kokpit' ) ) ) ), 'shopseo' => array( 'app' => 'kokpit', 'allowRedirect' => 1, 'out' => array( '#app=kokpit((&|&)module=shop)?#i', 'shop/' ), 'in' => array( 'regex' => '#/servers/#i', 'matches' => array( array( 'app', 'kokpit' ), array( 'module', 'shop' )) ) ), ); ?> I chodzi o to, że o ile pierwszy regex działa, tj.zmienia link index.php?app=kokpit na index.php?/kokpit to ten drugi nie działa. Powinien zmienić link index.php?app=kokpit&module=shop na index.php?/shop Nie mam już pomysłów, jak to zrobić. Próbowałem wzorować się na innych furlTemplates(z forums, members, core) i za każdym razem coś jest źle, ale nigdy nie wiem co. W dokumentacji doszukałem się oczywiście, jak tego używać, jednak kiedy to zmieniłem wszystko według poradnika, także nie działał.(myapp zmieniłem na kokpit, itd.). Gdy używam tego drugiego regexu wyświetla mi, że nie znaleziono strony.
-
Naprawiłem, nie wiem jak, ale się udało.
-
Cześć. Mam następujący problem. Na localhoście, gdy podpiąłem swój javascript w szablonach, działało wszystko bezproblemowo i ładowało się tak samo. Jednakże, gdy podpiąłem go pod IP Boarda na serwerze WWW z biznes-hostu, przestał się ładować i w ogóle działać. Miał wyświetlać HTML'a w oknie modalnym(Modal Windows), a pokazuje wszystko jako zwykły tekst. var _game = window.IPBoard; _game.prototype.game = { changesPopup: 0, charCardContainers: [], init: function() { document.observe('dom:loaded', function() { }); }, showCharacterDetails: function(obj,charid) { new ipb.Popup('charDetailPopup', { type: 'pane', modal: true, w: '900px', h: 500, ajaxURL: $(obj).readAttribute('href'), hideAtStart: false, close: 'a[rel="close"]', }, { afterShow: function(e2){ ipb.game.initCharacterCards('gameCharTabs'+charid); } } ); return false; }, getCharTabId: function(id) { return id.replace(/\_pane|\_tab/g, ''); }, initCharacterCards: function(containerID) { var containerEl = $(containerID); if(!containerEl) return; var currentTab = containerEl.select("li.active")[0]; if( !currentTab ) { currentTab = containerEl.select('li')[0]; } ipb.game.charCardContainers[containerID] = currentTab; var togglePane = function(e, elem){ if(e){ Event.stop(e) } if( ipb.game.charCardContainers[containerID] ){ if( ipb.game.getCharTabId( ipb.game.charCardContainers[containerID].id ) == ipb.game.getCharTabId( elem.id ) ){ return; } $( ipb.game.getCharTabId( ipb.game.charCardContainers[containerID].id ) + '_pane' ).fade({duration: 0.3}); } var newPane = $( ipb.game.getCharTabId(elem.id) + '_pane' ); $( newPane ).appear({duration: 0.3}); containerEl.select("li").invoke("removeClassName", 'active'); $(elem).addClassName('active'); ipb.game.charCardContainers[containerID] = elem; }; containerEl.on('click', 'li.tab_toggle', togglePane); togglePane( null, currentTab ); }, } ipb.game.init(); Oto kod, z góry dzięki za wszelką pomoc.
-
Usuwanie wybranych znaków z całego ciągu
Tortilla odpowiedział(a) na Tortilla temat w Programowanie / tworzenie styli
Znalazłem. http://php.net/manual/pl/function.strtr.php -
Usuwanie wybranych znaków z całego ciągu
Tortilla opublikował(a) temat w Programowanie / tworzenie styli
Cześć jeszcze raz. W moim poprzednim kodzie mi doradzono i pomogliście mi, jednakże pojawił się kolejny problem, który nie do końca potrafię rozwiązać. O ile znalazłem funkcje wyszukującą tekst w całym ciągu znaków, to nie potrafię się go pozbyć. Mianowicie, gdy używam mojego warunku znika cały tekst, który wcześniej formatowałem. Oto kod: if(strpos($text, '<br />')) { $text = str_replace("<br />", " "); } Z góry dzięki za pomoc, ponownie. -
Dzięki wielkie, działa.
-
Cześć, mam następujący problem, a raczej brak pomysłu na jego rozwiązanie. String, który jest wysyłany przez formularz, dziele i usuwam pewne części z niego, a następnie dodaje tam kilka zmiennych tworząc z tego zapytanie MySQL. Wszystko wygląda mniej więcej w taki sposób: CreateObject(2587, 2001.195679, 1547.113892, 14.283400, 0.0, 0.0, 96.0); Taki ciąg znaków wpisuje w edytor tekstu, a następnie go dziele w kodzie PHP. Cały problem polega na tym, że nie wiem, jak wyznaczyć w tym ciągu znaków, który z podanych jest ostatni i przez to nie potrafię zakończyć zapytania, bowiem przy INSERT INTO wygląda to mniej więcej tak: VALUES (pola), (pola), (pola), Zamieszanie zniknie, gdy zamiast tego ostatniego przecinka będzie średnik( , a nie mam pomysłu na wykonanie tego. Z góry dzięki za pomoc, poniżej zamieszczam kod. public function doorDetails() { $this->DB->query('SELECT * FROM frp_objects WHERE object_door='.$this->request['char'].' ORDER BY object_uid'); $this->DB->execute(); while( $t = $this->DB->fetch() ) { $i++; $t['zlicz'] = $i; $oList[] = $t; } $this->DB->query('SELECT door_exitvw, door_exitint FROM frp_doors WHERE door_uid='.$this->request['char'].' LIMIT 1'); $this->DB->execute(); $s = $this->DB->fetch(); if(isset($this->request['iobjects'])) { $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' ); $editor = new $classToLoad(); $oryg = $editor->process( $_POST['objects'] ); //$oryg = $this->request['objects']; $text = str_replace("CreateObject(", "(", $oryg); $text = str_replace(");", ",".$s['door_exitvw'].",".$s['door_exitint'].",200,0,0,0,0,0,".$this->request['char']." ),", $text); //$text = str_replace(");", ",".$s['door_exitvw'].",".$s['door_exitint'].",200,0,0,0,0,0,".$this->request['char']." );", $text); $this->DB->query('INSERT INTO frp_objects (object_model, object_posx, object_posy, object_posz, object_rotx, object_roty, object_rotz, object_world, object_interior, object_distance, object_opis, object_matindex, object_matmodel, object_mattexture, object_mattxdname, object_door) VALUES'.$text); $this->DB->execute(); /*$this->registry->getClass('output')->addContent($text); $this->registry->getClass('output')->sendOutput();*/ return; } $this->returnHtml($this->registry->output->getTemplate('kokpit')->ajaxDoorDetails($oList, $this->request['char'])); }
-
Trzeba napisać specjalny kod w javascript, a następnie go podpiąć pod wszystko.