Joomla включает в себя CSS, который делает отображение пустой страницы

Всякий раз, когда я пытаюсь загрузить страницу входа <domain>/index.php?option=com_users&view=login Я вижу только белую страницу. Когда я смотрю на исходный код сайта, который поставляется, есть выражение CSS html { display:none } в голове, которая заставляет целую страницу не отображаться:

<head>

    <base href="<domain>/index.php" />
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta name="generator" content="Joomla! - Open Source Content Management" />
  <title>xxxxxxxxx</title>
  <style type="text/css">
html { display:none }
  </style>
...

Все остальные страницы отображаются без проблем. Кроме того, это связано со специальным шаблоном: как только я активирую один из стандартных шаблонов, страница входа работает.

Я уже мог выследить его до jdoc:include type="head" часть кода в ìndex.php и я попытался выяснить, где соответствующие head.php получает его от, но, поскольку у меня нет никакого опыта PHP, я застрял здесь.

Есть ли у кого-нибудь подсказки, куда идти дальше (или даже лучше), объяснение или исправление для этого?

Я использую Joomla 2.5, если это важно.

1 ответ

PHP разработчик здесь. Это может быть из-за некоторого кода в файле поведения.php из библиотеки \joomla\html\html.

Если ваша страница входа в систему находится внутри фрейма, кажется, что сначала она скрывается, а затем отображается с использованием JavaScript, когда браузер завершил загрузку страницы (и ее ресурсов), а также вырвала сайт из фрейма.

Вы случайно отключили JavaScript в своем браузере? Это может вызвать проблему.

/**
 * Break us out of any containing iframes
 *
 * @param   string  $location  Location to display in
 *
 * @return  void
 *
 * @since   11.1
 */
public static function noframes($location = 'top.location.href')
{
    // Only load once
    if (isset(self::$loaded[__METHOD__]))
    {
        return;
    }

    // Include MooTools framework
    self::framework();

    $js = "window.addEvent('domready', function () {if (top == self) {document.documentElement.style.display = 'block'; }" .
        " else {top.location = self.location; }});";
    $document = JFactory::getDocument();
    $document->addStyleDeclaration('html { display:none }');
    $document->addScriptDeclaration($js);

    JResponse::setHeader('X-Frames-Options', 'SAME-ORIGIN');

    self::$loaded[__METHOD__] = true;
}
Другие вопросы по тегам