我可以在CodeIgniter 2中使用动态JavaScript添加管理员链接吗?

时间:2011-02-09 03:27:32

标签: javascript codeigniter dynamic admin hyperlink

我想缓存大部分控制器的输出,但有些页面需要有链接,所以我可以添加和编辑信息。如果我设置一个“js”控制器并将“global.js”路由到“js”控制器的“全局”方法,我不能使用PHP动态添加一些JavaScript到“global.js”只有我'我以管理员身份登录?如果访问者不是管理员,是否有更好的方法来仅缓存页面?

1 个答案:

答案 0 :(得分:0)

我想在页面上显示添加/编辑/删除链接,但前提是我以管理员身份登录。我也想缓存页面。 CodeIgniter的缓存不支持条件缓存,因此我需要一种解决方法来动态插入链接。我正在使用PHP来动态编写JavaScript,因此我可以使用jQuery来插入链接。

1)我在/config/routes.php中设置了这个:

$route['js/global.js'] = 'js/global_scripts'; // function can't be called "global" since it's a PHP keyword

2)然后我在我的js控制器中有这个功能:

public function global_scripts() {
    $this->output->set_header("content-type: application/x-javascript")
    $this->load->view('js/global'); // see below
} // global_scripts

3)这是js / global视图:

$(document).ready(function(){
    <?php if($this->is_admin == TRUE): ?> // from my auth + MY_Controller
    alert("you're an admin"); // or whatever JS I want
    <?php endif; ?>
});

在我的视图文件中,我有一个常规的JavaScript链接:

<script src="/js/global.js"></script>

如果我访问该页面并以管理员身份登录,则会收到提醒,如果我没有以管理员身份登录,则不会收到提醒。所以现在我只能在登录时才能让脚本插入添加/编辑/删除链接。