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

art22

  • Захожу иногда
  • 332
  • 2 / 0
Здравствуйте друзья. Есть 3 категории с товарами, товары одинаковые, при открытии категории выходят одинаковые товары. Нужно их как то смешать и фиксировать. чтобы пользователь зашел и не увидел в начале категории те же товары. Как это реализовать?
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Как смешать товары в категориях?
« Ответ #1 : 21.08.2023, 08:59:52 »
Здравствуйте друзья. Есть 3 категории с товарами, товары одинаковые, при открытии категории выходят одинаковые товары. Нужно их как то смешать и фиксировать. чтобы пользователь зашел и не увидел в начале категории те же товары. Как это реализовать?
попробовать использовать значение переменной
$this->orderby разное.
это сортировка товаров. http://prntscr.com/Rrle86ETHTnZ
например проверять категорию и выставлять сортировку  сортировка $this->orderby=категори_ид (или случайное число от 1 до 5)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #2 : 21.08.2023, 22:50:52 »
$this->orderby=категори_ид

а куда это вписать? в файл который отвечает за вывод товаров? Если укажу ID категории то в нужном категории  сортировка будет смешанная?

Скажем оставляем категорию 1 таким какой есть а вот 2 и 3 категорию смешиваем
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Как смешать товары в категориях?
« Ответ #3 : 22.08.2023, 08:35:46 »
куда вписать - перечень файлов шаблона есть в ФАКе. [FaQ] JoomShopping - готовые решения
вам нужен form_filters там сортировка вроде віводится/задается.

и я дал логику, причем примерную.
вам надо прописать условия if для проверки категории и внутри условия задавать задавания значение для типа сортировки.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #4 : 22.08.2023, 19:22:49 »
вам надо прописать условия if для проверки категории и внутри условия задавать задавания значение для типа сортировки.

а можете немного подробнее написать а то не очень шарю в программировании чтобы всю цепочку создать
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Как смешать товары в категориях?
« Ответ #5 : 23.08.2023, 07:31:54 »
хотя нет, я вас ввел в заблуждение.
там этот параметр отвечает за направление сортировки, а не саму сортировку.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #6 : 23.08.2023, 12:05:36 »
Так как можно это сделать?)
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #7 : 23.08.2023, 16:44:28 »
Есть 3 категории с товарами, товары одинаковые, при открытии категории выходят одинаковые товары. Нужно их как то смешать и фиксировать. чтобы пользователь зашел и не увидел в начале категории те же товары. Как это реализовать?
Если внятно объясните что хотите получить, то может быть и можно будет сделать...
Если во всех 3-х категориях одинаковые товары, то как не мешай их списке, они все равно останутся одинаковыми.
Лучше показать что хотите с примерами, а так гадать, нет на это времени.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
Re: Как смешать товары в категориях?
« Ответ #8 : 23.08.2023, 19:17:44 »
Если товары умещаются на одну страницу, то можно перемешивать их функцией shuffle.

Если товары выводятся с пагинацией, то такое перемешивание будет давать эффект только в пределах страницы. В этом случае лучше под каждую категорию допавить поле с индексом, все их заполнить рандомными числами и для каждой категории сортировать по своему полю. Как менять поле сортировки - вам уже предложили выше.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #9 : 25.08.2023, 10:28:04 »
Если внятно объясните что хотите получить, то может быть и можно будет сделать...
Если во всех 3-х категориях одинаковые товары, то как не мешай их списке, они все равно останутся одинаковыми.

да, товары будут одинаковыми, но в началах страницы они не будут одинаковые. скажем. 1 категория выводит товары по ID. 2 категория выводит товары по ID но задом на перед (в итоге в начальных страницах товары не будут повторять первую категорию), 3 категория выводит товары рандомно, но при переключении страниц чтобы он не показывал те товары которые пользователь увидел. лишь в конце пользователь увидит что товары одинаковые
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #10 : 25.08.2023, 10:40:01 »
Пока Вы не объясните всю картину, почему нужно размещать одинаковые товары в трех категория и не объясните что Вы хотите этим добиться, даже вникать не буду.
Во-первых, я в этом не вижу смысла (в таком размещении).
Во-вторых, если Вы их даже перемешаете, что это изменит? Они все равно будут одинаковые!

Можете объяснить мне это в скайпе.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Akeksandr

  • Захожу иногда
  • 396
  • 12 / 0
Re: Как смешать товары в категориях?
« Ответ #11 : 25.08.2023, 10:47:27 »
Есть 3 категории с товарами, товары одинаковые,
да, товары будут одинаковыми, но в началах страницы они не будут одинаковые...
 
 лишь в конце пользователь увидит что товары одинаковые
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #12 : 25.08.2023, 21:43:28 »
Во-вторых, если Вы их даже перемешаете, что это изменит? Они все равно будут одинаковые!
Есть такое понятие как поведенческой фактор, это очень сильно влияет на раскрутку сайта, если  клиент заходит на сайт он должен больше времени провести на сайте, а если зайдет на сайт где в 3х категориях одинаковые товары он даже не станет просматривать другие категории... та как все 3 страницы раскручиваются по разным ключевым словам, то при открывании всех 3х категориях должны отображаться разные товары. так как может зайти в 1ую категорию пролистать 4 страницы а дальше не листать, зайдет в 2ую категорию увидит что там немного другие товары, а не одно и тоже то что она посмотела в 3х страницах.
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #13 : 26.08.2023, 10:56:09 »
та как все 3 страницы раскручиваются по разным ключевым словам
Судя по всему Вы не разбираетесь в продвижении...
Если Вы как выразились "раскручиваете страницы по разным ключевым словам" и они никак не связаны с этими страницами, то результата будет = 0.
Если это не Яндекс.Директ, а именно СЕО-продвижение.

Если эти страницы в принципе одинаковые, тем более с одинаковым контентом (с одинаковыми товарами) то робот посчитает их дублями и "склеит" их.
В индекс попадет только первая проиндексированная страница, а остальные в дубли. Для робота не важен порядок расположения товаров на странице. Люди кстати тоже не дураки...

Наверняка есть другое решение - не делать одинаковые товары в трех категориях.
Вот кратко все. Больше пояснять не буду. Если Вы не хотите помощи и считаете, что делаете все правильно, то...  *POPCORN*
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #14 : 26.08.2023, 23:53:03 »
дублей там нет так как canonical стоит! товары в размешку с другими категориями по этому там количество страниц разные, долго все описывать как все работает. это сделаны для того чтобы Пф был лучше. на другом движке я это делал и все отлично работает, а на этом движке не знаю как
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #15 : 27.08.2023, 08:24:24 »
Ну если решили что "сами с усами", то объясню как сделать (перемешать список товаров)... Правда не знаю как будет работать пагинация (навигация по страницам) при этом

Если не писать отдельное расширение Вам нужен файл list_products.php

В файле нужно добавить следующий код сразу после этой строчки кода - defined('_JEXEC') or die('Restricted access');

Код
$arr = (array)$this->rows;
$arr_shuffle = shuffle($arr);
$this->rows = (object)$arr_shuffle;
Не гарантирую что будет работать. И кстати если Вы это делаете в шаблоне, то будут перемешены все списке, не только списки товаров категорий, но и производителей и списки по меткам (то есть все списки).

Для информации - shuffle
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #16 : 27.08.2023, 21:26:05 »
Не гарантирую что будет работать.
к сожалению не сработал, вылезли ошибки

Warning: include(C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products): failed to open stream: Permission denied in C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products\list_products.php on line 16

Warning: include(): Failed opening 'C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products/' for inclusion (include_path='.') in C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products\list_products.php on line 16


16 линия <?php include(dirname(__FILE__)."/".$product->template_block_product);?>
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #17 : 28.08.2023, 07:00:01 »
Если не писать отдельное расширение Вам нужен файл list_products.php

В файле нужно добавить следующий код сразу после этой строчки кода - defined('_JEXEC') or die('Restricted access');

Код
$arr = (array)$this->rows;
$arr_shuffle = shuffle($arr);
$this->rows = (object)$arr_shuffle;
Проверил свой код, да не работает. Наверное в шаблоне не получиться это сделать.

к сожалению не сработал, вылезли ошибки

Warning: include(C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products): failed to open stream: Permission denied in C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products\list_products.php on line 16

Warning: include(): Failed opening 'C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products/' for inclusion (include_path='.') in C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products\list_products.php on line 16

16 линия <?php include(dirname(__FILE__)."/".$product->template_block_product);?>

Это не ошибки а предупреждения. А вылезли, потому что у Вас файлы шаблона JoomShopping переопределены в шаблоне Joomla. В папке Html шаблона Joomla
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #18 : 30.08.2023, 12:03:06 »
нашел модуль https://www.webdesigner-profi.de/joomla-webdesign/shop/modules/module-random-product.html не знаю работает ли, найду бесплатную версию отпишусь
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #19 : 30.08.2023, 12:08:44 »
Во-первых, это модуль, а не список товаров. А Вам нужно выводить список товаров, там нет пагинации (навигации по страницам).
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Как смешать товары в категориях?
« Ответ #20 : 30.08.2023, 12:09:24 »
нашел модуль https://www.webdesigner-profi.de/joomla-webdesign/shop/modules/module-random-product.html не знаю работает ли, найду бесплатную версию отпишусь
https://nevigen.com/ru/modules/modul-sluchajnykh-tovarov-joomshopping.html
только для Ж3
но это не решение вообще :)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #21 : 31.08.2023, 00:15:47 »
Во-первых, это модуль, а не список товаров. А Вам нужно выводить список товаров, там нет пагинации (навигации по страницам).

разработчик говорил что может помочь. По этому решил сначала протестить так и не нашел)

https://nevigen.com/ru/modules/modul-sluchajnykh-tovarov-joomshopping.html

этот модуль чисто для вывода рандомных товаров в определенном месте, совершенно другое)
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #22 : 31.08.2023, 00:18:15 »
$arr = (array)$this->rows;
$arr_shuffle = shuffle($arr);
$this->rows = (object)$arr_shuffle;

думал использовать этот код с сочетанием....
указав нужную категорию чтобы размешал в нужных категории, жаль не сработал

Код
<?php
$categories_ids = '1,3,10,21';
$categories_ids_array = explode(',', $categories_ids);
if (!in_array($this->category_id, $categories_ids_array)):
?>
....
<?php endif; ?>
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #23 : 31.08.2023, 08:10:38 »
думал использовать этот код с сочетанием....
указав нужную категорию чтобы размешал в нужных категории, жаль не сработал
Я Вам выше написал, что проверил свой код и он в шаблоне не работает.
Проверил свой код, да не работает. Наверное в шаблоне не получиться это сделать.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Не удаляются товары из корзины (Multi basket ajax)

Автор goga_pgasovav

Ответов: 0
Просмотров: 1314
Последний ответ 14.08.2024, 23:19:57
от goga_pgasovav
Цифровые товары (для скачивания)

Автор nengyryt

Ответов: 6
Просмотров: 1645
Последний ответ 20.05.2024, 11:26:16
от Vastriet
Как исключить отображение текста в определенных категориях?

Автор art22

Ответов: 4
Просмотров: 1469
Последний ответ 25.07.2023, 19:53:58
от art22
Модуль JShopping Search plus не ищет товары

Автор Mick_20

Ответов: 5
Просмотров: 945
Последний ответ 12.12.2021, 10:12:13
от Mick_20
Вывести все товары в категорию верхнего уровня

Автор ShopES

Ответов: 1
Просмотров: 539
Последний ответ 06.08.2021, 15:44:50
от ShopES