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

komponent

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
В обычном файле HTML код работает, копирую его в материал Joomla, не работает, не понимаю в чем ошибка подскажите !

<script language="JavaScript">
function GoPage()
{   
   document.calc.submit();   
}
function Calculate()
{
   switch(document.calc.typet.value)
   {
      case '1':
         var d=document.calc.diametr.value/1000;
         var s=document.calc.stenka.value/1000;
         var sz=document.calc.dlina.value;
         var pl=document.calc.material.value;
         var p=3.1415;
         var t=p*pl*s*(d-s);
         document.result.m1.value=Math.round(t*100)/100;
         document.result.mt.value=Math.round(t*sz*100)/100;
         break;
      case '2':
         var a=parseFloat(document.calc.a.value);
         var b=parseFloat(document.calc.b.value);
         var s=document.calc.stenka.value;
         var sz=document.calc.dlina.value;
         var pl=document.calc.material.value;
         var k,t;
         if (pl==7850)
            {k=1;}
         else
            {k=pl/7850;}
         t=k*0.0157*s*(a+b-2.86*s);
         document.result.m1.value=Math.round(t*100)/100;
         document.result.mt.value=Math.round(t*sz*100)/100;
         break;
      case '3':
         var sq=document.calc.sq.value;
         var s=document.calc.stenka.value;
         var sz=document.calc.dlina.value;
         var pl=document.calc.material.value;
         var k,t;
         if (pl=='7850')
            {k=1;}
         else
            {k=pl/7850;}
         t=k*0.0157*s*(2*sq-2.86*s)
         document.result.m1.value=Math.round(t*100)/100;
         document.result.mt.value=Math.round(t*sz*100)/100;
         break;
   }
}
function ClearResult()
{
   document.result.reset();
}
function Check()
{
   var errStr='';
   var frm=document.calc;
   switch(frm.typet.value)
   {
      case '1':
         if (frm.diametr.value=='' || !IsNumeric(frm.diametr.value))
         {errStr='Поле диаметр содержит некорректное значение!\n';}
         if (frm.stenka.value=='' || !IsNumeric(frm.stenka.value))
         {
            errStr+='Поле стенка содержит некорректное значение!\n';
         }
         else
         {
            if (frm.stenka.value > (frm.diametr.value/2))
            {
               errStr+='Стенка не может больше половины диаметра!\n';
               frm.stenka.value='';
            }
         }
         if (frm.dlina.value=='' || !IsNumeric(frm.dlina.value))
         {errStr+='Поле длина содержит некорректное значение!';}
         break;
      case '2':
         if (frm.a.value=='' || !IsNumeric(frm.a.value))
         {errStr='Поле длина A содержит некорректное значение!\n';}
         if (frm.b.value=='' || !IsNumeric(frm.b.value))
         {errStr+='Поле длина B содержит некорректное значение!\n';}
         if (frm.stenka.value=='' || !IsNumeric(frm.stenka.value))
         {errStr+='Поле стенка содержит некорректное значение!\n';}
         else
         {
            if (frm.stenka.value > (frm.a.value/2) || frm.stenka.value > (frm.b.value/2))
            {
               errStr+='Стенка не может больше половины высоты!\n';
               frm.stenka.value='';
            }
         }
         if (frm.dlina.value=='' || !IsNumeric(frm.dlina.value))
         {errStr+='Поле длина содержит некорректное значение!';}
         break;
      case '3':
         if (frm.sq.value=='' || !IsNumeric(frm.sq.value))
         {errStr+='Поле длина стороны содержит некорректное значение!\n';}
         if (frm.stenka.value=='' || !IsNumeric(frm.stenka.value))
         {errStr+='Поле стенка содержит некорректное значение!\n';}
         else
         {
            if (frm.stenka.value > (frm.sq.value/2))
            {
               errStr+='Стенка не может больше половины высоты!\n';
               frm.stenka.value='';
            }
         }
         if (frm.dlina.value=='' || !IsNumeric(frm.dlina.value))
         {errStr+='Поле длина содержит некорректное значение!';}
         break;
   }
   if (errStr!=='')
   {
      alert(errStr);
      return false;
   }
   else
   {
      Calculate();
   }
}
function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++)
      {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         {
         IsNumber = false;
         }
      }
   return IsNumber;
  
   }
</script>
                        <form name="calc" action="" method="post">
                        <table>
                          <tbody>

                          <tr>
                            <td>Тип трубы</td>
                            <td><select style="width: 170px;" onchange="GoPage();" name="typet"> <option value="1" selected="selected">круглая</option> <option value="2">прямоугольная</option> <option value="3">квадратная</option></select></td></tr>
                          <tr>
                            <td>Материал</td>

                            <td><select style="width: 170px;" onchange="ClearResult();" name="material"> <option value="7850" selected="selected">углеродистая сталь</option>
                                <option value="7750">нержавеющая сталь</option>
                                <option value="2790">дюралюминий</option> <option value="4540">титан</option> <option value="8960">медь</option> <option value="8600">латунь</option> <option value="11340">свинец</option> <option value="19300">золото</option></select></td></tr>

                          <tr>
                            <td>Диаметр,мм</td>
                            <td><input name="diametr"></td></tr>
                          <tr>
                            <td>Стенка, мм</td>
                            <td><input name="stenka"></td></tr>
                          <tr>
                            <td>Длина, м</td>

                            <td><input name="dlina"></td></tr>
                          <tr>
                            <td colspan="2" align="middle"><input onclick="Check();" value="Расчет" type="button"></td></tr></tbody></table></form>
                        <form name="result" action="" method="post">
                        <table>
                          <tbody>
                          <tr>
                            <td>Масса 1 метра, кг</td>

                            <td><input name="m1"></td></tr>
                          <tr>
                            <td>Общая масса, кг</td>
                            <td><input name="mt"></td></tr></tbody></table></form>

[записка модератора: тема перемещена в раздел по Joomla 1.5]
« Последнее редактирование: 17.11.2010, 23:04:21 от 4webspot »
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Re: калькулятор не работает в Joomla 1,5
« Ответ #1 : 16.11.2010, 02:21:04 »
Joomla из коробки их соображений безопасности базы данных не принимает в контент скрипты, написанные в JavaScript или PHP. установите для этой работы одно из этих расширений (рекомендую поиграть с Sourcerer и/или Jumi).
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

strannik-yura

  • Давно я тут
  • 511
  • 44 / 1
  • :)
Re: калькулятор не работает в Joomla 1,5
« Ответ #2 : 16.11.2010, 02:24:17 »
вы наверно забыли отключить редактор в общих настройках
проверил, у меня всё работает
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Re: калькулятор не работает в Joomla 1,5
« Ответ #3 : 16.11.2010, 02:54:52 »
Юрий, Вы поспешили, коллега.

HTML форма данного калькулятора хотя отображается, в дефолтовой Joomla програмно обрабатываться ни через РНР, ни через JavaScript без применения соответствующего плагина (в моем тестировании это был Sourcerer) не будет.

если бы это было возможным, то Joomla никогда бы не стала ведущей, в том числе и с точки зрения безопасности из коробки, системой управления контентом.
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

komponent

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: калькулятор не работает в Joomla 1,5
« Ответ #4 : 16.11.2010, 03:01:08 »
Joomla из коробки их соображений безопасности базы данных не принимает в контент скрипты, написанные в JavaScript или PHP. установите для этой работы одно из этих расширений (рекомендую поиграть с Sourcerer и/или Jumi).
Спасибо конечно, но с языками кроме русского проблемы, нет ссылочки на русские носители?
*

komponent

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: калькулятор не работает в Joomla 1,5
« Ответ #5 : 16.11.2010, 03:02:59 »
хотя, интуитивно все ясно, спасибо разберусь
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Re: калькулятор не работает в Joomla 1,5
« Ответ #6 : 16.11.2010, 03:13:45 »
развлекайтесь.

насчет так называемых "носителей", дружеский совет: если работаете с Joomla серьезно, то всегда скачивайте ее расширения только с сайтов их разработчиков.
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

komponent

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: калькулятор не работает в Joomla 1,5
« Ответ #7 : 16.11.2010, 20:22:28 »
4webspot

Все хорошо только не пойму как правильно вписывать теги в материале покажите пример пожалуйста. Вы написали, что у вас все работает.
*

Dimir

  • Захожу иногда
  • 426
  • 13 / 1
Re: калькулятор не работает в Joomla 1,5
« Ответ #8 : 16.11.2010, 20:50:30 »
у меня тоже работает!Отлючите редактор.Без редактора-потом вставляйте код и сохраняйте
-==Dimir==-
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Re: калькулятор не работает в Joomla 1,5
« Ответ #9 : 16.11.2010, 21:18:51 »
если Вы установите Sourcerer, то внизу редактора рядом с кнопкой для вставки картинок и остальных дефолтовых добавится еще одна, для вставки кода скриптов (кнопка называется "Insert Code").

при нажатии на эту кнопку откроется новое окно для вставки кода. удачи.
« Последнее редактирование: 17.11.2010, 11:23:55 от 4webspot »
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

SV

  • Захожу иногда
  • 99
  • 1 / 0
Re: калькулятор не работает в Joomla 1,5
« Ответ #10 : 17.11.2010, 09:04:58 »
установила Sourcerer 2.6.0, Через административную панель в материал вставляешь код сохраняешь открываешь все работает.На сайт заходишь через пользователя все сбрасывается?Это так и должно быть.
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Re: калькулятор не работает в Joomla 1,5
« Ответ #11 : 17.11.2010, 11:34:46 »
откройте плагин Sourcerer в менеджере плагинов и взгляните на настройки параметра "Use example code":
- Да
- Нет
- Only in Administrator
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

SV

  • Захожу иногда
  • 99
  • 1 / 0
Re: калькулятор не работает в Joomla 1,5
« Ответ #12 : 17.11.2010, 12:27:11 »
 чет ничего не поняла.когда на сайт заходишь под администратором (не в административную панель) открываешь этот материал и сбивается код, не остается, ну если только заново прописывать и сохранять, тогда да. А нельзя так чтобы открываешь статью в которой уже вставлен этот код (например что то отредактировать) сохраняешь и код сохраняется (не через административную панель, а через сайт).
*

komponent

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: калькулятор не работает в Joomla 1,5
« Ответ #13 : 17.11.2010, 20:56:44 »
так давайте по пунктам:
  • установил sourcerer 2.6.0
  • отключил редактор
  • в редактировании материалов нажал кнопку insert code(появилось окно)
  • в окне нажал кнопку toggle editor и вставил весь код, как он показан в верху
  • заключил в теги (получилось {source}верно: 1.5; неверно: 1,5 <script language="JavaScript">...{/source})
  • нажал кнопку toggle editor (отобразилось 1 {source} )
  • нажал insert (отобразилось в редакторе {source}...{/source})
  • нажимаю применить и перехожу на страницу калькулятора на сайте
  • не работает
как бороться, где ошибся?
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Re: калькулятор не работает в Joomla 1,5
« Ответ #14 : 17.11.2010, 21:56:05 »
- не отключайте редактор
- нажимите кнопку "Insert Code"
- полностью очистите выскочившее окно от тегов и комментариев
- скопируйте свой код между тегами {source} и {/source} из этой темы
- сохраните и протестируйте
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

komponent

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: калькулятор не работает в Joomla 1,5
« Ответ #15 : 17.11.2010, 22:52:44 »
Спасибо, все заработало.
Делать всем как указано в ответе Ответ #14.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 1.5 как убрать кнопку редактировать материант с сайта

Автор andriy465

Ответов: 5
Просмотров: 4021
Последний ответ 12.11.2023, 23:37:03
от all_zer
Нужно wiki под Joomla

Автор THE KILLERS

Ответов: 9
Просмотров: 9692
Последний ответ 05.11.2020, 20:56:47
от Kijv
Поиск статьи по url сайта в админке Joomla 1.5

Автор Tema

Ответов: 5
Просмотров: 2194
Последний ответ 14.08.2020, 07:16:44
от rsn
Не работает страница XML выдает ошибку: This page contains the following errors

Автор vitaliywolf

Ответов: 20
Просмотров: 18820
Последний ответ 07.05.2020, 22:24:16
от sivers
[Решено] Проблема с авторизацией Invalid Token

Автор treX

Ответов: 100
Просмотров: 97139
Последний ответ 06.10.2019, 16:55:45
от PaLyCH