Создать Q2A Splashbox на главной странице
Я пытаюсь, чтобы заставка отображалась ТОЛЬКО на домашней странице между панелью навигации и боковой панелью.
Вот JSFiddle из того, что я пытаюсь сделать..
Как видите, всплывающая панель находится над боковой панелью и содержимым...
Теперь вот проблема.
В Q2A, когда я пытаюсь повторить это, боковая панель всегда находится над всплывающей панелью.
Вот мой текущий код..
function main()
{
if ($this->request=='') {
$this->output('<div class="splashbox">');
$this->output('</div>');
} else
qa_html_theme_base::main();
}
function sidepanel()
{
$this->output('<div class="qa-sidepanel">');
$this->search();
$this->nav('cat', 1);
$this->feed();
$this->output('</div>');
}
Таким образом, заставка отображается только на домашней странице (как указано в '')... и это работает отлично. Но это рендеринг боковой панели (боковой панели) в первую очередь. Я не уверен почему. Я полагал, что размещение функции sidepanel под функцией splashbox заставит его рендериться вторым, но это не сработало. Какие-либо предложения? Спасибо!
1 ответ
Это было довольно легко... Я понял это за некоторое время, просто просматривая код..
Я понимаю, что я делал функцию "MAIN"... это означает, что она заменит контентную часть моего Q2A на splashbox. Это не то, что я хотел... Я хотел, чтобы он вставил заставку во весь сайт.
Для этого мне нужно было создать функцию BODY_CONTENT, а не функцию MAIN.
Так...
вот как это выглядело...
function body_content()
{
if ($this->request=='') {
$this->body_prefix();
$this->notices();
$this->output('<div class="qa-body-wrapper">', '');
$this->widgets('full', 'top');
$this->header();
$this->output('<div class="splashbox">');
$this->output('</div>');
$this->widgets('full', 'high');
$this->sidepanel();
$this->main();
$this->widgets('full', 'low');
$this->footer();
$this->widgets('full', 'bottom');
$this->output('</div> <!-- END body-wrapper -->');
$this->body_suffix();
} else
qa_html_theme_base::body_wrapper();
}