隐藏侧边栏上的内容,具体取决于页面

时间:2013-09-10 16:56:21

标签: php html css show-hide sidebar

我有一个网站,其中包含以下设置:

overview.php hotel1.php hotel2.php hotel3.php

其中概述有一个侧栏,其中包含指向酒店1,2和3的链接,每个酒店页面都有一个侧栏,其中包含指向其他两家酒店(不包括其自身)的链接以及概述页面。

在那一刻,我很难对每个php页面中的侧边栏进行编码,因为它们都略有不同。

我想知道是否有一种方法可以在单独的文件(sidebar.php)中编写一个侧边栏,其中包含指向四个页面中每个页面的链接,并添加带有php include()函数的侧边栏。

然后,根据页面(将具有标识符),显示除自身链接之外的所有链接。

问题是,我不知道该怎么做,或者是否可以做到。

网站是php和html(使用css和javascript)。

如果它是相关的,我有大约100个包含概述的文件夹,然后是我想要实现的多个酒店。

1 个答案:

答案 0 :(得分:2)

最简单的方法是将侧边栏代码包装在一个函数中。

的sidebar.php

<?php
    function print_all_sidebar_links_except_self($self = NULL){
        $hotels_text = array(
            "hotel1" => "Gryffindor Tower",
            "hotel2" => "Ravenclaw Tower",
            "hotel3" => "Slytherin Dungeons"
        );

        if (isset($self)){
            unset($hotels_text[$self]);
        }

        foreach ($hotels_text as $page => $name){
            echo "<a href='".$page.".php'>".$name."</a>";
        }
    }
?>
  • overview.php:print_all_sidebar_links_except_self();
  • hotel1.php:print_all_sidebar_links_except_self('hotel1');
  • hotel2.php:print_all_sidebar_links_except_self('hotel2');
  • hotel3.php:print_all_sidebar_links_except_self('hotel3');