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

Разные значения кодов для смайлов


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

Во всех ICQ клонах уже давно реализовано такое, например смайл :D имеет несколько значений в кодах, как стандартный так и :-) такой, или =) такой. Не знаю, как проще такой реализовать, но думаю было бы востребовано. Самое простое решение, как я вижу, сделать значение у смайла НЕ ОТОБРАЖАТЬ ЕГО ВООБЩЕ. Например в админке к одному гифу привязываем три-четыре кода. Но три скрытых, эти смайлы только парсятся но не показываются в окошке "Показать Все".
Ссылка на комментарий
Поделиться на других сайтах

Ребят, уже зла просто не хватает. Хочется помочь, но из-за такого раздолбайства, ничего уже и делать не хочется. Но если не будет предупреждения, то до мозгов не дойдет точно. :D
Ссылка на комментарий
Поделиться на других сайтах

Честно, не знаю, для какой вам версии, но думаю, что подобное будет актуально для 2.1.х.

 

Модификация недописана, ставить можно, но осторожно.

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

 

Выполняем запрос:

ALTER TABLE `ibf_emoticons` ADD `alt_typed` TINYTEXT;

 

Открываем ./sources/action_admin/emoticons.php и ищем:

	function emoticon_edit()
{
	if ($this->ipsclass->input['id'] == "")
	{
		$this->ipsclass->main_msg = "Не выбран ID группы смайликов.";
		$this->emoticon_start();
	}

	foreach ($this->ipsclass->input as $key => $value)
	{
		if ( preg_match( "/^emo_type_(\d+)$/", $key, $match ) )
		{
			if ( isset( $this->ipsclass->input[$match[0]]) )
			{
				$typed = str_replace( '"', "", $this->ipsclass->input[$match[0]] );
				$click = $this->ipsclass->input['emo_click_'.$match[1] ];

				$typed = str_replace( '\', "", $typed );

				if ( $typed and $match[1] )
				{
					$this->ipsclass->DB->do_update( 'emoticons', array( 'clickable' => intval($click), 'typed' => $typed ), 'id='.$match[1] );
				}
			}
		}
	}

Включаем мозг и меняем на:

	function emoticon_edit()
{
	if ($this->ipsclass->input['id'] == "")
	{
		$this->ipsclass->main_msg = "Не выбран ID группы смайликов.";
		$this->emoticon_start();
	}

	foreach ($this->ipsclass->input as $key => $value)
	{
		if ( preg_match( "/^emo_type_(\d+)$/", $key, $match ) )
		{
			if ( isset( $this->ipsclass->input[$match[0]]) )
			{
				$typed = str_replace( '"', "", $this->ipsclass->input[$match[0]] );
				$alt_typed = str_replace( '"', "", $this->ipsclass->input[$match[0]] );
				$click = $this->ipsclass->input['emo_click_'.$match[1] ];

				$typed = str_replace( '\', "", $typed );
				$alt_typed = str_replace( '\', "", $alt_typed );
// update, все равно должного результата пока не дал :)
if ( $match[1] ) 
{ 
if ($typed) 
{ 
$this->ipsclass->DB->do_update( 'emoticons', array( 'clickable' => intval($click), 'typed' => $typed ), 'id='.$match[1] ); 
} 
else if ($alt_typed) 
{ 
$this->ipsclass->DB->do_update( 'emoticons', array( 'clickable' => intval($click), 'alt_typed' => $alt_typed ), 'id='.$match[1] ); 
} 
}
			}
		}
	}

Ищем (тоже с умом ищите):

<input type='textinput' class='realbutton' size='10' name='emo_type_{$data['id']}' value='{$data['typed']}' />

Ниже добавляем:

<br /><input type='textinput' class='realbutton' size='10' name='emo_type_{$data['id']}' value='{$data['alt_typed']}' />

Ищем:

$poss_names[$data['typed']] = $data['typed'];

Меняем на (есть сомнения в правильности замены):

$poss_names[$data['typed']] = $data['typed'] OR $data['alt_typed'];

 

На данный момент пока сохраняем - все.

 

Пока идет обновления обеих таблиц, но думаю, что поправим быстро :D Просто решил пока сказать всем, что работа идет.

Надо просто с умом подойти к function emoticon_edit().

Самое простое решение, как я вижу, сделать значение у смайла НЕ ОТОБРАЖАТЬ ЕГО ВООБЩЕ. Например в админке к одному гифу привязываем три-четыре кода. Но три скрытых, эти смайлы только парсятся но не показываются в окошке "Показать Все".

Это определенно не самое просто ;)

Что я напиал, это проще и удобнее, надеюсь в скором времени доделаю, если кто-нибудь раньше не напишет :)

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

Я делал задание регулярных выражений для конкретных смайлов http://www.harrypotter.com.ua/juploads/user-1-1149348931.gif

 

Примечание: На самом деле регулярное выражение для того смайла задано как "#\:-?D(?!\w)#", тот скрин был сделан давно, в ранних стадиях тестирования :D

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

Ну кроме смайлов нам больше ничего не надо ;). Шучу, просто про другое полезное не по смайлам в другой теме надо рассказывать :D. Или ты про полезное по смайлам?
Ссылка на комментарий
Поделиться на других сайтах

Jax,

нашёл кому пред дать :D

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

Пред бы я дал и Гиву и Сонгу, если бы они не указали версию, когда просили бы им моды написать :D

 

И не важно, был этот человек когда-то в спец группе или не был. Надо уважительно относиться ко всем.

 

Никто так и не хочет дописать мод?

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

Ну вы ребят, фанаты.

Было б чего полезное..

Да нет, кстати, полезно это очень, только что-то додумать до конца не получается :D

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

Может сделать правильную замену скобок "))))" на смайлы, учитывая, что могут быть перед этим скобки не как смайлы?

 

Например,

Привет ))))))))))))))))))

Должно заменять на:

Привет :D

А такое

Привет (Как дела? )))))))))))))))

На:

Привет (Как дела? ;))

Или такое

Привет (Как дела? (И как вчера были дела?))))))))))))))))

На:

Привет (Как дела? (И как вчера были дела?:)))

 

Т.е. N и больше скобок заменять на смайлы, но любую вложенность сохранять

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

Фиксим отображение смайликов - тут скобки "не-смайлы" как раз переводятся :D... Т.е. если смайлик в скобках, то нужная скобка поглощается смайлом )
Ссылка на комментарий
Поделиться на других сайтах

  • 1 год спустя...

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

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

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

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

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

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

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

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

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

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

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