浏览代码

divers (en fait je sais plus...)

Mathieu Moulin 14 年之前
父节点
当前提交
bd6d2b968c

+ 8 - 1
classes/globals.inc.php

@@ -15,9 +15,16 @@ if (DEBUG_GENTIME == true)
 	gentime(__FILE__." [begin]");
 
 
+/**
+ * Common necessary or useful project data
+ * @author mathieu
+ *
+ */
 class _globals
 {
 
+protected $_db = DB_FW_PROJECT_BASE;
+
 protected $list = array();
 
 function __construct()
@@ -30,7 +37,7 @@ $this->query();
 function query()
 {
 
-$query = db()->query( "SELECT `name` , `value` FROM `_globals`" );
+$query = db()->query( "SELECT `name` , `value` FROM `$this->_db`._globals`" );
 while (list($name, $value) = $query->fetch_row())
 	$this->list[$name] = $value;
 

+ 13 - 13
classes/mail.inc.php

@@ -16,7 +16,7 @@ if (DEBUG_GENTIME == true)
 
 
 /**
- * Global class to send emails.
+ * Common class to send emails.
  * 
  * @author mathieu
  */
@@ -26,10 +26,10 @@ class mail
 /**
  * Send emails, adding usefull header infos...
  * 
- * @param unknown_type $to
- * @param unknown_type $subject
- * @param unknown_type $message
- * @param unknown_type $headers
+ * @param string $to
+ * @param string $subject
+ * @param string $message
+ * @param string $headers
  */
 static function common($to, $subject, $message, $headers="")
 {
@@ -41,10 +41,10 @@ mail($to, $subject, $message, "X-Originating-IP: ".$_SERVER["REMOTE_ADDR"]."\r\n
 /**
  * Send text/plain email
  * 
- * @param unknown_type $to
- * @param unknown_type $subject
- * @param unknown_type $message
- * @param unknown_type $headers
+ * @param string $to
+ * @param string $subject
+ * @param string $message
+ * @param string $headers
  */
 static function text($to, $subject, $message, $headers="")
 {
@@ -56,10 +56,10 @@ self::common($to, $subject, imap_8bit($message), "Content-Type: text/plain; char
 /**
  * Send text/html email
  * 
- * @param unknown_type $to
- * @param unknown_type $subject
- * @param unknown_type $message_html
- * @param unknown_type $headers
+ * @param string $to
+ * @param string $subject
+ * @param string $message_html
+ * @param string $headers
  */
 static function html($to, $subject, $message_html, $headers="")
 {

+ 8 - 5
classes/manager/datamodel.inc.php

@@ -181,7 +181,7 @@ function __wakeup()
 {
 
 if (!$this->db)
-	$this->db = DB_BASE;
+	$this->db = DB_PJ_DATA_BASE;
 
 }
 
@@ -189,7 +189,7 @@ protected function construct_more($infos)
 {
 
 if (!$this->db)
-	$this->db = DB_BASE;
+	$this->db = DB_PJ_DATA_BASE;
 
 $this->query_fields();
 
@@ -208,12 +208,15 @@ $this->query_fields();
 public function query_fields()
 {
 
+$_type = $this->_type;
+$db = $_type()->db();
+
 $this->fields = array();
 $this->fields_detail = array();
 $this->fields_calculated = array();
 $this->fields_index = array();
 // Création des champs du datamodel
-$query = db("SELECT t1.pos, t1.`name` , t1.`type` , t1.`defaultvalue` , t1.`update` , t1.`lang` , t1.`query` , t2.`label` FROM `_datamodel_fields` as t1 LEFT JOIN `_datamodel_fields_lang` as t2 ON t1.`datamodel_id`=t2.`datamodel_id` AND t1.`name`=t2.`fieldname` WHERE t1.`datamodel_id`='$this->id' ORDER BY t1.`pos`");
+$query = db("SELECT t1.pos, t1.`name` , t1.`type` , t1.`defaultvalue` , t1.`update` , t1.`lang` , t1.`query` , t2.`label` FROM `$db`.`_datamodel_fields` as t1 LEFT JOIN `$db`.`_datamodel_fields_lang` as t2 ON t1.`datamodel_id`=t2.`datamodel_id` AND t1.`name`=t2.`fieldname` WHERE t1.`datamodel_id`='$this->id' ORDER BY t1.`pos`");
 while ($field=$query->fetch_assoc())
 {
 	$field["defaultvalue"] = json_decode($field["defaultvalue"], true);
@@ -224,7 +227,7 @@ while ($field=$query->fetch_assoc())
 	if ($field["update"]=="calculated")
 		$this->fields_calculated[] = $field["name"];
 }
-$query = db("SELECT `fieldname`, `opt_name`, `opt_value` FROM `_datamodel_fields_opt` WHERE `datamodel_id`='$this->id'");
+$query = db("SELECT `fieldname`, `opt_name`, `opt_value` FROM `$db`.`_datamodel_fields_opt` WHERE `datamodel_id`='$this->id'");
 while ($opt=$query->fetch_assoc())
 {
 	//echo "<p>$this->id : $opt[fieldname] : $opt[opt_name]</p>\n";
@@ -235,7 +238,7 @@ while ($opt=$query->fetch_assoc())
 
 $this->fields_ref = array();
 // Linked fields in other datamodels
-$query_string = "SELECT t0.`id` as datamodel_id, t0.`name` as datamodel_name, t1.`name` as fieldname, t1.`type` as type, t3.`opt_value` as ref_id, t4.`opt_value` as ref_field, t5.`opt_value` as ref_table FROM `_datamodel` as t0, `_datamodel_fields` as t1, `_datamodel_fields_opt` as t2 LEFT JOIN `_datamodel_fields_opt` as t3 ON t2.datamodel_id=t3.datamodel_id AND t2.fieldname=t3.fieldname AND t3.opt_name='db_ref_id' LEFT JOIN `_datamodel_fields_opt` as t4 ON t2.datamodel_id=t4.datamodel_id AND t2.fieldname=t4.fieldname AND t4.opt_name='db_ref_field' LEFT JOIN `_datamodel_fields_opt` as t5 ON t2.datamodel_id=t5.datamodel_id AND t2.fieldname=t5.fieldname AND t5.opt_name='db_ref_table' WHERE t0.id=t1.datamodel_id AND t1.datamodel_id=t2.datamodel_id AND t1.name=t2.fieldname AND t2.`opt_name`='datamodel' AND t2.`opt_value` IN ('$this->id', '\"$this->name\"')";
+$query_string = "SELECT t0.`id` as datamodel_id, t0.`name` as datamodel_name, t1.`name` as fieldname, t1.`type` as type, t3.`opt_value` as ref_id, t4.`opt_value` as ref_field, t5.`opt_value` as ref_table FROM `$db`.`_datamodel` as t0, `$db`.`_datamodel_fields` as t1, `$db`.`_datamodel_fields_opt` as t2 LEFT JOIN `$db`.`_datamodel_fields_opt` as t3 ON t2.datamodel_id=t3.datamodel_id AND t2.fieldname=t3.fieldname AND t3.opt_name='db_ref_id' LEFT JOIN `$db`.`_datamodel_fields_opt` as t4 ON t2.datamodel_id=t4.datamodel_id AND t2.fieldname=t4.fieldname AND t4.opt_name='db_ref_field' LEFT JOIN `$db`.`_datamodel_fields_opt` as t5 ON t2.datamodel_id=t5.datamodel_id AND t2.fieldname=t5.fieldname AND t5.opt_name='db_ref_table' WHERE t0.id=t1.datamodel_id AND t1.datamodel_id=t2.datamodel_id AND t1.name=t2.fieldname AND t2.`opt_name`='datamodel' AND t2.`opt_value` IN ('$this->id', '\"$this->name\"')";
 $query = db($query_string);
 //echo "<p>$query_string</p>\n";
 while($row=$query->fetch_assoc())

+ 3 - 1
classes/manager/login.inc.php

@@ -16,12 +16,14 @@ if (DEBUG_GENTIME == true)
 
 
 /**
- * Compte utilisateur
+ * Account
  * 
  */
 class _account
 {
 
+protected $_db = DB_FW_PROJECT_BASE;
+
 protected $id = 0;
 protected $email = ""; // Account identifier, UNIQUE
 protected $password_crypt = ""; // TODO : verify and supress it if possible

+ 16 - 3
classes/manager/manager.inc.php

@@ -23,6 +23,12 @@ if (DEBUG_GENTIME == true)
 abstract class __manager
 {
 
+/**
+ * Database
+ * @var string
+ */
+protected $db = DB_FW_SHARED_BASE;
+
 /**
  * @var string
  */
@@ -103,6 +109,12 @@ public function info_detail_list()
 
 return $this->info_detail;
 
+}
+public function db()
+{
+
+return $this->db;
+
 }
 
 /**
@@ -211,7 +223,7 @@ foreach ($this->info_detail as $name=>$field)
 	}
 }
 
-$query_string = "SELECT ".implode(", ", $query_fields)." FROM `_".$this->type."` as t1 LEFT JOIN `_".$this->type."_lang` as t2 ON t1.`id`=t2.`id` AND t2.`lang_id`='".SITE_LANG_ID."'";
+$query_string = "SELECT ".implode(", ", $query_fields)." FROM `$this->db`.`_".$this->type."` as t1 LEFT JOIN FROM `$this->db`.`_".$this->type."_lang` as t2 ON t1.`id`=t2.`id` AND t2.`lang_id`='".SITE_LANG_ID."'";
 //echo "<p>$query_string</p>\n";
 $query = db()->query($query_string);
 while($info = $query->fetch_assoc())
@@ -502,6 +514,7 @@ function query_info()
 
 $type = $this->_type;
 $info_detail = $type()->info_detail_list();
+$db = $type()->db();
 
 $query_fields = array("`t1`.`id`");
 $query_objects = array();
@@ -520,7 +533,7 @@ foreach ($info_detail as $name=>$field)
 	}
 }
 
-$query_string = "SELECT ".implode(", ", $query_fields)." FROM `_$type` as t1 LEFT JOIN `_".$type."_lang` as t2 ON t1.`id`=t2.`id` AND t2.`lang_id`='".SITE_LANG_ID."' WHERE t1.id='$this->id'";
+$query_string = "SELECT ".implode(", ", $query_fields)." FROM `$db`.`_$type` as t1 LEFT JOIN `$db`.`_".$type."_lang` as t2 ON t1.`id`=t2.`id` AND t2.`lang_id`='".SITE_LANG_ID."' WHERE t1.id='$this->id'";
 //echo "<p>$query_string</p>";
 $query = db()->query($query_string);
 while($infos = $query->fetch_assoc())
@@ -536,7 +549,7 @@ foreach ($query_objects as $name)
 {
 	$this->{$name} = array();
 	$field = $info_detail[$name];
-	$query = db()->query("SELECT `$field[db_field]` FROM `$field[db_table]` WHERE `$field[db_id]`='$this->id'");
+	$query = db()->query("SELECT `$field[db_field]` FROM `$db`.`$field[db_table]` WHERE `$db`.`$field[db_id]`='$this->id'");
 	while (list($object_id)=$query->fetch_row())
 	{
 		//var_dump($object_id);

+ 2 - 0
classes/manager/menu.inc.php

@@ -21,6 +21,8 @@ if (DEBUG_GENTIME == true)
 class __menu_manager extends _manager
 {
 
+protected $_db = DB_FW_PROJECT_BASE;
+
 protected $type = "menu";
 
 protected function query_info_more()

+ 2 - 0
classes/manager/page.inc.php

@@ -20,6 +20,8 @@ if (DEBUG_GENTIME == true)
 class __page_manager extends _manager
 {
 
+protected $_db = DB_FW_PROJECT_BASE;
+
 protected $type = "page";
 
 protected $retrieve_details = false;

+ 7 - 1
install/project/config/config.inc.php

@@ -40,7 +40,13 @@ define("DB_HOST",${DB_HOST});
 define("DB_PORT","3306");
 define("DB_USERNAME",${DB_USERNAME});
 define("DB_PASSWORD",${DB_PASSWORD});
-// Default database
+// Framework shared database (datamodel, pagemodel, templates, etc.) 
+define("DB_FW_SHARED_BASE",${DB_BASE});
+// Framework project specifics database (page, menu, account, etc.)
+define("DB_FW_PROJECT_BASE",${DB_BASE});
+// Project Data database (datamodel specific tables)
+define("DB_PJ_DATA_BASE",${DB_BASE});
+// Default database (depeacated)
 define("DB_BASE",${DB_BASE});
 
 // Framework Folders

+ 0 - 0
install/project/log/index.html


+ 0 - 0
install/project/modules/index.html