-
Postów
78 196 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
571
Typ zawartości
Profile
Forum
Pliki
Galeria
Blogi
Sklep
Wydarzenia
Treść opublikowana przez DawPi
-
Drugi sposób. Otwórz plik: sources/action_public/topics.php Znajdź: $sqr = isset($this->ipsclass->member['_cache']['qr_open']) ? $this->ipsclass->member['_cache']['qr_open'] : 0; Dodaj niżej: $sqr = 1;
-
Jeśli przypadkowo usunięto z forum info o Copyrighcie należy je przywrócić. By to zrobić postępuj wg poniższej instrukcji. Przejdź do: ACP > ADMIN > SQL Management > SQL Toolbox >> Run a Query i wykonaj następujące zapytanie: UPDATE ibf_conf_settings SET conf_value='' WHERE conf_key='ips_cp_purchase' 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 Enjoy!
-
Jeśli chcesz dodać funkcjonalność dla Admina polegającą na bezpośrednim dostępie do rozpoznawania nru IP z poziomu listy osób online na forum, postępuj wg poniższej instrukcji. Otwórz plik: sources/action_public/online.php Znajdź: $sess['ip_address'] = " ( ".$sess['ip_address']." )"; Zamień na: $sess['ip_address'] = " ( <a href='{$this->base_url}act=usercp&CODE=doiptool&iptool=resolve&ip=".$sess['ip_address']."'>".$sess['ip_address']."</a> )"; Enjoy!
-
Jeśli Twoje forum padło ofiarą hackerów często się zdarza, że zmieniają oni skin i dodają do niego ramki ze swoimi spreparowanymi stronami. By się przed tym obronić, postępuj wg poniższej instrukcji. Otwórz plik: sources/classes/class_display.php Znajdź: $this->ipsclass->skin['_wrapper'] = str_replace( "<% CHARSET %>" , $this->ipsclass->vars['gb_char_set'], $this->ipsclass->skin['_wrapper']); Dodaj poniżej: $this->ipsclass->skin['_wrapper'] = preg_replace( "#<iframe(.+?)src=\x22http(.+?)</iframe>#is", "tu była ramka" , $this->ipsclass->skin['_wrapper']); Enjoy!
-
[IPB 2.3.3] Tekst w miejscu podlinkowanym pod logiem
DawPi odpowiedział(a) na Nexus temat w Ogólny support IPB
Przejdź do: ACP > LOOK & FEEL > ( wybór skina ) > Edit Template HTML > All Global HTML >> global_board_header Szukasz: <!--ipb.leftlinks.start--> (...) <!--ipb.leftlinks.end--> Pomiędzy tymi znacznikami operujemy lewymi linkami w TOPie forum. Nowy link dodajemy w następujący sposób: <div class='ipb-top-left-link'><a href="link">anchor</a></div> Analogicznie dla prawej strony. Szukasz: <!--ipb.rightlinks.start--> (... ) <!--ipb.rightlinks.end--> Pomiędzy tymi znacznikami operujemy prawymi linkami w TOPie forum. Nowy link dodajemy w następujący sposób: <div class='ipb-top-right-link'><a href="link">anchor</a></div> -
[IPB 2.3.3] Tekst w miejscu podlinkowanym pod logiem
DawPi odpowiedział(a) na Nexus temat w Ogólny support IPB
Witamy Wydaje mi się, że nie wpisałeś nazwy strony. By to zrobić przejdź do: ACP > TOOLS & SETTINGS > General Configuration >> Website Name i wpisz nazwę. To dość często spotykane niedopatrzenie na forach. Jeśli to nie to, to proszę o screen obrazujący problem. Pozdrawiam, DawPi -
Francuska firma Thales opracowała Indoor Positioning System (IPS), który działa podobnie jak GPS, ale jest przeznaczony do pracy z pomieszczeniach. IPS powstał z myślą o strażakach, pracujących w zadymionych budynkach. Może jednak być również używany przez policję i wojsko. Możliwe jest też zainstalowanie go w telefonach z GPS, które, dzięki IPS, pomagałyby odnaleźć się na lotnisku czy w dużych centrach handlowych. Tradycyjnego systemu nawigacji satelitarnej (GPS) nie można używać w pomieszczeniach, gdyż sygnały są zbyt słabe i odbijają się od ścian. IPS, który powstał w laboratoriach w Reading, korzysta z sygnałów radiowych Ultra Wide Band (UWB), przeznaczonych do szybkiej komunikacji na niewielkie odległości. Urządzenia IPS wskażą strażakom położenie ich kolegów w budynku oraz np. położenie wozów strażackich na zewnątrz. Dzięki temu zwiększy się bezpieczeństwo akcji gaśniczych. Mariusz Błoński źródło: Reuter -------- a Wy co myśleliście?
-
http://allegro.pl http://allegro.pl
-
http://onet.pl http://ipb.ipslink.pl http://www.ipb.ipslink.pl http://allegro.pl http://allegro.pl http://allegro.pl http://allegro.pl http://allegro.pl http://allegro.pl
-
In iaculis enim ipsum id Quis vel pellentesque ac Aenean Interdum egestas pellentesque morbi augue <script type='text/javascript'> mytagid = Math.floor( Math.random() * 100 ); document.write("
-
Twoje pytanie jest szerokie jak rzeka. Co to znaczy dobra reklama forum? Ile funduszy na to przeznaczone, czas, oczekiwania... ?
-
IPB Board - nie płać za licencję 400zł lub nawet 800zł
DawPi odpowiedział(a) na DawPi temat w Tutoriale i porady
To nie zależy od kraju. Takową licencję zakupujesz identycznie jak licencję na skrypt forum lub inny moduł do niego. -
Inny sposób można znaleźć w tym temacie. Jeśli z jakiś względów chcesz mieć podgląd na ID grup w widoku grup w ACP postępuj wg poniższej instrukcji. Otwórz plik: skin_acp/IPB2_Standard/acp_skin_html/cp_skin_groups.php Znajdź: <td class='tablesubheader' width='40%'>Group Title</td> Dodaj poniżej: <td class='tablesubheader' width='10%' align='center'>Group ID</td> Znajdź: <td class='tablerow1' align='center'><img src='{$this->ipsclass->skin_acp_url}/images/{$r['_can_acp_img']}' border='0' alt='-' class='ipd' /></td> Dodaj powyżej: <td class='tablerow1' align='center'>{$r['g_id']}</td> Efekt końcowy: Enjoy!
-
Witamy na forum.. ad.1 by wybrać grupę do której trafia user po rejestracji należy się udać do: ACP > TOOLS & SETTINGS > View All General Settings > Subscriptions Manager >> Member group to use after registration but before package purchase? Oczywiście należy ją wcześniej stworzyć. U Ciebie to będzie grupa: Test Member Dostęp do jednego wybranego forum edytuje się w masce grupy Test Member, którą rzecz jasna wcześniej należy otworzyć ( ACP > MANAGEMENT > Forum Control >> Manage Permissions ) ad.2 Zobacz ten temat.
-
Jeśli z jakiś powodów chcesz umożliwić dostęp do danego forum od XX postów ( XX - liczba dowolnie modyfikowana ) postępuj wg poniższej instrukcji. Przejdź do: ACP > ADMIN > SQL Management > SQL Toolbox >> Run a Query i wykonaj następujące zapytanie: ALTER TABLE ibf_forums ADD posts_to_enter varchar(32) NOT NULL oraz: ALTER TABLE ibf_forums ADD posts_to_enter_group varchar(32) NOT NULL 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 Otwórz plik: skin_acp/IPB2_Standard/acp_skin_html/cp_skin_forums.php Znajdź: <tr> <td width='40%' class='tablerow1'><strong>Do you wish to allow posting in this forum?</strong><div class='desctext'>You may wish to set this to no if you will be creating sub-forums underneath this forum. If this is set to no, the rest of the settings will have no effect.</div></td> <td width='60%' class='tablerow2'>{$form['sub_can_post']}</td> </tr> Dodaj poniżej: <tr> <td width='40%' class='tablerow1'><strong>Postów by wejść:</strong><div class='desctext'>Ustaw ilość postów wymaganych by wejść do tego forum<br>Zostaw puste by wyłączyć.</div></td> <td width='60%' class='tablerow2'>{$form['posts_to_enter']}</td> </tr> <tr> <td width='40%' class='tablerow1'><strong>Grupy chronione:</strong><div class='desctext'>Wybierz grupy które mimo nie posiadania wystarczającej ilości postów będą mogły omijać to zabezpieczenie.</div></td> <td width='60%' class='tablerow2'>{$form['posts_to_enter_group']}</td> </tr> Zapisz i wyślij. Otwórz plik: sources/action_admin/forums.php Znajdź: $form['name'] = $this->ipsclass->adskin->form_input( 'name' , $this->ipsclass->parse_clean_value( $_POST['name'] ) ? $this->ipsclass->parse_clean_value( $_POST['name'] ) : $forum['name'] ); Dodaj powyżej: //----------------------------------------- // Bring up the groups //----------------------------------------- $this->ipsclass->DB->simple_construct( array( 'select' => 'g_id, g_title', 'from' => 'groups', 'order' => "g_title" ) ); $this->ipsclass->DB->simple_exec(); while ( $r = $this->ipsclass->DB->fetch_row() ) { $mem_group[] = array( $r['g_id'] , $r['g_title'] ); } $arr = explode( ",", $forum['posts_to_enter_group'] ); $form['posts_to_enter'] = $this->ipsclass->adskin->form_input('posts_to_enter' , $_POST['posts_to_enter'] ? $_POST['posts_to_enter'] : $forum['posts_to_enter'] ); $form['posts_to_enter_group'] = $this->ipsclass->adskin->form_multiselect( "posts_to_enter_group[]", $mem_group, $arr, 6); Znajdź: //----------------------------------------- // Save array //----------------------------------------- Dodaj poniżej: if ( is_array($_POST['posts_to_enter_group']) ) { $_POST['posts_to_enter_group'] = implode(",",$_POST['posts_to_enter_group'] ); } Znajdź: 'description' => $this->ipsclass->my_nl2br( $this->ipsclass->txt_stripslashes($_POST['description']) ), Dodaj poniżej: 'posts_to_enter' => $this->ipsclass->input['posts_to_enter'], 'posts_to_enter_group' => $_POST['posts_to_enter_group'], Zapisz i wyślij. Otwórz plik: sources/action_public/forums.php Znajdź: // Build permissions //----------------------------------------- $this->build_permissions(); Dodaj poniżej: //----------------------------------------- // Post Check And Group Override //----------------------------------------- if ($this->forum['posts_to_enter']) { if ( !in_array( $this->ipsclass->member['mgroup'], explode( ",", $this->forum['posts_to_enter_group'] ) ) ) { if ($this->forum['posts_to_enter'] > $this->ipsclass->member['posts']) { $this->ipsclass->Error( array( LEVEL => 1, MSG => 'no_posts', EXTRA => $this->forum['posts_to_enter'] ) ); } } } Zapisz i wyślij. Otwórz plik: sources/action_public/topics.php Znajdź: //----------------------------------------- // Error out if we can not find the topic //----------------------------------------- if ( ! $this->topic['tid'] ) { $this->ipsclass->Error( array( LEVEL => 1, MSG => 'is_broken_link') ); } Dodaj poniżej: //----------------------------------------- // Post Check And Group Override //----------------------------------------- if ($this->forum['posts_to_enter']) { if ( !in_array( $this->ipsclass->member['mgroup'], explode( ",", $this->forum['posts_to_enter_group'] ) ) ) { if ($this->forum['posts_to_enter'] > $this->ipsclass->member['posts']) { $this->ipsclass->Error( array( LEVEL => 1, MSG => 'no_posts', EXTRA => $this->forum['posts_to_enter'] ) ); } } } Zapisz i wyślij. Otwórz plik: cache/lang_cache/XX/lang_error.php ( XX to Twój język ) Znajdź: $lang = array ( Dodaj poniżej: 'no_posts' => "Przepraszamy, nie masz wystarczającej ilości postów by przeglądać to forum. Wymagane postów <#EXTRA#> by wejść.", Zapisz i wyślij. Enjoy!
-
Jeśli z jakiś powodów chcesz wyświetlać długi tytuł tematu nad nimże postępuj wg poniższej instrukcji. Przejdź do: ACP > Look & Feel > ( wybór skina ) > Edit Template HTML > Topic View >> topic_page_top Znajdź: <!--IBF.FORUM_RULES--> <if="$threaded == 0"> Dodaj niżej: <div align="center"><h2>{$data['TOPIC']['title']}</h2></div> </if> Enjoy!
-
Jeśli z jakiś powodów chcesz by wyświetlane informacje o poście i autorze w widoku tematu były wyświetlane po prawej stronie, czyli tak: postępuj wg poniższej instrukcji. Przejdź do: ACP > LOOK & FEEL > ( wybór skina ) > Edit Template HTML > Topic View >> RenderRow Zastąp wszystko przez: <!--Begin Msg Number {$post['pid']}--> <table class='ipbtable' cellspacing="1"> <tr> <td class="row2" valign="middle" width="99%"> <!-- POSTED DATE DIV --> <div style="float: left;"> <span class="postdetails">{$post['post_icon']} <img src='{$this->ipsclass->vars['img_url']}/to_post_off.gif' alt='{$this->ipsclass->lang['to_post_alt']}' border='0' style='padding-bottom:2px' /> {$post['post_date']}</span> </div> <!-- REPORT / DELETE / EDIT / QUOTE DIV --> <div align="right"> <span class="postdetails">{$post['ip_address']} {$this->ipsclass->lang['posted_on']} <a title="{$this->ipsclass->lang['tt_link']}" href="{$this->ipsclass->vars['board_url']}/index.{$this->ipsclass->vars['php_ext']}?showtopic={$post['topic_id']}&view=findpost&p={$post['pid']}" onclick="link_to_post({$post['pid']}); return false;">#{$post['post_count']}</a> <if="$this->ipsclass->member['is_mod']"> | <a href="#" title="{$this->ipsclass->lang['click_for_mod']}" onclick="topic_toggle_pid('{$post['pid']}'); return false;">{$post['pid_start_image']}</a> </if> </span> </div> </td> <td valign="middle" class="row2" width="1%"> <a name="entry{$post['pid']}"></a> <if="$author['id']"> <div id="post-member-{$post['pid']}" class='popmenubutton-new-out'> <span class="{$post['name_css']}">{$author['_pp_online_image']}{$author['_members_display_name']}</span> </div> <!-- member menu --> <div class='popupmenu-new' id='post-member-{$post['pid']}_menu' style='display:none;width:230px'> <div class='popupmenu-item-last'> <if="$author['members_display_name_short'] != $author['members_display_name']"> <div class='popupmenu-item'><strong>{$author['members_display_name']}</strong></div> </if> <div style='float:right'> <div class='pp-image-thumb-wrap'> <img src='{$author['pp_thumb_photo']}' width='{$author['pp_thumb_width']}' height='{$author['pp_thumb_height']}' alt='' /> </div> <if="$this->ipsclass->vars['pp_allow_member_rate']"> <div style='margin-top:5px;margin-left:6px;'> <img src="{$this->ipsclass->vars['img_url']}/rating_{$author['_pp_rating_real']}_mini.gif" alt='{$this->ipsclass->lang['rating_prefix']}: {$author['_pp_rating_real']}' style='vertical-align:middle' border='0' /> </div> </if> </div> <div class='popupmenu-item'> {$author['_pp_gender_image']} <a href="{$this->ipsclass->base_url}showuser={$author['id']}">{$this->ipsclass->lang['dd_view_profile']}</a> </div> <if="$this->ipsclass->member['id']"> <div class='popupmenu-item'> <if="in_array( $author['id'], array_keys( $this->ipsclass->member['_cache']['friends'] ) )"> <img src='{$this->ipsclass->vars['img_url']}/folder_profile_portal/friend_remove_small.png' alt='' border='0' /> <a href="#" onclick='friends_pop("&do=remove&member_id={$author['id']}&md5check={$this->ipsclass->md5_check}"); return false'>{$this->ipsclass->lang['dd_remove_friend']}</a> <else /> <img src='{$this->ipsclass->vars['img_url']}/folder_profile_portal/friend_add_small.png' alt='' border='0' /> <a href="#" onclick='friends_pop("&do=add&member_id={$author['id']}&md5check={$this->ipsclass->md5_check}"); return false'>{$this->ipsclass->lang['dd_add_friend']}</a> </if> </div> <div class='popupmenu-item'> <img src='{$this->ipsclass->vars['img_url']}/folder_profile_portal/send_pm_small.png' alt='' border='0' /> <a href="{$this->ipsclass->base_url}act=Msg&CODE=4&MID={$author['id']}">{$this->ipsclass->lang['dd_send_pm']}</a> </div> <div class='popupmenu-item'> <img src='{$this->ipsclass->vars['img_url']}/folder_profile_portal/find_posts.png' alt='' border='0' /> <a href='{$this->ipsclass->base_url}act=Search&CODE=gettopicsuser&mid={$author['id']}'>{$this->ipsclass->lang['dd_find_topics']}</a> </div> <div class='popupmenu-item-last'> <img src='{$this->ipsclass->vars['img_url']}/folder_profile_portal/find_posts.png' alt='' border='0' /> <a href='{$this->ipsclass->base_url}act=Search&CODE=getalluser&mid={$author['id']}'>{$this->ipsclass->lang['dd_find_posts']}</a> </div> </if> </div> </div> <!-- member menu --> <script type="text/javascript"> ipsmenu.register( "post-member-{$post['pid']}", '', 'popmenubutton-new', 'popmenubutton-new-out' ); </script> <else /> <span class="{$post['name_css']}">{$author['_members_display_name']}</span> </if> </td> </tr> <tr> <td width="100%" valign="top" class="{$post['post_css']}" id='post-main-{$post['pid']}'> <!-- THE POST {$post['pid']} --> <div class="postcolor" id='post-{$post['pid']}'> {$post['post']} {$post['edit_by']} <if="$post['post_edit_reason'] != ''"> <div class='post-edit-reason'> {$this->ipsclass->lang['reason_for_edit']}: {$post['post_edit_reason']} </div> </if> <!--IBF.ATTACHMENT_{$post['pid']}--> </div> {$post['signature']} <!-- THE POST --> </td> <td valign="top" class="{$post['post_css']}"> <span class="postdetails"> <if="$author['id'] AND $author['avatar']"> <a href="{$this->ipsclass->base_url}showuser={$author['id']}" title="{$this->ipsclass->lang['dd_view_profile']}">{$author['avatar']}</a><br /><br /> <else /> {$author['avatar']}<br /><br /> </if> {$author['title']}<br /> {$author['member_rank_img']}<br /><br /> {$author['member_group']}<br /> {$author['member_posts']}<br /> {$author['member_joined']}<br /> {$author['member_number']}<br /> {$author['member_location']} <if="$author['custom_fields'] != """> {$author['custom_fields']} </if> <br /> {$author['warn_text']} {$author['warn_minus']}{$author['warn_img']}{$author['warn_add']} </span><br /> <img src="{$this->ipsclass->vars['img_url']}/spacer.gif" alt="" width="160" height="1" /><br /> </td> </tr> <tr> <td class="formbuttonrow" nowrap="nowrap"> <div align="left"> {$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> </div> </td> <td class="formbuttonrow" nowrap="nowrap"> <!-- PM / EMAIL / WWW / MSGR --> <div style="float: left;"> </div> <!-- REPORT / UP --> <div style='text-align:left'><a href="java script:scroll(0,0);"><{P_UP}></a>{$post['report_link']}</div> </td> </tr><tr> <td class="catend" colspan="2"> <!-- no content --> </td> </tr> </table> <if="$post['edit_button']!=''"> <script type='text/javascript'> //<![CDATA[ if ( ajax_loaded && use_enhanced_js ) { menu_build_menu( 'edit-but-{$post['pid']}', new Array( img_item + " <a title='{$this->ipsclass->lang['edit_full_desc']}' href='{$this->ipsclass->base_url}act=post&do=edit_post&f={$post['forum_id']}&t={$post['topic_id']}&p={$post['pid']}&st={$this->ipsclass->input['st']}'>{$this->ipsclass->lang['edit_full_title']}</a>", img_item + " <a href='#' title='{$this->ipsclass->lang['edit_quick_desc']}' onclick='return ajax_prep_for_edit({$post['pid']}, event);'>{$this->ipsclass->lang['edit_quick_title']}</a>" ) ); } //]]> </script> </if> Enjoy!
-
Usuwanie wyświetlania różnych sekcji w widoku tematu
DawPi opublikował(a) temat w Tutoriale i porady
Ten artykuł zaprezentuje jak w prosty sposób ukryć poszczególne sekcje wyświetlane w widoku tematu. Przejdź do: ACP > Look & Feel > ( wybór skina ) > Edit Template HTML > Topic View >> RenderRow Usuwanie avatara: znajdź: {$author['avatar']}<br /><br /> zamień na: <!--{$author['avatar']}<br /><br />--> Usuwanie tytułu usera: znajdź: {$author['title']}<br /> Zamień na: <!--{$author['title']}<br />--> Usuwanie grafiki rang: znajdź: {$author['member_rank_img']}<br /><br /> zamień na: <!--{$author['member_rank_img']}<br /><br />--> Usuwanie grupy usera: znajdź: {$author['member_group']}<br /> zamień na: <!--{$author['member_group']}<br />--> Usuwanie numeru usera: znajdź: {$author['member_number']}<br /> zamień na: <!--{$author['member_number']}<br />--> Usuwanie pola skąd: znajdź: {$author['member_location']} zamień na: <!--{$author['member_location']}--> Usuwanie licznika postów: znajdź: {$author['member_posts']}<br /> zamień na: <!--{$author['member_posts']}<br />--> Usuwanie pola Dołączył: znajdź: {$author['member_joined']}<br /> Zamień na: <!--{$author['member_joined']}<br />--> W każdej chwili można przywrócić wyświetlanie danej wartości poprzez usunięcie komentarza: <!-- i --> Enjoy! -
By łatwo wysyłać E-Maila do usera nie trzeba wchodzić na profil danej osoby i klikać na: Wyślij Email, znacznie lepiej i wygodniej jest by ikona do wysyłania E-Maila była bezpośrednio widoczna w widoku tematu. Pokażę jak w prosty sposób tego dokonać. Przejdź do: ACP > LOOK & FEEL > ( wybór skina ) > Edit Template HTML > Topic View >> RenderRow Znajdź: <!-- PM / EMAIL / WWW / MSGR --> <div style="float: left;"> </div> <!-- REPORT / UP --> Zamień na: <!-- PM / EMAIL / WWW / MSGR --> <div style="float: left;">{$author['email_icon']} </div> <!-- REPORT / UP --> Efekt końcowy: Enjoy!
-
By łatwo wysyłać PMki do usera nie trzeba wchodzić na profil danej osoby i klikać na: Wyślij prywatną wiadomość, znacznie lepiej i wygodniej jest by ikona do wysyłania PM była bezpośrednio widoczna w widoku tematu. Pokażę jak w prosty sposób tego dokonać. Przejdź do: ACP > LOOK & FEEL > ( wybór skina ) > Edit Template HTML > Topic View >> RenderRow Znajdź: <!-- PM / EMAIL / WWW / MSGR --> <div style="float: left;"> </div> <!-- REPORT / UP --> Zamień na: <!-- PM / EMAIL / WWW / MSGR --> <div style="float: left;">{$author['message_icon']} </div> <!-- REPORT / UP --> Efekt końcowy: Enjoy!
-
Jeśli chcesz w prosty sposób włączyć pokazywanie nru GG userów wraz z oznaczenie statusu GG postępuj wg poniższej instrukcji. Pierwszą czynnością jest zalogowanie się do ACP: Następnie przejście do zakładki MANAGEMENT i opcji: Custom Profile Fields Następnie należy nacisnąć przycisk: Add New Field I wypełnić formularz zgodnie ze schematem: Field Title: Nr GG Description: Wpisz swój nr GG Field Type: Text Input Maximum Input: 10 Field can be edited by the member?: Yes Topic View Format?: {title}: {content} <a href="gg:{content}"><img src="http://status.gadu-gadu.pl/users/status.asp?id={content}&styl=1"></img></a><br /> Efekt końcowy przedstawia się tak: Pamiętać należy, że status GG będzie pokazywany tylko tym userom którzy nie zaznaczyli opcji w GG: pokazuj status tylko znajomym. Pozostałym będzie się pokazywać czerwone słoneczko. Enjoy!
-
Spotykam się z pytaniami odnośnie instalowania skinów, ludzie pytają jak się to robi, czy się wrzuca grafikę na FTP, a potem coś z nimi robi, albo inaczej. Dlatego postanowiłem napisać ten tutorial by takie pytania już nie padały, na przykładzie standardowego skinu IP.Board. Informacje wstępne: prawidłowy skin posiada minimum dwa pliki: ipb_skin-pro.xml.gz - plik zawierający bity szablonu, CSSa itd. ipb_images-pro.xml.gz - plik zawierający grafikę są to pliki .xml spakowane do .gz Pierwszą czynnością jest zalogowanie się do ACP: Następnie przechodzimy do zakładki LOOK & FEEL i opcji: Skin Import/Export Kolejny krok to wybranie pliku ipb_skin-pro.xml.gz w sekcji: Upload XML Template set ( nr 1 na screenie ) i naciśnięcie przycisku: IMPORT SKIN XML wyjaśnienie: nr 1 - w tym miejscu wybiera się lokalizację pliku który chcemy zuploadować nr 2 - można skorzystać z alternatywnego uploadowania ( np. jeśli Admin serwera wprowadził ograniczenia ). Należy wysłać plik na serwer do głównego katalogu forum i wpisać jego nazwę ( wraz z rozszerzeniem ) w pole nr 2. nr 3 - w tej sekcji można wprowadzić nazwę dla nowego skina lub pozostawić puste by użyć nazwy z pliku ( nie mylić z nazwą pliku ) nr 4 - jeśli wcześniej zuploadowano obrazki skina można wybrać do której paczki ma zostać przypisany nowo uploadowany skin Kolejny krok to upload pliku zawierającego grafikę skina w sekcji: Upload XMLarchive Image set i naciśnięcie przycisku: IMPORT SKIN IMAGES wyjaśnienie: nr 1 - w tym miejscu wybiera się lokalizację pliku który chcemy zuploadować nr 2 - można skorzystać z alternatywnego uploadowania ( np. jeśli Admin serwera wprowadził ograniczenia ). Należy wysłać plik na serwer do głównego katalogu forum i wpisać jego nazwę ( wraz z rozszerzeniem ) nr 3 - w tej sekcji można wprowadzić nazwę dla folderu z grafiką lub pozostawić puste by użyć nazwy z pliku ( nie mylić z nazwą pliku ) nr 4 - jeśli wcześniej zuploadowano plik skina można wybrać do której paczki ma zostać przypisany nowo uploadowana grafika Niektóre skiny mają własne pliki makr, uploadujemy je w sekcji: Upload XML Macro set i naciśnięcie przycisku: IMPORT SKIN MACROS wyjaśnienie: nr 1 - w tym miejscu wybiera się lokalizację pliku który chcemy zuploadować nr 2 - można skorzystać z alternatywnego uploadowania ( np. jeśli Admin serwera wprowadził ograniczenia ). Należy wysłać plik na serwer do głównego katalogu forum i wpisać jego nazwę ( wraz z rozszerzeniem ) nr 3 - w tej sekcji wybieramy skin dla którego zostanie nadpisana zawartość makr 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
-
Jeśli chcesz ustawić by poszczególne grupy mogły uploadować avatary różnych max. rozmiarów ( np. grupa member maksymalnie 80x80, a np. grupa VIP 100x100 ) to ten mod jest dla Ciebie. By go zainstalować postępuj wg poniższej instrukcji. Przejdź do: ACP > ADMIN > SQL Management > SQL Toolbox >> Run a Query i wykonaj następujące zapytanie: ALTER TABLE `ibf_groups` ADD `g_avatar_max_vars` VARCHAR( 200 ) NULL DEFAULT '20:64:64'; Otwórz plik: sources/action_admin/groups.php Znajdź: $this->ipsclass->input['p_max'] = str_replace( ":", "", $this->ipsclass->input['p_max'] ); $this->ipsclass->input['p_width'] = str_replace( ":", "", $this->ipsclass->input['p_width'] ); $this->ipsclass->input['p_height'] = str_replace( ":", "", $this->ipsclass->input['p_height'] ); Dodaj poniżej: $this->ipsclass->input['a_max'] = str_replace( ":", "", $this->ipsclass->input['a_max'] ); $this->ipsclass->input['a_width'] = str_replace( ":", "", $this->ipsclass->input['a_width'] ); $this->ipsclass->input['a_height'] = str_replace( ":", "", $this->ipsclass->input['a_height'] ); Znajdź: 'g_photo_max_vars' => $this->ipsclass->input['p_max'].':'.$this->ipsclass->input['p_width'].':'.$this->ipsclass->input['p_height'], Dodaj poniżej: 'g_avatar_max_vars' => $this->ipsclass->input['a_max'].':'.$this->ipsclass->input['a_width'].':'.$this->ipsclass->input['a_height'], Znajdź: list($p_max, $p_width, $p_height) = explode( ":", $group['g_photo_max_vars'] ); Dodaj poniżej: list($a_max, $a_width, $a_height) = explode( ":", $group['g_avatar_max_vars'] ); Znajdź: $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "AVATARS: Allow avatar uploads?$guest_legend" , $this->ipsclass->adskin->form_yes_no("g_avatar_upload", $group['g_avatar_upload'] ) ) ); Dodaj poniżej: $this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>ROZMIAR AVATARU: max. rozmiar avataru (w KB)</b>" , $this->ipsclass->adskin->form_input("a_max", $a_max )."<br />" ."Max szerokość (px): <input type='text' size='3' class='textinput' name='a_width' value='{$a_width}'> " ) ); Zapisz i wyślij. Otwórz plik: sources/action_public/usercp.php Znajdź: list( $this->ipsclass->vars['av_width'] , $this->ipsclass->vars['av_height'] ) = explode ("x", $this->ipsclass->vars['avatar_dims']); list( $w, $h ) = explode ( "x", $this->ipsclass->vars['avatar_def'] ); Zamień na: list( $this->ipsclass->vars['avup_size_max'] , $this->ipsclass->vars['av_width'] , $this->ipsclass->vars['av_height'] ) = explode (":", strtolower($this->ipsclass->member['g_avatar_max_vars']) ); list( $maxsizeunused, $w , $h ) = explode( ":", strtolower($this->ipsclass->member['g_avatar_max_vars']) ); Zapisz i wyślij. Otwórz plik: sources/libs/func_usercp.php Znajdź: list($p_width, $p_height) = explode( "x", $this->ipsclass->vars['avatar_dims'] ); Zamień na: list( $this->ipsclass->vars['avup_size_max'], $p_width, $p_height ) = explode( ":", strtolower($this->ipsclass->member['g_avatar_max_vars']) ); Zapisz i wyślij. Enjoy!
-
Naprawa "Auto Increment" po migracji z MySQL wyższej wersji do niższej
DawPi opublikował(a) temat w Tutoriale i porady
Po migracji z wersji MySQL wyższej do niższej ( no. z 4.1 do 4.0, lub 4.1 do 3.23 ) występuje problem z wartością "Auto Increment" w bazie danych, pojawiają się błędy "Duplicate key 0", wszystko się rozsypuje jednym słowem. By to naprawić w prosty sposób musisz wykonać następujące zapytanie np. w PhpMyAdminie: ALTER TABLE `ibf_admin_logs` CHANGE `id` `id` BIGINT( 20 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_admin_login_logs` CHANGE `admin_id` `admin_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_announcements` CHANGE `announce_id` `announce_id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_attachments` CHANGE `attach_id` `attach_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_attachments_type` CHANGE `atype_id` `atype_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_badwords` CHANGE `wid` `wid` INT( 3 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_banfilters` CHANGE `ban_id` `ban_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_bulk_mail` CHANGE `mail_id` `mail_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_cal_calendars` CHANGE `cal_id` `cal_id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_cal_events` CHANGE `event_id` `event_id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_components` CHANGE `com_id` `com_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_conf_settings` CHANGE `conf_id` `conf_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_conf_settings_titles` CHANGE `conf_title_id` `conf_title_id` SMALLINT( 3 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_contacts` CHANGE `id` `id` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_custom_bbcode` CHANGE `bbcode_id` `bbcode_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_dnames_change` CHANGE `dname_id` `dname_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_email_logs` CHANGE `email_id` `email_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_emoticons` CHANGE `id` `id` SMALLINT( 3 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_faq` CHANGE `id` `id` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_forum_perms` CHANGE `perm_id` `perm_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_forum_tracker` CHANGE `frid` `frid` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_groups` CHANGE `g_id` `g_id` INT( 3 ) UNSIGNED NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_languages` CHANGE `lid` `lid` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_login_methods` CHANGE `login_id` `login_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_mail_error_logs` CHANGE `mlog_id` `mlog_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_mail_queue` CHANGE `mail_id` `mail_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_members_converge` CHANGE `converge_id` `converge_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_members_partial` CHANGE `partial_id` `partial_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_message_text` CHANGE `msg_id` `msg_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_message_topics` CHANGE `mt_id` `mt_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_moderators` CHANGE `mid` `mid` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_moderator_logs` CHANGE `id` `id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_profile_ratings` CHANGE `rating_id` `rating_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_profile_friends` CHANGE `friends_id` `friends_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_profile_comments` CHANGE `comment_id` `comment_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_pfields_data` CHANGE `pf_id` `pf_id` SMALLINT( 5 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_polls` CHANGE `pid` `pid` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_posts` CHANGE `pid` `pid` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_rss_export` CHANGE `rss_export_id` `rss_export_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_rss_import` CHANGE `rss_import_id` `rss_import_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_skin_macro` CHANGE `macro_id` `macro_id` SMALLINT( 3 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_skin_sets` CHANGE `set_skin_set_id` `set_skin_set_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_skin_templates` CHANGE `suid` `suid` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_spider_logs` CHANGE `sid` `sid` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_subscription_extra` CHANGE `subextra_id` `subextra_id` SMALLINT( 5 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_subscription_logs` CHANGE `sublog_id` `sublog_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_subscription_methods` CHANGE `submethod_id` `submethod_id` SMALLINT( 5 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_subscription_trans` CHANGE `subtrans_id` `subtrans_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_subscriptions` CHANGE `sub_id` `sub_id` SMALLINT( 5 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_task_logs` CHANGE `log_id` `log_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_task_manager` CHANGE `task_id` `task_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_template_diff_session` CHANGE `diff_session_id` `diff_session_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_titles` CHANGE `id` `id` SMALLINT( 5 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_topic_mmod` CHANGE `mm_id` `mm_id` SMALLINT( 5 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_topic_ratings` CHANGE `rating_id` `rating_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_topics` CHANGE `tid` `tid` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_tracker` CHANGE `trid` `trid` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_upgrade_history` CHANGE `upgrade_id` `upgrade_id` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_voters` CHANGE `vid` `vid` INT( 10 ) NOT NULL AUTO_INCREMENT; ALTER TABLE `ibf_warn_logs` CHANGE `wlog_id` `wlog_id` INT( 10 ) NOT NULL AUTO_INCREMENT; Testowane na wersji 2.2.2 Enjoy! -
By szybko i sprawnie przenieść userów z jednej grupy do drugiej postępuj wg poniższej instrukcji. Przejdź do: ACP > ADMIN > SQL Management > SQL Toolbox >> Run a Query i wykonaj następujące zapytanie: UPDATE ibf_members SET mgroup = x WHERE mgroup = y gdzie: x - ID grupy do której przenosisz userów y - ID grupy z której przenosisz userów Nie wiesz jak znaleźć wartości x i y ? Zajrzyj do tego artykułu. Enjoy!
