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. Masz kilka skinów na forum i chcesz pokazać ilość userów korzystających z każdego ze skinów z forum? Jeśli tak to postępuj wg poniższej instrukcji. Otwórz plik: skin_acp/IPB2_Standard/acp_skin_html/cp_skin_lookandfeel.php Znajdź: <strong style='{$css_extra}'>{$r['set_name']}</strong> Zamień na: <strong style='{$css_extra}'>{$r['set_name']}{$r['cnt']}</strong> Zapisz i wyślij. Otwórz plik: sources/action_admin/skin_sets.php Znajdź: //----------------------------------------- // Loop-de-loop //----------------------------------------- Dodaj wyżej: $_skins = array(); foreach ( $this->ipsclass->cache['skin_id_cache'] as $i => $d ) { if ( $d['set_default'] ) { $defskin = $i; } } $this->ipsclass->DB->build_query( array( 'select' => 's.set_skin_set_id, COUNT(*) AS cnt', 'from' => array( 'members' => 'm' ), 'add_join' => array( 0 => array( 'from' => array( 'skin_sets' => 's' ), 'where' => 's.set_skin_set_id=m.skin', 'type' => 'left' ) ), 'group' => 'm.skin', ) ); $this->ipsclass->DB->exec_query(); if ( $this->ipsclass->DB->get_num_rows() ) { while ( $row = $this->ipsclass->DB->fetch_row() ) { $row['set_skin_set_id'] = $row['set_skin_set_id'] ? $row['set_skin_set_id'] : $this->ipsclass->cache['skin_id_cache'][ $defskin ]['set_skin_set_id']; $_skins[ $row['set_skin_set_id'] ] += $row['cnt']; } } foreach ( $skins as $k => $v ) { if ( $k == 1 ) { continue; } $_skins[ $k ] = $_skins[ $k ] ? $_skins[ $k ] : 0; $skins[ $k ]['cnt'] = " (Used by ".$this->ipsclass->do_number_format( $_skins[ $k ] )." members)"; } Zapisz i wyślij. Enjoy! p.s. nie mogę tego pokazać na przykładzie tego forum bo mam mało userów i jeden skin
  2. Jeśli z jakiś powodów chcesz by pole 'Skąd' podczas rejestracji było obowiązkowe wypełnione postępuj wg poniższej instrukcji. Otwórz plik: cache/lang_cache/XX/lang_error.php gdzie XX to nazwa Twojego folderu z językiem Znajdź: <?php $lang = array ( Poniżej dodaj: 'no_location' => "Nie wypełniono pola 'Skąd' - proszę wróć i popraw formularz", Zapisz i wyślij. Otwórz plik: sources/action_public/register.php Znajdź: if ($_POST['act'] == "") { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'complete_form' ) ); } Dodaj poniżej: if ($_POST['Location'] == "") { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'no_location' ) ); } Znajdź: //----------------------------------------- // Insert: MEMBER EXTRA //----------------------------------------- $this->ipsclass->DB->do_insert( 'member_extra', array( 'id' => $member_id, 'vdirs' => 'in:Inbox|sent:Sent Items', 'interests' => '', 'signature' => '' ) ); Zamień na: //----------------------------------------- // Insert: MEMBER EXTRA //----------------------------------------- if ( (strlen($_POST['Location']) > $this->ipsclass->vars['max_location_length']) and ($this->ipsclass->vars['max_location_length']) ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'loc_too_long' ) ); } $this->ipsclass->DB->do_insert( 'member_extra', array( 'id' => $member_id, 'vdirs' => 'in:Inbox|sent:Sent Items', 'location' => $this->ipsclass->input['Location'], 'interests' => '', 'signature' => '' ) ); Zapisz i wyślij. Przejdź do: ACP > Look & Feel > Skin Manager > ( wybór skina ) > Edit Template HTML > Register>> ShowForm Znajdź: <!--{REQUIRED.FIELDS}--> Dodaj powyżej: <fieldset class="row3"> <legend><b>Skąd jesteś</b></legend> <table class='ipbtable' cellspacing="0"> <tr> <td nowrap="nowrap">Wpisz skąd jesteś:</td> </tr> <tr> <td><input type="text" size="50" name="Skad" /></td> </tr> </table> </fieldset> Zapisz. Enjoy!
  3. Jeśli z jakiś powodów nie chcesz pokazywać statystyk gościom postępuj wg poniższej instrukcji. Otwórz plik: sources/action_public/boards.php Znajdź: //----------------------------------------- // Add in show online users //--------------------------------------- Dodaj powyżej: if( $this->ipsclass->member['id'] > 0 ) { Znajdź: $this->output .= $this->ipsclass->compiled_templates['skin_boards']->stats_footer(); } Dodaj poniżej: } Drugą możliwością jest ukrycie statystyk większej ilości grup. Jeśli chcesz to zrobić wystarczy, że powyższy kod: $this->output .= $this->ipsclass->compiled_templates['skin_boards']->stats_footer(); } Zamienisz na: if( ! in_array( $this->ipsclass->member['id'], array( '2', '3') ) ) { Gdzie wartość 2 i 3 są przykładowymi, odpowiadają ID grup, którym chcemy ukryć statystyki. Enjoy!
  4. Jeśli z jakiś powodów chcesz wyłączyć możliwość zarządzania ogłoszeniami przez moderatorów postępuj wg poniższej instrukcji. Przejdź do: ACP > Look & Feel > Skin Manager > ( wybór skina ) > Edit Template HTML > User Control Panel >> Member Bar Znajdź: <{ITEM_START}> <a href="{$this->ipsclass->base_url}act=UserCP&CODE=announce_start">{$this->ipsclass->lang['menu_announcements']}</a> </p> </if> Zamień na: <if="$this->ipsclass->member['g_access_cp'] == 1"> <{ITEM_START}> <a href="{$this->ipsclass->base_url}act=UserCP&CODE=announce_start">{$this->ipsclass->lang['menu_announcements']}</a> </p> </if></if> </div> Enjoy!
  5. Jeśli chcesz włączyć pokazywanie ukrytych skinów grupie Super Moderatorów postępuj wg poniższej instrukcji. Otwórz plik: sources/ipsclass.php Znajdź: else if ( $this->member['g_access_cp'] ) { $skin_set = 1; } Zamień na: else if ( $this->member['g_is_supmod'] || $this->member['g_access_cp'] ) { $skin_set = 1; } Zapisz i wyślij. Otwórz plik: sources/classes/class_display.php Znajdź: if ( $data['set_parent'] < 1 and $id > 1 ) { if ( $data['set_hidden'] and ! $this->ipsclass->member['g_access_cp'] ) { continue; } Zamień na: if ( $data['set_parent'] < 1 and $id > 1 ) { if ( $data['set_hidden'] and ! $this->ipsclass->member['g_access_cp'] and ! $this->ipsclass->member['g_is_supmod'] ) { continue; } Znajdź: foreach( $data['_children'] as $cid ) { if ( $this->ipsclass->cache['skin_id_cache'][ $cid ]['set_hidden'] and ! $this->ipsclass->member['g_access_cp'] ) { continue; } Zamień na: foreach( $data['_children'] as $cid ) { if ( $this->ipsclass->cache['skin_id_cache'][ $cid ]['set_hidden'] and ! $this->ipsclass->member['g_is_supmod'] and ! $this->ipsclass->member['g_access_cp'] ) { continue; } Zapisz i wyślij. Enjoy!
  6. By zmienić kolor ogłoszeń na liście tematów postępuj wg poniższej instrukcji. Przejdź do: ACP > Look & Feel > Skin Manager > ( wybór skina ) > Edit Template HTML > Forum Index >> Announcement_Row Znajdź: <td class="row1"><b>{$this->ipsclass->lang['announce_row']}: <a href="{$this->ipsclass->base_url}act=announce&f={$data['forum_id']}&id={$data['announce_id']}">{$data['announce_title']}</a></b></td> Zamień na: <td class="row1"><b>{$this->ipsclass->lang['announce_row']}: <a href="{$this->ipsclass->base_url}act=announce&f={$data['forum_id']}&id={$data['announce_id']}"><span style="color:#FF0000">{$data['announce_title']}</span></a></b></td> Możesz zmienić przykładowy kolor czerwony na dowolnie inny, edytując ten kod: <span style="color:#FF0000"> Efekt będzie następujący: Enjoy!
  7. Jeśli chcesz pokazywać kolorowe nicki userów w statystykach urodzin ( kolor będzie odpowiadał temu z grupy usera ) postępuj wg poniższej instrukcji. Otwórz: sources/lib/func_boardstats.php Znajdź: $birthstring .= "<a href='{$this->ipsclass->base_url}showuser={$user['id']}'>{$user['members_display_name']}</a>"; Zamień na: $nomeuser = $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']}'>{$nomeuser}</a>"; Enjoy!
  8. Jeśli chcesz chronić posty głównych administratorów przed usunięciem przez któregokolwiek moderatora postępuj wg poniższej instrukcji. Przejdź do: ACP > Look & Feel > ( wybór skina ) > Edit Template HTML > Topic View >> RenderRow Znajdź: {$post['delete_button']}{$post['edit_button']}<a href="#" onclick="multiquote_add({$post['pid']}); return false;" title="{$this->ipsclass->lang['mq_title']}">{$post['mq_start_image']}</a><a href="{$this->ipsclass->base_url}act=Post&CODE=02&f={$this->ipsclass->input['f']}&t={$this->ipsclass->input['t']}&qpid={$post['pid']}" title="{$this->ipsclass->lang['tt_reply_to_post']}"><{P_QUOTE}></a> Zamień na: <if="$author['mgroup'] 4=""> <if="$this->ipsclass->member['mgroup'] == 4"> {$post['delete_button']}{$post['edit_button']} </if="$this-> <else> {$post['delete_button']}{$post['edit_button']} </else> <a href="#" onclick="multiquote_add({$post['pid']}); return false;" title="{$this->ipsclass->lang['mq_title']}">{$post['mq_start_image']}</a><a href="{$this->ipsclass->base_url}act=Post&CODE=02&f={$this->ipsclass->input['f']}&t={$this->ipsclass->input['t']}&qpid={$post['pid']}" title="{$this->ipsclass->lang['tt_reply_to_post']}"><{P_QUOTE}></a> Enjoy!
  9. DawPi

    test

    No właśnie jeśli go dokupię to jest to podłączane do zegarka czy jest to inny dodatkowy sprzęt? Bo na razie chodzi mi tylko właśnie o tego footpod`a...
  10. DawPi

    Śnieg na forum

    Tutorial przedstawia prosty sposób w jaki możemy posypać trochę śnieżku na forum z racji obecnej pory roku Do dzieła. Wrzuć grafikę jednego płatka śniegu do folderu ze skinami. Przykład: -> http://www.ipslink.pl/pomoc_invision/platek_i.gif Ściągnij plik snieg.rar ( spakowany plik snieg.js ) -> http://www.ipslink.pl/pomoc_invision/snieg_i.rar Otwórz plik snieg.js Szukaj: var no = 15; // Anzahl der Objekte var speed = 20; // Speed der Objekte var schneeflocke = "http://link_do_forum/images/platek_i.gif"; // Pfad zum Bild W pierwszej linii określa się ilość grafik/płatków na stronie. W drugiej ich prędkość. W trzeciej można edytować położenie pojedynczego płatka. Zapisujemy. Tak zapisany plik wysyłamy do katalogu: jscripts/ Przechodzimy do: ACP > LOOK & FEEL > ( wybór skina ) > Edit Template HTML > All Global HTML >> global_board_header Szukaj: <script type="text/javascript" src='jscripts/ips_ipsclass.js'></script> Dodaj wyżej: <script type="text/javascript" src='jscripts/snieg.js'></script> Zapisz bit skina. Enjoy! Autorem tutoriala jest DawPi. Zabrania się kopiowania, powielania. W szczególności na inne fora bez zgody autora. Tutorial wykonany dla www.forum.invisionize.pl
  11. Fix błędu związanego z usuwaniem załączników w użyciu. Skrypt błędnie je rozpoznawał i usuwał. Dzięki temu tak się nie będzie działo Otwórz: /sources/action_admin/rebuild.php Znajdź: $dh = opendir( $this->ipsclass->vars['upload_dir'] ); while ( false !== ( $file = readdir( $dh ) ) ) { Dodaj niżej: if( $file == '.' OR $file == '..' ) { continue; } Znajdź: $ndh = opendir( $fullfile ); while( false !== ( $nfile = readdir( $ndh ) ) ) { if ( strstr( $nfile, 'post-' ) ) { Dodaj niżej: if( $nfile == '.' OR $nfile == '..' ) { continue; }
  12. Integracja Joomla z IP.Board: http://forum.bbpixel.com/ Jest to płatny skrypt. Więcej o cenach: http://forum.bbpixel.com/index.php?act=home&view=order
  13. Pełne info: http://forums.invisionpower.com/index.php?showtopic=237990 Raczej tylko naprawione bugi. Lista naprawionych bugów względem wersji 2.3.2: Bugs Fixed Since 2.3.2: Thumbnails always being generated Quick reply parse URI encoding Clickable Smilies New post indicators not working properly. Change Display Name bug Just BBCode Problem IP.Board Pro skin ,,My Friends,, window tabs bug find members post missing thumbnaiils Bug in Comment, Text Editor last_visit not updated? 2 things in acp after upgrade Subscription expired date is wrong. Navigation Bar on View Topic History IP.Board PRO skin possible bug Guest Posting Empty feeds Linear+ and Outline ware switched to Standard when you want to see Poll results Over Attachment Limit Security precation can cause valid text to get replaced Mark all as Read fails on Main page Image identified as dynamic image searching not working properly Is this a bug? XML-RPC User will not delete [2.3.2] Missing unread-icons with "View New Posts" Split from 4833 Number of guests is shown wrongly IPB 2.3.2 Full and Update package discrepancies Problem on the ipb portal setting Manual zmian w skinie z wersji 2.3.2 do wersji 2.3.3: oryginał: http://forums.invisionpower.com/index.php?act=attach&type=post&id=12018 Kopia: www.ipslink.pl/manual/ipb233_difference_export.html
  14. Kolejna ważna łatka. Naprawia ona używanie HTMLa na forum. Otwórz plik: sources/classes/bbcode/class_bbcode.php Znajdź: //----------------------------------------- // Auto parse URLs //----------------------------------------- $txt = preg_replace_callback( "#(^|\s|>|(?<!img)])((http|https|news|ftp)://\w+[^\s\[\]\<]+)#i", array( &$this, '_regex_build_url_manual' ), $txt ); Zamień na: //----------------------------------------- // Auto parse URLs //----------------------------------------- $txt = preg_replace_callback( "#(^|\s|>)((http|https|news|ftp)://\w+[^\s\[\]\<]+)#i", array( &$this, '_regex_build_url_manual' ), $txt );
  15. Fix pod operę. Powód: nie prawidłowo działające rte buttony. Otwórz plik: jscripts/ips_text_editor.js Znajdź: end += opera_len.length; Zamień na: try { end += parseInt(opera_len.length); } catch(e) { }
  16. Hmm, ten mod jest trochę fake, nie pamiętam co mu dokładnie było, ale jak go instalowałem to chyba zawieszanie userów nie było możliwe ( w ACP ). Takie info ;-)
  17. To nie jest błąd. Po prostu takiej tabeli ( z takim prefixem nie masz ). Musisz sprawdzić jaki masz prefix w bazie danych i na taki podmienić w zapytaniu.
  18. Hm, nie tak dawno robiłem tak na dwóch forach i działało. Musiałeś coś źle edytować. Możesz dać link do forum?
  19. W niektórych przypadkach IP.Board pokazuje białą stronę 'jak coś mu nie pasuje', ale niestety nie wyświetla co jest dokładnie nie tak. Powodów może być bardzo wiele. Oto prosta metoda by zamienić 'białe strony' na konkretne komunikaty błędów. Otwórz plik: init.php Znajdź: @set_magic_quotes_runtime(0); error_reporting (E_ERROR | E_WARNING | E_PARSE); Zamień na: @set_magic_quotes_runtime(0); //error_reporting (E_ERROR | E_WARNING | E_PARSE); Znajdź: //error_reporting( E_ALL | E_NOTICE); Zamień na: error_reporting( E_ALL | E_NOTICE); Znajdź: define( 'CUSTOM_ERROR', 0 ); Zamień na: define( 'CUSTOM_ERROR', 1 ); Znajdź: @set_magic_quotes_runtime(0); Dodaj niżej: ini_set( 'display_errors', 1 ); Po tych zmianach łatwo będzie można zorientować się co jest nie tak. DawPi
  20. Witaj, Twój wpis w pliku językowym lang_online.php wyglądał tak: $lang['WHERE_uportal'] = "Viewing Unreal Portal"; natomiast poprawna forma jest taka: 'WHERE_uportal' => "Viewing Unreal Portal", Bardzo łatwo takie błędy się wykrywa. Więcej o tym napiszę niedługo w tutorialu ;-)
  21. Pełna naprawa nieprawidłowego wyświetlania przeczytanych tematów. Otwórz: sources/classes/class_session.php Znajdź: $this->ipsclass->vars['session_expiration'] = $this->ipsclass->vars['session_expiration'] ? (time() - $this->ipsclass->vars['session_expiration']) : (time() - 3600); Zamień na: //$this->ipsclass->vars['session_expiration'] = $this->ipsclass->vars['session_expiration'] ? (time() - $this->ipsclass->vars['session_expiration']) : (time() - 3600); Otwórz: sources/action_public/search.php Znajdź: $topic = $this->forums->parse_data( $topic, 0 ); Zamień na: $topic = $this->forums->parse_data( $topic, 1 ); Otwórz: sources/action_public/forums.php Znajdź: if( $this->ipsclass->forum_read[ $topic['forum_id'] ] > $last_time ) { $last_time = $this->ipsclass->forum_read[ $topic['forum_id'] ]; } Dodaj poniżej: if( $this->ipsclass->member['members_markers']['board'] > $last_time ) { $last_time = $this->ipsclass->member['members_markers']['board']; } Znajdź: $save_array['marker_unread'] = intval($count['cnt']); Dodaj poniżej: $save_array['marker_last_cleared'] = $this->db_row['marker_last_cleared']; Otwórz: sources/action_public/topics.php Znajdź: $save_array['marker_unread'] = $this->db_row['marker_unread'] - 1; Dodaj poniżej: $save_array['marker_last_cleared'] = $this->db_row['marker_last_cleared']; $read_topics_tid[] = $this->topic['tid']; Znajdź: if ( $this->ipsclass->vars['db_topic_read_cutoff'] and $this->ipsclass->member['id'] ) { $last_time = (isset($this->my_topics_read[ $this->topic['tid'] ]) AND intval( $this->my_topics_read[ $this->topic['tid'] ] )) ? intval( $this->my_topics_read[ $this->topic['tid'] ] ) : ( (isset($this->db_row['marker_last_cleared']) AND intval( $this->db_row['marker_last_cleared'] )) ? intval( $this->db_row['marker_last_cleared'] ) : 0); } Zamień na: if ( $this->ipsclass->vars['db_topic_read_cutoff'] and $this->ipsclass->member['id'] ) { $last_time = (isset($this->my_topics_read[ $this->topic['tid'] ]) AND intval( $this->my_topics_read[ $this->topic['tid'] ] )) ? intval( $this->my_topics_read[ $this->topic['tid'] ] ) : ( (isset($this->db_row['marker_last_cleared']) AND intval($this->db_row['marker_last_cleared']) ) ? intval( $this->db_row['marker_last_cleared'] ) : ( (isset( $this->ipsclass->member['members_markers']['board']) AND intval($this->ipsclass->member['members_markers']['board']) ) ? intval($this->ipsclass->member['members_markers']['board']) : 0 ) ); }
  22. Wszystko można zintegrować. IP.Board od niedawna można integrować na dwa sposoby. #1 IP.Converge Więcej info tutaj: http://www.invisionpower.com/community/boa...umentation.html IP.Board 2.3 Developer Documentation Czyli w skrócie możesz wykonać to sam lub zlecić komuś ;-) #2 IPB SDK Więcej info tutaj: http://ipbsdk.sourceforge.net/home Jest przygotowywana aplikacja przez Matta ( głównego programisty IP.Board ) która umożliwi łatwą integrację z IP.Board.
×
×
  • 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ę.