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

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


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

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

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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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