Контроллер настройки

Начнем создание контроллера настройки с создания таблицы в cm_nastr. Обратимся кописанию функционала нашей CMS.
В настройках нам необходимо указывать количество фотографий и количество новостей на странице.
Создадим таблицу cm_nastr.
DROP TABLE IF EXISTS `cm_nastr`;
CREATE TABLE `cm_nastr` (
  `id` INT(2) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) DEFAULT NULL,
  `value` VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
 
-- ----------------------------
-- Records of cm_nastr
-- ----------------------------
INSERT INTO `cm_nastr` VALUES ('1', 'Количество новостей', '5');
INSERT INTO `cm_nastr` VALUES ('2', 'Количество фотографи', '5');

Создадим модель mdl_nastr

<?php
/**
 * @author allexe
 * @copyright 2010
 * 26.8.2010
 * Описание файла: Модель для работы с таблицей новостей
 */
if (!defined('BASEPATH')) exit('No direct script access allowed');
 
class mdl_nastr extends CRUD
{
    var $table = 'nastr'; //Имя таблицы
    var $idkey = 'id';
 
    var $edit_rules = array(array('field' => 'name', 'label' => 'Имя настройки',
        'rules' => 'required|max_length[255]'), array('field' => 'value', 'label' =>
        'Значение настройки', 'rules' => 'required'));                      
}
?>

В правилах валидации мы описываем только правила для редактирования. Ручное добавление настроек мы не делаем.
Создадим файлы видов admin/nastr_list (вывод списка настроек), admin/nastr (редактирование настройки).
Файл admin/nastr_list

<h2>Список настроек</h2>
<table border="0" width="400" cellspacing="4">
<tr><td>Имя настройки</td><td>Значение</td></tr>
<?php foreach($list as $one):?>
<tr><td><?=$one['name'];?></td><td><?=anchor(base_url().'admin/nastr/edit/'.$one['id'],$one['value']);?></td></tr>
<?endforeach;?>
</table>

Файл вида admin/nastr

<?=$validation_errors;?>
<?=form_open ('admin/nastr/edit/'.$one['id']); ?>
<table border="0" width="400" cellspacing="4">
<tr>
<td>Имя настройки</td><td><input name="name" value="<?=set_value ('namr',$one['name'])?>"></td>
</tr>
<tr>
<td>Значение</td><td><input name="value" value="<?=set_value ('value',$one['value'])?>"></td>
</tr>
<tr>
<tr>
<td align="left">
	<input type="submit" value="Изменить">
</td>
<td></td>
</tr>
</table>
</form>

Создание котнроллера admin/nastr

<?php
 
/**
 * @author allexe
 * @copyright 2010
 * 26.8.2010
 * Описание файла: Контроллер Настройки
 */
if (!defined('BASEPATH'))
    exit('No direct script access allowed');
 
class nastr extends Controller
{
 
    function nastr()
    {
        parent::Controller();
        if (!($this->userlib->logged_in())) {
            redirect(base_url() . 'users/login/');
        }
    }
 
	/**
	 * Список настроек
	 */
    function index()
    {
        $header_data['page_title'] = 'Раздел настройки';
        $this->load->view('admin/header.php', $header_data);
        $this->load->model('mdl_nastr');
        $data['list'] = $this->mdl_nastr->getlist();
        $this->load->view('admin/nastr_list.php', $data);
        $this->load->view('admin/footer.php');
    }
 
    /**
     * Редактирование новости
     */
    function edit($id)
    {    	
        $CI = &get_instance();
        $CI->load->model('mdl_nastr'); //Загрузка модели
        if ($CI->mdl_nastr->edit($id) !== false) {
            //Делаем редирект на список настроек
            redirect('admin/nastr');
        } else {
            //Выводим форму добавления
            $header_data['page_title'] = 'Редактирование настройки';
            $this->load->view('admin/header.php', $header_data);
            //Теперь готовим вывод серединки
            $data = array();
            $data['validation_errors'] = validation_errors();            
            $CI->load->model('mdl_nastr');
            $data['one'] = $CI->mdl_nastr->get($id);
            $this->load->view('admin/nastr', $data);
            //Здесь вывод футера
            $this->load->view('admin/footer.php');
        }
    }    
 
}
?>
Теги:
Контроллер
Добавлено: 16 Апреля 2018 07:09:42 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...