PageRenderTime 40ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/adm/admin_pa_custom.php

http://github.com/MightyGorgon/icy_phoenix
PHP | 211 lines | 166 code | 28 blank | 17 comment | 31 complexity | 467c35c2dc1f5b203b7d50f1346c129b MD5 | raw file
Possible License(s): AGPL-1.0
  1. <?php
  2. /**
  3. *
  4. * @package Icy Phoenix
  5. * @version $Id$
  6. * @copyright (c) 2008 Icy Phoenix
  7. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  8. *
  9. */
  10. /**
  11. *
  12. * @Extra credits for this file
  13. * Todd - (todd@phparena.net) - (http://www.phparena.net)
  14. *
  15. */
  16. define('IN_ICYPHOENIX', true);
  17. if(!empty($setmodules))
  18. {
  19. $file = basename(__FILE__);
  20. $module['2000_Downloads']['140_Mfieldtitle'] = $file;
  21. return;
  22. }
  23. if (!defined('IP_ROOT_PATH')) define('IP_ROOT_PATH', './../');
  24. if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
  25. require('pagestart.' . PHP_EXT);
  26. include(IP_ROOT_PATH . 'includes/pafiledb_common.' . PHP_EXT);
  27. $custom_fields = new custom_fields();
  28. $custom_fields->custom_table = PA_CUSTOM_TABLE;
  29. $custom_fields->custom_data_table = PA_CUSTOM_DATA_TABLE;
  30. $custom_fields->init();
  31. // MX Modified - select
  32. $mode = request_var('mode', 'select');
  33. $field_id = request_var('field_id', 0);
  34. $field_ids = request_var('field_ids', array(''));
  35. $field_type = request_var('field_type', 0);
  36. if (empty($field_type))
  37. {
  38. $field_type = $custom_fields->field_rowset[$field_id]['field_type'];
  39. }
  40. $submit = (isset($_POST['submit'])) ? true : false;
  41. switch($mode)
  42. {
  43. case 'addfield':
  44. $template_file = ADM_TPL . 'pa_admin_field_add.tpl';
  45. break;
  46. case 'edit':
  47. $template_file = ADM_TPL . 'pa_admin_select_field.tpl';
  48. break;
  49. case 'add':
  50. $template_file = ADM_TPL . 'pa_admin_select_field_type.tpl';
  51. break;
  52. case 'delete':
  53. $template_file = ADM_TPL . 'pa_admin_field_delete.tpl';
  54. break;
  55. // MX Addon
  56. case 'select':
  57. $template_file = ADM_TPL . 'pa_admin_field.tpl';
  58. break;
  59. }
  60. if($submit)
  61. {
  62. if(($mode == 'do_add') && !$field_id)
  63. {
  64. $custom_fields->update_add_field($field_type);
  65. $message = $lang['Fieldadded'] . '<br /><br />' . sprintf($lang['Click_return'], '<a href="' . append_sid('admin_pa_custom.' . PHP_EXT) . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid('index.' . PHP_EXT . '?pane=right') . '">', '</a>');
  66. message_die(GENERAL_MESSAGE, $message);
  67. }
  68. elseif(($mode == 'do_add') && $field_id)
  69. {
  70. $custom_fields->update_add_field($field_type, $field_id);
  71. $message = $lang['Fieldedited'] . '<br /><br />' . sprintf($lang['Click_return'], '<a href="' . append_sid('admin_pa_custom.' . PHP_EXT) . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid('index.' . PHP_EXT . '?pane=right') . '">', '</a>');
  72. message_die(GENERAL_MESSAGE, $message);
  73. }
  74. elseif($mode == 'delete')
  75. {
  76. foreach($field_ids as $key => $value)
  77. {
  78. $custom_fields->delete_field($key);
  79. }
  80. $message = $lang['Fieldsdel'] . '<br /><br />' . sprintf($lang['Click_return'], '<a href="' . append_sid('admin_pa_custom.' . PHP_EXT) . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid('index.' . PHP_EXT . '?pane=right') . '">', '</a>');
  81. message_die(GENERAL_MESSAGE, $message);
  82. }
  83. }
  84. $template->set_filenames(array('admin' => $template_file));
  85. switch($mode)
  86. {
  87. case 'add':
  88. case 'addfield':
  89. $l_title = $lang['Afieldtitle'];
  90. break;
  91. case 'edit':
  92. $l_title = $lang['Efieldtitle'];
  93. break;
  94. case 'delete':
  95. $l_title = $lang['Dfieldtitle'];
  96. break;
  97. // MX ADdon
  98. case 'select':
  99. $l_title = $lang['Mfieldtitle'];
  100. break;
  101. }
  102. if($mode == 'add')
  103. {
  104. $s_hidden_fields = '<input type="hidden" name="mode" value="addfield" />';
  105. }
  106. elseif($mode == 'addfield')
  107. {
  108. $s_hidden_fields = '<input type="hidden" name="field_type" value="' . $field_type . '" />';
  109. $s_hidden_fields .= '<input type="hidden" name="field_id" value="' . $field_id . '" />';
  110. $s_hidden_fields .= '<input type="hidden" name="mode" value="do_add" />';
  111. }
  112. elseif($mode == 'edit')
  113. {
  114. $s_hidden_fields = '<input type="hidden" name="mode" value="addfield" />';
  115. }
  116. elseif($mode == 'delete')
  117. {
  118. $s_hidden_fields = '<input type="hidden" name="mode" value="delete" />';
  119. }
  120. $template->assign_vars(array(
  121. 'L_FIELD_TITLE' => $l_title,
  122. 'L_FIELD_EXPLAIN' => $lang['Fieldexplain'],
  123. 'S_HIDDEN_FIELDS' => $s_hidden_fields,
  124. 'S_FIELD_ACTION' => append_sid('admin_pa_custom.' . PHP_EXT)
  125. )
  126. );
  127. if($mode == 'addfield')
  128. {
  129. if($field_id)
  130. {
  131. $data = $custom_fields->get_field_data($field_id);
  132. }
  133. $template->assign_vars(array(
  134. 'L_FIELD_NAME' => $lang['Fieldname'],
  135. 'L_FIELD_NAME_INFO' => $lang['Fieldnameinfo'],
  136. 'L_FIELD_DESC' => $lang['Fielddesc'],
  137. 'L_FIELD_DESC_INFO' => $lang['Fielddescinfo'],
  138. 'L_FIELD_DATA' => $lang['Field_data'],
  139. 'L_FIELD_DATA_INFO' => $lang['Field_data_info'],
  140. 'L_FIELD_REGEX' => $lang['Field_regex'],
  141. 'L_FIELD_REGEX_INFO' => sprintf($lang['Field_regex_info'], '<a href="http://www.php.net/manual/en/function.preg-match.php" target="_blank">', '</a>'),
  142. 'L_FIELD_ORDER' => $lang['Field_order'],
  143. 'DATA' => ($field_type != INPUT && $field_type != TEXTAREA) ? TRUE : FALSE,
  144. 'REGEX' => ($field_type == INPUT || $field_type == TEXTAREA) ? TRUE : FALSE,
  145. 'ORDER' => ($field_id) ? TRUE : FALSE,
  146. 'FIELD_NAME' => $data['custom_name'],
  147. 'FIELD_DESC' => $data['custom_description'],
  148. 'FIELD_DATA' => $data['data'],
  149. 'FIELD_REGEX' => $data['regex'],
  150. 'FIELD_ORDER' => $data['field_order']
  151. )
  152. );
  153. }
  154. elseif($mode == 'add')
  155. {
  156. $field_types = array(INPUT => $lang['Input'], TEXTAREA => $lang['Textarea'], RADIO => $lang['Radio'], SELECT => $lang['Select'], SELECT_MULTIPLE => $lang['Select_multiple'], CHECKBOX => $lang['Checkbox']);
  157. $field_type_list = '<select name="field_type">';
  158. foreach($field_types as $key => $value)
  159. {
  160. $field_type_list .= '<option value="' . $key . '">' . $value . '</option>';
  161. }
  162. $field_type_list .= '</select>';
  163. $template->assign_vars(array(
  164. 'S_SELECT_FIELD_TYPE' => $field_type_list
  165. )
  166. );
  167. }
  168. elseif(($mode == 'edit') || ($mode == 'delete') || ($mode == 'select'))
  169. {
  170. foreach($custom_fields->field_rowset as $field_id => $field_data)
  171. {
  172. $template->assign_block_vars('field_row', array(
  173. 'FIELD_ID' => $field_id,
  174. 'FIELD_NAME' => $field_data['custom_name'],
  175. 'FIELD_DESC' => $field_data['custom_description']
  176. )
  177. );
  178. }
  179. }
  180. $template->display('admin');
  181. $pafiledb->_pafiledb();
  182. include(IP_ROOT_PATH . ADM . '/page_footer_admin.' . PHP_EXT);
  183. ?>