【问题标题】:Codeigniter Repetitive TemplatesCodeigniter 重复模板
【发布时间】:2017-05-02 22:09:07
【问题描述】:

我是 CodeIgniter 的新手,我正在尝试将模板与我的视图集成。对于每个视图,我都希望有一个模板的页眉、主要内容和页脚。但是,我每个页面的标题都不同,因为它们的 css 也不同。我有脚本的页脚也有不同的代码。我需要为每个页面创建单独的页眉和页脚吗?这是一个例子。

Adticket_footer.php

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="js/bootstrap.min.js">
        $('#myModal').modal() // initialized with defaults
    </script>

    <!-- Menu Toggle Script -->
    <script>
        $("#menu-toggle").click(function (e) {
            e.preventDefault();
            $("#wrapper").toggleClass("toggled");
        });
    </script>
  </body>
</html>

login_footer.php

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

【问题讨论】:

  • 您想创建一个相同的页脚文件,其中多个页脚的代码取决于页面?
  • 我真的不知道该怎么做,因为例如标题,它们链接到不同的 css 文件,将它们放在一起会导致 css 设计冲突
  • 不同的标题会有不同的 css 文件,对吧?
  • 是的,有没有比我上面的方法更好的方法来处理这些页眉和页脚,即为不同的页面设置不同的页眉和页脚?

标签: php html css codeigniter


【解决方案1】:

我通常会有一个页眉和一个页脚。例如,对于额外的 css,您可以简单地为您的标题设置一个额外的项目以包含。

在你的控制器中

$header_data['additional_css'] = array('custom_css_1.css', 'custom_css_2.css');

$this->load->view('header_view', $header_data);

在您看来,您可以添加它们:

<?php if(!empty($additional_css)) { ?>
   <?php foreach ($additional_css as $file_name) { ?>
       <link rel="stylesheet" href="<?php echo base_url('assets/css/'.$file_name); ?>">
   <?php } ?>
<?php } ?>

我为 css 文件创建了一个数组,而不是像通常需要添加多个变量那样传递单个变量。如果您没有在控制器中设置任何内容,则不会添加任何内容。 (我在这里假设它是一个数组,但从技术上讲,您也应该检查它是否也是一个数组。)

你可以在你的页脚中做同样的事情,允许你添加 js 文件或 js.我通常会有四个附加文件,一个用于 css 文件,一个用于内联 css,一个用于 js 文件,一个用于内联 js。对于内联 js 或 css,您可以只使用要显示的内容的变量而不是数组。

如果您使用 smarty 或其他模板系统,当然还有其他解决方案(它们很容易集成到 CI 中,并且库可用),但我发现使用这些额外的数组简单、快速且非常灵活。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多