Я хочу показывать ссылки добавления / редактирования / удаления на странице, но только если я вошел в систему как администратор.Я также хочу кэшировать страницу.Кэширование 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>
Если я захожу на страницу и захожу в систему как администратор, я получаю оповещение и не получаю оповещения, если я не вошел в систему как администратор.Так что теперь я могу добавить скрипт добавления / редактирования / удаления ссылок, только если я вошел в систему.