Bonjour à tous :)
Voilà j'ai crées un site sous cakephp et j'essais de faire un compteur de visite, j'ai créer une fonction qui stoke les ip dans ma BDD a condition que la date soit différente, mais je ne c'est pas comment appeler cette fonction quans un utilisateur consulte mon site.
<?php
App::uses('AppController','Controller');
class Stats_visiteController extends AppController{
public function compteur_visite(){
$this->loadModel('stats_visites')
$ip = $_SERVER['REMOTE_ADDR'];
$date = date('Y.m.d');
if (!= $this->stats_visite->find('all',array('condition' =>array('ip' => $ip,'date' => $date)))) {
$this->stats_visite->save(array(
'ip' => $ip,
'date' => $date
))
# code...
}
}
}
Merci beaucoup finalement j'ai trouver autre chose
Pour ceux que ça peut aider a faire un compteur voila comment j'ai fait :)
Mon Appcontroller: ```
<?php
App::uses('Controller', 'Controller');
/**
@link http://book.cakephp.org/2.0/en/controllers.html#the-app-controller
*/
class AppController extends Controller {
public $components = array(
'Session',
'Cookie',
'Auth' => array(
'authenticate' => array(
'Form' => array(
'scope' => array('User.active' => 1)
)
)
)
);
public function beforeFilter() {
parent::beforeFilter ();
$this->compteur_visite();
$this->Auth->allow('signup','login','activate','forgot', 'password','users','blog','veiw','Offres','Partenaire', 'Minecraft');
if (isset ( $this->request->params ['prefix'] ) && $this->request->params ['prefix'] == 'admin') {
if ($this->Auth->user ( 'role' ) != 'admin') {
throw new NotFoundException ();
}
}
}
public function compteur_visite(){
$this->loadModel('statsvisites');
$ip = $_SERVER['REMOTE_ADDR'];
$date = date('Y.m.d');
$stats = $this->statsvisites->find('all',array(
'condition' =>array(
'ip' => $ip,
'date' => $date)));
if(!empty($stats)) {
}else{
$this->statsvisites->save(array(
'ip' => $ip,
'date' => $date
));
}
$visiteur = $this->statsvisites->find('count',array(
'condition' =>array(
'date' => $date)));
$this->set('visiteur', $visiteur);
}
}
Voila j'ai tout mis dans le AppController :)
Par contre Romano83 si tu connais le JS j'ai un autre gros problème sur mon panel de serveur de jeux que je fait sous CakePhp je vais ouvrir un autre topic, si tu peux y jeter un coup se serait sympa :)
http://www.grafikart.fr/forum/topics/18814
Appel en Ajax ? comment je peut faire ? car niveaux Ajax je n'y connais absolument rien... :/
Si tu as une div qui entoure l'ensemble du contenu dans ta vue, tu peux faire quelque chose du style :
// Fichier de vue
<div id="MonId" data-id="id-de-la-page" data-url="<?= $this->Url->build(['controller' => 'Stats_visiteController', 'action' => 'compteur_visite']); ?>">// ton contenu </div>
// dans ta vue ou dans ton fichier .js
if($('#id-de-la-page').length > 0 ){
var $id = $('#MonId').data('id'),
$url = $('#MonId').data('url');
$.ajax({
method: 'POST',
url: $url,
data:{
id: $id
}
});
}
Ce n'est qu'un exemple, à toi d'améliorer ce que je viens de te proposer !
Et comme je suis bien gentil ce soir, voici un petit lien qui va pouvoir t'aider...