Смайлики в 2 (две) полоски и более Смайлики в 2 (две) полоски и более
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Смайлики в 2 (две) полоски и более

Started by LeaX, November 17, 2007, 04:27:32 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

LeaX

Извиняюсь дико... но не нашла толком решения.  :-\
Ну стандартные я заменила, но в smiles.inc.php речь идет о двух table со смайликами, а выводиться только одна полосочка.
Как сделать рабочей и вторую?

Makc666

Quote from: LeaX on November 17, 2007, 04:27:32 PM
Извиняюсь дико... но не нашла толком решения.  :-\
Ну стандартные я заменила, но в smiles.inc.php речь идет о двух table со смайликами, а выводиться только одна полосочка.
Как сделать рабочей и вторую?
Вы сначала должны определиться, что Вы вообще получить хотите, а потом уже пытаться что-то изменять.

В файле smiles.inc.php есть две фунции с набором смайликов:

  • function get_smilies_table1()
  • function get_smilies_table2()

Для вывода строки со смайлами для вставки используется вторая таблица смайликов, т.е. функция get_smilies_table2()

Используется она ниже в функции
function generate_smilies($form = 'post', $field = 'message')

Смотрим на строку:
$smilies = get_smilies_table2();

-------------------------------------

Для отображения смайлов же используется же первая таблица смайликов, т.е. функция get_smilies_table1()

Используется она ниже в функции
function process_smilies($message, $url_prefix = '')

Смотрим на строку:
$smilies = get_smilies_table1();

-------------------------------------

Поэтому, если Вы хотите добавить новые смайлы для ввода (т.е. чтобы по ним можно было кликнуть при написании комментария), то добавляет новые смайлы в обе (первую и вторую) таблицы.

Если хотите, чтобы смайлы только обрабатывались/отображались (т.е. пользователь ввел слово :arrow: в комментарии, а после сохранения комментария такое слово будет отображаться как смайлик со стрелкой), то добавляете такие смайлы в первую таблицу.

-------------------------------------

А чтобы отображаться смайлы в две строки через определенное количество смайлов, это нужно переписывать функцию
function generate_smilies($form = 'post', $field = 'message')

Как переписать, в следующем сообщении...

Makc666

Открываете файл:
themes/classic/theme.php
или
themes/ВАША_ТЕМА/theme.php

Смотрите, нет ли там функции:

  • function get_smilies_table3()
  • function theme_generate_smilies($smilies, $form)

Если нет, то добавляете кусок кода:
function get_smilies_table3()
{
    global $lang_smilies_inc_php;

    return array(
        array(':lol:', 'icon_lol.gif', $lang_smilies_inc_php['Laughing']),
        array(':-P', 'icon_razz.gif', $lang_smilies_inc_php['Razz']),
        array(':-D', 'icon_biggrin.gif', $lang_smilies_inc_php['Very Happy']),
        array(':-)', 'icon_smile.gif', $lang_smilies_inc_php['Smile']),
        array(':-|', 'icon_neutral.gif', $lang_smilies_inc_php['Neutral']),
        array('<br />', '', ''),
        array(':-(', 'icon_sad.gif', $lang_smilies_inc_php['Sad']),
        array(':cry:', 'icon_cry.gif', $lang_smilies_inc_php['Crying or Very sad']),
        array('8-)', 'icon_cool.gif', $lang_smilies_inc_php['Cool']),
        array(':-o', 'icon_surprised.gif', $lang_smilies_inc_php['Surprised']),
        array(':-?', 'icon_confused.gif', $lang_smilies_inc_php['Confused']),
        array('<br />', '', ''),
        array(':oops:', 'icon_redface.gif', $lang_smilies_inc_php['Embarassed']),
        array(':shock:', 'icon_eek.gif', $lang_smilies_inc_php['Shocked']),
        array(':-x', 'icon_mad.gif', $lang_smilies_inc_php['Mad']),
        array(':roll:', 'icon_rolleyes.gif', $lang_smilies_inc_php['Rolling Eyes']),
        array(';-)', 'icon_wink.gif', $lang_smilies_inc_php['Wink']),
        array('<br />', '', ''),
        array(':idea:', 'icon_idea.gif', $lang_smilies_inc_php['Idea']),
        array(':!:', 'icon_exclaim.gif', $lang_smilies_inc_php['Exclamation']),
        array(':?:', 'icon_question.gif', $lang_smilies_inc_php['Question'])
        );
}

function theme_generate_smilies($smilies, $form)
{

    global $THEME_DIR;
    $smilies = get_smilies_table3();
    $paths = array($THEME_DIR.'/smiles/','images/smiles/');

        $html = '<table width="100%" border="0" cellspacing="2" cellpadding="2">' . "\n" . '        <tr align="center" valign="middle">' . "\n";

        foreach($smilies as $smiley) {
            $smile_path = (file_exists($paths[0].$smiley[1]))?($paths[0]):($paths[1]);
            $caption = $smiley[2] . " " . $smiley[0];
if ( $smiley[0] == "<br />" OR $smiley[0] == "<br>" )
{
            $html .= '                </tr><tr align="center" valign="middle">' . "\n";
}
else
{
            $html .= '                <td width="5%"><img src="images/smiles/' . $smiley[1] . '" alt="' . $caption . '" width="15" height="15" border="0" style="cursor:pointer;" title="' . $caption . '" onclick="javascript:emoticon_' . $form . '(\'' . $smiley[0] . '\')" /></td>' . "\n";
}
        }

        $html .= '        </tr>' . "\n" . '</table>' . "\n";

        return $html;
}


Разбиение смайлов на строчки осуществляется с помощью строки:
        array('<br />', '', ''),
в функции (смотрите в код выше):
function get_smilies_table3()

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

LeaX

Quoteесли Вы хотите добавить новые смайлы для ввода (т.е. чтобы по ним можно было кликнуть при написании комментария), то добавляет новые смайлы в обе (первую и вторую) таблицы.
Спасибо за обстоятельный ответ, попробую добавить.
Я просто хотела побольше смайликов иметь и не посмотрела, что это один и те же смайлы перечислены. Думала там первая полоска, а дальше вторая  ;D
Ну а после какого смайла вторая полоска начинаться будет - это может кому другому пригодится.  :)

LeaX

Странно, если взять и добавить в обе таблицы что-то типа:
array(':fool:', 'icon_fool.gif', $lang_smilies_inc_php['fool']),

то слово :fool: так и вылезет словом(((
Нужны какие-то спец значки что ли или это еще где-то дописывать надо?

Makc666

Quote from: LeaX on November 20, 2007, 04:37:58 PM
Странно, если взять и добавить в обе таблицы что-то типа:
array(':fool:', 'icon_fool.gif', $lang_smilies_inc_php['fool']),

то слово :fool: так и вылезет словом(((
Нужны какие-то спец значки что ли или это еще где-то дописывать надо?
Нужно.

Во все языковые файлы, которые Вы используете в секцию:
// ------------------------------------------------------------------------- //
// File include/smilies.inc.php
// ------------------------------------------------------------------------- //

if (defined('SMILIES_PHP')) $lang_smilies_inc_php = array(
  'Exclamation' => 'Exclamation',
  'Question' => 'Question',
  'Very Happy' => 'Very Happy',
  'Smile' => 'Smile',
  'Sad' => 'Sad',
  'Surprised' => 'Surprised',
  'Shocked' => 'Shocked',
  'Confused' => 'Confused',
  'Cool' => 'Cool',
  'Laughing' => 'Laughing',
  'Mad' => 'Mad',
  'Razz' => 'Razz',
  'Embarassed' => 'Embarassed',
  'Crying or Very sad' => 'Crying or Very sad',
  'Evil or Very Mad' => 'Evil or Very Mad',
  'Twisted Evil' => 'Twisted Evil',
  'Rolling Eyes' => 'Rolling Eyes',
  'Wink' => 'Wink',
  'Idea' => 'Idea',
  'Arrow' => 'Arrow',
  'Neutral' => 'Neutral',
  'Mr. Green' => 'Mr. Green',
);

2x2

Народ, привет. Подскажите, пожалуйста, как в Coppermine Photo Gallery 1.3х добавить смайлики. В папку на ФТП залил, а в самой галереи не отображаются. В настройках ничего о смайлах не нашел.

А "Автодобавление" - это вообще уникальная вкладка: "Эта функция позволяет добавлять файлы в 'пакетном режиме'.
Выберите папку, куда Вы хотите добавить Ваши файлы". И всё. Ни кнопок, ни путей. Где выбрать - известно только создателю...

Ладно, вопрос о смайлах, извиняюсь.

MISHA

Что бы Ктулху не воскрес, подпишись на RSS

2x2


Alex Revo

Поставить в настройках браузера Кодировка- Кирилица 1251

2x2

Страшно. Очень. Народ, кто-нибудь добавил?

Ничего не нашел описанного выше. Вообще ничего. Такое впечатление, что мою версию движка писал, мягко сказать, человек очень уставший...
Порой такое там накручено, что думаешь, как же в голову такое пришло...

Я так понял, что пусть мои сидят без смайликов, чем я буду почти по одному их прописывать. А главное, под них базу надо подготовить. Как каждая тема эти смайлы тянет из совершенно другой папки - не понимаю.

Может под них окно какое сделать и оставить задумку "сценариста" движка с ним самим? То есть мод какой-нибудь поставить... Ну, попроще, чем "заводское".

Может кто реализовывал, поделитесь, пожалуйста.

Спасибо.

Makc666

Quote from: 2x2 on December 07, 2008, 07:44:24 PM
Вероятно там ответ. Но как по ссылке увидеть русский текст?
Можно тут почитать -> http://forum.coppermine-gallery.net/index.php/topic,37805.0.html

Quote from: 2x2 on December 07, 2008, 01:41:25 PM
Народ, привет. Подскажите, пожалуйста, как в Coppermine Photo Gallery 1.3х добавить смайлики. В папку на ФТП залил, а в самой галереи не отображаются. В настройках ничего о смайлах не нашел.
1.3.x старая версия, смотреть что там и как, честно желания нет.

А для версии 1.4.x всё, в принципе, описано выше.

LeaX

Я ушла с вашего движка на Photopost  :P а там нет вот такой полоски с кликабельными смайликами, код которых при клике сам вставляется в textarea.

Скажите мне - этот механизм он в сам код вписан и с БД связан или это реально прописать руками сделать себе такое же на другом движке?
Не хочется ставить из-за смайликов громоздкий редактор, но и без смайликов плохо.

Makc666

Quote from: LeaX on February 21, 2009, 07:55:49 AM
Я ушла с вашего движка на Photopost  :P а там нет вот такой полоски с кликабельными смайликами, код которых при клике сам вставляется в textarea.

Скажите мне - этот механизм он в сам код вписан и с БД связан или это реально прописать руками сделать себе такое же на другом движке?
Не хочется ставить из-за смайликов громоздкий редактор, но и без смайликов плохо.
Что значит сам вписан или нет?
Смайлики - это часть механизма Coppermine.

Конкретно сам механизм вставки смайликов в какую-то строку не связан с базой данных, он скорее связан с JavaScript.

ЭЭЭэ... Руками можно всё сделать на php, поэтому отвечая прямо - реально сделать себе такой же на другом движке.

LeaX

QuoteРуками можно всё сделать на php
Makc666 )) Звучит)  :D

Ладно, все прощаюсь с вами, не буду вас больше досаждать. Там похоже как-то разберусь со смайликами уже, так что вопрос закрылся.

:-* спасибо за помощь и вообще за галерею кстати тоже.
Вот бы еще все, что здесь понаписано на форуме было сразу дефолтом включено в движок...  ::)