Можно сделать hack. Грязновато конечно, но если стоит задача.
И Конечно не забываем делать копии изменяемых документов.
Редактируем libraries/joomla/document/document.php
/**
* Outputs the document
*
* @access public
* @param boolean $cache If true, cache the output
* @param boolean $compress If true, compress the output
* @param array $params Associative array of attributes
* @return The rendered data
*/
function render( $cache = false, $params = array())
{
JResponse::setHeader( 'Expires', gmdate( 'D, d M Y H:i:s', time() + 900 ). ' GMT' );
if ($mdate = $this->getModifiedDate()) {
JResponse::setHeader( 'Last-Modified', $mdate /* gmdate( 'D, d M Y H:i:s', time() + 900 ). ' GMT' */ );
}
JResponse::setHeader( 'Content-Type', $this->_mime . '; charset=' . $this->_charset);
## Наш hack last-modified date . Вставляем код ##
$content =& $this->_buffer['component'][''];
if(preg_match_all('/(?><span class="createdate">[\s]*)([^<]*)/',$content,$matches))
{
if(!empty($matches[1]))
{
$i = 0;
$num = count($matches[1]);
$lastmod = 0;
while($i < $num)
{
$date = strtotime($matches[1][$i]);
if($date > $lastmod)
{
$lastmod = $date;
}
++$i;
}
$lastmod = gmdate('D, d M Y H:i:s',$lastmod). ' GMT';
JResponse::setHeader('Last-Modified',$lastmod);
}
}
## конец hack ##
}
------------------------------------------------------------------------------
Редактируем libraries/joomla/environment/response.php
/**
* Sends all headers prior to returning the string
*
* @access public
* @param boolean $compress If true, compress the data
* @return string
*/
function toString($compress = false)
{
$data = JResponse::getBody();
// Don't compress something if the server is going todo it anyway. Waste of time.
if($compress && !ini_get('zlib.output_compression') && ini_get('output_handler')!='ob_gzhandler') {
$data = JResponse::_compress($data);
}
if (JResponse::allowCache() === false)
{
JResponse::setHeader( 'Expires', 'Mon, 1 Jan 2001 00:00:00 GMT', true );
## закоментируем строку ##
# JResponse::setHeader( 'Last-Modified', gmdate("D, d M Y H:i:s"). ' GMT', true );
## end hack ##
JResponse::setHeader( 'Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', false);
JResponse::setHeader( 'Pragma', 'no-cache' );
}
JResponse::sendHeaders();
return $data;
}