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

DawPi

Manager
  • Postów

    77 485
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    476

Treść opublikowana przez DawPi

  1. Błąd powoduje usuwanie nawet dobrych załączników po użyciu narzędzia od usuwania 'osamotnionych' załączników, czyli nie przypisanych do żadnej wypowiedzi na forum. By to naprawić postępuj wg poniższej instrukcji. Otwórz plik: sources/action_admin/rebuild.php Znajdź: ( ok. linii 1743 ) $dh = opendir( $this->ipsclass->vars['upload_dir'] ); while ( false !== ( $file = readdir( $dh ) ) ) { Dodaj poniżej: if( $file == '.' OR $file == '..' ) { continue; } Znajdź: ( ok. linii 1755 ) $ndh = opendir( $fullfile ); while( false !== ( $nfile = readdir( $ndh ) ) ) { if ( strstr( $nfile, 'post-' ) ) { Dodaj poniżej: if( $nfile == '.' OR $nfile == '..' ) { continue; } Zapisz i wyślij.
  2. Błąd importu Pro Skina -> bez zmian HTML. By naprawić błąd usuń skin, a następnie: Otwórz plik: ips_kernel/class_xml.php Znajdź: ( ok. linii 193 ) var $lite_parser = 0; Zamień na: var $lite_parser = 1; Zapisz i wyślij. Następnie spróbuj ponownie importować skin. Powinno się udać
  3. DawPi

    Spolszczenie ACP 2.3.5

    No to może ktoś mi wyśle PM z większą ilością informacji? Mogę o to prosić ?
  4. Witam, od kilku dni przygotowuję portal, jest on jeszcze niedostępny, ale chciałbym ostro zabrać się do rozbudowy społeczności skupionej wokół IP.Board. Toteż by to osiągnąć potrzebuję rozbudować forum. Pierwsze kroki już uczyniłem, dodałem nowy dział: Łatki, aktualizacje, patche Widoczny w dziale poświęconym wersji IP.Board 2.3.x. Będę tam umieszczał wszystkie ważne aktualizacje skryptu, łatki, dodawał w miarę możliwości tłumaczenie oraz manual zmian W tym miejscu chciałbym się zapytać jakie działy jeszcze można dodać, co zmienić, co usunąć, o czym chcielibyście się dowiedzieć etc. To tyle odnośnie forum, a teraz ważniejsza sprawa: portal o IP.Board Jak już wspomniałem jestem w trakcie przygotowania portalu o IP.Board, który będzie dostępny pod tym adresem: http://invisionize.pl To jedna z dwóch domen jakie mam do zagospodarowania, druga to http://invisionpower.pl która na razie kieruje na moją stronę http://ipslink.pl, ale nie o tym chciałem mówić Otóż, będzie to portal typowo informacyjny, bardzo dużo informacji będę wyciągał z forum automatycznie, dodałem trochę własnych informacji, ale chciałbym niejako zintegrować portal z tym forum. Ktoś może pomyśleć dlaczego nie z InvisionBoard.pl? Otóż dlatego, że tak lepiej jest mi nim zarządzać. Msb oraz ja od dłuższego czasu współpracujemy, tworzymy spolszczenia i mamy inne plany Dlatego na portalu będą się pojawiać również i informacje z InvisionBoard.pl, o spolszczeniach, ważne tematy itd. Jednak chciałbym skupić uwagę na portalu powiązanym z tym forum. Na ile mi to wyjdzie - przekonamy się. Wiem, że to bardzo dużo pracy i sam sobie rady nie dam Toteż jeśli ktoś jest chętny do współpracy i tworzenia nowego portalu, a de facto rozwijania tego forum to zapraszam do rejestracji i zgłaszania się w tym temacie, proszę napisać kilka zdań o sobie i... wystarczy Wszystkie prośby będą rozpatrywane indywidualnie Nie mam zamiaru podkopywać autorytetu forum InvisionBoard.pl, gdzie ja sam stawiałem pierwsze kroki, dużo mu zawdzięczam, jednak mam i swoje plany, swoje pomysły, które mogą wydawać się dziwne, że porywam się z motyką na słońce itd. Cóż, czas pokaże czy się myliłem czy nie Kończąc już tę dygresję oświadczam: nie mam zamiaru działać na szkodę InvisionBoard.pl, nie zmuszam nikogo do odejścia stamtąd i pozostania tutaj, wręcz przeciwnie! Zachęcam do rejestracji na obu forach! Chciałbym by te dwa fora wiodły prym w Internecie, niejako już teraz tak jest, ale http://IPB.ipslink.pl jeszcze trochę brakuje, dlatego postanowiłem promować go portalem http://InvisionIze.pl Jakie mam plany z tym portalem? Cóż, na początek muszę znaleźć grafika, który wykona logo by móc Wam cokolwiek pokazać Jeśli jest ktoś chętny do wykonania loga to zapraszam, to ma nie być nic specjalnego, tylko prosty napis, komponujący się z całością. Dalej - ten portal praktycznie pobiera informacje z forum, o tym już wspominałem, toteż żywotność portalu zależy od żywotności forum Cóż, zobaczymy jak to wyjdzie w praktyce. Chciałbym teraz zachęcić każdego do REJESTRACJI na forum i czynnego udziału w życiu forum! Czekają na Was naprawdę wyjątkowe niespodzianki, dostępne tylko dla zarejestrowanych. Pozdrawiam i zachęcam do dyskusji w tym temacie nt. forum jak i portalu DawPi
  5. Naprawa błędu forum związanego z emotikonem ''. Przejdź do: ACP > ADMIN > SQL Management > SQL Toolbox >> Run a Query i wykonaj następujące zapytanie: UPDATE ibf_posts SET post=REPLACE(post, 'http://http%3a%2f/', 'http://' ) Pamiętaj by zastąpić ibf_ prefixem Twojej bazy danych. Nie znasz prefixu bazy danych? Otwórz plik: conf_global.php Znajdź: $INFO['sql_tbl_prefix'] = 'PREFIX'; w miejscu PREFIX jest to ,czego szukasz Po tej operacji Twoje pliki przybiorą właściwą formę zawartości, a linki nabiorą 'mocy' Autorem tego naprawdę mini tutoriala jest DawPi. Zabrania się kopiowania, powielania. W szczególności na inne fora bez zgody autora. Tutorial wykonany dla www.IPB.ipslink.pl & www.InvisionIze.pl
  6. IP.Board 2.3.4 Security Enhancements and DST Bug Fix We are releasing a minor security update to address issues recently reported regarding areas of IP.Board 2.3.4. These security issues are rather low priority and the impact is minimal due to other security features in the software. We would like to thank the users and administrators of criticalsecurity.net for their help in identifying the issues and testing the patches. Issue Nesting custom bbcode in an improper fashion can result in the final HTML result of the bbcode being broken, and subsequently unwanted HTML injected into the tag. If used in specific fashions, a person could inject javascript event handlers into the final result. Additionally, we have added an "allowscriptaccess" parameter to flash movies parsed in IPB to prevent flash movies and avatars from having javascript access. These issues are mitigated due to the use of httpOnly cookies in IP.Board which limits the direct impact. Additionally, we have patched a recent bug with the automated DST checking in IPB that has surfaced since the recent DST changeover. Patching Your IP.Board The IP.Board 2.3.4 download in the client area has already been updated with the required changes. If you download IP.Board after the date of this announcement your installation will be up to date. Changed Files Download the zip file below which includes only the changed files for this update. Simply upload and overwrite the old files. http://forums.invisionpower.com/index.php?...st&id=16364 ----------------------------------------------------------------- DODATEK BY DawPi Nie wdając się w tłumaczenie czasem jest tak, że przy 'padzie' bbcode można dostać wynikowo kod HTML co nie zawsze jest dobrym objawem. Dlatego, że ktoś może wstrzyknąć kod javascript w ostateczny wynik/rezultat/zapytanie. Dlatego też dodano parametr allowscriptaccess do plików flash, które są parsowane w IPB w celu weryfikacji źródła i nie dopuszczenia do dostępu poprzez avatary lub owe pliki flash w których można umieścić kod javscript. Ogólnie rzecz biorąc - patch poprawia bezpieczeństwo forum Przy okazji dodano fixa do do mechanizmu sprawdzania DST w IP.Board. Manual zmian: Otwórz plik: jscripts/ipb_global.js Znajdź: var thisoffset = tzo + dst; Zamień na: var thisoffset = tzo - dst; Zapisz i wyślij. Otwórz plik: sources/ipsclass.php $html = preg_replace( "/javascript/i" , "javascript", $html ); $html = preg_replace( "/alert/i" , "alert" , $html ); Dodaj poniżej: $html = preg_replace( "/behavior/i" , "behavior" , $html ); $html = preg_replace( "/e((\/\*.*?\*\/)*)x((\/\*.*?\*\/)*)p((\/\*.*?\*\/)*)r((\/\*.*?\*\/)*)e((\/\*.*?\*\/)*)s((\/\*.*?\*\/)*)s((\/\*.*?\*\/)*)i((\/\*.*?\*\/)*)o((\/\*.*?\*\/)*)n/i" , "exp​ression" , $html ); $html = preg_replace( "/e((\\\|\)*)x((\\\|\)*)p((\\\|\)*)r((\\\|\)*)e((\\\|\)*)s((\\\|\)*)s((\\\|\)*)i((\\\|\)*)o((\\\|\)*)n/i" , "exp​ression" , $html ); $html = preg_replace( "/m((\\\|\)*)o((\\\|\)*)z((\\\|\)*)\-((\\\|\)*)b((\\\|\)*)i((\\\|\)*)n((\\\|\)*)d((\\\|\)*)i((\\\|\)*)n((\\\|\)*)g/i" , "moz-​binding" , $html ); Znajdź: $html = preg_replace( "/onmouseover/i", "onmouseover" , $html ); $html = preg_replace( "/onclick/i" , "onclick" , $html ); $html = preg_replace( "/onload/i" , "onload" , $html ); $html = preg_replace( "/onsubmit/i" , "onsubmit" , $html ); i usuń. Znajdź: $html = preg_replace( "/<body/i" , "<body" , $html ); $html = preg_replace( "/<html/i" , "<html" , $html ); $html = preg_replace( "/document\./i" , "document." , $html ); Dodaj poniżej: $html = preg_replace( "/window\./i" , "window." , $html ); $event_handlers = array( 'mouseover', 'mouseout', 'mouseup', 'mousemove', 'mousedown', 'mouseenter', 'mouseleave', 'mousewheel', 'contextmenu', 'click', 'dblclick', 'load', 'unload', 'submit', 'blur', 'focus', 'resize', 'scroll', 'change', 'reset', 'select', 'selectionchange', 'selectstart', 'start', 'stop', 'keydown', 'keyup', 'keypress', 'abort', 'error', 'dragdrop', 'move', 'moveend', 'movestart', 'activate', 'afterprint', 'afterupdate', 'beforeactivate', 'beforecopy', 'beforecut', 'beforedeactivate', 'beforeeditfocus', 'beforepaste', 'beforeprint', 'beforeunload', 'begin', 'bounce', 'cellchange', 'controlselect', 'copy', 'cut', 'paste', 'dataavailable', 'datasetchanged', 'datasetcomplete', 'deactivate', 'drag', 'dragend', 'dragleave', 'dragenter', 'dragover', 'drop', 'end', 'errorupdate', 'filterchange', 'finish', 'focusin', 'focusout', 'help', 'layoutcomplete', 'losecapture', 'mediacomplete', 'mediaerror', 'outofsync', 'pause', 'propertychange', 'progress', 'readystatechange', 'repeat', 'resizeend', 'resizestart', 'resume', 'reverse', 'rowsenter', 'rowexit', 'rowdelete', 'rowinserted', 'seek', 'syncrestored', 'timeerror', 'trackchange', 'urlflip', ); $html = preg_replace( "/on(" . implode( '|', $event_handlers ) . ")/i", "on\\1" , $html ); Znajdź: return "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width='{$this_dims[0]}' height='{$this_dims[1]}'> <param name='movie' value='{$member_avatar}'><param name='play' value='true'> <param name='loop' value='true'><param name='quality' value='high'> <param name='wmode' value='transparent'> <embed src='{$member_avatar}' width='{$this_dims[0]}' height='{$this_dims[1]}' play='true' loop='true' quality='high' wmode='transparent'></embed> </object>"; Zamień na: return "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width='{$this_dims[0]}' height='{$this_dims[1]}'> <param name='movie' value='{$member_avatar}'><param name='play' value='true'> <param name='loop' value='true'><param name='quality' value='high'> <param name='allowscriptaccess' value='never'> <param name='wmode' value='transparent'> <embed src='{$member_avatar}' allowscriptaccess='never' width='{$this_dims[0]}' height='{$this_dims[1]}' play='true' loop='true' quality='high' wmode='transparent'></embed> </object>"; Znajdź: <param name='movie' value='{$this->vars['upload_url']}/$member_avatar'><param name='play' value='true'> <param name='loop' value='true'><param name='quality' value='high'> <param name='wmode' value='transparent'> <embed src='{$this->vars['upload_url']}/$member_avatar' width='{$this_dims[0]}' height='{$this_dims[1]}' play='true' loop='true' quality='high' wmode='transparent'></embed> </object>"; Zamień na: return "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width='{$this_dims[0]}' height='{$this_dims[1]}'> <param name='movie' value='{$this->vars['upload_url']}/$member_avatar'><param name='play' value='true'> <param name='loop' value='true'><param name='quality' value='high'> <param name='wmode' value='transparent'> <param name='allowscriptaccess' value='never'> <embed src='{$this->vars['upload_url']}/$member_avatar' allowscriptaccess='never' width='{$this_dims[0]}' height='{$this_dims[1]}' play='true' loop='true' quality='high' wmode='transparent'></embed> </object>"; Znajdź: $member['_has_photo'] = 0; Dodaj poniżej: $member['pp_thumb_photo'] = ''; Znajdź: $member['member_joined'] = $this->compiled_templates[ $skin_file ]->member_joined( $this->get_date( $member['joined'], 'JOINED' ) ); Dodaj powyżej: $member['location'] = $this->txt_wordwrap( $member['location'], 25 ); Zapisz i wyślij. Otwórz plik: sources/classes/bbcode/class_bbcode_core.php Znajdź: while (preg_match_all( "#(\[".$preg_tag."=(?:"|&\#39;|\"|\')?(.+?)(?:"|&\#39;|\"|\')?\])((?R)|.*?)(\[/".$preg_tag."\])#si", $t, $match )) Zamień na: while (preg_match_all( "#(\[".$preg_tag."=(?:\"|\')?(.+?)(?:\"|\')?\])((?R)|.*?)(\[/".$preg_tag."\])#si", $t, $match )) Znajdź: $match[ $_content ][$i] = preg_replace( '#(style)=#is', "$1=", $match[ $_content ][$i] ); $match[ $_option ][$i] = preg_replace( '#(style)=#is', "$1=", $match[ $_option ][$i] ); Zamień na: //$match[ $_content ][$i] = preg_replace( '#(style)=#is', "$1=", $match[ $_content ][$i] ); //$match[ $_option ][$i] = preg_replace( '#(style)=#is', "$1=", $match[ $_option ][$i] ); Znajdź: $tmp = str_replace( '{option}' , $match[ $_option ][$i], $tmp ); $tmp = str_replace( '{content}', $match[ $_content ][$i], $tmp ); Zamień na: $tmp = str_replace( '{option}' , $this->ipsclass->xss_html_clean( $match[ $_option ][$i] ), $tmp ); $tmp = str_replace( '{content}', $this->ipsclass->xss_html_clean( $match[ $_content ][$i] ), $tmp ); Znajdź: //----------------------------------------- // Is the img extension allowed to be posted? //----------------------------------------- Dodaj powyżej: $url = str_replace( '&amp;', '&', $url ); Znajdź: return "<!--Flash $width+$height+$url--><OBJECT CLASSID='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' WIDTH=$width HEIGHT=$height><PARAM NAME=MOVIE VALUE=$url><PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><EMBED SRC=$url WIDTH=$width HEIGHT=$height PLAY=TRUE LOOP=TRUE QUALITY=HIGH></EMBED></OBJECT><!--End Flash-->"; Zamień na: return "<!--Flash $width+$height+$url--><OBJECT CLASSID='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' WIDTH='$width' HEIGHT='$height'><PARAM NAME='MOVIE' VALUE='$url'><PARAM NAME='PLAY' VALUE='TRUE'><PARAM NAME='LOOP' VALUE='TRUE'><PARAM NAME='QUALITY' VALUE='HIGH'><PARAM NAME='allowscriptaccess' VALUE='never'><EMBED AllowScriptAccess='never' SRC='$url' WIDTH='$width' HEIGHT='$height' PLAY='TRUE' LOOP='TRUE' QUALITY='HIGH'></EMBED></OBJECT><!--End Flash-->"; Zapisz i wyślij. Pozdrawiam, DawPi
  7. IP.Board 2.3.4 Security Enhancements We are releasing a minor security update to address issues recently reported regarding areas of IP.Board 2.3.4. These security issues are rather low priority and the impact is minimal due to other security features in the software. Issue Due to Internet Explorer's overly zealous and often ambitious parsing engine, specifically crafted BBCodes can contain javascript. This issue is mitigated due to the use of httpOnly cookies which makes this more of a nuisance than a genuine threat. Patching Your IP.Board The IP.Board 2.3.4 download in the client area has already been updated with the required changes. If you download IP.Board after the date of this announcement your installation will be up to date. Changed Files Download the zip file below which includes only the changed files for this update. Simply upload and overwrite the old files. http://forums.invisionpower.com/index.php?...st&id=16288 Zobacz cały artykuł Manual zmian: Otwórz plik: sources/classes/bbcode/class_bbcode_core.php Znajdź: //----------------------------------------- // Don't let emos in URL.. //----------------------------------------- if ( $this->parse_smilies ) { if ( count( $this->ipsclass->cache['emoticons'] ) > 0 ) { foreach( $this->ipsclass->cache['emoticons'] as $row) { $code = $row['typed']; $code = str_replace( '<', '<', str_replace( '>', '>', $code ) ); if( strpos( $url, $code ) ) { $new = ''; for( $i=0; $i<strlen($code); $i++ ) { //print dechex(ord($code{$i})).'<Br>'; $new .= '%' . dechex(ord($code{$i})); } $url = str_replace( $code, $new, $url ); } } } } $url = htmlspecialchars($url); Znajdź: //----------------------------------------- // Don't let emos in URL.. //----------------------------------------- if ( $this->parse_smilies ) { if ( count( $this->ipsclass->cache['emoticons'] ) > 0 ) { foreach( $this->ipsclass->cache['emoticons'] as $row) { $code = $row['typed']; $code = str_replace( '<', '<', str_replace( '>', '>', $code ) ); if( strpos( $url['html'], $code ) ) { $new = ''; for( $i=0; $i<strlen($code); $i++ ) { //print dechex(ord($code{$i})).'<Br>'; $new .= '%' . dechex(ord($code{$i})); } $url['html'] = str_replace( $code, $new, $url['html'] ); } } } } Znajdź: //----------------------------------------- // clean up the ampersands / brackets //----------------------------------------- Dodaj poniżej: $url['html'] = htmlspecialchars( $url['html'] );
  8. Ważne łatki dla skryptu 2.3.1 Pierwsza poprawka dla for które mają ustawione kodowanie inne niż iso-8859-1 lub utf-8 czyli praktycznie wszystkie polskie fora. Issue 1 (Reported by http://www.turkish-media.com/forum/ ) If you use a character set other than iso-8859-1 or utf-8, it is possible to submit javascript to your user profile fields. The potential damage is mitigated by the use of httpOnly cookies in IP.Board. Please note that IP.Board ships with iso-8859-1 set by default. Therefore, unless you have specifically changed the character set in the Admin CP your installation is not impacted by this issue. Issue 2 (Reported by http://www.criticalsecurity.net/ ) A user is able to upload a non-image file if the file is given an image name in a specific format. The security implications are very low because IP.Board automatically resets the file to a .txt file and treats it as such, however this could result in broken photo or avatar images being displayed, and script files with a .txt extension saved in your uploads directory. Again the potential damage is mitigated by the use of httpOnly cookies in IP.Board thereby disallowing javascript access to cookies. Issue 3 (Reported by http://communityseo.com/forums/ ) If you have subscription packages enabled on your site using the subscriptions manager included with IP.Board which promote a paying user to a new user group, it is possible to recraft a payment form to set the member's ID to a different member. The issue would require that an actual valid payment is made and no unauthorized access could be gained, however a specially crafted form could result in all administrators/moderators of a site being demoted to a subscriber group, for example. The reverse, a user being promoted to admin, is not possible in this issue. Link: {kliknij_mnie} Instrukcja manualna: Manual Patch Instructions 9/11/2007 Patch ips_kernel/class_ajax.php ~line 97 Find ########################################################################## if( $parse_incoming ) ########################################################################## Replace With ########################################################################## if( $parse_incoming OR ( strtolower($this->ipsclass->vars['gb_char_set']) != 'iso-8859-1' && strtolower($this->ipsclass->vars['gb_char_set']) != 'utf-8' ) ) ########################################################################## ips_kernel/class_upload.php ~line 370 Find ########################################################################## if ( in_array( $this->file_extension, $this->image_ext ) ) ########################################################################## Replace With ########################################################################## if ( in_array( $this->real_file_extension, $this->image_ext ) ) ########################################################################## sources/classes/paymentgateways/class_gw_2checkout.php ~line 110 Find ########################################################################## $this->core_add_hidden_field( "quantity" , 1 ); ########################################################################## Add This After ########################################################################## $this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) ); ########################################################################## ~line 233 Find ########################################################################## list( $purchase_package_id, $member_id, $cur_sub_id, ) = explode( 'x', trim($this->ipsclass->input['merchant_order_id']) ); ########################################################################## Add This After ########################################################################## //-------------------------------------- // Does the verification key match? //-------------------------------------- if( $_POST['verification'] != md5( intval($member_id) . $purchase_package_id . $this->ipsclass->vars['sql_pass'] ) ) { $this->error = 'verification_key_mismatch'; return array( 'verified' => FALSE ); } ########################################################################## sources/classes/paymentgateways/class_gw_authorizenet.php ~line 129 Find ########################################################################## $this->core_add_hidden_field( "x_invoice_num" , $fp_time.'-'.$fp_seq.'-'.$items['currency_code'] ); ########################################################################## Add This After ########################################################################## $this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) ); ########################################################################## ~line 164 Find ########################################################################## $this->core_add_hidden_field( "x_invoice_num" , $fp_time.'-'.$fp_seq.'-'.$items['currency_code'] ); ########################################################################## Add This After ########################################################################## $this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) ); ########################################################################## ~line 273 Find ########################################################################## return array( 'verified' => FALSE ); } ########################################################################## Add This After ########################################################################## //-------------------------------------- // Does the verification key match? //-------------------------------------- if( $_POST['verification'] != md5( intval($member_id) . $purchase_package_id . $this->ipsclass->vars['sql_pass'] ) ) { $this->error = 'verification_key_mismatch'; return array( 'verified' => FALSE ); } ########################################################################## sources/classes/paymentgateways/class_gw_nochex.php ~line 113 Find ########################################################################## $this->core_add_hidden_field( "returnurl" , GW_URL_PAYDONE ); ########################################################################## Add This After ########################################################################## $this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) ); ########################################################################## ~line 132 Find ########################################################################## $this->core_add_hidden_field( "returnurl" , GW_URL_PAYDONE ); ########################################################################## Add This After ########################################################################## $this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) ); ########################################################################## ~line 256 Find ########################################################################## list( $purchase_package_id, $member_id, $cur_sub_id, ) = explode( 'x', trim($_POST['order_id']) ); ########################################################################## Add This After ########################################################################## //-------------------------------------- // Does the verification key match? //-------------------------------------- if( $_POST['verification'] != md5( intval($member_id) . $purchase_package_id . $this->ipsclass->vars['sql_pass'] ) ) { $this->error = 'verification_key_mismatch'; return array( 'verified' => FALSE ); } ########################################################################## sources/classes/paymentgateways/class_gw_paypal.php ~line 100 Find ########################################################################## $this->core_add_hidden_field( "cancel_return", GW_URL_PAYCANCEL ); ########################################################################## Add This After ########################################################################## $this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) ); ########################################################################## ~line 133 Find ########################################################################## $this->core_add_hidden_field( "cancel_return", GW_URL_PAYCANCEL ); ########################################################################## Add This After ########################################################################## $this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) ); ########################################################################## ~line 157 Find ########################################################################## $this->core_add_hidden_field( "cancel_return", GW_URL_PAYCANCEL ); ########################################################################## Add This After ########################################################################## $this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) ); ########################################################################## ~line 182 Find ########################################################################## $this->core_add_hidden_field( "cancel_return", GW_URL_PAYCANCEL ); ########################################################################## Add This After ########################################################################## $this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) ); ########################################################################## ~line 317 Find ########################################################################## list( $cur_sub_id, ) = explode( 'x', trim($_POST['invoice']) ); ########################################################################## Add This After ########################################################################## //-------------------------------------- // Does the verification key match? //-------------------------------------- if( $_POST['verification'] != md5( intval($_POST['custom']) . $_POST['item_number'] . $this->ipsclass->vars['sql_pass'] ) ) { $this->error = 'verification_key_mismatch'; return array( 'verified' => FALSE ); } ########################################################################## sources/classes/paymentgateways/class_gw_safshop.php ~line 115 Find ########################################################################## $this->core_add_hidden_field( "type" , "safshop" ); ########################################################################## Add This After ########################################################################## $this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) ); ########################################################################## ~line 214 Find ########################################################################## list( $purchase_package_id, $member_id, $cur_sub_id, ) = explode( 'x', trim($_POST['ordernumber']) ); ########################################################################## Add This After ########################################################################## //-------------------------------------- // Does the verification key match? //-------------------------------------- if( $_POST['verification'] != md5( intval($member_id) . $purchase_package_id . $this->ipsclass->vars['sql_pass'] ) ) { $this->error = 'verification_key_mismatch'; return array( 'verified' => FALSE ); } ##########################################################################
  9. Witam, zaprezentuję jak w prosty sposób dodać button youtube obok tych: By osiągnąć taki efekt: Tutorial będzie rozwinięciem tego artykułu: http://ipb.ipslink.pl/index.php?showtopic=35 By osiągnąć efekt przedstawiony wcześniej, postępuj wg poniższej instrukcji. Wyślij na serwer FTP do folderu: skin_images/(folder_ze_skinem)/folder_editor_images/ tę grafikę: Pamiętaj by miała nazwę: rte-code-youtube.png Przejdź do: ACP > LOOK & FEEL > ( wybór skina ) > Edit Template HTML > Post / PM Editor >> ips_editor Znajdź: <td><div class="rte-normal" id="{$editor_id}_cmd_ipb_code"><img src="{$images_path}rte-code-button.png" alt="{$this->ipsclass->lang['js_rte_lite_code']}" title="{$this->ipsclass->lang['js_rte_lite_code']}"></div></td> Dodaj poniżej: <td><div class="rte-normal" id="{$editor_id}_cmd_ipb_ytube"><img src="{$images_path}rte-code-youtube.png" alt="Odtwarzaj filmy z YouTube" title="Filmy z YouTube"></div></td> Zapisz. Otwórz plik: jscripts/ips_text_editor.js ( zalecam skorzystanie z nieskompresowanej wersji dostępnej tutaj: board/Development/uncompressed_javascript/jscripts/ips_text_editor.js - czyli w paczce ściągniętej z panelu klienta IPS ) Znajdź: ( wstawiłem spację w tag code by prawidłowo parsować ten tutorial ) /** * STD: * IPB code override */ this.ipb_code = function() { this.wrap_tags_lite( '[code]', '[/ code]', 0) }; Dodaj poniżej: /** * STD: * IPB youtube override */ this.ipb_ytube = function() { this.wrap_tags_lite( '[yt]', '[/yt]', 0) }; Zapisz i wyślij. Przejdź do: ACP > TOOLS & SETTINGS >> Maintenance > Cache Control >> Update all caches... Zrobione ! Info końcowe: W analogiczny sposób można dodawać inne buttony. Zmiany sprowadzają się jedynie do zmian nazw pliku graficznego i fragmentów w kodzie, bardzo łatwych do lokalizacji ( tutaj: ytube ). Autorem tutoriala jest DawPi. Zabrania się kopiowania, powielania. W szczególności na inne fora bez zgody autora. Tutorial wykonany dla www.IPB.ipslink.pl
  10. DawPi

    losowe logo

    Hm, ja do tego używałem tego moda: (OV23) Banner Upload Manager v1.1 i odpowiednio zmieniałem bity skina ( headera ). Jednak najlepiej znaleźć jakiś skrypt rotacji bannerów i podpiąć go pod IP.Board, prostym wyprowadzeniem zmiennej do bitu skina.. O, znalazłem gotowego moda IPB Logo Rotator http://mods.invisionize.com/db/index.php?f=7000 Z tego, co sobie przypominam to jest bardzo fajny
  11. DawPi

    Spolszczenie ACP 2.3.5

    Tak, a gdzie i jakiego autorstwa ?
  12. DawPi

    about me

    No tak.. Anyway.. Rozwiązane
  13. Witam, na początek małe wyjaśnienie - pomysł na ten tutorial podsunął mi użytkownik @bizon11 - napisał on ten tutorial, jednak sposób wykonania dyskwalifikował go od dopuszczenia w tym dziale. Pomysł dobry, ale wykonanie nie. Kiedyś wykonywałem tę zmianę dla klienta, jednak nawet zapomniałem o tym Zatem do dzieła. Jeśli chcesz osiągnąć taki efekt na swoim forum postępuj wg poniższej instrukcji. Przejdź do: ACP > LOOK & FEEL > ( wybór skina ) > Edit Template HTML > Moderator Function >> move_checked_form_start Znajdź: <td class="formsubtitle" colspan='2' align='center'><b>{$this->ipsclass->lang['leave_link']}</b>
  14. Czy masz włączone logowania logów botów? Mniemam, że nie, ale najlepiej będzie jak przedstawisz tutaj zrzut ekranu ( całego ) ze strony PhpMyAdmina z nazwami tabel i ich rozmiarami by cokolwiek więcej móc powiedzieć
  15. DawPi

    about me

    Zaglądnąłeś choć do wyszukiwarki: http://ipb.ipslink.pl/Spolszczenie-and39Ab...ofilu-t515.html
  16. Witam, od nowej wersji IP.Board tj. 2.3.5 w profilu każdego użytkownika pojawiła się nowa zakładka 'About Me'. Jednak spolszczenie jej w plikach językowych nic nie daje. Pokażę prosty sposób na wykonanie spolszczenia tejże. Otwórz plik: sources/components_public/profile/aboutme.conf.php Znajdź: $CONFIG['plugin_name'] = 'About Me'; Zamień na: $CONFIG['plugin_name'] = 'O Mnie'; Autorem tutoriala jest DawPi. Zabrania się kopiowania, powielania. W szczególności na inne fora bez zgody autora. Tutorial wykonany dla www.IPB.ipslink.pl & www.InvisionBoard.pl
  17. W instrukcji jest wyraźnie napisane: Add Below: Modyfikacja jest 'prywatna'. Temat zamykam.
  18. Jeśli z jakiś względów chcesz dodać funkcjonalność polegającą na możliwości sortowania osób na liście online wg adresu IP, postępuj wg poniższej instrukcji. Otwórz plik: sources/action_public/online.php Znajdź: $sort_key = array( 'click', 'name' ); Zamień na: $sort_key = array( 'click', 'name', 'ip' ); Znajdź: $db_key = $sort_key_value == 'click' ? 'running_time' : 'member_name'; Zamień na: //$db_key = $sort_key_value == 'click' ? 'running_time' : 'member_name'; switch ($sort_key_value) { case 'click': $db_key = 'running_time'; break; case 'name': $db_key = 'member_name'; break; case 'ip': $db_key = 'ip_address'; break; default: $db_key = 'running_time'; } Zapisz i wyślij. Otwórz plik: cache/lang_cache/XX/lang_online.php Znajdź: 's_sort_key_name' => "Nazwa użytkownika", Dodaj poniżej: 's_sort_key_ip' => "Adres IP", Zapisz i wyślij. Pozdrawiam, DawPi
  19. By móc umieszczać filmik z odtwarzaczem na forum postępuj wg poniższej instrukcji: Przejdź do: ACP > Management > Custom BBCode >> Add New BBCode Wpisz następujące dane: Custom BBCode Title: DIVX Custom BBCode Description: użyj tagu by wyświetlić filmik na forum Custom BBCode Example: [divx]link do filmiku[/divx] Custom BBCode Tag: divx Use Option in tag? : No Switch option around?: no Custom BBCode Replacement: <object classid="clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616" width="320" height="260" codebase="http://go.divx.com/plugin/DivXBrowserPlugin.cab"> <param name="src" value="{content}"> <param name="autoPlay" value="false"> <embed type="video/divx" src="movie.divx" width="320" height="260" pluginspage="http://go.divx.com/plugin/download/"> </embed> </object> Jak używać: Pisząc posta wstaw słowo do wyszukania za pomocą tagu: [divx]link do filmiku[/divx] Pozdrawiam, DawPi
  20. Jeśli z jakiś względów chcesz zablokować gościom możliwość drukowania tematów, postępuj wg poniższej instrukcji. Otwórz plik: sources/action_public/misc/print_page.php Znajdź: //----------------------------------------- // Error out if we can not find the topic //----------------------------------------- if (!$this->topic['tid']) { $this->ipsclass->Error( array( LEVEL => 1, MSG => 'missing_files') ); } Dodaj poniżej: //----------------------------------------- // Blokada drukowania dla gosci //----------------------------------------- if( ! $this->ipsclass->member['id'] ) { $this->ipsclass->lang['blokujgoscia'] = "Goście nie mogą drukować tematów z tego forum. <a href='".$this->ipsclass->vars['board_url']."/index.php?act=Reg&CODE=00'>Zarejestruj</a> się teraz!"; $this->ipsclass->Error( array( 'MSG' => 'blokujgoscia') ); } Zapisz i wyślij. Autorem tutoriala jest DawPi. Zabrania się kopiowania, powielania. W szczególności na inne fora bez zgody autora. Tutorial wykonany dla www.IPB.ipslink.pl & www.InvisionBoard.pl
  21. Witam, przedstawiam bardzo dobry artykuł napisany przez znakomitego skiniarz IP.Board - Ehrena, napisany w marcu 2006 roku, więc już ponad dwa lata temu Nie tłumaczyłem bo opis wydaje mi się jasny, jeśli jednak coś będzie nie jasne proszę pisać, ja lub ktoś inny na pewno odpowie. ***********START TUTORIALA******************** This tutorial will teach you how to make rounded category headers for the Default IPB skin, as shown below. To begin, log into your Admin Cpanel, select Look & Feel and select Edit Stylesheet (CSS Advanced Mode) from the drop down next to your skin. We firstly need to make our rounded images. Open up any graphics program, such as Adobe Photoshop, and create your left and right category images. Name them cat_left.gif and cat_right.gif. The two round images I will be using can be seen below. I have also included the tile_cat.gif image. IP. Pro Default Skin Save them, and upload to your style_images folder. Now it's time to make the coding for these images. In the stylesheet, add the following code (it MUST go after .borderwrap p in the stylesheet, and preferably above .popmenubutton: /* 3 Image header code by [url="http://www.ipbforumskins.com"]http://www.ipbforumskins.com[/url] */ .left{ padding:0; margin:0; background: url(<#IMG_DIR#>/cat_left.gif) 0 0 no-repeat; height:31px; } .right{ padding:0; margin:0; background: url(<#IMG_DIR#>/cat_right.gif) 100% 0 no-repeat; height:31px; } /* Main title text class */ .main_text{ color: #FFF; font-size: 12px; font-weight: bold; margin: 0px; padding:8px; background:transparent; border:0; } .maintitle_3{ background: url(<#IMG_DIR#>/tile_cat.gif); color: #FFF; font-size: 12px; font-weight: bold; margin: 0px; } .maintitle_3 p.expand, .maintitle_3 p.goto{ float: right; width: auto !important; } .maintitle_3 a:link, .maintitle_3 a:visited{ background: transparent; color: #FFF; text-decoration: none; } .maintitle_3 a:hover, .maintitle_3 a:active{ background: transparent; color: #F1F1F1; } .maintitle_3 p{ margin:0; padding:0; background:transparent; border:0; } .maintitle_3 td { color: #FFF; font-size: 12px; font-weight: bold; } Quick Overview The left and right classes create the div's which store the background images. The no-repeat and the (0 0) and (100% 0) position the images so they are located at the top left and top right of the maintitle. The main_text class adds padding to the above div's, while styling the text to look like the original default text. The other classes are just duplicates of the original .maintitle class, but must be included for the new styles to work correctly. Press Save Stylesheet. You will be redirected to the Skin Management page. Select your skin, but this time choose Edit Template HTML In the menu, select Board Index and then choose CatHeader_Expanded. Replace that code with the following code: FOR IPB 2.1.x <div class="borderwrap" style="border:0;display:{$data['div_fc']}" id="fc_{$data['id']}"> <div class="maintitle_3"> <div class="left"><div class="right"><div class='main_text'> <p class="expand"><a href="java script:togglecategory({$data['id']}, 0);"><{E_PLUS}></a></p> <p><{CAT_IMG}>
  22. Jest tak, że po ustawieniu odpowiedniego preffixu i sufixu dla grupy ( z danym obrazkiem <img src=''> lub kolorem ) to będzie się on wyświetlał identycznie bez względu na wybranego skina. Co nie zawsze wygląda estetycznie. By to zmienić i ustawić ikonę grupy dla określonego skina na forum, postępuj wg poniższej instrukcji. Przykład opisze również metodę na zmianę obrazka. Minimalna znajomość CSSa wskazana Przejdź do: ACP > Management > Manage User Groups > ( wybór grupy ) >> Edit Group W opcji Group Icon Image wstaw kod: style_images/<#IMG_DIR#>/folder_team_icons/{image} Spowoduje to ładowanie ikon grup z określonego folderu skina ( <#IMG_DIR#> ) o danej nazwie ( {image} ) - pamiętaj by dana grafika miała taką samą nazwę, wyglądem może się różnić, ale nie nazwą. Grafiki dla grup wg skina zrobione, przejdźmy do zmiany prefixów. Poniżej poprzedniej opcji masz dwa pola Online List Format [Prefix] oraz Online List Format [suffix]. Uzupełnij je wg schematu: Online List Format [Prefix] - <span style='grupaadmina'> Online List Format [suffix] - </span> Następnie należy edytować CSSa każdego skina wg tego samego schematu, o którym poniżej. Przejdź do: ACP > Look & Feel > ( wybór skina ) >> Edit Stylesheet (CSS Advanced Mode) Dodaj na samym dole: <!--Custom Prefix For Group by DawPi - www.ipslink.pl--> .grupaadmina { font-weight:bold; color:blue; .grupazbanowanych, .uzytkownika, .gosc, .oczekujacy { font-weight:normal; color:black; } <!--Custom Prefix For Group by DawPi - www.ipslink.pl--> Edycję powtarzamy dla każdej grupy i dla każdego skina ( można zmieniać kod CSSa, ważne by zachować nazewnictwo ). Jak widać zastosowałem tutaj zmienione prefixy dla grupy admina i takie same dla pozostałych grup. Jeśli jednak chcesz zmienić każdą grupę nic nie stoi na przeszkodzie. Jak wspomniałem, znajomość CSSa wskazana. Jeśli byłyby jakieś problemy proszę śmiało pisać. Autorem tutoriala jest DawPi. Zabrania się kopiowania, powielania. W szczególności na inne fora bez zgody autora. Tutorial wykonany dla www.IPB.ipslink.pl
  23. Jeśli z jakiś względów chcesz usunąć limit na ilość grafik w pojedynczym poście, np. masz forum graficzne z dużą ilością screenów itd., postępuj wg poniższej instrukcji. Otwórz plik: sources/classes/bbcode/class_bbcode_core.php Znajdź: if ( $this->ipsclass->vars['max_images'] ) { if ($this->image_count > $this->ipsclass->vars['max_images']) { $this->error = 'too_many_img'; return $default; } } Zamień na: /* if ( $this->ipsclass->vars['max_images'] ) { if ($this->image_count > $this->ipsclass->vars['max_images']) { $this->error = 'too_many_img'; return $default; } } */ Zapisz i wyślij. Pozdrawiam, DawPi
  24. Jeśli z jakiś względów chcesz by na stronie głównej w statystykach w sekcji Dzisiaj urodziny obchodzą loginy użytkowników były wyświetlane na kolorowo ( odpowiednio do użytych kolorów w ACP ), postępuj wg poniższej instrukcji. Otwórz plik: sources/lib/func_boardstats.php Znajdź: $birthstring .= "<a href='{$this->ipsclass->base_url}showuser={$user['id']}'>{$user['members_display_name']}</a>"; Zamień na: $brthuser = $this->ipsclass->cache['group_cache'][ $user['mgroup'] ]['prefix'].$user['members_display_name'].$this->ipsclass->cache['group_cache'][ $user['mgroup'] ]['suffix']; $birthstring .= "<a href='{$this->ipsclass->base_url}showuser={$user['id']}'>{$brthuser}</a>"; Zapisz i wyślij. Efekt: Pozdrawiam, DawPi
  25. Jeśli z jakiś powodów chcesz pokazywać również nazwę gości na forum ( z prefixem ustalanym w ACP ), a nie tylko ich ilość, postępuj wg poniższej instrukcji. Otwórz plik: sources/lib/func_boardstats.php Znajdź: ( dwa razy ! ) $active['GUESTS']++; Dodaj poniżej: $active['NAMES'] .= "{$this->ipsclass->lang['guest']}{$this->sep_char} \n"; Zapisz i wyślij. Otwórz plik: cache/lang_cache/XX/lang_boards.php Znajdź: $lang = array ( Dodaj poniżej: 'guest' => "Gość", Zapisz i wyślij. Efekt: Pozdrawiam, DawPi
×
×
  • 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ę.