Всем привет:)
В общем, друзья, проблема такая:
Установил на денвер Joomla 1.7 и решил установить шаблон для начала (мне его потом редактировать надо). Все бы хорошо, только вот под шаблоном (точнее под шапкой) надпись
Fatal error: Call to a member function getMessageQueue() on a non-object in Z:\home\test1.ru\www\templates\ol_grosse\functions.php on line 11
Естественно лезу в файл, вот что там есть
<?php
defined('_JEXEC') or die('Restricted access'); // no direct access
if (!defined('_ARTX_FUNCTIONS')) {
define('_ARTX_FUNCTIONS', 1);
function artxHasMessages()
{
global $mainframe;
$messages = $mainframe->getMessageQueue();
if (is_array($messages) && count($messages))
foreach ($messages as $msg)
if (isset($msg['type']) && isset($msg['message']))
return true;
return false;
}
function artxUrlToHref($url)
{
$result = '';
$p = parse_url($url);
if (isset($p['scheme']) && isset($p['host'])) {
$result = $p['scheme'] . '://';
if (isset($p['user'])) {
$result .= $p['user'];
if (isset($p['pass']))
$result .= ':' . $p['pass'];
$result .= '@';
}
$result .= $p['host'];
if (isset($p['port']))
$result .= ':' . $p['port'];
if (!isset($p['path']))
$result .= '/';
}
if (isset($p['path']))
$result .= $p['path'];
if (isset($p['query'])) {
$result .= '?' . str_replace('&', '&', $p['query']);
}
if (isset($p['fragment']))
$result .= '#' . $p['fragment'];
return $result;
}
function artxReplaceButtonsRegex() {
return '' .
'~<input\b[^>]*'
. '(?:'
. '[^>]*\bclass=(?:"(?:[^"]*\s)?button(?:\s[^"]*)?"|\'(?:[^\']*\s)?button(?:\s[^\']*)?\'|button\b)[^>]*'
. '(?:\bvalue=(?:"[^"]*"|\'[^\']*\'|[^>\s]*))'
. '|'
. '(?:\bvalue=(?:"[^"]*"|\'[^\']*\'|[^>\s]*))'
. '[^>]*\bclass=(?:"(?:[^"]*\s)?button(?:\s[^"]*)?"|\'(?:[^\']*\s)?button(?:\s[^\']*)?\'|button\b)[^>]*'
. '|'
. '[^>]*\bclass=(?:"(?:[^"]*\s)?button(?:\s[^"]*)?"|\'(?:[^\']*\s)?button(?:\s[^\']*)?\'|button\b)[^>]*'
. ')'
. '[^>]*/?\s*>~i';
}
function artxReplaceButtons($content)
{
$re = artxReplaceButtonsRegex();
if (!preg_match_all($re, $content, $matches, PREG_OFFSET_CAPTURE))
return $content;
$result = '';
$position = 0;
foreach ($matches[0] as $match) {
$result .= substr($content, $position, $match[1] - $position);
$position = $match[1] + strlen($match[0]);
$result .= '<span class="ju-button-wrapper"><span class="l"> </span><span class="r"> </span>'
. preg_replace('~\bclass=(?:"([^"]*\s)?button(\s[^"]*)?"|\'([^\']*\s)?button(\s[^\']*)?\'|button\b)~i',
'class="\1\3button ju-button\2\4"', $match[0]). '</span>';
}
$result .= substr($content, $position);
return $result;
}
function artxPost($caption, $content)
{
$hasCaption = (null !== $caption && strlen(trim($caption)) > 0);
$hasContent = (null !== $content && strlen(trim($content)) > 0);
if (!$hasCaption && !$hasContent)
return '';
ob_start();
?>
<div class="ju-Post">
<div class="ju-Post-tl"></div><div class="ju-Post-tr"></div><div class="ju-Post-bl"></div>
<div class="ju-Post-br"></div><div class="ju-Post-tc"></div><div class="ju-Post-bc"></div>
<div class="ju-Post-cl"></div><div class="ju-Post-cr"></div><div class="ju-Post-cc"></div>
<div class="ju-Post-body">
<div class="ju-Post-inner">
<?php if ($hasCaption): ?>
<div class="ju-PostMetadataHeader">
<h2 class="ju-PostHeader">
<?php echo $caption; ?>
</h2>
</div>
<?php endif; ?>
<?php if ($hasContent): ?>
<div class="ju-PostContent">
<?php echo artxReplaceButtons($content); ?>
</div>
Дальше я думаю уже не нужно.
Так,
Google в помощь: нашел на этом форуме что-то похожее с 1.6, указанные действия не привелик желаемому, цитирую что предлагают здесь
http://joomlaforum.ru/index.php/topic,160787.0.htmlПроблема решена
Ищем в файле function.php текст global $mainframe; $messages = $mainframe->getMessageQueue();
и меняем на $messages = JFactory::getApplication()->getMessageQueue();
Миграция шаблонов siteground 1.5 на 1.6
1.Нужно найти в файлах templates.php и index.php
текст
echo $mainframe->getCfg(‘sitename’) ;
зменить на
$app = &JFactory::getApplication();
echo $app->getCfg(‘sitename’);
Спасибо, надеюсь на помощь