Codeigniter重复模板

时间:2016-12-17 05:55:19

标签: php html css codeigniter

我是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>

       

Files

1 个答案:

答案 0 :(得分:0)

我通常会有一个页眉和一个页脚。例如,对于其他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中,并且库可用),还有其他解决方案,但我发现使用这些附加阵列简单,快速且非常灵活。