public static function validate($var) { if (XF_Functions::isEmpty($var)) { return FALSE; } if (!is_scalar($var)) { return FALSE; } $tmp = explode('-', $var); if (count($tmp) != 3) { return FALSE; } if (!is_numeric($tmp[0]) || !is_numeric($tmp[1]) || !is_numeric($tmp[2])) { return FALSE; } if ($tmp[0] < 1900) { return false; } if ($tmp[1] < 1 || $tmp[1] > 12) { return false; } if ($tmp[2] < 1 || $tmp[2] > 31) { return false; } return TRUE; }
/** * session是否为空 * @return bool */ public function isEmpty() { if (!isset($_COOKIE[$this->_namespace])) { return true; } return XF_Functions::isEmpty($_COOKIE[$this->_namespace]); }
/** * 获取实例 * @access public * @return XF_View_Helper_Header_Meta */ public static function getInstance($meta = null) { if (self::$_instance === null) { self::$_instance = new self(); } if (XF_Functions::isEmpty($meta) === false) { self::$_instance->appendMeta($meta); } return self::$_instance; }
/** * 获取实例 * @access public * @return XF_View_Helper_Header_Script */ public static function getInstance($script = null) { if (self::$_instance === null) { self::$_instance = new self(); } if (XF_Functions::isEmpty($script) === false) { self::$_instance->appendFile($script); } return self::$_instance; }
/** * 获取实例 * @access public * @return XF_View_Helper_Header_Link */ public static function getInstance($link = null) { if (self::$_instance === null) { self::$_instance = new self(); } if (XF_Functions::isEmpty($link) === false) { self::$_instance->appendLink($link); } return self::$_instance; }
/** * 获取实例 * @access public * @return XF_View_Helper_Header_Title */ public static function getInstance($title = '') { if (self::$_instance === null) { self::$_instance = new self(); } if (XF_Functions::isEmpty($title) === false) { self::$_instance->appendTitle($title); } return self::$_instance; }
/** * 分析匹配结果 * @param string $uri 请求的URI * @param string $regex 具体规则 * @param array $tmp 匹配后的结果数组 * @param int $regexIndex 当前是第几个规则【是指同一个名称里的规则,不是全局】 * @return void */ private function _matchAnalysis($uri, $regex, $tmp, $regexIndex) { //是否匹配成功 if (is_array($tmp) && XF_Functions::isEmpty($tmp) === FALSE || $regex == '/' && $uri == '/') { //记录匹配到的规则方便调式用 if (XF_Config::getInstance()->getSaveDebug()) { XF_DataPool::getInstance()->addHash('DEBUG', 'Match_Rewrite', $regex); } $this->_match_status = TRUE; $request = XF_Controller_Request_Http::getInstance(); $request->setModule($this->_ma_array['module'])->setController($this->_ma_array['controller'])->setAction($this->_ma_array['action']); //是否存在自定义的附加参数 if (isset($this->_ma_array['params']) && is_array($this->_ma_array['params'])) { foreach ($this->_ma_array['params'] as $k => $val) { $request->setParam($k, $val); } } //设置匹配到的参数 if (is_array($this->_params_array)) { foreach ($this->_params_array as $key => $val) { //指定的参数是否只匹配指定位置的规则 $keyTmp = explode(':', $key); if (!isset($keyTmp[1])) { if (isset($tmp[$keyTmp[0]])) { $request->setParam($val, urldecode($tmp[$keyTmp[0]])); } } else { if ($keyTmp[0] == $regexIndex && isset($tmp[$keyTmp[1]])) { //规则位置从0开始 $request->setParam($val, urldecode($tmp[$keyTmp[1]])); } } } } //////重写URL后,尝试获取设置的参数 $uri = str_replace($tmp[0], '', $uri); $tep = explode('/', $uri); if (is_array($tep) && count($tep) >= 2) { if ($tep[0] == '') { unset($tep[0]); } $tep = array_values($tep); foreach ($tep as $key => $val) { if (isset($tep[$key + 1]) && $tep[$key + 1] != '') { $request->setParam($val, urldecode($tep[$key + 1])); } else { break; } } } } }
/** * 获取品牌关键词 */ public function brandKeywordsAction() { $b = new Auto_Model_Brand(); $keywords = $b->getBrandKeywords(); if (!XF_Functions::isEmpty($keywords)) { $tmp = array(); foreach ($keywords as $r) { $tmp[] = array('keywords' => $r->keywords, 'slug' => $r->slug, 'brand_name' => $r->brand_name, 'parent' => $r->parent, 'name' => $r->name); } $this->responseOK($tmp); } $this->responseOK(); }
public static function validate($var) { if (XF_Functions::isEmpty($var)) { return FALSE; } if (!is_scalar($var)) { return FALSE; } if (!preg_match("/^([a-zA-Z0-9]+[_|\\_|\\.|\\-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\\_|\\.|\\-]?)*[a-zA-Z0-9]+\\.[a-zA-Z]{2,3}\$/", $var)) { return FALSE; } return TRUE; }
public static function validate($var) { if (XF_Functions::isEmpty($var)) { return FALSE; } if (!is_scalar($var)) { return FALSE; } if (!ereg("\\d{15}|\\d{18}", $var)) { return FALSE; } return TRUE; }
public static function validate($var) { if (XF_Functions::isEmpty($var)) { return FALSE; } if (!is_scalar($var)) { return FALSE; } if (!preg_match("/\\d{3}-\\d{8}|\\d{4}-\\d{7}/", $var)) { return FALSE; } return TRUE; }
public static function validate($var) { if (XF_Functions::isEmpty($var)) { return FALSE; } if (!is_scalar($var)) { return FALSE; } if (!preg_match("/\\A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\\Z/", $var)) { return FALSE; } return TRUE; }
public static function validate($var) { if (XF_Functions::isEmpty($var)) { return FALSE; } if (!is_scalar($var)) { return FALSE; } if (!preg_match("/[1-9]\\d{5}(?!\\d)/", $var)) { return FALSE; } return TRUE; }
public static function validate($var) { if (XF_Functions::isEmpty($var)) { return FALSE; } if (!is_scalar($var)) { return FALSE; } if (preg_match("/[-�]/", $var)) { return TRUE; } return FALSE; }
public static function validate($var) { if (!is_numeric($var)) { return FALSE; } if (strlen($var) > 11) { return FALSE; } if (XF_Functions::isEmpty($var)) { return FALSE; } if (!is_scalar($var)) { return FALSE; } if (!preg_match("/^1(3|4|5|8|7|)\\d{10}/", $var)) { return FALSE; } return TRUE; }
public static function validate($var) { if (XF_Functions::isEmpty($var)) { return FALSE; } if (!is_scalar($var)) { return FALSE; } $tmp = explode(' ', $var); if (count($tmp) != 2) { return false; } if (XF_String_Validate_Date::validate($tmp[0]) == false) { return false; } $tmp = explode(':', $tmp[1]); if (count($tmp) != 3) { return false; } if ($tmp[0] > 23 || $tmp[0] < 0 || $tmp[1] > 59 || $tmp[1] < 0 || $tmp[2] > 59 || $tmp[2] < 0) { return false; } return TRUE; }
public function getUsedListAction() { if ($this->_request->isPost() && $this->_request->isXmlHttpRequest()) { $page = $this->getParam("page"); $brandId = $this->getParam("brandId"); $brandName = $this->getParam("brandName"); $minAge = $this->getParam("minAge"); $maxAge = $this->getParam("maxAge"); $minMile = $this->getParam("minMile"); $maxMile = $this->getParam("maxMile"); $minPrice = $this->getParam("minPrice"); $maxPrice = $this->getParam("maxPrice"); $classify = $this->getParam("classify"); $control = $this->getParam("control"); $minVolume = $this->getParam("minvolume"); $maxVolume = $this->getParam("maxvolume"); $order_key = $this->getParam("order_key"); if ($minAge == 0) { $minAge = ""; } if ($maxAge == 0) { $maxAge = ""; } if ($minMile == 0) { $minMile = ""; } if ($maxMile == 0) { $maxMile = ""; } if ($minPrice == 0) { $minPrice = ""; } if ($maxPrice == 0) { $maxPrice = ""; } if ($minVolume == 0) { $minVolume = ""; } if ($maxVolume == 0) { $maxVolume = ""; } if ($order_key == "") { $order_key = "price"; } $searchCon = array("brandId" => $brandId, "brandName" => $brandName, "minAge" => $minAge, "maxAge" => $maxAge, "minMile" => $minMile, "maxMile" => $maxMile, "minPrice" => $minPrice, "maxPrice" => $maxPrice, "classify" => $classify, "control" => $control, "minVolume" => $minVolume, "maxVolume" => $maxVolume, 'order_key' => $order_key); if (!isset($page) || XF_Functions::isEmpty($page) || !is_numeric($page) || $page < 2) { $page = 2; } $used = new Used_Model_Used(); $usedList = $used->getUsedList($this->nowCity->id, $page, 10, $searchCon); foreach ($usedList->cars as $key => $val) { $val->mile = round($val->mile); if (!XF_Functions::isEmpty($val->year)) { $val->car_age = date("Y") - $val->year; } if (!XF_Functions::isEmpty($val->source_type)) { $val->source_val = $this->source_type[$val->source_type]; } if (!XF_Functions::isEmpty($val->thumbnail)) { $val->thumbnail = $val->thumbnail . "?imageView2/1/w/190/h/142"; } else { } } $carJsons = json_encode($usedList->cars); die('{"code":"200", "cars":' . $carJsons . ' }'); } }
/** * 查询指定的字段格式化 * @access public * @param mixed $var 字符串或数组 * @return string */ public static function findFormat($var) { if (XF_Functions::isEmpty($var)) { return '*'; } if (!is_array($var)) { return $var; } else { $string = ''; for ($i = 0; $i < count($var); $i++) { if ($i == 0) { $string = '`' . $var[$i] . '`'; } else { $string .= ',`' . $var[$i] . '`'; } } return $string; } }
?> 万</div> <div class="usedr fr"> <div class="carage"><?php echo $used->car_age; ?> 年</div> <div class="mileage"><?php echo $used->mile; ?> 万公里</div> </div> </div> <div class="tags"> <?php if (!XF_Functions::isEmpty($used->source_type)) { ?> <span class="tag <?php echo $used->source_val["bg"]; ?> "><?php echo $used->source_val["name"]; ?> </span> <?php } ?> </div> </div> </a>
/** * 自动查询关联的资料 * @param mixed 封装好的查询结果 * @return mixed */ private function _autoSelectFieldAssociated($info) { $tableName = null; //一条资料 if ($info instanceof XF_Db_Table_Abstract) { $tep = $this->_readAutoSelectFieldAssociated($info); if (XF_Functions::isEmpty($tep)) { return $info; } foreach ($tep as $key => $val) { $assName = array_keys($val); $tmp = $info->selectAssociated($assName[0]); if ($val[$assName[0]]['oneToMany'] == true) { if (is_array($tmp)) { foreach ($tmp as $t) { $fields = explode(',', $val[$assName[0]]['field']); if (count($fields) > 1) { foreach ($fields as $f) { if (strpos($f, ':') === 0) { $f = str_replace(':', '', $f); $fvs = explode(',', $info->{$f}); foreach ($fvs as $_fvs) { if ($_fvs == $t->{$val[$assName[0]]['associateField']}) { $info->{$assName[0] . '_' . $f . '_all_data_count'} += 1; $count = is_array($info->{$assName[0] . '_' . $f}) ? count($info->{$assName[0] . '_' . $f}) : 0; if ($count < $val[$assName[0]]['size']) { $info->{$assName[0] . '_' . $f . '[]'} = $t; } } } } else { if ($info->{$f} == $t->{$val[$assName[0]]['associateField']}) { $info->{$assName[0] . '_' . $f . '_all_data_count'} += 1; $count = is_array($info->{$assName[0] . '_' . $f}) ? count($info->{$assName[0] . '_' . $f}) : 0; if ($count < $val[$assName[0]]['size']) { $info->{$assName[0] . '_' . $f . '[]'} = $t; } } } } } else { $info->{$assName[0] . '_all_data_count'} += 1; $count = is_array($info->{$assName[0]}) ? count($info->{$assName[0]}) : 0; if ($count < $val[$assName[0]]['size']) { $info->{$assName[0] . '[]'} = $t; } } } } } if (strpos($val[$assName[0]]['field'], ',') !== false) { $fields = explode(',', $val[$assName[0]]['field']); if (is_array($tmp)) { foreach ($tmp as $t) { foreach ($fields as $f) { if (strpos($f, ':') === 0) { $f = str_replace(':', '', $f); $fvs = explode(',', $info->{$f}); foreach ($fvs as $_fvs) { if ($_fvs == $t->{$val[$assName[0]]['associateField']}) { $info->{$assName[0] . '_' . $f . '[]'} = $t; } } } else { if ($info->{$f} == $t->{$val[$assName[0]]['associateField']}) { $info->{$assName[0] . '_' . $f} = $t; } } } } } } else { $info->{$assName[0]} = $tmp; } } } elseif (is_array($info)) { $fieldValues = array(); $allSelectFieldAssociate = array(); //按关联的表名组合将要查询的条件值 foreach ($info as $k => $v) { $tep = $this->_readAutoSelectFieldAssociated($v); if (XF_Functions::isEmpty($tep)) { return $info; } $allSelectFieldAssociate[$k] = $tep; //分析要查询关联值 foreach ($tep as $kk => $vv) { $assName = array_keys($vv); //去重复的值 $values = @$fieldValues[$vv[$assName[0]]['table']][$assName[0]][$vv[$assName[0]]['associateField']]['data']; $tmpFields = explode(',', $vv[$assName[0]]['field']); foreach ($tmpFields as $field) { //字段第一位字符是否为':'符号,该符号表示当前这个字段值是一个"数组"。例:34,531,98,1,409 if (strpos($field, ':') === 0) { $field = str_replace(':', '', $field); $infoValues = explode(',', $v->{$field}); foreach ($infoValues as $infoValue) { if ($infoValue != '' || $infoValue == '0') { $values[$infoValue] = $infoValue; } } } else { $infoValue = $v->{$field}; if ($infoValue != '' || $infoValue == '0') { $values[$infoValue] = $infoValue; } } } if ($values != null) { $fieldValues[$vv[$assName[0]]['table']][$assName[0]][$vv[$assName[0]]['associateField']]['data'] = $values; $fieldValues[$vv[$assName[0]]['table']][$assName[0]][$vv[$assName[0]]['associateField']]['_other'] = array('size' => isset($vv[$assName[0]]['size']) ? $vv[$assName[0]]['size'] : null, 'where' => isset($vv[$assName[0]]['where']) ? $vv[$assName[0]]['where'] : null, 'order' => isset($vv[$assName[0]]['order']) ? $vv[$assName[0]]['order'] : null, '_field' => isset($vv[$assName[0]]['_field']) && $vv[$assName[0]]['_field'] != '*' ? $vv[$assName[0]]['associateField'] . ',' . $vv[$assName[0]]['_field'] : '*', 'oneToMany' => $vv[$assName[0]]['oneToMany'], 'autoinit' => $this->_db_table->getInitAutoExecuteMethodFromAssociate($assName[0])); } } } $allAssociateInfos = array(); foreach ($fieldValues as $fk => $fv) { $table = new $fk(); /////检测是否需要设置当前关联对象自己的关联状态 $objectAssting = $this->_db_table->getFieldAssociateObjectAssSetting(); $_ass = $this->_db_table->getFieldAssociated(); if (is_array($_ass) && count($_ass) > 0) { foreach ($_ass as $_k => $_val) { if (isset($objectAssting[$_k])) { $matchAssting = $objectAssting[$_k]; foreach ($matchAssting as $mk => $mval) { if (get_class($table) == $mval['assObjectName']) { if ($mval['autoAssociated'] == true) { if (!empty($mval['where'])) { $table->setAssociatedAuto($mk, $mval['size'], $mval['where'], $mval['order'], $mval['_field']); } else { $table->setAssociatedAutoOnly($mk, $mval['size'], $mval['_field']); } } elseif (!empty($mval['where'])) { $table->setAssociatedManual($mk, $mval['size'], $mval['where'], $mval['order'], $mval['_field']); } else { $table->setAssociatedManualOnly($mk, $mval['size'], $mval['_field']); } } } } } } foreach ($fv as $assName => $rule) { foreach ($rule as $field => $v) { ///设置关联对象的init if (is_array($v['_other']['autoinit'])) { foreach ($v['_other']['autoinit'] as $m) { if ($m['params'] !== NULL) { array_unshift($m['params'], $m['method'], NULL); call_user_func_array(array($table, 'addInitAutoExecuteMethod'), $m['params']); } else { $table->addInitAutoExecuteMethod($m['method']); } } } $select = $table->getTableSelect(); $select->setFindField($v['_other']['_field'])->setWhere($v['_other']['where'])->setWhereIn($field, array_values($v['data']))->setOrder($v['_other']['order'])->setLimit(false); $sql = $select->getSql(); //是否为一对一查询 IN条件查询的每个值对应的查询结果可能是多条,所以需要再次分组 if ($v['_other']['oneToMany'] !== true) { $sql = "SELECT * FROM({$sql}) AS XF_NewTable GROUP BY {$field}"; } //主查询是否已缓存 if ($this->_data_cache_time > 0 && $this->_cache_class instanceof XF_Cache_Interface) { $select->setCacheClass($this->_cache_class)->setCacheTime($this->_data_cache_time); } $rs = $select->execute($sql, true); $allAssociateInfos[$fk . '=>' . $assName . '=>' . $field . ''] = $rs; } } } //组合资料 foreach ($info as $info_k => $info_v) { foreach ($allAssociateInfos as $assInfo_k => $assInfo_v) { $assInfo_ks = explode('=>', $assInfo_k); if (is_array($assInfo_v)) { ////获取当前表对象所有的关联设置 $associateAllConfig = $info_v->getFieldAssociated(); foreach ($associateAllConfig as $assConfig_k => $assConfig_v) { if ($assConfig_v['table'] . '=>' . $assConfig_v['associateField'] == $assInfo_ks[0] . '=>' . $assInfo_ks[2] && $assConfig_k == $assInfo_ks[1]) { //字段列表 $fields = explode(',', $assConfig_v['field']); foreach ($assInfo_v as $assInfo_vv) { foreach ($fields as $field) { //该字段值是否为一个"数组"。例:34,531,98,1,409 if (strpos($field, ':') === 0) { $field = substr($field, 1); $fieldValues = explode(',', $info_v->{$field}); foreach ($fieldValues as $fieldValue) { if ($fieldValue == $assInfo_vv->{$assConfig_v['associateField']}) { if (count($fields) > 1) { if ($assConfig_v['oneToMany'] == true) { //一对多时,记录总数 $info[$info_k]->{$assConfig_k . '_all_data_count'} += 1; $_count = is_array($info[$info_k]->{$assConfig_k . '_' . $field}) ? count($info[$info_k]->{$assConfig_k . '_' . $field}) : 0; if ($_count < $assConfig_v['size'] || $assConfig_v['size'] == FALSE) { $info[$info_k]->{$assConfig_k . '_' . $field . '[]'} = $assInfo_vv; } } else { $info[$info_k]->{$assConfig_k . '_' . $field} = $assInfo_vv; } } else { if ($assConfig_v['oneToMany'] == true) { //一对多时,记录总数 $info[$info_k]->{$assConfig_k . '_all_data_count'} += 1; $_count = is_array($info[$info_k]->{$assConfig_k}) ? count($info[$info_k]->{$assConfig_k}) : 0; if ($_count < $assConfig_v['size'] || $assConfig_v['size'] == FALSE) { $info[$info_k]->{$assConfig_k . '[]'} = $assInfo_vv; } } else { $info[$info_k]->{$assConfig_k} = $assInfo_vv; } } } } } elseif ($info_v->{$field} == $assInfo_vv->{$assConfig_v['associateField']}) { if (count($fields) > 1) { if ($assConfig_v['oneToMany'] == true) { //一对多时,记录总数 $info[$info_k]->{$assConfig_k . '_all_data_count'} += 1; $_count = is_array($info[$info_k]->{$assConfig_k . '_' . $field}) ? count($info[$info_k]->{$assConfig_k . '_' . $field}) : 0; if ($_count < $assConfig_v['size'] || $assConfig_v['size'] == FALSE) { $info[$info_k]->{$assConfig_k . '_' . $field . '[]'} = $assInfo_vv; } } else { $info[$info_k]->{$assConfig_k . '_' . $field} = $assInfo_vv; } } else { if ($assConfig_v['oneToMany'] == true) { //一对多时,记录总数 $info[$info_k]->{$assConfig_k . '_all_data_count'} += 1; $_count = is_array($info[$info_k]->{$assConfig_k}) ? count($info[$info_k]->{$assConfig_k}) : 0; if ($_count < $assConfig_v['size'] || $assConfig_v['size'] == FALSE) { $info[$info_k]->{$assConfig_k . '[]'} = $assInfo_vv; } } else { $info[$info_k]->{$assConfig_k} = $assInfo_vv; } } } } } } } } } } } return $info; }
public function goodinfoAction() { $submit_statue = $this->getParam('statue'); $gpj_session = new XF_Session("gpj_session"); $session_ary = $gpj_session->read(); if (!$gpj_session->hasContent("userId")) { throw new XF_Exception('补充商品信息:用户没有登录'); } if (isset($submit_statue) && !XF_Functions::isEmpty($submit_statue)) { if ($submit_statue == "submit") { $car_parts = $this->getParam("car_parts"); $car_color = $this->getParam("car_color"); $period_insurance = $this->getParam("period_insurance"); $car_maintain = $this->getParam("car_maintain"); $max_cost = $this->getParam("max_cost"); $transfer_num = $this->getParam("transfer_num"); $sellObj = new Sell_Model_Sellinfo(); $last_id = $sellObj->addSellInfo($session_ary["userId"], $session_ary["modelId"], $session_ary["changeId"], $session_ary["dataFrom"], $session_ary["infoId"], implode(",", $car_parts), $car_color, $period_insurance, $car_maintain, $max_cost, $transfer_num, $this->nowCity->id); if ($last_id) { $session_ary["sellInfoId"] = $last_id; $gpj_session->write($session_ary); XF_Functions::go("/sell/index/upload/"); } } } else { $submit_statue = "submit"; } $this->setLayout(new Layout_Default()); $this->_view->headStylesheet('/css/sell/goodinfo.css'); $this->_view->headStylesheet('/css/common.css'); $this->_view->headScript('/js/pagejs/goodinfo.js'); XF_View::getInstance()->assign('statue', $submit_statue); $this->_view->detailModel = $session_ary["detail_model"]; $this->_view->detailYear = $session_ary["detail_year"]; $this->_view->detailMile = $session_ary["detail_mile"]; $this->_view->detailPrice = $session_ary["detail_price"]; }
public function buyReportAction() { $serialId = $this->getParam('serialId'); $cityid = $this->getParam('city'); $year = $this->getParam('year'); $typeId = $this->getParam('typeId'); $mileage = $this->getParam('mileage'); if (!isset($serialId) || XF_Functions::isEmpty($serialId)) { throw new XF_Exception('车系参数不正确'); } // 当前地区名称 $name = $this->nowCity->name; $this->_view->serialId = $serialId; // 获取车型列表 $mod = new Auto_Model_Type(); $types = $mod->getsBySerialId($serialId); // print_r($types); $this->_view->types = $types; if ((!isset($serialId) || XF_Functions::isEmpty($typeId)) && !XF_Functions::isEmpty($types)) { $typeId = $types[0][1][0]->id; $type = $mod->getsByTypeId($typeId); } else { $type = $mod->getsByTypeId($typeId); } // 获得session,存车型id $gpj_session = new XF_Session("gpj_session"); $sessionAry = array(); $sessionAry["modelId"] = $typeId; $sessionAry["detail_model"] = $type->detail_model; $sessionAry["detail_price"] = $type->price_bn; $this->_view->type = $type; // 获取评估报告投票 $vote = new Report_Model_Vote(); $reportVote = $vote->getVoteByTypeId($typeId); if ($reportVote) { $this->_view->goodNum = $reportVote->right_vote; $this->_view->noGoodNum = $reportVote->noright_vote; $this->_view->totalNum = $reportVote->right_vote + $reportVote->noright_vote; } else { $this->_view->goodNum = 0; $this->_view->noGoodNum = 0; $this->_view->totalNum = 0; } $cityModel = new Application_Model_City(); $cities = $cityModel->getsByCity($this->nowCity->id); if (!isset($cityid) || XF_Functions::isEmpty($cityid) || !is_numeric($cityid) || $cityid <= 0) { $cityid = $this->nowCity->id; } $cityObj = $cityModel->get($cityid); $this->_view->cities = $cities; $this->_view->cityName = $cityObj->name; $this->_view->cityId = $cityid; $this->_view->cityPinYin = $cityObj->pinyin; $sessionAry["province"] = $cityid; $d_model = $type->id; $year = $year > 0 ? $year : $type->listed_year; $mile = floatval($mileage) > 0 ? floatval($mileage) : date("Y") - $type->listed_year; $intent = 'buy'; $this->_view->mileage = $mile; $this->_view->year = $year; $mod = new Report_Model_Valuation(); $V = $mod->getValuation($cityid, $d_model, $year, '', $mile, $intent); $this->_view->V = $V; $sessionAry["detail_year"] = $year; $sessionAry["detail_mile"] = $mile; $sessionAry["serialId"] = $serialId; $gpj_session->write($sessionAry); // 随机抽取6辆车型 $carTypeModel = new Auto_Model_Type(); $serialCars = $carTypeModel->getsByCityAndSerialId($cityid, $typeId); foreach ($serialCars as $key => $val) { $val->mile = round($val->mile); if (!XF_Functions::isEmpty($val->year)) { $val->car_age = date("Y") - $val->year; } if (!XF_Functions::isEmpty($val->source_type)) { $val->source_val = $this->source_type[$val->source_type]; } if (!XF_Functions::isEmpty($val->thumbnail)) { $val->thumbnail = $val->thumbnail . "?imageView2/1/w/296/h/193"; } else { } } $this->_view->serialCars = $serialCars; $this->setLayout(new Layout_Default()); $this->_view->headTitle("买二手车价格评估-买二手车估价-买二手车技巧流程-公平价"); $this->_view->headMeta("买二手车车评估,买二手车估价,买二手车流程,买二手车技巧"); $this->_view->headMeta("公平价-买车评估频道为您提供:二手车买车估值、二手车买车估价、二手车买车估价计算器,给您所选爱车一个精准、公平、公道的价格。二手车买车服务就上公平价!"); // 设置页面资源 $this->_view->headStylesheet('/css/report/report.css'); $this->_view->headStylesheet('/css/valid.css'); $this->_view->headScript('/js/pagejs/buyreport.js'); }
/** * 查询关联的数据 * @access public * @param string $name 自定义关联名称 * @param mixed $size 关联数量。默认为20,如果为false将关联所有数据[该设置仅在关联类型(oneToMany)为一对多时有效] * @param mixed $where 关联额外的字段查询条件。默认为NULL,可以是字符串或数组。 * @param mixed $order 关联的数据的排序设置,默认为NULL,或例如:'id DESC' * @param string $field 关联的数据要查询的字段,默认为“*”,或例如:'id,name' * @return mixed */ public function selectAssociated($name, $size = 20, $where = null, $order = null, $field = '*') { if (empty($this->_field_associateds[$name])) { return false; } ///////////兼容额外的设置 ///////////////// if ($where == null && isset($this->_field_associateds[$name]['where'])) { $where = $this->_field_associateds[$name]['where']; //还原设置 unset($this->_field_associateds[$name]['where']); } if ($order == null && isset($this->_field_associateds[$name]['order'])) { $order = $this->_field_associateds[$name]['order']; //还原设置 unset($this->_field_associateds[$name]['order']); } if (isset($this->_field_associateds[$name]['size'])) { $size = $this->_field_associateds[$name]['size']; //还原设置 unset($this->_field_associateds[$name]['size']); } if (isset($this->_field_associateds[$name]['_field'])) { $field = $this->_field_associateds[$name]['_field']; //还原设置 unset($this->_field_associateds[$name]['_field']); } $tableName = $this->_field_associateds[$name]['table']; $table = new $tableName(); /////检测是否需要设置当前关联对象自己的关联状态 //if (is_array($this->_field_associateds) && count($this->_field_associateds) > 0) //{ foreach ($this->_field_associateds as $_k => $_val) { if (isset($this->_field_associate_object_asssetting[$_k])) { $matchAssting = $this->_field_associate_object_asssetting[$_k]; foreach ($matchAssting as $mk => $mval) { if (get_class($table) == $mval['assObjectName']) { if ($mval['autoAssociated'] == true) { if (!empty($mval['where'])) { $table->setAssociatedAuto($mk, $mval['size'], $mval['where'], $mval['order'], $mval['_field']); } else { $table->setAssociatedAutoOnly($mk, $mval['size'], $mval['_field']); } } elseif (!empty($mval['where'])) { $table->setAssociatedManual($mk, $mval['size'], $mval['where'], $mval['order'], $mval['_field']); } else { $table->setAssociatedManualOnly($mk, $mval['size'], $mval['_field']); } } } } } //} /////2013-4-9 是否设置了当前关联对象自动执行方法 $methods = $this->getInitAutoExecuteMethodFromAssociate($name); if (is_array($methods)) { foreach ($methods as $m) { if ($m['params'] !== NULL) { array_unshift($m['params'], $m['method'], NULL); call_user_func_array(array($table, 'addInitAutoExecuteMethod'), $m['params']); } else { $table->addInitAutoExecuteMethod($m['method']); } } } //2013-1-9 实现一条关联可以设置多个字段,例如同时关联省份和城市,我们一般省份和城市记录都是在一个表里,结构都一样 $fieldValues = null; $fieldNames = explode(',', $this->_field_associateds[$name]['field']); foreach ($fieldNames as $fieldName) { if (strpos($fieldName, ':') === 0) { $fieldName = substr($fieldName, 1); } $value = $this->{$fieldName}; if (XF_Functions::isEmpty($value)) { continue; } $value = explode(',', $value); foreach ($value as $v) { if ($v != '' || $v == '0') { $fieldValues[$v] = $v; } } } if (!is_array($fieldValues)) { return false; } $fieldValues = array_values($fieldValues); $select = $table->getTableSelect()->setFindField($field)->setWhereIn($this->_field_associateds[$name]['associateField'], $fieldValues); $select->appendWhere($where)->setOrder($order); //如果是一对多的查询 if ($this->_field_associateds[$name]['oneToMany'] === true) { return $select->setLimit($size)->fetchAll(); } elseif (count($fieldNames) > 1) { return $select->setLimit(count($fieldNames))->fetchAll(); } return $select->fetchRow(); }
?> 万公里</span>|<span>上牌城市:<?php echo $this->nowCity->name; ?> </span></p> <p>新车指导价:<?php echo $this->detailPrice; ?> 万</p> </div> </div> </div> <div class="content"> <?php if (!XF_Functions::isEmpty($this->changeModel)) { ?> <div class="selcar">已选择新车 “<?php echo $this->changeModel; ?> ”</div> <?php } ?> <div class="boxtitle">请选择 4S店</div> <div class="fourshops clearfix"> <?php $isClose = false; foreach ($this->fourshop as $key => $dealer) { if ($key == "4") { $isClose = true;
/** * 设置分组 * @access public * @param unknown_type $var * @return XF_Db_Table_Select_Mysql */ public function setGroup($var) { if (XF_Functions::isEmpty($var) == false) { //是否存在排序 if (XF_Functions::isEmpty($this->_adv_order) == false) { $this->_adv_group = ' #GROUP BY ' . $var; } else { $this->_adv_group = ' GROUP BY ' . $var; } } return $this; }
/** * 验证表单 分析规则 Validate * @access private * @param array $data 将要验证的数组资料 * @param string $key 当前需要验证的字段[key] * @param string $rules_name 规则名称 * @param mixed $rules_value 规则值 * @param array $message 自定义错误信息 * @param XF_Db_Table_Abstract $db_table 主要支持unique的验证,默认为null * @param bool $is_insert 是否为添加数据操作?如果不是,则不强制执行required * @return bool */ private function _switchValidateFormData($data, $key, $rules_name, $rules_value, $message, XF_Db_Table_Abstract $db_table = NULL, $is_insert = TRUE) { $this->_validate_count++; //判断规则,分析结果 $validateOk = true; switch ($rules_name) { //验证 必填 case 'required': if ($rules_value == 'true') { if (isset($data[$key])) { if (XF_Functions::isEmpty($data[$key])) { $validateOk = false; } } elseif ($is_insert == true) { $validateOk = false; } } break; //验证 数字 //验证 数字 case 'number': if (isset($data[$key])) { if ($rules_value == 'true') { if (!is_numeric($data[$key])) { $validateOk = false; } } } break; //数字小于 //数字小于 case 'lt': if (isset($data[$key])) { if (!is_numeric($data[$key]) || !is_numeric($rules_value)) { $validateOk = false; } elseif ($data[$key] >= $rules_value) { $validateOk = false; } } break; //数字大于 //数字大于 case 'gt': if (isset($data[$key])) { if (!is_numeric($data[$key]) || !is_numeric($rules_value)) { $validateOk = false; } elseif ($data[$key] <= $rules_value) { $validateOk = false; } } break; //等于 //等于 case 'equal': if (isset($data[$key])) { if ($data[$key] !== $rules_value) { $validateOk = false; } } break; //不等于 //不等于 case 'unequal': if (isset($data[$key])) { if ($data[$key] === $rules_value) { $validateOk = false; } } break; //验证 是否为正确的email //验证 是否为正确的email case 'email': if (!empty($data[$key]) && $rules_value == 'true') { $validateOk = XF_String_Validate_Email::validate($data[$key]); } break; //验证 是否为正确的电话号码 //验证 是否为正确的电话号码 case 'tel': if (!empty($data[$key]) && $rules_value == 'true') { $validateOk = XF_String_Validate_Phone::validate($data[$key]); } break; //验证 是否为正确的手机号码 //验证 是否为正确的手机号码 case 'mobile': if (!empty($data[$key]) && $rules_value == 'true') { $validateOk = XF_String_Validate_Mobile::validate($data[$key]); } break; //验证 是否为正确的身份证号码 //验证 是否为正确的身份证号码 case 'card': if (!empty($data[$key]) && $rules_value == 'true') { $validateOk = XF_String_Validate_Card::validate($data[$key]); } break; //验证 是否为正确邮政编码 //验证 是否为正确邮政编码 case 'zip': if (!empty($data[$key]) && $rules_value == 'true') { $validateOk = XF_String_Validate_ZipCode::validate($data[$key]); } break; //验证 最小长度 //验证 最小长度 case 'minlen': if (!empty($data[$key])) { if (mb_strlen($data[$key], 'utf8') < $rules_value) { $validateOk = false; } } break; //验证 最大长度 //验证 最大长度 case 'maxlen': if (!empty($data[$key])) { if (mb_strlen($data[$key], 'utf8') > $rules_value) { $validateOk = false; } } break; //验证 ip地址 //验证 ip地址 case 'ip': if (!empty($data[$key]) && $rules_value == 'true') { $validateOk = XF_String_Validate_Ip::validate($data[$key]); } break; /** * 验证 取值范围在列表中 * 例如:in:2|23|9|0 * */ /** * 验证 取值范围在列表中 * 例如:in:2|23|9|0 * */ case 'in': if (XF_Functions::isEmpty($data[$key]) == FALSE) { if (!in_array($data[$key], explode('|', $rules_value))) { $validateOk = false; } } break; /** * 验证 取值范围必需不在列表中 * 例如:not_in:2|23|9|0 * */ /** * 验证 取值范围必需不在列表中 * 例如:not_in:2|23|9|0 * */ case 'not_in': if (XF_Functions::isEmpty($data[$key]) == FALSE) { if (!in_array($data[$key], explode('|', $rules_value))) { $validateOk = false; } } break; //验证与指定的字段值是否相同 //验证与指定的字段值是否相同 case 'confirm': if (isset($data[$key])) { if ($data[$key] != $data[$rules_value]) { $validateOk = false; } } break; case 'date': if (isset($data[$key]) && $rules_value == 'true') { if (!XF_String_Validate_Date::validate($data[$key])) { $validateOk = false; } } break; case 'time': if (isset($data[$key]) && $rules_value == 'true') { if (!XF_String_Validate_Time::validate($data[$key])) { $validateOk = false; } } break; case 'unique': if (isset($data[$key]) && $rules_value == 'true') { if ($db_table == NULL) { $validateOk = false; } elseif (!XF_Db_Table_Validate_Unique::validate($data[$key], $key, $db_table, $is_insert)) { $validateOk = false; } } break; } //字段值为 '$NULL' 时直接通过验证 2014-09-3 if (isset($data[$key]) && $data[$key] == '$NULL') { $validateOk = true; } //没有错误 if ($validateOk) { $this->_validate_success_count++; return true; } else { //记录错误 $errorMessage = $key . '=>' . $rules_name . ':' . $rules_value; if (isset($message[$key]) && is_array($message[$key]) && isset($message[$key][$rules_name])) { $errorMessage = $message[$key][$rules_name]; } elseif (isset($message[$key])) { $errorMessage = (string) $message[$key]; } XF_DataPool::getInstance()->replace('TableFieldDataValidateError', $errorMessage); return false; } }
/** * 认证 * @return XF_Auth_Result */ public function authenticate() { if ($this->_dbTable == NULL || !$this->_dbTable instanceof XF_Db_Table_Abstract) { throw new XF_Auth_Adapter_Exception('Lack of effective XF_Db_Table_Abstract authentication adapter !'); } if (XF_Functions::isEmpty($this->_identity_column)) { throw new XF_Auth_Adapter_Exception('Certified identity column name and credential column name can not be empty!'); } if (XF_Functions::isEmpty($this->_identity)) { return new XF_Auth_Result(-1, NULL); } $row = $this->_dbTable->getTableSelect()->setWhere(array($this->_identity_column => $this->_identity))->fetchRow(); if ($row instanceof XF_Db_Table_Abstract) { $tmp = array(); $array = $row->toArray(); foreach ($array as $key => $val) { if (is_array($this->_storage_column)) { if (in_array($key, $this->_storage_column)) { $tmp[$key] = $val; } } else { $tmp[$key] = $val; } } return new XF_Auth_Result(9, (object) $tmp); } return new XF_Auth_Result(-1, NULL); }