Всем привет!
Несколько последних обновлений плагина хоть и не принесли каких-то ощутимых изменений для конечного пользователя, но были крайне необходимы для дальнейшего развития и появления по настоящему революционного функционала (в рамках плагина, конечно). И обновление до версии 16.23.0 наконец принесет долгожданные изменения интересные не только разработчикам, но и пользователям плагина. В этой заметке я расскажу о нескольких крайне интересных фишках, которые появились с этим обновлением и которые вы уже завтра сможете потрогать руками.
Загрузчик файлов в ядре
Свой аплоадер, а говоря по русски, загрузчик файлов, был необходим плагину как воздух. Плагин уже долгое время предлагает возможность загружать файлы для самих разных целей: в чате, форме публикации, пользовательская аватарка и при этом не имел единого функционального ядра для реализации этой задачи, под каждую необходимость реализации загрузчика приходилось писать свой скрипт, стили и php-обработку.
Но теперь печальные времена позади, ведь в ядре плагина появился специальный класс, помогающий реализовать функционал загрузки файлов для самых различных задач буквально за пять минут! И конечно все файловые загрузчики базовой части плагина были переведены на этот аплоадер, что позволило удалить множество строк, по сути, дублирующего кода.
Функционал получился удобным и гибким, я обязательно расскажу о нем подробнее в одной из своих следующих статей, которая безусловно будет интересна разработчикам, но тут упомянуть об этом было необходимо, чтобы более логично перейти к следующей части публикации.
Новые типы произвольных полей
Коротко упомяну о новом типе произвольного поля editor - "Текстовый редактор". На самом деле, оно уже было в ядре плагина, но не было доступно широкой публике из-за некоторых ограничений при его использовании, но вот оно с нами, в действии будет формировать примерно такое поле:
Настройки поля позволяют опционально подключать визуальный редактор или кнопку для загрузки файлов в медиабиблиотеку WP. Единственное ограничение при его использовании, которое пока не решено - невозможность его полноценного использования при AJAX-загрузке. Учтите это при его использовании.
И конечно, появление такого полезного функционала для загрузки файлов не могло обойти стороной произвольные поля. На основе нового класса было создано новое поле типа uploader - "Файловый загрузчик". А это значит, что загрузка файлов стала ближе к людям, ведь указанное поле доступно практически в любом менеджере произвольных полей плагина. Например, его можно будет легко использовать в поле профиля или форме публикации, при публикации темы форума или при оформлении заказа.
Для этого необходимо перейти в менеджер полей профиля и выбрать новое поле типа "Файловый загрузчик". Поле имеет свои настройки, в которых будет несложно разобраться.
Отдельно стоит упомянуть об опции "ID прикрепленного текстого редактора". Если в текущем менеджере полей также будет присутствовать поле типа "Текстовый редактор", то вы можете закрепить его за файловым загрузчиком, указав идентификатор поля редактора в опции загрузчика. Файлы загруженные через этот загрузчик можно будет перекидывать в контент текстового редактора, если была установлена такая связь между редактором и загрузчиком. Будет выглядеть примерно так:
Вот такую взаимосвязь полей теперь можно настраивать.
Есть у нас еще одно поле для загрузки одиночного файла типа file. Про него мы также не забыли. Оно было также переведено на функционал нового аплоадера и теперь позволяет также быстро и красиво загружать и удалять один файлик.
Аватарка и ковер по-умолчанию
Раз уж мы получили такой удобный инструмент как файловых загрузчик и даже произвольные поля на его основе, то мы не смогли пройти мимо того, чтобы не расширить опции плагина парочкой файловых загрузчиков. В результате теперь мы имеем возможность указывать дефолтные аватарку пользователя и фоновое изображение для личного кабинета. Не забудьте заглянуть в опции плагина и загрузить свои изображения!
Новый редактор формы публикации
Большой шаг вперед, который сделал плагин в предыдущих обновлениях в работе с произвольными полями дал возможность более свободно смотреть на возможности их дальнейшего использования. Ярким примером использования нового API произвольных полей стало развитие менеджера произвольных полей и его развитие до более продвинутого структурного менеджера полей - менеджера в котором мы можем задать структуру создаваемой формы за счет ее деления на различные области с группами полей.
Итак, начиная с этой версии мы можем использовать новый структурный менеджер полей формы публикации, который позволяет управлять полями не только в рамках некоего одного "стакана", а раскидывать их по создаваемым областям, формируя группы полей и тем самым влияя на отображение самой формы публикации.
Форма публикации при показанной на скриншоте структуре будет выглядеть примерно так:
Обратите внимание, что каждая миниатюра загруженного файла в форме публикации теперь имеет свой менеджер доступных действий. Мы надеемся, что вам не составит труда разобраться с функциями, которые они предлагают, на данный момент это:
- удаление файла
- добавление в текстовый редактор
- назначение миниатюрой
- указание для вывода в галерее
Последний пункт делает более удобным процедуру формирования галереи публикации и если раньше мы могли поставить только одну галочку для вывода всех изображений в галерее, то теперь мы можем сформировать галерею опционально из отдельных изображений.
Конечно, появление такого структурного редактора даст толчок к дальнейшему применению этого функционала в других направлениях, только формой публикации дело не ограничится, например, сейчас рассматривается возможность его применения для создания формы регистрации. Надеюсь в следующих обновлениях мы увидим новые примеры его применения.
И кстати, из рубрики "Вы просили - мы сделали": теперь вы можете создавать различные формы публикации, с разной конфигурацией полей для различных типов записей, без ограничений. Пользуйтесь обязательно!
Iconpicker
Друзья, когда будете ставить эксперименты с произвольными полями, не забудьте зайти в менеджер вкладок личного кабинета, там вас будет ожидать iconpicker - удобный помощник, который позволит вам быстро подобрать нужную иконку для вкладки.
Никаких больше переходов на сторонние ресурсы - просто нажимаете на поле иконки и выбираете нужную. Пока используем эту радость только в менеджере вкладок, но кто знает, где нам понадобятся эти иконки позже - будем применять и там.
Не буду здесь перечислять гигантский перечень различных правок и исправлений, которые велись по ходу основного обновления и были также включены в него.
Завершая этот краткий экскурс по обновлению, хочется упомянуть о том, что мы уже получили несколько больших обновлений плагина за достаточно короткий срок и еще несколько предстоит совершить. Мы медленно, шаг за шагом, но верно идем к полному обновлению всего плагина, до будущей 17-й версии, самой лучшей, удобной и красивой версии плагина) Не у всех обновления прошли гладко, кого то они заставили нервничать, а кого то даже злиться, но знайте, что разработчики плагина безмерно благодарны за то, что вы остаетесь с нами, используете плагин и вместе с нами верите в него. Спасибо вам!
Внимание! Мы, конечно, все хорошо проверяли и тестировали, но вы должны иметь ввиду, что это большое обновление плагина, постарайтесь перед обновлением обязательно сделать бекап своего сайта, а при возникновении проблемы срочно создавайте тему на форуме поддержки, мы будем вас там ждать.
Для разработчиков: в ядре появились css переменные (основной цвет - hex и rgb, оттенки - ярче и темней и инверсный). Посмотрите в :root. Теперь можно делать всякие цветовые решения отталкиваясь от основного цвета реколл https://yadi.sk/i/jl-GVryshwAU7Q как раз значения rgb позволяют нам использовать прозрачность rgba.
Также появилось у кнопок, в зависимости от выбранного фонового цвета кнопки, автоматическое определение текста кнопки. Так на светлой кнопке будет черный текст, на темной кнопке - белый. Он доступен также в css переменной --rclText
Теперь действительно хороший повод с переменными поработать по плотнее, спасибо!
Еще немного и wp будет плагином к WP-Recall 😀
Все круто, и главное не в выходной, буду смотреть как обновление доберется до меня))
Важное уточнение: после обновления плагина убедитесь, что в БД была создана таблица rcl_temp_media - новая таблица для хранения временных медиафайлов. Если этого не произошло, то просто переактивируйте плагин.
Тогда мое уточнение, Андрей если помнишь, я тут с нагрузкой парился и переактивировал плагин. В итоге у меня форум слетел, кабинет, чат и что-то там еще. Я конечно это дело все восстановил себе.
Но вот для всех, наверно надо добавить о обязательном бекапе пред переактивацией)
Ну в заметке к записи говорится о бекапе. То что "выкл/вкл" после обновления что-то нарушает и бекапа нет - заметку к релизу не читали?
Если в логах есть записи - напиши на форуме - разберемся что произошло
Ок, с бекапом понятно) Насчет логов, посмотрю еще разок, если сохранились, я за пять дней храню архивы, но насколько помню, как раз там не было ничего криминального.
Понял, речь не про это обновление, а ранее. Ну за это время подобного ни у кого не было - на форуме тишина была
Еще в релизе, мы где дотянулись - всё перевели на апи реколл кнопок https://codeseller.ru/post-group/api-knopok-buttons-wp-recall-i-ispolzovanie-obyortok-wrapper/
и апи нотисов https://codeseller.ru/post-group/rabotaem-s-api-uvedomlenij-notice-wp-recall/
Также в группах поработали - удобно для пользователя когда он гостем упирается в закрытую группу, в самой закрытой группе поскрывали виджеты для не участников, всякие системные (нотисы) уведомления.
- если вы заметили что где-то еще не переведено на эти новые механизмы (кнопки, уведомления) - пишите - переведем.
С новой версией Рекал часть дополнений перестали работать. Вернул старую версию. Может буду ждать или обновлений дополнений или более стабильную версию.
Автор может и не знать что из его 100 дополнений что-то поломалось. Все репорты по проблемам пишем на форуме поддержки конкретно взятого дополнения.
По проблемам в плагине - создаем новую тему на форуме поддержки https://codeseller.ru/forum/
Сейчас более стабильная версия 16.23.1 (и то по неточности ссылки в переводе) - т.к. более никаких репортов не было.
Я высказал комментарий к данному посту, когда я захочу описать проблему, я сделаю это на форуме.
Сообщение выше для других пользователей - а то начнут сейчас репортовать тут "что-то сломалось"
- будем ждать.
Уточню еще момент, обязательно обновите кеш всех плагинов оптимизации, кеширующих, объединяющих...после обновления самого плагина.
Иначе сайт скривит, так как изменения существенные.
Общаюсь я с поддержкой яндекса по ленте турбо сейчас, походу обновляю плагин, в разговоре, типо все ок, смотрите, так-то и так-то, ошибочка видимо у вас... И тут гляжу на свой сайт и у меня просто армагеддон 😁 В общем не расслабишься 😀
По правильному, для кеширующего плагина: они должны сами автоматом кеш сбрасывать при обновлении плагинов и тем - это редко запускаемый хук и как раз тот, который требует сброса кеша.
А по браузеру - ctr + F5 - наше всё. Особенно жестко на базе хромиума кешируют браузеры. Файерфокс умней в этом плане.
Теперь, в современных условиях это проблематично, я про авто сброс кеша.
Теперь есть или необходимы как минимум несколько версий сайта. С учетом скорого перехода на Mobile First гугла и кучу других нововведений. AMP десктоп и мобильная, траф идет на них, так как часть уже видимо перевели. Турбо мобильная и десктоп яндекса, куда тоже отдается со своими приблудами,и конечно обычный сайт. В итоге, так как везде на страницах есть свои фишки, добавленные руками или плагинами, авто сброс кеша и других оптимизирующих функций не прокатывает.
Согласен, гемор, но пока от этого не уйти. Если бы только на гугл работать, то все просто, сейчас можно весть сайт отдавать как amp и не парится, просто подрихтовать плагины и все, причем там не сложно, а во многих случаях и не надо, справляется технология гугла. Но на-то надо и яндекс держать и в итоге получаем, что получаем))
ну вы сами повелись на этот зоопарк.
Не вижу проблем автосброса кеша. Это как амп или другие технологии поломает?
А то что добавлено руками - делали с оглядкой на апи кеширующего плагина? Нет наверно.
Но тут речь не о то что сделано руками - а о том почему плагин кеширования не сбрасывает кеш автоматически при обновлении темы или других плагинов - вроде простой кейс. Можно и опцию завести.
Кеш на то и кеш что его грохнуть не жалко. Он не влияет на процессы и бизнес логику. Ну чуток подрастет нагрузка на сервер - пока новый не сгенерится. Так это не проблема.
p.s. мы говорим тут о каких то серьезных вещах - а посещалка у сайта какая?
Да ладно, не забивай голову, у тебя и так дел полно. Основную мысль я высказал, остальное уже частности конкретного сайта)
И да, плагины популярные не сбрасывают автоматом кеш, но хуки имеют для сброса другими плагинами. Как то так 😀
Надо что-то над адаптивностью подумать с редактором в несколько колонок.
Например:
для .group-areas стоит добавить
flex-wrap: wrap;
И в .rcl-content-area
заменить style="width:50%"; (например 50% для 2ух колонок)
на style="flex: 1 1 50%";
И на маленьких экранах, например 768px делать ширину .rcl-content-area 100%
Или у .rcl-content-area добавить принудительно min-width:300px; - как вариант
А то сейчас получается при 2ух колонках слишком узкие поля на маленьких экранах получаются
Еще можно сделать так:
для .group-areas стоит добавить
flex-wrap: wrap;
в .rcl-content-area
заменить style="width:50%"; (например 50% для 2ух колонок)
на style="flex: 1 1 50%";
и в группу полей добавить опции, как у секции, куда указывать min-width для группы.
Если опции для группы полей добавить можно - такой вариант предпочтительней
Спасибо, в ближайшее время займемся этим вопросом.
Кстати, возможно, не все заметили, что ширину групп полей можно менять
Магия флекбокса и css-переменных сделали свое дело - поля адаптируются к ширине блока - и сайдбар в теме теперь не мешает. В 16.23.8
Вроде 2 и 3 колонки работают адаптивно. Протестируй у себя ещё
Да сейчас стало лучше.
Единственное --multiplier задан жестко 600px - 100%
Может раз у секций есть опции, сделать там еще одну опцию типа: минимальная ширина группы полей?
Тогда --multiplier можно будет формировать как: значение_из_опции * кол-во_колонок - 100%
за ним понаблюдаем. А смысл его менять? Я не понимаю что нам даст еще одна опция - только усугубит понимание настроек. Если значение 600 выбрано неверно - его через css под проект поменять всегда можно
Понятно что через css менять можно. По сути я для себя мог проблему решить вообще без изменений, сделав все на css. Я сейчас говорю про то, что бы люди без знаний могли сделать максимум самостоятельно.
Если --multiplier задан жестко 600px - 100% это значит что минимальная ширина каждого контейнера 200px при 3ех колонках и 300px при 2ух колонках. В принципе для ух колонок нормально, но для 3 200px - мне кажется мало.
Если не хотите добавлять опцию, то хотя бы заменить 600px на 300px * кол-во_колонок
Тогда у каждой секции будет непонятное для пользователя поведение мобильности - там уже мобильно. Тут еще нет...
Те данные что не умещаются - может не в 3 колонки размещать? Здравый смысл должен же быть. Я 3 поля разместил и 200 пикселей - не вижу что мало https://yadi.sk/i/a6sv5LiLx4d8XQ
Так если --multiplier добавлять не в файл стилей .rcl-content .rcl-content-group .group-areas
а на сам элемент в тег style, то получается он будет нормально отрабатывать и для каждого блока переменная --multiplier будет своя, разве нет?
Что-то я перестал понимать. Что на что поменять?
Рабочий вариант я вижу пока тот что в ядре. Другие варианты толку на дали
Сейчас --multiplier: calc(600px - 100%)
Применяется сразу ко всем .group-areas и получается у каждой группы полей в секции минимальная ширина 600px / на кол-во секций.
т.е. если у нас структура:
{{первый блок}{второй блок}{третий блок}{четвертый блок}} - мин ширина блока 150px
{{первый блок}{второй блок}{третий блок}} - мин ширина блока 200px
{{первый блок}} - мин ширина блока 600px
{{первый блок}{второй блок}} - мин ширина блока 300px
Если вместо этого этого добавить к каждому .group-areas style="--multiplier: calc(200px * кол-во_колонок - 100%)" (200px если мы хотим мин. ширину 200px)
То получится
{{первый блок}{второй блок}{третий блок}{четвертый блок}} - мин ширина блока 200px
{{первый блок}{второй блок}{третий блок}} - мин ширина блока 200px
{{первый блок}} - мин ширина блока 200px
{{первый блок}{второй блок}} - мин ширина блока 200px
А если в настройки секции добавить возможность самому указать мин ширину, то 200px можно будет заменять на значение из опций секции.
p.s. в данном контексте мин. ширина - значит ширина меньше которой элемент будет перенесен на новую строку
Артём - а ширина группе полей задаваемая в админке https://yadi.sk/i/GcYhbG_IlA9Xkw при твоем способе будет работать? Я не смог воспроизвести верную работу - правый сжимается меньше чем 200 пикселей, т.к. тот слева (что 70%) выталкивает его https://yadi.sk/i/qi70F-tYoKnw7g
Эксперименты с назначением класса родительскому контейнеру (секции) по кол-ву внутренних групп полей - мне также не дало результатов. Работает - но не учитывается ширина группы полей. Но чтоб учитывало всё - никак. Брошу я это дело с экспериментами (времени на эту мелочь надо, лучше допы идти актуализировать. Полный швах у меня там. Горячая осень).
У кого есть гибкое решение - давайте Андрею. А я пока всеми руками за то что в ядре - просто и работает и под отдельно взятый проект - легкий css фикс возможен (если надо конечно).
Ну да, так не будет работать, там тогда придется min-width переопределять, это геморно будет. Тогда пусть как есть остается
Подскажите а теперь как выводить поля профиле в форме регистрации?
В одном из последних обновлений проблема с выводом полей в форме регистрации решалась. Если проблема сохраняется у вас и на последней версии, то прошу создать тему на форуме поддержки.
В 16.23.12 появилась поддержка передачи из урл в поиск по дополнениям. Раньше в списке аддонов был поиск по дополнениям: но урл не менялся - нельзя было по урл выйти на нужный доп. Теперь можно https://yadi.sk/i/_TGtgYSCvI9ViA
Это полезно для блока настроек: Я например проверяю
if ( ! rcl_exist_addon( 'you-need-to-login' ) )
в блоке настроек - и если его нет - то в настройках вывожу "У вас не стоит you-need-to-login - активируйте его" - и была ссылка просто на страницу дополнений. Теперь возможно пользователя подвести к нужному дополнению по ссылке сразу. Мега удобная штука для ваших пользователей.А теперь можно вызывать дочерние блоки настроек не только через select - но и через радиокнопку https://yadi.sk/i/BEFD3iYkKmrTqA . Ведь для пользователя удобней ткнуть радиокнопку - там меньше действий по кликам - в общем для ux - оно самое то. И реколл теперь дочерние настройки по радиокнопке также раскрывает.
Мелочи вроде - но удобство для пользователя и всё это складывается в удобный и дружественный интерфейс для него
Отличная новость, запишу себе обновить при возможности один доп.
С версии 16.24.10 загрузчик WP-Recall для формы публикации можно будет использовать и в админке на странице публикации, если дополнение публикации активно и это поле присутствует среди активных полей.