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

ferser

  • Новичок
  • 5
  • 0 / 0
Логин вместо имени
« : 13.11.2008, 01:21:48 »
Нужно чтобы в "автор статьи" вместо Имени выводился Логин.
Поиск дал резултаты с использованием мамбота MosAuthorXTD.
Как можно это сделать без использования последнего? !!!???!!!
Joomla 1015LE. Установлен CommunityBuilder.
Спс
« Последнее редактирование: 13.11.2008, 07:57:17 от ferser »
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Логин вместо имени
« Ответ #1 : 13.11.2008, 04:48:51 »
Найти строку кода где выводиться имя пользователя и заменить на строчку вывода логина, что то типа вот такого:
Код
$row->name
на
Код
$row->имя поля с логиным(можно подсмотреть в таблице ios_users)
*

ferser

  • Новичок
  • 5
  • 0 / 0
Re: Логин вместо имени
« Ответ #2 : 13.11.2008, 08:04:50 »
components\com_content\content.html.php

Код
	* Writes Author name
*/
function Author( &$row, &$params ) {
if ( ( $params->get( 'author' ) ) && ( $row->author != '' ) ) {
?>
<tr>
<td width="70%" align="left" valign="top" colspan="2">
<span class="small">
<?php echo _WRITTEN_BY . ' '.( $row->created_by_alias ? $row->created_by_alias : $row->author ); ?>
</span>
&nbsp;&nbsp;
</td>
</tr>
<?php
}
}
Вроде здесь выводится, но здесь  $row->author, а поля в jos_users: name, username, email, password и т.д.
Или это где-то в другом месте?
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Логин вместо имени
« Ответ #3 : 13.11.2008, 10:37:29 »
вот тут замените вот так:
Код
<span class="small">
<?php echo _WRITTEN_BY . ' '.( $row->created_by_alias ? $row->created_by_alias : $row->author ); ?>
</span>
на
Код
<span class="small">print_r ( $row );
<?php echo _WRITTEN_BY . ' '.( $row->created_by_alias ? $row->created_by_alias : $row->author ); ?>
</span>
и скинте сюда результат запроса
*

ferser

  • Новичок
  • 5
  • 0 / 0
Re: Логин вместо имени
« Ответ #4 : 13.11.2008, 15:32:10 »
Результат:
Выводит следующий текст "print_r ( $row ); Написал ИМЯ"

Предложенный вариант не работает :(
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Логин вместо имени
« Ответ #5 : 13.11.2008, 18:16:37 »
http://joomlaforum.ru/index.php/topic,46627.msg273491.html#msg273491
там есть запрос как получить автора из jos_users(поменяете на имя поля с логиным и все будет) или через альянс в материале!
*

ferser

  • Новичок
  • 5
  • 0 / 0
Re: Логин вместо имени
« Ответ #6 : 13.11.2008, 21:36:55 »
mambots\content\CBAuthorBot.php

Код
$row->created_by_alias="<a href=\"".sefRelToAbs('index.php?option=com_comprofiler&task=userProfile&Itemid=2&user='.$row->
created_by)."\" onmouseover=\"Tip('$image', SHADOW, true, BGCOLOR, '$bgcolor', BORDERCOLOR, '$bordercolor')\">".($row->created_by_alias!='' ? $row->created_by_alias : $row->author)."</a>";

здесь формируется $row->created_by_alias, который потом выводится как "автор статьи".
Можно ли здесь что-то подправить, чтобы вместо имени выводило логин?
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Логин вместо имени
« Ответ #7 : 13.11.2008, 22:14:03 »
Да можно, я ссылку то для кого привел?
там блин даже комментарии есть специально писал для того что бы вопросов было меньше, вы посмотрите код, а не копи паст делайте, просмотрите таблицу юзверей там нужное поле только подставить!
Я код приводить не стану, попробуйте сами реализовать - поймёте как это просто оказывается
*

YOzhik

  • Захожу иногда
  • 74
  • 1 / 0
  • я ёжик, я упал в реку
Re: Логин вместо имени
« Ответ #8 : 09.07.2009, 13:54:16 »
Ссылка теперь нерабочая стала :'( Напишите пожалуйста код. а?
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Логин вместо имени
« Ответ #9 : 09.07.2009, 15:15:11 »
вы лучше напишите что вы хотите ;)
и почему бы в алиас не писать Имя автора (т.к. если Алиас заполнен то выводится именно он)
распешите что используете
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Картинка вместо заголовка модуля

Автор tolya2005

Ответов: 12
Просмотров: 9818
Последний ответ 19.07.2012, 01:37:45
от Marques
Забыла логин и пароль введенные при локальной установке

Автор tvergeles

Ответов: 11
Просмотров: 6998
Последний ответ 15.10.2010, 20:51:10
от oleggrz
вместо новостей ошибка

Автор simply_green

Ответов: 1
Просмотров: 2052
Последний ответ 25.08.2009, 06:10:18
от ShadowXak
Установка общего имени-пароля для всех пользователей без возможности изменения его пользователями.

Автор petr7

Ответов: 1
Просмотров: 1972
Последний ответ 15.08.2009, 13:09:20
от beliyadm
Как зделать чтоб вместо Error 404 страницу ненайдено отправляло по ссылке

Автор QWER

Ответов: 5
Просмотров: 6453
Последний ответ 28.05.2009, 15:33:09
от maximum1