Joomla! България

Стари версии на Джумла! => Joomla! 1.5 => Компоненти => Темата е започната от: Николай_ в 10 Март, 2014, 11:09:51

Титла: Дублирани заявки в com_content
Публикувано от: Николай_ в 10 Март, 2014, 11:09:51
Нямам спомен да съм пускал подобна тема в стария форум, или пък да съм срещал подобна, така че...да сефтосам раздела :)
Нямам идея доколко още се ползва 1.5, но знае ли човек...
Накратко - преди много се дразнех като вляза в някой новинарски сайт и се започва едно чакане
Поразрових се да видя защо така, според мен проблемът е в
components/com_content/models/frontpage.php (респ. и в components/com_content/models/category.php)
Две функции там - _buildQuery и getTotal ползват една и съща заявка към БД, което за мен е повече от излишно, и натоварващо времето за зареждане на страницата
Ето и промяната, която според мен е добре да бъде направена в components/com_content/models/frontpage.php
function getTotal()
{
// Lets load the content if it doesn't already exist
if (empty($this->_total))
{
$query = $this->_buildQuery();
$this->_total = $this->_getListCount($query);
}

return $this->_total;
}
го промених на: (може да има и по-елегантни решения)
function getTotal()
{
// Lets load the content if it doesn't already exist
if (empty($this->_total))
{
$where = $this->_buildContentWhere();
$query = ' SELECT COUNT(*)' .
' FROM #__content AS a' .
' INNER JOIN #__content_frontpage AS f ON f.content_id = a.id' .
' LEFT JOIN #__categories AS cc ON cc.id = a.catid'.
' LEFT JOIN #__sections AS s ON s.id = a.sectionid'.
' LEFT JOIN #__users AS u ON u.id = a.created_by' .
' LEFT JOIN #__groups AS g ON a.access = g.id'.

$where

;



$db = & JFactory::getDBO();
$db->setQuery($query);
$this->_total = $db->loadresult();



}

return $this->_total;

Не съм гледал новите версии да видя дали и там е така