My Application Class Reference

PostController

Inheritance class PostController » Controller » CController » CBaseController » CComponent
Source Code app/controllers/PostController.php

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
action CAction the action currently being executed, null if no active action. CController
actionParams array Returns the request parameters that will be used for action parameter binding. CController
cachingStack CStack stack of COutputCache objects CController
clips CMap Returns the list of clips. CController
defaultAction string the name of the default action. CController
id string ID of the controller CController
layout PostController
module CWebModule the module that this controller belongs to. CController
pageTitle string the page title. CController
route string the route (module ID, controller ID and action ID) of the current request. CController
uniqueId string the controller ID that is prefixed with the module ID (if any). CController
viewPath string Returns the directory containing view files for this controller. CController

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. CComponent
__construct() CController
__get() Returns a property value, an event handler list or a behavior based on its name. CComponent
__isset() Checks if a property value is null. CComponent
__set() Sets value of a component property. CComponent
__unset() Sets a component property to be null. CComponent
accessRules() Specifies the access control rules. PostController
actionAdmin() Manages all models. PostController
actionCreate() Creates a new model. PostController
actionDelete() Deletes a particular model. PostController
actionIndex() Lists all models. PostController
actionSuggestTags() Suggests tags based on the current user input. PostController
actionUpdate() Updates a particular model. PostController
actionView() Displays a particular model. PostController
actions() Returns a list of external action classes. CController
asa() Returns the named behavior object. CComponent
attachBehavior() Attaches a behavior to this component. CComponent
attachBehaviors() Attaches a list of behaviors to the component. CComponent
attachEventHandler() Attaches an event handler to an event. CComponent
beginCache() Begins fragment caching. CBaseController
beginClip() Begins recording a clip. CBaseController
beginContent() Begins the rendering of content that is to be decorated by the specified view. CBaseController
beginWidget() Creates a widget and executes it. CBaseController
behaviors() Returns a list of behaviors that this controller should behave as. CController
canGetProperty() Determines whether a property can be read. CComponent
canSetProperty() Determines whether a property can be set. CComponent
clearPageStates() Removes all page states. CController
createAbsoluteUrl() Creates an absolute URL for the specified action defined in this controller. CController
createAction() Creates the action instance based on the action name. CController
createUrl() Creates a relative URL for the specified action defined in this controller. CController
createWidget() Creates a widget and initializes it. CBaseController
detachBehavior() Detaches a behavior from the component. CComponent
detachBehaviors() Detaches all behaviors from the component. CComponent
detachEventHandler() Detaches an existing event handler. CComponent
disableBehavior() Disables an attached behavior. CComponent
disableBehaviors() Disables all behaviors attached to this component. CComponent
enableBehavior() Enables an attached behavior. CComponent
enableBehaviors() Enables all behaviors attached to this component. CComponent
endCache() Ends fragment caching. CBaseController
endClip() Ends recording a clip. CBaseController
endContent() Ends the rendering of content. CBaseController
endWidget() Ends the execution of the named widget. CBaseController
evaluateExpression() Evaluates a PHP expression or callback under the context of this component. CComponent
filterAccessControl() The filter method for 'accessControl' filter. CController
filterAjaxOnly() The filter method for 'ajaxOnly' filter. CController
filterPostOnly() The filter method for 'postOnly' filter. CController
filters() PostController
forward() Processes the request using another controller action. CController
getAction() Returns the action currently being executed, null if no active action. CController
getActionParams() Returns the request parameters that will be used for action parameter binding. CController
getCachingStack() Returns stack of COutputCache objects CController
getClips() Returns the list of clips. CController
getEventHandlers() Returns the list of attached event handlers for an event. CComponent
getId() Returns ID of the controller CController
getLayoutFile() Looks for the layout view script based on the layout name. CController
getModule() Returns the module that this controller belongs to. It returns null if the controller does not belong to any module CController
getPageState() Returns a persistent page state value. CController
getPageTitle() Returns the page title. Defaults to the controller name and the action name. CController
getRoute() Returns the route (module ID, controller ID and action ID) of the current request. CController
getUniqueId() Returns the controller ID that is prefixed with the module ID (if any). CController
getViewFile() Looks for the view file according to the given view name. CController
getViewPath() Returns the directory containing view files for this controller. CController
hasEvent() Determines whether an event is defined. CComponent
hasEventHandler() Checks whether the named event has attached handlers. CComponent
hasProperty() Determines whether a property is defined. CComponent
init() Initializes the controller. CController
invalidActionParams() This method is invoked when the request parameters do not satisfy the requirement of the specified action. CController
isCachingStackEmpty() Returns whether the caching stack is empty. CController
loadModel() Returns the data model based on the primary key given in the GET variable. PostController
missingAction() Handles the request whose action is not recognized. CController
processDynamicOutput() Postprocesses the dynamic output. CController
processOutput() Postprocesses the output generated by render(). CController
raiseEvent() Raises an event. CComponent
recordCachingAction() Records a method call when an output cache is in effect. CController
redirect() Redirects the browser to the specified URL or route (controller/action). CController
refresh() Refreshes the current page. CController
render() Renders a view with a layout. CController
renderClip() Renders a named clip with the supplied parameters. CController
renderDynamic() Renders dynamic content returned by the specified callback. CController
renderDynamicInternal() This method is internally used. CController
renderFile() Renders a view file. CBaseController
renderInternal() Renders a view file. CBaseController
renderPartial() Renders a view. CController
renderText() Renders a static text string. CController
resolveViewFile() Finds a view file based on its name. CController
run() Runs the named action. CController
runAction() Runs the action after passing through all filters. CController
runActionWithFilters() Runs an action with the specified filters. CController
setAction() Sets the action currently being executed. CController
setPageState() Saves a persistent page state value. CController
setPageTitle() Sets the page title. CController
widget() Creates a widget and executes it. CBaseController

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
afterAction() This method is invoked right after an action is executed. CController
afterRender() This method is invoked after the specified is rendered by calling render(). CController
beforeAction() This method is invoked right before an action is to be executed (after all possible filters.) CController
beforeRender() This method is invoked at the beginning of render(). CController
createActionFromMap() Creates the action instance based on the action map. CController
loadPageStates() Loads page states from a hidden input. CController
newComment() Creates a new comment. PostController
replaceDynamicOutput() Replaces the dynamic content placeholders with actual content. CController
savePageStates() Saves page states as a base64 string. CController

Property Details

layout property
public $layout;

Method Details

accessRules() method
public array accessRules()
{return} array access control rules
Source Code: app/controllers/PostController.php#27 (show)
public function accessRules()
{
    return array(
        
/*array('allow',  // allow all users to access 'index' and 'view' actions.
            'actions'=>array('index','view'),
            'users'=>array('*'),
        ),*/
        
array('allow',  // allow all users to access 'index' and 'view' actions.
            
'actions'=>array('login','view'),
            
'users'=>array('*'),
            
'controllers'=>array('site'),
        ),
        array(
'allow'// allow authenticated users to access all actions
            
'users'=>array('@'),
        ),
        array(
'deny',  // deny all users
            
'users'=>array('*'),
        ),
    );
}

Specifies the access control rules. This method is used by the 'accessControl' filter.

actionAdmin() method
public void actionAdmin()
Source Code: app/controllers/PostController.php#147 (show)
public function actionAdmin()
{
    
$model=new Post('search');
    if(isset(
$_GET['Post']))
        
$model->attributes=$_GET['Post'];
    
$this->render('admin',array(
        
'model'=>$model,
    ));
}

Manages all models.

actionCreate() method
public void actionCreate()
Source Code: app/controllers/PostController.php#66 (show)
public function actionCreate()
{
    
$model=new Post;
    if(isset(
$_POST['Post']))
    {
        
$model->attributes=$_POST['Post'];
        if(
$model->save())
            
$this->redirect(array('view','id'=>$model->id));
    }

    
$this->render('create',array(
        
'model'=>$model,
    ));
}

Creates a new model. If creation is successful, the browser will be redirected to the 'view' page.

actionDelete() method
public void actionDelete()
Source Code: app/controllers/PostController.php#104 (show)
public function actionDelete()
{
    if(
Yii::app()->request->isPostRequest)
    {
        
// we only allow deletion via POST request
        
$this->loadModel()->delete();

        
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
        
if(!isset($_GET['ajax']))
            
$this->redirect(array('index'));
    }
    else
        throw new 
CHttpException(400,'Invalid request. Please do not repeat this request again.');
}

Deletes a particular model. If deletion is successful, the browser will be redirected to the 'index' page.

actionIndex() method
public void actionIndex()
Source Code: app/controllers/PostController.php#122 (show)
public function actionIndex()
{
    
$criteria=new CDbCriteria(array(
        
'condition'=>'status='.Post::STATUS_PUBLISHED,
        
'order'=>'update_time DESC',
        
'with'=>'commentCount',
    ));
    if(isset(
$_GET['tag']))
        
$criteria->addSearchCondition('tags',$_GET['tag']);

    
$dataProvider=new CActiveDataProvider('Post', array(
        
'pagination'=>array(
            
'pageSize'=>Yii::app()->params['postsPerPage'],
        ),
        
'criteria'=>$criteria,
    ));

    
$this->render('index',array(
        
'dataProvider'=>$dataProvider,
    ));
}

Lists all models.

actionSuggestTags() method
public void actionSuggestTags()
Source Code: app/controllers/PostController.php#161 (show)
public function actionSuggestTags()
{
    if(isset(
$_GET['q']) && ($keyword=trim($_GET['q']))!=='')
    {
        
$tags=Tag::model()->suggestTags($keyword);
        if(
$tags!==array())
            echo 
implode("\n",$tags);
    }
}

Suggests tags based on the current user input. This is called via AJAX when the user is entering the tags input.

actionUpdate() method
public void actionUpdate()
Source Code: app/controllers/PostController.php#85 (show)
public function actionUpdate()
{
    
$model=$this->loadModel();
    if(isset(
$_POST['Post']))
    {
        
$model->attributes=$_POST['Post'];
        if(
$model->save())
            
$this->redirect(array('view','id'=>$model->id));
    }

    
$this->render('update',array(
        
'model'=>$model,
    ));
}

Updates a particular model. If update is successful, the browser will be redirected to the 'view' page.

actionView() method
public void actionView()
Source Code: app/controllers/PostController.php#51 (show)
public function actionView()
{
    
$post=$this->loadModel();
    
$comment=$this->newComment($post);

    
$this->render('view',array(
        
'model'=>$post,
        
'comment'=>$comment,
    ));
}

Displays a particular model.

filters() method
public array filters()
{return} array action filters
Source Code: app/controllers/PostController.php#15 (show)
public function filters()
{
    return array(
        
'accessControl'// perform access control for CRUD operations
    
);
}

loadModel() method
public void loadModel()
Source Code: app/controllers/PostController.php#175 (show)
public function loadModel()
{
    if(
$this->_model===null)
    {
        if(isset(
$_GET['id']))
        {
            if(
Yii::app()->user->isGuest)
                
$condition='status='.Post::STATUS_PUBLISHED.' OR status='.Post::STATUS_ARCHIVED;
            else
                
$condition='';
            
$this->_model=Post::model()->findByPk($_GET['id'], $condition);
        }
        if(
$this->_model===null)
            throw new 
CHttpException(404,'The requested page does not exist.');
    }
    return 
$this->_model;
}

Returns the data model based on the primary key given in the GET variable. If the data model is not found, an HTTP exception will be raised.

newComment() method
protected Comment newComment(Post $post)
$post Post the post that the new comment belongs to
{return} Comment the comment instance
Source Code: app/controllers/PostController.php#201 (show)
protected function newComment($post)
{
    
$comment=new Comment;
    if(isset(
$_POST['ajax']) && $_POST['ajax']==='comment-form')
    {
        echo 
CActiveForm::validate($comment);
        
Yii::app()->end();
    }
    if(isset(
$_POST['Comment']))
    {
        
$comment->attributes=$_POST['Comment'];
        if(
$post->addComment($comment))
        {
            if(
$comment->status==Comment::STATUS_PENDING)
                
Yii::app()->user->setFlash('commentSubmitted','Thank you for your comment. Your comment will be posted once it is approved.');
            
$this->refresh();
        }
    }
    return 
$comment;
}

Creates a new comment. This method attempts to create a new comment based on the user input. If the comment is successfully created, the browser will be redirected to show the created comment.

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.