Bonjour )à tous,
j'ai un souci avec mon code pourtant je vois vraiment pas d'où viens l'erreur. Je n'arrive pas a appeler une variable d'une autre classe alors que celle ci est public ...
<?php
class PostsController extends Controller
{
private $perPage = 1;
public function view($id = null)
{
$this->loadmodel('Post');
$conditions = array('id' => $id, 'online' => 1, 'type' => 'post');
$d'post'] = $this->Post->findFirst(array(
'conditions' => $conditions
));
$this->set($d);
if(empty($d'post']))
$this->e404('Page introuvable');
$this->set($d);
}
public function postsMenu()
{
var_dump($this->request);
$this->loadmodel('Post');
$conditions = array('online' => 1, 'type' => 'post');
return $this->Post->find(array(
'conditions' => $conditions,
'limit' => $this->perPage*$this->request->page.','.$this->perPage
));
}
public function pagination()
{
$this->loadmodel('Post');
$conditions = array('online' => 1, 'type' => 'post');
$d'total'] = $this->Post->findCount($conditions);
return $d'page'] = ceil($d'total'] / $this->perPage);
}
}
Le problème viens de cette ligne là : 'limit' => $this->perPage*$this->request->page.','.$this->perPage
<?php
class Controller
{
public $request;
private $vars = array();
public $layout = 'default';
private $rendered = false;
public function __construct($request = null)
{
$this->request = $request;
}
public function render($view)
{
if($this->rendered)
{
return false;
}
extract($this->vars);
if(strpos($view, '/') === 0)
$view = ROOT.DS.'view'.$view.'.php';
else
$view = ROOT.DS.'view'.DS.$this->request->controller.DS.$view.'.php';
ob_start();
require($view);
$content_for_layout = ob_get_clean();
require ROOT.DS.'view'.DS.'layout'.DS.$this->layout.'.php';
$this->rendered = true;
}
public function set($key, $value = null)
{
if(is_array($key))
{
$this->vars += $key;
}
else
{
$this->vars$key] = $value;
}
}
public function loadmodel($name)
{
$file = ROOT.DS.'model'.DS.$name.'.php';
require_once($file);
if(!isset($this->$name))
$this->$name = new $name();
}
/**
* Permet de gérer les erreurs 404
*/
function e404($message)
{
$this->set('message_error', $message);
$this->render('/errors/404');
}
public function request($controller, $action)
{
$controller .='Controller';
require_once ROOT.DS.'controller'.DS.$controller.'.php';
$c = new $controller();
return $c->$action();
}
static function cut_content($content, $nb)
{
return $content = substr($content, 0, $nb);
}
}
<?php
class Request
{
public $url; // URL Appelé
public $page = 1;
function __construct()
{
$this->url = $_SERVER'PATH_INFO'];
if(isset($_GET'page']))
if(is_numeric($_GET'page']))
if($_GET'page'] > 0)
$this->page = round($_GET'page']);
}
}
J'ai déjà cherché, mais je trouve vraiment pas ...
Si vous aviez une idée !
Merci !