admincp_district.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: admincp_district.php 26298 2011-12-08 03:58:22Z chenmengshu $
  7. */
  8. if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
  9. exit('Access Denied');
  10. }
  11. cpheader();
  12. shownav('global', 'district');
  13. $values = array(intval($_GET['pid']), intval($_GET['cid']), intval($_GET['did']));
  14. $elems = array($_GET['province'], $_GET['city'], $_GET['district']);
  15. $level = 1;
  16. $upids = array(0);
  17. $theid = 0;
  18. for($i=0;$i<3;$i++) {
  19. if(!empty($values[$i])) {
  20. $theid = intval($values[$i]);
  21. $upids[] = $theid;
  22. $level++;
  23. } else {
  24. for($j=$i; $j<3; $j++) {
  25. $values[$j] = '';
  26. }
  27. break;
  28. }
  29. }
  30. if(submitcheck('editsubmit')) {
  31. $delids = array();
  32. foreach(C::t('common_district')->fetch_all_by_upid($theid) as $value) {
  33. $usetype = 0;
  34. if($_POST['birthcity'][$value['id']] && $_POST['residecity'][$value['id']]) {
  35. $usetype = 3;
  36. } elseif($_POST['birthcity'][$value['id']]) {
  37. $usetype = 1;
  38. } elseif($_POST['residecity'][$value['id']]) {
  39. $usetype = 2;
  40. }
  41. if(!isset($_POST['district'][$value['id']])) {
  42. $delids[] = $value['id'];
  43. } elseif($_POST['district'][$value['id']] != $value['name'] || $_POST['displayorder'][$value['id']] != $value['displayorder'] || $usetype != $value['usetype']) {
  44. C::t('common_district')->update($value['id'], array('name'=>$_POST['district'][$value['id']], 'displayorder'=>$_POST['displayorder'][$value['id']], 'usetype'=>$usetype));
  45. }
  46. }
  47. if($delids) {
  48. $ids = $delids;
  49. for($i=$level; $i<4; $i++) {
  50. $ids = array();
  51. foreach(C::t('common_district')->fetch_all_by_upid($delids) as $value) {
  52. $value['id'] = intval($value['id']);
  53. $delids[] = $value['id'];
  54. $ids[] = $value['id'];
  55. }
  56. if(empty($ids)) {
  57. break;
  58. }
  59. }
  60. C::t('common_district')->delete($delids);
  61. }
  62. if(!empty($_POST['districtnew'])) {
  63. $inserts = array();
  64. $displayorder = '';
  65. foreach($_POST['districtnew'] as $key => $value) {
  66. $displayorder = trim($_POST['districtnew_order'][$key]);
  67. $value = trim($value);
  68. if(!empty($value)) {
  69. C::t('common_district')->insert(array('name' => $value, 'level' => $level, 'upid' => $theid, 'displayorder' => $displayorder));
  70. }
  71. }
  72. }
  73. cpmsg('setting_district_edit_success', 'action=district&pid='.$values[0].'&cid='.$values[1].'&did='.$values[2], 'succeed');
  74. } else {
  75. showsubmenu('district');
  76. showtips('district_tips');
  77. showformheader('district&pid='.$values[0].'&cid='.$values[1].'&did='.$values[2]);
  78. showtableheader();
  79. $options = array(1=>array(), 2=>array(), 3=>array());
  80. $thevalues = array();
  81. foreach(C::t('common_district')->fetch_all_by_upid($upids) as $value) {
  82. $options[$value['level']][] = array($value['id'], $value['name']);
  83. if($value['upid'] == $theid) {
  84. $thevalues[] = array($value['id'], $value['name'], $value['displayorder'], $value['usetype']);
  85. }
  86. }
  87. $names = array('province', 'city', 'district');
  88. for($i=0; $i<3;$i++) {
  89. $elems[$i] = !empty($elems[$i]) ? $elems[$i] : $names[$i];
  90. }
  91. $html = '';
  92. for($i=0;$i<3;$i++) {
  93. $l = $i+1;
  94. $jscall = ($i == 0 ? 'this.form.city.value=\'\';this.form.district.value=\'\';' : '')."refreshdistrict('$elems[0]', '$elems[1]', '$elems[2]')";
  95. $html .= '<select name="'.$elems[$i].'" id="'.$elems[$i].'" onchange="'.$jscall.'">';
  96. $html .= '<option value="">'.lang('spacecp', 'district_level_'.$l).'</option>';
  97. foreach($options[$l] as $option) {
  98. $selected = $option[0] == $values[$i] ? ' selected="selected"' : '';
  99. $html .= '<option value="'.$option[0].'"'.$selected.'>'.$option[1].'</option>';
  100. }
  101. $html .= '</select>&nbsp;&nbsp;';
  102. }
  103. echo cplang('district_choose').' &nbsp; '.$html;
  104. showsubtitle($values[0] ? array('', 'display_order', 'name', 'operation') : array('', 'display_order', 'name', 'district_birthcity', 'district_residecity', 'operation'));
  105. foreach($thevalues as $value) {
  106. $valarr = array();
  107. $valarr[] = '';
  108. $valarr[] = '<input type="text" id="displayorder_'.$value[0].'" class="txt" name="displayorder['.$value[0].']" value="'.$value[2].'"/>';
  109. $valarr[] = '<p id="p_'.$value[0].'"><input type="text" id="input_'.$value[0].'" class="txt" name="district['.$value[0].']" value="'.$value[1].'"/></p>';
  110. if(!$values[0]) {
  111. $valarr[] = '<input type="checkbox" name="birthcity['.$value[0].']" value="1" class="checkbox"'.($value[3] && in_array($value[3], array(1,3)) ? ' checked="checked" ':'').' />';
  112. $valarr[] = '<input type="checkbox" name="residecity['.$value[0].']" value="1" class="checkbox"'.($value[3] && in_array($value[3], array(2,3)) ? ' checked="checked" ':'').' />';
  113. }
  114. $valarr[] = '<a href="javascript:;" onclick="deletedistrict('.$value[0].');return false;">'.cplang('delete').'</a>';
  115. showtablerow('id="td_'.$value[0].'"', array('', 'class="td25"','','','',''), $valarr);
  116. }
  117. showtablerow('', array('colspan=2'), array(
  118. '<div><a href="javascript:;" onclick="addrow(this, 0, 1);return false;" class="addtr">'.cplang('add').'</a></div>'
  119. ));
  120. showsubmit('editsubmit', 'submit');
  121. $adminurl = ADMINSCRIPT.'?action=district';
  122. echo <<<SCRIPT
  123. <script type="text/javascript">
  124. var rowtypedata = [
  125. [[1,'', ''],[1,'<input type="text" class="txt" name="districtnew_order[]" value="0" />', 'td25'],[2,'<input type="text" class="txt" name="districtnew[]" value="" />', '']],
  126. ];
  127. function refreshdistrict(province, city, district) {
  128. location.href = "$adminurl"
  129. + "&province="+province+"&city="+city+"&district="+district
  130. +"&pid="+$(province).value + "&cid="+$(city).value+"&did="+$(district).value;
  131. }
  132. function editdistrict(did) {
  133. $('input_' + did).style.display = "block";
  134. $('span_' + did).style.display = "none";
  135. }
  136. function deletedistrict(did) {
  137. var elem = $('p_' + did);
  138. elem.parentNode.removeChild(elem);
  139. var elem = $('td_' + did);
  140. elem.parentNode.removeChild(elem);
  141. }
  142. </script>
  143. SCRIPT;
  144. showtablefooter();
  145. showformfooter();
  146. }
  147. ?>