123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378 |
- <?php
- /**
- * [Discuz!] (C)2001-2099 Comsenz Inc.
- * This is NOT a freeware, use is subject to license terms
- *
- * $Id: resource_setting.inc.php 34815 2014-08-07 02:04:50Z nemohou $
- */
- if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
- exit('Access Denied');
- }
- require_once DISCUZ_ROOT.'./source/plugin/wechat/wechat.lib.class.php';
- require_once DISCUZ_ROOT.'./source/plugin/wechat/setting.class.php';
- WeChatSetting::menu();
- define('RSELF', 'action=plugins&operation=config&identifier=wechat&pmod=resource_setting&ac=');
- $select = array(-1 => lang('plugin/wechat', 'resource_type_all'), 0 => lang('plugin/wechat', 'resource_type_s'), 1 => lang('plugin/wechat', 'resource_type_m'));
- $ac = !empty($_GET['ac']) ? $_GET['ac'] : '';
- $filter = isset($_GET['filter']) ? intval($_GET['filter']) : -1;
- if(!$_POST) {
- if(!$ac) {
- $ppp = 9;
- $page = max(1, $_GET['page']);
- $start = ($page - 1) * $ppp;
- $count = C::t('#wechat#mobile_wechat_resource')->count_by_type($filter >= 0 ? $filter : null);
- $resource = C::t('#wechat#mobile_wechat_resource')->fetch_by_type($filter >= 0 ? $filter : null, $start, $ppp);
- $multi = multi($count, $ppp, $page, ADMINSCRIPT.'?'.RSELF.'&filter='.$filter);
- wxbox_style();
- echo <<<EOF
- <script>
- var cookiepre = '{$_G[config][cookie][cookiepre]}', cookiedomain = '{$_G[config][cookie][cookiedomain]}', cookiepath = '{$_G[config][cookie][cookiepath]}';
- function merge(id, type) {
- mids = getcookie('wechat_rids');
- var re = new RegExp('_' + id + '_', "g");
- mids = mids.replace(re, '');
- if(type) {
- mids += '_' + id + '_';
- }
- setcookie('wechat_rids', mids);
- showmerge();
- }
- function clearmerge() {
- setcookie('wechat_rids', '', -1);
- location.href = location.href;
- }
- function showmerge() {
- $('mergebtn').style.display = getcookie('wechat_rids') ? '' : 'none';
- }
- </script>
- EOF;
- showtableheader();
- $wechat_rids = explode('_', $_G['cookie']['wechat_rids']);
- foreach($select as $k => &$row) {
- $row = '<option value="'.$k.'"'.($k == $filter ? ' selected' : '').'>'.$row.'</option>';
- }
- $select = '<select onchange="location.href=\''.ADMINSCRIPT.'?'.RSELF.'&filter=\' + this.value">'.implode('', $select).'</select> ';
- foreach($resource as $row) {
- $row = dhtmlspecialchars($row);
- echo '<table class="left tb2 wxbox">'
- . '<tr class="header"><th class="partition">'.$row['name'].'<br />'
- . '<div>'
- . '<span>'
- . (!$row['type']
- ? '<label><input class="pc" type="checkbox" '.(in_array($row['id'], $wechat_rids)
- ? 'checked '
- : '')
- . 'onclick="merge('.$row['id'].', this.checked)"><a>'.lang('plugin/wechat', 'resource_merge').'</a></label> '
- : '<a href="'.ADMINSCRIPT.'?'.RSELF.'addmerge&id='.$row['id'].'" class="addtr">'.lang('plugin/wechat', 'resource_append_merge').'</a> ')
- . '<a href="'.ADMINSCRIPT.'?'.RSELF.'edit&id='.$row['id'].'">'.lang('plugin/wechat', 'resource_edit').'</a> '
- . '<a href="'.ADMINSCRIPT.'?'.RSELF.'delete&id='.$row['id'].'">'.lang('plugin/wechat', 'resource_del').'</a>'
- . '</span>'
- . dgmdate($row['dateline']).'</div></th></tr>'
- . (!$row['type']
- ? '<tr><td class="l1" title="'.$row['data']['title'].'">'.$row['data']['title'].'</td></tr>'
- . '<tr><td class="l2"><div>'.($row['data']['pic'] ? '<img src="'.$row['data']['pic'].'" />' : '').'</div></td></tr>'
- . '<tr><td class="l3">'.$row['data']['desc'].'</td></tr>'
- : '<tr><td class="l1">'.lang('plugin/wechat', 'resource_type_m').'</td></tr>'
- . '<tr><td class="l2">'.lang('plugin/wechat', 'resource_merge_count', array('count' => count($row['data']['mergeids']))).'<br /><a href="'.ADMINSCRIPT.'?'.RSELF.'edit&id='.$row['id'].'">'.lang('plugin/wechat', 'resource_view').'</a></td></tr>'
- . '<tr><td class="l3"></td></tr>')
- . '</table>';
- }
- showtablefooter();
- echo '<br style="clear:both"><div class="right pg">'.$multi.'</div>';
- echo $select.'<a href="'.ADMINSCRIPT.'?'.RSELF.'add" class="addtr">'.lang('plugin/wechat', 'resource_add').'</a> '
- . '<span id="mergebtn" '.($_G['cookie']['wechat_rids'] ? '' : ' style="display:none"').'>'
- . '<a href="'.ADMINSCRIPT.'?'.RSELF.'addmerge" class="addtr">'.lang('plugin/wechat', 'resource_type_m').'</a>'
- . '<a href="javascript:;" onclick="clearmerge()" class="lightfont">'.lang('plugin/wechat', 'resource_cancel_merge').'</a>'
- . '</span>';
- } elseif($ac == 'add') {
- showformheader('plugins&operation=config&identifier=wechat&pmod=resource_setting&ac=add', 'enctype');
- showtableheader();
- showsetting(lang('plugin/wechat', 'resource_name'), 'name', '', 'text');
- showsetting(lang('plugin/wechat', 'resource_title'), 'data[title]', '', 'text');
- showsetting(lang('plugin/wechat', 'resource_pic'), 'pic', '', 'filetext');
- showsetting(lang('plugin/wechat', 'resource_desc'), 'data[desc]', '', 'textarea');
- showsetting(lang('plugin/wechat', 'resource_content'), 'data[content]', '', 'textarea');
- showsetting(lang('plugin/wechat', 'resource_url'), 'data[url]', '', 'text');
- showsubmit('addsubmit');
- showtablefooter();
- showformfooter();
- } elseif($ac == 'addmerge') {
- $wechat_rids = explode('_', $_G['cookie']['wechat_rids']);
- $resource = C::t('#wechat#mobile_wechat_resource')->fetch_all($wechat_rids);
- if($_GET['id']) {
- $aresource = C::t('#wechat#mobile_wechat_resource')->fetch($_GET['id']);
- foreach($resource as $row) {
- if(!$aresource['data']['mergeids'][$row['id']]) {
- $aresource['data']['mergeids'][$row['id']] = 0;
- }
- }
- asort($aresource['data']['mergeids']);
- $data = array(
- 'data' => $aresource['data'],
- );
- C::t('#wechat#mobile_wechat_resource')->update($_GET['id'], $data);
- dsetcookie('wechat_rids', '', -1);
- dheader('location: '.ADMINSCRIPT.'?'.RSELF.'edit&id='.$_GET['id']);
- }
- showformheader('plugins&operation=config&identifier=wechat&pmod=resource_setting&ac=add');
- showtableheader();
- showsetting(lang('plugin/wechat', 'resource_name'), 'name', '', 'text');
- showtablefooter();
- showtableheader();
- echo '<tr class="header"><th>'.lang('plugin/wechat', 'resource_name').'</th><th>'.lang('plugin/wechat', 'resource_order').'</th></tr>';
- $i = 0;
- foreach($resource as $row) {
- echo '<tr><td><a href="'.ADMINSCRIPT.'?'.RSELF.'edit&id='.$row['id'].'">'.$row['name'].'</a></td><td><input name="data[mergeids]['.$row['id'].']" value="'.(++$i).'"></td></tr>';
- }
- showsubmit('addmergesubmit');
- showtablefooter();
- showformfooter();
- } elseif($ac == 'edit') {
- $resource = C::t('#wechat#mobile_wechat_resource')->fetch($_GET['id']);
- if(!$resource) {
- cpmsg(lang('plugin/wechat', 'resource_msg_nofound'), '', 'error');
- }
- if(!$resource['type']) {
- showformheader('plugins&operation=config&identifier=wechat&pmod=resource_setting&ac=edit&id='.$_GET['id'], 'enctype');
- showtableheader();
- showsetting(lang('plugin/wechat', 'resource_name'), 'name', $resource['name'], 'text');
- showsetting(lang('plugin/wechat', 'resource_title'), 'data[title]', $resource['data']['title'], 'text');
- showsetting(lang('plugin/wechat', 'resource_pic'), 'pic', $resource['data']['pic'], 'filetext');
- showsetting(lang('plugin/wechat', 'resource_desc'), 'data[desc]', $resource['data']['desc'], 'textarea');
- showsetting(lang('plugin/wechat', 'resource_content'), 'data[content]', $resource['data']['content'], 'textarea');
- showsetting(lang('plugin/wechat', 'resource_url'), 'data[url]', $resource['data']['url'], 'text');
- showsubmit('editsubmit');
- showtablefooter();
- showformfooter();
- } else {
- $mergeids = array_keys($resource['data']['mergeids']);
- if(!$mergeids) {
- cpmsg(lang('plugin/wechat', 'resource_msg_nofound'), '', 'error');
- }
- $sresource = C::t('#wechat#mobile_wechat_resource')->fetch_all($mergeids);
- showformheader('plugins&operation=config&identifier=wechat&pmod=resource_setting&ac=edit&id='.$_GET['id']);
- showtableheader();
- showsetting(lang('plugin/wechat', 'resource_name'), 'name', $resource['name'], 'text');
- showtablefooter();
- showtableheader();
- $i = 0;
- wxbox_style();
- foreach($resource['data']['mergeids'] as $id => $order) {
- $row = dhtmlspecialchars($sresource[$id]);
- echo '<table class="left tb2 wxbox">'
- . '<tr class="header"><th class="partition">'.$row['name'].'<br />'
- . '<div>'
- . '<span>'
- . '<a href="'.ADMINSCRIPT.'?'.RSELF.'edit&id='.$row['id'].'" target="_blank">'.lang('plugin/wechat', 'resource_edit').'</a> '
- . '<a href="'.ADMINSCRIPT.'?'.RSELF.'removemerge&id='.$row['id'].'&fromid='.$_GET['id'].'">'.lang('plugin/wechat', 'resource_remove').'</a> '
- . lang('plugin/wechat', 'resource_order').'<input name="data[mergeids]['.$id.']" class="txt" value="'.$order.'">'
- . '</span>'
- . dgmdate($row['dateline']).'</div></th></tr>'
- . '<tr><td class="l1" title="'.$row['data']['title'].'">'.$row['data']['title'].'</td></tr>'
- . '<tr><td class="l2"><div>'.($row['data']['pic'] ? '<img src="'.$row['data']['pic'].'" />' : '').'</div></td></tr>'
- . '<tr><td class="l3">'.$row['data']['desc'].'</td></tr>'
- . '</table>';
- }
- showtablefooter();
- showtableheader();
- showsubmit('editmergesubmit');
- showtablefooter();
- showformfooter();
- }
- } elseif($ac == 'delete') {
- cpmsg(lang('plugin/wechat', 'resource_msg_del'), RSELF.'&id='.$_GET['id'].'&delsubmit=yes', 'form');
- } elseif($ac == 'removemerge') {
- cpmsg(lang('plugin/wechat', 'resource_msg_remove'), RSELF.'&id='.$_GET['id'].'&fromid='.$_GET['fromid'].'&removesubmit=yes', 'form');
- } elseif($ac == 'select') {
- include template('common/header_ajax');
- $ppp = 6;
- $page = max(1, $_GET['page']);
- $start = ($page - 1) * $ppp;
- $count = C::t('#wechat#mobile_wechat_resource')->count_by_type($filter >= 0 ? $filter : null);
- $resource = C::t('#wechat#mobile_wechat_resource')->fetch_by_type($filter >= 0 ? $filter : null, $start, $ppp);
- $multi = multi($count, $ppp, $page, ADMINSCRIPT.'?action=plugins&operation=config&identifier=wechat&pmod=resource_setting&ac=select&filter='.$filter);
- wxbox_style();
- foreach($select as $k => &$row) {
- $row = '<option value="'.$k.'"'.($k == $filter ? ' selected' : '').'>'.$row.'</option>';
- }
- $select = '<select onchange="ajaxget(\''.ADMINSCRIPT.'?action=plugins&operation=config&identifier=wechat&pmod=resource_setting&ac=select&filter=\' + this.value, \'rsel_content\')">'.implode('', $select).'</select> ';
- echo '<div class="pg"><div class="right">'.$multi.'</div>'.$select.'</div>';
- showtableheader();
- $wechat_rids = explode('_', $_G['cookie']['wechat_rids']);
- foreach($resource as $row) {
- $row = dhtmlspecialchars($row);
- echo '<table class="left tb2 wxbox hover" onclick="selResource('.$row['id'].', \''.$row['name'].'\')">'
- . '<tr class="header"><th class="partition">'.$row['name'].'</tr>'
- . (!$row['type']
- ? '<tr><td class="l1" title="'.$row['data']['title'].'">'.$row['data']['title'].'</td></tr>'
- . '<tr><td class="l2"><div>'.($row['data']['pic'] ? '<img src="'.$row['data']['pic'].'" width="290" />' : '').'</div></td></tr>'
- : '<tr><td class="l1">'.lang('plugin/wechat', 'resource_type_m').'</td></tr>'
- . '<tr><td class="l2">'.lang('plugin/wechat', 'resource_merge_count', array('count' => count($row['data']['mergeids']))).'<br /><a href="javascript:;" onclick="window.open(\''.ADMINSCRIPT.'?'.RSELF.'edit&id='.$row['id'].'\');doane(event)" target="_blank">'.lang('plugin/wechat', 'resource_view').'</a></td></tr>')
- . '</table>';
- }
- showtablefooter();
- include template('common/footer_ajax');
- }
- } elseif(submitcheck('addsubmit')) {
- if(dstrlen($_GET['data']['desc'], CHARSET) > 120) {
- cpmsg(lang('plugin/wechat', 'resource_msg_desc_toolong'), '', 'error');
- }
- if($_FILES['pic']['tmp_name']) {
- $upload = new discuz_upload();
- if(!getimagesize($_FILES['pic']['tmp_name']) || !$upload->init($_FILES['pic'], 'common', random(3, 1), random(8)) || !$upload->save()) {
- cpmsg($upload->errormessage(), '', 'error');
- }
- $_GET['data']['pic'] = (preg_match('/^http:/', $_G['setting']['attachurl']) ? '' : $_G['siteurl']).$_G['setting']['attachurl'].'common/'.$upload->attach['attachment'];
- $_GET['data']['local'] = $upload->attach['attachment'];
- } else {
- $_GET['data']['pic'] = $_GET['pic'];
- }
- $data = array(
- 'name' => $_GET['name'],
- 'data' => $_GET['data'],
- );
- C::t('#wechat#mobile_wechat_resource')->insert($data);
- cpmsg('setting_update_succeed', RSELF, 'succeed');
- } elseif(submitcheck('editsubmit')) {
- $resource = C::t('#wechat#mobile_wechat_resource')->fetch($_GET['id']);
- if(!$resource) {
- cpmsg(lang('plugin/wechat', 'resource_msg_nofound'), '', 'error');
- }
- if(dstrlen($_GET['data']['desc'], CHARSET) > 120) {
- cpmsg(lang('plugin/wechat', 'resource_msg_desc_toolong'), '', 'error');
- }
- if($_FILES['pic']['tmp_name']) {
- $upload = new discuz_upload();
- if(!getimagesize($_FILES['pic']['tmp_name']) || !$upload->init($_FILES['pic'], 'common', random(3, 1), random(8)) || !$upload->save()) {
- cpmsg($upload->errormessage(), '', 'error');
- }
- $_GET['data']['pic'] = (preg_match('/^http:/', $_G['setting']['attachurl']) ? '' : $_G['siteurl']).$_G['setting']['attachurl'].'common/'.$upload->attach['attachment'];
- $_GET['data']['local'] = $upload->attach['attachment'];
- @unlink($_G['setting']['attachdir'].'common/'.$resource['data']['local']);
- } else {
- $_GET['data']['pic'] = $_GET['pic'];
- }
- $data = array(
- 'name' => $_GET['name'],
- 'data' => $_GET['data'],
- );
- C::t('#wechat#mobile_wechat_resource')->update($_GET['id'], $data);
- cpmsg('setting_update_succeed', RSELF, 'succeed');
- } elseif(submitcheck('delsubmit')) {
- $resource = C::t('#wechat#mobile_wechat_resource')->fetch($_GET['id']);
- if(!$resource) {
- cpmsg(lang('plugin/wechat', 'resource_msg_nofound'), '', 'error');
- }
- if($resource['data']['local']) {
- @unlink($_G['setting']['attachdir'].'common/'.$resource['data']['local']);
- }
- C::t('#wechat#mobile_wechat_resource')->delete($_GET['id']);
- cpmsg('setting_update_succeed', RSELF, 'succeed');
- } elseif(submitcheck('addmergesubmit')) {
- asort($_GET['data']['mergeids']);
- $data = array(
- 'name' => $_GET['name'],
- 'type' => 1,
- 'data' => $_GET['data'],
- );
- C::t('#wechat#mobile_wechat_resource')->insert($data);
- dsetcookie('wechat_rids', '', -1);
- cpmsg('setting_update_succeed', RSELF, 'succeed');
- } elseif(submitcheck('editmergesubmit')) {
- asort($_GET['data']['mergeids']);
- $data = array(
- 'name' => $_GET['name'],
- 'data' => $_GET['data'],
- );
- C::t('#wechat#mobile_wechat_resource')->update($_GET['id'], $data);
- dsetcookie('wechat_rids', '', -1);
- cpmsg('setting_update_succeed', RSELF.'edit&id='.$_GET['id'], 'succeed');
- } elseif(submitcheck('removesubmit')) {
- $resource = C::t('#wechat#mobile_wechat_resource')->fetch($_GET['fromid']);
- if(!$resource) {
- cpmsg(lang('plugin/wechat', 'resource_msg_nofound'), '', 'error');
- }
- unset($resource['data']['mergeids'][$_GET['id']]);
- $data = array(
- 'data' => $resource['data'],
- );
- C::t('#wechat#mobile_wechat_resource')->update($_GET['fromid'], $data);
- cpmsg('setting_update_succeed', RSELF.'edit&id='.$_GET['fromid'], 'succeed');
- }
- function wxbox_style() {
- echo <<<EOF
- <style>
- .wxbox { table-layout: fixed; margin:0 5px 10px 0;width:300px;height:300px; }
- .wxbox td { padding:0 2px;border: none; }
- .wxbox th { height: 50px; white-space: nowrap; }
- .wxbox th div { font-weight:normal; }
- .wxbox th div span { float:right; }
- .wxbox th div .txt { width: 40px; }
- .wxbox .l1 { height: 30px; line-height: 30px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; }
- .wxbox .l2 { text-align:center; }
- .wxbox .l2 img { width: 290px; }
- .wxbox .l2 div { width: 290px;height: 160px; display:block; overflow:hidden; }
- .wxbox .l3 { height: 80px; vertical-align:top;line-height:25px; }
- .wxbox.hover { height:220px; }
- .wxbox.hover th { height:20px; }
- </style>
- EOF;
- }
- ?>
|