03-23-2009, 03:48 PM
|
#2 (permalink)
|
|
The Wanderer
Join Date: Feb 2008
Location: Blackpool, England
Posts: 16
Thanks: 2
|
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_SERVER, CONFIG_DATABASE_USER, CONFIG_DATABASE_PASS, CONFIG_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.
|
|
|
|