Новости Joomla

SW JProjects v.2.6.0 - компонент каталога расширений для Joomla

👩‍💻 SW JProjects v.2.6.0 - компонент каталога расширений для Joomla.Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам.👩‍💻 v.2.6.0. Что нового?Этот релиз прежде всего связан с SEO и AI-оптимизацией. - Микроразметка Schema.org.Добавлен плагин микроразметки Schema.org для сущностей компонента. Для списков используется ListItem, для страницы проекта и версии - SoftwareApplication, для страницы документации - TechArticle. Плагин группы schemaorg в отличие от стандартных плагинов заполняет данные автоматически, но встраивает данные в граф сущностей микроразметки Joomla. Также исправляется одна ошибка генерируемой ядром микроразметки в зоне ответственности компонента.- Улучшение поиска по ключам. В панели администратора в списке ключей теперь можно искать по номеру заказа, email, домену, содержимому примечания к ключу.- Список ключей в админке. В списке ключей в панели администратора добавлен вывод домена и примечания- Поиск в списке проектов. Поиск в списке проектов в панели администратора стал более точным. Из полей для поиска убраны лишние поля.Компонент работает на Joomla 6 без включённого плагина обратной совместимости.Страница расширения и скачатьGitHub расширения.Joomla Extensions Directory#joomla #расширения

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

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

ksalab

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Пытаюсь сделать плагин (первый раз). Необходимо в определенное место страницы вывести определенный текст.
Но что-то не получается... Может кто подсказать?

В этом участке кода страницы:
Спойлер
[свернуть]

необходимо вставить определенное сообщение.

Пытаюсь так:
Спойлер
[свернуть]
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Поиск и замена части тела страницы
« Ответ #1 : 21.08.2016, 21:47:35 »
Используйте onContentPrepare вместо onContentAfterDisplay. Замену контента попробуйте так:
Код: php-brief
$pattern='#<input((?<!h4).)*<h4>Рецензии</h4>#s';
$replacement='<input type="hidden" name="Itemid" value="101"/></form></div><p>Работает !</p></div></div><div class="clear"></div></div><div class="customer-reviews"><h4>Рецензии</h4>';
$html=preg_replace($pattern,$replacement,$html);
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ksalab

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Поиск и замена части тела страницы
« Ответ #2 : 23.08.2016, 13:27:20 »
сделал так:

Код: php
<?php

defined('_JEXEC') or die;

/**
 * Plug-in to enable insert installment vars into content
 */

class plgVmimstallmentVmimstallment extends JPlugin
{
public function onContentPrepare($context, &$article, &$params, $page = 0)
{
//Проверка на админку
/*
$app = JFactory::getApplication();
if ($app->getName()!= 'site') {
return true;
}
*/

// Получаем кодовое слово из параметров
$varname = '</form>

</div>



   </div>
</div>
<div class="clear"></div>


    </div>


    
<div class="customer-reviews"> <h4>Рецензии</h4>';
// $varname = $this->params->get('varname');

//Получаем тело сайта
$html = JResponse::getBody();

// Если тегов нет
/*
if (strpos($html, $varname) === false)
{
return true;
}
*/

//Задаем шаблон поиска
$pattern = '#<input((?<!h4).)*<h4>Рецензии</h4>#s';

    $replacement='<input type="hidden" name="Itemid" value="101"/></form></div><p>Работает !</p></div></div><div class="clear"></div></div><div class="customer-reviews"><h4>Рецензии</h4>';

    $html=preg_replace($pattern,$replacement,$html);

    //Запихиваем всё обратно в тело
JResponse::setBody($html);

}
}

все равно не срабатывает ((( что я делаю не так?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Поиск и замена части тела страницы
« Ответ #3 : 23.08.2016, 13:51:45 »
Если используете событие onContentPrepare, то нужно оперировать аргументом $article. При этом меняете только материал.
Если же хотите менять весь HTML перед выводом, то используйте onAfterRender.
Еще: $varname совершенно лишняя в вашей функции.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ksalab

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Поиск и замена части тела страницы
« Ответ #4 : 23.08.2016, 15:36:58 »
Уже упростил максимально:
Код: php
<?php

defined('_JEXEC') or die;

/**
 * Plug-in to enable insert installment vars into content
 */

class plgContentVMImstallment extends JPlugin
{
  protected $autoloadLanguage = true;
 
// public function onContentPrepare($context, &$row, &$params, $page = 0)
public function onContentAfterRender($context, &$row, &$params, $page = 0)
{
// Получаем кодовое слово из параметров
$varname = 'Рецензии';
$pattern = 'Work !';

$row->text = str_replace($varname, $pattern, $row->text);

}

}

на страницах с материалами все работает замечательно. но...
на страницах с магазином VirtueMart (описание товара) не работает (((
*

step-di

  • Захожу иногда
  • 91
  • 5 / 0
Re: Поиск и замена части тела страницы
« Ответ #5 : 23.08.2016, 16:59:54 »
на страницах с материалами все работает замечательно. но...
на страницах с магазином VirtueMart (описание товара) не работает (((

в шаблоне товара в VirtueMart описание товара нужно вывести через конструкцию типа

echo JHTML::_('content.prepare',$out);

где $out - переменная, содержащая текст с описанием, можно заменить на ту переменную, которая выводит описание.

это заставит обрабатывать текст плагинами типа content
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Поиск и замена части тела страницы
« Ответ #6 : 23.08.2016, 23:12:41 »
Мда, зря я давал советы - вы все делаете наоборот. onContentAfterRender откуда выкопали?
Для начала почитайте здесь о Joomla-событиях и их параметрах.
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенести описание категории вниз страницы

Автор jimka

Ответов: 1
Просмотров: 1221
Последний ответ 18.07.2024, 08:02:46
от Vastriet
Шаблон для данной страницы недоступен. сообщите об этом Администратору сайта

Автор 62411

Ответов: 2
Просмотров: 1434
Последний ответ 30.03.2024, 13:15:16
от web1
Как установить header Cache-Control только для одной страницы по URL?

Автор Slava77

Ответов: 0
Просмотров: 1000
Последний ответ 23.03.2024, 00:16:36
от Slava77
Пропадают иконки на части страниц, пока не удалишь кеш браузера

Автор minibelka

Ответов: 4
Просмотров: 1954
Последний ответ 25.02.2024, 22:56:50
от cherianov
Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 9
Просмотров: 5005
Последний ответ 21.02.2024, 11:03:08
от saynez