Статьи по теме: template.php

Заменить ссылку модуля flag на изображение

1. Скопировать файл flag.tpl.php в каталог с темой
2. В template.php добавить функцию:

<?php
function phptemplate_preprocess_flag(&$vars) {
 
$image_file = path_to_theme() . '/images/flag-' . $vars['flag']->name . '-' . ($vars['action'] == 'flag' ? 'off' : 'on') . '.png';
// Раскомментировать при тестировании
// drupal_set_message("Поиск изображения '$image_file'...");
   
$vars['link_text'] = '<img src="' . base_path() . $image_file . '" />';
}
?>

3. В каталог images вашей темы заливаем изображения flag-[имя_флага]-off.png и flag-[имя_флага]-on.png, думаю какой файл для чего понятно )
4. Обновляем кэш.

Пример

Загружать дефолтовые CSS стили только админу

Drupal грузит свои стили всегда, даже если они не нужны, я добавляю этот код в template.php и стили грузятся только для меня.

<?php
function имя_темы_preprocess_page(&$vars) {
$css = $vars['css'];
global
$user;
if (
$user->uid != 1){
unset(
$css['all']['module']['modules/system/system.css']);
unset(
$css['all']['module']['modules/system/defaults.css']);
unset(
$css['all']['module']['modules/system/admin.css']);
unset(
$css['all']['module']['modules/system/system-menus.css']);
unset(
$css['all']['module']['modules/system/node.css']);
unset(
$css['all']['module']['modules/system/user.css']);
}
$vars['styles'] = drupal_get_css($css);
}
?>

Заполняем keywords терминами таксономии

Для добавления в meta name='keywords' терминов таксономии относящихся к каждой конкретной ноде нужно добавить в файл teplate.php следующий код:

<?php
function my_theme_preprocess_page(&$variables) {
  if (
is_object($vars['node']) && is_array($vars['node']->taxonomy)) {
   
$tags = array();
    foreach (
$vars['node']->taxonomy as $tid => $term) {
      if (!
in_array($term->name, $tags)) $tags[] = $term->name;
    }

    if (
count($tags)) {
     
sort($tags);
     
$vars['head'] .= "<meta name='keywords' content='" . implode(",", $tags) . "'>\r\n";
    }
  }
}
?>

Изменение заголовка на страницах таксономии

При переходе на страницу термина таксономии мы видим в качестве заголовка страницы сам термин, так его можно изменить:

<?php
function my_theme_preprocess_page(&$variables) {
  if (
arg(0)=='taxonomy' && arg(1)=='term') {
   
$vars['title'] = "Статьи по теме: " . $vars['title'];
  }
}
?>

Ищейка