2015-03-31 103 views
0

我正在为drupal 7中的站点地图编写自定义模块。我所做的是以下。站点自定义模块

function escorts_sitemap_render_menu ($menu) 
    { 
    $output = "<ul>"; 
    foreach ($menu as $item) 
    { 
    $link = $item["link"]; 
    if ($link["hidden"]) 
    { 
    continue; 
    } 
    $output .= "<li><a href=\"" . check_url(url($link["href"], $link["options"])) . "\">" . $link["title"] . "</a></li>"; 
    if ($item["below"]) 
    { 
    $output .= sitemap_render_menu($item["below"]); 
    } 
    } 
    $output .= "</ul>"; 
    return $output; 
    } 
function escorts_sitemap_content() 
    { 
    $output = "<h1>Escorts Sitemap</h1>"; 
    $output .= "<ul class=\"site_map_list\">"; 
    $output .= sitemap_render_menu(menu_tree_all_data("main-menu")); 
    return $output; 
    } 
function escorts_sitemap_menu() 
    { 
    $items = array(); 
    $items["sitemap"] = array (
    "title" => "Escorts Sitemap", 
    "page callback" => "escorts_sitemap_content", 
    "access arguments" => array("access content"), 
    "type" => MENU_CALLBACK); 
    return $items; 
    } 

然后在我的template.php实施hook_theme过,下面是代码:

function escorts_theme() { 
return array(
'escorts_sitemap_content' => array(
    'render element' => 'content', 
    'template' => 'page--sitemap', 
    'path' => drupal_get_path('theme', 'escorts') . '/templates' 
), 
); 
} 

但它没有出现,因为我有我的自定义模板文件page--sitemap.tpl.php,任何一个可以请指导我。但是现在我应该怎么写page--sitemap.tpl.php为了使我的网站地图

回答

0

也许你应该下一个尝试:

function escorts_theme() { 
    return array(
     'escorts_sitemap_content' => array(
     'variables' => array('content' => NULL) 
     /** 
      * I would not call template like this, cause it looks like 
      * pattern page--[node-type] 
      */ 
     'template' => 'page--sitemap', 
    ) 
    ); 
    } 

和菜单回调函数

function escorts_sitemap_content() { 
    $output = "<h1>Escorts Sitemap</h1>"; 
    $output .= "<ul class=\"site_map_list\">"; 
    $output .= sitemap_render_menu(menu_tree_all_data("main-menu")); 
    return theme('escorts_sitemap_content', $output); 
} 

里面这是一种方式。另外看看预处理函数和Drupal主题层。也许就绪模块XML站点地图将是有用的。另外要小心,如果文件真的在那里。

而且在模板文件只贴上

<?php print $content; ?> 

问候