Drupal 7 drupal 7 AT主题/花冠/鞋底变更徽标链接

Drupal 7 drupal 7 AT主题/花冠/鞋底变更徽标链接,drupal-7,drupal-themes,Drupal 7,Drupal Themes,我使用的是自适应主题以及花冠和Foo子主题。我需要我的标志链接,通常会去到该网站的主页去到另一个网址一起。我查看了Corolla和Adaptive主题目录中的模板(template.php和page.tpl.php),我只找到以下代码: <?php if ($site_logo): ?> <div id="logo"> <?php print $site_logo; ?> </d

我使用的是自适应主题以及花冠和Foo子主题。我需要我的标志链接,通常会去到该网站的主页去到另一个网址一起。我查看了Corolla和Adaptive主题目录中的模板(template.php和page.tpl.php),我只找到以下代码:

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

但我希望能在里面找到
的东西。我试过包装:

<?php print $site_logo; ?> with a link, but to no avail. 
带有链接,但无效。
我还试着在“print”一词后去掉
$site\u logo
,但也没用。那么我能做些什么来实现这一点呢


J

您正在查找的代码位于
函数自适应主题预处理页面(&$vars)
第119行的../themes/adaptihivetheme/核心/inc/preprocess.inc文件中


因此,您应该覆盖theme template.php类似函数中的$site_logo变量。

在TheodorosPloumis的答案的基础上再详细一点。在我的template.php中,我最终得到了这样一个函数。请注意,您需要更改drupal_static调用中的“MYTHEME_”以及主函数名

<?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'];
  }
}

我试试看。很高兴您添加了向后兼容功能。
J

我更改了您提到的文件(如下所示)。这似乎可以正常工作。但是我猜我不应该编辑include文件,而应该编辑template.php。您引用的代码(其中包含我的更改)是://Set logo element$vars['site\u logo']=$vars['logo\u img']?l($vars['logo\u img'],'',数组('attributes'=>array('title'=>t('Home page'),'html'=>TRUE)):'';}那么,我是否要将上述代码复制到template.php中呢?多谢。是的,你是对的。永远不要编辑基本主题。因此,将该函数复制到theme template.php中,并将其更改为如下
myteme\u预处理页面(&$vars)
。。。如果答案解决了你的问题,你可以选择它作为可接受的,并投票表决。