View Single Post
Old 03-23-2009, 03:48 PM   #2 (permalink)
Andrial12
The Wanderer
 
Join Date: Feb 2008
Location: Blackpool, England
Posts: 16
Thanks: 2
Andrial12 is on a distinguished road
Default

It was actually pretty easy once I really thought about it. What i needed to do was call initiate MySQLi via a child class which uses the singleton pattern.

Somebody will Probably find this quite useful.

database.php
PHP Code:
class database extends mysqli 
    
    private static 
$instance null
    
    private function 
__construct($database_server$database_user$database_pass$database_name) { 
        @
parent::__construct
            
$database_server
            
$database_user
            
$database_pass
            
$database_name
        
); 
        if(
mysqli_connect_errno()) { 
            die(
'Could not Connect to database');
        } 
    } 
        
    public function 
getInstance($database_server$database_user$database_pass$database_name) { 
        if(
self::$instance === null) { 
            
$c __CLASS__
            
self::$instance = new $c($database_server$database_user$database_pass$database_name); 
        } 
        return 
self::$instance
    } 
    
    public function 
__clone() {
        die(
"Cannot clone ".__CLASS__." class"); 
    } 


model_element.php
PHP Code:
class mdl_element {
        
    var 
$id         0;
    var 
$name         NULL;
    var 
$xml         NULL;
    var 
$date         NULL;
    var 
$type         NULL;
    var 
$priority    0;

    function 
__construct($elements_id) {
    
        if(!empty(
$elements_id)) {
                
            
$object_result database::getInstance(CONFIG_DATABASE_SERVERCONFIG_DATABASE_USERCONFIG_DATABASE_PASSCONFIG_DATABASE_NAME_DEFAULT)->query("
                SELECT
                    le.`elements_id`,
                    le.`elements_name`,
                    le.`elements_xml`,
                    le.`elements_date`,
                    le.`elements_type`,
                    le.`elements_priority`
                FROM
                    `lib_elements` AS le
                WHERE
                    le.`elements_id` = " 
$elements_id "
                ;
            "
);
                
            
$object_row $object_result->fetch_object();
                
            
$this->id             $object_row->elements_id;
            
$this->name         $object_row->elements_name;
            
$this->xml            $object_row->elements_xml;
            
$this->date         $object_row->elements_date;
            
$this->type         $object_row->elements_type;
            
$this->priority     $object_row->elements_priority;
        }
        
    }
        

controller_element.php
PHP Code:
class ctl_element {

    var $element = array();
        
    function __construct($elements_id) {
        $this->element[] = new mdl_element($elements_id);
    }
        
    function display($xslt) {
        $xml =  "";
        $xml_temp = '<element language="en-GB"><id>0</id>' . $this->element[0]->xml;
        $xml_temp .= '<children>';
        for($i=0;$i<count($this->element[0]->children->children);$i++) {
            
            $xml_temp .= "<child>";
            $xml_temp .= $this->element[0]->children->children[$i]['xml'];
            $xml_temp .= "</child>";
            
        }
        $xml_temp .= '</children>';
        $xml_temp .= '</element>';
        $xml = '<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE exams SYSTEM "*DEAD LINK*"><exams>' . $xml_temp . '</exams>';
        
        return vw_createhtml($xml, $xslt);
    }
    
}

Last edited by Andrial12 : 03-26-2009 at 01:52 PM.
Andrial12 is offline  
Reply With Quote