Jump to content

DawPi

Manager
  • Posts

    76,256
  • Joined

  • Last visited

  • Days Won

    305

Everything posted by DawPi

  1. Otwórz conf_global.php Znajdź $INFO['member_group'] = '3'; Zamień na: $INFO['member_group'] = 'nr_ID_nowej_grupy'; Zapisz i wyślij conf_global.php
  2. Jak w prosty sposób zmienić by strona portalu otwierała się jako strona główna forum, czyli by po wejściu na stronę: www.adrestwojegoforum.pl pojawił się portal, a nie widok forum. Otwórz plik init.php Znajdź: define( 'IPB_MAKE_PORTAL_HOMEPAGE', 0 ); Zamień na: define( 'IPB_MAKE_PORTAL_HOMEPAGE', 1 ); Zapisz i wyślij. Od tej pory adres forum powinien wskazywać na portal.
  3. info: zmiana ta jest całkowicie legalna z licencją IPB. Otwórz sources/action_public/boards.php Znajdź: $cp = " (Powered by Invision Power Board)"; Zamień na: $cp = ""; Zapisz i wyślij.
  4. Czasem może się zdarzyć, że nie chcemy by z danych for ( np. kosz, stare i nieaktualne tematy etc. ) nie były pokazywanie nowe posty po kliknięciu na 'Zobacz nowe posty'. W tym celu chodzimy kolejno: Teraz należy wybrać te fora z których nie chcemy pokazywać nowych wpisów w 'Zobacz nowe posty'. Możemy wybrać więcej niż jedno forum przytrzymując klawisz CTRL i klikając na wybrane fora. Copyright© 2007, DawPi™ All rights reserved.
  5. Witam, poniżej przedstawiam poradnik jak wprowadzić polskie daty na forum. Pliki podlegające edycji: init.php sources/ipsclass.php sources/action_public/profile.php sources/lib/admin_functions.php sources/action_public/calendar.php ******************************************************* 1. Otwórz plik: init.php Znajdź: error_reporting (E_ERROR | E_WARNING | E_PARSE); Wersja dla forum z kodowaniem ISO-8859-2 Dodaj poniżej: setlocale(LC_ALL, 'pl_PL.ISO8859-2'); Wersja dla forum z kodowaniem UTF-8 Dodaj poniżej: setlocale(LC_TIME, 'pl_PL.UTF-8'); Zapisz i wyślij. ******************************************************* 2. Otwórz plik: sources/ipsclass.php Znajdź: $this->today_time = gmdate('d,m,Y', ( time() + $this->offset) ); $this->yesterday_time = gmdate('d,m,Y', ( (time() - 86400) + $this->offset) ); Zamień na: $this->today_time = strftime('%d,%m,%Y', ( time() + $this->offset) ); $this->yesterday_time = strftime('%d,%m,%Y', ( (time() - 86400) + $this->offset) ); Znajdź (trzykrotnie): return gmdate($this->time_options[$method], ($date + $this->offset) ); Zamień na: return strftime($this->time_options[$method], ($date + $this->offset) ); Znajdź: $this_time = gmdate('d,m,Y', ($date + $this->offset) ); Zamień na: $this_time = strftime('%d,%m,%Y', ($date + $this->offset) ); Znajdź: if ( $this_time == $this->today_time ) { return str_replace( '{--}', $this->lang['time_today'], gmdate($this->vars['time_use_relative_format'], ($date + $this->offset) ) ); } else if ( $this_time == $this->yesterday_time ) { return str_replace( '{--}', $this->lang['time_yesterday'], gmdate($this->vars['time_use_relative_format'], ($date + $this->offset) ) ); } Zamień na: if ( $this_time == $this->today_time ) { return str_replace( '{--}', $this->lang['time_today'], strftime($this->vars['time_use_relative_format'], ($date + $this->offset) ) ); } else if ( $this_time == $this->yesterday_time ) { return str_replace( '{--}', $this->lang['time_yesterday'], strftime($this->vars['time_use_relative_format'], ($date + $this->offset) ) ); } Znajdź: return gmdate($method, ($date + $this->offset) ); Zamień na: return strftime($method, ($date + $this->offset) ); Znajdź: function get_time($date, $method='h:i A') Zamień na: function get_time($date, $method='%H:%M') Znajdź: //----------------------------------------- // Time options //----------------------------------------- $this->time_options = array( 'JOINED' => $this->vars['clock_joined'], 'SHORT' => $this->vars['clock_short'], 'LONG' => $this->vars['clock_long'], 'TINY' => isset($this->vars['clock_tiny']) ? $this->vars['clock_tiny'] : 'j M Y - G:i', 'DATE' => isset($this->vars['clock_date']) ? $this->vars['clock_date'] : 'j M Y', ); Zamień na: //----------------------------------------- // Time options //----------------------------------------- $this->time_options = array( 'JOINED' => $this->vars['clock_joined'], 'SHORT' => $this->vars['clock_short'], 'LONG' => $this->vars['clock_long'], 'TINY' => isset($this->vars['clock_tiny']) ? $this->vars['clock_tiny'] : '%A, %d %B %Y - %H:%M', 'DATE' => isset($this->vars['clock_date']) ? $this->vars['clock_date'] : '%A, %d %B %Y', ); Zapisz i wyślij. ******************************************************* 3. Otwórz plik: sources/action_public/profile.php Znajdź: $info['local_time'] = $member['time_offset'] != "" ? gmdate( $this->ipsclass->vars['clock_long'], time() + ($member['time_offset']*3600) + ($this->ipsclass->vars['time_adjust'] * 60) ) : $this->ipsclass->lang['no_info']; Zamień na: $info['local_time'] = $member['time_offset'] != "" ? strftime( $this->ipsclass->vars['clock_long'], time() + ($member['time_offset']*3600) + ($this->ipsclass->vars['time_adjust'] * 60) ) : $this->ipsclass->lang['no_info']; Znajdź: $member['_local_time'] = $member['time_offset'] != "" ? gmdate( $this->ipsclass->vars['clock_long'], time() + ($member['time_offset']*3600) + ($time_adjust * 60) ) : ''; Zamień na: $member['_local_time'] = $member['time_offset'] != "" ? strftime( $this->ipsclass->vars['clock_long'], time() + ($member['time_offset']*3600) + ($time_adjust * 60) ) : ''; Zapisz i wyślij. ******************************************************* 4. Zmiany wyświetlania dat w ACP: Otwórz plik: sources/lib/admin_functions.php Znajdź: [ w funkcji get_date($date="", $method="") ] return gmdate($this->time_options[$method], ($date + $this->time_offset) ); Zamień na: return strftime($this->time_options[$method], ($date + $this->time_offset) ); ******************************************************* 6. Otwórz plik: sources/action_public/calendar.php Znajdź: if ( $event['event_recurring'] == 0 AND $event['event_unix_to'] ) { $type = $this->ipsclass->lang['se_range']; $de = $this->ipsclass->lang['se_ends'].' '.gmdate( $this->ipsclass->vars['clock_joined'], $event['event_unix_to'] ); } else if ( $event['event_recurring'] == 1 ) { $type = $this->ipsclass->lang['se_recur']; $de = $this->ipsclass->lang['se_ends'].' '.gmdate( $this->ipsclass->vars['clock_joined'], $event['event_unix_to'] - $set_offset ); } Zamień na: if ( $event['event_recurring'] == 0 AND $event['event_unix_to'] ) { $type = $this->ipsclass->lang['se_range']; $de = $this->ipsclass->lang['se_ends'].' '.strftime( $this->ipsclass->vars['clock_joined'], $event['event_unix_to'] ); } else if ( $event['event_recurring'] == 1 ) { $type = $this->ipsclass->lang['se_recur']; $de = $this->ipsclass->lang['se_ends'].' '.strftime( $this->ipsclass->vars['clock_joined'], $event['event_unix_to'] - $set_offset ); } ******************************************************* 6. Zmiany w ACP: Aby uzyskać dodatkowe poprawne formatowanie dat przejdź: ACP > TOOLS & SETTINGS > View All General Settings >> Date & Time Formats i ustaw wpisy jak poniżej: Short time format: %A, %d %B %Y - %H:%M Join date time format: %a, %d %b %g Long time format: %a, %d %b %Y - %H:%M Relative time format: {--}, %H:%M ******************************************************* Koniec! Dodałem trochę nowego kodu, który będę systematycznie uzupełniać Wszelkie zauważone błędy/sugestie proszę pisać do mnie na PM. Proszę nie pisać w tym temacie, który ma służyć jako czysta pomoc. Jeśli masz nieopisany problem to proszę napisz w temacie wspomnianym wyżej. Natomiast jeśli chcesz dopisać spolszczenie dat, które nie było opisane pisz śmiało! Pozdrawiam, DawPi
  6. Problem: po wykonaniu konwersji ze skryptu phpBB2 nie widać userów w postach i liście userów. Rozwiązanie: zaloguj się do ACP przejdź do sekcji: ACP > ADMIN > SQL Toolbox >> Run a Query Wykonaj zapytanie do SQL: UPDATE `ibf_members` SET members_display_name=name WHERE members_display_name='';
  7. Jeśli chcesz umieścić wiadomość na forum, widoczną tylko dla userów z zerowym stanem licznika ( lub dowolnie innym, defioniowanym ) postępuj wg poniższej instrukcji: Otwórz: ACP > Look & Feel Tab > (wybór skina) > Edit Template HTML > All Global HTML >> end_nav Przewiń na koniec i wklej: <if="$this->ipsclass->member['id']AND $this->ipsclass->member['posts'] == 0"> <div align="center"> <br /><center><div class='borderwrap'><div class='maintitle'>Potrzebujesz pomocy {$this->ipsclass->member['members_display_name']}?</div> <div class='tablepad'><b>Nasz system wykrył, że nie napisałeś do tej pory żadnego postu, jeśli masz problemy proszę odwiedź nasze centrum pomocy: <a href="{$this->ipsclass->base_url}act=Help"><b>Pomoc</b></a>. <br />Jeśli nadal się nie przedstawiłeś możesz zrobić to teraz: <a href="{$this->ipsclass->base_url}showforum=X">Centrum Powitań</a>.</b></div></div></center><br /> </div> </if> Pamiętaj by zamienić: showforum=X na ID forum gdzie user może się przywitać. Jeśli nie chcesz by to było wyświetlane, po prostu usuń ten fragment. Jeśli chcesz pokazać wiadomość userom z inną liczbą postów po prostu zmień ten fragment: Zrobione. DawPi
  8. Standardowo IP.Board nie wyświetla emotikonów w sygnaturach w formie graficznej. Innymi słowy - nie przetwarza "zamienników" na odpowiednie obrazki. Dla przykładu pisząc: :lol: Oczekujesz emota: By osiągnąć taki efekt na swoim forum, postępuj wg poniższej instrukcji. Otwórz plik: sources/action_public/usercp.php Znajdź: $this->han_editor->remove_emoticons = 1; Zamień na: $this->han_editor->remove_emoticons = 0; Otwórz plik: sources/lib/func_usercp.php Znajdź: $this->class->parser->parse_smilies = 0; Zamień na: $this->class->parser->parse_smilies = 1; Zrobione!.
  9. © = darmowe skiny $ = płatne skiny http://www.aplusstyles.com © $ http://www.creative-networks.org © $ http://www.forum.cursedgfx.com © http://www.depthskins.net $ http://www.extremepixels.net/ipb $ http://www.globexdesigns.com $ http://www.gpf-design.com © http://www.iflimits.com © http://www.infinitystyles.com © $ http://www.invisionfuse.com © http://www.invisionize.com © http://www.invisionmodding.com/forums © http://www.invisionmojo.com © $ http://www.ipbforumskins.com $ http://www.ipbinsider.com $ http://www.ipbshock.com $ http://www.ipbskinworks.com $ http://www.ipbworkshop.com © http://www.jasidog.com © http://www.metalaxe.com © $ http://www.nbsdesignz.com © http://www.skin-invision-skins.abcfr.com © http://www.skinbydragonfly.com $ http://www.skins-invision.invisionpower.fr © http://www.theskinemporium.com $ http://www.theskinnery.com $ http://www.transversestyles.com $ http://www.ipbcustomize.com © $ autor: kewlceo
  10. Jeśli nie chcesz płacić za licencję dość dużej kwoty, a mianowicie: Czyli w przeliczeniu za licencję standardową ok. 400zł, a za profesjonalną ok. 800zł w dodatku na pół roku ( potem istnieje możliwość odnowienia, odpowiednio 25$ i 50$ ) Przeczytaj poniższy miniFAQ i ciesz się z profesjonalnego hostingu i licencji IPB. Co musisz zrobić: # Odwiedź stronę: http://hosting.ipslink.com IPS Inc. oferuje profesjonalny hosting, który na pewno obsłuży Twoje forum oparte na IPB. Nie musisz martwić się o odpowiednie funkcje po stronie serwera, pomoc techniczna jest udzielana bardzo szybko, nad serwerami czuwają wykwalifikowani specjaliści. # Teraz musisz się zdecydować pomiędzy dwoma rodzajami hostingu ( trzeci rodzaj, serwer dedykowany, do tanich nie należy więc nim się nie zajmujemy): # Wybierz opcję odpowiadającą Twoim potrzebom: Website Hosting - zobacz tabelę porównawczą Community Hosting - zobacz tabelę porównawczą Wybór zależy od trzech spraw: miejsce na serwerze transferu miesięcznego zasobności Twojego portfela Teraz informacja na którą czekałeś od początku, dlaczego zakup serwera u IPSu powoduje ograniczenie kosztów? Ponieważ do każdego (!) IPS daje licencję na IPB całkowicie za darmo. info o plikach i licencji: Kupując serwer otrzymujesz licencję na IPB tak długo jak korzystasz z usług IPB. Pliki IPB są zakodowane, toteż nie możesz wprowadzać zmian w plikach. Wszystkie fora wykupione w ten sposób są aktualizowane i nie ma potrzeby wykonywać tego ręcznie. Jeśli interesuje Cię standardowa licencja wykup takową na tej stronie. Dość często ludzie zapominają o takiej możliwości, jest to bardzo dobre rozwiązanie, w jednym miejscu kupujesz serwer i licencję IPB. przykład: chcesz postawić forum klasy, osiedla etc. ( cokolwiek co nie wymaga dużego transferu), wykupujesz serwer za 10$ miesięcznie, płacisz jednorazowo opłatę instalacyjną w wysokości 20$ i już masz wszystko co potrzeba by założyć forum. koszty: serwer: 12 * 10$ = 120$ ~ 324zł instalacja: 20$ ~ 54zł suma: 378zł Za 380zł masz w pełni legalne forum oparte na IPB, bardzo dobry i wydajny serwer zakupione w pakiecie na ROK. Uwagi: w cenie licencji półrocznej masz roczny pakiet serwer + licencja Nie musisz kupować oddzielnie serwera i płacić oddzielnie. Reasumując to rozwiązanie alternatywne łączące w sobie wygodę, bezpieczeństwo, hosting, licencję w jednym miejscu bez potrzeby rozdzielania uruchomienia forum na kilka podmiotów. IPS gwarantuje wysoką jakość świadczonych usług. Zresztą zdążyliśmy się do tego już przyzwyczaić.. Copyright© 2007, DawPi™ All rights reserved. version 1.0.1
  11. Witam, zapewne większość z Was wie, że IPS prowadzi również drugie forum - IPS Beyond swoisty support IPB, userzy pomagają userom. Istotne jest, że by zarejestrować się na forum konieczne jest posiadanie licencji. Normalna sprawa. Natomiast niewielu z Was wie, że w panelu customera można ustawić alternatywne kontakty, powiedzmy drugi admin forum, etc. Interpretacja dowolna. Nawiązując do tej informacji na forum IPS Beyond mogą mieć dostęp do max. 3 alternatywnych kontaktów. Co to oznacza? A mianowicie to, że na jednej licencji z forum mogą korzystać max. 4 osoby. Myślę, że jest to bardzo dobre rozwiązanie. Możecie np. "skrzyknąć" się w kilka osób i mieć dostęp do supportu IPB udzielanego również przez włodarzy z IPSu Pozdrawiam, DawPi
  12. Poniżej znajduje się lista źródeł modyfikacji do Invision Power Board. Kolejność dowolna. http://community.invisionpower.com/files (oficjalne źródło IPS) http://invisionmodding.com/files http://www.devfuse.com/forums http://community.inv...byte.net/files/ http://www.ipbworks....p?app=downloads http://www.modstation.com/files/ http://www.invisionita.it/forum/files http://www.fusiondig...d-products.html http://www.headstand...m/forums/files/ http://forum.sosinvi...p?app=downloads Lista stale aktualizowana. Wszelkie uwagi/zmiany/sugestie proszę pisać do mnie - PW.
  13. Standardowo IP.Board nie wyświetla emotikonów w komentarzach ( w profilu userów ) w formie graficznej. Innymi słowy - nie przetwarza "zamienników" na odpowiednie obrazki. Dla przykładu pisząc: :lol: Oczekujesz emota: By osiągnąć taki efekt na swoim forum, postępuj wg poniższej instrukcji. Otwórz plik sources/action_public/profile.php Znajdź (w funkcji personal_iframe_comments()): if( $row['login_anonymous']{0} == '1' ) { // Member last logged in anonymous if( $this->ipsclass->member['mgroup'] != $this->ipsclass->vars['admin_group'] OR $this->ipsclass->vars['disable_admin_anon'] ) { $row['_last_active'] = $this->ipsclass->lang['private']; } } $row['comment_content'] = $this->ipsclass->txt_wordwrap( $row['comment_content'], '19', ' ' ); Dodaj poniżej: //----------------------------------------- // Parse smilies in comments START //----------------------------------------- $parser = $this->ipsclass->load_class( ROOT_PATH.'sources/handlers/han_parse_bbcode.php', 'parse_bbcode' ); $parser->parse_smilies = 1; $row['comment_content'] = $parser->pre_display_parse( $parser->pre_db_parse( $row['comment_content'] ) ); //----------------------------------------- // Parse smilies in comments END //----------------------------------------- Znajdź (w funkcji personal_build_comments( $member, $new_id=0, $return_msg='' )): if( $row['login_anonymous']{0} == '1' ) { // Member last logged in anonymous if( $this->ipsclass->member['mgroup'] != $this->ipsclass->vars['admin_group'] OR $this->ipsclass->vars['disable_admin_anon'] ) { $row['_last_active'] = $this->ipsclass->lang['private']; } } $row['comment_content'] = $this->ipsclass->txt_wordwrap( $row['comment_content'], '19', ' ' ); Dodaj poniżej: //----------------------------------------- // Parse smilies in comments START //----------------------------------------- $parser = $this->ipsclass->load_class( ROOT_PATH.'sources/handlers/han_parse_bbcode.php', 'parse_bbcode' ); $parser->parse_smilies = 1; $row['comment_content'] = $parser->pre_display_parse( $parser->pre_db_parse( $row['comment_content'] ) ); //----------------------------------------- // Parse smilies in comments END //----------------------------------------- Zapisz i wyślij na serwer. Zrobione!
  14. Modyfikacja zmienia tekst: Grupa: NAZWA_GRUPY w widoku profilu na link prowadzący do danej grupy. By osiągnąć taki efekt na swoim forum, postępuj wg poniższej instrukcji. Otwórz plik: sources/ipsclass.php Znajdź: $member['member_group'] = $this->compiled_templates[ $skin_file ]->member_group( $group_name ); Zamień na: $member['member_group'] = $this->compiled_templates[ $skin_file ]->member_group( $group_name, $member['mgroup'] ); Zapisz i wyślij. Zaloguj się do ACP. Przejdź do: Look & Feel > Skin Manager > Edit Template HTML > Go to the Topic View >> member_group template Kliknij na Edit Data Variables.... Zastąp wszystko tym: $title="", $group="" Następnie zastąp cały kod w bicie tym: {$this->ipsclass->lang['m_group']} <a href="{$this->ipsclass->base_url}act=members&filter={$group}">$title</a> Zapisz.
  15. Otwórz plik: jscripts/ips_ipsclass.js Znajdź: if ( is_moz && ! is_safari ) { HTMLDocument_prototype.__defineGetter__( "cookie", function () { return null; } ); window.addEventListener( 'load', function() { var _a = document.body; var _x = _a.innerHTML; var _y = new RegExp( "HTMLDocument\\.prototype", 'ig' ); if ( _x.match( _y ) ) { _x = _x.replace( _y, 'HTMLDocument_prototype' ); _a.innerHTML = _x; } }, false ); } i USUŃ. Jednakże jak zobaczyłem jak wygląd mój kod w tym pliku to się troszkę, hmm, przeraziłem Należy szukać: ( wg mojego pliku ): if(is_moz&&!is_safari){HTMLDocument_prototype.__defineGetter__("cookie",function(){return null;});window.addEventListener('load',function(){var _a=document.body;var _x=_a.innerHTML;var _y=new RegExp("HTMLDocument\\.prototype",'ig');if(_x.match(_y)){_x=_x.replace(_y,'HTMLDocument_prototype');_a.innerHTML=_x;}},false);} I usunąć Ładny, czytelny kod tego pliku znajdziesz w: /Development/uncompressed/jscripts/
  16. IPS w wersji 2.3 zmienił wygląd ACP dodając nową "stronę startową". Dodając w niej nowe funkcje oraz statystyki. Wygląda to następująco: http://ipslink.pl/pomoc_invision/acp_old_i.png //153 KB By zmienić wygląd na standardowy wygląd, taki jak na pozostałych zakładkach, czyli by wyglądało to w ten sposób: http://ipslink.pl/pomoc_invision/acp_new_i.png //156 KB Postępujesz wg instrukcji: Otwórz plik: skin_acp/IPB2_Standard/acp_css.css Zastąp wszystko: CODE-BOX /* -------------------------------- */ /* Drop shadows /* -------------------------------- */ .shadow-moz { padding:0 6px 6px 0; background: url(images/folder_css_images/dropshadow-alpha.png) no-repeat bottom right; } .shadow-ie { filter: shadow(color:gray,direction:135,strength:3); } /* -------------------------------- */ /* Loading box /* -------------------------------- */ #loading-layer-inner { width:220px; height:28px; padding:18px 10px 10px 10px; text-align:center; color: #000; border: 1px solid; border-color:#ccc #666 #666 #ccc; background-color: #FCF8C7; } /* -------------------------------- */ /* Create semi-transparent layer /* -------------------------------- */ .dragmove-hide-ie { background:#FFF; filter:alpha(opacity=50); height: 250px; width: 250px; } .dragmove-hide-moz { background:transparent; background-image: url('images/folder_css_images/50opacity-white.png'); background-repeat: repeat; height: 250px; width: 250px; } /* -------------------------------- */ /* Used: Alert boxes and stuff (used in JS) /* -------------------------------- */ .alert-box, .alert-box-js, .alert-box-noimg { background-image: url(images/folder_css_images/js_alert.gif); background-repeat: no-repeat; color: #000; border: 1px solid #000; background-color: #FFDC3B; padding: 3px 3px 3px 25px; } .alert-box-js { width: auto; position: absolute; } .alert-box-noimg { background-image: url(images/spacer.gif); background-repeat: no-repeat; } /** * Information box **/ .bad-box { color: #000; border: 1px solid #000; -moz-border-radius: 5px; background-color: #FFCCCC; padding: 6px; text-align:left; } .good-box { color: #000; border: 1px solid #000; -moz-border-radius: 5px; background-color: #d9eac8; padding: 6px; text-align:left; } .ok-box { color: #000; border: 1px solid #000; -moz-border-radius: 5px; background-color: #EBE7B6; padding: 6px; text-align:left; } .warning-box, .information-box, .help-box { color: #000; border: 1px solid #000; -moz-border-radius: 5px; background-color: #FCF8C7; padding: 6px; text-align:left; } .warning-box img, .information-box img, .help-box img { float:left; margin-top: 10px; margin-right: 5px; vertical-align:middle; border: 0px; } .warning-box h2, .warning-box p, .information-box h2, .information-box p, .help-box h2, .help-box p { padding: 0px; margin: 0px; margin-left: 60px; } .warning-box h2, .information-box h2, .help-box h2 { padding-bottom: 4px; font-size: 14px; border-bottom: 1px solid #000; } .warning-box { background-color: #FFCCCC; } .warning-box ul { margin-left: 30px; } .help-box { background-color: #D5EEB6; } /** * Used: Content -> pages & dirs overview * when not a folder, so we show a diff * link underline */ .content-page-links, .content-page-links a:active, .content-page-links a:visited, .content-page-links a:link { text-decoration:none; } .dny-edit-title { border:0px; padding:3px; margin:0px; background: #D1DCEB; color: #3A4F6C; } .input-warn, .input-warn-content { border: 1px solid #C00; } .input-ok, .input-ok-content { border: 1px solid #0C0; } .input-warn-content { padding: 4px; margin: 4px; background-color: #FCC; } .input-ok-content { padding: 4px; margin: 4px; background-color: #CFC; } /* ======================================== */ /* General Styles */ /* ======================================== */ html { overflow-x: auto; /* fixes MSIE scrollbar bug DO NOT REMOVE */ } body, .body-bg { /*background-repeat: repeat-x; background-image: url(images/acp_logo_strip.gif);*/ background-color: #F3F3F3; color: #000; font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Arial, Verdana, "Trebuchet MS"; font-size: 11px; margin: 0px; padding: 0px; text-align: center; /* centers board in MSIE known bug workaround */ } table, tr, td { color: #000; font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Arial, Verdana, "Trebuchet MS"; font-size: 11px; } form { border: 0px solid #000; display: inline; margin: 0px; padding: 0px; } textarea, input, select { border: 1px solid #999999; color: #555; font-size: 11px; padding: 2px } input:focus, select:focus { background: #e9f6fd; border: 1px solid black; } .minisubmit { font-size: 10px; border: 1px solid #999; } .inputtext, .inputtextgreen, .inputtextred, .inputtextmini { font-size: 11px; border: 1px solid #999; } .inputtextmini { font-size:10px; } .inputtextgreen { border: 1px solid #006600; } .inputtextred { border: 1px solid #990000; } .textareaeditor { width:99%; height: 300px; padding:4px; border: 1px solid #999; } .formsubmit { font-size:11px; font-weight: bold; } a:link, a:visited, a:active { background-color: transparent; color: #000; text-decoration: underline; } a:hover { background-color: transparent; color: #3363a1; text-decoration: underline; } .global-copyright { font-size:10px; font-weight:bold; color: #3363A1; padding:15px; text-align:center; } .global-copyright a:link, .global-copyright a:visited, .global-copyright a:active { color: #3363A1; text-decoration: underline; } img.ipd { vertical-align:middle; border:0px; padding:0px; margin:0px; float:none; } img.ipd-alt { vertical-align:middle; border:0px; padding:0px; margin:0px; float:none; padding-bottom:2px } img.calendar { vertical-align:top; border:0px; width:16px; height:16px; } .img-boxed { border: 2px inset #345487; background-color: #E4EAF2; padding: 2px; } .img-boxed-off { border: 1px outset #E4EAF2; background-color: transparent; padding: 3px; } /* ======================================== */ /* PAGINATION */ /* ======================================== */ .pagelink, .pagelinklast, .pagecurrent { background: #F0F5FA; border: 1px solid #072A66; padding: 1px 3px 1px 3px; } .pagelinklast { background: #DFE6EF; } .pagecurrent { background: #FFC9A5; } .pagelink a:active, .pagelink a:visited, .pagelink a:link, .pagelinklast a:active, .pagelinklast a:visited, .pagelinklast a:link, .pagecurrent a:active, .pagecurrent a:visited, .pagecurrent a:link { text-decoration: none; } /* ======================================== */ /* MAIN BLOCKS /* ======================================== */ #leftblock { /*border: 1px solid #555; background-color:#FFF; padding:10px;*/ } #rightblock { padding:10px; border: 1px solid #5D789C; -moz-border-radius: 5px; background-color:#FFF; } #tablewrap { height:100%; } /* ======================================== */ /* OUTER BORDER / DIV /* ======================================== */ .outerdiv { border: 1px solid #5D789C; border-top:1px solid #578DCA; padding: 0px 4px 4px 4px; background-image: url('images/folder_css_images/content_bar_bg.gif'); background-repeat: repeat-x; background-color: #ACBFD9; } .sub-tab-strip { background-image: url( 'images/folder_css_images/main_menu_bg.gif' ); background-repeat: repeat-x; border-bottom: 4px solid #385985; border-left: 1px solid #5D789C; border-right: 1px solid #5D789C; color: #FFF; font-size: 11px; font-weight: bold; padding: 8px 15px 8px 15px; margin:0px; height:14px; } .global-memberbar { vertical-align:middle; color: #FFF; font-size: 11px; padding-left:5px; width:auto; float:right; } .global-memberbar a:active, .global-memberbar a:visited, .global-memberbar a:link { color:#FFF; text-decoration:none; } .global-memberbar a:hover { text-decoration:underline; } .navwrap { vertical-align:middle; color: #FFF; font-size: 11px; padding-left:5px; float:left; } .navwrap a:active, .navwrap a:visited, .navwrap a:link { color:#FFF; font-weight:bold; text-decoration:none; } /* ======================================== */ /* MENU STYLES */ /* ======================================== */ .menuouterwrap { border: 1px solid #5D789C; -moz-border-radius: 5px; background-color: #EFF3F7; margin: 0px 4px 0px 4px; } .menucatwrap { font-size: 12px; font-weight:bold; color: #20476D; margin: 4px; padding-bottom: 4px; border-bottom: 1px solid #C7C7C7; } .menulinkwrap { margin: 2px; padding-bottom: 3px; border-bottom: 1px solid #E3E3E3; } .menulinkwrap a:link, .menulinkwrap a:visited, .menulinkwrap a:active { color: #000; } .menulinkwrap a:hover { color: #E69F06; } .menutext { font-size:10px; } /* ======================================== */ /* TABS /* ======================================== */ .tabwrap-main { height:37px; background-image: url( 'images/folder_css_images/tab_background.gif' ); background-repeat: repeat-x; background-position: left bottom; } .tabon-main, .tabon { border-top:1px solid #3363A1; border-left:1px solid #3363A1; border-right:1px solid #3363A1; background-color:#6696D6; color:#FFFFFF; padding:8px; float:left; width:auto; background-image: url('images/folder_css_images/tab-on-bg.gif'); background-repeat: repeat-x; background-position: left top; margin-top:3px; } .taboff-main, .taboff { border-top: 1px solid #759BC7; border-left: 1px solid #759BC7; border-right: 1px solid #759BC7; background-color: #3363A1; color: #3363A1; padding:8px; float: left; width: auto; background-image: url('images/folder_css_images/tab-off-bg.gif'); background-repeat: repeat-x; background-position: left top; margin-top:3px; } .tabon-main, .taboff-main { padding: 4px 8px 4px 8px; } .tabon-main a:link, .tabon-main a:visited, .tabon-main a:active, .tabon a:link, .tabon a:visited, .tabon a:active { text-decoration:none; color: #FFFFFF; } .taboff-main a:link, .taboff-main a:visited, .taboff-main a:active, .taboff a:link, .taboff a:visited, .taboff a:active { text-decoration:none; color: #3363A1; } .tabwrap { height: 33px; margin:0px; padding:0px; } .tabclear { clear:both; background-image: url( 'images/folder_css_images/main_menu_bg.gif' ); background-repeat: repeat-x; border-left: 1px solid #5D789C; border-right: 1px solid #5D789C; color: #FFF; font-size: 12px; font-weight: bold; padding: 8px 15px 8px 8px; margin:0px; height:14px; } .logoright { width:auto; float:right; position:absolute; top:0px; right:4px; } /* ======================================== */ /* MAIN WRAPPER ID */ /* ======================================== */ /* Adjust main width here. Leave margins alone to auto-center content */ #ipdwrapper { text-align: left; /* re_aligns text to left second part of two part MSIE centering workaround */ padding: 6px; } /* ======================================== */ /* GENERAL SYTLES */ /* ======================================== */ .tablepad { padding:6px; } .tableborder { border: 1px solid #5D789C; } /* MIGHT WANT TO CHANGE THIS AT SOME POINT */ .tableheader, .tableheaderalt, .tableheader2 { font-size:12px; vertical-align:middle; font-weight:bold; color:#FFF; padding:8px 0px 8px 5px; background-image: url(images/folder_css_images/table_title_gradient.gif); background-repeat: repeat-x; background-color:#3363A1; } .tableheaderalt a:link, .tableheaderalt a:visited, .tableheaderalt a:active { text-decoration:none; color: #FFF; } .tablefooter, .tablesubheader { background-color:#ACBFD9; font-size:10px; color: #3363A1; font-weight:bold; padding:5px; } .tablerowmedium { background-color:#999; } .tablerow1 img, .tablerow2 img, .tablerow3 img { vertical-align:middle; border:0px; } .formmain-background { background-image: url(images/folder_css_images/css-form-background.gif); background-repeat: repeat-x; background-color:#EAEDF0; border-top:1px solid #769BC7; padding:6px; } .formmain-fieldset { border:1px solid #769BC7; padding:6px 6px 10px 6px; margin-bottom: 3px; } .formbutton-wrap { padding-top:2px; height: 32px; } .formbutton-on, .formbutton-off { padding:6px; font-size:10px; font-weight:bold; width:auto; float:left; color: #3363A1; } .formbutton-on { background-color:#D1DCEB; border-bottom:1px solid #769BC7; border-right:1px solid #769BC7; border-top:1px solid #FFF; border-left:1px solid #FFF; cursor: pointer; } .formbutton-off { background-color:#F1F1F1; border-bottom:1px solid #769BC7; border-right:1px solid #769BC7; border-top:1px solid #FFF; border-left:1px solid #FFF; } .tablerow1 { background-color:#EAEDF0; padding:6px; border-bottom:1px solid #C1BEBE; border-right:1px solid #C1BEBE; border-top:1px solid #FFF; border-left:1px solid #FFF; } .tablerow2 { background-color:#F1F1F1; padding:6px; border-bottom:1px solid #C1BEBE; border-right:1px solid #C1BEBE; border-top:1px solid #FFF; border-left:1px solid #FFF; } .tablerow3 { background-color:#D1DCEB; padding:6px; border-bottom:1px solid #D1DCEB; border-right:1px solid #D1DCEB; border-top:1px solid #FFF; border-left:1px solid #FFF; } .tablerow4 { background-color:#C0CBDA; padding:6px; border-bottom:1px solid #D1DCEB; border-right:1px solid #D1DCEB; border-top:1px solid #FFF; border-left:1px solid #FFF; } .tablerow2highlight { background-color:#FCECCD; padding:6px; border-bottom:1px solid #C1BEBE; border-right:1px solid #C1BEBE; border-top:1px solid #FFF; border-left:1px solid #FFF; } .tablerow2queued { background-color:#FCECCD; padding:6px; border-bottom:1px solid #C1BEBE; border-right:1px solid #C1BEBE; border-top:1px solid #FFF; border-left:1px solid #FFF; } .tablerow1shaded { background-color:#EFE6EA; padding:6px; border-bottom:1px solid #C1BEBE; border-right:1px solid #C1BEBE; border-top:1px solid #FFF; border-left:1px solid #FFF; } .tablerow2shaded { background-color:#F6ECF0; padding:6px; border-bottom:1px solid #C1BEBE; border-right:1px solid #C1BEBE; border-top:1px solid #FFF; border-left:1px solid #FFF; } /* ======================================== */ /* BUTTONS / FORMS */ /* ======================================== */ .fauxredbutton { border:1px solid #999; background-color: #FED4D4; font-family:Verdana, Arial; font-size:10px; font-weight:bold; padding:6px; margin:0px; } .fauxbutton { border:1px solid #999; background-color: #E7E7E7; font-family:Verdana, Arial; font-size:10px; font-weight:bold; padding: 4px; cursor: pointer; cursor: hand; } .fauxbutton-wrapper { padding: 5px; } .popupmenu { background-color: #EFF3F7; border: 1px solid #999; text-align: left; font-size: 10px; padding: 3px 5px 3px 3px; background-image: url(images/icons_menu/menu-icon-bg.gif); background-repeat: repeat-y; } .popupmenu-pagelinks { background-color: #EFF3F7; border: 1px solid #999; text-align: left; font-size: 10px; padding: 3px 5px 3px 3px; } .menusep { white-space: nowrap; /* stop menu collapsing in IE */ padding-top:4px; padding-bottom:3px; border-bottom:1px solid #DDD; } .menuseplast { white-space: nowrap; /* stop menu collapsing in IE */ padding-top:4px; padding-bottom:3px; color: #000; } .menusep a:link, .menusep a:visited, .menusep a:active, .menuseplast a:link, .menuseplast a:visited, .menuseplast a:active { text-decoration:none; font-weight:bold; color: #000000; } .fauxdropdown { border:1px solid #777; background-color: #CCC; font-family:Verdana, Arial; font-size:10px; font-weight:bold; padding:6px; margin:0px; } .fauxdropdown a:link, .fauxdropdown a:visited, .fauxdropdown a:active, .fauxbutton a:link, .fauxbutton a:visited, .fauxbutton a:active, .fauxredbutton a:link, .fauxredbutton a:visited, .fauxredbutton a:active { text-decoration:none; color:#333; } .fauxredbutton a:hover, .fauxbutton a:hover { margin:0px; } .realbutton { border:1px solid #999; background-color: #E7E7E7; font-family:Verdana, Arial; font-size:10px; font-weight:bold; padding:2px; cursor: pointer; cursor: hand; } .realdarkbutton { border:1px solid #999; background-color: #CCC; font-family:Verdana, Arial; font-size:10px; font-weight:bold; padding:2px; cursor: pointer; cursor: hand; } input[type=text] { cursor: text; } .desctext { color:gray; } .mininav { font-size:11px; color:#3363A1; } .mininav a:link, .mininav a:visited, .mininav a:active { text-decoration:none; font-weight:bold; color:#3363A1; } .datedropdown { font-size:10px; } .datedropdownleave { font-size:10px; background-color:#FED4D4; } /* ============================================================== */ /* PALETTE STYLES /* ============================================================== */ /* Main pop up wrapper */ #palettewrapper { text-align: left; /* re_aligns text to left second part of two part MSIE centering workaround */ } .paletteheader { font-weight:bold; font-size:12px; color:#FFFFFF; height:25px; background-image: url(images/folder_css_images/main_menu_bg.gif); background-repeat: repeat-x; padding-top:7px; padding-left:6px; } .palettewrap { padding:10px; background-color: #FFFFFF; background-image: url(images/folder_css_images/mainblock_bg.gif); background-repeat: repeat-x; } .iframestyle { border:1px solid #777; background-color:#FFF; } .iframebuttonsoff { font-size:10px; border:1px solid #777; border-bottom:0px; padding:5px; background-color: #BBB; } .iframebuttons { font-size:10px; border:1px solid #777; border-bottom:0px; padding:5px; background-color: #EBEBEB; } /* ============================================================== */ /* DIFF STYLES /* ============================================================== */ del, .diffred { background-color: #D7BBC8; text-decoration:none; } ins, .diffgreen { background-color: #BBD0C8; text-decoration:none; } .diffwrap { background:#FFF; color:black; border:1px solid #000; white-space:pre; font-family:monaco,courier,fixed; overflow:auto; width:100%; } /* ============================================================== */ /* RTE STYLES /* ============================================================== */ .attach-menubutton { border: 1px solid #7585B8; -moz-border-radius: 3px; padding: 2px 1px 2px 4px; margin:0px; font-size: 11px; overflow: hidden; background-color: #FFFFFF; background-image: url('images/folder_rte_images/rte-dd-bg.gif'); background-repeat: no-repeat; width:auto; } .attach-parentdiv { background-color: #E5E6F1; background-image: url('images/folder_rte_images/rte_tile.gif'); background-repeat: repeat-x; border: 1px solid #555; letter-spacing: 0; padding:6px; text-align:left; } .attach-messagediv { background: #FFF; color: #000000; text-align:center; border: 1px solid #555; } .attach-msg-span { padding-top: 3px; font-size:20px; font-weight:bold; } .attach-iframe { border: 0px; background-color:transparent; } .attach-popupmenu { background-color: #EFF3F7; border: 1px solid #999; text-align: left; font-size: 11px; padding: 3px 5px 3px 3px; background-image: url('images/icon_components/articles/articles-menu-icon-bg.gif'); background-repeat: repeat-y; } .attach-menu-row-over, .attach-menu-row { padding:1px 1px 4px 1px; width:100%; cursor: pointer; cursor: hand; } .attach-menu-row-over { background: #D3D3D3; } /* ============================================================== */ /* RTE STYLES /* ============================================================== */ .rte-cb-bg { background-color: #E5E6F1; background-image: url('images/folder_css_images/rte-cb-top-bg.gif'); background-repeat: repeat-x; border-bottom: 1px solid #555; letter-spacing: 0; height:11px; text-align: left; padding:0px; margin:0px; } .rte-buttonbar { background-color: #E5E6F1; background-image: url('images/folder_css_images/rte_tile.gif'); background-repeat: repeat-x; border: 1px solid #555; letter-spacing: 0; } .rte-buttonbar tbody tr td, .rte-buttonbar tr td, .rteBack tbody tr td, .rteBack tr td { padding: 0; } .rte-iframe { border:2px inset solid #777; background-color:#FFF; margin-top:4px; } .rte-menu-button, .rte-selected-menubutton, .rte-hover-menubutton, .rte-normal-menubutton { border: 1px solid #7585B8; -moz-border-radius: 3px; padding: 2px 1px 2px 4px; margin:0px; font-size: 11px; overflow: hidden; background-color: #FFFFFF; background-image: url('images/folder_css_images/rte-dd-bg.gif'); background-repeat: no-repeat; width:auto; } .rte-selected-menubutton, .rte-hover-menubutton { border: 1px solid #95C4F7; background-color: #FFFFFF; } .rte-menu-face, .rte-menu-size, .rte-selected-menu, .rte-hover-menu, .rte-normal-menu { background-color: #EFF3F7; border-bottom:1px dotted #999; padding:1px 1px 4px 1px; width:100%; cursor: pointer; cursor: hand; } .rte-selected-menu-color, .rte-hover-menu-color, .rte-normal-menu-color, .rte-menu-color { width: 10px; border: 1px solid #FFFFFF; cursor: pointer; cursor: hand; } .rte-hover-menu-color { border:1px solid black; } .rte-popupmenu { background-color: #EFF3F7; border: 1px solid #999; text-align: left; font-size: 11px; padding: 3px 5px 3px 3px; } .rte-selected, .rte-hover, .rte-normal { cursor: pointer; cursor: hand; padding:1px; } .rte-selected-menu, .rte-hover-menu { background: #D3D3D3; } .rte-selected { border: 1px outset; padding:0px; } .rte-hover { background: #EBEBEB; } /* ============================================================== */ /* RTE STYLES /* ============================================================== */ .rteimage { /*background: #D3D3D3;*/ /*border: 1px outset transparent*/; cursor: pointer; cursor: hand; padding:1px; } .rteImageRaised { /*background: #D3D3D3;*/ border: 1px outset; cursor: pointer; cursor: hand; padding:0px; } .rteImageLowered { /*background: #D3D3D3;*/ border: 1px inset; cursor: pointer; cursor: hand; padding:0px; } .rteimage:hover { background: #EBEBEB; cursor: pointer; cursor: hand; } .rteVertSep { margin: 0 4px 0 4px; } .rteBack { background: #D3D3D3; border: 1px outset; letter-spacing: 0; padding: 2px; } /* used in ips_rte.js - do not remove */ .rtebottombutton { font-size:10px; border:1px solid #777; border-top:0px; padding:3px; margin:0px; background-color: #EBEBEB; } /* used in ips_rte.js - do not remove */ .rtebottombuttonon { font-size:10px; border:1px solid #777; border-top:0px; padding:3px; margin:0px; background-color: #D3D3D3; } .rtebuttonbar1 { /*background: #D3D3D3;*/ background-image: url('images/folder_css_images/rte_tile.gif'); border: 1px solid gray; border-bottom:0px; letter-spacing: 0; padding: 2px; height:26px; } .rtebuttonbar2 { /*background: #D3D3D3;*/ background-image: url('images/folder_css_images/rte_tile.gif'); border: 1px solid gray; border-top:1px solid gray; letter-spacing: 0; padding: 2px; height:26px; } .rtebuttonbar1 tbody tr td, .rtebuttonbar1 tr td, .rtebuttonbar2 tbody tr td, .rtebuttonbar2 tr td, .rteBack tbody tr td, .rteBack tr td { /*background: #D3D3D3;*/ padding: 0; } .rteDiv { display: block; position: relative; padding:0px; margin:0px; } .rteiframe { border:1px solid #777; background-color:#FFF; } .rteselectbox { font-size:11px; } .rss-feed-valid { font-weight: bold; color: green; } .rss-feed-invalid { font-weight: bold; color: red; } .rss-feed-msg { font-weight: bold; color: gray; } .rss-feed-url { font-weight: bold; color: blue; } .perms-red { background-color: #D7BBC8; } .perms-green { background-color: #BBD0C8; } .perms-gray { background-color: #CCC; } .red-perm { color: red; font-weight: bold; } .green-perm { color: darkgreen; font-weight: bold; } .yellow-perm { color: teal; font-weight: bold; } .blue-perm { color: blue; font-weight: bold; } .orange-perm { color: orange; font-weight: bold; } .purple-perm { color: purple; font-weight: bold; } /* new homepage styles */ .homepage_section_warning, .homepage_section { background-image: url(images/folder_css_images/table_title_gradient.gif); background-repeat: repeat-x; background-color:#3363A1; font-size: 12px; font-weight:bold; color: #fff; padding: 7px; } .homepage_section_warning { background-color: #66343e; } .homepage_pane_warning_border, .homepage_pane_warning, .homepage_pane_border, .homepage_pane { background-color: #eaedf0; padding: 4px; } .homepage_pane_warning_border { border:1px solid #66343e; } .homepage_pane_border { border:1px solid #344966; } .homepage_pane_warning_border, .homepage_pane_warning { background-color: #F3e2e0; } .homepage_sub_header { padding: 8px; background-color: #acbfd9; color: #3363a1; font-weight: bold; font-size:12px; } .homepage_sub_row { background-color:#e6ebf1; padding:6px; border-bottom:1px solid #d3dae4; } .homepage_sub_row_2 { background-color:#d3dae4; padding:6px; border-bottom:1px solid #b3bbc8; } .homepage_sub_row_3 { background-color:#eaedf0; padding:6px; border-bottom:1px solid #b3bbc8; } .homepage_border { border:1px solid #7f8ca0; } #common_actions div a { display: block; font-size: 12px; font-weight: bold; text-decoration: none; padding: 3px; border: 1px solid #eaedf0; color: #343434; } #common_actions div a:hover { background-color: #ffffff; border: 1px solid #acacac; color: #343434; } #common_actions img { vertical-align: middle; } Done DawPi
  17. Jeśli nie chcesz by na Twoim forum była wyświetlana wersja IPB postępuj wg poniższej instrukcji: Otwórz: sources/classes/class_display.php Znajdź: <div align='center' class='copyright'> Powered By <a href='http://www.invisionboard.com' style='text-decoration:none' target='_blank'>IP.Board</a> {$version} © ".date("Y")." <a href='http://www.invisionpower.com' style='text-decoration:none' target='_blank'>IPS, Inc</a>. "; Zamień na: <div align='center' class='copyright'> Powered By <a href='http://www.invisionboard.com' style='text-decoration:none' target='_blank'>IP.Board</a> © ".date("Y")." <a href='http://www.invisionpower.com' style='text-decoration:none' target='_blank'>IPS, Inc</a>. "; Drugi sposób: wejdź: ACP > Tools & Settings > Security & Privacy >> Display IPB version on your site? ustaw na 'No'
  18. Jeśli chcesz by po otrzymaniu PM user słyszał melodię ( oczywiście po wejściu na forum ) musisz wykonać poniższe kroki: # Wybierz melodię, która ma byś odgrywana przy nadejściu nowej PM, zalecam użycie krótkiego dźwięku # Wyślij plik na serwer # Wejdź po kolei: ACP > Look & Feel > Skin Manager > (wybierz skin) > Edit Template HTML > All Global HTML > msg_get_new_pm_notification # Na samym początku bita wklejasz następujący kod: <embed src="http://www.twojadomena.pl/play/pmalert.wav" height="0" width="0" autostart="true" loop="false"><!--no content--></embed> Pamiętaj by zmienić źródło do dźwięku: http://www.twojadomena.pl/play/pmalert.wav
  19. Witam, sprzedam spolszczenie do najnowszej wersji IPB 2.3 panelu administracyjnego! Dzięki zastosowaniu sobie znanych tylko metod jestem w stanie wykonać to spolszczenie na plikach klienta ( ważne: nie łamie licencji ) w ciągu kilku godzin od przesłania plików! Co to oznacza: masz gotowy, spolszczony panel ACP w ciągu kilku godzin. Odbiór tego samego dnia ( jeśli zlecenie zostało złożone w godzinach do południa, lub następnego dnia ) jeśli posiadasz modyfikacje na forum nie grozi to błędami w działaniu ACP. Wysyłasz mi Twoje pliki, ja je spolszczam i odsyłam do Ciebie gwarancja pewności wykonania bezpłatny okres supportu dla obeznania się z ACP Gratis: pełny przegląd forum, konfiguracja, naprawa błędów, optymalizacja, zabezpieczenie Każde spolszczenie wykonuję dla każdego klienta osobno pracując na jego plikach - gwarancja poprawności wykonania. Cena to 100zł ( bez ukrytych kosztów i opłat dodatkowych ). Płatność: INTELIGO, mBank, PayPal Kontakt: mail: biuro@ipslink.pl GG: 7129 formularz kontaktowy
  20. 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
  21. 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
  22. 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); }
  23. 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.
  24. 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!
  25. 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 */
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.