Вот поток форума , который предоставляет изображение C#, изменяющее размеры примера кода. Вы могли использовать один из библиотека GD редакторы связей, чтобы сделать передискретизацию в C#.
Я повторю Джастина, чтобы он оставался частью отдельных контроллеров.
Вы должны настроить какую-то систему авторизации, которую могут использовать отдельные контроллеры, чтобы определить, кто вошел в систему (имя пользователя) и какой у них доступ (admin / member / etc). Вот поток SO по классам аутентификации CodeIgniter .
Затем в представлении будут условно отображаться соответствующие ссылки, и контроллер будет применять политику, проверяя аутентификацию перед передачей каких-либо данных в модель или рендерингом редактирования Посмотреть. При неавторизованном доступе ошибка может быть отображена или просто отображена в представлении без редактирования.
Этот подход кажется наиболее разумным (по крайней мере, для меня), поскольку все функциональные возможности хранятся в отдельном контроллере. Сохранение функций администратора в одном контроллере администратора означает, что вы: Мне придется управлять двумя контроллерами (администратором и фактическим контроллером) каждый раз, когда вы добавляете что-то новое (или удаляете что-то).
Если вас беспокоит включение проверки аутентификации в каждый контроллер, вы можете создать общий класс контроллера со всеми настройками аутентификации, а затем попросить ваши контроллеры расширить его. В конце концов, проверка авторизации отдельного контроллера может быть такой же простой, как:
function edit()
{
if(!$this->auth()){
//display auth error, or forward to view page
}
}
Конечно, какая-то реализация ACL могла бы сделать это лучше, но я не верю, что CodeIgniter имеет «официальный» ACL.
Идея 2 лучше. system / application / controllers / admin
Здесь вы храните все свои административные контроллеры.
Похоже, личный выбор, я Мне нравится, когда все централизовано, поэтому я могу сделать ставку на контроллер администратора.
Таким образом, мне не пришлось бы открывать 5 разных контроллеров при изменении задач администратора.
Рекомендуется иметь папку администратора в папке контроллеров, к которой вы можете получить доступ ваше администрирование, например yoursite.com/admin/users.
Все ваши административные потребности будут там, и все методы будут защищены путем проверки прав пользователя следующим образом:
if ( ! $this->auth->logged_in(array('login', 'admin')))
{
$this->session->set_flashdata('message', 'You do not have access to view this page');
redirect('admin/users/login');
}
Тогда все контроллеры вне папки 'admin' будут - в зависимости от ваш тип сайта - будет только для просмотра и т.д .. без административных частей.
Определенно другой контроллер по крайней мере!
Раньше я думал, что могу сохранить все свои административные функции в одном контроллере, но по мере роста моих программ я понял, что требовалось несколько контроллеров в моем разделе администрирования.
Итак, я создал папку внутри моей папки контроллеров с именем «admin» и поместил туда все мои административные контроллеры. Мои папки будут выглядеть примерно так:
Однако одна проблема возникает, когда вы вводите http://mysite.com/admin в свой браузер, он возвращает страницу 404. Итак, перейдите в свой файл «application / config / routes.php» и добавьте собственный маршрут:
$routes['admin'] = 'admin/dashboard/index';
В зависимости от того, что вы подразумеваете под функциональностью «Администратор» ... обычно это вид «Редактировать».
И обычно вы используете существующий контроллер для обслуживания Режим редактирования, позволяющий авторизованным пользователям вносить изменения (в вашем случае только пользователи с правами администратора).