PageRenderTime 103ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/phpshop1/WEB-INF/modules/topic/lib/ps_topic_group.inc

http://phpshop.googlecode.com/
PHP | 397 lines | 257 code | 77 blank | 63 comment | 23 complexity | 9cd68e9839609d62d100dd48c6c2caa3 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1
  1. <?php
  2. /*
  3. * The ps_topic_group class
  4. *
  5. * Copyright (c) uli (ulisoft@gmail.com). All rights reserved.
  6. *
  7. ****************************************************************************
  8. *
  9. * CLASS DESCRIPTION
  10. *
  11. * ps_topic_group_class
  12. *
  13. * The class handles topic_groups from an adminstrative perspective. topic
  14. * processing is handled in the ps_process_topic.
  15. *
  16. * properties:
  17. *
  18. * error - the error message returned by validation if any
  19. * methods:
  20. * topic_group_val_delete()
  21. * topic_group_val_update()
  22. * topic_group_add()
  23. * topic_group_update()
  24. * topic_group_delete()
  25. *
  26. *
  27. *************************************************************************/
  28. class ps_topic_group {
  29. var $classname = "ps_topic_group";
  30. var $error;
  31. /**************************************************************************
  32. * name: validate_add
  33. * created by: uli
  34. * parameters:
  35. * returns:
  36. **************************************************************************/
  37. function validate_add(&$d) {
  38. global $lang,$ps_vendor_id;
  39. include(PS_BASE . "languages/lang_$lang.inc");
  40. $topic_group_id=$d["topic_group_id"];
  41. $topic_group_name=$d["topic_group_name"];
  42. if (!is_numeric($topic_group_id)) {
  43. $d["error"] = $error_str_135;
  44. return False;
  45. }
  46. $db = new ps_DB;
  47. $q = "SELECT * from topic_groups WHERE ";
  48. $q .= "topic_group_id = '$topic_group_id' ";
  49. if ($d["all_lang"]!="on") {
  50. $q .= "AND language='$lang' ";
  51. }
  52. $q .= "AND vendor_id='$ps_vendor_id' ";
  53. $db->query($q);
  54. if ($db->next_record()) {
  55. $d["error"] = $error_str_134;
  56. return False;
  57. }
  58. $q = "SELECT * from topic_groups WHERE ";
  59. $q .= "topic_group_name = '$topic_group_name' ";
  60. if ($d["all_lang"]!="on") {
  61. $q .= "AND language='$lang' ";
  62. }
  63. $q .= "AND vendor_id='$ps_vendor_id' ";
  64. $db->query($q);
  65. if ($db->next_record()) {
  66. $d["error"] = $error_str_136;
  67. return False;
  68. }
  69. }
  70. /**************************************************************************
  71. * name: validate_update
  72. * created by: uli
  73. * parameters:
  74. * returns:
  75. **************************************************************************/
  76. function validate_update(&$d) {
  77. global $lang,$ps_vendor_id;
  78. include(PS_BASE . "languages/lang_$lang.inc");
  79. if (!is_numeric($d["topic_group_id"])) {
  80. $d["error"] = $error_str_135;
  81. return False;
  82. }
  83. $topic_group_id=$d["topic_group_id"];
  84. $topic_group_name=$d["topic_group_name"];
  85. $tgi=$d["tgi"];
  86. $db = new ps_DB;
  87. $q = "SELECT * from topic_groups WHERE ";
  88. $q .= "topic_group_id = '$topic_group_id' AND topic_group_id <> '$tgi'";
  89. if ($d["all_lang"]!="on") {
  90. $q .= "AND language='$lang' ";
  91. }
  92. $q .= "AND vendor_id='$ps_vendor_id' ";
  93. $db->query($q);
  94. if ($db->next_record()) {
  95. $d["error"] = $error_str_134;
  96. return False;
  97. }
  98. $q = "SELECT * from topic_groups WHERE ";
  99. $q .= "topic_group_name = '$topic_group_name' AND topic_group_id <> '$tgi'";
  100. if ($d["all_lang"]!="on") {
  101. $q .= "AND language='$lang' ";
  102. }
  103. $q .= "AND vendor_id='$ps_vendor_id' ";
  104. $db->query($q);
  105. if ($db->next_record()) {
  106. $d["error"] = $error_str_136;
  107. return False;
  108. }
  109. }
  110. /**************************************************************************
  111. * name: topic_group_delete
  112. * created by: uli
  113. * parameters:
  114. * returns:
  115. **************************************************************************/
  116. function topic_group_delete(&$d) {
  117. global $lang,$ps_vendor_id;
  118. $db = new ps_DB;
  119. $topic_group_id=$d["topic_group_id"];
  120. if ($d["all_lang"]=="on") {
  121. $q = "DELETE from topic_groups WHERE ";
  122. $q .= "topic_group_id = '$topic_group_id'";
  123. $q .= "AND vendor_id='$ps_vendor_id' ";
  124. $db->query($q);
  125. $db->next_record();
  126. $q = "DELETE from topics WHERE ";
  127. $q .= "topic_group_id = '$topic_group_id' ";
  128. $q .= "AND vendor_id='$ps_vendor_id' ";
  129. $db->query($q);
  130. $db->next_record();
  131. $q = "DELETE from topic_reply WHERE ";
  132. $q .= "topic_group_id = '$topic_group_id' ";
  133. $q .= "AND vendor_id='$ps_vendor_id' ";
  134. $db->query($q);
  135. $db->next_record();
  136. $q = "DELETE from latest_topic WHERE ";
  137. $q .= "topic_group_id = '$topic_group_id' ";
  138. $q .= "AND vendor_id='$ps_vendor_id' ";
  139. $db->query($q);
  140. $db->next_record();
  141. }
  142. else {
  143. $q = "DELETE from topic_groups WHERE ";
  144. $q .= "topic_group_id = '$topic_group_id' ";
  145. $q .= "AND vendor_id='$ps_vendor_id' ";
  146. $q .= "AND language='$lang' ";
  147. $db->query($q);
  148. $db->next_record();
  149. $q = "DELETE from topics WHERE ";
  150. $q .= "topic_group_id = '$topic_group_id' ";
  151. $q .= "AND vendor_id='$ps_vendor_id' ";
  152. $q .= "AND language='$lang' ";
  153. $db->query($q);
  154. $db->next_record();
  155. $q = "DELETE from topic_reply WHERE ";
  156. $q .= "topic_group_id = '$topic_group_id' ";
  157. $q .= "AND vendor_id='$ps_vendor_id' ";
  158. $q .= "AND language='$lang' ";
  159. $db->query($q);
  160. $db->next_record();
  161. $q = "DELETE from latest_topic WHERE ";
  162. $q .= "topic_group_id = '$topic_group_id' ";
  163. $q .= "AND vendor_id='$ps_vendor_id' ";
  164. $q .= "AND language='$lang' ";
  165. $db->query($q);
  166. $db->next_record();
  167. }
  168. return True;
  169. }
  170. /**************************************************************************
  171. * name: topic_group_add
  172. * created by: uli
  173. * parameters:
  174. * returns:
  175. **************************************************************************/
  176. function topic_group_add(&$d) {
  177. global $lang,$ps_vendor_id;
  178. if (!$this->validate_add($d)) {
  179. $d["topic_group_id"]="";
  180. $d["topic_group_name"]="";
  181. return False;
  182. }
  183. $db = new ps_DB;
  184. $topic_group_id= $d["topic_group_id"];
  185. $topic_group_name = $d["topic_group_name"];
  186. if ($d["all_lang"]=="on") {
  187. $ldir=PS_BASE;
  188. $ldir .="languages/lang_*.inc";
  189. foreach (glob($ldir) as $filename) {
  190. list ($fn,$fl,$en) = split('[._]', basename($filename));
  191. $lfile=PS_BASE;
  192. $lfile .="languages/lang_";
  193. $lfile .=$fl;
  194. $lfile .=".inc";
  195. if (file_exists($lfile)) {
  196. $q = "INSERT INTO topic_groups SET";
  197. $q .=" topic_group_id = '$topic_group_id', ";
  198. $q .=" topic_group_name='$topic_group_name', ";
  199. $q .=" vendor_id='$ps_vendor_id', ";
  200. $q .=" language='$fl'";
  201. $db->query($q);
  202. $db->next_record();
  203. }
  204. }
  205. }
  206. else {
  207. $q = "INSERT INTO topic_groups SET";
  208. $q .=" topic_group_id = '$topic_group_id', ";
  209. $q .=" topic_group_name='$topic_group_name', ";
  210. $q .=" vendor_id='$ps_vendor_id', ";
  211. $q .=" language='$lang'";
  212. $db->query($q);
  213. $db->next_record();
  214. }
  215. return True;
  216. }
  217. /**************************************************************************
  218. * name: topic_group_update
  219. * created by: uli
  220. * parameters:
  221. * returns:
  222. **************************************************************************/
  223. function topic_group_update(&$d) {
  224. global $lang,$ps_vendor_id;
  225. if (!$this->validate_update($d)) {
  226. return False;
  227. }
  228. $db = new ps_DB;
  229. $tgi = $d["tgi"];
  230. $topic_group_id= $d["topic_group_id"];
  231. if ($d["all_lang"]=="on") {
  232. $q = "UPDATE topic_groups SET ";
  233. $q .="topic_group_id = '$topic_group_id', ";
  234. $q .="topic_group_name='$topic_group_name' ";
  235. $q .="WHERE topic_group_id='$tgi' ";
  236. $q .="AND vendor_id='$ps_vendor_id' ";
  237. $db->query($q);
  238. $db->next_record();
  239. $q = "UPDATE topics SET";
  240. $q .=" topic_group_id = '$topic_group_id' ";
  241. $q .=" WHERE topic_group_id='$tgi' ";
  242. $q .="AND vendor_id='$ps_vendor_id' ";
  243. $db->query($q);
  244. $db->next_record();
  245. $q = "UPDATE topic_reply SET";
  246. $q .=" topic_group_id = '$topic_group_id' ";
  247. $q .=" WHERE topic_group_id='$tgi' ";
  248. $q .="AND vendor_id='$ps_vendor_id' ";
  249. $db->query($q);
  250. $db->next_record();
  251. $q = "UPDATE latest_topic SET";
  252. $q .=" topic_group_id = '$topic_group_id' ";
  253. $q .=" WHERE topic_group_id='$tgi' ";
  254. $q .="AND vendor_id='$ps_vendor_id' ";
  255. $db->query($q);
  256. $db->next_record();
  257. }
  258. else {
  259. $q = "UPDATE topic_groups SET ";
  260. $q .="topic_group_id = '$topic_group_id', ";
  261. $q .="topic_group_name='$topic_group_name' ";
  262. $q .="WHERE topic_group_id='$tgi' ";
  263. $q .="AND vendor_id='$ps_vendor_id' ";
  264. $q .="AND language='$lang' ";
  265. $db->query($q);
  266. $db->next_record();
  267. $q = "UPDATE topics SET";
  268. $q .=" topic_group_id = '$topic_group_id' ";
  269. $q .=" WHERE topic_group_id='$tgi' ";
  270. $q .="AND vendor_id='$ps_vendor_id' ";
  271. $db->query($q);
  272. $db->next_record();
  273. $q .="AND language='$lang' ";
  274. $q = "UPDATE topic_reply SET";
  275. $q .=" topic_group_id = '$topic_group_id' ";
  276. $q .=" WHERE topic_group_id='$tgi' ";
  277. $q .="AND vendor_id='$ps_vendor_id' ";
  278. $q .="AND language='$lang' ";
  279. $db->query($q);
  280. $db->next_record();
  281. $q = "UPDATE latest_topic SET";
  282. $q .=" topic_group_id = '$topic_group_id' ";
  283. $q .=" WHERE topic_group_id='$tgi' ";
  284. $q .="AND vendor_id='$ps_vendor_id' ";
  285. $q .="AND language='$lang' ";
  286. $db->query($q);
  287. $db->next_record();
  288. }
  289. return True;
  290. }
  291. /**************************************************************************
  292. * name: list_topic_groups
  293. * created by: uli
  294. * parameters:
  295. * returns:
  296. **************************************************************************/
  297. function list_topic_groups($topic_group_id) {
  298. global $lang,$ps_vendor_id;
  299. $db = new ps_DB;
  300. $q = "SELECT * from topic_groups WHERE language='$lang' AND vendor_id='$ps_vendor_id' ORDER BY topic_group_name ";
  301. $db->query($q);
  302. echo "<select name=topic_group_id>";
  303. while ($db->next_record()) {
  304. if ($db->f("topic_group_id") == $topic_group_id) {
  305. echo "<OPTION SELECTED VALUE=";
  306. echo $db->f("topic_group_id") . ">";
  307. }
  308. else {
  309. echo "<OPTION VALUE=";
  310. echo $db->f("topic_group_id");
  311. echo ">";
  312. }
  313. echo $db->f("topic_group_name") . "</OPTION>\n";
  314. }
  315. echo "</SELECT>";
  316. return True;
  317. }
  318. }
  319. ?>