РЕШЕНО! - логотип ссылается не на главную страницу - как?

Главные вкладки

Аватар пользователя dosch dosch 6 февраля 2009 в 1:59

Привет.

У меня есть страница приветствия (/node, выставлена главной страницей), ссылка с которой ведет на главную страницу де-факто (/frontpage).
Проблема в том, что, кликая по логотипу c /frontpage (равно как и с прочих страниц сайта), я попадаю не на /frontpage, а на страницу приветствия.

Мне же, разумеется, нужно, чтобы после клика на логотипе открывалась не она, а как раз-таки /frontpage.

Я пробовал создать синоним для /frontpage и выставить главной страницей его, но у меня ничего не получилось.

Пожалуйста, подскажите что делать.

Комментарии

Аватар пользователя iT iT 6 февраля 2009 в 3:28

/frontpage выставить главной страницей
а для страницы приветствия использовать либо .html файл, либо особый модуль, который нужно поискать.
drupal.org/projects/frontpage вроде не подходит.

Вообще — ознакомиться с мнением Артемия Татьяныча насчет входных страниц Wink
На уровне друпала считаю что входная=главная. Без НО.

+1 бредовая идея — поиграть с base path или прописать ручками ссылку у картинки...

Аватар пользователя dosch dosch 6 февраля 2009 в 5:02

Спасибо!

.html-файл - это, безусловно, идея: дешево и сердито. Тем более что front действительно не походит.

Что же до Артемия Татьяныча, я с ним согласен: да, обычно, заставки - это плохо Wink

Последний же предложенный вами вариант (с прописыванием ссылки у logo.png) возник в моем воспаленном сознании сразу после того как передо мной возникла обсуждаемая проблема. Но я только начинаю разбираться в устройстве друпала, и, после серии (за некоторым исключением, неудачных) попыток стараюсь не запускать руки дальше папки с собственной сабтемой. Подозреваю, что нужно поменять что-то в одном из файлов .inc. Только вот где и что именно? Будьте любезны, подскажите пожалуйста.

Аватар пользователя iT iT 6 февраля 2009 в 5:33

В тему: идём именно в тему, правим page.tpl.php
У меня вот такой кусок есть:

...     <?php print $scripts ?>
        </head>

<body>
<div id="all">
        <div id="header">

                <?php if (isset($primary_links)) : ?>
                        <?php print theme('links', $primary_links, array('id' => 'nav-top')) ?>
                <?php endif; ?>

                <div class="logo">
                        <a class="no" href="http://site.ru" title="site.ru | на глагне"><img src="/<?php
if ($node->path == 'about' && !(strstr($node->path,'about')===FALSE)) {print 'i/logo-2.gif';}
elseif ($node->path == 'clubs' && !(strstr($node->path,'clubs')===FALSE)) {print 'i/logo-3.gif';}
elseif ($node->path == 'docs' && !(strstr($node->path,'docs')===FALSE)) {print 'i/logo-4.gif';}
elseif ($node->path == 'events' && !(strstr($node->path,'events')===FALSE)) {print 'i/logo-5.gif';}
elseif ($node->path == 'partners' && !(strstr($node->path,'partners')===FALSE)) {print 'i/logo-6.gif';}
elseif ($node->path == 'oldnews' && !(strstr($node->path,'oldnews')===FALSE)) {print 'i/logo-1.gif';}
else {print 'i/logo-1.gif';} ?>
" width="599px" height="163px" alt="глагне рулит" /></a>
                </div>
                <div class="mission">...

Кстати, этот пример показывает как менять картинку в зависимости от раздела сайта. Мой путь, у кого есть поэффективнее — намекните Wink

Аватар пользователя dosch dosch 6 февраля 2009 в 16:49

Если бы у меня было все как у вас, думаю, тут вообще проблем бы не возникло Smile

У меня же все иначе:

<?php if ($site_logo || $site_name || $site_slogan): ?>
    <div id="branding">
        <?php?>
<?php if (!empty($site_logo)): ?>
        <div id="logo"><?php print $site_logo; ?></div>
        <?php endif; ?>

Я тут, правда, подумал, что мою проблему можно как-то решить через препрогресс и даже нашел кое-что:

<?php
function YOURTHEMENAME_theme_preprocess_page(&$variables) {
  if (request_uri() == '/') {
    $variables['template_files'][] = 'splash-screen';
  }
}
?>

Впрочем, как это использовать я толком не представляю - только начинаю вникать в друпал Sad

Аватар пользователя dosch dosch 7 февраля 2009 в 3:14

Большое спасибо iT, который предложил несколько хороших решений, но я применил свое. Его суть заключается в правке template.php. Этот блок оттуда кастомизировать совсем несложно:

                if ($vars['logo']) {
                  $vars['site_logo'] =
                                  '<a href="'. $vars['front_page'] .'" title="'. t('Home'). '" rel="home">
                                                  <img src="'
. $vars['logo'] .'" alt="'. t('Home') .'" />
                                                </a>'
;
                }

Достаточно лишь подставить вместо 'front_page' и 'Home' нужные параметры.
Схожие задачи решаются по аналогии.