Witam,
zakupłem ksiązke helionu Projektowanie systemów cms... itd.
I mam problem ponieważ kod do wyświetlania działa lecz nie widze treści z bazy mysql po mimo tego, że funkcje szukania działają.
Proszę o jakąś radę.
Pozdrawiam.

plik index.php

  1. <?php
  2. // { common variables and functions
  3. include_once('ww.incs/common.php');
  4. $page=isset($_REQUEST['page'])?$_REQUEST['page']:'';
  5. $id=isset($_REQUEST['id'])?(int)$_REQUEST['id']:0;
  6.  
  7.  
  8. // { get current page id
  9. if(!$id){
  10. if($page){ // load by name
  11. $r=Page::getInstanceByName($page);
  12. if($r && isset($r->id))$id=$r->id;
  13. }
  14. if(!$id){ // else load by special
  15. $special=1;
  16. if(!$page){
  17. $r=Page::getInstanceBySpecial($special);
  18. if($r && isset($r->id))$id=$r->id;
  19. }
  20. }
  21. }
  22.  
  23. // { load page data
  24. if($id){
  25. $PAGEDATA=(isset($r) && $r)?$r : Page::getInstance($id);
  26. }
  27. else{
  28. echo '404 thing goes here';
  29. }


plik basics.php
  1. <?php
  2. function __autoload($name) {
  3. require $name . '.php';
  4. }
  5. function dbInit(){
  6. if(isset($GLOBALS['db']))return $GLOBALS['db'];
  7. global $DBVARS;
  8. $db=new PDO('mysql:host='.$DBVARS['hostname'].';dbname='.$DBVARS['db_name'],$DBVARS['username'],$DBVARS['password']);
  9. $db->query('SET NAMES utf8');
  10. $db->num_queries=0;
  11. $GLOBALS['db']=$db;
  12. return $db;
  13. }
  14. function dbQuery($query){
  15. $db=dbInit();
  16. $q=$db->query($query);
  17. $db->num_queries++;
  18. return $q;
  19. }
  20. function dbRow($query) {
  21. $q = dbQuery($query);
  22. return $q->fetch(PDO::FETCH_ASSOC);
  23. }
  24. define('SCRIPTBASE', $_SERVER['DOCUMENT_ROOT'] . '/');
  25. require SCRIPTBASE . '.private/config.php';
  26. if(!defined('CONFIG_FILE'))define('CONFIG_FILE',SCRIPTBASE.'.private/config.php');
  27. set_include_path(SCRIPTBASE.'ww.php_classes'.PATH_SEPARATOR.get_include_path());


plik Page.php
  1. <?php
  2. class Page{
  3. static $instances = array();
  4. static $instancesByName = array();
  5. static $instancesBySpecial = array();
  6. function __construct($v,$byField=0,$fromRow=0,$pvq=0){
  7. # byField: 0=ID; 1=Name; 3=special
  8. if (!$byField && is_numeric($v)){ // by ID
  9. $r=$fromRow?$fromRow:($v?dbRow("select * from pages where id=$v limit 1"):array());
  10. }
  11. else if ($byField == 1){ // by name
  12. $name=strtolower(str_replace('-','_',$v));
  13. $fname='page_by_name_'.md5($name);
  14. $r=dbRow("select * from pages where name like '".addslashes($name)."' limit 1");
  15. }
  16. else if ($byField == 3 && is_numeric($v)){ // by special
  17. $fname='page_by_special_'.$v;
  18. $r=dbRow("select * from pages where special&$v limit 1");
  19. }
  20. else return false;
  21. if(!count($r || !is_array($r)))return false;
  22. if(!isset($r['id']))$r['id']=0;
  23. if(!isset($r['type']))$r['type']=0;
  24. if(!isset($r['special']))$r['special']=0;
  25. if(!isset($r['name']))$r['name']='NO NAME SUPPLIED';
  26. foreach ($r as $k=>$v) $this->{$k}=$v;
  27. $this->urlname=$r['name'];
  28. $this->dbVals=$r;
  29. self::$instances[$this->id] =& $this;
  30. self::$instancesByName[preg_replace('/[^a-z0-9]/','-',strtolower($this->urlname))] =& $this;
  31. self::$instancesBySpecial[$this->special] =& $this;
  32. if(!$this->vars)$this->vars='{}';
  33. $this->vars=json_decode($this->vars);
  34. }
  35. function getInstance($id=0,$fromRow=false,$pvq=false){
  36. if (!is_numeric($id)) return false;
  37. if (!@array_key_exists($id,self::$instances)) self::$instances[$id]=new Page($id,0,$fromRow,$pvq);
  38. return self::$instances[$id];
  39. }
  40. function getInstanceByName($name=''){
  41. $name=strtolower($name);
  42. $nameIndex=preg_replace('#[^a-z0-9/]#','-',$name);
  43. if(@array_key_exists($nameIndex,self::$instancesByName))return self::$instancesByName[$nameIndex];
  44. self::$instancesByName[$nameIndex]=new Page($name,1);
  45. return self::$instancesByName[$nameIndex];
  46. }
  47. function getInstanceBySpecial($sp=0){
  48. if (!is_numeric($sp)) return false;
  49. if (!@array_key_exists($sp,$instancesBySpecial)) $instancesBySpecial[$sp]=new Page($sp,3);
  50. return $instancesBySpecial[$sp];
  51. }