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

Несколько столбцов со смайлами


DINI

Вопрос

Кто-нибудь знает как в popup окне со всеми смайлами разместить их не в один столбец, а в 2-3?

 

Нашел похожий мод для 1.3, но при сравнении с 2.0 понял, что здесь менять надо совсем другое.

Насколько я понял, за столбец со смайлами отвечает вот эта функция в файле sources/post.php:

 

function html_add_smilie_box($in_html="")
{
  global $ibforums, $DB;

  $show_table = 0;
  $count      = 0;
  $smilies    = "<tr align='center'>\n";
  
  //-----------------------------------------
  // Get the smilies from the DB
  //-----------------------------------------

  if ( ! is_array( $ibforums->cache['emoticons'] ) )
  {
  	$ibforums->cache['emoticons'] = array();
  	
  	$DB->simple_construct( array( 'select' => 'typed,image,clickable,emo_set', 'from' => 'emoticons' ) );
  	$DB->simple_exec();
  
  	while ( $r = $DB->fetch_row() )
  	{
    $ibforums->cache['emoticons'][] = $r;
  	}
  }
  
  usort( $ibforums->cache['emoticons'] , array( 'post', 'smilie_alpha_sort' ) );
  
  foreach( $ibforums->cache['emoticons'] as $a_id => $elmo )
  {
  	if ( $elmo['emo_set'] != $ibforums->skin['_emodir'] )
  	{
    continue;
  	}

  	if ( ! $elmo['clickable'] )
  	{
    continue;
  	}

  	$show_table++;
  	$count++;

  	//-----------------------------------------
  	// Make single quotes as URL's with html entites in them
  	// are parsed by the browser, so ' causes JS error :o
  	//-----------------------------------------
  	
  	if (strstr( $elmo['typed'], "'" ) )
  	{
    $in_delim  = '"';
    $out_delim = "'";
  	}
  	else
  	{
    $in_delim  = "'";
    $out_delim = '"';
  	}

  	$smilies .= "<td><a onMouseOver=this.style.cursor='hand' onClick={$out_delim}javascript:emoticon($in_delim".$elmo['typed']."$in_delim){$out_delim}><img src=\"".$ibforums->vars['EMOTICONS_URL']."/".$elmo['image']."\" alt='smilie' border='0' /></a> </td>\n";
  	
  	if ($count == $ibforums->vars['emo_per_row'])
  	{
    $smilies .= "</tr>\n\n<tr align='center'>";
    $count = 0;
  	}
  }

  if ($count != $ibforums->vars['emo_per_row'])
  {
  	for ($i = $count; $i < $ibforums->vars['emo_per_row']; ++$i)
  	{
    $smilies .= "<td> </td>\n";
  	}
  	$smilies .= "</tr>";
  }

  $table = $this->html->smilie_table();

  if ($show_table != 0)
  {
  	$table   = preg_replace( "/<!--THE SMILIES-->/", $smilies, $table );
  	$in_html = preg_replace( "/<!--SMILIE TABLE-->/", $table, $in_html );
  }

  return $in_html;
}

Вот только php я знаю не настолько хорошо, чтобы понять, как именно из одного столбца сделать несколько...

Добавлено в [mergetime]1105998994[/mergetime]

Нет, это не та функция. Эта функция отвечает за смайлы в форме ответа, а не в popup окне...

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

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

  • 0

на самом деле это не проблема, вот только надо ли? окошко поднимается специально неширокое, чтоб удобно было работать.

 

но вообще для 1.x решение было - насколько я успел заметить, в 2.0 работу со смайлами вообще нисколько не меняли.

кажется, sources/lib/legends.php нужен

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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