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

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Написал модуль, который выводит Продукты по хитам через AJAX, все работает без проблем.
За исключением, мне Хиты надо определенных  категорий получать, ID категорий лежат в меня в классах в меню, я циклом выбираю по очереди, и каждый ID передаю через AJAX в php.файл

Файл обработки
Код
class mod***********Helper
{
public static function getAjax()
   
{   
$input = JFactory::getApplication()->input;
$data  = $input->get('data'); //В дату попадают мои ID категорий

        $product = JTable::getInstance('product', 'jshop');

        $ajax_item = $product->getTopHitsProducts(5, array(intval($data))); // сюда отправляю ID = $data

        echo "<li class='parent trend'><a href='#'>Тренды</a><ul class='level_4'>";
            foreach($ajax_item as $product) {
            echo "<li><a href=".$product->product_link.">".$product->name."</a></li>";
            }       
        echo "</ul></li>";
   
}
   
}


Если вместо переменой написать ручками категории, ID то все работает. Автоматизованно не хочет, пытался через инпут передавать, пробовал  тип данных менять стринг на инт и обратно.

Знатоки, подскажите где проблема в коде


P.S. скриншот: http://joxi.ru/eAOGeBjh4zx7PA  на тему что PHP ловит мои ID

P.S. ВСЕМ СПАСИБО. Я ДОПУСТИЛ ОШИБКУ, УКАЗЫВАЛ ОБЩЕЮ КАТЕГОРИЮ для товаров, а в общей категории было пусто, только в под категории были товары.

« Последнее редактирование: 14.02.2018, 12:21:14 от pavel2950 »
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
А вы уверены, что в data что-то приходит. Попробуйте, сначала, вернуть свою переменную и посмотреть, что придёт.
И ещё.
Код
intval($data)
Судя по описанию вы в data передаёте массив. Но парсите его как инт. Он вам просто 1 возвратит http://php.net/manual/ru/function.intval.php#refsect1-function.intval-examples
Попробуйте пройти по массиву array_map'ом http://php.net/manual/ru/function.array-map.php и преобразовать все значения к int, а потом просто передать, вместо array(intval($data)), просто $data
« Последнее редактирование: 14.02.2018, 10:04:49 от kern.USR »
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Конечно уверен, я же говорю в дату приходит не массив а 1 число, и оно все нормально доходит и выводит его. но в топ хит его игнорит.  В дату поподает 1 число, каждый заход я запускаю новый ajax запрос с новым числом в $data.

Мини видео:
после слова клик 4 числа это ID из меню тянется. А потом уже из php выводим "пидписал спец. для вас ПРОВЕРКА значения "
https://gyazo.com/a4254116d2c308e53503dfbc705649ec
« Последнее редактирование: 14.02.2018, 10:20:10 от pavel2950 »
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
перед
Код
 echo "<li class='parent trend'><a href='#'>Тренды</a><ul class='level_4'>";
сделайте
Код
echo $data;
и посмотрите, что вернёт. Мне кажется, что у вас, всётаки, проблема в приходящем параметре
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
перед
Код
 echo "<li class='parent trend'><a href='#'>Тренды</a><ul class='level_4'>";
сделайте
Код
echo $data;
и посмотрите, что вернёт. Мне кажется, что у вас, всётаки, проблема в приходящем параметре
Выше дописал комментарий свой, + мини видео добавил

скриншот: http://joxi.ru/eAOGeBjh4zx7PA
« Последнее редактирование: 14.02.2018, 10:24:11 от pavel2950 »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
сделайте
Цитировать
$data  = $input->get('data');
var_dump($data);
и покажите результат
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Если вместо переменой написать ручками категории, ID то все работает.

т.е. вы хотите сказать, что это

Код
$ajax_item = $product->getTopHitsProducts(5, array(227));

у вас возвращает список товаров, а это

Код
$data = 227;
$ajax_item = $product->getTopHitsProducts(5, array($data));

нет?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
т.е. вы хотите сказать, что это

Код
$ajax_item = $product->getTopHitsProducts(5, array(227));

у вас возвращает список товаров, а это

Код
$data = 227;
$ajax_item = $product->getTopHitsProducts(5, array($data));

нет?


ДА. ВЫ правильно меня понимаете.
Я сам не понимаю почему так, в плане с переменой не тянет, а руками да.

P.S. ВСЕМ СПАСИБО. Я ДОПУСТИЛ ОШИБКУ, УКАЗЫВАЛ ОБЩЕЮ КАТЕГОРИЮ для товаров, а в общей категории было пусто, только в под категории. А тестил(когда руками прописывал), я просто на абум категорию написал из диапазона.  :) 
« Последнее редактирование: 14.02.2018, 12:27:57 от pavel2950 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться