PageRenderTime 27ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/lib/sources/dynamicformfieldvalues.class.php

https://github.com/pijulius/jcore
PHP | 458 lines | 360 code | 84 blank | 14 comment | 33 complexity | 8333edbbcd511ada34ea7e44a1ba8a22 MD5 | raw file
  1. <?php
  2. /***************************************************************************
  3. * dynamicformfieldvalues.class.php
  4. *
  5. * Jul 05, 07:00:00 2009
  6. * Copyright 2009 Istvan Petres (aka P.I.Julius)
  7. * me@pijulius.com
  8. * For licensing, see LICENSE or http://jcore.net/license
  9. *
  10. * DEPRECATED!
  11. * As of ver. 0.7 (Nov 11, 2010) this file isn't used anymore
  12. * as the values are now handled internally by dynamicFormFields
  13. *
  14. ****************************************************************************/
  15. class _dynamicFormFieldValues {
  16. var $adminPath = 'admin/content/dynamicforms/dynamicformfields/dynamicformfieldvalues';
  17. // ************************************************ Admin Part
  18. function setupAdminForm(&$form) {
  19. $form->add(
  20. 'FieldID',
  21. 'FieldID',
  22. FORM_INPUT_TYPE_HIDDEN,
  23. true,
  24. admin::getPathID());
  25. $form->setValueType(FORM_VALUE_TYPE_INT);
  26. $form->add(
  27. __('Value'),
  28. 'Value',
  29. FORM_INPUT_TYPE_TEXTAREA,
  30. true);
  31. $form->setStyle('width: 300px; height: 35px;');
  32. $form->add(
  33. __('Selected'),
  34. 'Selected',
  35. FORM_INPUT_TYPE_CHECKBOX,
  36. false,
  37. '1');
  38. $form->setValueType(FORM_VALUE_TYPE_BOOL);
  39. $form->add(
  40. __('Additional Options'),
  41. null,
  42. FORM_OPEN_FRAME_CONTAINER);
  43. $form->add(
  44. __('Alternative Title'),
  45. 'ValueTitle',
  46. FORM_INPUT_TYPE_TEXT);
  47. $form->setStyle('width: 300px;');
  48. $form->add(
  49. __('Order'),
  50. 'OrderID',
  51. FORM_INPUT_TYPE_TEXT);
  52. $form->setStyle('width: 50px;');
  53. $form->setValueType(FORM_VALUE_TYPE_INT);
  54. $form->add(
  55. null,
  56. null,
  57. FORM_CLOSE_FRAME_CONTAINER);
  58. }
  59. function verifyAdmin(&$form) {
  60. $reorder = null;
  61. $orders = null;
  62. $delete = null;
  63. $edit = null;
  64. $id = null;
  65. if (isset($_POST['reordersubmit']))
  66. $reorder = (string)$_POST['reordersubmit'];
  67. if (isset($_POST['orders']))
  68. $orders = (array)$_POST['orders'];
  69. if (isset($_GET['delete']))
  70. $delete = (int)$_GET['delete'];
  71. if (isset($_GET['edit']))
  72. $edit = (int)$_GET['edit'];
  73. if (isset($_GET['id']))
  74. $id = (int)$_GET['id'];
  75. if ($reorder) {
  76. if (!security::checkToken())
  77. return false;
  78. foreach((array)$orders as $id => $ovalue) {
  79. sql::run(
  80. " UPDATE `{dynamicformfieldvalues}` " .
  81. " SET `OrderID` = '".(int)$ovalue."'" .
  82. " WHERE `ID` = '".(int)$id."'");
  83. }
  84. tooltip::display(
  85. __("Field values have been successfully re-ordered."),
  86. TOOLTIP_SUCCESS);
  87. return true;
  88. }
  89. if ($delete) {
  90. if (!$this->delete($id))
  91. return false;
  92. tooltip::display(
  93. __("Field value has been successfully deleted."),
  94. TOOLTIP_SUCCESS);
  95. return true;
  96. }
  97. if (!$form->verify())
  98. return false;
  99. if ($edit) {
  100. if (!$this->edit($id, $form->getPostArray()))
  101. return false;
  102. tooltip::display(
  103. __("Field value has been successfully updated."),
  104. TOOLTIP_SUCCESS);
  105. return true;
  106. }
  107. if (!$this->add($form->getPostArray()))
  108. return false;
  109. tooltip::display(
  110. __("Field value has been successfully created."),
  111. TOOLTIP_SUCCESS);
  112. $form->reset();
  113. return true;
  114. }
  115. function displayAdminListHeader() {
  116. echo
  117. "<th><span class='nowrap'>".
  118. __("Order")."</span></th>" .
  119. "<th><span class='nowrap'>".
  120. __("Value")."</span></th>" .
  121. "<th><span class='nowrap'>".
  122. __("Alternative Title")."</span></th>" .
  123. "<th><span class='nowrap'>".
  124. __("Selected")."</span></th>";
  125. }
  126. function displayAdminListHeaderOptions() {
  127. }
  128. function displayAdminListHeaderFunctions() {
  129. echo
  130. "<th><span class='nowrap'>".
  131. __("Edit")."</span></th>" .
  132. "<th><span class='nowrap'>".
  133. __("Delete")."</span></th>";
  134. }
  135. function displayAdminListItem(&$row) {
  136. echo
  137. "<td>" .
  138. "<input type='text' name='orders[".$row['ID']."]' " .
  139. "value='".$row['OrderID']."' " .
  140. "class='order-id-entry' tabindex='1' />" .
  141. "</td>" .
  142. "<td class='auto-width'>" .
  143. "<b>" .
  144. $row['Value'] .
  145. "</b>" .
  146. "</td>" .
  147. "<td style='white-space: nowrap;'>" .
  148. $row['ValueTitle'] .
  149. "</td>" .
  150. "<td align='center'>" .
  151. ($row['Selected']?
  152. 'Yes':
  153. '') .
  154. "</td>";
  155. }
  156. function displayAdminListItemOptions(&$row) {
  157. }
  158. function displayAdminListItemFunctions(&$row) {
  159. echo
  160. "<td align='center'>" .
  161. "<a class='admin-link edit' " .
  162. "title='".htmlchars(__("Edit"), ENT_QUOTES)."' " .
  163. "href='".url::uri('id, edit, delete') .
  164. "&amp;id=".$row['ID']."&amp;edit=1'>" .
  165. "</a>" .
  166. "</td>" .
  167. "<td align='center'>" .
  168. "<a class='admin-link delete confirm-link' " .
  169. "title='".htmlchars(__("Delete"), ENT_QUOTES)."' " .
  170. "href='".url::uri('id, edit, delete') .
  171. "&amp;id=".$row['ID']."&amp;delete=1'>" .
  172. "</a>" .
  173. "</td>";
  174. }
  175. function displayAdminListFunctions() {
  176. echo
  177. "<input type='submit' name='reordersubmit' value='".
  178. htmlchars(__("Reorder"), ENT_QUOTES)."' class='button' /> " .
  179. "<input type='reset' name='reset' value='" .
  180. htmlchars(__("Reset"), ENT_QUOTES)."' class='button' />";
  181. }
  182. function displayAdminList(&$rows) {
  183. echo
  184. "<form action='".url::uri('id, edit, delete')."' method='post'>" .
  185. "<input type='hidden' name='_SecurityToken' value='".security::genToken()."' />";
  186. echo "<table cellpadding='0' cellspacing='0' class='list'>" .
  187. "<thead>" .
  188. "<tr>";
  189. $this->displayAdminListHeader();
  190. $this->displayAdminListHeaderOptions();
  191. if ($this->userPermissionType & USER_PERMISSION_TYPE_WRITE)
  192. $this->displayAdminListHeaderFunctions();
  193. echo
  194. "</tr>" .
  195. "</thead>" .
  196. "<tbody>";
  197. $i = 0;
  198. while($row = sql::fetch($rows)) {
  199. echo
  200. "<tr".($i%2?" class='pair'":NULL).">";
  201. $this->displayAdminListItem($row);
  202. $this->displayAdminListItemOptions($row);
  203. if ($this->userPermissionType & USER_PERMISSION_TYPE_WRITE)
  204. $this->displayAdminListItemFunctions($row);
  205. echo
  206. "</tr>";
  207. $i++;
  208. }
  209. echo
  210. "</tbody>" .
  211. "</table>" .
  212. "<br />";
  213. if ($this->userPermissionType & USER_PERMISSION_TYPE_WRITE) {
  214. $this->displayAdminListFunctions();
  215. echo
  216. "<div class='clear-both'></div>" .
  217. "<br />";
  218. }
  219. echo
  220. "</form>";
  221. }
  222. function displayAdminForm(&$form) {
  223. $form->display();
  224. }
  225. function displayAdminTitle($ownertitle = null) {
  226. admin::displayTitle(
  227. __('Field Values'),
  228. $ownertitle);
  229. }
  230. function displayAdminDescription() {
  231. }
  232. function displayAdmin() {
  233. $owner = sql::fetch(sql::run(
  234. " SELECT * FROM `{dynamicformfields}`" .
  235. " WHERE `ID` = '".admin::getPathID()."'"));
  236. $delete = null;
  237. $edit = null;
  238. $id = null;
  239. if (isset($_GET['delete']))
  240. $delete = (int)$_GET['delete'];
  241. if (isset($_GET['edit']))
  242. $edit = (int)$_GET['edit'];
  243. if (isset($_GET['id']))
  244. $id = (int)$_GET['id'];
  245. $this->displayAdminTitle($owner['Title']);
  246. $this->displayAdminDescription();
  247. echo
  248. "<div class='admin-content'>";
  249. $form = new form(
  250. ($edit?
  251. __("Edit Field Value"):
  252. __("New Field Value")),
  253. 'neweditfieldvalue');
  254. if (!$edit)
  255. $form->action = url::uri('id, delete, limit');
  256. $this->setupAdminForm($form);
  257. $form->addSubmitButtons();
  258. if ($edit) {
  259. $form->add(
  260. __('Cancel'),
  261. 'cancel',
  262. FORM_INPUT_TYPE_BUTTON);
  263. $form->addAttributes("onclick=\"window.location='".
  264. str_replace('&amp;', '&', url::uri('id, edit, delete'))."'\"");
  265. }
  266. $verifyok = false;
  267. if ($this->userPermissionType & USER_PERMISSION_TYPE_WRITE)
  268. $verifyok = $this->verifyAdmin($form);
  269. $rows = sql::run(
  270. " SELECT * FROM `{dynamicformfieldvalues}`" .
  271. " WHERE `FieldID` = '".admin::getPathID()."'" .
  272. " ORDER BY `OrderID`, `ValueTitle`, `Value`");
  273. if (sql::rows($rows))
  274. $this->displayAdminList($rows);
  275. else
  276. tooltip::display(
  277. __("No field values found."),
  278. TOOLTIP_NOTIFICATION);
  279. if ($this->userPermissionType & USER_PERMISSION_TYPE_WRITE) {
  280. if ($edit && ($verifyok || !$form->submitted())) {
  281. $selected = sql::fetch(sql::run(
  282. " SELECT * FROM `{dynamicformfieldvalues}`" .
  283. " WHERE `ID` = '".$id."'"));
  284. $form->setValues($selected);
  285. }
  286. $this->displayAdminForm($form);
  287. }
  288. unset($form);
  289. echo
  290. "</div>"; //admin-content
  291. }
  292. function add($values) {
  293. if (!is_array($values))
  294. return false;
  295. if ($values['OrderID'] == '') {
  296. $row = sql::fetch(sql::run(
  297. " SELECT `OrderID` FROM `{dynamicformfieldvalues}` " .
  298. " WHERE `FieldID` = '".(int)$values['FieldID']."'" .
  299. " ORDER BY `OrderID` DESC"));
  300. $values['OrderID'] = (int)$row['OrderID']+1;
  301. } else {
  302. sql::run(
  303. " UPDATE `{dynamicformfieldvalues}` SET " .
  304. " `OrderID` = `OrderID` + 1" .
  305. " WHERE `FieldID` = '".(int)$values['FieldID']."'" .
  306. " AND `OrderID` >= '".(int)$values['OrderID']."'");
  307. }
  308. $newid = sql::run(
  309. " INSERT INTO `{dynamicformfieldvalues}` SET ".
  310. " `FieldID` = '".
  311. (int)$values['FieldID']."'," .
  312. " `Value` = '".
  313. sql::escape($values['Value'])."'," .
  314. " `ValueTitle` = '".
  315. sql::escape($values['ValueTitle'])."'," .
  316. " `Selected` = '".
  317. ($values['Selected']?
  318. '1':
  319. '0').
  320. "'," .
  321. " `OrderID` = '".
  322. (int)$values['OrderID']."'");
  323. if (!$newid) {
  324. tooltip::display(
  325. sprintf(__("Field value couldn't be added! Error: %s"),
  326. sql::error()),
  327. TOOLTIP_ERROR);
  328. return false;
  329. }
  330. return $newid;
  331. }
  332. function edit($id, $values) {
  333. if (!$id)
  334. return false;
  335. if (!is_array($values))
  336. return false;
  337. sql::run(
  338. " UPDATE `{dynamicformfieldvalues}` SET ".
  339. " `Value` = '".
  340. sql::escape($values['Value'])."'," .
  341. " `ValueTitle` = '".
  342. sql::escape($values['ValueTitle'])."'," .
  343. " `Selected` = '".
  344. ($values['Selected']?
  345. '1':
  346. '0').
  347. "'," .
  348. " `OrderID` = '".
  349. (int)$values['OrderID']."'" .
  350. " WHERE `ID` = '".(int)$id."'");
  351. if (sql::affected() == -1) {
  352. tooltip::display(
  353. sprintf(__("Field value couldn't be updated! Error: %s"),
  354. sql::error()),
  355. TOOLTIP_ERROR);
  356. return false;
  357. }
  358. return true;
  359. }
  360. function delete($id) {
  361. if (!$id)
  362. return false;
  363. sql::run(
  364. " DELETE FROM `{dynamicformfieldvalues}` " .
  365. " WHERE `ID` = '".$id."'");
  366. return true;
  367. }
  368. }
  369. ?>