drupal 7 AT тема/Corolla/Footheme ссылка на изменение логотипа

Я использую Adaptive Theme и подтемы Corolla и Foo. Мне нужна ссылка на мой логотип, которая обычно ведет на домашнюю страницу сайта, чтобы перейти на другой URL-адрес. Я просмотрел шаблоны (template.php и page.tpl.php) в каталогах тем Corolla и Adaptive, и все, что я могу найти, это этот код:

<?php if ($site_logo): ?>
            <div id="logo">
              <?php print $site_logo; ?>
            </div>
          <?php endif; ?>

Но я ожидал найти что-то с <front> в нем. Я попытался обернуть:

<?php print $site_logo; ?> with a link, but to no avail. 

Я также пытался убрать $site_logo после слова «печать», но тоже безрезультатно. Итак, что я могу сделать, чтобы добиться этого?

J


person james    schedule 26.08.2013    source источник


Ответы (3)


Коды, которые вы ищете, находятся в function adaptivetheme_preprocess_page(&$vars) строке 119 файла ../themes/adapthivetheme/at_core/inc/preprocess.inc.

Поэтому вам следует переопределить переменную $site_logo в аналогичной функции template.php вашей темы.

person TheodorosPloumis    schedule 26.08.2013
comment
Я изменил файл, который вы упомянули (как показано ниже). Кажется, это работает нормально. Но я предполагаю, что мне следует редактировать не включаемый файл, а только template.php. код, на который вы ссылались (с моими изменениями в нем): // Настройка элемента логотипа ... $vars['site_logo'] = $vars['logo_img'] ? l($vars['logo_img'], 'mydomain.com', array('attributes' =› array(' title' => t('Домашняя страница')), 'html' => TRUE)) : ''; } Тогда мне просто скопировать приведенный выше код в template.php? Большое спасибо. Дж - person james; 27.08.2013
comment
Да, ты прав. Вы никогда не должны редактировать базовую тему. Итак, скопируйте функцию в шаблон template.php вашей темы и измените ее следующим образом MYTHEME_preprocess_page(&$vars)... Если ответ решил вашу проблему, вы можете выбрать его как приемлемый и проголосовать за него. - person TheodorosPloumis; 28.08.2013

Немного больше подробностей, основанных на ответе от TheodorosPloumis. В итоге я получил такую ​​​​функцию в моем template.php. Обратите внимание, что вам нужно изменить «MYTHEME_» в вызове drupal_static, а также в имени основной функции.

<?php
function MYTHEME_preprocess_page(&$vars) {
  // Set up logo element
  if (at_get_setting('toggle_logo', $theme_name) === 1) {
    $vars['site_logo'] = &drupal_static('MYTHEME__preprocess_page_site_logo');
    if (empty($vars['site_logo'])) {
      $logo_image_alt = check_plain(variable_get('site_name', t('Home page')));
      $logo_link = variable_get('logo_link', '<front>');
      if (at_get_setting('logo_title') == 1) {
        $vars['site_logo'] = $vars['logo_img'] ? l($vars['logo_img'], $logo_link, array('attributes' => array('title' => $logo_image_alt), 'html' => TRUE)) : '';
      }
      else {
        $vars['site_logo'] = $vars['logo_img'] ? l($vars['logo_img'], $logo_link, array('html' => TRUE)) : '';
      }
    }
    // Maintain backwards compatibility with 7.x-2.x sub-themes
    $vars['linked_site_logo'] = $vars['site_logo'];
  }
}
person AdamS    schedule 11.02.2015

Я попробую это. Хорошо, что вы добавили функцию обратной совместимости. Дж

person james    schedule 11.02.2015