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

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
Суть в том, что при публикации материала без категории и раздела, собсно мне то и нужно (т.е. нет привязки к разделу и категории), заголовок страницы сказочными образом съезжает на 1-1.5 строки вниз, проверял без CSS - один фиг...
Подскажите люди добрые что нужно подправить, что бы выводилось как страница с разделом и категорией.
Плусик - гарантирую :)
*

Kverde3

  • Захожу иногда
  • 239
  • 19 / 3
Ссылку на сайт давайте, без неё никак.
*

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
Да я бы с удовольствием, только на компе пока :(

Ссылку на сайт давайте, без неё никак.
Так я же говорю не в CSS дело и не в HTML коде (нет никаких бр и отступов)
Я сохраненную HTML страницу разбирал и нет там ничего такого припятствующего.

Есть какие-либо предложения?

Kverde3 ...
« Последнее редактирование: 21.08.2010, 20:51:37 от Index »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
а причем здесь привязка не очень понятно :)
Шаблон то для материала один и тот же используется.
Смотрите исходный код страницы, без него никаких предположений не будет.
*

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
Хорошо ещё раз перепроверю, может я где ошибся...

Могу ради прикола залить с категорией и разделом и без неё.

Ну перепроверил, как я и говорил... , глазом ведь чувствовал, что не в этом дело то...
« Последнее редактирование: 21.08.2010, 21:21:34 от Index »
*

Kverde3

  • Захожу иногда
  • 239
  • 19 / 3
Цитировать
Так я же говорю не в CSS дело и не в HTML коде (нет никаких бр и отступов)
Тогда это магия ^-^
Страницу сохраненную в архиве выкладывайте тогда.
*

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
Ну глаз не орлиный оказался... :)

Вообщем нашел ...

Вот так вот всё нормально:
Код
 <!-- END PATHWAY-->
                    </div>

                    <div id="main_content">
                      <div class="componentheading">
Страница с разделом и категорией</div>
<table class="blog" cellpadding="0" cellspacing="0">
...

А вот так вот хреново:
Код
<!-- END PATHWAY-->
                    </div>
                    <div id="main_content">
                      <table class="contentpaneopen">
<tr>
<td class="contentheading" width="100%">
Страница без раздела и категории </td>


</tr>

</table>
...

Интересует вот такой вопрос, а почему они не должны быть одинаковыми, в чем различия вывода (между статья+Раз+кат и статьи без всего)

Ведь:
Код
<div id="main_content">
<jdoc:include type="component" />
</div></td>
   У меня так.
*

Kverde3

  • Захожу иногда
  • 239
  • 19 / 3
это надо с com_content разбираться.
*

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
Я уж понял... Вот его щас и смотрю, что там за бяка поселилась...
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
скопируйте папку HTML из шаблона beez в свой шаблон. Правда наверно придется CSS подправить....
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
Да, спасибо за совет, а смысл делать то ...
Теперь вместо заголовка съезжает весь контент...
Все спасибо, всё получилось только у другого шаблона, но не beez...

Жаль править очень долгова-то (весь шаблон переделывать), а так да...

А как бы если сам articl подправить бе переноса папки HTML, может кто-то делал, поделится... :)

Я думаю, что его намного проще подогнать, чем переписывать весь CSS, а может я ошибаюсь...
« Последнее редактирование: 22.08.2010, 01:15:36 от Index »
*

Kverde3

  • Захожу иногда
  • 239
  • 19 / 3
Можно скопировать стандартный com_content в папку с шаблоном, как это сделать написано на форуме. После этого останется только убрать в нем то что мешает, отступы те. А если с другого шаблона брать, там, возможно, побольше переделывать надо будет.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
в beez'е перекрыты шаблоны всех компонентов. В отличие от оригинальных, в них верстка семантичная, с заголовками h а не td (очень важно для сео), и без всяких таблиц. Разумеется нужно еще писать CSS, и это не минус а плюс.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
Да заголовки h прописать это не проблема... :)

Ну что же господа спасибо за ответы, буду думать ...
*

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
Главное не пойму одного, пришел к виду как я приводил выше: где правильно у как хреново(вынес из таблицы), но проблема осталась по прежнему, разве что заголовки на h ещё перебил.

Вот как я переделал:
Код
 <!-- END PATHWAY-->
                    </div>

                    <div id="main_content">
                      <h1 class="componentheading">
Страница без раздела и категории</h1>
<table class="contentpaneopen">
<tr><td></td></tr>

</table>
...

Теперь уж и не знаю что делать-то, повеситься что-ли :)
« Последнее редактирование: 22.08.2010, 21:12:26 от Index »
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Ну возьмите Firefox + FireBug и посмотрите какие стили используются, если нужно подправьте
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
там скорее всего идет условие на показ раздела и категории и эта таблица вынесена за это условие. Не видя ваш default.php для материала сложно чего-то сказать.
*

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
Код
<?php // no direct access
defined('_JEXEC') or die('Restricted access');

$canEdit = ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own'));
?>
<?php if ($this->params->get('show_page_title', 1) && $this->params->get('page_title')!= $this->article->title) : ?>
<div class="componentheading<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
<?php echo $this->escape($this->params->get('page_title')); ?>
</div>
<?php endif; ?>
<?php if ($canEdit || $this->params->get('show_title') || $this->params->get('show_pdf_icon') || $this->params->get('show_print_icon') || $this->params->get('show_email_icon')) : ?>
<table class="contentpaneopen<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
<tr>
<?php if ($this->params->get('show_title')) : ?>
[b]<td class="contentheading<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>" width="100%">
<?php if ($this->params->get('link_titles') && $this->article->readmore_link != '') : ?>
<a href="<?php echo $this->article->readmore_link; ?>" class="contentpagetitle<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
<?php echo $this->escape($this->article->title); ?></a>
<?php else : ?>
<?php echo $this->escape($this->article->title); ?>
<?php endif; ?>
</td>[/b]
<?php endif; ?>
<?php if (!$this->print) : ?>
<?php if ($this->params->get('show_pdf_icon')) : ?>
<td align="right" width="100%" class="buttonheading">
<?php echo JHTML::_('icon.pdf',  $this->article, $this->params, $this->access); ?>
</td>
<?php endif; ?>

<?php if ( $this->params->get( 'show_print_icon' )) : ?>
<td align="right" width="100%" class="buttonheading">
<?php echo JHTML::_('icon.print_popup',  $this->article, $this->params, $this->access); ?>
</td>
<?php endif; ?>

<?php if ($this->params->get('show_email_icon')) : ?>
<td align="right" width="100%" class="buttonheading">
<?php echo JHTML::_('icon.email',  $this->article, $this->params, $this->access); ?>
</td>
<?php endif; ?>
<?php if ($canEdit) : ?>
<td align="right" width="100%" class="buttonheading">
<?php echo JHTML::_('icon.edit', $this->article, $this->params, $this->access); ?>
</td>
<?php endif; ?>
<?php else : ?>
<td align="right" width="100%" class="buttonheading">
<?php echo JHTML::_('icon.print_screen',  $this->article, $this->params, $this->access); ?>
</td>
<?php endif; ?>
</tr>
</table>
<?php endif; ?>

<?php  if (!$this->params->get('show_intro')) :
echo $this->article->event->afterDisplayTitle;
endif; ?>
<?php echo $this->article->event->beforeDisplayContent; ?>
<table class="contentpaneopen<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
<?php if (($this->params->get('show_section') && $this->article->sectionid) || ($this->params->get('show_category') && $this->article->catid)) : ?>
<tr>
<td>
<?php if ($this->params->get('show_section') && $this->article->sectionid && isset($this->article->section)) : ?>
<span>
<?php if ($this->params->get('link_section')) : ?>
<?php echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute($this->article->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape($this->article->section); ?>
<?php if ($this->params->get('link_section')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
<?php if ($this->params->get('show_category')) : ?>
<?php echo ' - '; ?>
<?php endif; ?>
</span>
<?php endif; ?>
<?php if ($this->params->get('show_category') && $this->article->catid) : ?>
<span>
<?php if ($this->params->get('link_category')) : ?>
<?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->article->catslug, $this->article->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape($this->article->category); ?>
<?php if ($this->params->get('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
</span>
<?php endif; ?>
</td>
</tr>
<?php endif; ?>
<?php if (($this->params->get('show_author')) && ($this->article->author != "")) : ?>
<tr>
<td valign="top">
<span class="small">
<?php JText::printf( 'Written by', ($this->escape($this->article->created_by_alias)? $this->escape($this->article->created_by_alias) : $this->escape($this->article->author)) ); ?>
</span>
&nbsp;&nbsp;
</td>
</tr>
<?php endif; ?>

<?php if ($this->params->get('show_create_date')) : ?>
<tr>
<td valign="top" class="createdate">
<?php echo JHTML::_('date', $this->article->created, JText::_('DATE_FORMAT_LC2'))?>
</td>
</tr>
<?php endif; ?>

<?php if ($this->params->get('show_url') && $this->article->urls) : ?>
<tr>
<td valign="top">
<a href="http://<?php echo $this->article->urls ; ?>" target="_blank">
<?php echo $this->escape($this->article->urls); ?></a>
</td>
</tr>
<?php endif; ?>

<tr>
<td valign="top">
<?php if (isset ($this->article->toc)) : ?>
<?php echo $this->article->toc; ?>
<?php endif; ?>
<?php echo $this->article->text; ?>
</td>
</tr>

<?php if ( intval($this->article->modified)!=0 && $this->params->get('show_modify_date')) : ?>
<tr>
<td class="modifydate">
<?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->article->modified, JText::_('DATE_FORMAT_LC2'))); ?>
</td>
</tr>
<?php endif; ?>
</table>
.......
Не знаю правильно я сделал или нет, вы уж сильно не пинайте, потому что в php я не силен...
В том месте где вырезал оставил иерархию <td></td>, вырезанную часть вынес прям перед таблицей, изменив td на span класс...
Измененную часть я отметил жирным
Код
<spam class="componentheading">
<?php if ($this->params->get('link_titles') && $this->article->readmore_link != '') : ?>
<a href="<?php echo $this->article->readmore_link; ?>" class="contentpagetitle<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
<?php echo $this->escape($this->article->title); ?></a>
<?php else : ?>
<?php echo $this->escape($this->article->title); ?>
<?php endif; ?>
</spam>
<table class="contentpaneopen<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
...
не знаю, а смысла то... Может выносить и не нужно было...

Да, я уже понял, что выносить за пределы таблицы наверное нет смысла,
вот пока только убрал класс у неё оставив только <table>, вроде сдвинулось немножко вверх...
« Последнее редактирование: 24.08.2010, 02:16:17 от Index »
*

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
Ой, будьте благосклонны, я вот хочу научиться программированию, да не всё так сразу приходит  :(, на это годы нужны, что-бы не профи стать, а хотя бы любителем...

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

Выложу измененный кусок кода чуть позже...
После тестирования...

Вообщем у меня получилось так:
Код
<table width="100%">
<tr>
<?php if ($this->params->get('show_title')) : ?>
<?php echo $this->escape($this->article->title); ?>
<?php endif; ?>
<?php if (!$this->print) : ?>
<?php if ($this->params->get('show_pdf_icon')) : ?>
<td align="right" width="100%" class="buttonheading">
<?php echo JHTML::_('icon.pdf',  $this->article, $this->params, $this->access); ?>
</td>
<?php endif; ?>
Не знаю правильно так или нет..., но теперь заголовок отображается как надо, но когда пытаюсь приписать h1 с классом, то опять отступы...  :(
« Последнее редактирование: 23.08.2010, 20:48:41 от Index »
*

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
Вообщем всё решилось банальным:
Код
<table class="u"> - вот в чем была проблема 
<tr>
<?php if ($this->params->get('show_title')) : ?>
<td class="contentheading<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>" width="100%">
<?php if ($this->params->get('link_titles') && $this->article->readmore_link != '') : ?>
<a href="<?php echo $this->article->readmore_link; ?>" class="contentpagetitle<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
<?php echo $this->escape($this->article->title); ?></a>
<?php else : ?>
<spam class="componentheading"><?php echo $this->escape($this->article->title); ?></spam>
<?php endif; ?>
</td>

position:relative;margin-top:-15px;widtd:100% - Я решил только так, по другому не получилось...

Но у меня остался вопрос, а если часть того кода удалить, а оставить только:
Код
<table class="u"> - вот в чем была проблема 
<tr>
<?php if ($this->params->get('show_title')) : ?>
<td class="contentheading" width="100%">
<spam class="componentheading"><?php echo $this->escape($this->article->title); ?></spam>
</td>
...
Этот вариант не будет считаться ошибкой?
Заранее благодарен за ответ.
« Последнее редактирование: 24.08.2010, 02:46:32 от Index »
*

hazyin

  • Захожу иногда
  • 142
  • 1 / 0
Люди добрые помогите! Как вставить код и через что! Перепробывал различные варианты. Почему-то в статье, в своем HTML часть кода отрезается.
<iframe frameborder="0" scrolling="auto" height="1500" width="700" allowtransparency="true" marginwidth="0" marginheight="0" src="http://ecal.forexpros.ru/e_cal.php?duration=weekly&top_text_color=FFFFFF&top_bg=0452A1&header_text_color=333333&header_bg=D0DFE6&bg1=FFFFFF&bg2=F1F5F8&border=CEDBEB" align="center"></iframe><br /><span style="font-size: 11px;color: #333333;text-decoration: none;"> Предоставлено <a href="http://www.forexpros.ru/" target="_blank" style="font-size: 11px;color: #06529D; font-weight: bold;" class="underline_link">Forex</a> Pros</span>
            
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Млин, валяюся пад сталом )))
Index изобрел новый новый html-тэг - SPAM. Круто, надо w3c предложить, мож в спецификацию html5 включат, а то этой гадости полно, а размечать ее нечем )
<spam>эта надпись была опубликована спам-ботом )))</spam>
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Index

  • Захожу иногда
  • 59
  • 3 / 0
  • Ибо - воистину!!!
danik, Гы... ^))), с изобретательностью у меня все впорядке...

А что, было бы неплохо :)

hazyin, Возможно потому, что страницу нужно редактировать на выключеном редакторе,
Т.к. стандартный наверно игнорирует.
« Последнее редактирование: 27.08.2010, 01:00:47 от Index »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Для чего нужны разделы и категории?

Автор lost

Ответов: 10
Просмотров: 7100
Последний ответ 26.04.2021, 15:12:31
от altvvc
ссылка на неопубликованный материал

Автор snoopik

Ответов: 9
Просмотров: 7180
Последний ответ 21.03.2019, 04:50:20
от vasmed
Как вывести все категории всех разделов на одной странице?

Автор genius

Ответов: 4
Просмотров: 2304
Последний ответ 22.01.2019, 08:38:30
от genius
Не выбирается материал

Автор zahar

Ответов: 9
Просмотров: 5115
Последний ответ 23.01.2018, 12:51:18
от SSTID
Как вставить в материал скрипт (карта Яндекс)

Автор demonm

Ответов: 6
Просмотров: 15282
Последний ответ 25.04.2017, 00:02:40
от CrazyPr0ger