Skocz do zawartości

Largo

Użytkownik
  • Postów

    1 157
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Treść opublikowana przez Largo

  1. Witaj, Zależy na ile chce skasować sygnaturkę. Pewnie na długo, więc daj np. 30 dni :-) Pozdrawiam, Largo
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. Witam, PS. Dodałem artykuł na temat zmiany tej funkcji i teraz oczekuję na akceptację DawPi :-) Proszę o cierpliwość. Pozdrawiam, Largo
  12. 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
  13. 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
  14. 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
  15. Witam, Dawidzie, nie masz racji :-) Popatrz na to! Pozdrawiam, Largo
  16. Largo

    Polska Dokumentacja

    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
  17. 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
  18. Witaj, Działa! Chyba najlepszą opcją dla developerów jest poprawienie artykułu na ten temat. Pozdrawiam, Largo
  19. http://wklej.org/hash/92d6d6542d/
  20. 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.
  21. 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
  22. 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ć?
  23. 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
  24. 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
  25. Witam, Nie, niestety to u mnie na localhost nie pomaga.
×
×
  • 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ę.