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

Tortilla

Użytkownik
  • Postów

    76
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Tortilla

  1. Sposób, który podał mrdrifter działa. Miałem po prostu niepotrzebnie w tablice w tablicy. Dzięki za pomoc.
  2. 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ę.
  3. 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.
  4. 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ć.
  5. 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.
  6. 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.
  7. Okey, można zamknąć, KoPciu wytłumaczył mi to w bardzo fajny sposób i już mam początki pierwszej aplikacji .
  8. 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.
  9. 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.
  10. 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 .
  11. Witajcie. Na moim forum zapodział się gdzieś przycisk zgłaszania postu. Nie wiem gdzie to znaleźć w szablonach. Dzięki za pomoc.
  12. Dodam, że jest to w szablonie globalTemplate.
  13. 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>
  14. 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.
  15. 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.
  16. 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.
  17. Naprawiłem, nie wiem jak, ale się udało.
  18. 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.
  19. Znalazłem. http://php.net/manual/pl/function.strtr.php
  20. 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.
  21. 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'])); }
  22. Trzeba napisać specjalny kod w javascript, a następnie go podpiąć pod wszystko.
×
×
  • 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ę.