WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Kama WP Smiles

И снова здравствуйте! hi

Не помню точно unknw что натолкнуло меня на мысль установить смайлы на этот сайт. Вроде знакомый устроил мне разбор смайлов в мессенджере «QIP infium», которым я пользуюсь уже не первый год victory и я загорелся желанием прикрутить смайлики сюда.

Немного поискав search подходящий плагин для WordPress, наткнулся на этот, решил использовать его, но не тут-то было negative - я хотел другой вывод, и хотел упростить проверку на замену символов на смайлики. А еще, мне не нужно было так много смайликов no . Все свои желания я конечно мог реализовать, отредактировав вышеупомянутый плагин, но я как-то, почти случайно, начал писать свой код, который в итоге превратился в плагин, вроде довольно удачный  bravo

О плагине смайликов для WordPress

Что делает плагин:

  • заменяет стандартные смайлики WordPress, на смайлики из QIP.
  • добавляет список смайликов к полю комментирования. Какие смайлики попадут в список указывается в настройках.
  • добавляет смайлики в админ-панель, где можно легко их вставлять при ответе на комментарии или написании поста.
  • упрощает поиск и замену кодов смайликов в тексте.

Настройки Kama WP Smiles

Расскажу немного о настройках secret

Ручная вставка блока смайликов в форму комментирования

Плагин автоматически добавляет смайлики к форме комментариев (textarea). Однако может получиться так, что нормально встроить список у плагина не получиться. В таком случае, вы можете вставить блок смайликов вручную, в любое место шаблона. Для этого оставьте поле "Авто-вставка смайлов" в настройках пустым, так вы отключите авто-вставку, и при помощи php кода вставьте блок в нужное место шаблона (обычно где-то в файле comments.php):

<?php echo kws_get_smiles_html( 'id_формы_комментирования' ); ?>

Этот код выведет блок смайликов.

HTML теги исключения

В этой настройке можно указать HTML теги, текст в которых не будет обрабатывался плагином. Например, если там указать code, то следующий код не будет обработан плагином:

<code>улыбочка :)</code>.

Теги нужно указывать через запятую.

Специальные обозначения смайликов (смайлики исключения)

По умолчанию смайлики определяются в тексте по коду (:название_файла_смайлика:), но есть исключения. Например смайлик  smile обозначается как  :-) или :) или =), а его родной код  (:smile:). По умолчанию 3 таких исключения:  :) :( :D. Такое ограничение связано с небольшой оптипизацией... Такие исключения можно настроить в плагине.

Редактируем внешний вид

Если вас не устраивает как выглядит список смайликов, то его можно отредактировать, при условии что вы знаете css, для этого нужно изменить CSS правила в поле "CSS стили". Чтобы стили не хранились в настройках, стили можно скопировать в свой файл стилей, при этом удалить их из настроек.

Установка своего комплекта смайлов

Если вы не увидите смайликов, которые бы вы хотели иметь у себя на блоге, не нужно расстраиваться don-t_mention. Вы легко можете дополнить/заменить смайлы на свои yu .

Чтобы дополнить список, всего-то нужно создать рядом с папкой плагина папку kama-wp-smile-packs и добавить в нее свой комплект смайликов-картинок. Т.е. в итоге у вас должна получиться такая папка с картинками смайликов: /wp-content/plugins/kama-wp-smile-packs/mypack/*.gif. После создания такой папки, нужно зайти в настройки и выбрать новый появившейся пакет смайликов.

В тексте записи будет использоваться конструкция (:название_файла:). Например, если вы добавите картинку emotion.gif в тексте этот смайл будет вставляться как (:emotion:).

В названии файлов допускаются только нижний регистр латинских букв a-z, цифры 0-9, знаки - и _. Если файл имеет какие то другие знаки, то он не будет работать.

Фильтрация - удаление кода смайликов из текста

Если нужно где-то отфильтровать текст (не показывать код смайликов), то примените такой фильтр:

$text = "Пробный текст (:good:)";
$text = preg_replace('/\(:[a-z0-9-_]{0,15}:\)/', '', $text );
echo $text;

// вернет: Пробный текст

Как встроить плагин в другие поля, например в BbPress, Quick Chat

Плагин по умолчанию работает только для комментариев и записей. Если нужно «прикрутить» его куда-то еще, то вам пригодятся следующие функции и немного знаний css:

  • kws_get_smiles_html( $textarea_id ) - выводит блок смайликов для textarea
  • kws_convert_smiles( $content ) - обрабатывает контент на выходе, чтобы сделать из кодов смайлов картинки

--

В случае внезапных проблем, глюков, багов и «ещечего» или если просто появится желание написать что-то примерно такое - good, пишите в комментарии  mail

И не забудем сказать огромное спасибо автору стиля колобок за такие прикольные смайлики.

Спасибо за внимание thank_you

229 комментов
Полезные 8 Вопросы 2 Все
  • Павел

    Подскажи как сделать такую карусель из скриншотов как у тебя в статье.

    Ответить8 мес назад #
  • Ира

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

    1
    Ответить7 мес назад #
    • Kama7452

      Картинки не грузятся. Почему, непонятно, сайт в студию!

      Ответить7 мес назад #
  • @ garik

    Приветствую! Спасибо за плагин. Позвольте вопросик, как сделать вызов контейнера по клику на кастомной кнопке? Ну или хотя бы по клику на стоковый смайлик? (у меня 50-80% посетителей на сайтах с мобилок и планшетов сидят, onmouseower - не вариант sad )

    Ответить5 мес назад #
    • Kama7452

      Зашел с мобилы, кликнул, смайлики появились. Не знаю что еще надо. scratch_one-s_head

      Ответить5 мес назад #
      • @ garik

        Странно... а у меня вставляется первый смайл по клику unknw

        Ответить5 мес назад #
  • Спасибо за хороший плагин. Подключил без проблем. Смайлы появились везде - и во всех редакторах админки (постов, страниц и даже редакторе пояснений плагина Code Snippets). Во фронтэнде - в комментариях тоже появились. В общем везде где хотелось или даже не хотелось.

    Но одна затыка всё ж случилась - не появились в форме создания постов в личном кабинете плагина WP-recall. Там используется стандартный редактор TinyMCE, ну и несколько полей добавлены от WP-recall выше и ниже редактора.

    Думал подключу в ручную. Использвал

    <?php echo kws_get_smiles_html( 'contentarea-post' ) ; ?>

    contentarea-post - подсказал разработчик плагина WP-recall. Подключать пытался через плагин Code Snippets. И - тишина. Ничего нигде не появилось. Возник вопрос - в какую сторону копать, дабы всё ж таки вывести смайлы в форму создания постов. Или это надо делать непосредственно в файлах WP-recall?

    ЗЫ. Неожиданно обнаружилось, что после попытки добавить смайлы таким вот макаром - через сниппет - перестали вставляться смайлы в комментах. Открывались, но не вставлялись.

    Ответить3 мес назад #
    • Kama7452

      С WP-recall не знаком, но в целом могу сказать что плагине могут быть баги когда нестандартно что-то нужно, код там старый, его переделывать и рефакторить надо, но мне это как бы не нужно и время нет, поэтому все так как есть. Что-то подсказать вразумительное не могу, извини.

      Для редактора, там нужно не только ID textarea указать но также нужно обработать события, когда TinyMCE изменяет показываемый контент при изменении textarea, куда-то в эту сторону надо смотреть...

      Ответить3 мес назад #
      • Спасибо за ответ. Хотел бы уточниться. А как именно смайлики подключаются к редактору в бэкэнде? Где подсмотреть код, который отвечает за это? Может просто взять его за основу?

        Ответить3 мес назад #
  • @ Виктор

    Доброго времени суток! Отвозился сегодня всю ночь, но вопрос так и не решил. sad
    Подскажите, пожалуйста, как вывести смайлы в визуальном редакторе, как это реализовано в админке?

    echo kws_get_smiles_html( 'id_формы_комментирования' );
    • таким образом не получается, выводится лишь смайлик, больше ничего не работает. unknw
    Ответитьмесяц назад #
  • Tks your plugin...
    Hi, have question: how to Choose multiple packs. Eg: Cat, Dogs,...and when users comment...They can switch packages
    I don't know Russian...sorry...

    Ответитьмесяц назад #
Здравствуйте, !     Войти . Зарегистрироваться