В этой статье мы рассмотрим, как сделать плавающую кнопку на Joomla-сайте.
Делается это достаточно легко.
Для начала, нам нужна картинка кнопки, у меня вот такая:
Закидываем её на сайт в папку images.
Теперь идем в «Менеджер шаблонов» — выбираем нужный шаблон и кликаем на него, и нажимаем на «Изменить шаблон главной страницы».
Ищем начало тега . И вставляем данный код:
Главный параметр — position: fixed; именно он отвечает за перемещение картинки, она как бы прикреплена к экрану.
Left и Top — это позиция для картинки (от левого края, от верха).
Вот и все, давайте посмотрим результат.
Как мне добавить кнопку «Перевести» на свой сайт?
Если у вас есть веб-сайт, обычно лучше всего перевести его на несколько языков. Причина в том, что веб-сайты в Интернете доступны для всех во всем мире. Люди, которые говорят на других языках, таких как филиппинский, немецкий, испанский, ирландский, датский, корейский, японский и т. Д., Кроме исходного языка вашего веб-сайта, могут иметь причину посетить ваш веб-сайт. Многие люди склонны делать покупки в Интернете, когда узнают, что язык веб-сайта или интернет-магазина — на их родном языке.
Это уже не новость, что, когда вы увеличите количество языков, на которых доступен ваш веб-сайт, у вас определенно будет увеличиваться поток посетителей, направляющихся на ваш сайт. Особенно, когда ваш веб-сайт доступен, когда к нему обращаются поисковые системы. Это один из очень важных способов расширить охват.
Потребность в переводе веб-сайтов сегодня привела к появлению различных переводческих решений. В этой статье мы обсудим два таких решения и поговорим о том, как добавить кнопку перевода на свой сайт.
Добавление кнопки Google Translate на ваш сайт
Когда мы говорим о переводе, вы можете подумать о переводе с помощью Google translate. В настоящее время вы можете использовать Google Translate для обработки веб-сайтов и текстов примерно на более чем 100 языках. Среди этих языков: греческий, непальский, испанский, вьетнамский, немецкий, французский, иврит, финский, игбо, киньяруанда, самоанский и т. Д. Чтобы иметь возможность добавить кнопку перевода Google на свой веб-сайт, вам потребуется определенное количество навыков и опыта программирования. Ниже приведены три этапа обработки кода:
Первый шаг: Начните с базовой веб-страницы. После этого добавьте элемент в раздел ‘div’ кода с идентификатором ‘google_translate_element как показано ниже:
Второй шаг: добавьте ссылку на API Google Translate, как показано ниже:
Третий шаг: функция JavaScript, как показано ниже:
Это все. Затем вы заметите, что прежде чем вы сможете добавить кнопку Google Translate на свой веб-сайт, вам необходимо иметь основы программирования или нанять веб-разработчика для выполнения этой задачи.
Почему Google Translate не самый лучшийрешение
Google translate не позволяет вам контролировать переведенный контент. Вы зависите только от результата перевода. И помните, что автоматический машинный перевод — не всегда лучший вид перевода, и он плохо скажется на вашем веб-сайте в профессиональном масштабе.
Еще одна ловушка Google перевод заключается в том, что он не переводит тексты, доступные на изображениях. Это означает, что вы не можете достичь полной локализации содержания вашего сайта. В самом деле, Google перевод не коснется аспект локализации вашего сайта. ConveyThis например, позволяет переводить все аспекты вашего сайта, включая темы, скриншоты, изображения, URL-адреса и т.д., и предлагает полную локализацию вашего сайта.
Кроме того, Google перевести плагин не будет оптимизировать переведенный контент для SEO. Это действительно принижает хорошую работу, которую он мог бы сделать в ходе перевода. Когда вы используете решения перевода веб-сайта, такие как ConveyThis, вы можете быть уверены в принятии вашего переведенного веб-сайта на более высокий рейтинг в поисковой системе, и вы можете увидеть красивые результаты на Google Analytics.
Однако есть и более простое решение для перевода, которое может взять на себя перевод вашего веб-сайта, в то время как вам почти ничего не нужно делать. Это решение для перевода позволяет вам иметь кнопку переключения языка на вашем веб-сайте, которую посетители вашего веб-сайта могут выбрать, чтобы переключить язык на нужный им язык. Решение для перевода веб-сайтов, о котором мы здесь говорим, — ConveyThis .
Перевод вашего сайта с ConveyThis
ConveyThis многоязычный плагин, который служит целям перевода. Он предлагает владельцам веб-сайтов перевод содержимого своих веб-сайтов на несколько языков. В отличие от Google перевод, где вы должны нанять веб-разработчика или предварительно передовые знания кодирования, прежде чем вы можете добавить кнопку перевода, ConveyThis предлагает вам без стресса, простые и очень быстрые решения перевода, где добавление кнопки перевода никогда не является проблемой.
Как установить ConveyThis веб-WordPress
Войдите в WordPress панель мониторинга, ищите WordPress входа в систему и ищите ConveyThis в поле поиска.
Установите его. При его установке нажмите на активацию. Ключ API предложения от ConveyThis (это ключ, который вы всегда можете найти на вашем ConveyThis учетной записи).
Вы заметите место для оригинального языка. Оставьте английский, если это язык, на котором изначально работает ваш сайт. Введите целевой язык в поле целевого языка.
Ваш перевод готов. Для того, чтобы ConveyThis, вы будете ограничены одним языком для веб-сайта, и вы сможете перевести около 2000 слов. Обновите свой план с панели мониторинга ConveyThis, чтобы наслаждаться предложениями.
Выберите, как вам по нравится кнопка языка, чтобы выглядеть на вашем сайте. У вас есть возможность выбрать, хотите ли вы языки в одиночку или с флагом страны. Эта кнопка языка может отображаться на вашем сайте для того, чтобы пользователи могли легко переключаться с одного языка на другой. В противном случае вы можете разместить варианты перевода языка на боковой панели, вставить его в кнопку гамбургера или еще лучше поместить его в правом нижнем углу вашего сайта. Нажмите сохранить и продолжить.
С этого момента, вы можете пойти и проверить свой сайт на знание языка кнопку. Выберите кнопку или меню и посмотрите список языков, которые вы можете перевести. Нажмите на любой из этих языков, вы ConveyThis ваш сайт в течение нескольких секунд.
Чтобы внести необходимую коррекцию, перейдите на панель мониторинга и внесите необходимые коррективы. Оттуда вы можете увидеть каждую строку и сделать редактирование по мере необходимости. Вы можете отменить или переопределить то, что было переведено. Вы также можете проверить изображения и метаданные на панели мониторинга. При необходимости вы также можете пригласить сотрудников работать на вас, чтобы улучшить и оптимизировать веб-сайт с помощью ConveyThis мониторинга.
Создание и добавление кнопки переключения языка для вашего сайта
Теперь давайте быстро рассмотрим, как настроить кнопку переключения языка, которая была упомянута в объяснениях выше. Кнопка переключения языка — это кнопка на вашем веб-сайте, при нажатии на которую посетители вашего веб-сайта могут получить доступ к содержимому вашего веб-сайта на выбранном ими языке.
ConveyThis предлагает популярную и не трудно использовать кнопку переключателя языка для WordPress. ConveyThis позволяет добавить более одного языка на ваш сайт всего за несколько минут. Он также пользуется возможностью укладки вашего переведенного веб-сайта в соответствии с вашим желанием. Можно иметь кнопку переключения языка вашего сайта в любой части вашего сайта. Это может быть в меню, навигации, коды, или / и виджеты. Прежде чем вы сможете добавить кнопку переключателя языка, вы должны сначала ConveyThis установку плагина, если вы еще не сделали этого. Теперь после установки ConveyThis плагина на вашем сайте перейдите на ваш WordPress задней части. Выберите ConveyThis и выберите кнопку языка. Когда вы получите на этом экране вы заметите следующие варианты: если вы хотите использовать падение или нет, если вы будете использовать флаги или нет, типы флагов вы хотите использовать, будь то для отображения имен языков, или для отображения кодов для языков.
Когда эти параметры выбраны в соответствии с вашим выбором, вы можете быть уверены в хорошо продуманной кнопке переключения языка веб-сайта. Если кнопка переключения языка спроектирована правильно, посетители вашего веб-сайта смогут легко переключаться между языками на вашем веб-сайте. Кнопка переключения языка — важный компонент веб-сайта, если вы планируете выйти на международный уровень.
Напомним, что сегодня потребность в переводе веб-сайтов привела к появлению различных переводческих решений. В этой статье мы обсудили два таких решения и поговорили о том, как добавить кнопку перевода на свой сайт. Также помните, что многие люди, как правило, делают покупки в Интернете, когда узнают, что язык веб-сайта или интернет-магазина является их языком. Следовательно, вы можете быть уверены, что, используя решения для перевода, которые могут помочь вам справиться со всем вашим переводом, а также встроенную локализацию с возможностью добавления кнопки перевода (кнопка переключения языка веб-сайта) на свой веб-сайт, вы можете перенести свой веб-сайт на международный уровень, позвольте посетителям получать удовольствие и беспрепятственно просматривать ваш веб-сайт, а вы можете похвастаться увеличением конверсии и вовлеченности.
Когда вы используете ConveyThis, вам не нужно беспокоиться о том, как писать код. Вам не нужен опыт программирования или необходимость нанимать веб-разработчика. Мы можем полностью сказать, что это лучший выбор, чем переводчик Google. Таким образом, лучшее время для вас, чтобы начать использовать ConveyThis для вашего проекта перевода веб-сайта, если не раньше, сейчас.
Плавающий блок (sticky div) | CSS и JavaScript
Интересно, что блок, остающийся на одном месте при скроллинге, называют: «перемещающийся», «плавающий», «двигающийся», «подвижный», «скользящий». А фактически он «прилипший», «неподвижный», «фиксорованный» и располагающийся на определённом участке экрана монитора, вне зависимости от степени прокрутки веб-страницы.
Исходный вариант, когда ничего не плавает
Изначальные данные: блок уже спозиционирован. У меня как-то так с большим футером, у вас — иначе.
article">
Как сделать блок (div, aside и т.п), шапку, рекламу, меню фиксированными. Только CSS
Реализуется благодаря свойству position в значении fixed . Задать положение элемента на экране можно с помощью свойств top , bottom , left , right .
блок div
Но, поскольку они ведут отсчёт от краёв окна браузера, а мониторы имеют разное разрешение экрана, то лучше сразу правильно разместить блок, опираясь на свойства margin , transform: translate; , text-align .
#aside1 /* селектор блока, который будет оставаться на месте */ position: fixed; z-index: 101; >
Собственно говоря, для большинства случаев: плавающие кнопки социальных сетей, счётчиков, формы заказа звонка, скрипт не требуется.
Как сделать, чтобы блок div прилипал во время прокрутки страницы. Уже скрипт
То есть элемент со ссылками (или чем там ещё) находится далеко от начала страницы. Скажем, шапка большая или боковая колонка содержит много полезностей, таких как поиск, рубрики и т.п. Когда во время скроллинга верхняя часть окна браузера касается верхнего края элемента, то он приклеивается и «едет» вниз до конца страницы.
Плавающий блок, замирающий над футером или другим элементом. Чистый JavaScript без jQuery
Чтобы плавающий блок не исчезал, не заезжал на подвал сайта, а останавливался над указанным элементом.
.sticky < position: fixed; z-index: 101; >.stop
Элемент прилипает только во время прохождения скроллом другого элемента
Чтобы элемент отцеплялся и останавливался, когда заканчивается поле article . То есть нижние границы article и aside должны быть на одной линии.
.sticky < position: fixed; z-index: 101; >.stop
Как сделать, чтоб прилипали два (необязательно) блока в обоих сайдбарах
При листании вниз прилипает первый блок, когда родитель заканчивается — отлипает; прилипает второй, когда родитель заканчивается — отлипает; прилипает третий и т.д.
#aside1 < padding: 5px; >#aside1 div + div < margin-top: 5px; >.sticky < position: fixed; z-index: 101; >.stop article">
Плавающая длинная боковая колонка без пустого пространства
При скроллинге вниз боковая колонка прилипает, когда её нижний край касается нижнего края окна браузера. При скроллинге вверх боковая колонка прилипает, когда её верхний край касается верхнего края окна браузера. Есть нижний предел, до которого доходит колонка.
.sticky < position: fixed; z-index: 101; >.stop
Комментарии (то, что оформлено зелёным цветом) желательно убрать, но и с ними всё будет работать.
В коде учтён широки круг условий, поэтому нужные не всем участки (то, что оформлено приглушённым цветом) можно также убрать.
id нужного элемента можно посмотреть в коде страницы.
Чтобы первый экран загрузился предельно быстро, код лучше добавить перед закрывающимся тегом
. Практика применима для большинства скриптов. Но его можно добавить и в виджет «Текст» для WordPress, и в гаджет «HTML/JavaScript» для Blogger, которые в коде находятся ниже приклеивающегося элемента. Код можно поместить даже в сам элемент, который должен перемещаться вместе с прокруткой, что удобно, когда плавающий блок показан не на всех страницах сайта.
Для сайтов с адаптивным дизайном действие скрипта следует ограничить шириной экрана.
Благодаря оставленным комментариям код дорабатывался несколько раз. Ряд замечаний были очень полезны! Это здорово! Спасибо вам за участие!
264 комментария:
1 – 200 из 264 Новые› Самые новые»
Ivanes$ Единственное — по достижении заданной нижней границы блок не перестаёт быть фиксированным, а совсем пропадает.
Не знаете, с чем это может быть связано? NMitra Я вас поняла, подумаю на следующей неделе. NMitra Готово Ivanes$ Эх, жаль, что тут на комментарии не подписаться — только сейчас вспомнил.
Здорово. Спасибо большое еще раз. Сейчас потестирую по-всякому. Павел Чистяков 3 вариант (с прилипанием после прокрутки на n-ое число пикселей) на вставляется в шаблон, ссылаясь на «The content of elements must consist of well-formed character data or markup». Что делать? NMitra Скрипт в Blogger вместо
нужно писать как
Особенность блогоплатформы :)) Анонимный КРАСИВЫЙ блог и потрясающая плавающая панель (за удобство +1) кроме как на вики ещё не видел такой реализии как у вас, очень понравилось. Если я правильно понял, то там есть некое условие, когда например на странице больше одного заголовка, к похожим постам, добавляется ещё содержание поста, согласно заголовкам. Не подскажите как это реализовать? Андрей NMitra Андрей, не поверите, вручную расставляю посты. Если считаю, что материал может быть полезен, то добавляю его в похожие.
Сейчас с border хочу сделать что-то более менее удобное: http://shpargalkablog.ru/2013/09/border-image.html#borderimage Далеко ещё до конечной реализации. Но идею можно уже сейчас увидеть. Нажмите в «Содержание» border и border-image Анна Спасибо интересная идея! Надо будет как нибудь реализовать! NMitra Дерзайте 🙂 Анонимный Чтобы работало в IE7, IE8 — используйте
window.pageYOffset NMitra Благодарю за подсказку! Александр Александрович Здравствуйте, а не подскажите как узнать id или название блока? (нужен левый блок с рекламой) http://www.sochinyalka.ru/ Заранее благодарю. NMitra #HTML3 Анонимный Блин, битый час бьюсь. Расскажите,плз, подробно. Как установить скрипт на страницу. Для тех кто только копировать умеет 🙂 NMitra Адрес сайта и что должно плавать? Анонимный Баннер (.jpg) с хомяком :)) сайт на WP. Скрипт в футер? А в коде баннера что указать и в каких тегах? Нужно еще что-то указывать,исправлять в коде? Спасибо NMitra Круто, а адрес, где всё это чудо находится дадите))) Анонимный Ага,старался объяснить как мог :))) чтобы не палить никому 🙂 kodikupon точка ru, к примеру в статье хофф мебель, много инфы и хот-ся чтобы хомяк настойчиво маячил сбоку при прокрутке NMitra для хомяка #text-7 то есть document.querySelector(‘#text-7’)
весь код скопируйте и вставьте сначала прямо в статью на вкладке html. Работает? Анонимный Спасибо за ответ! Но! 🙂 Код скрипта вставлять в статью? или в виджет «Текст» где код хомяка? Если в статью, то есть в шаблон записи WP? чтобы на всех страницах работал. Или как? 🙂 NMitra Его куда угодно можно вставить, просто я не знаю админку WP, какие там у него есть виджеты. У виджета «Текст» есть поддержка HTML? Если есть, то он будет лучшим выходом. Анонимный УРАА! Работает 🙂 Спасибо,Наталья!! Но! 🙂 1. Как узнать, что хомяк именно #text-7? вдруг я его заменю,или на другом сайте также захочу:) 2. А если захот-ся сделать, чтобы и форма подписки на новости (+хомяк) прилипла. как тогда указать? З.Ы. Да,виджет Текст в WP. поддерживает html и служит для вывода кода или надписей и т.п. NMitra Я использую браузер Mozilla Firefox. Навожу на элемент страницы, в данном случае на баннер с хомяком, и правой кнопкой мыши вывожу меню, из которого выбираю «Исследовать элемент». И поднимаюсь вверх по коду документа до первого id. В вашем случае плавает не баннер, а весь гаджет. Плюс я очень хорошо разбираюсь в селекторах и псевдоклассах и превосходно могу обходиться и без id.
И это до кучи http://shpargalkablog.ru/2013/04/value-input-javascript.html Анонимный Спасибо, займусь изучением 🙂 trawen глючный у вас скрипт как и у коллеги http://www.magentawave.com/2013/02/simple-jquery-floating-block.html Дело в том что сначала происходит сдвиг странички, отрисовка и уже только потом приходит событие, но блок то уже проскочил. Из-за чего виден неприятный скачек. 🙁 Это хорошо заметно если вы header сделаете побольше, скажем 200-300 пикселей. NMitra Он не глючный, просто там нужно правильно рассчитать высоту отступа до верхнего края элемента. Видите цифру 800? У меня в примере 816. Потому что body составляет 2616, а header+main+footer = 2600 Эти 16px — это margin, который и создаёт эти подпрыгивания. Я всё верно рассчитала, поэтому прыгать у меня ничего не будет даже если я увеличу заголовок. Используйте последний пример, там расчёты не нужны Анонимный Привет. скажите, пожалуйста, куда вставлять код?)) ставлю в хэд, но НЕ работает. :=? NMitra См. комментарии выше: №15 — №25 Анонимный «См. комментарии выше: №15 — №25» НЕ работает. не понимаю, почему. NMitra Каков адрес сайта Marina Voo Подскажите пожалуйста, что именно в коде JS необходимо изменить, чтобы работало? меня интересует «Плавающий блок, замирающий над футером» NMitra document.querySelector(‘aside’) — в скобках свой селектор, например document.querySelector(‘#MyBlok’) Marina Voo а еще может кто знает, как сделать прокрутку контента сайдбара без появления «скролла». т.е. содержимое сайдбара не помещается в окне браузера, необходимо, чтобы содержимое прокручивалось, как здесь http://all-blogers.com/yanal_coffee-imbir/ NMitra Не поняла. Там тоже есть скролл Marina Voo имеется в виду внутренний скролл, т.е. его не должно быть NMitra overflow: hidden; — см http://shpargalkablog.ru/2012/01/css-overflow-word-wrap-text-overflow.html Marina Voo «document.querySelector(‘aside’) — в скобках свой селектор, например document.querySelector(‘#MyBlok’)»
куда это вставлять? ) Marina Voo «overflow: hidden; — см http://shpargalkablog.ru/2012/01/css-overflow-word-wrap-text-overflow.html»
это мне знакомо. но как сделать прокрутку? я сайдбар зафиксировала (position: fixed;), но содержимое сайдбара не прокручивается( NMitra При position: fixed; и не будет. Им вы выдёргивате элемент из основного потока.
Какой адрес сайта? Marina Voo сайт еще не выложен, на стадии разработки. «При position: fixed; и не будет.» а как тогда сделать чтобы блок был зафиксирован и прокручивалось содержимое? NMitra Я на слух плохо воспринимаю инфо, я зависима от зрительного восприятия, извините. Попробуйте задать свой вопрос на форуме, например, htmlbook.ru Marina Voo я вот тут написала http://www.cyberforum.ru/javascript/thread1045247.html#post5509720 Marina Voo по-ходу мне не найти ответа. NMitra Поймите, без вашей страницы конкретно что-то сложно сказать. Это тоже самое, что дать ответ на вопрос «Какие шторы подойдут лучше в мою квартиру?» и не видеть этой самой квартиры. Посоветуешь красные, а стены оформлены в зелёных тонах. Marina Voo У вас — http://www.cyberforum.ru/javascript/thread1045247.html#post5509720 — не открывается? А а html у меня просто блок div =»sidebar», который как раз необходимо сделать плавающим NMitra Хоть убейте, могу разобраться только в целом варианте, то есть нужна конечная страница URL. Вы меня поймёте, когда придётся отвечать на такие же вопросы.
По скриптам лучше обращаться на форум javascript.ru. Там не только код можно выложить, а также то, что он делает. Marina Voo хорошо. NMitra, спасибо, что ответили) Сергей Иванисов Огромное спасибо!! вот что у меня получилось http://www.interdividend.com/p/blog-page_6.html — блок рекламы адсенс. NMitra Ай-ай, AdSense нельзя в плавающем блоке, аккаунта лишат, а на нём блог висит. Ничего хорошего в общем. РСЯ можно. Тут все необходимые ссылки http://shpargalkablog.ru/2013/07/advertising-yandex.html Владимир Александров Два дня пробую сделать, но никак не получается. Помогите, пожалуйста. Хочу чтобы блок был внизу и при прокрутке останавливался перед футером. Если можно, подскажите более подробно. Я только учусь) Спасибо. http://www.imastera.ru/index/obratnaja_svjaz/0-74 NMitra Нужно изначально плавающий, но останавливающийся перед футером? Владимир Александров Да. NMitra) Владимир Александров Хотя, наверно, лучше, чтобы плавал с определенной точки. Вот сюда хочу внедрить блок http://www.imastera.ru/index/master_na_chas/0-57. А то как-то не красиво, когда столько контактов на странице. И что бы начинал двигаться с места где находится первые кнопки этих контактов. Спасибо. NMitra Попробуй в последнем варианте
var aside = document.querySelector(‘table[style=»border-collapse:collapse;width:100%;»]’), OP = offsetPosition(aside), article = document.querySelector(‘#centerBlock > table > tbody > tr:nth-child(3) > td’), OPa = offsetPosition(article); Владимир Александров Все попробовал, но ни как не выходит. Сделал блок #obrsv в него поместил кнопки. Может я не так, что-то делаю? А сто не понимаю. Может тогда пускай он при прокрутке прилипает к верхнему краю окна. Может так легче? http://www.imastera.ru/index/master_na_chas/0-57 спасибо Владимир Александров Может я скрипт не так вставляю? В CSS: #obrsv display: inline-block; width: 1050px; height: 89px; background: #cdc; > .sticky position: fixed; top: 0; z-index: 101; >
Владимир Александров «» «» NMitra Посмотрела. Вы хотите к низу окна прикрепить? Откуда тогда 897? Нужно добавить ещё один div
Тогда стиль и скрипт:
function offsetPosition(e) var offsetTop = 0; do while (e = e.offsetParent); return offsetTop; > var aside = document.querySelector(‘#obrsv div’), OP = offsetPosition(aside);
> Владимир Александров Спасибо огромное. Анонимный Добрый день! подскажите уже час голову ломаю как на мой сайт прикрутить это чудо. У меня 3 колонки на сайте, хочу в правой и левой колонке чтоб при прокручивании определенные div опускались до футера но и при обратной прокрутке поднимались до определенного блока в aside сайт на DLE 10 http://kinoroad.ru. Прошу помощи так как с JavaScript не дружу. Дмитрий.
p.s. aside без стиля так как просто обвертка для блоков. Хотелось бы чтоб дивы плавали внутри aside NMitra Так зададите нужному div какой-нибудь id (например, scroll) И вместо var aside = document.querySelector(‘aside’), напишите var aside = document.querySelector(‘#scroll’)
А вместо article = document.querySelector(‘article’), вставьте article = document.querySelector(‘article > .content’), Анонимный спасибо попробую отпишусь. Дмитрий Эолинн Привет!
Позитивный у тебя блог. Спасибо!
Вот пытаюсь последний скрипт понять, и никак не получается, совсем не могу понять зачем у aside берется текущая позиция в скрипте. Если его позиционирование зависит только от скрола и позиции article. Эолинн Вот эта часть интересует:
if (window.pageYOffset > article.offsetHeight — aside.offsetHeight + OPa) aside.className = ‘stop’; aside.style.top = (article.offsetHeight — aside.offsetHeight — OP + OPa) + ‘px’; > else aside.style.top = ‘0’; aside.className = (OP < window.pageYOffset ? 'prilip' : ''); > Эолинн OP = offsetPosition(aside), — вот этот параметр не понимаю зачем нужен, это ведь, я так понимаю текущая позиция плавающего эллемента, но зачем нам знать текущую позицию, если задача просто его положить куда надо, что-то не могу понять article = document.querySelector(‘article’), NMitra Привет. Я исходила из того, что блок может сидеть ниже первого экрана. А каково ваше решение? Эолинн Привет!
Я не имел ввиду что знаю как лучше, просто не мог понять как оно работает, но сейчас вроде понял. Хотел просто разобраться для собственного удовольствия. pashakiz Помогите пожалуйста! Что я делаю не так?
Вот сайт: http://lubus.ru/dev0
см. #sidebar-left — он должен плавать. pashakiz Почему может выдавать ошибку «Cannot read property ‘offsetTop’ of null» (3 строка скрипта) ? pashakiz Добавил ваш js-код в .ready и всё заработало)) $(document).ready(function() < . >);
Благодарю! NMitra article = document.querySelector(‘article’), поменяйте на article = document.getElementById(‘wrapper-content’), NMitra По ошибке: это особенность CMS, в исходном коде я не вижу этой строки: $(document).ready(function() < . >); Diana T Добрый день, Наталья! Реализую кнопку «вверх» по Вашей статье и у меня возникла сложность такого плана. В моем блоге три колонки, текст статей в средней. Кнопку «вверх» я хочу поместить между средней и правой колонкой. Внешне все получилось, но при наведении мышкой на эту кнопку, выделяется (становится активной) вся правая область (от кнопки вверх и вправо до самых краев экрана), тем самым делая невозможным выбор объектов правой колонки. Я честно пыталась разобраться сама, но не получилось. Вопрос: как сделать так, чтобы при наведении мышкой на кнопку «Вверх» становилась активной только сама эта кнопка, а не целая область, в которой кнопка находится. Буду рада, если подскажите, как решить проблему. Заранее спасибо. NMitra Добрый день, Диана. То есть по этой http://shpargalkablog.ru/2011/05/kak-sdelat-ssylku-k-nachalu-stranitsy.html ?
a#vverh position: fixed; margin-left: -7em; bottom: 1em; text-decoration: none; color: #bbb; transition: 1s; > NMitra То есть нужно изменить значения margin-left и padding. Diana T Извините, только сейчас заметила ошибку. У меня были открыты две Ваши статьи, и комментарий я написала не в ту. Вопрос был к кнопке «вверх». Спасибо за быстрый ответ! Кусочек кода, который Вы предложили здесь, к сожалению не помог, все равно подсвечивалась теперь уже вся колонка с текстом статьи, и мешала пользоваться «Похожими статьями». Методом научного тыка, наизменявши все и вся, у меня решить получилось, но вышло чудовищно криво. Я даже не знаю, правильные ли я параметры туда вписала, и нужны ли они [в таком составе] вообще! www.o-germanii.com. В идеале текст должен быть под стрелкой, а при наведении мышью подсвечиваться и стрелка и текст, и только они. Вышло, как вышло, но пока работает. NMitra Я бы на вашем месте закрепила стрелку или надпись в плавающем блоке с кнопками. Перед кнопкой ВКонтакте, это было бы логично. Diana T Наталья, спасибо большое за совет! Получилось не совсем так, как Вы предложили, так как я побоялась трогать с таким трудом «умащенную» в нужное место кнопку «Вверх», поэтому перенесла блок с кнопками к ней вправо. С этими кнопками мне работа еще предстоит. Я хотела их сделать, как описано в одной из Ваших статей про социальные кнопки (http://shpargalkablog.ru/2011/02/sotsialnye-knopki-dlya-blogger.html?commentPage=2#c6694852075437927127), попробовала на тестовом блоге, но почему-то не получилось, кнопки появлялись, но не были активными. Попробую еще самостоятельно с ними повозиться, вдруг получиться :)) Пока оставила Pluso. Еще раз хочу поблагодарить Вас за помощь и внимание! Наталья Здравствуйте! Помогите, пожалуйста, не очень разбираюсь в скриптах mother-and-baby.ru Хотелось бы cделать последний вариант, чтобы нижние блоки РСЯ приклеивались до поля article. Стили — понятно, в файл стилей. А куда, в какой именно файл темы вставлять сам скрипт? Спасибо NMitra Здравствуйте, я админку WP не изучала. Можно туда же, где размещаете код Директа, в виджет. Лучше перед Ваш скрипт:
Наталья Еще раз здравствуйте! Поставила скрипт в виджет до кода ЯД, все работает в том смысле, что прилипает, как надо. Причем, я вставила только в правом виджете, а в левом тоже автоматически стал прилипать нижний блок ЯД. Но если раньше ширина рекламы ЯД садилась в ширину сайдбара, то со скриптом она растягивается по всей ширине статьи и закрывает текст. Не подскажите, как указать ширину для плавающего сайдбара? У меня левый сайдбар шириной 190px, а правый — 240px NMitra Видимо вы разобрались. У себя на браузере проблем не обнаружила. Я в скрипт сразу оба параметра прописала. Владимир Ков Здравствуйте! Попробовал реализовать вариант «Элемент прилипает только во время прохождения скроллом другого элемента» Стили — в файл стилей, скрипт в виджет до кода этой тизерной рекламы. Результата не видно никакого) Что то, вероятно, я сделал неправильно? http://recipehealth.ru/akupunktura/akupunktura-protiv-bessonnitsyi.html (прописал код только для статей в этой рубрике) С уважением, Владимир NMitra Здравствуйте, Владимир, в исходном коде не вижу скрипта. Владимир Ков Ну как же: ctrl-F вписать слово sidebar, найти его и там после таблицы с картинками (верхний виджет), популярного (второй виджет) будет третий виджет в котором код NMitra Я ничего в коде у вас не понимаю. Вот код http://2.bp.blogspot.com/-oxCFaBIYxg4/U0-e_Z46oQI/AAAAAAAAEXY/UYEf6sLRulk/s00/kod.bmp Последний блок — это «Популярное». Единственное, что увидела http://www.bananapay.ru/show/?block_id=1226&r=http%3A//shpargalkablog.ru/2013/09/scroll-block.html&43976 Что это? Владимир Ков bananapay.ru — это и есть тизерная реклама в правом сайдбаре. Именно ее я и предполагаю зафиксировать. Код этой рекламы находится в третьем виджете — на вашей картинке это третий side-blok. Выше него side-blok в котором «популярное». Если на странице вызвать контекстное меню правой кнопкой мыши, то там этот код (который Ваш) виден. Куда-то я его не туда( А можно попросить Вас озвучить общие правила вставки этого кода? Может тогда я внедрю его чуть более удачно. NMitra В WP попробуйте вставить в виджет «Текст» Анонимный Здравствуйте. Вот выбрал я вариант «Плавающий блок, замирающий над футером». Весь приведенный вами код вставил в текстовый виджет (сайт на вордпресс). То есть всё что между style и /style и всё что между script и /script. — всё вставлено одной кучей в текстовый виджет. Теперь вопрос: Вот я хочу, например, зафиксировать картинку. Куда ее вставить в этом коде? До кода, после кода, в середину кода?
Или код style /style нужно вставить в файл css, прописать div а уже этот div вставлять в виджет? если так то до или после script /script.
Статья хорошая, демо так вообще шикарен. А вот как установить это добро на сайт — непонятно(
Анонимный этот ‘aside’ что ли надо заменить на название id совсем этот момент не понятен NMitra 1) код в виджет нужно вставлять вместе с тегами и 2) картинку нужно вставить до скрипта всё равно куда 3) вместо document.querySelector(‘aside’) напишите document.querySelector(‘ваш_id_картинки_которая_должна_плавать’)
Если не разберётесь, то сбросьте адрес страницы, на которой вы делаете изменения с описанием: картинка такая-то, должна доходить до футера и т.п. NMitra Вот так document.querySelector(‘#izo’) Анонимный Методом тыка и дополнительным изучением комментариев получилось. Спасибо.
NMitra: а почему стили не работают, если размещать их в файле стилей css ? работают только вместе со скриптом в виджете. и если поставить aside.style.top = ‘100px’; (а не ноль) — то блок отскакивает немного вниз «ударившись» о верхний край NMitra :))
1) не вижу причин, почему стили не работают. Вы убираете тег ? 2) offsetTop = -100 и aside.style.top = ‘100px’. Вот тут:
function offsetPosition(e) < // отступ от верхнего края экрана до элемента var offsetTop = -100; do while (e = e.offsetParent); return offsetTop; > Анонимный NMitra: стили заработали — просто решетку с точкой перепутал во время экспериментов) Отступ тоже всё ок. Еще раз спасибо Анонимный Здравствуйте! Не получается. Подскажите что надо сделать? Любой блок справа (для примера) чтобы понять что куда ставить http://www.fito-travnik.ru/ NMitra Здравствуйте, я не понимаю зачем вам это нужно, если на всех страницах, которые я просмотрела, текст статьи меньше боковой колонки. Анонимный Здравствуйте! Есть и побольше статьи, просто хочу убрать, внизу справа (FLIP) блок, думаю он лишний будет, да и просто, эта фишка, хорошо смотрится на сайтах. Почему, ваш код? Потому что десятки ресурсов просмотрены на эту тему. Или слишком замудренный, или километровый код. Думаю ваш вариант самый подходящий, просто бы понять, как его правильно вставлять, для тех, кто не силен в этой теме, прошу вас объясните пожалуйста по подробнее. Заранее спасибо. Анонимный Здравствуйте! Спасибо за полезную статью, только я немного не понял, куда вставлять код и, куда писать адрес к баннеру, который должен плавать)). если создать html-гаджет и добавить всё это добро туда и в document.querySelector(‘aside’) вписать document.querySelector(‘#HTML10’), где #HTML10 — рекламный баннер. то ничего не получается, объясните, пожалуйста, что я сделал не так) NMitra Анонимный №1, у вас ваши скрипты где-то перебивают мой. Разбираться не буду, вам нужно чистить код.
Анонимный №2, в Blogger вместо
в большинстве случаев нужно писать
Саша Дикий Здравствуйте! Нужна Ваша помощь) На моём блоге http://www.online-vkontakte.ru в правой колонке, после популярных статей, есть баннер «зарабатывай Вконтакте». Я его хочу закрепить вторым способом «Плавающий блок, замирающий над футером». Создаю виджет, вписываю этот код, меняю document.querySelector(‘#HTML10’), но ничего не получается. Может я сделал что-то неправильно? Спасибо) NMitra Здравствуйте, новый гаджет должен быть под гаджетом баннера или плавающей делайте ссылку. Совет из комментария 103 не нужен, он для шаблона. Добавите, отпишитесь, посмотрю. Саша Дикий Я добавил гаджет с кодом «Плавающий блок, замирающий над футером» под гаджет баннера. заменил document.querySelector(‘aside’) на document.querySelector(‘#HTML10’), где #HTML10 соответственно гаджет баннера, подскажите, что делать дальше)? NMitra
Саша Дикий Огромнейшее спасибо! Снова вы меня спасли =) Всё получилось. PrintOlka Здравствуйте, подскажите, пожалуйста, как зафиксировать картинку справа (фото), чтобы оно не прокручивалось вместе со страницей в блогспот? http://theolka.blogspot.com/ Заранее спасибо! PrintOlka P.S.картинка не фоновая, это html гаджет. Помогите, пожалуйста! NMitra Перед в шаблон добавить
//function offsetPosition(e) var offsetTop = 0; do while (e = e.offsetParent); return offsetTop; > var aside = document.querySelector(‘#HTML1’), OP = offsetPosition(aside), article = document.querySelector(‘#Blog1’), OPa = offsetPosition(article);
> //]]> PrintOlka Спасибо большое, Вы добрейшей души человечище. И сайт у Вас спасение для всех! Спасибо за Ваш труд! Талгат Здравствуйте NMitra! Не могли бы Вы помочь с размещением плавающего блока на сайте www.pizzagrand.kz Нужно закрепить в правой части полностью все содержимое блока zt-right-inner NMitra Здравствуйте, как вижу вы уже справились 🙂 Талгат Да) Через компонент JU Sticky Panel для Joomla 2.5 Но Вам все равно спасибо, очень многое для себя узнал Анонимный Здравствуйте! Поставила себе описанный вами вариант плавающего блока на меню и лого сайта. Вариант — блок div прилипает во время прокрутки страницы. А как такой же вариант можно сделать только с условием, если ширина монитора пользователя больше 980px? Попробовала вставить условие в код в скрипт:
function offsetPosition(e) < // отступ от верхнего края экрана до элемента var offsetTop = 0; do while (e = e.offsetParent); return offsetTop; > var oWidth = document.documentElement.clientWidth; // проверяем разрешение экрана пользователя var aside = document.querySelector(‘#tcvn-header’), OP = offsetPosition( aside);
не работает. NMitra Здравствуйте. Попробуйте такое условие
var width = window.innerWidth || document.documentElement.clientWidth; if (width > 540) < >Анонимный Спасибо за ответ! Может я не туда ставлю условие? Пробовала по-разному — меню или фиксируется, или не фиксируется, на размеры экрана не реагирует .
var width = window.innerWidth || document.documentElement.clientWidth; if (width > 980) < function offsetPosition(e) < // отступ от верхнего края экрана до элемента var offsetTop = 0; do while (e = e.offsetParent); return offsetTop; >
@media (min-width: 980px) .sticky position: fixed; top: 0; z-index: 101; > > NMitra В скрипте вот так
window.onscroll = function() var width = window.innerWidth || document.documentElement.clientWidth; if (width > 980) aside.className = (OP < window.pageYOffset ? 'sticky' : ''); // если значение прокрутки больше отступа от верхнего края экрана до элемента, то элементу присваивается класс sticky > > Анонимный Спасибо вам огромное. как-то совсем не в ту сторону думала прописала в лоб в css
Спасибо большое за помощь! теперь работает ! скрипт
@media (min-width: 980px)
.sticky < position: fixed; top: 0; left: 0; right: 0; z-index: 101; -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.15); box-shadow: 0 2px 3px rgba(0, 0, 0, 0.15);> > NMitra Похоже на правду )) Анонимный Уважаемая NMitra! Во-первых, большое Вам спасибо и за блог вцелом, и за данную статью в частности, отдельное за развернутые ответы на комментарии! Реализовал Ваш пример (header как не трудно догадаться): tekstilroom.ru . Однако в разных браузерах из-за разного шага прокрутки, «эффект прилипания» смотрится от сносного до некачественного. Transition: top не действует, к сожалению, а других более глубоких познаний пока нет)). Подскажите, пожалуйста, как бы смягчить «эффект прилипания»? Заранее Вам благодарен, Степан. NMitra В случае когда прилипает меню под шапкой сайта, проще рассчитать высоту шапки.
Игорь Васнецов Обычно пользуюсь модулем липким. Но вот он наезжает на подвал. Сейчас буду пробовать прописывать в css, чтобы не наезжал. Елена Сенатор хоть убейте меня, но не вижу в коде на своей страничке такого и куда вставлять тот код, что с торможением перед окончанием странички? Если вместо исходного(как его найти тогда) или в любом месте? Посоветуйте чайнику, плиз. NMitra Добавьте гаджет «html/javascript» после гаджета «Страницы» и в него добавьте весь код. Елена Сенатор супер! все получилось! спасибо! Анонимный NMitra, со вторым кодом работает только вертикальная прокрутка ,как сделать чтобы и по горизонтали можно было крутить ?спасибо .Ник Анонимный тоесть можно ли сделать чтобы при прокрутки по горизонтали динамически изменять STYLE элемента на обычный? Ник NMitra Так http://jsfiddle.net/NMitra/rxsseeoa/3/ ? Alexey V Здравствуйте, NMitra! Вы можете подсказать, что добавить в этот код, чтобы футер появлялся не сразу, а как сделано на: http://www.concretenetwork.com/concrete_overlays_cement/ Мой сайт: allfacades.com, но на нем еще не установлен ваш код. Спасибо заранее! NMitra Здравствуйте, Алексей! Да, это возможно сделать. Но далее подгонять под конкретный шаблон скрипт я буду только за вознаграждение. Если интересует, мой email: n.mitra@yandex.ru Извините! Директор Драйклинерс Как вставить Ваш скрипт в ДЖУМЛА 2.5 Есть форум ( http://bioforum.bioresurse.ru ), в правой колонке модуль с рекламой, хочу его закрепитю. Пытался в сам модуль ставить скрипт — не работает NMitra У вас уже что-то плавает 🙂
var aside = document.querySelector(‘#myobj’), t0 = aside.getBoundingClientRect().top, t2 = document.querySelector(‘article.art-post’).getBoundingClientRect().bottom — aside.offsetHeight; window.addEventListener(‘scroll’, function(e) if (window.pageYOffset > t2) aside.className = ‘stop’; aside.style.top = t2 — t0 + ‘px’; > else aside.className = (t0 < window.pageYOffset ? 'prilip' : ''); aside.style.top = ‘0’; > >, false); Lingva Italiana Здравствуйте, спасибо огромное за блог, стараюсь вас не только читать, но пробую реализовывать те примеры, о которых вы пишете. К сожалению, не могу разобраться с «плавающем» блоком, как его установить на блогспот. Создаю виджет «html/javascript», туда вставляю код из последнего примера, узнаю номер этого виджета, в моем случае это HTML23.
Вопрос, что делать дальше, заменить везде в коде aside на #HTML23? И на что заменить у меня article, на fauxcolumn-outer fauxcolumn-center-outer? Пробую и так и так, но что то не получается ничего, если будет возможность, посмотрите как это можно сделать. сайт italian-blog.com NMitra Здравствуйте. Добавьте скрипт
var aside = document.querySelector(‘#HTML23’), t0 = aside.getBoundingClientRect().top, t2 = document.querySelector(‘.fauxcolumn-outer.fauxcolumn-right-outer’).getBoundingClientRect().bottom — aside.offsetHeight; window.addEventListener(‘scroll’, function(e) if (window.pageYOffset > t2) aside.className = ‘stop’; aside.style.top = t2 — t0 + ‘px’; > else aside.className = (t0 < window.pageYOffset ? 'prilip' : ''); aside.style.top = ‘0’; > >, false); Анонимный Спасибо за зачетный код. В течении получаса на пробную страничку поставил, Перенес на рабочую, отделил стили и JS в отдельные файлы. Все работает. Внешнему jQuery тоже спасибо. Автору привет! За это можно и в 3 ночи выпить )) Анонимный P.S. И валидацию прошел! NMitra А то :)) Lingva Italiana Огромное спасибо, что посмотрели и внесли правки в код, блок заработал. Но заработал немного странно 🙂 начинает показываться еще до того, как до него прокрутили страницу, т.е. накладывается на блоки, которые выше него в боковой колонке. Уже с виджета вконтакте появляется надпись «тест тест1», и затем какое то время блок остается «прилипшим» к верхней границе, но при продолжении прокрутки страницы далеко вниз — исчезает.
вот, пример, длинной страницы, где это видно http://www.italian-blog.com/2013/10/poluchenie-italianskoi-vizy.html Если эти правки трудоемкие, то напишите на почту, чтобы можно было договориться с вами о решении этой задачи за вознаграждение. NMitra Проблема в том, что вычисляется отступ до элемента, а потом подгружаются виджеты соц сетей и отступ до элемента изменяется n.mitra@yandex.ru Анонимный Здравствуйте. Скрипт ставить на страницу или в элемент ? NMitra Здравствуйте. Всё равно, но правильнее в конец body. Во-первых, больше шансов, что успеют подключиться и загрузиться сторонние виджеты. В результате чего правильно будет рассчитан отступ от верха страницы до элемента. Во-вторых, скрипт не будет влиять на загрузку первого экрана. Важно, чтобы человек сразу увидел вверх сайта. Анонимный Если обновить страницу в нижнем положении скроллбара (тупо внизу страницы обновить) то не работает. NMitra Благодарю за отличное замечание, код подправила Анонимный просто спасибо, отличный материал, беру на вооружение Анонимный Доброго времени суток, Наталья Владимировна. У меня к Вам вопрос следующего рода. использую последний код. У меня проблема в следующем. Там можно использовать два и более плавающих блока. Так вот..Располагаются они у меня в правой части один, под другим. С выборкой селекторов, вопросов не возникло. Вот только , если использую больше одного блока (в данном случае 2), то при прокрутке, они наезжают друг на друга. Где это можно поправить. Заранее спасибо. NMitra Доброго времени суток, интересный вопрос! Или их нужно взять в одну обёртку div (если между ними нет других не нужных элементов), или рассчитывать для нижнего блока отступ с учётом высоты верхнего (.offsetHeight), то есть
aside.forEach(function(aside) заменить на aside.forEach(function(aside, asideN, asideArr)
var p = 40, заменить на var p = (asideN == 1 ? (40+parseFloat(asideArr[0].offsetHeight)) : 40); Анатолій Нечипурук Очень понравился вариант с «Элемент прилипает только во время прохождения скроллом другого элемента» Содержимое вставляю в блок HTML/JavaScript Код: (интересует блок с телефонами) http://pastebin.com/znPcYdrQ Вот только оно почему то не работает, даже признаков нет _http://nechipuruk.blogspot.com/ NMitra Не вижу кода в блоге, к селекторам претензий нет. Только я бы вместо ‘#Label1’ указала бы ‘.date-posts’ Анатолій Нечипурук Извините. Код вставил в блок TEST.PRILIP NMitra Гаджет поместите под гаджет «Статистика» в правую колонку Анатолій Нечипурук Благодарю. вот только желаю, чтобы элемент прилипал при прохождения всех блоков(включая его содержание), вместо «элемент прилипал при касании его верхней границы» Можно так сделать . NMitra Не поняла. Вы хотите сделать его сразу фиксированным? Анатолій Нечипурук Фиксированным только после прокрутки блока «СОРТОВИЙ МОНІТОРИНГ» , чтобы телефоны не налипали на содержание сего блока . а появлялся только после прокрутки «Ювілей Новочеркаська» то есть после нижнего края блока Анатолій Нечипурук В пример хорошо подойдет http://habrahabr.ru/, блок «популярное за сутки» появляется только после прокрутки всех блоков справа NMitra Только после примера поняла что нужно. Попробуйте так:
var aside = document.querySelector(‘#Text1’), HTMLtop = document.documentElement.getBoundingClientRect().top, t0 = document.querySelector(‘.column-left-inner’).getBoundingClientRect().bottom — HTMLtop + aside.offsetHeight, t2 = document.querySelector(‘.date-posts’).getBoundingClientRect().bottom — HTMLtop — aside.offsetHeight; Анонимный Анатолій Нечипурук Отлично, работает как часы. Спасибо Наталья, за помощь и ваш труд Гульнара Вставили скрипт, а куда вставлять сам код баннера? Мне нужен плавающий баннер партнерской программы? Diana Yurieva Доброе время суток! Будьте добры, подскажите пожалуйста, а то что-то совсем запуталась. Плавающий блок, замирающий над футером. Блок должен быть всегда внизу окна, шириной 100%, высотой 40px, но дальше футера(110px) не уползать. Заранее спасибо, и отдельная благодарность Вам за Ваши труды! Отличный блог! NMitra Гульнара, вставляете код партнёрской программы обычным образом, уж не знаю что у вас за CMS, а потом только подключаете скрипт.
Diana Yurieva, есть вариант (см. комментарий 133), но не знаю этично ли будет публиковать. Антон Кул. Олег Подскажите как Адсенс относится к плвающему блоку в сайдбаре. Не будет за это Бан . NMitra Нельзя чтобы Адсенс перемещялся, но можно чтобы было, допустим, плавающее меню. Анонимный Здравствуйте NMitra. Статья просто обалденная. Спасибо за титанический труд. У меня проблема по созданию плавающего блока такая. Плавающий блок длинный и не входит в один экран, поэтому хотелось, чтобы при прокрутке вниз блок прокручивался до своей нижней точки, а потом прилипал и двигался до футера. При прокрутке вверх, плавающий блок снова прокручивался до своей верхней точки и снова прилипает, чтобы посетитель мог видеть всю высоту блока. Такая реализация есть, но когда блок достигает своей нижней точки он «отпрыгивает» вправо, даже не знаю это хорошо или плохо, с одной стороны хорошо — привлекает внимание, а с другой стороны, как деффект. но хочется такой же и без «прыгания» .
Какой из Ваших вариантов можно использовать для такой реализации? С уважением. NMitra Здравствуйте, я поняла вас, спасибо за вопрос! Сама так ещё не делала. Если появится время, дополню статью новым примером 🙂 Анонимный Спасибо NMitra. Будем ждать новый пример. 😉 m0ntag Здравствуйте! Такие вопросы если можно.
Можно ли в варианте 7 «Фиксируется два и более блока друг за другом» — сделать так, чтобы последний блок фиксировался вплоть до самого футера (точнее до отметки «1000пикселей до футера»), а не строго в рамках высоты родителя? Готов заплатить за подобную реализацию.
И варианте 4 — «Плавающий блок, замирающий над футером или другим элементом. Чистый JavaScript без jQuery» можно ли как нибудь сделать так что бы блок останавливался за, скажем, 1000пикселей до футера? NMitra Здравствуйте,
1) если правильно поняла a.parentNode.getBoundingClientRect().bottom заменить на document.querySelector(‘#footer’).getBoundingClientRect().bottom
2) дополнила, замените ноль на число m0ntag Спасибо! Вариант «Плавающий блок, замирающий над футером или другим элементом» отлично работает и останавливается на нужном расстоянии от футера. Модифицированный 7-ой вариант тоже работает, но криво — фикс-блоки при скроле не отлипают, а накладываются друг на друга по мере прокрутки вниз. Тоесть, допустим, первый блок плывет 200пикселей (высота родителя, установленная мной), далее он должен отлепиться, но этого не происходит, он просто перекрывается вторым блоком и они плывут, наложенные друг на друга, еще 200 пикселей, далее к ним таким же образом добавляется третий блок. в общем имеем в конце один трехслойный блок) Вроде вы меня правильно поняли)) Я имел ввиду здесь тоже самое, что и в оригинале скрипта, за исключением того, что последний блок будет плыть уже до конца. до футера. Последий блок в этой реализации можно отлепливать на определенном расстоянии от футера? (как в 4ом модифицированном варианте). NMitra Хи-хи 🙂
Array.prototype.slice.call(document.querySelectorAll(‘#aside1 div.stickyDa’)).forEach(function(a) заменить на Array.prototype.slice.call(document.querySelectorAll(‘#aside1 div.stickyDa’)).forEach(function(a, index, all)
Вместо нуля ваше значение m0ntag супер! все работает. огромное спасибо! m0ntag Не могу побороть свою болезненную страсть к перфекционизму)) Потому попробую задать еще один вопрос — есть ли возможность, например, задать условие при котром блоки не фиксируются если общая высота родительских блоков на странице (речь о 7-ом варианте кода) больше чем высота блока article (статьи)? Или если такое условие слишком громоздое, то не фиксировать при заданной минимальной высоте блока article (например, не фиксировать если высота article меньше чем 5000px)? А то ведь бывают большие по высоте страницы и маленькие, на последних длинющий сайдбар с тремя плавающими блоками неуместен.
Вот мой код если что (это 7-ой вариант, высота первых двух родителей 2500px, последний блок плывет аж до футера, кроме того, задано условие не фиксировать блоки если ширина экрана меньше чем 890px). Чтоб не копировать сюда столько кода, просто дам ссылку http://gms.pp.ua/code.txt NMitra Извините, это уже индивидуальная работа Анонимный У Вас в четвертом примере вместо «footer» надо ‘#footer’. И еще вопрос, А насчет уязвимостей, здесь все нормально? NMitra Необязательно, ищет по тегу footer. Понятно, что каждый укажет тот селектор, который нужен именно ему.
«насчет уязвимостей, здесь все нормально?» — увы, не так часто посещаю хакер.ру. Могу только сказать, что с точки зрения стандартов всё верно. С поддержкой в старых IE могут быть проблемы, так как последние не поддерживают addEventListener и document.querySelector Анонимный Здравствуйте,NMitra! На сайте у headera position:fixed. Когда разрешение меньше заданной ширины сайта естественно появляется скролл. По вертикали всё как и хотелось,а по горизонтали прокручивается всё,кроме headera. Часть headera,которая влезает видна — она и только. Можно ли сделать так,чтобы и header прокручивался по горизонтали в position fixed? Я чайник и не понимаю в js ничего. Спасибо! NMitra Здравствуйте, мне не известна ваша разметка. Но приблизительно будет так: без скрипта http://jsfiddle.net/NMitra/ne3eL36h/ , со скриптом http://jsfiddle.net/NMitra/ne3eL36h/1/
window.addEventListener(‘scroll’, function() document.querySelector(‘header’).style.left = ‘-‘ + document.documentElement.scrollLeft + ‘px’; >, false); Анонимный Спасибо большое,что нам помогаете и тратите своё время! Разрешите ещё. В продолжение. Разметка такая. Если я правильно понимаю.
ширина headera,wrappera,wrapa — 1000px; header position:fixed; > header на самом верху — там навигация. Анонимный Извините. А этот код — window.addEventListener(‘scroll’, function() document.querySelector(‘header’).style.left = ‘-‘ + document.documentElement.scrollLeft + ‘px’; >, false); подключается в head между тегами script? или как? NMitra Я бы его в самый низ, перед добавила, чтобы он поменьше сказывался на скорости загрузки. document.querySelector(‘header’) — это тег Если у вас id, то document.querySelector(‘#header’) Влад ZERO Возможно ли сделать плавающий блок (класс sticky) не position:fixed, иначе при горизонтальной прокрутке этот блок накладывается на другие элементы сайта Влад ZERO http://youtu.be/DfZBNX53d74 Анонимный Здравствуйте! Отличный скрипт, хотел использовать у себя, но обнаружилась досадная неприятность — при изменении ширины окна, ширина блока .sticky не меняется, т.е. для адаптивного дизайна этот скрипт не подойдет. Уже нашел jQuery плагин для решения проблемы, но все равно вам спасибо! NMitra Влад, спасибо, проблему поняла. Это можно и одной строчкой JS решить (см комментарий 179 с примером). Через не position:fixed я пробовала, но там не совсем гладкий скроллинг получается 🙁
Анонимный, также спасибо за замечание, доработаю. Влад ZERO NMitra, Спасибо большое Вам за скрипт, но при просмотре примера из 179, проблема как я понял не решена, аноним просил чтобы шапка (контент шапки) при горизонтальной прокрутке сайта тоже прокручивался, а не был зафиксирован.. Или что то не понимаю, вот видео с примером из 179 поста
http://youtu.be/8udLUcNUkAA NMitra Угу, после вашего комментария додумалась в Хроме посмотреть 🙁 Нужно разбираться что ему на этот раз не нравится. Более вдумчиво смогу посмотреть только на следующей неделе. Анонимный Здравствуйте, NMitra! Спасибо за скрипт, им Вы реализовали мое виденье работы фильтра категории в нашем магазине: http://bestool.com.ua/nabori-inctrumentov/univercal-nie-nabori/
Но есть ньюансы: 1. При прокрутке вниз блок скачет (оно какбы терпимо но меня беспокоит) Как можно решить проблему если у меня стоит авто дополнение товаров при прокрутке вниз. 2. Есть проблема по серьезней, при любом скролле страницы пропадает выбор диаппазона цен товаров — значения пропадают а ползунок не передвигается.
Буду очень благодарен, кстати у меня адаптивный сайт и скрипт на нем работает нормально (помимо указаного) Артем Панчук — artem_panchuk@ukr.net NMitra Артём, 8 вариант? 1. нужно пробовать, ничего путного в голову не приходит (таймер? увеличить высоту боковой колонки на высоту футера?) 2. поправила, пока не переделала для всех вариантов 3. потихоньку исправляюсь 🙂 NMitra Влад, этот вариант работает во всех браузерах: http://jsfiddle.net/NMitra/ne3eL36h/6/
window.addEventListener(‘scroll’, function() document.querySelector(‘header’).style.left = document.documentElement.getBoundingClientRect().left + ‘px’; >, false); NMitra 6 вариант доработан Анонимный Добрый день. Подскажите пожалуйста, как сделать так, что бы останавливался блок за 200px до конца блока? Спасибо! NMitra Добрый день, 5-ый вариант
P = 250; Анонимный Спасибо за ответ. 4-ый вариант, мне необходимо, что бы фиксированный блок не доходил до конца другого блока, а заканчивался за 200px до конца. Как это правильно реализовать! Большое спасибо! NMitra Вам нужен 5-ый вариант 🙂 Там почти тоже самое, что и в 4-ом: разница лишь в том, что 4-ый замирает над верхним краем элемента, а 5-ый — над нижним Анонимный Поставил Р= 250, оно просто начинает идти не от верха страницы, а заканчивается все равно в конце блока, а не выше на 200px 🙁 Я что-то не то делаю? Спасибо! Анонимный Скажите пожалуйста, где можно указать высоту скролла на который будет опускаться блок? Спасибо! NMitra Да, извините, отвечаю на комментарии мимоходом. Не P = 250, а
R = Math.round(Ra.top + b.getBoundingClientRect().height — document.querySelector(‘#article’).getBoundingClientRect().bottom + 250); Анонимный Отличная статья. Автор, большое спасибо
Joomla-дайджест. 1-е полугодие 2023 года
Все главные новости из мира Joomla с момента выхода предыдущего дайджеста 24 января 2023 года в одной статье. Традиционно наш дайджест обозревает новости, расширения, шаблоны и статьи из мира Joomla. Прошлый выпуск вы можете прочитать здесь.
Главные новости о Joomla
С момента выпуска предыдущего дайджеста вышло 7 стабильных релизов Joomla 4 (4.2.7-4.3.3) и один релиз Joomla 3 — 3.10.12. Обновление пакета локализации на русский язык Joomla 4.3.2.
Релизы безопасности Joomla
Релиз безопасности Joomla 4.2.7
Релиз содержит закрытие двух уязвимостей низкого уровня и другие исправления и улучшения.
Низкий приоритет — Низкое влияние — CSRF в сообщениях после установки (Joomla 4.0.0 — 4.2.6)
Низкий приоритет — Низкое влияние — Отсутствуют проверки ACL для компонента com_actionlogs
Также в этом релизе множество исправлений совместимости с PHP 8.2, исправлена ошибка автозагрузки namespaces для расширений типа library , в которых используется наименование библиотеки вида Vendor\Libraryname . Можно не создавать плагин, регистрирующий namespace библиотеки.
Релиз безопасности Joomla 4.2.8
Версия 4.2.8 — релиз безопасности с закрытием одной уязвимости высокого уровня. Настоятельно рекомендуем поддерживать версии CMS и расширений Ваших сайтов в актуальном состоянии.
низкого уровня — открытое перенаправление и XSS при мультифакторной авторизации. В Joomla 4.2.0-4.3.1.
среднего уровня, но критического воздействия — предотвращена возможность брутфорса на экране мультифакторной авторизации. Обе уязвимости помечены как имеющие низкую вероятность. Они возможны только в том случае, если Вы используете мультифакторную авторизацию на своих сайта. Но, тем не менее, рекомендуется поддерживать свои сайты в актуальном состоянии и своевременно обновлять версии движка и расширений.
Joomla 4.3
Вышла Joomla 4.3, главным новшеством которой стали Обучающие туры по панели администратора. Обзоры новой функции смотрите в разделе Статьи и видео этого дайджеста.
Также в этом релизе:
Отображение опции перетаскивания для пустой папки и сортировка в Медиа-менеджере
Возможность выбора макета в поле типа subform
Сортировка результатов умного поиска
Фильтрация пунктов меню по компоненту
Возможность указания атрибута showon для пользовательских полей (для админки)
Перестройка «дерева» после сохранения пункта меню
Счетчик символов для поля ввода
Установка Joomla через CLI
Поддержка avif, webp, heic и webp2 в поле списка изображений
Улучшенный ротуер для компонента тегов
Множественные улучшения в коде отображения элемента тега
Обновление до Bootstrap 5.2
Улучшенная поддержка PHP 8.2
Joomla 5
На момент написания дайджеста на GitHub проекта уже доступна Joomla 5 alpha-3.
Когда выйдет стабильная версия Joomla 5?
Согласно roadmap проекта релиз Joomla 5 ожидается 17 октября 2023 года. Поддержка, исправление ошибок, в том числе безопасности Joomla 5 завершится 19 октября 2027 года.
Joomla 5: плагин обратной совместимости
Joomla 5 продолжает развитие Joomla 4 и, как уже неоднократно сообщалось ранее, обновление не будет являться болезненной миграцией.
Как известно, из кода Joomla постепенно исчезают устаревшие классы API. Многие из них «продержались» в ядре со времён Joomla 1.5. Отказ от них — это эволюция. Однако, удаление устаревших классов и методов будет вызывать ошибки в расширениях, которые разработчики вовремя не обновили.
Для обеспечения максимально гладкого перехода с Joomla 4 на Joomla 5 создан плагин обратной совместимости, который будет включён по умолчанию.
Это означает, что если Вы знаете, что Ваши расширения на сайте всё ещё используют устаревшие классы (например, JUri , JFactory , JInput , JHtml , JPlugin и т.д.), то при включённом плагине обратной совместимости этой ошибки возникать не должно. Если же Вы уверены, что расширения на Вашем сайте поддерживаются в актуальном состоянии и разработчик заявляет о совместимости с Joomla 5, то этот плагин можно выключить.
Разработчикам также следует помнить не только о самих классах, но и методах в них, часть из которых также может меняться со временем.
Плагин обратной совместимости уже появился в репозитории GitHub Joomla, включён в релиз Joomla 5.0.0-alpha3.
В августе 2022 года мы на канале Joomla-сообщества в Telegram писали о том, что на GitHub Joomla разгорелась дискуссия об эволюции Joomla, где среди прочих участники международного сообщества затрагивали и вопрос обратной совместимости. По итогу департамент Joomla, отвечающий за выпуск релизов, принял ряд решений, был опубликован скорректированный план выпуска релизов Joomla 4 и 5. Данный плагин (посмотреть на GitHub) также является одним из результатов упомянутого обсуждения.
Joomla-разработчикам: что будет с расширениями на Joomla 3 MVC в Joomla 5 и 6?
В международном чате Joomla-сообщества в Mattermost было обсуждение статьи команды JoomlaShack «Мысли о миграциях Joomla и Joomla 5». В ходе обсуждения ряд инсайтов были оформлены в небольшую статью на Хабре.
Награды
Joomla на CMS Critic 2022
С 2012 года премия CMS Critic Awards отмечает выдающиеся достижения сообщества CMS, награждая разработчиков за их инновации и сервис. Каждый год мы определяем одного победителя в различных отраслевых категориях, таких как Best Cloud CMS, Best DXP, Best Headless CMS, и другие, и делимся результатами в средствах массовой информации.
В 2022 году Joomla стала:
Best Free CMS: Joomla!
Best Website Builder: YOOtheme
Joomla была номинирована в 6 категориях. Подобные рейтинги и награды оценивают технологичность, активность и консолидацию сообщества, складывающегося вокруг каждой CMS.
Joomla признана лучшей CMS в конкурсе 20i FOSS Awards
Мероприятие 20i FOSS Awards, организуемое хостинг компанией 20i, призвано помочь в популяризации программного обеспечения с открытым исходным кодом. В этом году определены победители конкурса, и Joomla снова признана лучшей CMS.
Электронная коммерция на Joomla
Интернет-магазины Joomla и эквайринг Сбербанка (НУЦ)
Многие, кто пользуется эквайрингом Сбербанка в интернет-магазинах видели сообщения о том, что Сбербанк переводит все свои сервисы на сертификаты НУЦ Минцифры России с 30.01.2023г. В связи с чем будут «отваливаться» оплаты на тех сайтах, где не установлены обновленные платежные плагины/аддоны.
Скачать обновленные версии:
Способ оплаты для Joomla от 3.8.х + JShopping от 4.15.х
Инструкция для Joomla от 3.8.х + VirtueMart от 3.2.х
Обратите внимание, что код плагинов скорее всего не будет работать на сайтах с Joomla 4, так как используются устаревшие для Joomla 4 методы.
Подробности для разработчиков. В частности, встречается метод JRequest::getVar , которого в Joomla 4 нет. Его стоит заменить на следующий код:
getInput()->get('var_name'); // Например if (JRequest::getVar('method', '') != 'rbspayment') < return NULL; >// заменяем на if (Factory::getApplication()->getInput()->get('method') != 'rbspayment')
JoomShopping
Вышел JoomShopping 5.1.3 и 5.2.0. В новых релизе продолжена работа над совместимостью с PHP 8, а также:
исправлен url перенаправления после активации пользователя.
исправлена ошибка скачивания файла для продажи.
добавлена настройка в истории заказа «включить комментарий».
Исправление ошибки, при которой отправлялось 2 письма при создании/обновлении статуса заказа.
Исправление ошибки mail function disabled.
Обновлён стиль звёздочек рейтинга товаров.
Добавлена поддержка разрешённых/запрещённых email-доменов Joomla.
Заполнение характеристик к товару при создании заказа админом.
WT JShopping Bitrix 24 PRO CRON v.1.1.1
Бесплатный плагин для автоматического регулярного обновления по расписанию цен и остатков товаров JoomShopping из CRM Битрикс 24. Предполагается, что Вы используете складской учёт Битрикс 24. Рекомендуется для работы с небольшим количеством товаров.
Что нового?
Битрикс24 предполагает лимит в 2 запроса в секунду при обращении к API. Если лимит превышен — запрос не выполняется, API возвращает ошибку о превышении лимита. В итоге часть товаров не получала обновленное значение цен и количества. Теперь скрипт «спит» 0,5 секунды после каждого выполненного запроса. Для обновления цены и количества требуется 2 запроса. Для каждого атрибута также требуется 2 запроса к API. Соответственно, обновление данных товара занимает теперь минимум 1 секунду, а также ещё по 1 секунде на каждый атрибут.
На картинке табличка, где посчитано примерное время выполнения обновления цен и остатков в зависимости от количества и сложности товаров.
WT Modules in Jshopping positions v.1.1.0
Бесплатный плагин вставки модулей Joomla в позиции шаблона JoomShopping. Поддерживаются как позиции стандартного шаблона, так и возможность использовать свои позиции (если Вы разработчик шаблона).
Что нового? Добавлена возможность отображать позиции модулей Joomla:
в корзине,
на всех шагах оформления заказа:
заполнение адреса,
выбор способов оплаты,
выбор способов доставки,
предпросмотр заказа,
завершение заказа.
Плагин пока ещё поддерживает Joomla 3, но в ближайших версиях её поддержка будет убрана.
Расширения команды Nevigen для JoomShopping 5 и Joomla 4
Появились обновления расширений для интернет-магазина JoomShopping 5 и Joomla 4 от Nevigen.
Модуль фильтра товаров
Аддон сравнения товаров
Модуль Ajax корзины
Минимальная версия Joomla — 4.2. Минимальная версия JoomSopping — 5.1. Расширения предоставляются на платной основе. После приобретения расширения, установка производится через установщик Nevigen, который Вы сможете скачать в вашем кабинете и установить на Ваш сайт. После установки инсталлятора, вам необходимо будет ввести лицензионный ключ, который Вы также можете найти в своем личном кабинете. Лицензионный ключ обеспечит доступ к обновлениям и поддержке.
WT JoomShopping Favorite v.2.0.0
Функционал избранных товаров, реализован с помощью cookie. В стандартной комплектации список желаний JoomShopping отображается только в карточке товара. В списке товаров нет. При использовании различных хаков для добавления кнопки списка пожеланий в вид категории товаров кнопка перенаправляет в карточку товара, в случае если у товара есть зависимые атрибуты (влияют на цену).
WT JoomShopping Favorites — это альтернативный список пожеланий (избранные товары) для JoomShopping, который решает эти проблемы.
Что нового?
Рефакторинг кода. Пакет расширений переписан согласно новым канонам Joomla 4. Это означает, что расширения должны без проблем работать на Joomla 5 и в дальнейшем на Joomla 6 (ожидается в 2025 году).
Отказ от jQuery. Javascript код теперь не требует использования библиотеки jQuery.
Совместимость PHP 8.1. Протестирована работоспособность расширений на PHP 8.1. Исправлены все замеченные ошибки, предупреждения и уведомления.
Начиная с версии 1.3.0 поддерживается только Joomla 4+.
Версия 2.0.1 — исправление отображения дублей товаров в случае, если товар находился в нескольких категориях. Модуль отображал дубли просмотренных товаров сообразно количеству назначенных ему категорий. Исправлено.
WT JShopping products anywhere v.2.0.0
Пакет, состоящий из двух плагинов: контент-плагина и плагина кнопки редактора, позволяющие быстро и удобно вставлять товары JoomShopping в материалы, модули и везде, где работают контент-плагины. Макет default — это просто ссылка на товар. Если Вы измените категорию товара (например), то ссылки исправятся автоматически.
Контент-плагин поддерживает макеты вывода. Это значит, что Вы можете создать свой собственный макет вывода и представить более полную информацию о вставленном товаре: изображение, краткое описание, цену, количество просмотров, рейтинг, количество товара и т.д. Подробнее смотрите в файле plugins/content/wtjshoppingproductsanywhere/tmpl/default.php .
Чтобы создать свой макет вывода плагина — скопируйте файл default.php и переименуйте его. Внутри файла поместите Вашу HTML-вёрстку. Выбор макета появится во всплывающем окне выбора товара при редактировании материала.
v.2.0.0 Что нового?
Плагины переписаны с учётом структуры расширений Joomla 4.
Рефакторинг кода, переписан как JavaScript, так и PHP код.
Исправлена ошибка обработки нескольких шорткодов в тексте, из-за чего обрабатывалась лишь часть шорткодов.
Для Joomla 3 выпущена версия 1.1.0, включающая в себя исправление ошибки обработки шорткодов. Дальнейшая разработка плагина будет вестись только под Joomla 4.
Важно! Минимальная версия Joomla 4 — 4.3.0. Это связано с использованием namespaces для плагинов группы editors-xtd. В текущем виде комплект плагинов должен без проблем работать на всей линейке Joomla 4, а так же Joomla 5+.
WT JoomShopping Last Seen products v.2.0.0
Пакет, состоящий из модуля и плагина. Плагин записывает в cookie просмотренные посетителем товары, а модуль отображает их. В плагине настраивается время жизни cookie — сколько дней хранить в браузере пользователя информацию о просмотренных товарах.
Это бесплатный аналог аддона «Addon last visited products» от MAXXmarketing GmbH (разработчиков JoomShopping).
Что нового?
Пакет расширений адаптирован к новой файловой структуре Joomla 4. Это означает, что он будет работать и на Joomla 5.
Virtuemart
Один из старейших компонентов для создания интернет-магазина 3 мая 2023г. получил новую версию. Заявлена совместимость с Joomla 4.3, PHP8.2 и MySQL 8. Исправлен ряд ошибок, связанных с постепенной адаптацией компонента к Joomla 4.
Недавно Virtuemart ввёл новую модель спонсирования проекта: для того, чтобы получить новую версию сразу после релиза нужно приобрести подписку. Так, сейчас бесплатно скачать можно версии до 4.0.12 включительно для Joomla 4 и 4.0.20 для Joomla 3.x. Однако, 4.0.20 для Joomla 4 доступна только владельцам подписки. Версия 4.0.12 вышла в декабре 2022 года.
Как сообщается на странице покупки подписки, member version не отличается от обычной версии. Это больше похоже на версию с ранним доступом, содержащую исправления ошибок, о которых сообщают пользователи, а также новые функции, оплачиваемые участниками. Любые изменения в файлах ядра рано или поздно используются и в стандартной версии, но пользователи без подписки будут получать их, видимо, с ощутимой задержкой.
Guru
Guru — известный компонент для продажи доступа к видео-курсам для Joomla.
WT Guru YooKassa платёжный плагин для компонента продажи видео-курсов
Сервис Юкасса (YooKassa) позволяет принимать платежи для юридических лиц, ИП и самозанятых. Данный бесплатный плагин добавляет возможность принимать оплату с помощью Юкасса за ваши видеокурсы.
Минимальная версия Joomla — 4. Плагин написан с учетом новой структуры Joomla 4 и будет работать и в Joomla 5.
Для работы плагина требуется PHP библиотека WT YooKassa library (о ней сказано в разделе Новости расширений дайджеста). Это официальная PHP-библиотека Юкасса для разработчиков, «обёрнутая» в расширение Joomla. Она автоматически устанавливается при установке плагина платёжного метода.
Phoca Cart
Вышла новая версия компонента Phoca Cart для создания Интернет-магазинов. Новая версия идет с рядом интересных функций.
Изюминкой релиза является добавление задач ИИ для товаров. Теперь можно применять искусственный интеллект для создания описаний товаров, длинных описаний, функций и мета-описаний. Эта фича обещает сэкономить время владельцев магазинов и сделать процесс создания описаний товаров более эффективным.
В Phoca Cart также добавлены новые переопределения шаблонов, в том числе внешний макет для поиска, списка пожеланий, сравнения, корзины и валютных модулей. Новые переопределения шаблонов предоставляют владельцам магазинов больше возможностей для настройки и позволяют более гибко кастомизировать внешний вид макетов.
Компонент имеет также множество других улучшений. Подробнее см. в анонсе.
Новости расширений Joomla
No Boss Testimonials — компонент отзывов для Joomla 4
Компонент отзывов для Joomla 3 и Joomla 4. Нынче принято оставлять отзывы о компаниях на крупных сторонних сервисах, которые 1) берут на себя всю работу по модерации отзывов, 2) защите от спама, 3) де-юре являются независимыми и не заинтересованными лицами, а значит не будут публиковать только положительные или только отрицательные отзывы о компании. Но, несмотря на это нередко собственную форму для сбора отзывов и модули для их вывода требуют заказчики.
Данный компонент имеет 4 редакции, из которых младшая — бесплатная. В ней присутствует 4 макета вывода и отсутствуют:
форма отправки отзыва для пользователей сайта;
модерация отзывов;
функция вставки изображений/видео в отзывы с фронтенда. Для справки: стоимость платных версий от $17 до $24. Страница расширения на JED.
Модуль WT Quick links
За это время вышло 6 релизов модуля (1.4.4 — 2.1.1). Модуль позволяет создавать наборы повторяемых сущностей на сайте, которые могут быть ссылками, картинками, текстом. табами, списком FAQ, слайдшоу и т.д. Есть условия для исключений показа элементов списка. Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео.
Что нового?
Новый параметр «Использовать ссылку». Он позволяет включать или отключать настройки ссылки для элемента. Этот флаг можно использовать в Ваших макетах, создавая списки сущностей, где в одном списке чередуются кликабельные и не кликабельные элементы. Например, вывод простого списка, где часть элементов — простой текст, а часть является ссылкой. Или же макет простого слайдшоу, где первые элементы картинки, а последний — картинка-ссылка «смотреть все».
Новый тип ссылки — материал Joomla.Подходит для небольших каталогов услуг, реализованных на переопределениях материалов Joomla, сайтов-визиток и т.д.
Новый тип ссылки — файл. В список сущностей можно добавлять ссылки на файлы, выбирая их с помощью Медиа Менеджера Joomla. Добавить можно ссылки на изображения, аудио, видео или документы. Разрешенные типы файлов определяются общими настройками Joomla.
Мультиязычные сайты. Указание полного пути к poster и video файлу в макете bg-video . На мультиязычных сайтах для неосновных языков пути к файлам указывались с ошибками. Исправлено.
Модуль переписан по структуре Joomla 4. Минимальная версия Joomla 4.2. Это означает, что он будет работать и на Joomla 5.
Файловый менеджер Quantum Manager
Вышел релиз Quantum Manager 2.0.1. Это — maintenance релиз, который содержит важные фиксы и делает работу компонента более стабильной на PHP 8.1.
Искусственный интеллект ChatGPT в Joomla 4
Для Joomla появилось сразу несколько расширений, позволяющих внедрить ChatGPT в интерфейс CMS.
Плагин кнопки редактора ChatGPT
Бесплатный плагин, добавляющий кнопку вызова чата с GPT при редактировании контента.
All Video Share получил версию для Joomla 4
Одна из самых известных и популярных видео-галерей для Joomla получила версию для Joomla 4. У компонента есть бесплатная и платная версии. Бесплатная позволяет создавать видео-галерею из файлов, загруженных на свой хостинг, создавать структуру категорий, загружать видео с фронт сайта, комментарии, вставлять код видео, имеет контент-плагин и т.д. Платная версия позволяет вставлять видео с Vimeo и Youtube, live stream потоки (HLS) , проигрывать вашу рекламу перед видео, вставлять плейлисты, отображать видео в слайдерах и модальных окнах.
Плагин GitDeploy для Joomla 3 и Joomla 4
Плагин позволяет «слушать» вебхуки из GitHub и «накатывать» изменения в Joomla прямо из репозитория. При изменении файлов GitHub отправляет вам вебхук, плагин выполняет git pull, а также отправляет вам уведомление. Уведомления можно отправлять в:
Плагин нужен больше для проектов, над которым работают одновременно несколько разработчиков и используют контроль версий.
WT Revars insert — плагин вставки шорт-кодов
Плагин кнопки редактора для вставки шорт-кодов, созданных с помощью плагина Revars. С помощью плагина Revars в Joomla можно создавать шорткоды-переменные (и не только), которые плагин может заменять по всему сайту. Это могут быть контактные данные (телефон, почта, адрес), js-скрипт карты для сайта, ИНН, название бренда и т.д. Для того, чтобы было удобно вставлять эти переменные в поле редактора создан этот плагин — плагин кнопки редактора.
Поддерживается только Joomla 4.
Разработчик плагина Revars — @progreccor
NorrCompetition 2.0.0 — стабильная версия компонента конкурсов для Joomla 4
Вышла версия под Joomla 4. Из нововведений: множество улучшений, обеспечение повышенной производительности и расширенные функциональные возможности.
NorrCompetition 2.0.0 предоставляет пользователям решение, необходимое для проведения тематических конкурсов и голосований.
Полная совместимость с Joomla 4.
Новый шаблон по умолчанию
Удалена зависимость от jQuery.
Новая опция для отключения обрезки изображений (crop)
Оптимизированная производительность
Поддержка анимированных изображений .gif и видеороликов Instagram Reels
Совместимость с PHP 8.x.
Quick Menu — модуль панели администратора для Joomla 4
После установки создайте и настройте модуль в менеджере модулей для панели администратора. Модуль выводит 2 столбца меню, один для задач контент-менеджмента, второй — для быстрого доступа к задачам администрирования сайта. Поддерживает настройки прав доступа Joomla (ACL). Только для Joomla 4.
Модуль Notepad для панели администратора Joomla 4
Модуль позволяет добавлять заметки в панели администратора и хранить их в текстовом файле. Заметка и поле редактора отображается в offcanvas. Для вывода кнопки быстрого доступа к заметкам модуль нужно опубликовать в позиции status . Редактор поддерживает markdown синтаксис. Файл заметок можно затем скачать.
Обратите внимание, что при сохранении страница обновляется. Убедитесь, что Ваши изменения на странице сохранены.
Amazon S3 Filesystem для Joomla 4 v.1.0.2
Обновление плагина файловой системы Amazon S3 и S3-совместимых хранилищ для Joomla 4 от Akeeba.
добавлено кэширование миниатюр изображений в локальной файловой системе Joomla;
добавлено локальное кэширование операций Amazon S3 с файлами.
Что это такое?
Joomla 4 представила концепцию плагинов-адаптеров для Media Manager, которые позволяют вам указывать хранилище для ваших медиафайлов за пределами папки images на вашем сайте.
Сама Joomla поставляется с одним адаптером под названием «Файловая система — Локальный каталог». Он реализует стандартное хранилище медиафайлов в файловой системе вашего сервера. По умолчанию он разрешает доступ только к папке images, но при необходимости его можно настроить для поддержки большего количества папок в корневом каталоге вашего сайта.
Преимущество плагинов-адаптеров для Media Manager в Joomla 4 заключается в том, что такой подход позволяет сторонним разработчикам, создавать дополнительные плагины-адаптеры для служб облачного хранения файлов.
Плагины файловой системы от Digital Peak — DP Media
Ранее на канале также сообщалось о комплекте плагинов файловой системы Joomla 4 от Digital Peak — DP Media (которые, кстати, тоже недавно обновились — в январе 2023). В комплект входит 12 плагинов, часть из которых — плагины файловой системы:
Amazon filesystem — по подписке.
Dropbox filesystem — по подписке.
Plugin Flickr — по подписке.
FTP filesystem — бесплатно. Позволяет подключать в Медиа менеджер удаленные FTP.
Google Drive filesystem — по подписке.
Joomla filesystem — по подписке. Позволяет подключать к файловой системе сайта другой сайт на Joomla 4.
Microsoft OneDrive filesystem — по подписке.
Permissions filesystem — бесплатно. Позволяет настроить доступ к папкам для различных групп юзеров.
Pexels filesystem — бесплатно.
Pixabay filesystem — бесплатно.
Smugmug filesystem — по подписке.
Unsplash filesystem — по подписке.
WebDAV filesystem — по подписке.
SW JProjects v.1.6.2 — обновление менеджера цифровых проектов для Joomla разработчиков
Компонент позволяет разработчикам сайтов на Joomla вести свой собственный сервер обновлений для своих расширений (шаблонов, модулей, плагинов etc), что позволяет доносить обновления сразу всем своим (и не только своим) клиентам.
Контрольная сумма файла в XML сервера обновлений. Добавлены контрольные суммы файла sha 256, sha348 и sha512 в xml-манифеста сервера обновлений. При обновлении расширения в Joomla 4 показывалось предупреждение о том, что не найдена контрольная сумма в сервере обновлений. Исправлено.
Патчи PHP 8. В панели администратора и фронтенде исправлены уведомления PHP 8
Не показывается кнопка скачать, если нет версии. Если проект не имел ни одной опубликованной версии — показывалась кнопка «скачать», что вело на страницу 404. Исправлено.
WT Jshopping SW JProjects v.2.0.0
Плагин для автоматической генерации лицензионных ключей в менеджере цифровых проектов SW Projects при продаже расширений Joomla с помощью интернет-магазина JoomShopping. Также плагин добавляет информацию о сроках действия ключа и ссылку на скачивание в заказ JoomShopping.
Плагин нужен для Joomla-разработчиков, которые оказывают платные услуги по поддержке и обновлению своих расширений.
Теперь плагин поддерживает только Joomla 4.
Исправлены ошибки генерации ключей после покупки.
Если покупка совершена зарегистрированным пользователем — при генерации ключа добавляется его user id.
Поддержка JoomShopping 5.
Phoca Gallery 4.5.3 — бесплатная галерея изображений для Joomla 4
В новой версии компонент получил совместимость с Joomla 4.2 и PHP 8.2.
WT Typograph — плагин для исправления типографики текста для Joomla 4
Современные интернет-издания немало внимания уделяют качественной подготовке своих текстов к web-изданию. В тексте должен соблюдаться определенный code style, принятый на данном конкретном ресурсе. Правила оформления текста могут быть разные:
знаки длинного тире, вместо «минуса» или «дефиса»,
французские кавычки (ёлочки) вместо английских (как запятые),
значения дат не должны переноситься на следующую строку,
нужно убрать все лишние повторяющиеся пробелы и так далее. Обычно, этой работой в интернет-издании занимается корректор, иногда редактор. Однако, выполнение многих правил оформления текста можно автоматизировать и этой задаче служат типографы.
Для кого этот плагин?
Данный плагин для Joomla 4 пригодится всем изданиям, следящим за качеством оформления текстов на своих страницах: информационные, контентные сайты, сайты-новостники. Плагин работает с бесплатным сервисом Типограф. Во время тестирования сервис легко обрабатывал объёмы текста ~ 30 000 знаков. Как сам сервис, так и плагин — бесплатные.
Joomla! Downloader — скрипт загрузки Joomla прямо на сервер
PHP-скрипт для автоматической загрузки последней версии Joomla! непосредственно сервер на сервер без необходимости загружать его локально. Скрипт также извлекает ZIP-файл непосредственно на вашем сервере после его загрузки.
ProofReader — компонент отправки опечаток читателями администрации сайта
Расширение для Joomla позволяет посетителям сайта сообщать администратору об опечатках на сайте. Посетитель может выделить текст мышью и нажать комбинацию клавиш Ctrl+Enter, чтобы отправить сообщение администратору сайта. После этого отображается всплывающее окно, и пользователь может написать комментарий об опечатке. Отчет об опечатке будет доступен в панели администратора, а администратору будет отправлено уведомление по электронной почте.
Особенности:
Отчеты отправляются без перезагрузки текущей веб-страницы.
Отправляет уведомления по электронной почте администратору.
Поддерживает защиту от спама с помощью CAPTCHA Joomla.
Пользователь может оставить комментарий о найденной опечатке.
Плагин использует простой шорткод с открывающим и закрывающим тегом. Вставьте между ними два изображения и все готово. Особенности
Плагин написан на ванильном JavaScript.
Плагин имеет горизонтальное и вертикальное направление сравнения.
Возможно указать подписи для изображений.
Вышел CKK Seblod v.4.0.3 для Joomla 4.
Вышла новая версия конструктора контента и веб-приложений Seblod. Заявлена поддержка PHP 8.0-8.2. Для обновления можно использовать стандартные аддоны экспорта-импорта или updater addon.
Seblod даёт широкие возможности для кастомизации Joomla как внутри, так и снаружи. Предоставляет функционал конструктора приложений и CCK, внедряет в Joomla типы контента и многое другое.
miniOrange Joomla SAML Single Sign-On (SSO) – SAML SSO аутентификация для Joomla 4
Технология единого входа (SSO) используется для объединения разных сайтов/порталов/web-приложений так, чтобы можно было использовать единую учетную запись везде, без повторной аутентификации. Пример — сервисы Яндекса, Гугла, Мейл.ру (ВК) и т.д. Это избавляет пользователя от необходимости входить в каждое приложение отдельно. Данное расширение также позволяет управлять входом в систему и обеспечивать SSO с помощью 48 провайдеров IdP, включая Windows sso, Worpress, Azure, Onelogin, Oracle, RSA Secure ID, Office 365, CA Identity, IBM, Magento, VMware и других. Или же с помощью любого провайдера IDP, совместимого с SAML.
Плагин miniOrange Joomla Single Sign on (SAML SSO) — это поставщик услуг SAML 2.0, который можно настроить для установления доверия между сайтом Joomla и поставщиком удостоверений, совместимым с SAML 2.0, для безопасной аутентификации пользователей на сайтах Joomla. Это позволяет вашим пользователям безопасно входить на сайт Joomla.
Плагин имеет бесплатную и платную версии. Уточните доступный функционал на странице расширения. Скачивание файла расширения идёт с серверов Amazone.
miniOrange OAuth Server for Joomla v.4.0.0
Плагин позволяет пользователям входить в ваши клиентские приложения, используя свои учетные данные учетной записи Joomla. Это позволяет вам использовать Joomla в качестве сервера / провайдера OAuth и предоставлять OAuth API для доступа к ресурсам. Основная цель этого плагина OAuth server / OAuth Provider — позволить пользователям выполнять единый вход (SSO), используя свои учетные данные Joomla, в различные приложения, поддерживающие протокол OAuth / OAuth 2.0.
Позволяет использовать Joomla в качестве вашего OAuth-сервера и получать доступ к OAuth API.
Поддержка нескольких OAuth-клиентов.
Поддержка всех типов grant — Authorization, Implicit, Client credential, Resource, Refresh token.
Включает все характеристики сервера OAuth2.0, в том числе интегрированный OpenID connect, встроенный сервер ресурсов, возможность создавать учетные данные клиента и привязывать их к определенному пользователю с помощью паролей приложений и так далее.
Поддержка JWT.
Поддержка веб-токенов OAuth 2.0 JSON.
Поддержка PKCE OAuth 2.0.
Маппинг атрибутов и ролей позволяет скрыть имена атрибутов, используемых для хранения данных в Joomla. Атрибут и роли могут быть просто сопоставлены и отправлены в качестве ответа. Также доступны и другие параметры.
Расширение бесплатное, поддерживает Joomla 3 и Joomla 4.
Sentry for Joomla v.1.5.0
Плагин интеграции сервиса Sentry в Joomla 3 и Joomla 4. Sentry — сервис багтрекинга, позволяет оперативно выявлять ошибки сайтов, сервисов как в javascript, так и в PHP в режиме реального времени. Сервис необходим для проектов, где присутствуют интеграции со сторонними сервисами и могут вдруг не обновиться токены авторизации или ошибки в js крушат все формы для сбора заявок. С помощью Sentry возможно быстро узнать о проблеме и соответственно быстро её исправить.
На момент написания заметки сервис имеет бесплатный тариф «Developer», подробности на странице сервиса.
WT SEO Meta templates v.2.0.0 — плагин СЕО-шаблонов для Joomla
Обновление пакета плагинов для работы с СЕО-шаблонами в тегах и meta-description. Плагин позволяет использовать формулы (шаблоны, маски) для тега title и meta-тега description, принимая данные (в том числе и сео-формулы) из дополнительных плагинов-провайдеров. Также обрабатываются страницы пагинации.
Список доступных плагинов-провайдеров:
Virtuemart
JoomShopping
My City Selector
Материалы и категории Joomla
Phoca Gallery
[NEW] Теги Joomla Некоторые плагины-провайдеры поддерживают работу с мультиязычностью, позволяют указывать разные СЕО формулы для разных категорий и т.д.
Что нового?
Добавлен плагин-провайдер для тегов Joomla. Он работает в списке тегов и в списке сущностей (материалов, контактов, данных из сторонних компонентов) по тегам. Также плагин работает на страницах пагинации. Добавляет СЕО-суффиксы вида «- стр. NNN» для уникализации страниц пагинации.
Плагины контента. Содержимое переменных вступительного текста обрабатывается предварительно плагинами контента.
Joomla 4 only. С версии 2.0.0 плагин поддерживает только Joomla 4.
Отладочная информация. Показ отладки для плагинов-провайдеров включается теперь в основном плагине. Пока что верно для плагинов v.2.0.0 и выше.
Рефакторинг. Обновлены до структуры Joomla 4 основной плагин и провайдер для материалов. Провайдер для тегов создан сразу по новой структуре. Это означает, что плагины будут работать и в Joomla 5+.
JBZoo для Joomla 4
JBZoo — это надстройка над некогда популярном CCK Joomla Zoo, который позволял реализовать магазин на данном компоненте. Изначально надстройка была коммерческой, после того, как автор (Денис Сметанников) прекратил поддержку, он стал бесплатным.
Где-то раз в год мы пишем, что-то о JBZoo. На мой взгляд — это весьма самобытное явление в Joomla, дело в том, что коммерческие компоненты редко живут так долго, после того, как авторы от них отказываются. JBZoo развивается уже много лет силами сообщества.
Данное видео демонстрирует работу JBZoo на Joomla 4. И как говорят в сообществе, в скором времени они опубликуют публичную версию.
4AI — Joomla AI assistant
Это компонент, внедряющий всем известный искусственный интеллект ChatGPT в Joomla 3 и Joomla 4. Чат доступен как в бэкенде, так и во фронтенде в виде небольшой плавающей иконки, по нажатию на которую открывается интерфейс чата.
Возможности
На основе чата можно:
Получить план для новой статьи. Напишите описание продукта , предоставив только вводную информацию.
Получить текст новой статьи за считанные секунды с заголовком и мета-описанием. Сохраните этот текст как новую статью Joomla в выбранной Вами категории в один клик.
Переведите существующую статью на другой язык. Сохраните ее как новую статью, автоматически связанную с исходной. В один клик, с одного экрана с сохранением всего форматирования.
Напишите пост для Facebook или несколько рекомендуемых твитов для вашего сообщения в блоге или продукта. Делиться постами в соц.сетях можно прямо из интерфейса компонента.
Соберите ключевые слова, получите LSI или хэштеги, чтобы улучшить SEO Вашего проекта.
Или просто общайтесь напрямую с ИИ и копируйте/вставляйте вопросы, ответы или всю дискуссию одним щелчком мыши. ==== Хотя на данный момент практической альтернативы OpenAI API нет, компонент 4AI был разработан для поддержки других провайдеров AI API в будущем. ====== Обратите внимание, что вам НЕ нужен платный план ChatGPT для использования 4AI (но вам нужно будет платить за использование API). ===== Компонент поддерживает Joomla 3 и Joomla 4. Существует 3 версии:
2 платных ($69 / 1 год, 3 сайта и $179 / год, 200 сайтов)
4AI Community edition — бесплатный, без ограничений по количеству установок, но с ограничениями по функционалу.
Компонент форума Kunena 6.1 для Joomla! 4.3
Команда Kunena рада объявить о выпуске стабильной версии Kunena 6.1 — расширения форума на Joomla для Joomla 4.x.
Kunena 6.1.0 была разработана для работы с Joomla! 4.2 и выше, требования следующие:
Php 7.4.1 до Php 8.2.x (поддержка php 8.2.x нуждается в улучшении, вы можете видеть оставшиеся устаревшие сообщения об ошибках)
MySQL 5.7.0
Bootstrap 5.1
Работа, проделанная в Kunena 6.1, выглядит следующим образом:
В Kunena интегрирован новый плагин для защиты конфиденциальности.
Интегрированы личные сообщения при публикации/ответе/редактировании сообщения.
Рефакторинг некоторых внутренних представлений, чтобы они соответствовали Joomla! 4.x стиль: ранги, пользователи.
Замена некоторых устаревших методов, установленных в Joomla! 4.2.х.
Работа над совместимостью с Php 8.2.x, все еще остаются некоторые устаревшие сообщения об ошибках.
Продолжение конвертирования запросов для использования БД Joomla!, которая позволяет запросам быть независимыми.
Компонент всплывающих окон EngageBox 6: бесплатная версия
В майской рассылке греческого Joomla-разработчика Tassos Marinos сообщается о том, что его известный компонент EngageBox для создания всплывающих окон получил бесплатную, но ограниченную по функционалу версию.
WT YooKassa PHP библиотека для Joomla 4 v.3.0.2
Обновление официальной PHP библиотеки платёжного сервиса YooKassa (Юкасса), «обёрнутой» в пакет для использования в Joomla 4. Обновленная версия SDK. Поддержка PHP 8+.
Что нового?
Отказ от поддержки PHP меньше 8.
Изменена структура файлов.
Переработана логика работы с моделями.
Добавлено использование валидатора данных в моделях.
Массивы объектов заменены на объекты-коллекции При установке библиотеки производится проверка на минимальную версию PHP. Данная библиотека нужна в первую очередь для Joomla-разработчиков для использования в своих расширениях: платёжных плагинах, модулях, интеграциях и т.д., а также устанавливается в качестве необходимой зависимости для работы этих самых расширений.
Плагин пользовательского поля Radical Multi Field v.3.1.0
Долгожданное обновление плагина пользовательского поля Radical Multifield. Плагин получил совместимость с Joomla 4. Мультиполе в купе с возможностью создания пользовательских макетов вывода позволяет создавать повторяемые наборы сущностей там, где работают поля Joomla. Это может быть аудио-плеер, галерея изображений, видео, таблицы, прайс-лист и т.д.
Также мультиполе имеет интеграцию с файловым менеджером Quantum. Это позволяет использовать drag-n-drop загрузку, например, изображений прямо в материалах (контактах и т.д.), а также делать последующий ресайз изображений автоматически.
Что необычно: в Joomla-сообществе был объявлен сбор средств на выпуск обновления расширения и общими усилиями необходимая сумма была набрана.
WT Articles anywhere with fields v.2.0.0 — плагин вставки материалов с собственными макетами вывода
Контент-плагин Joomla, позволяющий вставлять информацию из материалов и пользовательских полей материала в любом месте, где работают контент-плагины с помощью шорт-кода вида . Для плагина возможно (и даже необходимо) создавать свои макеты вывода, которые Вы указываете в шорт-коде.
Что нового?
Структура плагина обновлена, с учётом требований Joomla 4. Это означает, что плагин будет работать и на Joomla 5.
Добавлен плагин кнопки редактора для более удобной вставки материалов и выбора макетов.
Добавлен новый макет вывода link , который представляет собой ссылку на материал с его названием. Если Вы измените название материала — оно автоматически изменится.
Минимальная версия — Joomla 4.3. Это связано с использованием namespaces для плагинов группы editors-xtd.
Akeeba Social Login for Joomla!
Пакет плагинов авторизации и регистрации пользователей Joomla через социальные сети. Поддерживает Joomla 3 и Joomla 4.
Список поддерживаемых соц.сетей и сервисов:
Facebook
GitHub
Google
LinkedIn
Microsoft Account
Twitter (удалена для Joomla 3)
Apple
Версии:
для Joomla 3 — v.3.3.1.
для Joomla 4 — v.4.4.2
Поддержка PHP 8.2
JL Content Fields Filter 3.0.0 — бесплатный фильтр материалов по пользовательским полям
JL Content Fields Filter — Это бесплатный модуль, который фильтрует материалы Joomla согласно настраиваемым полям прямо в категории материалов.
Что нового в версии 3.0.0.
Файловая структура Joomla 4 для модуля и плагина.
Замена устаревших методов Joomla API в компоненте.
Протестировано на Joomla 4.3.3 и Joomla 5.0.0-alpha2.
Обновлен SEO компонент для фильтра.
Версия для Joomla 3 более не поддерживается.
Статьи и видео о Joomla
Статья «Как создать плагин для Joomla 4 для авторизации пользователя по email» (How to Create a Joomla 4 Plugin to Allow User Login with Email)
По умолчанию Joomla нужен логин для того, чтоб авторизовать пользователя. Однако, можно позволить ему (пользователю) авторизовываться с помощью e-mail и пароля. Для этого потребуется создать несложный плагин. В статье приводится пример кода.
Статья на английском языке. Читать статью.
Youtube видео: Как найти переопределение какого именно файла сделать? (How to Find the File You Want to Make a Joomla Layout Override For)
На канале Basic Joomla Tutorials относительно недавно вышло видео, в котором рассказывается как можно быстро найти и сделать переопределение файла макета, если Вам нужно изменить внешний вид вывода расширения Joomla.
Подборка видео для разработчиков о Joomla 4
Robbie Jackson на своём канале выложил 9 (на момент написания дайджеста) видео о разработке Joomla 4, в которых описываются общие концепции и подходы, а так же демонстрируются примеры кода. Также даются рекомендации по апргейду расширения до Joomla 4.
В описании к каждому видео даны ссылки на презентацию из видео, а так же ссылки на документацию.
Разработка шаблона для Joomla 4 (видео)
Плейлист на Youtube с 3 (из 4) видео о создании шаблона для Joomla 4. Видео на английском языке. В описаниях под видео есть полезные ссылки на образцы кода, инструкции по настройке рабочего окружения.
Работа с размерами изображений с помощью класса Uri в Joomla 4
Парадокс, конечно, но это возможно. Казалось бы, причем тут класс ядра для работы со строками url. Но именно он может помочь нам в Joomla 4. Статья о том, как автоматически определять размеры файлов изображений для атрибутов width и height с помощью ядра Joomla 4 и не грузить сервер.
Joomla 4.3: обучающие туры и другие новшества. Видео от Joomla Center.
Главным нововведением Joomla 4.3 являются так называемые Обучающие туры (guided tours), которые наглядно и пошагово демонстрируют процессы администрирования в Joomla 4. Вызвать обучающий тур по определённой области CMS можно из строки заголовка на нужной странице админки.
Joomla 4.3 – что нового. Обзор Алексея Хорошвеского.
Guided Tours – обучающие туры в Joomla. Обзор Виталия Wedal.
В Joomla 4.3 появилось интересное нововведение — Guided Tours или Обучающие туры. По сути, Guided Tours – подсказчики. Они пошагово показывают, куда надо нажать или что заполнить, чтобы реализовать какую-то опцию на сайте. Туры состоят из шагов, с помощью которых вы постепенно выбираете и заполняете все нужные поля и в конце вас поздравят с успешным созданием чего-то.
Создание плагинов с учётом новой структуры Joomla 4.
С момента выхода Joomla 4 прошло уже почти 2 года, поэтому слово «новой» будем понимать в контексте сравнения с Joomla 3. В Joomla 4 «под капотом» произошло немало изменений. Кодовая база движка постепенно отбрасывает legacy (старый код), встретившись с которым мы могли бы как на машине времени вернуться в середину 2000-х или начало 2010-х
В данной статье собран необходимый минимум для того, чтобы обновить старый плагин до структуры Joomla 4. Ну, или написать с нуля новый.
Создание плагина кнопки редактора в Joomla 4
Статья о том, как удобно расширить пользовательские возможности при редактировании или создании контента в Joomla. Если Вы, например, захотите сделать подсчет СЕО-характеристик текста или внедрить ИИ помощник прямо в интерфейс Joomla, то эта статья расскажет как Вашему разработчику это сделать.
Так же в статье в целом показывается распределение логики между frontend и backend в Joomla, работа с ajax нативными средствами CMS.
Теги (Tags) в Joomla 4: зачем нужны и как использовать?
Гайд по компоненту «Теги» (Tags) в Joomla 4 («Метки» в Joomla 3): возможности, настройки, редактирование, типы пунктов меню и модули для тегов на сайте Joomla. Хороший мануал от обучающего центра Joomla Center.
Управление заголовками HTTP в Joomla 4 (часть 2)
2-я часть перевода огромной статьи, посвящённой тонкостям безопасности сайтов на Joomla. Статья Joomla’s New HTTP Headers Plugin For J4 из майского номера (2022) Joomla Community Magazine.
Первая часть была опубликована на Хабре ранее.
Перенос материалов из компонента K2 в стандартный компонент материалов Joomla
K2 — в целом неплохой компонент (был). Некоторое время он давал гораздо больше возможностей для отображения контента, чем стандартный компонент материалов Joomla. Однако, время не стоит на месте, и сейчас стандартный компонент не уступает в возможностях компоненту K2. Разработчики Joomla потрудились на славу, чего не скажешь о разработчиках компонента K2. Мало того, что долгое время не обновлялся функционал компонента, так они не подготовили обновление для перехода на 4 версию Joomla. На момент написания этой статьи прошло почти два года с выпуска Joomla 4, а обновления компонента K2 для совместимости с новой версией так и нет. Возможно, на тот момент, когда вы будете читать эти строки разработчики K2 что-то выкатят, но сейчас нет.
Автор — Равиль Вилданов @ravilwild
Web Services в Joomla 4
Этот текст — перевод статьи из нового портала документации для разработчиков Joomla, раздел «Основные концепции». Ранее уже был опубликован перевод раздела, описывающего принципы Dependency Injection Containers в Joomla 4.
В тексте даны примеры PHP-кода по работе с Joomla 4 REST API. Примеры даны как с использованием API Joomla (HttpFactory), так и для non-Joomla сайтов — на чистом cURL.
Материалы Джумла 4. Создание, управление и вывод на сайте.
Учебные материалы о работе по наполнению сайта на Joomla 4 от Алексея Хорошевского. Видео урок и его расшифровка пригодится тем, кто только-только начинает знакомиться с чудным миром Joomla
Шаблоны Joomla
Astroid
3 обновления шаблона Astroid v. 2.6.4-2.6.6. Это бесплатный шаблон-конструктор для Joomla 3 и Joomla 4.
Что нового?
Bootstrap 5.3
FontAwesome 6.3.0
обновление языковых констант
добавлено 2 позиции в горизонтальный header
багфиксы PHP 8.2
небольшие правки css шаблона
Muta — шаблон для панели администратора Joomla 4 в тёмных тонах
Бесплатный шаблон тёмной темы для админки Joomla 4. В целом это стандартный шаблон Atum, но с некоторыми изменениями.
Модульность
С момента появления дочерних шаблонов в Joomla 4 и Cassiopeia, и Atum (шаблоны по умолчанию) не соответствуют механизмам переопределения основных частей шаблонов. Шаблон Muta предлагает следующую концепцию: вы никогда не переопределяете точки входа шаблона ( index.php, component.php, error.php и т. д.), вместо этого каждая из записей является просто оболочкой нескольких JLayouts, поэтому, если вам нужны собственные значки, вы просто переопределяете конкретный макет для этого. Макеты — это фавиконы, ассеты, логотипы. Здесь шаблон следует философии модульности Unix: делай что-то одно и делай это хорошо!
Цветовые схемы
Это в основном светлая/темная тема. Шаблон сохраняет состояние в файле cookie и передает его в HTML в качестве атрибута documentElement (data-bs-theme , вероятно, Joomla будет использовать data-theme для работы с фреймворками, отличными от Bootstrap). Фактически в Joomla нужно сохранить состояние шаблона в базе данных для конкретного пользователя, но, возможно, также сохранить и файл cookie.
Зачем?
Этот шаблон был создан для того, чтобы разработчики могли протестировать свои собственные расширения и выяснить, какие изменения необходимо применить к их html/css/js для поддержки prefers-color-scheme. В целом, применение правильной переменной CSS — это все, что нужно. Но это зависит от вашего фактического html/css/js. JavaScript tinyMCE — очень хороший пример того, как работать с приложениями, визуализированными на стороне клиента.
Вышла новая версия популярного конструктора страниц YOOtheme Pro 4
Новая версия выводит динамический контент на новый уровень с такими функциями, такими как родительские источники, динамическое мультипликация и вложенные источники нескольких элементов. Все элементы шаблона также доработаны, чтобы сделать ваши сайты совместимыми с WCAG.
Что еще интересного появилось?
Поддержка динамики во вложенных макетах, строках и колонках.
Значительно улучшена семантическая разметка, теперь можно использовать теги , , , , , , в настройках элементов.
Кастомайзер получил иконку для быстрой прокрутки к нужной области редактирования.
Макет страницы в редакторе теперь не отображает выключенные элементы.
Макет статьи получил иконку для доступа к редактированию полей и прочих атрибутов материала.
Добавлена возможность быстрой трансформации элемента из одного вида в другой, например из слайдшоу в слайдер панели.
Для картинок теперь можно задать точку фокуса, обрезка будет происходит так, чтобы сохранить видимым главный акцент, например не отрезать людям головы.
Добавлен Blur фильтр для опции параллакса.
Макет колонок строки расширен до 6 колонок, раньше было доступно только 5 колонок.
Добавлена возможность использования отдельного SVG для Favicon.
В настройках темы теперь можно изменить степень сжатия для картинок по умолчанию.
Добавлена ленивая загрузка для видео с YouTube и Vimeo.
Добавлена поддержка YouTube Shorts.
Добавлена возможность ручной сортировки фильтра в элементах Grid и Gallery.
Добавлена микроразметка хлебных крошек.
Вышел SP Page Builder 5.0 от JoomShaper
Новый релиз одного из самых популярных конструкторов страниц для Jooma.
Что нового?
переработанный редактор в админке, улучшения интерфейса;
улучшенный редактор с фронта;
улучшенный интерфейс боковой панели для более легкого доступа к аддонам, разделам и настройкам страницы;
внедрение библиотеки цветов;
переработаны функции «Цвет», «Типографика» и «Тень блока»;
функция копирования и вставки для аддонов с опциями «Вставить выше» и «Вставить ниже»;
функция сортировки в макетах при поиске;
Font Book, функция, позволяющая устанавливать свои шрифты и шрифты Google;
новый медиа-менеджер в админке;
сортировка сохраненных аддонов и разделов;
добавление или удаление аддонов в избранное;
добавлена поддержка переменных CSS в палитре цветов;
редактирование материалов Joomla прямо из редактора билдера;
возможность отката изменений для серии SP Page Builder 3.x для улучшения обратной совместимости и упрощения миграции с предыдущих версий;
обнаружены устаревшие структуры аддонов, добавлены уведомления, предлагающие пользователям обновиться до актуальной структуры аддонов.
Разное
Чат Joomla-сообщества в Mattermost
Международный чат Joomla-сообщества, в котором собрались представители из Европы и Азии. Среди них многие имена мы видим среди разработчиков ядра Joomla, членов департаментов Joomla, в качестве авторов статей в Joomla Community Magazine.
Для того, чтобы присоединиться, нужно иметь аккаунт на https://identity.joomla.org/ — центр идентификации Joomla. Вход в мессенджер происходит с помощью этого портала.
Mattermost — это мессенджер с открытым исходным кодом от команды GitLab
Сообщите об ошибках и недочетах официального сайта Joomla!
Вы можете помочь сделать официальный сайт проекта Joomla! лучше, сообщив о найденных багах, ошибках на GitHub. В списке указано 29 проектов. Оставьте issue на гитхабе, опишите возникающую проблему и помогите стать официальному сайту Joomla лучше.
JoomlaDay USA. Бесплатный повтор части выступлений.
В конце апреля 2023 в США состоялся JoomlaDay USA. Участники сообщества решили сделать повтор некоторых выступлений бесплатно в формате Zoom-стрима, о чём объявляли в чате Joomla-сообщества в Mattermost.
Joomla Day France 2023
Во Франции 16 и 17 июня 2023 года проходил Joomla Day France — конференция о Joomla для новичков и профессионалов. Такие конференции проходят по всему миру. Недавно проходили Joomla Day в США, Германии и Нидерландах.
Краткая программа мероприятий:
Смотрите в будущее с Joomla! 4 и 5 (Бенджамин Тренкл) — обзорный доклад.
4AI — ChatGPT в Joomla! (Янник Готье) — об использовании Open AI ChatGPT прямо в интерфейсе Joomla. Недавно в нашем канале JoomlaFeed был пост на эту тему — Сотрудничайте, чтобы добиться успеха: создание сайта Joomla в сотрудничестве с digital-агентствами (Жан-Шарль Антуан и Жиль Средники). Докладчики делятся опытом и практиками построения партнёрских отношений.
Balbooa / Gridbox — универсальный PageBuilder для электронной коммерции (Сирил Пуссен). Обзор Balbooa GridBox от создателя этого пейджбилдера.
Процессы (Workflows) (Бенджамин Тренкл). Обзор функционала workflows на примере материалов Joomla.
Возможности хостинг-панелей для администратора Joomla (Серж Биллон). В выступлении раскрываются секреты и особенности работы с популярными панелями сервера: cPanel, Plesk, OVH Manager и другими.
Создайте новый Netflix: управляйте базой данных фильмов в Flexicontent (Янник Бержес).
Эксперименты с веб-сервисами Joomla (REST API) (Марк Дешевр). Обзорный доклад о Joomla 4 REST API. Приводятся примеры обмена данными между Joomla 4 сайтами, импорта-экспорта материалов и т.д.
Yootheme 4 (Элисия Фолтен). Обзор шаблона и пейджбилдера.
Мастерская взаимопомощи: вопросы, ответы, обмен опытом, живое общение.
AFUJ и www.joomla.fr (Сирилл Пуссен) — рассказ о французской ассоциации Joomla, обсуждение стратегий развития ассоциации и французского Joomla-сообщества.
40 самородков для Joomla! (марк Дешевр). Подборка из 40 расширений Joomla (большая часть бесплатная), которая сделают вашу жизнь проще.
Обзор сайта города Сен-Леже-ан-Ивелин на Joomla 4 (Оливье Гильяр).
Сравнение решений для создания шаблонов: emplate Creator CK, Helix Ultimate, T4 от Joomlart, Cassiopeia и т.д. (Серж Биллон).
Разработка расширений на заказ: выгодное вложение для вашего агентства (Эрик Лэми). Обзор стратегии, преимуществ создания собственных расширений. Ответ на вопрос почему, несмотря на более высокие первоначальные инвестиции, чем универсальное решение, индивидуальное приложение может оказаться экономически выгодным в долгосрочной перспективе.
HikaShop (Паскаль Конро). Обзор возможностей французского компонента интернет-магазина Хикашоп.
Миграция с Joomla! 3 для Joomla! 4 (Михай Марти). Рассказ об опыте перехода с Joomla 3 на Joomla 4: какие инструменты помогут, на что нужно обратить внимание.
Joomla 4.3 и ее развитие (Оливье Бюссар по видео из Нью-Йорка).
PlanetHoster — Обзор хранилища N0C (Марк Дешевр и Серж Биллон).
Начало работы с Joomla! 4. Бесплатная презентация для старшеклассников (Сирилл Пуссен). Двухчасовая интерактивная презентация, дающая базовые представления о Joomla и открывающая двери в мир web-разработки.
Круглый стол. Вопросы и ответы.
Организатор конференции — Французская ассоциация Joomla. Спонсорами проведения выступают хостинговые компании, агентства по Joomla-разработке, среди которых Tassos, JoomlaCK, JoomShaper и другие.
Конференция проходит очно.
Joomla User Group (JUG)
В экосистеме Joomla существуют так называемые Joomla User Group. Это объединения пользователей и разработчиков Joomla самого разного уровня — от любителей до профессионалов. Группы проводят периодические встречи в оффлайне, онлайне или гибридные. На этих собраниях групп могут проводится мастер-классы, вебинары, обсуждения, поиск заказов и/или исполнителей. Группы обычно формируются по географическому и/или языковому критерию. В крупных городах может быть несколько групп. Наиболее активные участники JUG принимают непосредственное участие в организации Joomla Day и выступлениях. Обычно встречи в рамках JUG проводятся не менее 2-х раз в год. Для примера, JUG в Австралии проводят вебинары раз в 1-2 месяца. Более подробную информацию можно получить в FAQ по Joomla User Group. Также Вы можете организовать свою JUG в вашем регионе.
Ваш дизайн может стать новым дизайном для официального сайта Joomla!
Ваш дизайн может стать новым дизайном для официального сайта Joomla! Разве не было бы здорово, если бы у Joomla был внешний вид в едином узнаваемом стиле для всех тех сайтов, которые находятся под баннером Joomla, а также для тех, что были встроены в шаблон Joomla, которым пользуются люди? Что ж, теперь у вас есть шанс показать своё видение того, как стилистически собрать все ресурсы Joomla вместе!
Joomla был объявлен конкурс на разработку графики и дизайна для проекта Joomla — главной страницы официального сайта, лендинга и страницы загрузки. Подробнее в статье. На момент написания дайджеста результаты конкурса пока ещё не объявлены.
Полезные ресурсы Joomla
Ресурсы сообщества:
форум русской поддержки Joomla.
интернет-портал Joomla-сообщества.
https://vc.ru/s/1146097-joomla — Сообщество Joomla на VC.
Telegram:
Чат сообщества «Joomla! по-русски».
Joomla для профессионалов, разработчики Joomla.
Новости о Joomla! и веб-разработке по-русски.
Вакансии и предложения работы по Joomla: фуллтайм, частичная занятость и разовые подработки. Размещение вакансий здесь.