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

jana

  • Захожу иногда
  • 63
  • 2 / 0
  • Яна
Разработчики в новой версии убрали с всплывающих окошек наводя на миниатюру аватара статус online, offline и сколько друзей, теперь только выводит имя пользователя! В файле tooltip закомментированы строки, но если раскомментировать то всё равно остаётся по прежнему. Как вернуть старый tooltip как в старых версиях, кто-нибудь знает?  :(
*

steelcat

  • Захожу иногда
  • 118
  • 13 / 0
Re: JomSocial 2.4.1 как вернуть старый tooltip?
« Ответ #1 : 07.12.2011, 17:53:07 »
У файла tooltip есть расширение? В какой папке он находится?
*

steelcat

  • Захожу иногда
  • 118
  • 13 / 0
Re: JomSocial 2.4.1 как вернуть старый tooltip?
« Ответ #2 : 07.12.2011, 18:04:02 »
Нашел вообщем libraries/tooltips.php

Код
<?php

/**
 * Return avatar tooltip title
 * @todo: this is perfect candidate for caching
 *
 * @param row user object   
 */
function cAvatarTooltip( &$row ){
$user = CFactory::getUser($row->id);
return $user->getDisplayName();

/*
$numFriends = $user->getFriendCount();

if($user->isOnline())
$isOnline = '<img style="vertical-align:middle;padding: 0px 4px;" src="'.JURI::base().'components/com_community/assets/status_online.png" />'. JText::_('COM_COMMUNITY_ONLINE');
else
$isOnline = '<img style="vertical-align:middle;padding: 0px 4px;" src="'.JURI::base().'components/com_community/assets/status_offline.png" />'.JText::_('COM_COMMUNITY_OFFLINE');

CFactory::load( 'helpers' , 'string');
$html  = $row->getDisplayName(). '::';
$html .= $user->getStatus().'<br/>';
$html .= '<hr noshade="noshade" height="1"/>';
$html .= $isOnline. ' | <img style="vertical-align:middle;padding: 0px 4px;" src="'.JURI::base().'components/com_community/assets/default-favicon.png" />'.JText::sprintf( (CStringHelper::isPlural($numFriends))? 'COM_COMMUNITY_FRIENDS_COUNT_MANY' : 'COM_COMMUNITY_FRIENDS_COUNT', $numFriends);
return htmlentities($html, ENT_COMPAT, 'UTF-8');
*/
}

Просто раскомментировать мало, нужно еще удалить строку
Код
return $user->getDisplayName();
, иначе работа функции на ней и закончится.
*

jana

  • Захожу иногда
  • 63
  • 2 / 0
  • Яна
Re: JomSocial 2.4.1 как вернуть старый tooltip?
« Ответ #3 : 07.12.2011, 19:08:36 »
Нашел вообщем libraries/tooltips.php

Код
<?php

/**
 * Return avatar tooltip title
 * @todo: this is perfect candidate for caching
 *
 * @param row user object   
 */
function cAvatarTooltip( &$row ){
$user = CFactory::getUser($row->id);
return $user->getDisplayName();

/*
$numFriends = $user->getFriendCount();

if($user->isOnline())
$isOnline = '<img style="vertical-align:middle;padding: 0px 4px;" src="'.JURI::base().'components/com_community/assets/status_online.png" />'. JText::_('COM_COMMUNITY_ONLINE');
else
$isOnline = '<img style="vertical-align:middle;padding: 0px 4px;" src="'.JURI::base().'components/com_community/assets/status_offline.png" />'.JText::_('COM_COMMUNITY_OFFLINE');

CFactory::load( 'helpers' , 'string');
$html  = $row->getDisplayName(). '::';
$html .= $user->getStatus().'<br/>';
$html .= '<hr noshade="noshade" height="1"/>';
$html .= $isOnline. ' | <img style="vertical-align:middle;padding: 0px 4px;" src="'.JURI::base().'components/com_community/assets/default-favicon.png" />'.JText::sprintf( (CStringHelper::isPlural($numFriends))? 'COM_COMMUNITY_FRIENDS_COUNT_MANY' : 'COM_COMMUNITY_FRIENDS_COUNT', $numFriends);
return htmlentities($html, ENT_COMPAT, 'UTF-8');
*/
}

Просто раскомментировать мало, нужно еще удалить строку
Код
return $user->getDisplayName();
, иначе работа функции на ней и закончится.

Раскоментировала, удалила эту строку return $user->getDisplayName(); не помогло, теперь в окошках ник с тегами и ссылками, короче либерда там получается!
*

squid

  • Захожу иногда
  • 85
  • 4 / 0
  • :P
Re: JomSocial 2.4.1 как вернуть старый tooltip?
« Ответ #4 : 28.12.2011, 01:25:51 »
Раскоментировала, удалила эту строку return $user->getDisplayName(); не помогло, теперь в окошках ник с тегами и ссылками, короче либерда там получается!

В файле шаблона нужно заменить переменную (если она так называется).
Например в frontpage.latestmember.list зайдите и замените "jomNameTips" на "jomTips" вот и будет вам старый тултип.
*

jana

  • Захожу иногда
  • 63
  • 2 / 0
  • Яна
Re: JomSocial 2.4.1 как вернуть старый tooltip?
« Ответ #5 : 28.12.2011, 04:00:15 »
В файле шаблона нужно заменить переменную (если она так называется).
Например в frontpage.latestmember.list зайдите и замените "jomNameTips" на "jomTips" вот и будет вам старый тултип.
Вот теперь работает старый тултип! Спасибо огромное! плюсую +
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

позиции модулей JomSocial и их отображение - sufix

Автор arturk

Ответов: 42
Просмотров: 22445
Последний ответ 13.06.2020, 14:10:26
от ademar
Ошибки после установки JomSocial.

Автор DKsN

Ответов: 80
Просмотров: 25061
Последний ответ 06.03.2016, 23:55:31
от Amigos
[Решено] JomSocial Как перенести правую колону (обо мне, последние группы, кто в сети и т.д.) с прав

Автор galemus

Ответов: 15
Просмотров: 7724
Последний ответ 29.11.2014, 23:43:36
от ingavr
Делаем адекватное меню в JomSocial.

Автор nolimits4web

Ответов: 38
Просмотров: 28880
Последний ответ 11.11.2014, 17:19:49
от kasper9820
Шаблон то JomSocial не грузится. Трабл с CSS JomSocial

Автор teo21

Ответов: 3
Просмотров: 4826
Последний ответ 11.11.2014, 14:21:31
от kasper9820