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

Ксения

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
всем привет!
пытаюсь настроитеь сайт так, чтобы материалы могли публиковать не только Авторы, но и все зарегистрированные пользователи. использую как руководство статью  http://joomlaportal.ru/content/view/1620/68/
но там сказано, что в файле  /components/com_content/views/article/view.html.php, находим и удаляем в нем код:

 if ($user->get('gid') < 19) {
      JError::raiseError( 403, JText::_('ALERTNOTAUTH') );
      return;
    }

такого фрагмента там нет!
все остальное сделала по инструкции, но не работает, все равно требуются права Автора.
помогите, пожалуйста! киньте хотя бы ссылочку на правильное руководство.
заранее спасибо!
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Если вы хотите, чтобы все зарегистрированые пользователи могли добавлять статьи, то можете сразу выставить, чтобы все зарег. пользователи сразу становились авторами.
Создание сайтов, шаблонов, помощь в решении проблем.
*

Ксения

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
спасибо, но где это делается? в админке (чего-то я там ничего подобного не нашла) или надо код править?
*

Ксения

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
спасибо, уже нашла!!
*

Ксения

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
спасибо еще раз за помощь, но теперь вот возник такой вопрос:
хочу изменить форму отправки материала, убрать пункты "Показать на главной" и "Уровень Доступа", а также надпись "Сортировка:
Новые Материалы по умолчанию располагаются первыми. Очерёдность можно изменить после сохранения Материала."
изменила файл components/com_content/views/article/view.html.php - убрала фрагмент:
// Radio Buttons: Should the article be added to the frontpage
      if($article->id) {
         $query = 'SELECT content_id FROM #__content_frontpage WHERE content_id = '. (int) $article->id;
         $db->setQuery($query);
         $article->frontpage = $db->loadResult();
      } else {
         $article->frontpage = 0;
      }

      $lists['frontpage'] = JHTML::_('select.booleanlist', 'frontpage', '', (boolean) $article->frontpage);

      // Select List: Group Access
      $lists['access'] = JHTML::_('list.accesslevel', $article);

а также в файле /components/com_content/views/article/tmpl/form.php
убрала блоки, отвечающие за данные инпуты:
<tr>
   <td class="key">
      <label for="state">
         <?php echo JText::_( 'Published' ); ?>:
      </label>
   </td>
   <td>
      <?php echo $this->lists['state']; ?>
   </td>
</tr>
<tr>
   <td width="120" class="key">
      <label for="frontpage">
         <?php echo JText::_( 'Show on Front Page' ); ?>:
      </label>
   </td>
   <td>
      <?php echo $this->lists['frontpage']; ?>
   </td>
</tr>
<tr>
   <td class="key">
      <label for="created_by_alias">
         <?php echo JText::_( 'Author Alias' ); ?>:
      </label>
   </td>
   <td>
      <input type="text" id="created_by_alias" name="created_by_alias" size="50" maxlength="100" value="<?php echo $this->escape($this->article->created_by_alias); ?>" class="inputbox" />
   </td>
</tr>


<tr>
   <td class="key">
      <label for="publish_up">
         <?php echo JText::_( 'Start Publishing' ); ?>:
      </label>
   </td>
   <td>
       <?php echo JHTML::_('calendar', $publish_up, 'publish_up', 'publish_up', '%Y-%m-%d %H:%M:%S', array('class'=>'inputbox', 'size'=>'25',  'maxlength'=>'19')); ?>
   </td>
</tr>

 
теперь инпуты не выводятся на сайт, а вот надписи: "Показать на Главной:", "Уровень доступа:" и "Сортировка:
Новые Материалы по умолчанию располагаются первыми. Очерёдность можно изменить после сохранения Материала."

как это исправить?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
смотрите этот файл  /components/com_content/views/article/tmpl/form.php  в шаблоне Шаблон/html/com_content/article/
сдается что он там лежит, если все делали как описывали.
Тогда его нужно редактировать в шаблоне.
*

tefal

  • Новичок
  • 7
  • 0 / 0
У меня по какой-то причине перестала правильно отображаться страница добавления материала пользователями.
Подскажите, пожалуйста, какая может быть причина?

*

Ксения

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
спасибо большое, у меня все получилось!!

tefal, судя по скрину, проблема с кодировкой. возможно, где-то она у вас слетела.
*

tefal

  • Новичок
  • 7
  • 0 / 0
Я тоже думаю, что кодировка слетела где-то, но не пойму где и чего исправить.
У меня, кстати, еще слетела кодировка в редакторе. Может быть, в этом проблема?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Может быть, в этом проблема?
не может. И кодировка здесь не причем.
Проблема скорее всего в плагинах для редактора.
Пользуйтесь поиском, подобных тем очень много.
*

tefal

  • Новичок
  • 7
  • 0 / 0
Кодировку редактора поправил. На решение проблемы это не повлияло.
Кодировка, по всей видимости, точно не при чем.
Действительно, проблемы начались после того, как я поменял TinyMCE на JCE.
*

tefal

  • Новичок
  • 7
  • 0 / 0
проблема решилась удалением редактора TinyMCE
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Заголовок страницы вида Имя материала / имя категории / имя раздела /

Автор rubasket

Ответов: 2
Просмотров: 24591
Последний ответ 24.03.2017, 01:13:50
от mbgr
Поиск материала

Автор rjk112

Ответов: 3
Просмотров: 1585
Последний ответ 31.10.2016, 11:15:50
от rjk112
Кнопки like-dislike для материала

Автор Aiden

Ответов: 0
Просмотров: 1583
Последний ответ 14.05.2016, 13:23:55
от Aiden
Проблема при добавлении материала

Автор illia

Ответов: 4
Просмотров: 1884
Последний ответ 12.05.2016, 12:23:30
от 4erep
Как менять дату создания материала с фронтенда? Или как объединить ее с датой публикации?

Автор shturmanoid

Ответов: 3
Просмотров: 2304
Последний ответ 29.04.2016, 08:22:50
от flyingspook