Публикация в группе: Otshelnik-Fm - мои работы (код, плагины, дополнения, статьи и руководства)

Категории группы: Работаем с Wp-Recall

Это апи должно было выйти в 17-й версии WP-Recall, но по просьбам трудящихся его первая часть вышла уже сейчас.

API Notice вышло с релизом WP-Recall 16.18.0 и в версии 16.18.1 туда были добавлены куки (cookie) - т.е. с этой версии стало возможным закрывать сообщение с уведомлением - на определенное время. Время жизни куки разработчик задает самостоятельно. По умолчанию 30 дней.


Так что за единое APi нотисов пришло в плагин и зачем?

Задача, показать пользователю сообщение - тривиальная задача и достаточно часто требуемая.

В своих дополнениях я заметил что повторяюсь выводя эти сообщения и стилизуя их.
Посмотрев поглубже - увидел что в WP-Recall таких окон с десяток и часто они работают на несогласованном механизме. Соответственно выглядят по разному и всё это нарушает единое целое.

Думаю и сторонние разработчики также используют свои механизмы реализации уведомлений и так из раза в раз...

Вот что получилось:

 

Это первая итерация уведомлений. Данный механизм будет дополнен в 17-й версии и там же будут все существующие уведомления плагина переведены на это апи.

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


Как добавить уведомления:

Разрабатывая своё дополнение вы можете использовать функцию rcl_get_notice()


Пример 1 - создадим простое уведомление с типом success:

$args = [
    'type' => 'success',
    'text' => 'Всё успешно загружено'
];
return rcl_get_notice( $args );

- иконки для типов уведомлений уже предустановлены.

Результат:
 


Пример 2 - создадим предупреждение (warning) с заголовком и своей иконкой:

$args = [
    'type'  => 'warning',
    'title' => 'Внимание!!!',
    'icon'  => 'fa-trash',
    'text'  => 'Вы собираетесь удалить профиль. Это необратимое действие!'
];
return rcl_get_notice( $args );

Результат:

 


Пример 3 - простой (simple) нотис без иконки:

$args = [
    'type' => 'simple',
    'text' => 'Публикаций пока нет'
];
return rcl_get_notice( $args );

Результат:

 


Пример 4 - блок уведомлений скрываемый на 30 дней щелчком по крестику закрытия.

Часто нотис достаточно показать один раз в несколько дней. Например что не заполнены некоторые поля профиля или есть возможность подписки в группах. И чтобы не быть назойливым - можно их скрывать на нужное количество дней - если пользователь нажал на крестик "закрыть".

$args = [
    'border'      => true, // default: true
    'class'       => 'my_custom_class',
    'type'        => 'info', // info,success,warning,error,simple
    'icon'        => 'fa-envelope-o', // https://fontawesome.com/v4.7.0/icons/
    'title'       => 'Возможность подписки',
    'text'        => 'Вступите в группу.<br>Так вы подпишетесь на уведомления группы и будете получать новости из этой группы.',
    'cookie'      => 'otfm-group-notify', // уникальный cookie id
    'cookie_time' => 14,
];
return rcl_get_notice( $args );

- обратите внимание на параметр cookie. Его вы должны передавать уникальным. Именно так будет называться кука.
cookie_time - 2 недели будет жить кука. И на это время скроется сообщение если его пользователь закроет. По умолчанию 30 дней.

text - любой html. я в дополнении друзей уже использую эти уведомления и в одно я сделал полноценной формой: сообщение, две кнопки - удобно.

Результат:

 


Какие планы на развитие api уведомлений?

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

Может быть у вас есть какие идеи?
Озвучивайте их в комментариях - в 17-й версии мы рассмотрим их и самые полезные войдут в ядро. Время еще есть.

Живая демка

6

Автор публикации

не в сети 1 день

Владимир (Otshelnik-Fm)

4 357
Перегорел
Почитать: https://otshelnik-fm.ru/post-group/goodbye-open-source/
Комментарии: 2194Публикации: 245Регистрация: 27-01-2013Продаж/Покупок: 0/0