/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

  1. <?php
  2. /**
  3. * Module: Data
  4. * Class: Data Type
  5. * About: ??? ??????
  6. * Author: Vlad Andreev <php.vlad@gmail.com>
  7. **/
  8. class data_type
  9. {
  10. private $conf;
  11. private $db;
  12. private $id;
  13. private $name;
  14. private $title;
  15. private $module;
  16. public function __construct()
  17. {
  18. $this->conf = core::conf();
  19. $this->db = core::db();
  20. $live = live::getInstance();
  21. $this->id = (isset($live->post['id'])) ? intval($live->post['id']) : null;
  22. }
  23. /*
  24. * Actions
  25. */
  26. // ?????????? ???? ??????
  27. public function addAction()
  28. {
  29. $fields = explode($ac_sep, $_POST['fields']);
  30. $new_values = explode($ac_sep, $_POST['new_values']);
  31. $values_sql = array();
  32. $new_id = $this->db->Execute("SELECT * FROM {$this->conf->db_prefix}data_types ORDER BY `id` DESC")->fields['id'] + 1;
  33. $values_sql[] = "`id`='{$new_id}'";
  34. $values_sql[] = "`num`='{$new_id}'";
  35. for ($i=0;$i<count($fields);$i++)
  36. {
  37. $field = data::quote_smart($fields[$i]);
  38. $value = data::quote_smart($new_values[$i]);
  39. if ($field == 'data_table') $data_table = $value;
  40. $values_sql[] = sprintf("`%s`='%s'", $field, $value);
  41. }
  42. $values_sql = implode(', ',$values_sql);
  43. $sql = "INSERT INTO {$this->db_prefix}data_types SET {$values_sql}";
  44. $res = $this->db->Execute($sql);
  45. /*if ($debug_db)
  46. {
  47. if ($res) echo "?? ??????? ???????? <b>{$field_name}</b> ? data_types<br/> sql: {$sql}";
  48. else echo "?????? ?????????<br/> sql: {$sql}";
  49. }*/
  50. if ($data_table != '')
  51. {
  52. $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);
  53. $res = $this->db->Execute($sql);
  54. /* if ($debug_db)
  55. {
  56. if ($res)echo "?? ??????? ???????? ??????? <b>{$data_table}</b> (??? ???? ???????)<br/> sql: {$sql}";
  57. else echo "????????? ??????? <b>{$data_table}</b> <br/> sql: {$sql}";
  58. } */
  59. }
  60. }
  61. // ?????????????? ???? ??????
  62. public function editAction()
  63. {
  64. if(empty($this->id))
  65. {
  66. // ??????: ??????????? ?????????????
  67. }
  68. $fields = explode($ac_sep, $_POST['fields']);
  69. $new_values = explode($ac_sep, $_POST['new_values']);
  70. $create_new_table = $_POST['create_new_table'];
  71. $data = $this->db->Execute("SELECT `data_table`,`name` FROM {$this->conf->db_prefix}data_types WHERE `id`='{$this->id}'")->fields;
  72. $data_table = $data['data_table'];
  73. $data_name = $data['name'];
  74. $values_sql = array();
  75. for ($i=0; $i<count($fields); $i++)
  76. {
  77. $field = data::quote_smart($fields[$i]);
  78. $value = data::quote_smart($new_values[$i]);
  79. if ($field == 'data_table' and $value != $data_table)
  80. {
  81. $sql = '';
  82. 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);
  83. 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);
  84. if ($sql != '') $this->db->Execute($sql);
  85. }
  86. if ($field == 'name' && $value != $data_name)
  87. {
  88. $res = $this->db->Execute(sprintf("UPDATE {$this->conf->db_prefix}data_fields SET `data_name`='%s' WHERE `data_name`='{$data_name}'", $value));
  89. }
  90. $values_sql[] = sprintf("`%s`='%s'", $field, $value);
  91. }
  92. $values_sql = implode(', ', $values_sql);
  93. $sql = sprintf("UPDATE {$this->conf->db_prefix}data_types SET {$values_sql} WHERE `id`='%d'", $this->id);
  94. $res = $this->db->Execute($sql);
  95. /* if ($debug_db)
  96. {
  97. if (!$res) echo "?? ??????? ???????? $field ($id , $new_value)";
  98. else echo "?????? ????????? $field ($id , $new_value)";
  99. } */
  100. }
  101. // ???????? ???? ??????
  102. public function deleteAction()
  103. {
  104. if(empty($this->id))
  105. {
  106. // ??????: ??????????? ?????????????
  107. }
  108. $delete_table = $_POST['delete_table'];
  109. $data = $this->db->Execute("SELECT `data_table`,`name` FROM {$this->conf->db_prefix}data_types WHERE `id`='{$this->id}'")->fields;
  110. $data_table = $data['data_table'];
  111. $data_name = $data['name'];
  112. $res = $this->db->Execute("DELETE FROM {$this->conf->db_prefix}data_types WHERE `id`={$this->id} ");
  113. /* if ($debug_db)
  114. {
  115. if (!$res) echo "?? ??????? ??????? ???? <b>$field_name</b> ???? ?????? <b>$data_name</b>.";
  116. else echo "???? <b>$field_name</b> ???? ?????? <b>$data_name</b> ??????? ???????.";
  117. } */
  118. $res = $this->db->Execute("DELETE FROM {$this->conf->db_prefix}data_fields WHERE `data_name`='{$data_name}' ");
  119. /* if ($debug_db)
  120. {
  121. if (!$res) echo "?? ??????? ??????? ???? ???? ?????? <b>$data_name</b>.";
  122. else echo "??? ???? ???? ?????? <b>$data_name</b> ??????? ???????.";
  123. } */
  124. /* ???????? ??????? ???? ??????, ???? ???????? ????? */
  125. if ($delete_table == 1)
  126. {
  127. $res = $this->db->Execute("DROP TABLE {$this->conf->db_prefix}{$data_table} ");
  128. /* if ($debug_db)
  129. {
  130. if (!$res) echo "?? ??????? ??????? ??????? <b>$data_table</b>.";
  131. else echo "??????? <b>$data_table</b> ??????? ???????.";
  132. } */
  133. }
  134. }
  135. }