Публикация в группе: Плагин WP-Recall - Личный кабинет на WordPress

Категории группы: Обновления

Приветствую!

Не будем тянуть резину, переходим к разбору релиза.

Итак, в плагине был полностью заменена библиотека загрузки файлов, которая использовалась ранее. Одна большая библиотека была заменена тремя узкоспециализированными и аккуратно сведенными в единую систему, что привело к большей управляемости функционала и возможности дальнейшего развития. В данному случае, такой подход вполне оправдан - одно звено легче починить или заменить, чем всю цепь. Эти изменения затронули функционал загрузки файлов практически во всех основных дополнениях: был полностью переписан код загрузки аватара пользователя, обмен файлами через личные сообщения, загрузка изображений при публикации, в галерею пользователя и тд.

Загрузка аватарки стала более бесконфликтной по сравнению с более ранними версиями, наконец то появились кнопки на закрытие диалоговых окон :). В функционал загрузки аватарок было добавлено формирование миниатюр различного размера: 70, 150 и 300px, которые будут автоматически выводится в нужном месте при вызове плагинами или шаблоном. Например, если была вызвана аватарка размером 200px, то будет использована для вывода ава 300px, если запросили аватар 50px, то подхватится ава 70px. При желании можно добавить свой размер при формировании миниатюр.
Загруженный аватар теперь можно удалять, соответствующая кнопка появляется при наведении курсора на аватар пользователя в личном кабинете.

Плагин получил новую рейтинговую систему в виде нового дополнения "Rating System", которое теперь будет входить в базовую комплектацию плагина Wp-Recall, старое дополнение "Rayting System Wp-Recall" более не поддерживается. Функционал рейтинговой системы был не просто доработан, он был полностью переписан. Вместе оба дополнения не смогут работать, старое дополнение надо будет обязательно отключить перед обновлением. Новое дополнение при активации перенесет существующие данные рейтинга в новые таблицы после чего старые таблицы будут удалены из базы данных.

Новая система рейтинга предоставляет гораздо больше возможностей для кастомизации и управления каждым компонентом в отдельности. Новая структура таблиц в БД позволит выводить данные рейтинговой системы по множеству параметров, не только по значению рейтинга, но и по времени. Теперь вся рейтинговая система делится на типы рейтинга, каждый из который имеет свои настройки и может управляться отдельно. Например, отдельными типа рейтинга можно назвать: рейтинг комментариев, рейтинг записей, рейтинг фото и тп. Рейтинг постов произвольного типа тоже выделяются в отдельный тип рейтинга и при необходимости данный тип записей надо будет подключать к рейтинговой системе в качестве отдельного типа рейтинга. Подключить к рейтинговой системе, на самом деле, можно практически все что угодно, например, определенные действия, такие как публикация нового комментария или просмотр одной страницы, если их подключить в качестве определенных типов рейтинга, то эти действия будут фиксироваться рейтинговой системой, для этих типов рейтинга появятся свои настройки и в дальнейшем для данных рейтинга этих типов можно будет выводить свою статистику. В общем, задел на будущее для использования и развития этого функционала достаточно большой, на данный момент, весь возможный функционал рейтинговой системы еще не раскрыт. Чуть позже я опубликую подробный урок как добавлять новые типы рейтинга в коде своих дополнений и управлять данными рейтинговой системы, а пока можно пользоваться обширными существующими настройками нового дополнения.

2015-08-09 13-34-04 НАСТРОЙКИ ‹ WPPOST - продажа цифровых товаров — WordPress - Google Chrome

Существующие типы рейтинга имеют каждый свои настройки и позволяют:

  • отключать /включать свою работу на сайте
  • устанавливать свой стиль вывода кнопок для голосования (Мне нравиться или плюс/минус)
  • устанавливать свое значение для одного голоса
  • указывать оказывает ли данный тип рейтинга влияние на полный рейтинг пользователя
  • формировать свой шаблон вывода результатов голосования в общем рейтинге пользователя
  • устанавливать ограничение на кол-во положительных/отрицательных голосов к публикациям одного пользователя на определенное время

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

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

Шаблон вывода истории рейтинга позволяет сформировать свой формат строки изменения рейтинга определенного типа в общем рейтинге пользователя. Например запись вида

%DATE% пользователь %USER% поставил %VALUE% к посту "%POST%"

будет выводить примерно такую строку:

27 мая 2015 пользователь admin поставил -1 к посту "Все средства хороши"

 

2015-08-06 21-19-20 Андрей Plechev WPPOST - продажа цифровых товаров - Google Chrome

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

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

2015-08-06 21-18-43 Андрей Plechev WPPOST - продажа цифровых товаров - Google Chrome

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

Настройки новой формы публикации позволяют указывать какие именно контентные блоки сможет использовать автор статьи. Сейчас существуют:

Минус данной формы в том, что в админке в редакторе публикации ее текст окажется набором несложных шорткодов, благодаря которым и работает новая форма публикации. Если админ не уверен, что плагин Wp-Recall будет использоваться на его сайте постоянно, то ему не стоит выбирать публикацию через новую форму, тк при отключении плагина, все статьи опубликованные новым методом превратятся в набор таких шорткодов.

Но старая форма публикации плагина никуда не делась и вы сможете выбирать между формами в настройках дополнения публикации. Стоит заметить, что даже если на сайте в данный момент все статьи публикуются через новую форму, старые публикации все равно будут редактироваться через старую форму публикации, тк не поддерживают новый функционал.

Стоит упомянуть о новых настройках дополнения публикации. Ранее пользователи, которым был разрешен доступ в консоль сайта не могли пользоваться фронт-энд редактором публикации, а переходили в административный редактор публикации, теперь же можно указать кто может пользоваться редактором плагина при редактировании публикации, а кто нет. Например, если галочка стоит для пользователей уровня "Автор", то они могут редактировать, если нет, то редактировать свои статьи у них вообще не получится. Редактор же сможет пользоваться как редактором в админке, так и редактором плагина, если ему это было разрешено. Кстати, редактор не сможет редактировать статьи пользователей уровня "администратор", т.е. стоящих выше него в правах. Также для редактирования теперь можно указывать предельное время в часах, после истечения которого редактирование через фронт-энд редактор становится невозможным.

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

2015-08-06 21-24-13 Форма публикации WPPOST - продажа цифровых товаров - Google Chrome (2)

Отдельно стоит упомянуть новый функционал добавления меток в форме публикации. Администратор может вывести заранее подготовленный список меток для выбора пользователем, указав в настройках публикации идентификаторы этих меток через запятую. Если пользователь посчитает нужным добавить свою метку, то необходимо начать ее вписывать поле для новой метки, при этом плагин будет автоматически производить поиск среди существующих меток по первым введенным буквам и при нахождении таковых показывать пользователю. Ему останется лишь выбрать нужную метку из списка. Если же нужной метки не было найдено, то пользователь после написания метки должен нажать кнопку Enter и метка будет добавлена к публикации.

Быстрая форма редактирования существовавшая в плагине с древних времен и используемая, например, при редактировании публикации в фото или видео-галереях пользователя была полностью переписана и поставлена на новый функционал. Теперь это корректно отображаемое аккуратное окно. Кстати, функционал формы быстрого редактирования при желании можно использовать  в других дополнениях.

В личном кабинете я решил отойти от всплывающих окон для вывода списка подписчиков или рейтинговой статистики. Теперь эта информация выводится в отдельной вкладке, стандартизировав и приведя к единому шаблону вывод информации в личном кабинете. Информация выведенная в области 'content' личного кабинета теперь по-умолчанию скрывается и показывается только по требованию пользователя, как правило, в этой области выводятся контент полей профиля пользователя.

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

Были доработаны некоторые дополнения расширенной версии, например, дополнение видеогалереи теперь поддерживает больше сервисов, а именно youtube.com, smotri.com, vimeo.com, rutube.ru, tvigle.ru, mail.ru, coub.com. Дополнение автоматически генерирует миниатюру к загруженному видео и сохраняет ее на сервере одного размера для всех сервисов, чтобы при выводе видеогалереи не было расхождения по размеру миниатюр.

Наконец был полностью протестировано подключение плагина к Единой Кассе, теперь можно с уверенностью говорить о том, что плагина поддерживает подключение к трем платежным агрегаторам.

Архив базовой версии плагина уменьшился стал весить чуть более 1 Мб, а это значит что оптимизация кода плагина привела к удалению чуть менее 300 кб, что довольно существенно.

Благодаря пользователю michrez плагин был частично переведен на иврит.

Разработчикам:

Теперь можно указывать в каком месте личного кабинета выводить кнопку определенной вкладки. Функция rcl_tab получила новую настройку 'output', указание которой влияет на место ее вывода. Значением для этой настройки могут быть идентификаторы контентных блоков личного кабинета: sidebar, content, header, footer и тд, подробнее можно узнать тут /api-rcl/rcl_block/

Например, код

rcl_tab('followers','rcl_followers_tab',__('Followers','rcl'),array('public'=>1,'output'=>'sidebar','class'=>'fa-twitter'));

выводит кнопку "Подписчики" в блоке 'sidebar' личного кабинета, под аватаркой. Если не указывать значение для output, то кнопка будет выведена стандартно - в меню личного кабинета.

Плагин получил свой функционал для вывода смайлов. Сами смайлы он использует либо стандартные, либо те что предлагаются другие плагины, например, Classic smilies, но в нужном месте он их выводит теперь не сразу, а только когда это необходимо пользователю, получив весь список смайлов отдельным ajax-запросом. При желании можно использовать данный функционал в своих дополнениях или при использовании смайлов в форме комментирования. Надо только разместить в нужном месте функцию:

rcl_get_smiles('id_textarea');

'id_textarea' - идентификатор текстового поля в который будут добавляться смайлики.

Функция выведет смайлик при наведении на который будут получены и выведены во всплывающем окне все остальные смайлы.

Свой размер миниатюры для аватарок можно добавить несложным кодом:

add_filter('rcl_avatar_sizes','add_new_avatar_sizes');
function add_new_avatar_sizes($sizes){
	$sizes[] = 200;
	return $sizes;
}

В плагин была добавлена своя js-функция для вывода уведомлений пользователю. Ее легко использовать в своих скриптах вместо простого alerta.

rcl_notice(text,type);

text - текст уведомления пользователю;
type - тип уведомления, может быть success, warning и error;

Также появилась функция показа и скрытия прелоадера плагина. Эту функцию при желании также легко использовать в своих разработках для обеспечения единообразия загрузки контента на странице.

rcl_preloader_show(element);

element - указание класса или идентификатора в который загружается контент или происходят манипуляции с ним;
Закрывает выведенный прелоадер функция

rcl_preloader_hide();

В завершении хочется обратить внимание на некоторые тонкости обновления плагина на 13-ю версию. Рекомендую перед обновлением отключить все активные дополнения плагина и делаем бекап БД, берегите свои и чужие нервы. После обновления произведите активацию всех необходимых дополнений, выставите настройки плагина и дополнений, проверьте правильность вывода информации на сайте и правильность работы функционала.

Не все что планировал удалось реализовать в этой версии, объем всех необходимых доработок и планов по написанию нового функционала очень большой. Если среди читателей этой статьи будут разработчики готовые оказать посильную помощь в развитии и доработке плагина, взять на себя часть задач или вообще заниматься развитием одного из дополнений, то всегда готов выслушать предложения в личке или по почте support@codeseller.ru

Хочется поблагодарить пользователей Кос и Otshelnik-Fm за помощь в тестировании и новые идеи.

 

15

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

не в сети 11 часов

Андрей CS

12K
рассматриваю задания
Комментарии: 2742Публикации: 481Регистрация: 30-11--0001Продаж/Покупок: 0/0