Перейти к контенту

Настройка смайлов


Рекомендуемые сообщения

//==================================================

// Custom Clickable Smilies

// © 2003-2005 theIggs ( http://www.ibresource.ru/ )

// Для Invision Power Board версий 1.2-1.3

//==================================================

// Суть: на многих форумах есть достаточно большие

// наборы смайлов. Этот мод позволит пользователю

// самому выбирать, какие смайлы будут для него

// кликабельными (clickable), т.е. всегда видны

// в панели ответа, без открытия полного списка

// смайлов.

//==================================================

 

Вот, нашел этот очень классный ИМХО мод, но для версии 2.0.0 он не подходит :D Может кто подскажет, есть ли подобная фича для 2.0.0.

Извиняюсь, если подобная тема поднималась - не нашел ;) Дайте ссылочку, плиз! Заранее всем спасибо!

Ссылка на комментарий
Поделиться на других сайтах

// ##### 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

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.