Dicky Опубликовано 25 Мая 2005 Жалоба Поделиться Опубликовано 25 Мая 2005 //==================================================// Custom Clickable Smilies// © 2003-2005 theIggs ( http://www.ibresource.ru/ )// Для Invision Power Board версий 1.2-1.3//==================================================// Суть: на многих форумах есть достаточно большие// наборы смайлов. Этот мод позволит пользователю// самому выбирать, какие смайлы будут для него// кликабельными (clickable), т.е. всегда видны// в панели ответа, без открытия полного списка// смайлов.//================================================== Вот, нашел этот очень классный ИМХО мод, но для версии 2.0.0 он не подходит Может кто подскажет, есть ли подобная фича для 2.0.0.Извиняюсь, если подобная тема поднималась - не нашел Дайте ссылочку, плиз! Заранее всем спасибо! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DestroyNet Опубликовано 25 Мая 2005 Жалоба Поделиться Опубликовано 25 Мая 2005 // ##### Member Favorites Emotions ##// // ####Mod coded by : unlovelt #######// /////////////////////////////////////////////////////////// Files Affected During Installation: post.php legends.php skin_legends.php skin_post.php lang_post.php lang_legends.php ############### ###Run this query ############### ALTER TABLE ibf_member_extra add ( emo_fav text not null) ############### ###Open sources/post.php : ############### Find : function html_add_smilie_box($in_html="") { global $ibforums, $DB; $show_table = 0; $count = 0; $smilies = "<tr align='center'>\n"; Add below : // emo_fav ######### Unlovelt ### \/ $m_id = $ibforums->member['id']; $DB->simple_construct( array( 'select' => 'emo_fav', 'from' => 'member_extra','where' => "id='$m_id'" ) ); $DB->simple_exec(); $r_emo_fav = $DB->fetch_row(); if (($r_emo_fav['emo_fav'])&&( $in_html !="")) { $string_emo_fav = $r_emo_fav['emo_fav']; $ibforums->cache['emo_fav'] = array(); $ibforums->cache['emoticons'] = array(); $DB->simple_construct( array( 'select' => 'typed,image,clickable,emo_set', 'from' => 'emoticons' , 'where' => "id IN($string_emo_fav)") ); $DB->simple_exec(); while ( $r_emo = $DB->fetch_row() ) { $ibforums->cache['emo_def'][] = $r_emo; } foreach( $ibforums->cache['emo_def'] as $emo_def_id => $emo_def ) { $ibforums->cache['emoticons'][] = array ('typed' => $emo_def['typed'],'image' => $emo_def['image'] , 'clickable' => '1' , 'emo_set' => $emo_def['emo_set']); } } else { // emo_fav ######### Unlovelt ### /\ Find : usort( $ibforums->cache['emoticons'] , array( 'post', 'smilie_alpha_sort' ) ); Add above : // emo_fav ######### Unlovelt ### \/ } // emo_fav ######### Unlovelt ### /\ Save & upload. _______ ############### ###Open ACP ->Skins & Templates ->Skin Manager -> chose your skin -> Edit Root Skin Template HTML ############### Open :Post Screen -> get_javascript Find : function emo_pop(){ window.open("index.{ipb.vars['php_ext']}?act=legends&CODE=emoticons&s={ipb.session_id}","Legends","width=250,height=500,resizable=yes,scrollbars=yes"); } Add below : function emo_fav_pop(){ window.open("index.{ipb.vars['php_ext']}?act=legends&CODE=favemo&s={ipb.session_id}","Legends","width=250,height=500,resizable=yes,scrollbars=yes"); } Save template bit . ______ Open : Post Screen -> smilie_table Find : <!--THE SMILIES--> add below <tr> <td align="center" colspan="{ipb.vars['emo_per_row']}"><b><a href="javascript:emo_fav_pop()">{ipb.lang['emo_fav']}</a></b></td> </tr> ________ Open : Board Legends Add template bit : New Template Bit Name : emo_fav_header New Template Bit Incoming Data Variables : $title="",$row1="",$row2="",$row3="" Add New Template Bit : <div> <div class="borderwrap"> <div class="maintitle">$title</div> <table cellspacing="1"> <tr> <td width="45%" align="center" class="formsubtitle" valign="middle">$row1</td> <td width="45%" align="center" class="formsubtitle" valign="middle">$row2</td> <td width="10%" align="center" class="formsubtitle" valign="middle">$row3</td> </tr> <form action="{ipb.script_url}act=legends&CODE=favemo&do=select" name="favemo" method="post"> _____ Add template bit : New Template Bit Name : emo_fav_footer New Template Bit Incoming Data Variables : Add New Template Bit : </table> <table> <tr> <td align="center" class="row1" valign="middle"><input type="submit" name="sel_fav" value="{ipb.lang['emo_fav_2']}" tabindex="8" class="button" /></td> <td align="center" class="row1" valign="middle"><input type='button' class="button" value='{ipb.lang['emo_fav_3']}' onclick='unsel()' /></td> </tr> </form> </table> </div> </div> <br /> ______ Add template bit : New Template Bit Name : emoticon_fav_javascript New Template Bit Incoming Data Variables : Add New Template Bit : <script language='javascript'> <!-- function unsel() { count = document.favemo.elements.length; for (i=0; i < count; i++) { if(document.favemo.elements[i].checked == 1) {document.favemo.elements[i].checked = 0; } else {document.favemo.elements[i].checked = 0;} } } //--> </script> _____ Add template bit : New Template Bit Name : emoticons_fav_row New Template Bit Incoming Data Variables : $code="",$image="",$checked="'",$id="" Add New Template Bit : <tr> <td align="center" class="row1" valign="middle">$code</td> <td align="center" class="row1" valign="middle"><img src="{ipb.vars['EMOTICONS_URL']}/$image" valign="absmiddle" alt="$image" /></td> <td align="center" class="row1" valign="middle"><input type="checkbox" name="favemo_$id" $checked /></td> </tr> ############### ###Open lang/**/lang_post.php ############### Find : $lang = array ( Add below : 'emo_fav' => "Favorites Emotions", Save & upload ############### ###Open lang/**/lang_legends.php ############### Find : $lang = array ( Add below : 'emo_fav_title' => "Favorites Emotions", 'emo_fav_1' => "Select", 'emo_fav_2' => "Select Favorite", 'emo_fav_3' => "Uncheck all", Save & upload ############### ###Open sources/misc/legends.php ############### Find case 'emoticons': $this->show_emoticons(); break; Add below case 'favemo': $this->show_fav_emoticons(); break; __ Find : function show_emoticons() Add above : function show_fav_emoticons() { global $ibforums, $DB, $std; if ($ibforums->input['do'] == "select") { foreach ($ibforums->input as $key => $value) { if ( preg_match( "/^favemo_(\d+)$/", $key, $match ) ) { $emo_selected[] = $match[1]; //echo $match[1]."<br>"; } } if ($emo_selected) { $fav_emo_selected = implode (',',$emo_selected); } else { $fav_emo_selected =""; } $DB->query("UPDATE ibf_member_extra SET emo_fav='{$fav_emo_selected}' WHERE ( id ='{$ibforums->member['id']}')"); } $this->page_title = $ibforums->lang['emo_fav_title']; $this->output .= $this->html->emoticon_fav_javascript(); $this->output .= $this->html->emo_fav_header( $ibforums->lang['emo_fav_title'], $ibforums->lang['emo_type'], $ibforums->lang['emo_img'],$ibforums->lang['emo_fav_1'] ); $m_id = $ibforums->member['id']; $DB->simple_construct( array( 'select' => 'emo_fav', 'from' => 'member_extra','where' => "id='$m_id'" ) ); $DB->simple_exec(); $r_emo_fav = $DB->fetch_row(); $array_emo_fav = explode(',',$r_emo_fav['emo_fav']); $DB->simple_construct( array( 'select' => 'typed, image,id', 'from' => 'emoticons', 'where' => "emo_set='".$ibforums->skin['_emodir']."'" ) ); $DB->simple_exec(); if ( $DB->get_num_rows() ) { while ( $r = $DB->fetch_row() ) { if (strstr( $r['typed'], """ ) ) { $in_delim = "'"; $out_delim = '"'; } else { $in_delim = '"'; $out_delim = "'"; } foreach ($array_emo_fav as $emo_id) { if ( $emo_id == $r['id'] ) { $checked = "checked=\"checked\""; break; } else { $checked = ""; } } $this->output .= $this->html->emoticons_fav_row( stripslashes($r['typed']), stripslashes($r['image']),$checked,$r['id']); } } $this->output .= $this->html->emo_fav_footer(); } //----------------------------------------- Save & upload... Done;) Copyright : unlovelt Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Dicky Опубликовано 26 Мая 2005 Автор Жалоба Поделиться Опубликовано 26 Мая 2005 Огромное спасибо! Сейчас попробую...А по хоршему этот код надо как мод в файловый архив закинуть Еще раз - СПАСИБО! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.