-
Postów
78 219 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
583
Typ zawartości
Profile
Forum
Pliki
Galeria
Blogi
Sklep
Wydarzenia
Treść opublikowana przez DawPi
-
Modyfikacja daje Administratorowi Forum możliwość wyboru grup, których członkowie mogą pisać aktywne linki na forum. Jest to proces automatyczny i w pełni konfigurowalny z poziomu ACP ( edycji grup ). Jeśli pozwolisz danej grupie pisać aktywne linki, będzie to wyglądać następująco: http://klikalnylink.pl Natomiast jeśli nie pozwolisz, tak: http://klikalnylink.pl ( uwaga: musiałem użyć znacznika code by pokazać, że link nie będzie klikany. W rzeczywistości oczywiście takiej ramki nie będzie ). Wykonaj zapytanie do SQL: ACP > ADMIN > SQL Management > SQL Toolbox >> Run a Query O następującej treści: ALTER TABLE `ibf_groups` ADD `l_post_urls` tinyint(1) NOT NULL default '1'; Otwórz: /sources/action_admin/groups.php Znajdź: 'g_dohtml' => $this->ipsclass->input['g_dohtml'], Dodaj poniżej: 'l_post_urls' => $this->ipsclass->input['l_post_urls'], Znajdź: $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Can post HTML?$guest_legend</b><br />".$this->ipsclass->adskin->js_help_link('mg_dohtml') , $this->ipsclass->adskin->form_yes_no("g_dohtml", $group['g_dohtml'] ) ) ); Dodaj poniżej: $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Może pisać 'klikane' linki?</b><br />", $this->ipsclass->adskin->form_yes_no("l_post_urls", $group['l_post_urls']) ) ); Zapisz i wyślij na serwer. Otwórz: /sources/classes/bbcode/class_bbcode.php Znajdź: //----------------------------------------- // Auto parse URLs //----------------------------------------- $txt = preg_replace_callback( "#(^|\s|>)((http|https|news|ftp)://\w+[^\s\[\]\<]+)#i", array( $this, '_regex_build_url_manual' ), $txt ); Zamień na: //----------------------------------------- // Auto parse URLs //----------------------------------------- if( $this->ipsclass->member['l_post_urls'] == 1 ) { $txt = preg_replace_callback( "#(^|\s|>)((http|https|news|ftp)://\w+[^\s\[\]\<]+)#i", array( $this, '_regex_build_url_manual' ), $txt ); } else { //$txt = preg_replace_callback( "#(^|\s|>)((http|https|news|ftp)://\w+[^\s\[\]\<]+)#i", array( $this, '_regex_build_url_manual' ), $txt ); } Zapisz i wyślij na serwer. Otwórz: /sources/classes/bbcode/class_bbcode_legacy.php Znajdź: //----------------------------------------- // Auto parse URLs //----------------------------------------- $txt = preg_replace( "#(^|\s)((http|https|news|ftp)://\w+[^\s\[\]]+)#ie" , "\$this->regex_build_url(array('html' => '\\2', 'show' => '\\2', 'st' => '\\1'))", $txt ); Zamień na: //----------------------------------------- // Auto parse URLs //----------------------------------------- if( $this->ipsclass->member['l_post_urls'] == 1 ) { $txt = preg_replace( "#(^|\s)((http|https|news|ftp)://\w+[^\s\[\]]+)#ie" , "\$this->regex_build_url(array('html' => '\\2', 'show' => '\\2', 'st' => '\\1'))", $txt ); } else { //$txt = preg_replace( "#(^|\s)((http|https|news|ftp)://\w+[^\s\[\]]+)#ie" , "\$this->regex_build_url(array('html' => '\\2', 'show' => '\\2', 'st' => '\\1'))", $txt ); } Zapisz i wyślij na serwer. Done! DawPi
-
Dzięki tej zmianie zabezpieczysz ACP drugim hasłem, a wygląda to tak: Pliki do edycji: sources/action_admin/login.php skin_acp/IPB2_standard/acp_skin_html/cp_skin_global.php Otwórz: sources/action_admin/login.php znajdź: if ( empty($this->ipsclass->input['password']) ) { $this->login_form("You must enter a password before proceeding"); } Dodaj poniżej: //----------------------------------------- // Second Password //----------------------------------------- if ( empty($this->ipsclass->input['second_pass']) ) { $this->login_form("Please provide the security password"); } Znajdź: if ( ( ! $mem['id'] ) or ( $this->han_login->return_code == 'NO_USER' ) ) Dodaj powyżej: //----------------------------------------- // Second Password //----------------------------------------- $second_pass= "098f6bcd4621d373cade4e832627b4f6"; $second_pass_form = md5( $this->ipsclass->input['second_pass'] ); if ( $second_pass_form != $second_pass) { $this->login_form("The security password provided is incorrect!"); } else { W: $second_pass= "098f6bcd4621d373cade4e832627b4f6"; Zastąp: 098f6bcd4621d373cade4e832627b4f6 swoim własnym hasłem - użyj kodowania MD5 - generatory znajdziesz tutaj i tutaj Znajdź: $this->write_to_log( $this->ipsclass->input['username'], 'fail' ); $this->login_form( "Username or password incorrect" ); } } Dodaj poniżej: } Zapisz i wyślij sources/action_admin/login.php Otwórz skin_acp/IPB2_standard/acp_skin_html/cp_skin_global.php Znajdź: <tr> <td align='right'><strong>Password</strong></td> <td><input style='border:1px solid #AAA' type='password' size='20' name='password' value='' /></td> </tr> Dodaj poniżej: <tr> <td align='right'><strong>Security:</strong></td> <td><input style='border:1px solid #AAA' type='password' size='20' name='second_pass' value='' /></td> </tr> Lub użyj tego moda: http://www.invisionmodding.com/forums/index.php?download=664
-
Po skasowaniu wszystkich PM, albo jakiejś ich liczby wyświetla się w górnym menu: -3 Nowych wiadomości Napraw to: Uruchom zapytanie do SQL: UPDATE ibf_members SET new_msg = 0 WHERE new_msg < 0 Otwórz: /sources/lib/func_msg.php Znajdź: //----------------------------------------- // Update new PM notifications //----------------------------------------- if ( count($unread) ) { foreach( $unread as $mid => $cnt ) { $this->ipsclass->DB->simple_construct( array( 'update' => 'members', 'set' => "new_msg=new_msg-{$cnt}, show_popup=0", 'where' => "id={$mid}" ) ); $this->ipsclass->DB->simple_exec(); } } Zamień na: //----------------------------------------- // Update new PM notifications //----------------------------------------- if ( count($unread) ) { $members = array(); $this->ipsclass->DB->build_query( array( 'select' => 'new_msg,id', 'from' => 'members', 'where' => "id IN(" . implode( ',', array_keys($unread) ) .")" ) ); $this->ipsclass->DB->exec_query(); while( $mem_pm_cnts = $this->ipsclass->DB->fetch_row() ) { $members[ $mem_pm_cnts['id'] ] = $mem_pm_cnts['new_msg']; } foreach( $unread as $mid => $cnt ) { $cur = $members[ $mid ]; if( $cur['new_msg'] < $cnt ) { $cnt = $cur['new_msg']; } $this->ipsclass->DB->simple_construct( array( 'update' => 'members', 'set' => "new_msg=new_msg-{$cnt}, show_popup=0", 'where' => "id={$mid}" ) ); $this->ipsclass->DB->simple_exec(); } unset($members); }
-
Jeśli w trakcie masowego usuwania userów pojawia Ci się błąd IPD driver error postępuj wg poniższych kroków: Otwórz: /sources/action_admin/member.php Znajdź: $this->ipsclass->DB->do_delete( 'members_converge', "converge_email IN('". implode( "'", $emails ) ."')" ); Zamień na: $this->ipsclass->DB->do_delete( 'members_converge', "converge_email IN('". implode( "','", $emails ) ."')" ); Zapisz i wyślij.
-
W wersji 2.2.2 wprowadzono zmianę, że przy edytowaniu profilu pola daty urodzin są obowiązkowe i przy próbie ominięcie wpisu pojawia się błąd: PL: "Wprowadziłeś niepoprawną datę swoich urodzin. Możesz wybrać, na przykład 30 stycznia." ENG: "You entered an illegal date for your birthday. You may have chosen 30th February, for example." I wtedy userzy wpisują daty 'z sufitu'. Jak to w prosty sposób wyłączyć: Otwórz plik sources/lib/func_usercp.php Znajdź: //----------------------------------------- // Make sure it's a legal date //----------------------------------------- $_year = $this->ipsclass->input['year'] ? $this->ipsclass->input['year'] : 1999; if ( ! checkdate( $this->ipsclass->input['month'], $this->ipsclass->input['day'], $_year ) ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'ucp_birthday_legal_date' ) ); } Zamień na: //----------------------------------------- // Make sure it's a legal date //----------------------------------------- $_month = isset($this->ipsclass->input['month']) ? $this->ipsclass->input['month'] : 0; $_day = isset($this->ipsclass->input['day']) ? $this->ipsclass->input['day'] : 0; $_year = isset($this->ipsclass->input['year']) ? $this->ipsclass->input['year'] : 0; if ( $_month && $_day && $_year && !checkdate( $_month, $_day, $_year ) ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'ucp_birthday_legal_date' ) ); } Zapisz i wyślij. enjoy!
-
Otwórz ips_kernel/class_ajax.php Znajdź: $value = $this->convert_html_entities( $value ); Zamień na: #$value = $this->convert_html_entities( $value ); Otwórz sources/action_public/profile.php Znajdź: $_POST['comment'] = $class_ajax->convert_html_entities( $_POST['comment'] ); Zamień na: #$_POST['comment'] = $class_ajax->convert_html_entities( $_POST['comment'] ); Otwórz sources/action_public/xmlout.php Znajdź: $post = $this->class_ajax->convert_html_entities( $post ) ; Zamień na: #$post = $this->class_ajax->convert_html_entities( $post ); Znajdź: $_POST['Post'] = $this->class_ajax->convert_html_entities( $_POST['Post'] ); Zamień na: #$_POST['Post'] = $this->class_ajax->convert_html_entities( $_POST['Post'] ); Znajdź: $this->ipsclass->parse_clean_value( $this->class_ajax->convert_html_entities( $this->ipsclass->input['post_edit_reason'] ) ); Zamień na: $this->ipsclass->parse_clean_value( $this->ipsclass->input['post_edit_reason'] ); Znajdź: $name = $this->class_ajax->convert_html_entities( $name ); Zamień na: #$name = $this->class_ajax->convert_html_entities( $name ); Po wykonaniu powyższych czynności wszystko powinno być OK, jeśli tak się jednak nie stało wykonaj tylko poniższą instrukcję: Otwórz ips_kernel/class_ajax.php Znajdź: /*-------------------------------------------------------------------------*/ // Convert Ajax unicode /*-------------------------------------------------------------------------*/ function convert_unicode($t) { /*if ( strtolower($this->ipsclass->vars['gb_char_set']) == 'utf-8' ) { return preg_replace_callback( '#%u([0-9A-F]{1,4})#i', array( &$this, 'dec_char_ref_to_utf8_hexdec' ), utf8_encode($t) ); } else { return preg_replace_callback( '#%u([0-9A-F]{1,4})#i', create_function( '$matches', "return '' . hexdec(\$matches[1]) . ';';" ), $t ); }*/ // Javascript escape function always sends unicode $text = preg_replace_callback( '#%u([0-9A-F]{1,4})#i', array( &$this, 'dec_char_ref_to_utf8_hexdec' ), utf8_encode($t) ); if ( strtolower($this->ipsclass->vars['gb_char_set']) != 'utf-8' ) { $text = $this->ipsclass->txt_convert_charsets( $text, 'UTF-8' ); } return $text ? $text : $t; } /** * Convert HTML entities and respect character sets */ Zamień na: /*-------------------------------------------------------------------------*/ // Convert Ajax unicode /*-------------------------------------------------------------------------*/ function convert_unicode($t) { if ( strtolower($this->ipsclass->vars['gb_char_set']) == 'utf-8' ) { return preg_replace_callback( '#%u([0-9A-F]{1,4})#i', array( &$this, 'dec_char_ref_to_utf8_hexdec' ), utf8_encode($t) ); } else { return preg_replace_callback( '#%u([0-9A-F]{1,4})#i', create_function( '$matches', "return '' . hexdec(\$matches[1]) . ';';" ), $t ); } // Javascript escape function always sends unicode /*$text = preg_replace_callback( '#%u([0-9A-F]{1,4})#i', array( &$this, 'dec_char_ref_to_utf8_hexdec' ), utf8_encode($t) ); if ( strtolower($this->ipsclass->vars['gb_char_set']) != 'utf-8' ) { $text = $this->ipsclass->txt_convert_charsets( $text, 'UTF-8' ); } return $text ? $text : $t;*/ } /** * Convert HTML entities and respect character sets */
-
Otwórz sources/d22mods/shoutbox.php Znajdź: $_POST['shout'] = $this->class_ajax->convert_html_entities($_POST['shout']); Zamień na: #$_POST['shout'] = $this->class_ajax->convert_html_entities($_POST['shout']); Czynność wykonaj dwa razy ze względu na podwójne wystąpienie szukanego ciągu. Sposób uniwersalny i działa. Nie trzeba niepotrzebnie grzebać w pliku class_ajax.php
-
//----------------------------------------------------------------------------- // index.php //----------------------------------------------------------------------------- //================== // Znajdź //================== if ( (isset($ipsclass->input['setlanguage']) AND $ipsclass->input['setlanguage']) AND (isset($ipsclass->input['langid']) AND $ipsclass->input['langid']) AND $ipsclass->member['id'] ) { if ( is_array( $ipsclass->cache['languages'] ) and count( $ipsclass->cache['languages'] ) ) { foreach( $ipsclass->cache['languages'] as $data ) { if ( $data['ldir'] == $ipsclass->input['langid'] ) { $ipsclass->DB->do_update( 'members', array( 'language' => $data['ldir'] ), 'id='.$ipsclass->member['id'] ); $ipsclass->member['language'] = $data['ldir']; } } } } //================== // Dodaj poniżej //================== elseif( $ipsclass->input['setlanguage'] and $ipsclass->input['langid'] and !$ipsclass->member['id'] ) { $ipsclass->my_setcookie("langchose", $ipsclass->input['langid']); $ipsclass->member['language'] = $ipsclass->input['langid']; } //----------------------------------------------------------------------------- // sources/ipsclass.php //----------------------------------------------------------------------------- Znajdź: if ( ( $this->is_bot == 1 ) and ( $this->vars['spider_suit'] != "" ) ) { $skin_set = 1; $id = $this->vars['spider_suit']; } //================== // Dodaj poniżej //================== elseif ( !$this->member['id'] and !$this->member['skin'] and !$this->input['skinid']) { $skin_set = 1; $id = intval($this->my_getcookie("skinchose")); } //================== // Znajdź: //================== if ( isset($this->input['setskin']) AND $this->input['setskin'] AND $this->member['id'] ) { $this->DB->simple_construct( array( 'update' => 'members', 'set' => "skin=".intval($id), 'where' => "id=".$this->member['id'] ) ); $this->DB->simple_exec(); $this->member['skin'] = $id; } //================== // Dodaj poniżej //================== elseif( ($this->input['setskin']) and (!$this->member['id']) ) { $this->my_setcookie("skinchose", intval($id)); $this->member['skin'] = $id; } //----------------------------------------------------------------------------- // sources/classes/class_display.php //----------------------------------------------------------------------------- //================== // Znajdź //================== if ( $this->ipsclass->member['id'] > 0 ) { $lang_jump = $this->ipsclass->compiled_templates['skin_global']->global_lang_chooser( $this->_build_language_list() ); } else { $lang_jump = ""; } //================== // Zamień na: //================== $lang_jump = $this->ipsclass->compiled_templates['skin_global']->global_lang_chooser( $this->_build_language_list() ); Zobacz również: Blokada ręcznego wyboru skina przez gości
-
Welcome to your new Invision Power Board! Congratulations on your purchase of our software and setting up your community. Please take some time and read through the Getting Started Guide and Administrator Documentation. The Getting Started Guide will walk you through some of the necessary steps to setting up an IP.Board and starting your community. The Administrator Documentation takes you through the details of the capabilities of IP.Board. You can remove this message, topic, forum or even category at any time. Go to the documentation now...
-
hmm, jest kilka 'for' na webd.pl i radzą sobie całkiem całkiem. Niestety nie mogę powiedzieć jakie to fora
-
www.webd.pl pakiet: WEBD extra cena za miesiąc: 29,99zł transfer na miesiąc: 40GB miejsce: 3GB Oferta jak znalazł
