Новости 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 Ответов
  • 3358 Просмотров
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
можно ли сделать более подробную карму, то есть больше ступенек
там по умолчанию ( то есть тока 6 ступенек)
0,5
1
2
3
4
5
А хотелось что бы было
0,5
1
1,5
2
2,5
3 ....  и.т.д.
ибо даже еще более подробнее
« Последнее редактирование: 11.01.2011, 21:52:19 от kharol »
Прошлое лишено смысла
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Вы хотите уменьшить шаг кармы или сделать ее больше 5?
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Откройте файл:
components/com_community/libraries/karma.php
Начиная со строки:
Код
else if ($points <= $config->get('point0') )
идет шаг кармы с присвоением результату соответствующей картинки.
Измените шаг:
Код
else if ($points <= $config->get('point0.5') )
и так далее (как Вам нравится)
Добавьте еще одну или несколько градаций в конце (если Вам мало будет 5 существующих)
Код
      if( $points > $config->get('point6') )
      {
         $filename = 'karma-6-6';
      }
Соответственно нарисовав новую картинку кармы karma-6-6.gif
И дав о ней знать здесь:
administrator/components/com_community/views/configuration/view.html.php

после строки 226 кодом:
Код
case 'point6':
$image = JURI::root(). 'components/com_community/templates/default/images/karma-6-6.gif';
break;
Затем в файле:
administrator/components/com_community/views/configuration/tmpl/karma.php
После:
Код
                            <tr>
                <td class="key">
                    <span class="hasTip" title="<?php echo JText::_( 'CC KARMA POINTS GREATER THAN' ); ?>::<?php echo JText::_('CC KARMA POINTS TIPS'); ?>">
                        <?php echo JText::_( 'CC KARMA POINTS GREATER THAN' ); ?>
                    </span>
                </td>
                <td valign="top">
                    <?php echo $this->getKarmaHTML( 'point5' , $this->config->get('point5') );?>
                </td>
            </tr>
Еще один шестой блок (если он у Вас крайний):
Код
         <tr>
            <td class="key">
               <span class="hasTip" title="<?php echo JText::_( 'CC KARMA POINTS GREATER THAN' ); ?>::<?php echo JText::_('CC KARMA POINTS TIPS'); ?>">
                  <?php echo JText::_( 'CC KARMA POINTS GREATER THAN' ); ?>
               </span>
            </td>
            <td valign="top">
               <?php echo $this->getKarmaHTML( 'point6' , $this->config->get('point6') );?>
            </td>
         </tr>
ВАЖНО: следите за шагами кармы "point0" и т.д.
скорее всего Вам везде придется их подстраивать. Я не пробовал, но теоретически все получится.
« Последнее редактирование: 05.10.2010, 22:37:26 от kharol »
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
спасибо! завтра попробую и отпишусь
я так понял то что вы описали это увеличение кармы а не шаг кармы?
Прошлое лишено смысла
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Если не дробить на 0.5 и так далее, то сделайте просто добавление 6-го блока.
Если Вы хотите изменить шаг, то дробите "pointxx"
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

moskit

  • Захожу иногда
  • 64
  • 6 / 0
  • ......
А ни у кого не было проблем с отображением активности? Как то странно выглядит.Баллов почти такое же количество что и активность.В правилах начисления ни чего ни менял.

*

kharol

  • Moderator
  • 1721
  • 217 / 0
А в чем здесь странность? Активность активностью... А баллы набираются и учитываются согласно правилам описанным в "Системе баллов"
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

slepoy

  • Давно я тут
  • 753
  • 24 / 0
  • Тотальная шизофазия
Пытаюсь прикрутить торрент-трекер к сообществу. Насколько разумно будет позволить юзерам обменивать поинты на возможность скачать несколько Гб информации? Тут 2 варианта:
1) обрабатывать все запросы вручную (уменьшать рейтинг, но увеличивать трафик в компоненте торрента)
2) создать подарок в jPresent (которого у меня нет). Разные подарки - разный объем данных для скачиваний. Администратору останется только добавить объем... и, наверное, удалить подарок. Что так, что так - равносильно. Уж проще 1-й вариант.
Помог? Поставь(те) плюс в репутацию.
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Вообще вопрос конечно интересный... русская смекалка нужна
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

nikolinho

  • Захожу иногда
  • 71
  • 0 / 0
Стандартно карма 5 рангов. хочу сделать 10.
кто знает подскажите.
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #10 : 03.12.2010, 00:00:12 »
Стандартно карма 5 рангов. хочу сделать 10.
кто знает подскажите.
Читайте в этой теме выше
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

nikolinho

  • Захожу иногда
  • 71
  • 0 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #11 : 03.12.2010, 00:29:42 »
Читайте в этой теме выше
спасибо тебе большое!
*

Katya

  • Захожу иногда
  • 53
  • 1 / 1
Увеличиваем значения "Рейтинг / Карма"
« Ответ #12 : 23.12.2010, 20:52:48 »
Можно ли как-то добавить условия, при которых добавляются баллы пользователям. Хотелось бы сделать как-то так, чтобы за каждого приглашенного в сеть друга, пользователь получал сколько-то баллов. И как узнать кто и сколько пригласил?))
*

Жук

  • Захожу иногда
  • 79
  • 7 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #13 : 28.12.2010, 19:52:45 »
А ни у кого не было проблем с отображением активности? Как то странно выглядит.Баллов почти такое же количество что и активность.В правилах начисления ни чего ни менял.


Это картинка из Alpha UserPoints?
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #14 : 28.12.2010, 20:20:10 »
Нет, это отображение баллов в шаблоне blueface
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
Увеличиваем значения "Рейтинг / Карма"
« Ответ #15 : 03.01.2011, 01:48:06 »
вот решил сегодня сделать подробную карму, и думаю ну все уже все работает, а тут нет оказалось что в админке все нормально а как только меняю балы пользователю так тока доходит переваливает 300 (смотрите скрин) так сразу становится на сайте 100% карма, почему?
все файлы в приложении, картинки кармы не стал атачить итак думаю понятно))


[вложение удалено Администратором]
Прошлое лишено смысла
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #16 : 03.01.2011, 02:37:52 »
Дробили так как я писал?
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
Увеличиваем значения "Рейтинг / Карма"
« Ответ #17 : 03.01.2011, 11:49:09 »
да дробил вот  так типа
Код
			$filename = 'karma-0-11';
}
else if ($points <= $config->get('point0') )
{
$filename = 'karma-0.5-11';
}

if( $points > $config->get('point1') ) {
$filename = 'karma-1-11';
}

if( $points > $config->get('point2') )
{
$filename = 'karma-2-11';
}

if( $points > $config->get('point3') )
{
$filename = 'karma-3-11';
}

if( $points > $config->get('point4') )
{
$filename = 'karma-4-11';
}

if( $points > $config->get('point5') )
{
$filename = 'karma-5-11';
}

      if( $points > $config->get('point6') )
      {
         $filename = 'karma-6-11';
      }
        if( $points > $config->get('point7') )
      {
         $filename = 'karma-7-11';
      }
        if( $points > $config->get('point8') )
      {
         $filename = 'karma-8-11';
      }
        if( $points > $config->get('point9') )
      {
         $filename = 'karma-9-11';
      }
        if( $points > $config->get('point6') )
      {
         $filename = 'karma-10-11';
      }
        if( $points > $config->get('point6') )
      {
         $filename = 'karma-11-11';
      }
$imageFile .= $filename;
ну и соответственно в других файлах так же
может вы мне забыли где то еще че поменять?
подскажите пожалуйста очень нужно
Прошлое лишено смысла
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #18 : 03.01.2011, 16:01:26 »
может вы мне забыли где то еще че поменять?
Интересная фраза...
 А Вам не приходила в голову идея, что это Вы допускаете ошибки?
 Посмотрите, что вы "нарисовали" в шагах, начиная отсюда:
 $filename = 'karma-9-11';
Я предупреждал о том, что нужно следить за шагами кармы и почему шагом у Вас выбрана единица?
Экспериментируйте... результат будет

Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
Увеличиваем значения "Рейтинг / Карма"
« Ответ #19 : 03.01.2011, 16:16:10 »
спасибо)) да там действительно ошибка была))) исправил и все пошло как по маслу
кому надо карму до 12 шагов то выкладываю файлы (версия JomSocial 2.0.4, на более ранних не побывал)
файлы просто заменить
вот так будет выглядеть ваша карма после замены файлов (картинки прилагаются, но каждый может нарисовать под себя)


[вложение удалено Администратором]
Прошлое лишено смысла
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Увеличиваем значения "Рейтинг / Карма"
« Ответ #20 : 03.01.2011, 16:27:25 »
Немного оффтопа - идея хорошая, но такой гимор каждый раз это менять после обновления версии...
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
Увеличиваем значения "Рейтинг / Карма"
« Ответ #21 : 03.01.2011, 16:31:23 »
не много там менять
тем болие там тока три файла и я думаю с новыми версиями они не будут меняться (эти фалы) разве что они сами сделают такую карму )))
Прошлое лишено смысла
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #22 : 03.01.2011, 16:38:46 »
Немного оффтопа - идея хорошая, но такой гимор каждый раз это менять после обновления версии...
Ой, bzikk ... знал бы ты сколько всякого хлама я перетаскиваю из версии в версию ручным вышиванием... :)
А иначе никак :)
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

cresh12

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Кто знает как сделать чтобы Карма брала баллы не из JomSocial, а из AlphaUserPoints?
Заранее спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Рейтинг как в контакте!

Автор SuperStar

Ответов: 6
Просмотров: 1998
Последний ответ 23.05.2011, 20:44:46
от JomTime
Не показывается карма :(

Автор kulybko

Ответов: 2
Просмотров: 1732
Последний ответ 26.02.2010, 17:33:37
от kulybko