/system/modules/data/class.data_type.php
http://aquarel-cms.googlecode.com/ · PHP · 164 lines · 90 code · 29 blank · 45 comment · 25 complexity · e253aa56df0e04a57b68a05254aafe58 MD5 · raw file
- <?php
- /**
- * Module: Data
- * Class: Data Type
- * About: ??? ??????
- * Author: Vlad Andreev <php.vlad@gmail.com>
- **/
-
- class data_type
- {
- private $conf;
- private $db;
-
- private $id;
- private $name;
- private $title;
- private $module;
-
- public function __construct()
- {
- $this->conf = core::conf();
- $this->db = core::db();
- $live = live::getInstance();
-
- $this->id = (isset($live->post['id'])) ? intval($live->post['id']) : null;
- }
-
- /*
- * Actions
- */
-
- // ?????????? ???? ??????
- public function addAction()
- {
- $fields = explode($ac_sep, $_POST['fields']);
- $new_values = explode($ac_sep, $_POST['new_values']);
-
- $values_sql = array();
-
- $new_id = $this->db->Execute("SELECT * FROM {$this->conf->db_prefix}data_types ORDER BY `id` DESC")->fields['id'] + 1;
- $values_sql[] = "`id`='{$new_id}'";
- $values_sql[] = "`num`='{$new_id}'";
-
- for ($i=0;$i<count($fields);$i++)
- {
- $field = data::quote_smart($fields[$i]);
- $value = data::quote_smart($new_values[$i]);
-
- if ($field == 'data_table') $data_table = $value;
-
- $values_sql[] = sprintf("`%s`='%s'", $field, $value);
- }
- $values_sql = implode(', ',$values_sql);
-
- $sql = "INSERT INTO {$this->db_prefix}data_types SET {$values_sql}";
- $res = $this->db->Execute($sql);
- /*if ($debug_db)
- {
- if ($res) echo "?? ??????? ???????? <b>{$field_name}</b> ? data_types<br/> sql: {$sql}";
- else echo "?????? ?????????<br/> sql: {$sql}";
- }*/
-
- if ($data_table != '')
- {
- $sql = sprintf("CREATE TABLE IF NOT EXISTS {$this->conf->db_prefix}%s ( `id` int(11) NOT NULL, `num` int(11) NOT NULL, PRIMARY KEY (id)) ENGINE=MyISAM DEFAULT CHARSET=utf8",$data_table);
- $res = $this->db->Execute($sql);
- /* if ($debug_db)
- {
- if ($res)echo "?? ??????? ???????? ??????? <b>{$data_table}</b> (??? ???? ???????)<br/> sql: {$sql}";
- else echo "????????? ??????? <b>{$data_table}</b> <br/> sql: {$sql}";
- } */
- }
- }
-
- // ?????????????? ???? ??????
- public function editAction()
- {
- if(empty($this->id))
- {
- // ??????: ??????????? ?????????????
- }
-
- $fields = explode($ac_sep, $_POST['fields']);
- $new_values = explode($ac_sep, $_POST['new_values']);
-
- $create_new_table = $_POST['create_new_table'];
-
- $data = $this->db->Execute("SELECT `data_table`,`name` FROM {$this->conf->db_prefix}data_types WHERE `id`='{$this->id}'")->fields;
- $data_table = $data['data_table'];
- $data_name = $data['name'];
-
- $values_sql = array();
- for ($i=0; $i<count($fields); $i++)
- {
- $field = data::quote_smart($fields[$i]);
- $value = data::quote_smart($new_values[$i]);
-
- if ($field == 'data_table' and $value != $data_table)
- {
- $sql = '';
- if ($create_new_table == 'false' and $data_table != '') $sql = sprintf("ALTER TABLE {$this->conf->db_prefix}{$data_table} RENAME {$this->conf->db_prefix}%s", $value);
- if ($create_new_table == 'true' or $data_table == '') $sql = sprintf("CREATE TABLE IF NOT EXISTS {$this->conf->db_prefix}%s ( `id` int(11) NOT NULL, `num` int(11) NOT NULL, PRIMARY KEY (id)) ENGINE=MyISAM DEFAULT CHARSET=utf8", $value);
- if ($sql != '') $this->db->Execute($sql);
- }
-
- if ($field == 'name' && $value != $data_name)
- {
- $res = $this->db->Execute(sprintf("UPDATE {$this->conf->db_prefix}data_fields SET `data_name`='%s' WHERE `data_name`='{$data_name}'", $value));
- }
-
- $values_sql[] = sprintf("`%s`='%s'", $field, $value);
- }
- $values_sql = implode(', ', $values_sql);
-
- $sql = sprintf("UPDATE {$this->conf->db_prefix}data_types SET {$values_sql} WHERE `id`='%d'", $this->id);
- $res = $this->db->Execute($sql);
- /* if ($debug_db)
- {
- if (!$res) echo "?? ??????? ???????? $field ($id , $new_value)";
- else echo "?????? ????????? $field ($id , $new_value)";
- } */
- }
-
- // ???????? ???? ??????
- public function deleteAction()
- {
- if(empty($this->id))
- {
- // ??????: ??????????? ?????????????
- }
-
- $delete_table = $_POST['delete_table'];
-
- $data = $this->db->Execute("SELECT `data_table`,`name` FROM {$this->conf->db_prefix}data_types WHERE `id`='{$this->id}'")->fields;
- $data_table = $data['data_table'];
- $data_name = $data['name'];
-
- $res = $this->db->Execute("DELETE FROM {$this->conf->db_prefix}data_types WHERE `id`={$this->id} ");
- /* if ($debug_db)
- {
- if (!$res) echo "?? ??????? ??????? ???? <b>$field_name</b> ???? ?????? <b>$data_name</b>.";
- else echo "???? <b>$field_name</b> ???? ?????? <b>$data_name</b> ??????? ???????.";
- } */
-
- $res = $this->db->Execute("DELETE FROM {$this->conf->db_prefix}data_fields WHERE `data_name`='{$data_name}' ");
- /* if ($debug_db)
- {
- if (!$res) echo "?? ??????? ??????? ???? ???? ?????? <b>$data_name</b>.";
- else echo "??? ???? ???? ?????? <b>$data_name</b> ??????? ???????.";
- } */
-
- /* ???????? ??????? ???? ??????, ???? ???????? ????? */
- if ($delete_table == 1)
- {
- $res = $this->db->Execute("DROP TABLE {$this->conf->db_prefix}{$data_table} ");
- /* if ($debug_db)
- {
- if (!$res) echo "?? ??????? ??????? ??????? <b>$data_table</b>.";
- else echo "??????? <b>$data_table</b> ??????? ???????.";
- } */
- }
- }
-
- }