<?php 
 
class posts extends A_Controller_Action { 
 
    /* 
     * This function is called only if it exists. Front Controller pre-filter  
     * calls it to get required groups for this controller 
     */ 
    public function _requireGroups(){ 
        return array('post'); 
    } 
     
    function index($locator) {  
        $template = $this->_load()->template(); 
         
        $this->listing($locator); 
    } 
 
    function listing($locator) { 
        $usersession = $locator->get('UserSession'); 
        $db = $locator->get('Db'); 
         
        $template = $this->_load('controller')->template('listing'); 
         
        // create a data object that has the interface needed by the Pager object 
        $datasource = new A_Pagination_Adapter_Db($db, "SELECT * FROM `blog_posts` WHERE post_type='post'"); 
          
        // create a request processor to set pager from GET parameters 
        $pager = new A_Pagination_Request($datasource); 
          
        // initialize using values from $_GET 
        $pager->process($locator->get('Request')); 
          
        // create a "standard" view object to create pagination links 
        $view = new A_Pagination_View_Standard($pager); 
          
        $rows = $pager->getItems(); 
 
        $template->set('rows', $rows); 
        $template->set('links', $view->render());        // display the pagination links 
         
        $this->response->set('maincontent', $template->render()); 
 
    } 
 
    function edit($locator) {  
        $template = $this->_load('controller')->template(); 
        $posts = $this->_load('app')->model('posts', $locator->get('Db')); 
         
        $form = new A_Model_Form(); 
        // Hand the Form the fields and rules from the model 
        $form->addRule($posts->getRules());  
        $form->addField($posts->getFields());      
         
        // Get list of users to create authorlist in form 
        $users = $this->_load('app')->model('users', $locator->get('Db')); 
        $authorlist = $users->findAuthorlist()->toArray();         
        $form->newField('authorlist'); 
        $form->set('authorlist',$authorlist); 
         
        // ask the form if it is valid. The form checks internally if the model fields are valid 
        if($form->isValid($this->request)){  
            // save 
            $result = $posts->save($form->getSaveValues());     
            if($result->isError()){ 
                $form->setErrorMsg('databaseerror', 'Could not save to the database'); 
            } 
 
        } elseif (! $this->_request()->has('save') && $this->_request()->has('id')) { 
            $id = $this->_request()->get('id'); 
            // load data 
            $rows = $posts->find($id); 
            if (isset($rows[0])) { 
                foreach ($rows[0] as $name => $value) { 
                    $form->newField($name)->setValue($value); 
                } 
            } 
        } 
        $template->set('errorMsg', $form->getErrorMsg(', ')); 
        $template->import($form->getValues()); 
         
        $this->response->set('maincontent', $template->render()); 
 
    } 
 
/* 
id 
post_date 
permalink 
title 
excerpt 
content 
comments_allowed 
post_type 
users_id 
active 
*/ 
}
 
 |