Новости 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 Гость просматривают эту тему.
  • 24 Ответов
  • 3833 Просмотров
*

Evgen Kulibin

  • Захожу иногда
  • 61
  • 0 / 0
Друзья привет всем! Практикуюсь писать плагин, поставил себе задачу следующего характера.

У каждой страницы сайта есть свой "Заголовок страницы" <title></title>. В Админке какой хотим заголовок такой и пишем, тут все ясно. Ну а что если я хочу выводить в Заголовки всех страниц дополнительную инфу из БД по средствам php.


К примеру: Установил плагин для обмена сообщений между пользователями, приходит сообщение, в личном кабинете светится кол-во не прочитанных сообщений к примеру (3).

Вопрос: как понять какое событие перехватывать в Joomla, чтобы реализовать следующее:

$massages - предположим в эту переменную мы получаем количество непрочитанных сообщений из базы данных в нашем случае это 3.

 и Плагином хотив в тайтл всех страниц запулить такой код.

<title><?php echo '( '. $massages.' )';?> Главная страница</title>

возвращает пользователю заголовок: (3) Главная страница.

Если пользователь прочитал 3 сообщения, Заголовок становится: Главная страница.


Ищу на оф сайте https://docs.joomla.org/Plugin но не могу найти ответ.


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

Спасибо! ^-^ ^-^ ^-^ ^-^ ^-^
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #1 : 09.03.2022, 20:26:58 »
К примеру можно использовать событие системного плагина onAfterRender
Код: php
$doc = JFactory::getDocument();

$title = '(%s) Главная страница';
$doc->setTitle(sprintf($title, 3));
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

sergeytolkachyov

  • Захожу иногда
  • 207
  • 20 / 0
  • @sergeytolkachyov https://web-tolk.ru
*

Evgen Kulibin

  • Захожу иногда
  • 61
  • 0 / 0
Re: Плагин для заголовка Title сайта
« Ответ #3 : 09.03.2022, 21:48:46 »
К примеру можно использовать событие системного плагина onAfterRender
Код: php
$doc = JFactory::getDocument();

$title = '(%s) Главная страница';
$doc->setTitle(sprintf($title, 3));


$title = '(%s) Главная страница';

Как получить название заголовка текущей страницы?  :dry:

*

Evgen Kulibin

  • Захожу иногда
  • 61
  • 0 / 0
Re: Плагин для заголовка Title сайта
« Ответ #4 : 09.03.2022, 21:51:40 »
К примеру можно использовать событие системного плагина onAfterRender
Код: php
$doc = JFactory::getDocument();

$title = '(%s) Главная страница';
$doc->setTitle(sprintf($title, 3));



https://docs.joomla.org/API17:JDocument::setTitle


таким образом?
*

Evgen Kulibin

  • Захожу иногда
  • 61
  • 0 / 0
Re: Плагин для заголовка Title сайта
« Ответ #5 : 09.03.2022, 21:58:54 »
<?php


defined('_JEXEC') or die;
 

$massages = 3;

class plgSystemPlg_privat_massages_kt extends CMSPlugin

   
   
     
   
   public function setTitle ($title)
   {
   
   $doc = JFactory::getDocument();
    
   $doc->setTitle(sprintf($massages, $title));
   }
}



Правильный ход мыслей?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #6 : 09.03.2022, 22:02:40 »
Как получить название заголовка текущей страницы?
Код: php
$doc = JFactory::getDocument();
$app = JFactory::getApplication();

$menu = $app->getMenu();
$active = $menu->getActive();

$params = $active->getParams();

$title = $params->get('page_title');
$doc->setTitle(sprintf($title, 3));
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #7 : 09.03.2022, 22:03:10 »
Правильный ход мыслей?
Нет! Бред какой то....
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #8 : 09.03.2022, 22:05:13 »
Правильный ход мыслей?
Код: php
class PlgSystemTest extends JPlugin
{
protected $app;

function onAfterRender()
{
$doc = JFactory::getDocument();

$menu = $this->app->getMenu();
$active = $menu->getActive();

$params = $active->getParams();

$title = $params->get('page_title');
$doc->setTitle(sprintf($title, 3));
}
}
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Evgen Kulibin

  • Захожу иногда
  • 61
  • 0 / 0
Re: Плагин для заголовка Title сайта
« Ответ #9 : 10.03.2022, 20:18:33 »
Привет! Сделал манифест, установил, после включения пишет ошибку

Call to a member function getParams() on null

Вызов функции-члена getParams() при нулевом значении

что не так делаю?






*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #10 : 10.03.2022, 20:22:39 »
что не так делаю?
Код: php
$doc = JFactory::getDocument();

$menu = $this->app->getMenu();
$active = $menu->getActive();

$title = $active->params->get('page_title');
$doc->setTitle(sprintf($title, 3));
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Evgen Kulibin

  • Захожу иногда
  • 61
  • 0 / 0
Re: Плагин для заголовка Title сайта
« Ответ #11 : 10.03.2022, 20:27:32 »
 <?php
defined('_JEXEC') or die('Restricted access..');

 
class PlgSystemMessageskt extends JPlugin {
     protected $app;

    function onAfterRender(){
   
      $doc = JFactory::getDocument();

      $menu = $this->app->getMenu();
      
      $active = $menu->getActive();

      $title = $active->params->get('page_title');
      $doc->setTitle(sprintf($title, 3));   
 }
}

Ошибка

 Call to a member function get() on null

 *ОХ-Х-Х*  !
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #12 : 10.03.2022, 20:29:48 »
В начале функции

Код: php
if(!$this->app->isSite()) { return; }
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Evgen Kulibin

  • Захожу иногда
  • 61
  • 0 / 0
Re: Плагин для заголовка Title сайта
« Ответ #13 : 10.03.2022, 20:34:06 »
<?php
defined('_JEXEC') or die('Restricted access..');

 
class PlgSystemMessageskt extends JPlugin {
     protected $app;

    function onAfterRender(){
   
      
      $active = $menu->getActive();
      print_r($active);
 }
}


0 Call to a member function getActive() on null
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #14 : 10.03.2022, 20:38:41 »
Код: php
class PlgSystemTest extends JPlugin
{
protected $app;

function onAfterRender()
{
if(!$this->app->isSite()) { return; }
$doc = JFactory::getDocument();

$menu = $this->app->getMenu();
$active = $menu->getActive();

$params = $active->getParams();

$title = $params->get('page_title');
$doc->setTitle(sprintf($title, 3));
}
}
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Evgen Kulibin

  • Захожу иногда
  • 61
  • 0 / 0
Re: Плагин для заголовка Title сайта
« Ответ #15 : 10.03.2022, 20:52:44 »
Сайт и админка поднялись. Но к заголовку "3" не добавилось. Скажи  эта строчка $title = $params->get('page_title');

page_title -- Joomla возвращает это как текущий активный заголовок странице?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #16 : 10.03.2022, 20:55:32 »
page_title -- Joomla возвращает это как текущий активный заголовок странице?
Это параметр Заголовок страницы в браузере в настройках пункта меню
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Re: Плагин для заголовка Title сайта
« Ответ #17 : 10.03.2022, 21:01:52 »
а ничего что надо получить пользователя 
его сообщения
и статус сообщений
индивидуальная помощь: @SetAlexx
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #18 : 10.03.2022, 21:14:34 »
а ничего что надо получить пользователя 
его сообщения
и статус сообщений
Это уже отдельно пишется! Как вариант...
Заголовок страницы: "There are ({count_message}) new posts!"

Вот код плагина!
Код: php
class PlgSystemTest extends JPlugin
{
protected $app;

function onAfterRender()
{
if(!$this->app->isSite()) { return; }
$doc = JFactory::getDocument();

$menu = $this->app->getMenu();
$active = $menu->getActive();

$title = $active->params->get('page_title');
$regex = '/{(.*?)}/i';

preg_match_all($regex, $title, $matches, PREG_SET_ORDER);

if ($matches)
{
foreach ($matches as $match)
{
list($full, $name) = $match;

if(method_exists($this, $name))
{
$result = $this->{$name}();
$title = str_replace($full, $result, $title);
}
}
}

$doc->setTitle($title);
}

protected function count_message()
{
return rand();
}
}
Каждая заглушка в заголовке страницы будет использовать функцию в плагине. Таким образом будут выполняться функции те которые необходимы.

Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Evgen Kulibin

  • Захожу иногда
  • 61
  • 0 / 0
Re: Плагин для заголовка Title сайта
« Ответ #19 : 10.03.2022, 21:40:04 »
Хочу попробовать сделать иначе. Что если получить текущего пользователя $user = JFactory::getUser(); сделать запрос и добавить переменную в зfголовок

$db =&JFactory::getDBO();
   $query = "SELECT COUNT(*) as count FROM #_uddeim WHERE (toread=0) AND (toid='".$user->id."') ";

   $db->setQuery($query);
   $result = $db->loadObjectList();
   foreach($result as $row){
      $toreads = $row->count;
   }


Так получится?

Ввел код предыдущий код, ничего не изменилось.


я вытягиваю активные сообщения из БД которые передаются компонентом com_uddeim
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #20 : 10.03.2022, 21:45:07 »
Ну хотя бы чуть чуть включите голову! Вы же хотите написать плагин, а получается что я это сделаю...
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Evgen Kulibin

  • Захожу иногда
  • 61
  • 0 / 0
Re: Плагин для заголовка Title сайта
« Ответ #21 : 11.03.2022, 21:03:36 »
буду разбираться... почти закипел. Соррян, учусь... *DRINK*
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #22 : 11.03.2022, 21:13:22 »
Вот пример того что может получиться! На работоспособность не проверял, но думаю что все норм!
Заголовок страницы в браузере: "There are ({count_message}) new posts!"
Код: php
<?php

class PlgSystemTest extends JPlugin
{
    protected $app;

    function onAfterRender()
    {
        if(!$this->app->isSite()) { return; }
        $doc = JFactory::getDocument();

        $menu = $this->app->getMenu();
        $active = $menu->getActive();

        $title = $active->params->get('page_title');
        $regex = '/{(.*?)}/i';

        preg_match_all($regex, $title, $matches, PREG_SET_ORDER);

        if ($matches)
        {
            foreach ($matches as $match)
            {
                list($full, $name) = $match;

                if(method_exists($this, $name))
                {
                    $result = $this->{$name}();
                    $title = str_replace($full, $result, $title);
                }
            }
        }

        $doc->setTitle($title);
    }

    protected function count_message()
    {
        $user = JFactory::getUser();
        $user_id = (int) $user->get('id');

        $db = JFactory::getDbo();

        $query = $db->getQuery(true);

        $query->select('COUNT(DISTINCT id)');
        $query->from($db->quoteName('#__uddeim'));

        $where = $db->quoteName('toread');
        $query->where($where . ' = 0');

        $where = $db->quoteName('toid');
        $query->where($where . ' = ' . $user_id);

        $db->setQuery($query);     
        return (int) $db->loadResult();
    }
}
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Evgen Kulibin

  • Захожу иногда
  • 61
  • 0 / 0
Re: Плагин для заголовка Title сайта
« Ответ #23 : 11.03.2022, 21:16:26 »
Это уже отдельно пишется! Как вариант...
Заголовок страницы: "There are ({count_message}) new posts!"

Вот код плагина!
Код: php
class PlgSystemTest extends JPlugin
{
protected $app;

function onAfterRender()
{
if(!$this->app->isSite()) { return; }
$doc = JFactory::getDocument();

$menu = $this->app->getMenu();
$active = $menu->getActive();

$title = $active->params->get('page_title');
$regex = '/{(.*?)}/i';

preg_match_all($regex, $title, $matches, PREG_SET_ORDER);

if ($matches)
{
foreach ($matches as $match)
{
list($full, $name) = $match;

if(method_exists($this, $name))
{
$result = $this->{$name}();
$title = str_replace($full, $result, $title);
}
}
}

$doc->setTitle($title);
}

protected function count_message()
{
return rand();
}
}
Каждая заглушка в заголовке страницы будет использовать функцию в плагине. Таким образом будут выполняться функции те которые необходимы.









({count_message}) Т.е. Ты говоришь, о том, чтобы в заголовок (название) страницы вставлять  эту заглушку, а плагин вместо заглушки будет выводить инфу?

Я реально учусь, если бы сразу мог читать код как ты, то наверное по таким вопросам не грузил бы форум  :D  ^-^
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Плагин для заголовка Title сайта
« Ответ #24 : 11.03.2022, 21:18:54 »
({count_message}) Т.е. Ты говоришь, о том, чтобы в заголовок (название) страницы вставлять  эту заглушку, а плагин вместо заглушки будет выводить инфу?
Да! Все верно...
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин "Русская типографика"

Автор Physicist

Ответов: 261
Просмотров: 156793
Последний ответ 13.03.2025, 20:06:50
от Olg
Мастерю плагин для админки - оплата налом или по карте при самовывозе

Автор kkmspb

Ответов: 0
Просмотров: 1407
Последний ответ 27.08.2024, 15:39:37
от kkmspb
Плагин LVSpoiler - спойлеры с динамической загрузкой изображений

Автор Arkadiy

Ответов: 449
Просмотров: 102836
Последний ответ 20.04.2024, 21:10:33
от Beer
Плагин StopKids для маркировки сайта знаком 18+ для Joomla 1.5-3.x

Автор ecolora

Ответов: 40
Просмотров: 22963
Последний ответ 19.03.2023, 18:55:08
от ecolora
Компонент Commedia и плагин mp3browser для медиа-сайтов

Автор ecolora

Ответов: 557
Просмотров: 129163
Последний ответ 13.03.2023, 00:25:14
от ecolora