Новости Joomla

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором представлены новости, интервью, рецензии и есть небольшой магазин на JoomShopping. Возникла необходимость внутри Joomla статей вставлять упоминание релиза и кнопочку «добавить в корзину». Я взял плагин WT JShopping products anywhere Сергея Толкачева (@webtolkru). Плагин отображает название товара и ссылку. При помощи напильника, ИИ и навыков вёрстки появился Uikit макет для шаблонов на базе Yootheme Pro.Учитываается мобильная версия - телефоны и ipad.Кнопка добавления в корзину работает по Ajax и появляется всплывающее окно (Notification Bar от Uikit) с информацией.Пока это базовый вариант, требующий доведения до лоска, однако он уже работает и его можно применять на проектах.Взять макет можно здесь.А плагин вставки товаров в материалы можно забрать здесь.Приветствуется доведение до ума и оформление в виде PR.

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

👩‍💻 WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla.Пакет плагинов галереи изображений и видео для вставки в материалы и модули Joomla, а так же везде, где работают плагины группы content. Поддержка собственных макетов вывода для галерей. Смешанные фото+видео галереи. Плагин создан как замена Simple Image Gallery и поддерживает синтаксис {gallery}{/gallery}.👩‍💻 v.1.2.3. Что нового?- Обработка вступительного и полного текста для материалов Joomla. Добавлена обработка шорткодов в полном и вступительном текстах материалов Joomla.- Системные требования. Повышены минимальные требования до Joomla 5 и PHP 8.1.- Мелкие правки. Исправлена ошибка работы макета по умолчанию в плагине контента.- Joomla 6. Пакет плагинов успешно протестирован на Joomla 6.Страница расширения.GitHub расширенияJoomla Extensions Directory@joomlafeed#joomla #расширения

Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list

👩‍💻 Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list.При работе над плагином возникла необходимость указать стандартный набор из нескольких элементов стандартного поля списка. И хотелось указать их в стандартном же атрибуте default для полей. Когда это нужно?Когда Ваши пользователи устанавливают плагин и НЕ заходят в настройки - в коде вы можете использовать значения по умолчанию с помощью класса Registry (писал об этом ранее) и всегда быть уверенным, что хоть какие-то жизненно необходимые параметры к вам придут всегда. 🧐 Но как сделать то же самое для интерфейса админки?Пользователя нужно направлять, предлагать очевидный работоспособный сценарий для начала, а дальше он уже сам разберется. Когда человек заходит в параметры свежеустановленного плагина в Form ещё нет данных и параметры по умолчанию выставляются из атрибутов default в xml-полях.
<field name="showdesc" type="radio"                       label="PLG_CFI_PARAM_SHOWDESC"                       class="btn-group btn-group-yesno"                       default="1">                    <option value="0">JNO</option>                    <option value="1">JYES</option>                </field>
Здесь по умолчанию будет включено "Да". И если пользователь не переключит параметр, то при сохранении мы ожидаемо получим "да" в params плагина.Для поля списков type=&quot;list&quot; можно указать значение по умолчанию и многие знают, что его можно указать только одно.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default="id"                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
Но у нас поле с множественным выбором (атрибут multiple) и хотелось бы указать несколько значений по умолчанию...Оказывается, так можно сделать. Для этого в атрибуте default нужно указать json с нужными параметрами в виде {int}key : {string} value.Например, default='{"0":"id","1":"title"}'.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default='{"0":"id","1":"title"}'                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
⚠️ Обратите внимание на кавычки! Поскольку json_decode не понимает одинарные кавычки собственно json нужно писать с двойными, а значение для атрибута default писать в одинарные.🙏 За подсказанное решение огромное спасибо участникам нашего сообщества - разработчикам Дмитрию Васюкову (@fictionlabs) и Игорю Бердичевскому (@septdir).@joomlafeed#joomla #разработка #webdev #development

0 Пользователей и 1 Гость просматривают эту тему.
  • 14 Ответов
  • 4925 Просмотров
*

hyperion

  • Новичок
  • 3
  • 0 / 0
Друзья. Сайт http://snabsib.com/ Google ругается на долгую загрузку страницы. Просит перенести подключение скриптов вниз страницы. В каком файле это сделать?
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
в шаблоне, если подключали руками.
Если не получается по-человечески перенести - читайте эту тему https://github.com/joomla/joomla-cms/issues/10250
И попробуйте этот плагин https://extensions.joomla.org/extension/scriptsdown/
*

Kasyanov

  • Захожу иногда
  • 123
  • 9 / 0
  • Всё будет хорошо)
Прежде чем переносить скрипты, попробуйте сделать базовое ускорение.

https://kasyanov.info/seo-prodvizhenie/149-seo-svoimi-rukami-chast-4

Перенос скриптов очень ответственное дело, можно здорово накосячить.
*

wishlight

  • Гуру
  • 5062
  • 315 / 1
  • От 300 руб быстрый хостинг. Сервера.
Тут похоже просто не хватает ресурсов хостинга. Ответ сервера мрачный. Это по скорости.

Время ответа сервера   1191 мс

Похоже ради сжатия там потрачены все ресурсы.

jch optimize при сжатии на хостинге с слабым процессором очень сильно увеличивает ответ сервера и делает сайт не быстрее, а медленнее.
« Последнее редактирование: 11.01.2018, 10:23:09 от wishlight »
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Доброго времени суток!

В одном из компонентов скрипт выводится в head при помощи кода:

Код
$document->addScript($uri->base()."components/com_muscol/assets/typeahead.js/typeahead.bundle.js");

Есть возможность изменить этот код таким образом, чтобы скрипт выводился перед </body>, или нет?
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Так перенесите его
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Перенос скриптов и стилей в подвал сайта

Я читал ветку выше. Насколько понял, описанный по этой ссылке способ переносит все файлы CSS и js? Тогда это не подходит...
*

Viclingvolive

  • Осваиваюсь на форуме
  • 31
  • 2 / 1
Да просто берёшь эту строчку стираешь или комментируешь
 а уже в шаблоне перед тегом </body>  просто пишешь как обычный Script

Код: html
<script async defer  src="/components/com_muscol/assets/typeahead.js/typeahead.bundle.js"></script>
Если будут ошибки попробуйте убрать атрибуты async && defer
Ну конечно defer лучше всего ставить
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Есть возможность изменить этот код таким образом, чтобы скрипт выводился перед </body>, или нет?
Я когда писал ссылку, не обратил внимания, что точно такой же ответ уже был дан раньше.

Смотрите, суть в чем. У вас в коде стоит такая конструкця:
Код
$document->addScript
Это означает, что все, что вы передаете в данный класс, будет выводится в том месте шаблона, где он определен, в данном случае в шапке.

Есть плагин для оптимизации, который может перенести скрипты и оптимизировать страницу. Думаю, это как раз то, что вы ищите.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Viclingvolive, SeBun, и "ручной" вариант, и вариант с помощью плагина для переноса скриптов вниз работают. Спасибо!

А если мне надо, чтобы скрипт располагался в head как можно выше, есть какое-нибудь решение?
*

Viclingvolive

  • Осваиваюсь на форуме
  • 31
  • 2 / 1
Цитировать
А если мне надо, чтобы скрипт располагался в head как можно выше, есть какое-нибудь решение?
Да есть это с помощью плагина.
 для системных плагинов есть такое событие onAfterRender
 То есть это тогда когда уже страница  созданное в виде HTML но ещё клиенту не отдана.
 Если вы в системном плагине создадите такой  метод
Код: php
private $app;
 
public function onAfterRender ()
{
    $dom = new \DOMDocument();
    $body = $this->app->getBody();
    $dom->loadHTML( $body );
    $xpath = new \DOMXPath( $dom );
    $Nodes = $xpath->query( '//script[@src="https://www.google-analytics.com/analytics.js"]' );
    $headNodes = $xpath->query( '//head');

    foreach( $Nodes as $node )
    {
        // клонируем узел/элемент
        $clone = $child->cloneNode(false);
        // Удалить найденный узел
$node->parentNode->removeChild( $node );
       
        if ($headNodes->hasChildNodes()) {
              $head->insertBefore($clone,$headNodes->firstChild);
        } else {
             $headNodes->appendChild( $clone );
       }       
    }
    $body = $dom->saveHTML();
    $this->app->setBody( $body );
}
то он переставит тег  скрипт analytics.js  сразу после <head>
 Удачи вам  8)

ps -  писал с головы работоспособность не проверял -  Ну по идее должно работать || если что пишите!!
*

Viclingvolive

  • Осваиваюсь на форуме
  • 31
  • 2 / 1
Только не забудьте получить экземпляр приложения private $app;
Код
$this->app = JFactory::getApplication();
Обычно люди это в Конструктор засовывают )))
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Цитировать
Да есть это с помощью плагина.
 для системных плагинов есть такое событие onAfterRender
 То есть это тогда когда уже страница  созданное в виде HTML но ещё клиенту не отдана.
 Если вы в системном плагине создадите такой  метод

Для меня это, к сожалению, сложновато))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Уязвимые скрипты class.phpmailer.php

Автор rezchik

Ответов: 6
Просмотров: 2394
Последний ответ 31.08.2023, 22:18:57
от rezchik
Отключить кэширование для страницы или модуля

Автор velyar

Ответов: 8
Просмотров: 1996
Последний ответ 20.11.2021, 16:47:58
от Byzi
Внизу страницы вылез код

Автор Zegeberg

Ответов: 13
Просмотров: 1423
Последний ответ 20.11.2021, 16:47:00
от Byzi
Как удалить на главной страницы "?start=2" "?start=3" и так далее?

Автор Igor5

Ответов: 11
Просмотров: 1608
Последний ответ 20.11.2021, 16:46:40
от Byzi
Модуль Custom Filters - перенести рамку блока

Автор DrShepard

Ответов: 25
Просмотров: 1643
Последний ответ 22.04.2021, 05:44:12
от draff