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

ikus

  • Захожу иногда
  • 94
  • 0 / 0
VTEM Tooltip
« : 06.09.2012, 20:34:49 »
Попробовал прикрутить VTEM Tooltip, но что-то не очень он и работать хочет. Подсказку показывает, а вот стиль не выводит.

Как делал я?
1. Сам плагин поставил через "менеджер расширений".
2. Подключил jQuery. Саму библиотеку скачал с оффа, закинул в корень templates/шаблон/js/jquery-1.8.1.js.
3. В index.php шаблона между тегами <head></head> добавил "<script type="text/javascript" src="<?php echo $this->baseurl ;?>/templates/шаблон/js/jquery-1.8.1.js" ></script>"

Может я неправильно библиотеку подключил?

В общем все это дело выглядит вот так:


Как видим, нужный мне стиль не выводится, только обычная рамка.
*

ikus

  • Захожу иногда
  • 94
  • 0 / 0
Re: VTEM Tooltip
« Ответ #1 : 07.09.2012, 12:34:26 »
Ребята, кто подключал библиотеку jQuery? Я правильно ее подключил?
*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
Re: VTEM Tooltip
« Ответ #2 : 08.09.2012, 00:50:02 »
джумшоп сам подключает jquery

Может конфликт.
*

ikus

  • Захожу иногда
  • 94
  • 0 / 0
Re: VTEM Tooltip
« Ответ #3 : 15.09.2012, 04:22:35 »
В моем ЖШ он сам его не подключает )
*

ikus

  • Захожу иногда
  • 94
  • 0 / 0
Re: VTEM Tooltip
« Ответ #4 : 15.09.2012, 04:23:22 »
Нуу... Ребята, у кого еще какие идеи?
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: VTEM Tooltip
« Ответ #5 : 15.09.2012, 08:40:21 »
Идея есть. Ну для начала удалить <?php echo $this->baseurl ;?> (лишние строки кода)
Во вторых прописать стили в CSS в соответствии с классами тултипа.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

ikus

  • Захожу иногда
  • 94
  • 0 / 0
Re: VTEM Tooltip
« Ответ #6 : 16.09.2012, 21:20:45 »
Странно как-то. Не могу понять. Смотрю через ФаерБаг, он показывает что используется CSS из файла qjuery.qtip.css, но только 1 строка:
".vtemtooltip {
    cursor: pointer !important;
}"

А потом уже ЖШ'кий reset.css, и то по ходу только одно значение "span".

Смотрю сам qjuery.qtip.css - там прописано всё, все стили.

Сама формулировка на вывод имеет такой вид:
"{vtemtooltip title=[Tooltip title] data=[Lorem ipsum dolor sit amet] link=[Dark style] style=[dark]}" (В ФаерБаге:"<span id="vtemtooltip1" class="vtemtooltip" data="Lorem ipsum dolor sit amet" title="Tooltip title">Dark style</span>")

Собственно сам файл qjuery.qtip.css:
Код
/* Core qTip styles */
.vtemtooltip{cursor:pointer !important;}
.ui-tooltip, .qtip{
position: absolute;
left: -28000px;
top: -28000px;
display: none;
min-width: 50px;
font-size: 10.5px;
line-height: 12px;
}

/* Fluid class for determining actual width in IE */
.ui-tooltip-fluid{
display: block;
visibility: hidden;
position: static !important;
float: left !important;
}

.ui-tooltip-content{
position: relative;
padding: 5px 9px;
overflow: hidden;

border: 1px solid #000001;

text-align: left;
word-wrap: break-word;
overflow: hidden;
}

.ui-tooltip-titlebar{
position: relative;
min-height: 14px;
padding: 5px 35px 5px 10px;
overflow: hidden;

border: 1px solid #000001;
border-width: 1px 1px 0;

font-weight: bold;
}

.ui-tooltip-titlebar + .ui-tooltip-content{ border-top-width: 0px !important; }

/*! Default close button class */
.ui-tooltip-titlebar .ui-state-default{
position: absolute;
right: 4px;
top: 50%;
margin-top: -9px;

cursor: pointer;
outline: medium none;

border-width: 1px;
border-style: solid;
}

* HTML .ui-tooltip-titlebar .ui-state-default{ top: 16px; } /* IE fix */

.ui-tooltip-titlebar .ui-icon,
.ui-tooltip-icon .ui-icon{
display: block;
text-indent: -1000em;
}

.ui-tooltip-icon, .ui-tooltip-icon .ui-icon{
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
}

.ui-tooltip-icon .ui-icon{
width: 18px;
height: 14px;

text-align: center;
text-indent: 0;
font: normal bold 10px/13px Tahoma,sans-serif;

color: inherit;
background: transparent none no-repeat -100em -100em;
}


/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */
.ui-tooltip-focus{

}

/* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */
.ui-tooltip-hover{

}


/*! Default tooltip style */
.ui-tooltip-default .ui-tooltip-titlebar,
.ui-tooltip-default .ui-tooltip-content{
border-color: #F1D031;
background-color: #FFFFA3;
color: #555;
}

.ui-tooltip-default .ui-tooltip-titlebar{
background-color: #FFEF93;
}

.ui-tooltip-default .ui-tooltip-icon{
border-color: #CCC;
background: #F1F1F1;
color: #777;
}

.ui-tooltip-default .ui-tooltip-titlebar .ui-state-hover{
border-color: #AAA;
color: #111;
}

/* Tips plugin */
.ui-tooltip .ui-tooltip-tip{
margin: 0 auto;
overflow: hidden;
z-index: 10;
}

.ui-tooltip .ui-tooltip-tip,
.ui-tooltip .ui-tooltip-tip *{
position: absolute;

line-height: 0.1px !important;
font-size: 0.1px !important;
color: #123456;

background: transparent;
border: 0px dashed transparent;
}

.ui-tooltip .ui-tooltip-tip canvas{ top: 0; left: 0; }


/* Modal plugin */
#qtip-overlay{
position: fixed;
left: -10000em;
top: -10000em;
}

/* Applied to modals with show.modal.blur set to true */
#qtip-overlay.blurs{ cursor: pointer; }

/* Change opacity of overlay here */
#qtip-overlay div{
position: absolute;
left: 0; top: 0;
width: 100%; height: 100%;

background-color: black;

opacity: 0.7;
filter:alpha(opacity=70);
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
}

/*! Light tooltip style */
.ui-tooltip-light .ui-tooltip-titlebar,
.ui-tooltip-light .ui-tooltip-content{
border-color: #E2E2E2;
color: #454545;
}

.ui-tooltip-light .ui-tooltip-content{
background-color: white;
}

.ui-tooltip-light .ui-tooltip-titlebar{
background-color: #f1f1f1;
}


/*! Dark tooltip style */
.ui-tooltip-dark .ui-tooltip-titlebar,
.ui-tooltip-dark .ui-tooltip-content{
border-color: #303030;
color: #f3f3f3;
}

.ui-tooltip-dark .ui-tooltip-content{
background-color: #505050;
}

.ui-tooltip-dark .ui-tooltip-titlebar{
background-color: #404040;
}

.ui-tooltip-dark .ui-tooltip-icon{
border-color: #444;
}

.ui-tooltip-dark .ui-tooltip-titlebar .ui-state-hover{
border-color: #303030;
}


/*! Cream tooltip style */
.ui-tooltip-cream .ui-tooltip-titlebar,
.ui-tooltip-cream .ui-tooltip-content{
border-color: #F9E98E;
color: #A27D35;
}

.ui-tooltip-cream .ui-tooltip-content{
background-color: #FBF7AA;
}

.ui-tooltip-cream .ui-tooltip-titlebar{
background-color: #F0DE7D;
}

.ui-tooltip-cream .ui-state-default .ui-tooltip-icon{
background-position: -82px 0;
}


/*! Red tooltip style */
.ui-tooltip-red .ui-tooltip-titlebar,
.ui-tooltip-red .ui-tooltip-content{
border-color: #D95252;
color: #912323;
}

.ui-tooltip-red .ui-tooltip-content{
background-color: #F78B83;
}

.ui-tooltip-red .ui-tooltip-titlebar{
background-color: #F06D65;
}

.ui-tooltip-red .ui-state-default .ui-tooltip-icon{
background-position: -102px 0;
}

.ui-tooltip-red .ui-tooltip-icon{
border-color: #D95252;
}

.ui-tooltip-red .ui-tooltip-titlebar .ui-state-hover{
border-color: #D95252;
}


/*! Green tooltip style */
.ui-tooltip-green .ui-tooltip-titlebar,
.ui-tooltip-green .ui-tooltip-content{
border-color: #90D93F;
color: #3F6219;
}

.ui-tooltip-green .ui-tooltip-content{
background-color: #CAED9E;
}

.ui-tooltip-green .ui-tooltip-titlebar{
background-color: #B0DE78;
}

.ui-tooltip-green .ui-state-default .ui-tooltip-icon{
background-position: -42px 0;
}


/*! Blue tooltip style */
.ui-tooltip-blue .ui-tooltip-titlebar,
.ui-tooltip-blue .ui-tooltip-content{
border-color: #ADD9ED;
color: #5E99BD;
}

.ui-tooltip-blue .ui-tooltip-content{
background-color: #E5F6FE;
}

.ui-tooltip-blue .ui-tooltip-titlebar{
background-color: #D0E9F5;
}

.ui-tooltip-blue .ui-state-default .ui-tooltip-icon{
background-position: -2px 0;
}

/*! Add shadows to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE6+, Safari 2+ */
.ui-tooltip-shadow{
-webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
-moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
}

.ui-tooltip-shadow .ui-tooltip-titlebar,
.ui-tooltip-shadow .ui-tooltip-content{
filter: progid:DXImageTransform.Microsoft.Shadow(Color='gray', Direction=135, Strength=3);
-ms-filter:"progid:DXImageTransform.Microsoft.Shadow(Color='gray', Direction=135, Strength=3)";

_margin-bottom: -3px; /* IE6 */
.margin-bottom: -3px; /* IE7 */
}


/*! Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */
.ui-tooltip-rounded,
.ui-tooltip-rounded .ui-tooltip-content,
.ui-tooltip-tipsy,
.ui-tooltip-tipsy .ui-tooltip-content,
.ui-tooltip-youtube,
.ui-tooltip-youtube .ui-tooltip-content{
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}

.ui-tooltip-rounded .ui-tooltip-titlebar,
.ui-tooltip-tipsy .ui-tooltip-titlebar,
.ui-tooltip-youtube .ui-tooltip-titlebar{
-moz-border-radius: 5px 5px 0 0;
-webkit-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
}

.ui-tooltip-rounded .ui-tooltip-titlebar + .ui-tooltip-content,
.ui-tooltip-tipsy .ui-tooltip-titlebar + .ui-tooltip-content,
.ui-tooltip-youtube .ui-tooltip-titlebar + .ui-tooltip-content{
-moz-border-radius: 0 0 5px 5px;
-webkit-border-radius: 0 0 5px 5px;
border-radius: 0 0 5px 5px;
}


/*! Youtube tooltip style */
.ui-tooltip-youtube{
-webkit-box-shadow: 0 0 3px #333;
-moz-box-shadow: 0 0 3px #333;
box-shadow: 0 0 3px #333;
}

.ui-tooltip-youtube .ui-tooltip-titlebar,
.ui-tooltip-youtube .ui-tooltip-content{
_margin-bottom: 0; /* IE6 */
.margin-bottom: 0; /* IE7 */

background: transparent;
background: rgba(0, 0, 0, 0.85);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000)";

color: white;
border-color: #CCCCCC;
}

.ui-tooltip-youtube .ui-tooltip-icon{
border-color: #222;
}

.ui-tooltip-youtube .ui-tooltip-titlebar .ui-state-hover{
border-color: #303030;
}


/* jQuery TOOLS Tooltip style */
.ui-tooltip-jtools{
background: #232323;
background: rgba(0, 0, 0, 0.7);
background-image: -moz-linear-gradient(top, #717171, #232323);
background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));

border: 2px solid #ddd;
border: 2px solid rgba(241,241,241,1);

-moz-border-radius: 2px;
-webkit-border-radius: 2px;
border-radius: 2px;

-webkit-box-shadow: 0 0 12px #333;
-moz-box-shadow: 0 0 12px #333;
box-shadow: 0 0 12px #333;
}

/* IE Specific */
.ui-tooltip-jtools .ui-tooltip-titlebar{
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)";
}
.ui-tooltip-jtools .ui-tooltip-content{
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)";
}

.ui-tooltip-jtools .ui-tooltip-titlebar,
.ui-tooltip-jtools .ui-tooltip-content{
background: transparent;
color: white;
border: 0 dashed transparent;
}

.ui-tooltip-jtools .ui-tooltip-icon{
border-color: #555;
}

.ui-tooltip-jtools .ui-tooltip-titlebar .ui-state-hover{
border-color: #333;
}


/* Cluetip style */
.ui-tooltip-cluetip{
-webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
-moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
}

.ui-tooltip-cluetip .ui-tooltip-titlebar{
background-color: #87876A;
color: white;
border: 0 dashed transparent;
}

.ui-tooltip-cluetip .ui-tooltip-content{
background-color: #D9D9C2;
color: #111;
border: 0 dashed transparent;
}

.ui-tooltip-cluetip .ui-tooltip-icon{
border-color: #808064;
}

.ui-tooltip-cluetip .ui-tooltip-titlebar .ui-state-hover{
border-color: #696952;
color: #696952;
}


/* Tipsy style */
.ui-tooltip-tipsy{
border: 0;
}

.ui-tooltip-tipsy .ui-tooltip-titlebar,
.ui-tooltip-tipsy .ui-tooltip-content{
_margin-bottom: 0; /* IE6 */
.margin-bottom: 0; /* IE7 */

background: transparent;
background: rgba(0, 0, 0, .87);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000)";

color: white;
border: 0px transparent;

font-size: 11px;
font-family: 'Lucida Grande', sans-serif;
font-weight: bold;
line-height: 16px;
text-shadow: 0 1px black;
}

.ui-tooltip-tipsy .ui-tooltip-titlebar{
padding: 6px 35px 0 10;
}

.ui-tooltip-tipsy .ui-tooltip-content{
padding: 6px 10;
}

.ui-tooltip-tipsy .ui-tooltip-icon{
border-color: #222;
text-shadow: none;
}

.ui-tooltip-tipsy .ui-tooltip-titlebar .ui-state-hover{
border-color: #303030;
}


/* Tipped style */
.ui-tooltip-tipped{

}

.ui-tooltip-tipped .ui-tooltip-titlebar,
.ui-tooltip-tipped .ui-tooltip-content{
border: 3px solid #959FA9;

filter: none; -ms-filter: none;
}

.ui-tooltip-tipped .ui-tooltip-titlebar{
background: #3A79B8;
background-image: -moz-linear-gradient(top, #3A79B8, #2E629D);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D));
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)";

color: white;
font-weight: normal;
font-family: serif;

border-bottom-width: 0;
-moz-border-radius: 3px 3px 0 0;
-webkit-border-radius: 3px 3px 0 0;
border-radius: 3px 3px 0 0;
}

.ui-tooltip-tipped .ui-tooltip-content{
background-color: #F9F9F9;
color: #454545;

-moz-border-radius: 0 0 3px 3px;
-webkit-border-radius: 0 0 3px 3px;
border-radius: 0 0 3px 3px;
}

.ui-tooltip-tipped .ui-tooltip-icon{
border: 2px solid #285589;
background: #285589;
}

.ui-tooltip-tipped .ui-tooltip-icon .ui-icon{
background-color: #FBFBFB;
color: #555;
}

/* IE9 fix - removes all filters */
.ui-tooltip:not(.ie9haxors) div.ui-tooltip-content,
.ui-tooltip:not(.ie9haxors) div.ui-tooltip-titlebar{
filter: none;
-ms-filter: none;
}
*

ikus

  • Захожу иногда
  • 94
  • 0 / 0
Re: VTEM Tooltip
« Ответ #7 : 19.09.2012, 19:12:14 »
Ну гляньте хоть код, он правильно прописан на вывод с CSS?
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: VTEM Tooltip
« Ответ #8 : 23.09.2012, 09:39:48 »
Уважаемый ikus, обратитесь к разработчику расширения с вопросами о правильности формирования строки вывода.
И запомните простые истины:
Если купили расширение и оно не работает - к разработчику.
Если купили расширение и оно не совместимо с заявленными приложениями - к разработчику.
Если используйте нелегальные расширения - на сайт htmlbook.ru
Если лень читать и хотите обсудить проблему на форуме, то пиши в соответствующих ветках. (VTEM Tooltip не относится к JoomShopping)
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

ikus

  • Захожу иногда
  • 94
  • 0 / 0
Re: VTEM Tooltip
« Ответ #9 : 23.09.2012, 23:27:04 »
Уважаемый ikus, обратитесь к разработчику расширения с вопросами о правильности формирования строки вывода.
И запомните простые истины:
Если купили расширение и оно не работает - к разработчику.
Если купили расширение и оно не совместимо с заявленными приложениями - к разработчику.
Если используйте нелегальные расширения - на сайт htmlbook.ru
Если лень читать и хотите обсудить проблему на форуме, то пиши в соответствующих ветках. (VTEM Tooltip не относится к JoomShopping)

Спасибо, познавательно. В начале темы я спросил: "может кто-то подключал подобное расширение"? (думаю понятно что здесь я сделал предположение). Истины я запомню. Лень читать? - Нет, не лень. Вот только покажите мне где кто-то упоминал о подобной проблеме. Соответствующая ветка - пост здесь из-за того что я его подключаю к JoomShopping.
*

pantela

  • Захожу иногда
  • 257
  • 1 / 0
Re: VTEM Tooltip
« Ответ #10 : 18.10.2012, 13:11:58 »
В плагине имеется свой jQuery JavaScript Library v1.4.4
А при попытке подключить jQuery JavaScript Library v1.5, тогда сбой...

Странно что на новой версии не работает...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться