Простой ответ - если вы поместите mytheme-forum-list.tpl.php (где mytheme - название вашей темы) и настроите его, drupal должен его забрать (сначала очистите кеш).
Эта строка в template_preprocess_forum вызывает функцию темы Drupal
$variables['forums'] = theme('forum_list',
$variables['forums'],
$variables['parents'],
$variables['tid']);
Это будет ссылаться на строку в forum_theme ()
'forum_list' => array(
'template' => 'forum-list',
'arguments' => array('forums' => NULL, 'parents' => NULL, 'tid' => NULL),
),
Что говорит шаблонному движку искать forum-list.php и предоставляет аргументы.
Если вы установили модуль devel и включили модуль разработчика темы. Это покажет вам все возможные шаблоны и функции, которые Drupal будет искать при рендеринге контента.
В общем (но с конкретными исключениями) Drupal ищет шаблон наилучшего соответствия и возвращается к предопределенным функциям.
если нет ничего подходящего. Посмотрите руководство по теме и, в частности, раздел по Переопределение выводимого значения . Также вы можете найти hook_theme , представляющий интерес.