Example #1
0
 function getSearchvalue($field, $type, $alltidtype = false, $backtype = false)
 {
     /*获取搜索结果*/
     global $db_perpage, $page, $actmid, $fid, $basename;
     $field = unserialize(StrCode($field, 'DECODE'));
     $sqladd = '';
     $defaultValueTableName = getActivityValueTableNameByActmid();
     $fid && ($sqladd .= " {$defaultValueTableName}.fid=" . S::sqlEscape($fid));
     $fielddb = PW_PostActivity::getFieldData($actmid, $type);
     if ($actmid) {
         $userDefinedTableName = getActivityValueTableNameByActmid($actmid, 1, 1);
     } else {
         $userDefinedTableName = '';
     }
     foreach ($field as $key => $value) {
         if ($value) {
             if ($fielddb[$key]['ifdel']) {
                 $tableName = $userDefinedTableName . '.';
             } elseif ($fielddb[$key]) {
                 $tableName = $defaultValueTableName ? $defaultValueTableName . '.' : '';
             } else {
                 continue;
             }
             if (in_array($fielddb[$key]['type'], array('number', 'radio', 'select'))) {
                 $sqladd .= $sqladd ? " AND " . $tableName . $fielddb[$key]['fieldname'] . "=" . S::sqlEscape($value) : $tableName . $fielddb[$key]['fieldname'] . "=" . S::sqlEscape($value);
             } elseif ($fielddb[$key]['type'] == 'checkbox') {
                 $checkboxs = '';
                 foreach ($value as $cv) {
                     $checkboxs .= $checkboxs ? ',' . $cv : $cv;
                 }
                 $value = '%,' . $checkboxs . ',%';
                 $sqladd .= $sqladd ? " AND " . $tableName . $fielddb[$key]['fieldname'] . " LIKE(" . S::sqlEscape($value) . ")" : $tableName . $fielddb[$key]['fieldname'] . " LIKE(" . S::sqlEscape($value) . ")";
             } elseif ($fielddb[$key]['type'] == 'calendar') {
                 $value && ($value = PwStrtoTime($value));
                 if (strpos($fielddb[$key]['fieldname'], 'start') !== false) {
                     $sqladd .= $sqladd ? " AND " . $tableName . $fielddb[$key]['fieldname'] . ">=" . S::sqlEscape($value) : $tableName . $fielddb[$key]['fieldname'] . ">=" . S::sqlEscape($value);
                 } elseif (strpos($fielddb[$key]['fieldname'], 'end') !== false) {
                     $starttimeFlag = substr($fielddb[$key]['fieldname'], 0, -7) . 'starttime';
                     if ($value <= PwStrtoTime($field[$starttimeFlag]) && $field[$starttimeFlag]) {
                         Showmsg('calendar_error');
                     }
                     $sqladd .= $sqladd ? " AND " . $tableName . $starttimeFlag . "<=" . S::sqlEscape($value) : $tableName . $starttimeFlag . "<=" . S::sqlEscape($value);
                 } else {
                     $sqladd .= $sqladd ? " AND " . $tableName . $fielddb[$key]['fieldname'] . ">=" . S::sqlEscape($value['start']) . " AND " . $tableName . $fielddb[$key]['fieldname'] . "<=" . S::sqlEscape($value['end']) : $tableName . $fielddb[$key]['fieldname'] . ">=" . S::sqlEscape($value['start']) . " AND " . $tableName . $fielddb[$key]['fieldname'] . "<=" . S::sqlEscape($value['end']);
                 }
             } elseif (in_array($fielddb[$key]['type'], array('text', 'url', 'email', 'textarea'))) {
                 $value = '%' . $value . '%';
                 $sqladd .= $sqladd ? " AND " . $tableName . $fielddb[$key]['fieldname'] . " LIKE(" . S::sqlEscape($value) . ")" : $tableName . $fielddb[$key]['fieldname'] . " LIKE(" . S::sqlEscape($value) . ")";
             } elseif ($fielddb[$key]['type'] == 'range' && $value['min'] && $value['max']) {
                 $sqladd .= $sqladd ? " AND " . $tableName . $fielddb[$key]['fieldname'] . ">=" . S::sqlEscape($value['min']) . " AND " . $tableName . $fielddb[$key]['fieldname'] . "<=" . S::sqlEscape($value['max']) : $tableName . $fielddb[$key]['fieldname'] . ">=" . S::sqlEscape($value['min']) . " AND " . $tableName . $fielddb[$key]['fieldname'] . "<=" . S::sqlEscape($value['max']);
             } else {
                 $sqladd .= '';
             }
         }
     }
     if ($sqladd) {
         !$page && ($page = 1);
         $start = ($page - 1) * $db_perpage;
         $limit = S::sqlLimit($start, $db_perpage);
         $actmidSql = $actmid ? "AND actmid=" . S::sqlEscape($actmid) : '';
         $sqladd .= $sqladd ? " AND {$defaultValueTableName}.ifrecycle=0 " . $actmidSql : " {$defaultValueTableName}.ifrecycle=0 " . $actmidSql;
         $count = $this->db->get_value("SELECT COUNT(*) as count FROM {$defaultValueTableName} " . ($userDefinedTableName ? "LEFT JOIN {$userDefinedTableName} USING (tid)" : "") . " WHERE {$sqladd}");
         $query = $this->db->query("SELECT tid \n\t\t\t\t\t\t\t\t\tFROM {$defaultValueTableName} " . ($userDefinedTableName ? "LEFT JOIN {$userDefinedTableName} USING (tid)" : "") . " \n\t\t\t\t\t\t\t\t\tWHERE {$sqladd} {$limit}");
         while ($rt = $this->db->fetch_array($query)) {
             $tiddb[] = $rt['tid'];
         }
         if ($alltidtype) {
             $query = $this->db->query("SELECT tid FROM {$defaultValueTableName} " . ($userDefinedTableName ? "LEFT JOIN {$userDefinedTableName} USING (tid)" : "") . " WHERE {$sqladd}");
             while ($rt = $this->db->fetch_array($query)) {
                 $alltiddb[] = $rt['tid'];
             }
         }
         !$count && ($count = -1);
     } else {
         if ($backtype) {
             adminmsg('topic_search_none', "{$basename}&action=topic&actmid={$actmid}");
         }
         Showmsg('topic_search_none');
     }
     return array($count, $tiddb, $alltiddb);
 }
Example #2
0
     } elseif ($rt['ifasearch'] == 1) {
         unset($rt['fieldvalue']);
         $asearchhtml .= getSearchHtml($rt);
     }
 }
 $searchhtml && ($searchhtml .= '</span>');
 $asearchhtml && ($asearchhtml .= '</span>');
 if (strpos($searchhtml, '</span></span>') !== false) {
     $searchhtml = str_replace('</span></span>', '</span>', $searchhtml);
 }
 if (strpos($asearchhtml, '</span></span>') !== false) {
     $asearchhtml = str_replace('</span></span>', '</span>', $asearchhtml);
 }
 if ('search' == $step) {
     L::loadClass('PostActivity', 'activity', false);
     $searchTopic = new PW_PostActivity($field);
     if (!$newfield) {
         $newfield = StrCode(serialize($field));
     }
     list($count, $tiddb, $alltiddb) = $searchTopic->getSearchvalue($newfield, 'one', true, true);
     is_array($tiddb) && ($sql .= " AND tv.tid IN(" . S::sqlImplode($tiddb) . ")");
     is_array($alltiddb) && ($alltids = implode(',', $alltiddb));
 }
 if ($step != 'search' || !$count) {
     $alltiddb = $threadb = $newtiddb = array();
     $query = $db->query("SELECT tid FROM {$tablename} WHERE ifrecycle=0");
     while ($rt = $db->fetch_array($query)) {
         $alltiddb[] = $rt['tid'];
     }
     if ($alltiddb) {
         $query = $db->query("SELECT tid FROM pw_threads WHERE tid IN(" . S::sqlImplode($alltiddb) . ")");
Example #3
0
 /**
  * 返回活动阅读页AA活动HTML/帖子内容显示
  * @param int $actmid 活动模板id
  * @param array $actdb 字段的值,形如array(bool [字段]  => 字段值,)
  * @return string HTML
  * @access private
  */
 function getActValue($actmid, $actdb = array())
 {
     global $tid, $imgpath, $authorid, $subject, $paymethod;
     if (!isset($this->activitymodeldb[$actmid])) {
         return;
     }
     $activityReadFieldsHtml = "<link rel=\"stylesheet\" type=\"text/css\" href=\"{$imgpath}/activity/read.css\" />" . '<div class="cc">';
     $FlashHtml = "<div id=\"pwSlidePlayer\" class=\"pwSlide fr\" style=\"margin-right:60px;\">";
     $activityValue = array();
     $defaultValueTableName = getActivityValueTableNameByActmid();
     if (isset($actdb) && count($actdb) > 0) {
         $tempdb = $this->db->get_one("SELECT iscertified,iscancel,paymethod,batch_no,fees,feesdetail FROM {$defaultValueTableName} WHERE tid=" . S::sqlEscape($tid));
         $activityValue = $actdb;
         !$activityValue['fees'] && ($activityValue['fees'] = $tempdb['fees']);
         !$activityValue['fees'] && ($activityValue['feesdetail'] = $tempdb['feesdetail']);
         $activityValue['iscertified'] = $tempdb['iscertified'];
         $activityValue['batch_no'] = $tempdb['batch_no'];
         $activityValue['paymethod'] = $tempdb['paymethod'];
         $activityValue['iscancel'] = $tempdb['iscancel'];
     } else {
         $userDefinedValueTableName = getActivityValueTableNameByActmid($actmid, 1, 1);
         $activityValue = $this->db->get_one("SELECT iscertified,iscancel,actmid,out_biz_no,batch_no,recommend,starttime,endtime,location,contact,telephone,picture1,picture2,picture3,picture4,picture5,signupstarttime,signupendtime,minparticipant,maxparticipant,userlimit,specificuserlimit,genderlimit,fees,feesdetail,paymethod,pushtime,updatetime,ut.* FROM {$defaultValueTableName} dt LEFT JOIN {$userDefinedValueTableName} ut USING(tid) WHERE dt.tid=" . S::sqlEscape($tid));
     }
     /*数据交互*/
     if ($this->timestamp - $activityValue['pushtime'] > 86400 && $activityValue['updatetime'] > $activityValue['pushtime']) {
         //每日更新一次\报名列表有所变动
         $this->pushActivityToAppCenter($tid, $actmid);
     }
     /*数据交互*/
     if (!unserialize($activityValue['feesdetail'])) {
         unset($activityValue['feesdetail']);
     }
     //释放费用明细变量
     $activityValue['authorid'] = $authorid;
     //作者赋值
     $paymethod = $activityValue['paymethod'];
     //支付方式赋值
     /*活动未认证,检查是否支付宝绑定+实名认证 否则创建AA活动号*/
     list($signupStaus, $isCertifiedHtml) = $this->isCertified($activityValue, $tid, $actmid);
     $activityReadFieldsHtml .= $isCertifiedHtml;
     /*活动未认证,检查是否支付宝绑定+实名认证 否则创建AA活动号*/
     $tmpCount = 0;
     $flash = false;
     $activityFieldDb = $signupDb = array();
     $query = $this->db->query("SELECT * FROM pw_activityfield WHERE actmid=" . S::sqlEscape($actmid) . " AND ifable=1 ORDER BY ifdel ASC, vieworder ASC, fieldid ASC");
     while ($rt = $this->db->fetch_array($query)) {
         $activityValue && ($rt['fieldvalue'] = $activityValue[$rt['fieldname']]);
         $rt['name'] && (list($rt['name1'], $rt['name3'], $rt['name2']) = $this->getNamePartsByName($rt['name']));
         if (($rt['type'] == 'img' || $rt['type'] == 'upload') && $rt['fieldvalue']) {
             $tmpCount++;
             $rt['type'] == 'upload' && ($rt['fieldvalue'] = PW_PostActivity::getActivityImgUrl($rt['fieldvalue'], true));
             $FlashHtml .= "<div id=\"Switch_" . $rt['fieldname'] . "\" style=\"display:none;display: block;\"><img src=\"{$rt['fieldvalue']}\" width=\"240px\"/></div>";
             $flash = true;
         }
         if ($rt['type'] == 'textarea') {
             $rt['fieldvalue'] = nl2br($rt['fieldvalue']);
         }
         if ($rt['fieldid']) {
             $activityFieldDb[$rt['ifdel']][$rt['vieworder']][$rt['fieldid']] = $rt;
         }
     }
     //显示活动类型
     $activityReadFieldsHtml .= '<ul class="aa_infos"><li><em>' . getLangInfo('other', 'act_activity_type') . '</em>' . $this->activitymodeldb[$this->actmid]['name'];
     if ($signupStaus == true && $this->winduid) {
         $activityReadFieldsHtml .= " &nbsp;<a href=\"read.php?tid={$tid}#memberlist_show\">(" . getLangInfo('other', 'act_signuper_info') . ")</a></li>";
     } else {
         $activityReadFieldsHtml .= '</li>';
     }
     $activityReadFieldsHtml .= $this->getAllSectionHtml($activityFieldDb, 'read') . '<ul/>';
     //字段解析
     $this->isCancelled($activityValue, $tid, $actmid);
     //判断是否活动被取消
     if ($signupStaus == true) {
         $signupHtml = $this->getSignupHtml($activityValue);
         //获取报名状态
     }
     $FlashHtml .= "<div class=\"pwSlide-bg\"></div><ul id=\"SwitchNav\"></ul></div><script type=\"text/javascript\" src=\"js/sliderplayer.js\"></script><script>pwSliderPlayers('pwSlidePlayer');</script>";
     $flash == false && ($FlashHtml = '');
     $activityReadFieldsHtml = $FlashHtml . $activityReadFieldsHtml . $signupHtml . '</div>';
     return array($activityReadFieldsHtml, $activityValue);
 }