Question

I am a newbie interested to know are there any extension to count views on click of a button as to know no. of registered users or visiters to web page to know the view count on click of a image is there any extension.

Plz let me know if any

thanx :)

Était-ce utile?

La solution

I think , there is no need of any extension. Make a Ajax call on click button or image you are interested.

Improved: I supposed you have Site as controller and index as action. then, please keep this code on views/site/index.php .

Yii::app()->clientScript->registerScript('logo_as_image_script', '$(document).ready(function() {
        $("#logo_as_image").click(function() {
            $.post("'.Yii::app()->createAbsoluteUrl('site/index').'",
                    {
                        clicked: "1"
                    },
            function(data, status) {
                alert("Data: " + data + "\nStatus: " + status);
            });
        });
    });');
Yii::app()->clientScript->registerCoreScript('jquery');
echo CHtml::image(Yii::app()->baseUrl . '/images/logo.png', 'Logo as Image', array('id' => 'logo_as_image'));

And, keep this code on SiteController.php .

public function actionIndex() 
{
    // keep record of data ; do more filtering ; other manupulation 
    if(isset($_POST['clicked'])){
        $nextCount = Yii::app()->user->getState('clickCount')+1; 
        Yii::app()->user->setState('clickCount',$nextCount );
        echo $nextCount;
        Yii::app()->end();
    }
    #other codes here. 
    $this->render('index');
}

Autres conseils

Lets assume that you want to store how many registered users have accessed the page at :

www.something.com/something/someaction

then visit the controller and add the code like so :

public function actionSomeAction()
    {
        $model = new CountDbModel();
        if(!Yii::app()->user->isGuest){
            $model->page = 'This page name here.';
            $model->user_id = Yii::app()->user->id;
            $model->count = #Add the value here.

            #You other code here....
            $this->render('whateverView',array('model'=>$blah));
        }
    }

I hope it helped.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top