Я еще не проверял это, но это должно дать вам хорошее начало. То, что вы просите, - это совсем немного работы, чтобы быстро полностью закодировать.
Это модель page_model, это, по сути, то, что вы опубликовали с несколькими незначительными изменениями. Лучше всего использовать идентификаторы, а не строки. Вы также можете выполнить некоторые проверки htmlspecialchars или mysql hijack перед передачей их в свою БД.
<?php
/**
* This is the Page_model model, this model handles the retrieval and modification of all pages.
*
**/
class Page_model extends CI_Model {
/**
* the getCMSPage function retrieves the data from the db given the ID that was passed via $id.
**/
function getCMSPage($id = NULL) {
$this->db->where('permalink', $permalink);
$query = $this->db->get('pages', 1);
#check to make sure row's were returned, if so continue, otherwise return false.
if ($query->num_rows() > 0){
#set the results into an array and return $row, should return $row['content'], and $row['id'];
#if you were editing more than one page this is where you would use a foreach($query)
$row = $query->result_array();
return $row;
}else{
return false;
}// END if ($query->num_rows() > 0)
}// END function getCMSPage()
}// END Page_model class
?>
Это контроллер сайта, и ради времени я просто добавил вашу форму form_textarea прямо из функции редактирования ... вы не должны делать это, поскольку это идет вразрез со стандартами MVC. Вы должны создать представление для этой части раздела.
<?php
/**
* This is the Site controller, primary controller for your site.
*
**/
class Site extends CI_Controller {
/**
* construct function, in our case we are going to load the Posts_model , you may not want to do this.
*
**/
function __construct()
{
parent::__construct();
#load Page_model, should be located in app/models/page_model.php
$this->load->model('Page_model');
}//END function __construct();
/**
* edit function, this function handles retrieval of the page from the URI, and the page's content for editing.
*
* This function uses $id which auto retrieves the page's ID from the uri. Your URL should look similiar to:
* http://yourdomain.com/site/edit/3/yourunecessaryinformationhere
* everything after the id is not really required but could help with SEO.
*
**/
function edit($id){
#retrieve the page's content in array form.
$page = $this->Page_model->getCMSPage($id);
echo form_textarea("content", $page['content']);
}
}//END Site Class
Имейте в виду, что я написал это за 5-10 минут, так что это спешно и не очень хорошо прокомментировано или даже проверено, но это даст вам отличный старт. Это только дает вам пример того, как извлечь информацию из БД и отобразить ее в текстовой области. Вам все равно потребуется создать еще одну функцию в вашей page_model для вставки / обновления информации и другой фрагмент кода в вашем контроллере для передачи отредактированного содержимого в модель.
Вы можете связаться со мной по AIM или в твиттере, если у вас есть дополнительные вопросы. ThirdGenSup, твиттер @ gorelative