Новости 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

Перевод и публикация интервью с Joomla евангелистом на греческом портале Joomla

Перевод и публикация интервью на греческом портале Joomla 🇬🇷

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

Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции. Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉

До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊

Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью.

Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент.

🌐 Оригинальное интервью (на английском)
🇬🇷 Интервью на греческом портале (joomla.gr)

Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

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

LovelyHost

  • Захожу иногда
  • 161
  • 2 / 1
Как я понял нужно копать controller com_search. А вот как сделать не знаю.

Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_search
 *
 * @copyright   Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Search Component Controller
 *
 * @since  1.5
 */
class SearchController extends JControllerLegacy
{
/**
* Method to display a view.
*
* @param   bool  $cachable   If true, the view output will be cached
* @param   bool  $urlparams  An array of safe url parameters and their variable types, for valid values see {@link JFilterInput::clean()}.
*
* @return  JControllerLegacy This object to support chaining.
*
* @since   1.5
*/
public function display($cachable = true, $urlparams = true)
{
// Force it to be the search view
$this->input->set('view', 'search');

return parent::display($cachable, $urlparams);
}

/**
* Search
*
* @return void
*
* @throws Exception
*/
public function search()
{
// Slashes cause errors, <> get stripped anyway later on. # causes problems.
$badchars = array('#', '>', '<', '\\');
$searchword = trim(str_replace($badchars, '', $this->input->getString('searchword', null, 'post')));

// If searchword enclosed in double quotes, strip quotes and do exact match
if (substr($searchword, 0, 1) == '"' && substr($searchword, -1) == '"')
{
$post['searchword'] = substr($searchword, 1, -1);
$this->input->set('searchphrase', 'exact');
}
else
{
$post['searchword'] = $searchword;
}

if ($post['limit'] === null)
{
unset($post['limit']);
}

$areas = $this->input->post->get('areas', null, 'array');

if ($areas)
{
foreach ($areas as $area)
{
$post['areas'][] = JFilterInput::getInstance()->clean($area, 'cmd');
}
}

// The Itemid from the request, we will use this if it's a search page or if there is no search page available
$post['Itemid'] = $this->input->getInt('Itemid');

// Set Itemid id for links from menu
$app  = JFactory::getApplication();
$menu = $app->getMenu();
$item = $menu->getItem($post['Itemid']);

// The requested Item is not a search page so we need to find one
if ($item->component != 'com_search' || $item->query['view'] != 'search')
{
// Get item based on component, not link. link is not reliable.
$item = $menu->getItems('component', 'com_search', true);

// If we found a search page, use that.
if (!empty($item))
{
$post['Itemid'] = $item->id;
}
}

unset($post['task']);
unset($post['submit']);

$uri = JUri::getInstance();
$uri->setQuery($post);
$uri->setVar('option', 'com_search');

$this->setRedirect(JRoute::_('index.php' . $uri->toString(array('query', 'fragment')), false));
}
}

Помогите пожалуйста.
*

fsv

  • Живу я здесь
  • 2782
  • 411 / 2
Сделайте скрытое меню. В нем пункт "результаты поиска" (или как-то похоже называется, пишу по памяти) с алиасом search.
Будет  /search?searchword=blabla&searchphrase=all
Веб-разработка: заказ. Только новая разработка.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Будет  /search?searchword=blabla&searchphrase=all
;D
Он сейчас начнет нечистотами разбрасываться: про одно и то же уже писал здесь и здесь.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

fsv

  • Живу я здесь
  • 2782
  • 411 / 2
про одно и то же уже писал
мда... странные желания
я подумал, что убрать надо /component/...
Веб-разработка: заказ. Только новая разработка.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Привязка материала к метке через запрос к БД

Автор sk8work

Ответов: 4
Просмотров: 1071
Последний ответ 14.10.2022, 13:24:55
от sk8work
Цикличный SQL запрос, высокая нагрузка на mysqld

Автор tweenpix

Ответов: 4
Просмотров: 1047
Последний ответ 19.07.2022, 15:34:47
от tweenpix
Делаю запрос к базе к полю images, выдает пустые значения а они есть там

Автор Dolphin4ik_1

Ответов: 1
Просмотров: 684
Последний ответ 14.07.2022, 12:48:33
от sivers
Почему не работает форма поиска type="search"

Автор Hufflepuff

Ответов: 3
Просмотров: 982
Последний ответ 16.12.2021, 12:13:46
от Hufflepuff
Запрос персональных данных

Автор web3.0

Ответов: 2
Просмотров: 1080
Последний ответ 02.09.2021, 16:13:24
от web3.0