Largo
Użytkownik-
Postów
1 157 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
1
Typ zawartości
Profile
Forum
Pliki
Galeria
Blogi
Sklep
Wydarzenia
Treść opublikowana przez Largo
-
Witaj, Zależy na ile chce skasować sygnaturkę. Pewnie na długo, więc daj np. 30 dni :-) Pozdrawiam, Largo
-
Witam, Kupię licencję IP.Board ważną minimalnie na 1 miesiąc. Kwota jest do ustalenia, ale zakup planuję ok. połowy września. Pozdrawiam, Largo
-
Witaj, Najpierw pobierz Konwertery dla IP.Board 3.0.X, następnie wg. instrukcji wgrać zawartość katalogu Upload do Twojego forum. Następnie przejdź do ACP -> Manage Applications & Modules -> Install IPS Converters. Jeżeli instalacja konwerterów przebiegła pomyślnie naciskasz My Apss i IPS Converters. Z listy wybierasz co chcesz skonwertować ( IP.Board ) i podajesz dane tj. z jakiego skryptu, a na końcu masz opcję dotyczące bazy danych! Musisz wszystko dokładnie i poprawnie wypełnić i konwersja powinna się zacząć, a jest ona w pełni zautomatyzowana. Pozdrawiam, Largo
-
Witaj, Chcesz sugestię? Co się stanie, jak przeglądasz logi PW i nagle ta osoba skasuje PW? Status odczytania i IP leżą. Wypada dodać relację, że jeżeli istnieje log PW ( Twój ), a PW nie istnieje wypada wywalić ten log. Ja to mniej więcej dodałem do starszych wersji, ale jak coś to PW i dam znać :-) Nie chcę tematu zasyfiać. Pozdrawiam, Largo
-
Witam, Dodałem tylko dla IP.Board, dla IPS możesz podobnie, ale nie widzęsensu tych działań - radzę poczytać o tym tagu rel='nofollow'. Oto co trzeba zrobić: Otwórz: admin/sources/classes/output/formats/html/htmlOutput.php Znajdź: $copyright = "<!-- Copyright Information --> <p id='copyright' class='right'> Powered By <ahref='http://www.invisionboard.com' title='IP.BoardHomepage'>IP.Board</a> {$version} © ".date("Y")." <a href='http://www.invisionpower.com' title='IPSHomepage'>IPS, <abbrtitle='Incorporated'>Inc</abbr></a>. "; Zamień na: $copyright = "<!-- Copyright Information --> <p id='copyright' class='right'> Powered By <ahref='http://www.invisionboard.com' title='IP.Board Homepage'rel='nofollow'>IP.Board</a> {$version} © ".date("Y")." <a href='http://www.invisionpower.com' title='IPSHomepage'>IPS, <abbrtitle='Incorporated'>Inc</abbr></a>. "; Pozdrawiam, Largo
-
ROZWIĄZANY: Walidacja i poprawa kwoty
Largo odpowiedział(a) na Largo temat w Programowanie / tworzenie styli
Witaj, Nie, to nie już ważne. Ja wynajdowałem na nowo funkcję w PHP, którą jest is_numeric() :-) Oto poprawny kod na wszelkie akcje: //------------------------------------- // Is number? //------------------------------------- if ( !is_numeric( $this->ipsclass->input['amount'] ) ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'incorrect_fg_number' ) ); } //------------------------------------- // Prepare amount! //------------------------------------- if ( strpos( $this->ipsclass->input['amount'], '.' ) !== FALSE ) { list( $integer, $fractions ) = explode( '.', $this->ipsclass->input['amount'] ); $lenght = strlen( $fractions ); switch ( $lenght ) { case ( $lenght < 2 ): $fractions *= 10; break; case ( $lenght > 2 ): $fractions = substr( $fractions, 0, 2 ); break; case 0: $fractions = '00'; break; } $this->ipsclass->input['amount'] = implode( '.', array( $integer, $fractions ) ); } else { $this->ipsclass->input['amount'] = implode( '.', array( $this->ipsclass->input['amount'], '00' ) ); } Zapomniałem, że separatorem liczb w PHP jest KROPKA, a nie PRZECINEK :-) Możesz przetestować, jest optymalnie napisany. Pozdrawiam, Largo -
ROZWIĄZANY: Walidacja i poprawa kwoty
Largo odpowiedział(a) na Largo temat w Programowanie / tworzenie styli
Witaj, Nie! Właśnie nie! Ma podawać kwoty jakiekolwiek z ułamkami do dwóch znaków. Widzę, że kolega znalazł błąd, ponieważ wpisanie 10.24 podaję jako złą kwotę, a kropkę powinien traktować jako poprawną liczbę. Oczywiście, zostawić jedynie kropkę ostatnią. Pozdrawiam, Largo -
Witam, Napisałem lekki kod do weryfikacji mojej kwoty w skrypcie, jak i jej ewentualnej poprawy polegającej na skrócaniu ułamków lub ich dodawaniu :-) Oto i owy kod, proszę o jego ocenę, jeżeli coś nieoptymalnie zrobiłem, proszę o konstruktywne opinie: //------------------------------------- // Prepare amount! //------------------------------------- if ( strrpos( $this->ipsclass->input['amount'], ',' ) !== FALSE ) { $this->ipsclass->input['amount'] = substr_replace( $this->ipsclass->input['amount'], '.', strrpos( $this->ipsclass->input['amount'], ',' ), 1 ); list( $integer, $digits ) = explode( '.', $this->ipsclass->input['amount'] ); $lenght = strlen( $digits ); switch ( $lenght ) { case ( $lenght < 2 ): $digits *= 10; break; case ( $lenght > 2 ): $digits = substr( $digits, 0, 2 ); break; case 0: $digits = '00'; break; } $this->ipsclass->input['amount'] = implode( '.', array( $integer, $digits ) ); } /* Amount without digits? Add them! */ else { $this->ipsclass->input['amount'] = implode( '.', array( $this->ipsclass->input['amount'], '00' ) ); } $this->ipsclass->input['amount'] = str_replace( ',', '', $this->ipsclass->input['amount'] ); Pozdrawiam, Largo
-
ROZWIĄZANY: Wartości w Multi-select
Largo odpowiedział(a) na wareczek temat w Programowanie / tworzenie styli
Witam, Istnieje pewna alternatywa dodania na stałe tego kodu, oto sposób: Otwórz: admin/applications/core/modules_admin/tools/settings.php Znajdź: else if ( $r['conf_extra'] == '#show_skins#' ) { $dropdown = $this->registry->output->generateSkinDropdown(); } Dodaj poniżej: else if ( $r['conf_extra'] == '#show_statuses#' ) { $this->DB->build( array( 'select' => '*', 'from' => 'tracker', 'order' => 'status ASC' ) ); $this->DB->execute(); while( $row = $this->DB->fetch() ) { $dropdown[] = array( $row['id'], $row['status'] ); } } Chociaż oglądaj dalszy kod nie sugerowałbym się moim, a zrobił jak DawPi. Dlaczego? else { foreach( explode( "\n", $r['conf_extra'] ) as $l ) { list ($k, $v) = explode( "=", $l ); if ( $k != "" and $v != "" ) { $dropdown[] = array( trim($k), trim($v) ); } } } Chyba wiadomo co dany kod robi, więc bez problemu można tego dokonać pisząc jego sposobem. Oczywiście mój sposób musisz poprawić do odpowiedniego zapytania, bo nie pamiętam struktury IP.Tracker. Pozdrawiam, Largo -
Witam, Nie wiesz jak usunąć ramkę zależnie od błędu? Oto sposób, aby tego dokonać: Otwórz: sources/ipsclass.php Znajdź i zamień całą funkcję: /*-------------------------------------------------------------------------*/ // ERROR FUNCTIONS /*-------------------------------------------------------------------------*/ /** * Show error message * * @param array 'LEVEL', 'INIT', 'MSG', 'EXTRA', 'HELP' * @return void * @since 2.0 */ function Error($error) { $override = 0; //----------------------------------------- // Showing XML / AJAX functions? //----------------------------------------- if ( $this->input['act'] == 'xmlout' ) { @header( "Content-type: text/plain" ); print 'error'; exit(); } //----------------------------------------- // Initialize if not done so yet //----------------------------------------- if ( isset($error['INIT']) AND $error['INIT'] == 1) { $this->quick_init(); } else { $this->session_id = $this->my_session; } if ( !isset($this->compiled_templates['skin_global']) OR !is_object( $this->compiled_templates['skin_global'] ) ) { $this->load_template('skin_global'); } //----------------------------------------- // Get error words //----------------------------------------- $this->load_language('lang_error'); list($em_1, $em_2) = explode( '@', $this->vars['email_in'] ); $msg = $this->lang[ $error['MSG'] ]; //----------------------------------------- // Extra info? //----------------------------------------- if ( isset($error['EXTRA']) AND $error['EXTRA'] ) { $msg = str_replace( '<#EXTRA#>', $error['EXTRA'], $msg ); } //----------------------------------------- // Show error //----------------------------------------- $show_help = ( isset($error['HELP']) AND $error['HELP'] == 1 ) ? 1 : 0; $html = $this->compiled_templates['skin_global']->Error( $msg, $em_1, $em_2, $show_help); //----------------------------------------- // If we're a guest, show the log in box.. //----------------------------------------- if ($this->member['id'] == "" and $error['MSG'] != 'server_too_busy' and $error['MSG'] != 'account_susp') { $safe_string = $this->base_url . str_replace( '&', '&', $this->parse_clean_value($this->my_getenv('QUERY_STRING')) ); $html = str_replace( "<!--IBF.LOG_IN_TABLE-->", $this->compiled_templates['skin_global']->error_log_in( str_replace( '&', '&', $safe_string ) ), $html); $override = 1; } //----------------------------------------- // Do we have any post data to keepy? //----------------------------------------- if ( $this->input['act'] == 'Post' OR $this->input['act'] == 'Msg' OR $this->input['act'] == 'calendar' ) { if ( $_POST['Post'] ) { $post_thing = $this->compiled_templates['skin_global']->error_post_textarea($this->txt_htmlspecialchars($this->txt_stripslashes($_POST['Post'])) ); $html = str_replace( "<!--IBF.POST_TEXTAREA-->", $post_thing, $html ); } } //----------------------------------------- // Update session //----------------------------------------- $this->DB->do_shutdown_update( 'sessions', array( 'in_error' => 1 ), "id='{$this->my_session}'" ); //----------------------------------------- // Print //----------------------------------------- $print = new display(); $print->ipsclass =& $this; $print->add_output($html); $print->do_output( array( 'OVERRIDE' => $override, 'TITLE' => $this->lang['error_title'] ) ); } Sposób wykorzystania: $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'nazwa_klucza', 'HELP' => 1 ) ); Bez podania parametru, sam usunie ramkę. Jedynie podając dodatkowy parametr doda ją. Pozdrawiam, Largo
-
Witam, PS. Dodałem artykuł na temat zmiany tej funkcji i teraz oczekuję na akceptację DawPi :-) Proszę o cierpliwość. Pozdrawiam, Largo
-
Witaj, Czy opłaca się w tej sytuacji przejść na InnoDB? Czy FULLTEXT indeksy się posypią i będzie więcej wad niż zalet, np. z przenoszeniem bazy? Czy IP.Board tworzy nowe połączenia dla użytkownika czy inaczej tworzy ID połączeń? Potrzebne to jest, aby transakcję nie posypały się na tzw. Multi-User System. Czyli transakcja blokuję tabelę wg. innych schematów niż użytkownik. Pozdrawiam, Largo
-
Witam, Pojawił mi się oto taki problem. Doszliśmy ze znajomym, że obecne zapytanie ma skłonności do błędu, powodów jest multum, a większość to zazwyczaj lagi serwera. Postanowiliśmy wziąć pod uwagę Transakcję. Oto co wymodziłem: /* Begin transaction! */ $this->ipsclass->DB->query('START TRANSACTION'); /* Update sender FG */ $sender = $this->ipsclass->DB->do_update( 'members', array( 'fg' => $this->ipsclass->member['fg'] - $this->ipsclass->input['amount'] ), 'id = '.$this->ipsclass->member['id'] ); if ( !$sender ) { $this->ipsclass->DB->query('ROLLBACK'); } /* Update recipient FG */ $recipient = $this->ipsclass->DB->do_update( 'members', array( 'fg' => $this->to_user['fg'] + $this->ipsclass->input['amount'] ), 'id = '.$this->to_user['id'] ); if ( !$recipient ) { $this->ipsclass->DB->query('ROLLBACK'); } $this->ipsclass->DB->query('COMMIT'); Zastanawiam się jak sprawdzić czy zapytania zostały wykonane prawidłowo. $this->ipsclass->DB->get_num_rows nie pasuje, bo nie zwraca wartości :-) Można by dać to w warunek if ( !$result = całe zapytanie ), ale to logiki zupełnie nie ma. Na dodatek pojawił się problem, czy IP.Board nawiązuje połączenie z bazą per member czy inaczej, bo mogą wystąpić problemy z tzw. multi user :-) PS. Podczas do_update i sukcesu daję TRUE, a na FALSE domyślam się brak sukcesu. Pewności nie daję, ale taki kod mnie powoli zadawala. PS2. OK, wiem co zwraca do_update już, musiałem manual poczytać - Dzięki temu wiem, że takie warunki dają mi pewne zabezpieczenie i mogę takiej konstrukcji używać. Teraz zostaje pytanie, czy połączenia są per użytkownik czy inaczej.PS3. Shit! Zapomniałem o fakcie, że do transakcji wymagany jest silnik InnoDB, a nie MyISAM, opłaca się przechodzić na InnoDB? IP.Board go oficjalnie wspiera, więc? Pozdrawiam, Largo
-
Witaj, Ja ich doskonale niejako rozumiem. Ostatnio terabyte opublikował swoją pierwszą modyfikację za pieniądze i tydzień później chodziła po warezach. Ludzie nie szanują praw autorskich i usuwają stopki. Myślisz, że dlaczego ja nie chcę wydać publicznie, ani za pieniądze Forum Gold i paru modułów dla stron o Diablo, WoW, Starcraft, lub gdzie jest wymiana przedmiotów? Teraz jak wiesz piszę nową wersję ( wiele roboty sobie wziąłem za cel, listę TODO masz na moim forum :-) ), ale wiem, że poszłaby na warez i usuwali stopki. Szlachetna idea to rzadkość w tych czasach, ale mimo to, są niektórzy którzy chcą pomóc :-) Na mnie możesz liczyć jak i użytkownicy forum w zakresie programowania :-) Pozdrawiam, Largo
-
Witam, Dawidzie, nie masz racji :-) Popatrz na to! Pozdrawiam, Largo
-
Witam, Ja jestem na nie. Po co komu polska dokumentacja? Aby programować musisz mieć przynajmniej podstawy czytania w języku angielskim. To samo z czytaniem kodu źródłowego, co dana funkcja robi, do czego dane pola są zadeklarowane. Każdy programista musi umieć angielski, to jest absolutna podstawa, a opis dla programisty masz wyjaśniony dosyć szczegółowo tutaj! W razie konkretnych pytań - pisz na forum. Pozdrawiam, Largo
-
Witaj, Nie! Te "domeny" przed domeną to są subdomeny. Są dosyć często spotykane na serwerach w ilościach ok. 1000 lub nieskończenie wiele. O subdomenach polecam poczytać ten artykuł: Subdomena Jakie są różnice między subdomenami, a katalogami? Taka, że Google i wiele przeglądarek może indeksować Twoją stronę w formacie: www.subdomena.domena.pl lub subdomena.domena.pl. Co wg. Ciebie lepiej wygląda: forum.invisionize.pl www.forum.invisionize.pl invisionize.pl/forum Pytanie jest proste i sam sobie na nie odpowiedź. Dużo lepszy wyjściem są subdomeny! Pozdrawiam, Largo
-
ROZWIĄZANY: Włączenie modułu dla developera, CSS?
Largo odpowiedział(a) na Largo temat w Programowanie / tworzenie styli
Witaj, Działa! Chyba najlepszą opcją dla developerów jest poprawienie artykułu na ten temat. Pozdrawiam, Largo -
ROZWIĄZANY: Włączenie modułu dla developera, CSS?
Largo odpowiedział(a) na Largo temat w Programowanie / tworzenie styli
http://wklej.org/hash/92d6d6542d/ -
ROZWIĄZANY: Włączenie modułu dla developera, CSS?
Largo odpowiedział(a) na Largo temat w Programowanie / tworzenie styli
Witaj, Pokazuje całą WWW, ale bez obrazków, po prostu, jakby kod CSS i obrazki zniknęły :-) A narzędzia IPS dalej nie widzą katalogów dla master skina. -
ROZWIĄZANY: Włączenie modułu dla developera, CSS?
Largo odpowiedział(a) na Largo temat w Programowanie / tworzenie styli
Witaj, OK, zostawiłem public tak jak IPS dało. Nic tam nie zmieniam już! Oto screen ze ścieżki cache/skin_cache: Pozdrawiam, Largo -
ROZWIĄZANY: Włączenie modułu dla developera, CSS?
Largo odpowiedział(a) na Largo temat w Programowanie / tworzenie styli
Witaj, OK, zrobimy od nowa samą działkę skinów. Usunąłem z cache/skin_cache katalogi master_*, zostawiłem ten od języka. Usunąłem katalogi i pliki master_* z public/style_css. Co powinienem teraz zrobić? -
ROZWIĄZANY: Włączenie modułu dla developera, CSS?
Largo odpowiedział(a) na Largo temat w Programowanie / tworzenie styli
Witaj, Nie wiem o co tu biega, dalej to samo. Pliki mam na localhost, nie udostępnię Ci jak to wygląda i co to powoduje. Za chwilę zwariuje, a mi się na 90% wydaje, że to są błędy IPS. Pokazuje skin, ale bez header i footer. Pliki są w tych samych miejscach, a skrypt dalej w ACP sypie mi błędami, że katalog nie istnieje i wyjątkami, podam jeden z błędów. <b>Fatal error</b>: Uncaught exception 'Exception' with message 'NO_SUCH_DIR' in C:wampwwwadminsourcesclassesskinsskinCaching.php:812 Stack trace: #0 C:wampwwwadminapplicationscoremodules_admintemplatestools.php(402): skinCaching->rebuildMasterCSS('2') #1 C:wampwwwadminapplicationscoremodules_admintemplatestools.php(113): admin_core_templates_tools->_inDevMasterCSS() #2 C:wampwwwadminsourcesbaseipsController.php(289): admin_core_templates_tools->doExecute(Object(ipsRegistry)) #3 C:wampwwwadminsourcesbaseipsController.php(89): ipsCommand->execute(Object(ipsRegistry)) #4 C:wampwwwadminsourcesbaseipsController.php(61): ipsController->handleRequest() #5 C:wampwwwadminindex.php(22): ipsController::run() #6 {main} thrown in <b>C:wampwwwadminsourcesclassesskinsskinCaching.php</b> on line <b>812</b> Przy naciśnięciu "IMPORT CSS from 'master' directory...", a przy naciśnięciu "EXPORT CSS from 'master' directory..." -> "ErrorDIR_DOES_NOT_EXIST" Pozdrawiam, Largo -
ROZWIĄZANY: Włączenie modułu dla developera, CSS?
Largo odpowiedział(a) na Largo temat w Programowanie / tworzenie styli
Witaj, Mam master_skin i w nim pliki z wygenerowanej opcji w ACP ( Create Master PHP Templates Directory ) i master_css, który jest PUSTY! Na dodatek nie mogę zrobić IMPORT CSS i Template z ACP jak Matt sugeruję, bo sypie Exception, że katalog nie istnieje. A wg. ich kodu ( ścieżka: public/style_css/ ) znajdują się katalogi i master_css też. Masz inny pomysł? Sypie Exception: DIR_NOT_EXISTS. Opis funkcji możesz sprawdzić w sources/classes/skins/skinCaching.php PS. Obsługę serwera lokalnego dałem WampServer. Pozdrawiam, Largo -
ROZWIĄZANY: Włączenie modułu dla developera, CSS?
Largo odpowiedział(a) na Largo temat w Programowanie / tworzenie styli
Witam, Nie, niestety to u mnie na localhost nie pomaga.
