- function showsorttemplate($sortid, $sortoptionarray, $templatearray, $threadlist, $threadids = array(), $arealist = array(), $modurl) {
- global $_G;
- $searchtitle = $searchvalue = $searchunit = $stemplate = $searchtids = $sortlistarray = $skipaids = $sortdata = $_G['optionvaluelist'] = array();
- $addthreadid = !empty($threadids) ? "AND tid IN (".dimplode($threadids).")" : '';
- $query = DB::query("SELECT sortid, tid, optionid, value, expiration FROM ".DB::table('category_sortoptionvar')." WHERE sortid='$sortid' $addthreadid");
- while($sortthread = DB::fetch($query)) {
- $optionid = $sortthread['optionid'];
- $tid = $sortthread['tid'];
- $arrayoption = $sortoptionarray[$optionid];
- if($sortoptionarray[$optionid]['subjectshow']) {
- $_G['optionvaluelist'][$tid][$arrayoption['identifier']]['title'] = $arrayoption['title'];
- $_G['optionvaluelist'][$tid][$arrayoption['identifier']]['unit'] = $arrayoption['unit'];
- if(in_array($arrayoption['type'], array('radio', 'checkbox', 'select'))) {
- if($arrayoption['type'] == 'checkbox') {
- foreach(explode("\t", $sortthread['value']) as $choiceid) {
- $sortthreadlist[$tid][$arrayoption['title']] .= $arrayoption['choices'][$choiceid].' ';
- $_G['optionvaluelist'][$tid][$arrayoption['identifier']]['value'] .= $arrayoption['choices'][$choiceid].' ';
- }
- } else {
- $sortthreadlist[$tid][$arrayoption['title']] = $_G['optionvaluelist'][$tid][$arrayoption['identifier']]['value'] = $arrayoption['choices'][$sortthread['value']];
- }
- } else {
- if($sortthread['value']) {
- $sortthreadlist[$tid][$arrayoption['title']] = $_G['optionvaluelist'][$tid][$arrayoption['identifier']]['value'] = $sortthread['value'];
- } else {
- $sortthreadlist[$tid][$arrayoption['title']] = $_G['optionvaluelist'][$tid][$arrayoption['identifier']]['value'] = $arrayoption['defaultvalue'];
- $_G['optionvaluelist'][$tid][$arrayoption['identifier']]['unit'] = '';
- }
- }
- $sortthreadlist[$tid]['sortid'] = $sortid;
- }
- }
- if($templatearray && $sortthreadlist) {
- foreach($threadlist as $thread) {
- $sortdata[$thread['tid']]['recommend'] = $thread['recommend'] ? '<span class="rec">'.lang('category/template', 'house_stick').'</span>' : '';
- $sortdata[$thread['tid']]['displayorder'] = $thread['displayorder'] ? '<span class="pin">'.lang('category/template', 'totop').'</span>' : '';
- $sortdata[$thread['tid']]['attach'] = $thread['attachnum'] > 1 ? '<span class="pic">'.lang('category/template', 'house_imgs').'</span>' : '';
- $sortdata[$thread['tid']]['subjecturl'] = '<a href="'.$modurl.'?mod=view&tid='.$thread['tid'].'" '.$thread['highlight'].'>'.$thread['subject'].'</a>';
- $sortdata[$thread['tid']]['subject'] = $thread['subject'];
- $sortdata[$thread['tid']]['author'] = $thread['authorid'] ? '<a href="'.$modurl.'?mod=broker&action=my&uid='.$thread['authorid'].'" target="_blank">'.$thread['author'].'</a>' : $thread['author'];
- $sortdata[$thread['tid']]['image'] = $thread['attachid'] ? '<img src="'.getcateimg($thread['attachid']).'">' : '<img src="template/default/category/images/noupload.gif">';
- $sortdata[$thread['tid']]['dateline'] = $thread['dateline'] ? dgmdate($thread['dateline'], 'u') : '';
- $sortdata[$thread['tid']]['city'] = $thread['city'] ? $arealist['city'][$thread['city']] : '';
- $sortdata[$thread['tid']]['district'] = $thread['district'] ? $arealist['district'][$thread['city']][$thread['district']] : '';
- $sortdata[$thread['tid']]['street'] = $thread['street'] ? $arealist['street'][$thread['district']][$thread['street']] : '';
- $sortdata[$thread['tid']]['expiration'] = $thread['expiration'] && $thread['expiration'] < TIMESTAMP ? '<span class="over">'.lang('category/template', 'house_overdue').'</span>' : '';
- }
- foreach($sortoptionarray as $sortid => $option) {
- if($option['subjectshow']) {
- $searchtitle[] = '/{('.$option['identifier'].')}/e';
- $searchvalue[] = '/\[('.$option['identifier'].')value\]/e';
- $searchunit[] = '/\[('.$option['identifier'].')unit\]/e';
- }
- }
- foreach($sortthreadlist as $tid => $option) {
- $stemplate[$tid] = preg_replace(array("/\{city\}/i", "/\{district\}/i", "/\{street\}/i", "/\{image\}/i", "/\{attach\}/i", "/\{recommend\}/i", "/\{displayorder\}/i", "/\{dateline\}/i", "/\{author\}/i", "/\{subjecturl\}/i", "/\{subject\}/i", "/\{expiration\}/i", "/\[url\](.+?)\[\/url\]/i"),
- array(
- $sortdata[$tid]['city'],
- $sortdata[$tid]['district'],
- $sortdata[$tid]['street'],
- $sortdata[$tid]['image'],
- $sortdata[$tid]['attach'],
- $sortdata[$tid]['recommend'],
- $sortdata[$tid]['displayorder'],
- $sortdata[$tid]['dateline'],
- $sortdata[$tid]['author'],
- $sortdata[$tid]['subjecturl'],
- $sortdata[$tid]['subject'],
- $sortdata[$tid]['expiration'],
- "<a href="$modurl?mod=view&tid=$tid">\\1</a>"
- ), stripslashes($templatearray));
- $stemplate[$tid] = preg_replace($searchtitle, "showlistoption('\\1', 'title', '$tid')", $stemplate[$tid]);
- $stemplate[$tid] = preg_replace($searchvalue, "showlistoption('\\1', 'value', '$tid')", $stemplate[$tid]);
- $stemplate[$tid] = preg_replace($searchunit, "showlistoption('\\1', 'unit', '$tid')", $stemplate[$tid]);
- }
- }
- $sortlistarray['template'] = $stemplate;
- return $sortlistarray;
- }
- function showlistoption($var, $type, $tid) {
- global $_G;
- if($_G['optionvaluelist'][$tid][$var][$type]) {
- return $_G['optionvaluelist'][$tid][$var][$type];
- } else {
- return '';
- }
- }
- function showvisitlistoption($var, $type, $tid) {
- global $_G;
- if($_G['optionvisitlist'][$tid][$var][$type]) {
- return $_G['optionvisitlist'][$tid][$var][$type];
- } else {
- return '';
- }
- }
- function neighborhood($tid, $sortid, $cityid, $districtid, $streetid, $sortoptionarray, $template, $modurl) {
- global $_G;
- $optionlist = $data = $datalist = $searchvalue = $searchunit = $stemplate = $imagelist = $_G['optionvaluelist'] = array();
- $valuefield = '';
- foreach($sortoptionarray as $optionid => $option) {
- if($option['visitedshow']) {
- $valuefield .= ','.$option['identifier'];
- $optionlist[$option['identifier']]['unit'] = $option['unit'];
- $searchvalue[] = '/\[('.$option['identifier'].')value\]/e';
- $searchunit[] = '/\[('.$option['identifier'].')unit\]/e';
- $optionlist['attachid'] = '';
- }
- }
- $query = DB::query("SELECT tid, attachid $valuefield FROM ".DB::table('category_sortvalue')."$sortid WHERE city='$cityid' AND district='$districtid' AND street='$streetid' AND tid!='$tid' ORDER BY dateline DESC LIMIT 5");
- while($thread = DB::fetch($query)) {
- foreach($optionlist as $identifier => $option) {
- $_G['optionvaluelist'][$thread['tid']][$identifier]['unit'] = $option['unit'];
- $_G['optionvaluelist'][$thread['tid']][$identifier]['value'] = $thread[$identifier];
- if($identifier == 'attachid') {
- $imagelist[$thread['tid']] = $thread['attachid'] ? '<img src="'.getcateimg($thread['attachid'], 0, 48, 48).'">' : '<img src="template/default/category/images/noupload.gif" width="48" height="48">';
- } else {
- $data[$thread['tid']] = $thread['tid'];
- }
- }
- }
- foreach($data as $tid => $option) {
- $datalist[$tid] = preg_replace(array("/\{image\}/i", "/\[url\](.+?)\[\/url\]/i"),
- array($imagelist[$tid], "<a href="$modurl?mod=view&tid=$tid">\\1</a>"
- ), stripslashes($template));
- $datalist[$tid] = preg_replace($searchvalue, "showlistoption('\\1', 'value', '$tid')", $datalist[$tid]);
- $datalist[$tid] = preg_replace($searchunit, "showlistoption('\\1', 'unit', '$tid')", $datalist[$tid]);
- }
- return $datalist;
- }
- function threadsortshow($tid, $sortoptionarray, $templatearray, $authorid, $groupid) {
- global $_G;
- $optiondata = $searchtitle = $searchvalue = $searchunit = $memberinfofield = $_G['category_option'] = array();
- $intermediary = '';
- if($sortoptionarray) {
- $query = DB::query("SELECT optionid, value, expiration FROM ".DB::table('category_sortoptionvar')." WHERE tid='$tid'");
- while($option = DB::fetch($query)) {
- $optiondata[$option['optionid']]['value'] = $option['value'];
- $optiondata[$option['optionid']]['expiration'] = $option['expiration'] && $option['expiration'] <= TIMESTAMP ? 1 : 0;
- $sortdataexpiration = $option['expiration'];
- }
- foreach($sortoptionarray as $optionid => $option) {
- $_G['category_option'][$option['identifier']]['title'] = $option['title'];
- $_G['category_option'][$option['identifier']]['unit'] = $option['unit'];
- $_G['category_option'][$option['identifier']]['type'] = $option['type'];
- if(($option['expiration'] && !$optiondata[$optionid]['expiration']) || empty($option['expiration'])) {
- if(($option['protect']['usergroup'] && strstr("\t".$option['protect']['usergroup']."\t", "\t$_G[groupid]\t")) || empty($option['protect']['usergroup']) || ($authorid == $_G['uid'] && !empty($_G['uid']))) {
- if($option['type'] == 'checkbox') {
- $_G['category_option'][$option['identifier']]['value'] = '';
- foreach(explode("\t", $optiondata[$optionid]['value']) as $choiceid) {
- $_G['category_option'][$option['identifier']]['value'] .= $option['choices'][$choiceid].' ';
- }
- } elseif(in_array($option['type'], array('radio', 'select', 'intermediary'))) {
- if($option['type'] == 'intermediary' && $groupid != 1) {
- $_G['category_option'][$option['identifier']]['value'] = $_G['category_usergrouplist'][$groupid]['title'];
- } else {
- $_G['category_option'][$option['identifier']]['value'] = $option['choices'][$optiondata[$optionid]['value']];
- }
- } elseif($option['type'] == 'url') {
- $_G['category_option'][$option['identifier']]['value'] = $optiondata[$optionid]['value'] ? "<a href="".$optiondata[$optionid]['value']."" target="_blank">".$optiondata[$optionid]."</a>" : '';
- } elseif($option['type'] == 'textarea') {
- $_G['category_option'][$option['identifier']]['value'] = $optiondata[$optionid]['value'] ? nl2br($optiondata[$optionid]['value']) : '';
- } elseif($option['type'] == 'phone') {
- if($option['numbercheck'] && $groupid == 1 && $optiondata[$optionid]['value']) {
- $intermediary = checkphonenum($optiondata[$optionid]['value'], 'check') >= 5 ? '<div class="intermediary">'.lang('category/template', 'house_friend_tips').'</div>' : '';
- }
- $_G['category_option'][$option['identifier']]['value'] = $optiondata[$optionid]['value'] ? $optiondata[$optionid]['value'] : $option['defaultvalue'];
- } else {
- $_G['category_option'][$option['identifier']]['value'] = $optiondata[$optionid]['value'];
- }
- if($option['protect']['status'] && $optiondata[$optionid]['value'] && $_G['uid'] != $authorid) {
- if($option['protect']['mode'] == 1) {
- $_G['category_option'][$option['identifier']]['value'] = '<image src="category.php?mod=misc&action=protectsort&sortvalue='.$optiondata[$optionid]['value'].'">';
- } elseif($option['protect']['mode'] == 2) {
- $_G['category_option'][$option['identifier']]['value'] = '<span id="sortmessage_'.$option['identifier'].'"><a href="javascript:;" onclick="ajaxget(\'category.php?mod=misc&action=protectsort&tid='.$tid.'&optionid='.$optionid.'\', \'sortmessage_'.$option['identifier'].'\')">'.lang('category/template', 'house_click').'</a></span>';
- } elseif($option['protect']['mode'] == 4) {
- $exist = DB::result_first('SELECT tid FROM '.DB::table('category_payoption')." WHERE uid='$_G[uid]' AND tid='$tid' AND optionid='$optionid'");
- if(empty($exist)) {
- $creditsid = $option['protect']['credits']['title'];
- $creditsname = $_G['setting']['extcredits'][$creditsid]['title'];
- $price = $option['protect']['credits']['price'];
- $_G['category_option'][$option['identifier']]['value'] = '<a href="###" onclick="showWindow(\'buyoption\', \'category.php?mod=misc&action=buyoption&optionid='.$optionid.'&tid='.$tid.'&handlekey=forumthread\');">
- '.lang('category/template', 'house_buy_view').$price.$creditsname.lang('category/template', 'house_buy_view').'</a>';
- } else {
- $_G['category_option'][$option['identifier']]['value'] = $optiondata[$optionid]['value'];
- }
- }
- }
- if(empty($_G['category_option'][$option['identifier']]['value'])) {
- $_G['category_option'][$option['identifier']]['value'] = $option['defaultvalue'];
- $_G['category_option'][$option['identifier']]['unit'] = '';
- }
- } else {
- $_G['category_option'][$option['identifier']]['value'] = lang('category/template', 'house_nopur_view');
- }
- } else {
- $_G['category_option'][$option['identifier']]['value'] = lang('category/template', 'house_view_expired');
- }
- }
- $typetemplate = '';
- if($templatearray) {
- foreach($sortoptionarray as $option) {
- $searchtitle[] = '/{('.$option['identifier'].')}/e';
- $searchvalue[] = '/\[('.$option['identifier'].')value\]/e';
- $searchunit[] = '/\[('.$option['identifier'].')unit\]/e';
- }
- $threadexpiration = $sortdataexpiration ? dgmdate($sortdataexpiration) : lang('category/template', 'house_perpetual');
- $typetemplate = preg_replace(array("/\{expiration\}/i", "/\{intermediary\}/i"), array($threadexpiration, $intermediary), stripslashes($templatearray));
- $typetemplate = preg_replace($searchtitle, "showcateoption('\\1', 'title')", $typetemplate);
- $typetemplate = preg_replace($searchvalue, "showcateoption('\\1', 'value')", $typetemplate);
- $typetemplate = preg_replace($searchunit, "showcateoption('\\1', 'unit')", $typetemplate);
- }
-
-
-
- }
- $threadsortshow['optionlist'] = $_G['category_option'];
- $threadsortshow['typetemplate'] = $typetemplate;
- $threadsortshow['style1'] = $style1;
- $threadsortshow['expiration'] = dgmdate($sortdataexpiration, 'd');
- return $threadsortshow;
- }
-
复制代码 为什么不吧这个函数优化下呢 加上一个sytle 的样式 自定义这样我们可以随意的设计模板格式啊老大 你的那个默认的东西 太多了 我想给他分开 |