I with following JS code on each page count each page view and with an ajax request update the count of page views on other database table:
javascript in page:
Is suitable using of curl method in Advert::updateHint?
Is there another way for do it?
javascript in page:
<script> _paq.push(['setDocumentTitle', "<?php echo $model->id ?>"]); _paq.push(['trackPageView']); var request = $.ajax({ type: 'get', url: "<?php echo Yii::app()->createUrl('site/updateHint') ?>", data: {ad_id:"<?php echo $model->id ?>"}, success: function(data, textStatus, jqXHR){console.log(data+' - '+textStatus)}, error: function(jqXHR,textStatus, errorThrown){console.log(errorThrown)}, }); <script>site/updateHint action:
public function actionUpdateHint($ad_id) { if(Advert::updateHint((int)$ad_id)) echo $ad_id.' updated'; else echo $ad_id.' NUpdate'; }Advert::updateHint static function:
public static function updateHint($ad_id) { $url ="http://localhost/piwik/index.php?"; $url .= "module=API&method=Actions.getPageTitle"; $url .= "&pageName=$ad_id"; $url .= "&idSite=1&period=range&date=2013-00-00,today&format=php"; $url .= "&token_auth=c0e024d9200b5705bc4804722636378a"; $url .= "&showColumns=nb_hits,nb_visits"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $ad = unserialize(curl_exec($ch)); curl_close($ch); $hints; $visits; $page_title; //$uniq_visitors = 0; if(!empty($ad)) { $page_title = $ad[0]['label']; //$uniq_visitors = $ad[0]['nb_uniq_visitors']; $hints = $ad[0]['nb_hits']; $visits = $ad[0]['nb_visits']; }else return false; $model = Advert::model()->findByPk($ad_id); if(is_null($model)) return false; if(!$model->saveAttributes(array('hint'=>$visits))) return false; return true; }
Is suitable using of curl method in Advert::updateHint?
Is there another way for do it?