/** * 录入 * */ public function actionCreate() { parent::_acl('propertyType_create'); $model = new PropertyType(); if (isset($_POST['PropertyType'])) { $model->attributes = $_POST['PropertyType']; if ($model->save()) { AdminLogger::_create(array('catalog' => 'create', 'intro' => '录入物业类型,ID:' . $model->id)); $this->redirect(array('index')); } } $this->render('create', array('model' => $model)); }
public function test_should_include_associates_using_simple_finder() { $Property = new Property(); $PropertyType = new PropertyType(); $this->assertTrue($Rancho =& $PropertyType->findFirstBy('description', 'Rancho Type', array('include' => 'properties'))); $this->assertTrue($RanchoMaria =& $Property->find($Rancho->properties[0]->getId(), array('include' => 'property_types'))); $this->assertEqual($RanchoMaria->property_types[0]->getId(), $Rancho->getId()); $this->assertEqual($RanchoMaria->getId(), $Rancho->properties[0]->getId()); }
<label class="block-label">Branch</label> <div class="input-wrapper"> <?php $branch = isset($deal['dea_branch']) ? $deal['dea_branch'] : null; echo CHtml::dropDownList('Deal[dea_branch]', $branch, CHtml::listData(Office::model()->getShortBranchList($type), 'bra_id', 'shortTitle'), ['empty' => 'All']); ?> </div> </div> <div class="half-cell"> <label class="block-label">Type of Property</label> <div class="input-wrapper"> <?php $propertyType = isset($deal['dea_ptype']) ? $deal['dea_ptype'] : ""; echo CHtml::dropDownList('Deal[dea_ptype]', $propertyType, CHtml::listData(PropertyType::model()->getPublicSiteTypes($type), 'pty_id', 'pty_title'), ['empty' => 'All']); ?> </div> </div> </div> <div class="row"> <div class="half-cell"> <label class="block-label">Min Bed</label> <div class="input-wrapper"> <?php $minBed = isset($deal['min_bedrooms']) ? $deal['min_bedrooms'] : ""; echo CHtml::dropDownList('Deal[min_bedrooms]', $minBed, ['Studio', 1, 2, 3, 4, 5, 6]); ?> </div>
<?php /** * @var $this ClientController * @var $model Client * @var $form AdminForm * @var $types PropertyType[] * @var $minPrices array * @var $maxPrices array */ $types = PropertyType::model()->getTypes(); ?> <div id="sales-requirements"> <div class="control-group"> <label class="control-label">Price</label> <div class="controls"> <?php echo $form->dropDownList($model, 'minPrice', $minPrices, ['class' => 'input-xsmall', 'empty' => 'No Minimum']); ?> <?php echo $form->dropDownList($model, 'maxPrice', $maxPrices, ['class' => 'input-xsmall', 'empty' => 'No Maximum']); ?> <label><?php echo $form->checkBox($model, 'searchNoBudget', ['value' => true, 'uncheckValue' => false]); ?> <span class="hint">include clients without budget</span></label> </div> </div> <?php echo $form->beginControlGroup($model, 'cli_salebed');
public function actionIndexsb() { $housetype = PropertyType::model()->findAll(); $this->render('indexsb', array('houseType' => $housetype)); }
/** * Fetches raw multi valued property not of type \PropertyType::PATH * * @param array &$property The property as read from the "properties" table of the database with $property['type'] != \PropertyType::PATH and $property['multivalue'] == TRUE * @return void * @author Matthias Hoermann <*****@*****.**> * @author Karsten Dambekalns <*****@*****.**> */ protected function getRawMultiValuedProperty(&$property) { $typeName = strtolower(\PropertyType::nameFromValue($property['type'])); $statementHandle = $this->databaseHandle->prepare('SELECT "index", "value" FROM "' . $typeName . 'properties" WHERE "parent" = ? AND "name" = ?'); $statementHandle->execute(array($property['parent'], $property['name'])); $multivalues = $statementHandle->fetchAll(\PDO::FETCH_ASSOC); if (is_array($multivalues)) { $resultArray = array(); foreach ($multivalues as $multivalue) { $resultArray[$multivalue['index']] = $this->convertFromString($property['type'], $multivalue['value']); } $property['value'] = $resultArray; } }
/** * 房源列表 */ public function actionIndex() { Yii::app()->clientScript->registerCssFile(Yii::app()->theme->baseUrl . '/css/house.css'); $city_id = Yii::app()->request->getQuery('cd1', 0); $district_id = Yii::app()->request->getQuery('cd2', 0); $investType_id = Yii::app()->request->getQuery('cd3', 0); $propertyType_id = Yii::app()->request->getQuery('cd4', 0); $total_price = Yii::app()->request->getQuery('cd5', 0); $house_area = Yii::app()->request->getQuery('cd6', 0); $land_area = Yii::app()->request->getQuery('cd7', 0); $bedroom_num = Yii::app()->request->getQuery('cd8', 0); $construction_year = Yii::app()->request->getQuery('cd9', 0); $prop_featx_out = Yii::app()->request->getQuery('cd10', 0); $prop_featx_out2 = Yii::app()->request->getQuery('cd11', 0); $prop_featx_out3 = Yii::app()->request->getQuery('cd12', 0); $bath_tot = Yii::app()->request->getQuery('cd13', 0); $style = Yii::app()->request->getQuery('cd14', 0); $comp_pts = Yii::app()->request->getQuery('cd15', 0); $gar_spaces = Yii::app()->request->getQuery('cd16', 0); $bsmt1_out = Yii::app()->request->getQuery('cd17', 0); $pool = Yii::app()->request->getQuery('cd18', 0); $time_sort = Yii::app()->request->getQuery('time_sort', 'DESC'); $price_sort = Yii::app()->request->getQuery('price_sort'); $diy_word = null; $city_list = City::model()->findAll(array('order' => 'id ASC')); if (!empty($city_id)) { $district_list = District::model()->findAll('city_id=:city_id', array(':city_id' => $city_id)); } else { $district_list = District::model()->findAll(); } $investType_list = InvestType::model()->findAll(); $propertyType_list = PropertyType::model()->findAll(); //按搜索条件查询房源信息 $criteria = new CDbCriteria(); //省份 if (!empty($city_id)) { $criteria->addCondition('area!=""'); } //地区 if (!empty($district_id)) { if ($district_id == 1) { $criteria->addCondition('area="Toronto"'); } elseif ($district_id == 2) { $criteria->addCondition('area="Durham"'); } elseif ($district_id == 3) { $criteria->addCondition('area="Peel"'); } elseif ($district_id == 4) { $criteria->addCondition('area="Halton"'); } elseif ($district_id == 5) { $criteria->addCondition('area="York"'); } } //挂牌时间 if (!empty($investType_id)) { if ($investType_id == 1) { //查询一周数据 $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(pix_updt)'); } elseif ($investType_id == 2) { //查询一月数据 $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(pix_updt)'); } elseif ($investType_id == 3) { //查询三月数据 $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 90 DAY) <= date(pix_updt)'); } } if (!empty($prop_featx_out)) { if ($prop_featx_out == 1) { $criteria->addCondition('prop_feat1_out like "%Waterfront%" or prop_feat2_out like "%Waterfront%" or prop_feat3_out like "%Waterfront%" or prop_feat4_out like "%Waterfront%" or prop_feat5_out like "%Waterfront%" or prop_feat6_out like "%Waterfront%" '); } elseif ($prop_featx_out == 2) { $criteria->addCondition('prop_feat1_out like "%Pond%" or prop_feat2_out like "%Pond%" or prop_feat3_out like "%Pond%" or prop_feat4_out like "%Pond%" or prop_feat5_out like "%Pond%" or prop_feat6_out like "%Pond%" '); } elseif ($prop_featx_out == 3) { $criteria->addCondition('prop_feat1_out like "%Stream%" or prop_feat2_out like "%Stream%" or prop_feat3_out like "%Stream%" or prop_feat4_out like "%Stream%" or prop_feat5_out like "%Stream%" or prop_feat6_out like "%Stream%" '); } elseif ($prop_featx_out == 4) { $criteria->addCondition('prop_feat1_out like "%River%" or prop_feat2_out like "%River%" or prop_feat3_out like "%River%" or prop_feat4_out like "%River%" or prop_feat5_out like "%River%" or prop_feat6_out like "%River%" '); } elseif ($prop_featx_out == 5) { $criteria->addCondition('prop_feat1_out like "%Lake%" or prop_feat2_out like "%Lake%" or prop_feat3_out like "%Lake%" or prop_feat4_out like "%Lake%" or prop_feat5_out like "%Lake%" or prop_feat6_out like "%Lake%" '); } elseif ($prop_featx_out == 6) { $criteria->addCondition('prop_feat1_out like "%Marina%" or prop_feat2_out like "%Marina%" or prop_feat3_out like "%Marina%" or prop_feat4_out like "%Marina%" or prop_feat5_out like "%Marina%" or prop_feat6_out like "%Marina%" '); } } if (!empty($prop_featx_out2)) { if ($prop_featx_out2 == 1) { $criteria->addCondition('prop_feat1_out like "%Treed%" or prop_feat2_out like "%Treed%" or prop_feat3_out like "%Treed%" or prop_feat4_out like "%Treed%" or prop_feat5_out like "%Treed%" or prop_feat6_out like "%Treed%" '); } elseif ($prop_featx_out2 == 2) { $criteria->addCondition('prop_feat1_out like "%Wooded%" or prop_feat2_out like "%Wooded%" or prop_feat3_out like "%Wooded%" or prop_feat4_out like "%Wooded%" or prop_feat5_out like "%Wooded%" or prop_feat6_out like "%Wooded%" '); } elseif ($prop_featx_out2 == 3) { $criteria->addCondition('prop_feat1_out like "%Grnbelt%" or prop_feat2_out like "%Grnbelt%" or prop_feat3_out like "%Grnbelt%" or prop_feat4_out like "%Grnbelt%" or prop_feat5_out like "%Grnbelt%" or prop_feat6_out like "%Grnbelt%" '); } elseif ($prop_featx_out2 == 4) { $criteria->addCondition('prop_feat1_out like "%Conserv%" or prop_feat2_out like "%Conserv%" or prop_feat3_out like "%Conserv%" or prop_feat4_out like "%Conserv%" or prop_feat5_out like "%Conserv%" or prop_feat6_out like "%Conserv%" '); } elseif ($prop_featx_out2 == 5) { $criteria->addCondition('prop_feat1_out like "%Ravine%" or prop_feat2_out like "%Ravine%" or prop_feat3_out like "%Ravine%" or prop_feat4_out like "%Ravine%" or prop_feat5_out like "%Ravine%" or prop_feat6_out like "%Ravine%" '); } } // if (!empty($prop_featx_out3)) { if ($prop_featx_out3 == 1) { $criteria->addCondition('prop_feat1_out like "%School%" or prop_feat2_out like "%School%" or prop_feat3_out like "%School%" or prop_feat4_out like "%School%" or prop_feat5_out like "%School%" or prop_feat6_out like "%School%" '); } elseif ($prop_featx_out3 == 2) { $criteria->addCondition('prop_feat1_out like "%Hospital%" or prop_feat2_out like "%Hospital%" or prop_feat3_out like "%Hospital%" or prop_feat4_out like "%Hospital%" or prop_feat5_out like "%Hospital%" or prop_feat6_out like "%Hospital%" '); } elseif ($prop_featx_out3 == 3) { $criteria->addCondition('prop_feat1_out like "%Public Transit%" or prop_feat2_out like "%Public Transit%" or prop_feat3_out like "%Public Transit%" or prop_feat4_out like "%Public Transit%" or prop_feat5_out like "%Public Transit%" or prop_feat6_out like "%Public Transit%" '); } elseif ($prop_featx_out3 == 4) { $criteria->addCondition('prop_feat1_out like "%Park%" or prop_feat2_out like "%Park%" or prop_feat3_out like "%Park%" or prop_feat4_out like "%Park%" or prop_feat5_out like "%Park%" or prop_feat6_out like "%Park%" '); } elseif ($prop_featx_out3 == 5) { $criteria->addCondition('prop_feat1_out like "%Golf%" or prop_feat2_out like "%Golf%" or prop_feat3_out like "%Golf%" or prop_feat4_out like "%Golf%" or prop_feat5_out like "%Golf%" or prop_feat6_out like "%Golf%" '); } elseif ($prop_featx_out3 == 6) { $criteria->addCondition('prop_feat1_out like "%Library%" or prop_feat2_out like "%Library%" or prop_feat3_out like "%Library%" or prop_feat4_out like "%Library%" or prop_feat5_out like "%Library%" or prop_feat6_out like "%Library%" '); } } //物业类型 if (!empty($propertyType_id)) { $criteria->addCondition('propertyType_id="' . $propertyType_id . '"'); //if($propertyType_id==1){ //$criteria->addCondition('type_own1_out="Detached"'); //} //elseif($propertyType_id==2){ //$criteria->addCondition('type_own1_out="Townhouse" or type_own1_out="Att∕Row∕Twnhouse" or type_own1_out="Triplex" or type_own1_out="Fourplex" or type_own1_out="Multiplex"'); //} //elseif($propertyType_id==3){ //$criteria->addCondition('lp_dol>3000000'); //} //elseif($propertyType_id==4){ //$criteria->addCondition('type_own1_out="Semi-Detached" or type_own1_out="Link" or type_own1_out="Duplex"'); //} //elseif($propertyType_id==5){ //$criteria->addCondition('type_own1_out="Cottage" or type_own1_out="Rural Resid"'); //} //elseif($propertyType_id==6){ //$criteria->addCondition('type_own1_out="Farm"'); //} //elseif($propertyType_id==7){ //$criteria->addCondition('type_own1_out="Vacant Land"'); //} //elseif($propertyType_id==8){ //$criteria->addCondition('type_own1_out="Mobile/Trailer" or type_own1_out="Det W/Com Elements" or type_own1_out="Store W/Apt/offc"'); //} } //挂牌价格 if (!empty($total_price)) { if ($total_price == 1) { $criteria->addCondition('lp_dol<300000'); } elseif ($total_price == 2) { $criteria->addCondition('lp_dol>=300000 and lp_dol<500000'); } elseif ($total_price == 3) { $criteria->addCondition('lp_dol>500000 and lp_dol<1000000'); } elseif ($total_price == 4) { $criteria->addCondition('lp_dol>1000000 and lp_dol<1500000'); } elseif ($total_price == 5) { $criteria->addCondition('lp_dol>1500000 and lp_dol<3000000'); } elseif ($total_price == 6) { $criteria->addCondition('lp_dol>3000000'); } } //房屋面积 if (!empty($house_area)) { if ($house_area == 1) { $criteria->addCondition('sqft<700'); } elseif ($house_area == 2) { $criteria->addCondition('sqft>700 and sqft<1100'); } elseif ($house_area == 3) { $criteria->addCondition('sqft>1100 and sqft<1500'); } elseif ($house_area == 4) { $criteria->addCondition('sqft>1500 and sqft<2000'); } elseif ($house_area == 5) { $criteria->addCondition('sqft>2000 and sqft<2500'); } elseif ($house_area == 6) { $criteria->addCondition('sqft>2500 and sqft<3000'); } elseif ($house_area == 7) { $criteria->addCondition('sqft>3000 and sqft<3500'); } elseif ($house_area == 8) { $criteria->addCondition('sqft>3500 and sqft<4000'); } elseif ($house_area == 9) { $criteria->addCondition('sqft>4000'); } } //土地面积 if (!empty($land_area)) { if ($land_area == 1) { $criteria->addCondition('depth*front_ft<1000'); } elseif ($land_area == 2) { $criteria->addCondition('depth*front_ft>=1000 and depth*front_ft<2000'); } elseif ($land_area == 3) { $criteria->addCondition('depth*front_ft>=2000 and depth*front_ft<3000'); } elseif ($land_area == 4) { $criteria->addCondition('depth*front_ft>=3000 and depth*front_ft<4000'); } elseif ($land_area == 5) { $criteria->addCondition('depth*front_ft>=4000 and depth*front_ft<5000'); } elseif ($land_area == 6) { $criteria->addCondition('depth*front_ft>=5000 and depth*front_ft<6000'); } elseif ($land_area == 7) { $criteria->addCondition('depth*front_ft>6000'); } } if (!empty($bedroom_num)) { if ($bedroom_num <= 5) { $criteria->addCondition('br=' . $bedroom_num); } else { $criteria->addCondition('br>=' . $bedroom_num); } } if (!empty($construction_year)) { if (!empty(self::$searchData['cd9'][$construction_year]['min'])) { $criteria->addCondition('yr_built>' . self::$searchData['cd9'][$construction_year]['min']); } if (!empty(self::$searchData['cd9'][$construction_year]['max'])) { $criteria->addCondition('yr_built<=' . self::$searchData['cd9'][$construction_year]['max']); } } if (!empty($bath_tot)) { $criteria->addCondition('bath_tot>"' . $bath_tot . '"'); } if (!empty($style)) { if ($style == "1") { $criteria->addCondition('style="Bungalow" or style="Bungalow-Raised" or style="Raised-Bungalow"'); } elseif ($style == "2") { $criteria->addCondition('style="1 1/2 Storey"'); } elseif ($style == "3") { $criteria->addCondition('style="2-Storey"'); } elseif ($style == "4") { $criteria->addCondition('style="2 1/2 Storey"'); } elseif ($style == "5") { $criteria->addCondition('style="3-Storey"'); } } if (!empty($comp_pts)) { if ($comp_pts == "1") { $criteria->addCondition('comp_pts="S"'); } elseif ($comp_pts == "2") { $criteria->addCondition('comp_pts="N"'); } elseif ($comp_pts == "3") { $criteria->addCondition('comp_pts="E"'); } elseif ($comp_pts == "4") { $criteria->addCondition('comp_pts="W"'); } } if (!empty($gar_spaces)) { $criteria->addCondition('gar_spaces >"' . $gar_spaces . '"'); } if (!empty($bsmt1_out)) { $criteria->addCondition('bsmt1_out="' . $bsmt1_out . '"'); } if (!empty($pool)) { if ($pool == "1") { $criteria->addCondition('pool="Abv" or pool="Grnd" or pool="Indoor" or pool="Inground"'); } elseif ($pool == "2") { $criteria->addCondition('pool="" or pool="None"'); } } $criteria->order = 'id DESC'; if (!empty($time_sort)) { $criteria->order = 'pix_updt ' . $time_sort; } if (!empty($price_sort)) { $criteria->order = 'lp_dol ' . $price_sort; } $criteria->with = array('mname', 'propertyType'); $count = House::model()->count($criteria); $pager = new CPagination($count); $pager->pageSize = 10; $pager->applyLimit($criteria); $house_list = House::model()->findAll($criteria); $collection_list = array(); if ($this->_account['userId']) { $collect_model = Collect::model()->find('user_id=:user_id', array(':user_id' => $this->_account['userId'])); if (!empty($collect_model)) { $collection_list = explode(',', $collect_model->collection); } } $data = array('cd1' => $city_id, 'cd2' => $district_id, 'cd3' => $investType_id, 'cd4' => $propertyType_id, 'cd5' => $total_price, 'cd6' => $house_area, 'cd7' => $land_area, 'cd8' => $bedroom_num, 'cd9' => $construction_year, 'cd10' => $prop_featx_out, 'cd11' => $prop_featx_out2, 'cd12' => $prop_featx_out3, 'cd13' => $bath_tot, 'cd14' => $style, 'cd15' => $comp_pts, 'cd16' => $gar_spaces, 'cd17' => $bsmt1_out, 'cd18' => $pool, 'time_sort' => $time_sort, 'price_sort' => $price_sort, 'diy_price' => json_encode($diy_price), 'city_list' => $city_list, 'district_list' => $district_list, 'investType_list' => $investType_list, 'propertyType_list' => $propertyType_list, 'count' => $count, 'house_list' => $house_list, 'collection_list' => $collection_list, "pages" => $pager); $this->render('index', $data); }
function test_for_has_and_belons_to_many() { $Property =& new Property(array('description' => 'Gandia Palace')); $this->assertEqual($Property->property_type->getType(), 'hasAndBelongsToMany'); $this->assertTrue(is_array($Property->property_types) && count($Property->property_types) === 0); $Property->property_type->load(); $this->assertEqual($Property->property_type->count(), 0); $Chalet =& new PropertyType(array('description' => 'Chalet')); $Property->property_type->add($Chalet); $this->assertEqual($Property->property_type->count(), 1); $this->assertReference($Property->property_types[0], $Chalet); $Property->property_type->add($Chalet); $this->assertEqual($Property->property_type->count(), 1); $Condo =& new PropertyType(array('description' => 'Condominium')); $Property->property_type->add($Condo); $this->assertEqual($Property->property_type->count(), 2); $this->assertTrue($Property->save()); $this->assertFalse($Chalet->isNewRecord()); $this->assertFalse($Condo->isNewRecord()); $this->assertTrue($Chalet = $Chalet->findFirstBy('description', 'Chalet', array('include' => 'properties'))); $this->assertEqual($Chalet->properties[0]->getId(), $Property->getId()); $this->assertTrue($Condo = $Condo->findFirstBy('description', 'Condominium', array('include' => 'properties'))); $this->assertEqual($Condo->properties[0]->getId(), $Property->getId()); $this->assertReference($Chalet, $Property->property_types[0]); $this->assertReference($Condo, $Property->property_types[1]); $Property =& new Property($Property->getId()); $Property->property_type->load(); $this->assertEqual($Property->property_type->association_id, 'property_types'); $this->assertEqual($Property->property_type->count(), 2); $Property->property_types = array(); $this->assertEqual($Property->property_type->count(), 0); $Property->property_type->load(); $this->assertEqual($Property->property_type->count(), 0); $Property->property_type->load(true); $this->assertEqual($Property->property_type->count(), 2); $this->assertEqual($Property->property_types[1]->getType(), 'PropertyType'); $Property->property_type->delete($Property->property_types[1]); $this->assertEqual($Property->property_type->count(), 1); $Property->property_type->load(true); $this->assertEqual($Property->property_type->count(), 1); $Property = $Property->findFirstBy('description', 'Gandia Palace'); $PropertyType = new PropertyType(); $PropertyTypes = $PropertyType->find(); $Property->property_type->set($PropertyTypes); $this->assertEqual($Property->property_type->count(), count($PropertyTypes)); $Property = $Property->findFirstBy('description', 'Gandia Palace'); $Property->property_type->load(); $this->assertEqual($Property->property_type->count(), count($PropertyTypes)); $Property = $Property->findFirstBy('description', 'Gandia Palace'); $PropertyType->set('description', 'Palace'); $Property->property_type->set($PropertyType); $this->assertEqual($Property->property_type->count(), 1); $this->assertTrue(in_array('property_types', $Property->getAssociatedIds())); $Property = $Property->findFirstBy('description', 'Gandia Palace', array('include' => 'property_types')); $this->assertIdentical($Property->property_type->count(), 1); $this->assertTrue($Property->property_type->delete($Property->property_types[0])); $this->assertIdentical($Property->property_type->count(), 0); $Property = $Property->findFirstBy('description', 'Gandia Palace'); $this->assertIdentical($Property->property_type->count(), 0); $this->assertFalse($Property->findFirstBy('description', 'Gandia Palace', array('include' => 'property_types'))); /** /}/**/ $Property =& new Property(array('description' => 'Luxury Downtown House')); $Apartment =& $PropertyType->create(array('description' => 'Apartment')); $Loft =& $PropertyType->create(array('description' => 'Loft')); $Penthouse =& $PropertyType->create(array('description' => 'Penthouse')); $Property->property_type->setByIds(array($Apartment->getId(), $Loft->getId(), $Penthouse->getId())); $this->assertEqual($Property->property_type->count(), 3); $this->assertTrue($Property->save()); $this->assertTrue($Property->save()); $this->assertTrue($Property =& $Property->findFirstBy('description', 'Luxury Downtown House')); $Property->property_type->load(); $this->assertEqual($Property->property_type->count(), 3); $FoundApartment = $Property->property_type->find('first', array('description' => 'Apartment')); $this->assertEqual($Apartment->get('description') . $Apartment->getId(), $FoundApartment->get('description') . $FoundApartment->getId()); $FoundTypes = $Property->property_type->find(); $this->assertEqual(count($FoundTypes), $Property->property_type->count()); $descriptions = array(); foreach ($FoundTypes as $FoundType) { $descriptions[] = $FoundType->get('description'); } sort($descriptions); $this->assertEqual($descriptions, array('Apartment', 'Loft', 'Penthouse')); $this->assertFalse($Property->property_type->isEmpty()); $this->assertEqual($Property->property_type->getSize(), 3); $this->assertTrue($Property->property_type->clear()); $this->assertTrue($Property->property_type->isEmpty()); $this->assertEqual($Property->property_type->getSize(), 0); $Property =& new Property(); $LandProperty =& $Property->property_type->build(array('description' => 'Land')); $this->assertReference($LandProperty, $Property->property_types[0]); $this->assertTrue($Property->property_types[0]->isNewRecord()); $this->assertEqual($LandProperty->getType(), 'PropertyType'); $Property->set('description', 'Plot of Land in Spain'); $this->assertTrue($Property->save()); $this->assertTrue($LandProperty = $Property->findFirstBy('description', 'Plot of Land in Spain', array('include' => 'property_types'))); $this->assertEqual($LandProperty->property_types[0]->get('description'), 'Land'); $Property =& new Property(array('description' => 'Seaside house in Altea')); $SeasidePropertyType =& $Property->property_type->create(array('description' => 'Seaside property')); $this->assertReference($SeasidePropertyType, $Property->property_types[0]); $this->assertTrue($SeasidePropertyType->isNewRecord()); $Property =& new Property(array('description' => 'Bermi\'s appartment in Altea')); $this->assertTrue($Property->save()); $SeasidePropertyType =& $Property->property_type->create(array('description' => 'Seaside property')); $this->assertReference($SeasidePropertyType, $Property->property_types[0]); $this->assertFalse($SeasidePropertyType->isNewRecord()); $this->assertTrue($PropertyInAltea = $Property->findFirstBy('description', 'Bermi\'s appartment in Altea', array('include' => 'property_types'))); $this->assertEqual($PropertyInAltea->property_types[0]->get('description'), 'Seaside property'); // Testing destroy callbacks $this->assertTrue($Property =& $Property->findFirstBy('description', 'Bermi\'s appartment in Altea')); $property_id = $Property->getId(); //echo '<pre>'.print_r($Property->_associations, true).'</pre>'; $this->assertTrue($Property->destroy()); $RecordSet = $PropertyInAltea->_db->Execute('SELECT * FROM properties_property_types WHERE property_id = ' . $property_id); $this->assertEqual($RecordSet->RecordCount(), 0); }
<?php /** * @var $this InstructionController * @var $model Deal * @var $form AdminFilterForm * @var $title String */ $types = PropertyType::model()->getTypes(); $subtypes = array(); foreach ($types as $key => $value) { $subtypes[$value->pty_id] = PropertyType::model()->getTypes($value->pty_id); } $offices = Office::model()->enabledClientMatching()->findAll(); $matchingPostcodes = []; foreach ($offices as $value) { $matchingPostcodes[$value->id] = LinkOfficeToPostcode::model()->getPostcodeList($value->id); } $form = $this->beginWidget('AdminFilterForm', array('action' => Yii::app()->getBaseUrl() . '/' . Yii::app()->request->getPathInfo(), 'id' => 'instruction-filter-form', 'enableAjaxValidation' => false, 'model' => [$model], 'ajaxFilterGrid' => 'instruction-list', 'storeInSession' => false, 'focus' => [$model, 'searchString'])); ?> <fieldset> <div class="block-header">Preference</div> <div class="control-group"> <label class="control-label"></label> <div class="controls"> <?php echo $title; ?> <br> <span class="hint">Client will receive email alert for following properties</span>
/** * @return array validation rules for model attributes. */ public function rules() { $propertyTypes = CHtml::listData(PropertyType::model()->findAll(), 'pty_id', 'pty_id'); return array(array('pro_tenure', 'in', 'range' => self::getTenureTypes()), array('pro_ptype, pro_psubtype', 'in', 'range' => $propertyTypes), array('pro_floor', 'in', 'range' => self::getFloorNames()), array('pro_parking', 'in', 'range' => self::getParkigTypes()), array('pro_garden', 'in', 'range' => self::getGardenTypes()), array('pro_bedroom, pro_reception, pro_bathroom, pro_floors, pro_country, pro_area', 'numerical', 'integerOnly' => true), array('pro_leaseend,groundrent, servicecharge', 'type', 'type' => 'string'), array('addressId', 'required', 'message' => 'Property must have an address'), array('fullAddressString, pro_id, pro_status, pro_addr1, pro_addr2, pro_addr3, pro_addr4, pro_addr5, pro_addr6, pro_country, pro_postcode, pro_area, pro_pcid, pro_dump, pro_std, pro_ward, pro_authority, pro_east, pro_north, pro_latitude, pro_longitude, pro_ptype, pro_psubtype, pro_built, pro_refurbed, pro_floors, pro_floor, pro_listed, pro_parking, pro_garden, pro_gardenlength, pro_reception, pro_bedroom, pro_bathroom, pro_tenure, pro_leaseend, pro_location', 'safe', 'on' => 'search')); }
/** * 房源列表 */ public function actionIndex() { Yii::app()->clientScript->registerCssFile(Yii::app()->theme->baseUrl . '/css/house.css'); $city_id = Yii::app()->request->getQuery('cd1', 0); $district_id = Yii::app()->request->getQuery('cd2', 0); //used to be Region search. Change it to municipality search $investType_id = Yii::app()->request->getQuery('cd3', 0); $propertyType_id = Yii::app()->request->getQuery('cd4', 0); $total_price = Yii::app()->request->getQuery('cd5', 0); $house_area = Yii::app()->request->getQuery('cd6', 0); $land_area = Yii::app()->request->getQuery('cd7', 0); $bedroom_num = Yii::app()->request->getQuery('cd8', 0); $construction_year = Yii::app()->request->getQuery('cd9', 0); $prop_featx_out = Yii::app()->request->getQuery('cd10', 0); $prop_featx_out2 = Yii::app()->request->getQuery('cd11', 0); $prop_featx_out3 = Yii::app()->request->getQuery('cd12', 0); $prop_featx_out_2 = Yii::app()->request->getQuery('cd12_2', 0); $prop_featx_out_3 = Yii::app()->request->getQuery('cd12_3', 0); $prop_featx_out_4 = Yii::app()->request->getQuery('cd12_4', 0); $prop_featx_out_5 = Yii::app()->request->getQuery('cd12_5', 0); $type = Yii::app()->request->getQuery('type', 'sale'); $bath_tot = Yii::app()->request->getQuery('cd13', 0); $style = Yii::app()->request->getQuery('cd14', 0); $comp_pts = Yii::app()->request->getQuery('cd15', 0); $gar_spaces = Yii::app()->request->getQuery('cd16', 0); $bsmt1_out = Yii::app()->request->getQuery('cd17', 0); $pool = Yii::app()->request->getQuery('cd18', 0); $time_sort = Yii::app()->request->getQuery('time_sort', 'DESC'); $price_sort = Yii::app()->request->getQuery('price_sort'); $type = Yii::app()->request->getQuery('type'); $diy_word = null; //$city_list = City::model()->findAll(array('order'=>'id ASC')); $city_list = City::model()->findAll(array('condition' => 'avail=1', 'order' => 'id ASC')); //$province_list = Province::model()->findAll(array('condition'=>'avail=1','order'=>'id ASC')); if (!empty($city_id)) { $district_list = District::model()->findAll('city_id=:city_id', array(':city_id' => $city_id)); } else { $district_list = District::model()->findAll(); } $investType_list = InvestType::model()->findAll(); $propertyType_list = PropertyType::model()->findAll(); //按搜索条件查询房源信息 $criteria = new CDbCriteria(); //VOW limits $criteria->addCondition('src != "VOW"'); //Search By Sale or Lease Type //$criteria->addCondition('s_r ="Sale"'); if ($type == "sale") { $criteria->addCondition('s_r = "Sale"'); } elseif ($type == "rent") { $criteria->addCondition('s_r = "Lease"'); } //省份 //if(!empty($city_id)) $criteria->addCondition('area!=""'); if (!empty($city_id)) { $criteria->addCondition('city_id=' . $city_id); } //地区 if (!empty($district_id)) { $criteria->addCondition('t.municipality ="' . $district_id . '"'); } //挂牌时间 if (!empty($investType_id)) { if ($investType_id == 1) { //数据 $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 1 DAY) <= date(pix_updt)'); } elseif ($investType_id == 2) { //查询7数据 $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(pix_updt)'); } elseif ($investType_id == 3) { //查询1月数据 $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(pix_updt)'); } elseif ($investType_id == 4) { //查询三月数据 $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 90 DAY) <= date(pix_updt)'); } } if (!empty($prop_featx_out)) { if ($prop_featx_out == 1) { $criteria->addCondition('prop_feat1_out like "%Waterfront%" or prop_feat2_out like "%Waterfront%" or prop_feat3_out like "%Waterfront%" or prop_feat4_out like "%Waterfront%" or prop_feat5_out like "%Waterfront%" or prop_feat6_out like "%Waterfront%" '); } elseif ($prop_featx_out == 2) { $criteria->addCondition('prop_feat1_out like "%Pond%" or prop_feat2_out like "%Pond%" or prop_feat3_out like "%Pond%" or prop_feat4_out like "%Pond%" or prop_feat5_out like "%Pond%" or prop_feat6_out like "%Pond%" '); } elseif ($prop_featx_out == 3) { $criteria->addCondition('prop_feat1_out like "%Stream%" or prop_feat2_out like "%Stream%" or prop_feat3_out like "%Stream%" or prop_feat4_out like "%Stream%" or prop_feat5_out like "%Stream%" or prop_feat6_out like "%Stream%" '); } elseif ($prop_featx_out == 4) { $criteria->addCondition('prop_feat1_out like "%River%" or prop_feat2_out like "%River%" or prop_feat3_out like "%River%" or prop_feat4_out like "%River%" or prop_feat5_out like "%River%" or prop_feat6_out like "%River%" '); } elseif ($prop_featx_out == 5) { $criteria->addCondition('prop_feat1_out like "%Lake%" or prop_feat2_out like "%Lake%" or prop_feat3_out like "%Lake%" or prop_feat4_out like "%Lake%" or prop_feat5_out like "%Lake%" or prop_feat6_out like "%Lake%" '); } elseif ($prop_featx_out == 6) { $criteria->addCondition('prop_feat1_out like "%Marina%" or prop_feat2_out like "%Marina%" or prop_feat3_out like "%Marina%" or prop_feat4_out like "%Marina%" or prop_feat5_out like "%Marina%" or prop_feat6_out like "%Marina%" '); } } if (!empty($prop_featx_out2)) { if ($prop_featx_out2 == 1) { $criteria->addCondition('prop_feat1_out like "%Treed%" or prop_feat2_out like "%Treed%" or prop_feat3_out like "%Treed%" or prop_feat4_out like "%Treed%" or prop_feat5_out like "%Treed%" or prop_feat6_out like "%Treed%" '); } elseif ($prop_featx_out2 == 2) { $criteria->addCondition('prop_feat1_out like "%Wooded%" or prop_feat2_out like "%Wooded%" or prop_feat3_out like "%Wooded%" or prop_feat4_out like "%Wooded%" or prop_feat5_out like "%Wooded%" or prop_feat6_out like "%Wooded%" '); } elseif ($prop_featx_out2 == 3) { $criteria->addCondition('prop_feat1_out like "%Grnbelt%" or prop_feat2_out like "%Grnbelt%" or prop_feat3_out like "%Grnbelt%" or prop_feat4_out like "%Grnbelt%" or prop_feat5_out like "%Grnbelt%" or prop_feat6_out like "%Grnbelt%" '); } elseif ($prop_featx_out2 == 4) { $criteria->addCondition('prop_feat1_out like "%Conserv%" or prop_feat2_out like "%Conserv%" or prop_feat3_out like "%Conserv%" or prop_feat4_out like "%Conserv%" or prop_feat5_out like "%Conserv%" or prop_feat6_out like "%Conserv%" '); } elseif ($prop_featx_out2 == 5) { $criteria->addCondition('prop_feat1_out like "%Ravine%" or prop_feat2_out like "%Ravine%" or prop_feat3_out like "%Ravine%" or prop_feat4_out like "%Ravine%" or prop_feat5_out like "%Ravine%" or prop_feat6_out like "%Ravine%" '); } } //$prop_featx_out3==>学校 1 prop_feat1_out like "%School%" or prop_feat2_out like "%School%" or prop_feat3_out like "%School%" or prop_feat4_out like "%School%" or prop_feat5_out like "%School%" or prop_feat6_out like "%School%" //$prop_featx_out_2==>医院 1 prop_feat1_out like "%Hospital%" or prop_feat2_out like "%Hospital%" or prop_feat3_out like "%Hospital%" or prop_feat4_out like "%Hospital%" or prop_feat5_out like "%Hospital%" or prop_feat6_out like "%Hospital%" //$prop_featx_out_3==>公共交通 1 prop_feat1_out like "%Public Transit%" or prop_feat2_out like "%Public Transit%" or prop_feat3_out like "%Public Transit%" or prop_feat4_out like "%Public Transit%" or prop_feat5_out like "%Public Transit%" or prop_feat6_out like "%Public Transit%" //$prop_featx_out_4==>高尔夫球场 1 prop_feat1_out like "%Golf%" or prop_feat2_out like "%Golf%" or prop_feat3_out like "%Golf%" or prop_feat4_out like "%Golf%" or prop_feat5_out like "%Golf%" or prop_feat6_out like "%Golf%" //$prop_featx_out_5==>图书馆 1 prop_feat1_out like "%Library%" or prop_feat2_out like "%Library%" or prop_feat3_out like "%Library%" or prop_feat4_out like "%Library%" or prop_feat5_out like "%Library%" or prop_feat6_out like "%Library%" if (!empty($prop_featx_out3)) { $criteria->addCondition('prop_feat1_out like "%School%" or prop_feat2_out like "%School%" or prop_feat3_out like "%School%" or prop_feat4_out like "%School%" or prop_feat5_out like "%School%" or prop_feat6_out like "%School%" '); } if (!empty($prop_featx_out_2)) { $criteria->addCondition('prop_feat1_out like "%Hospital%" or prop_feat2_out like "%Hospital%" or prop_feat3_out like "%Hospital%" or prop_feat4_out like "%Hospital%" or prop_feat5_out like "%Hospital%" or prop_feat6_out like "%Hospital%"'); } if (!empty($prop_featx_out_3)) { $criteria->addCondition('prop_feat1_out like "%Public Transit%" or prop_feat2_out like "%Public Transit%" or prop_feat3_out like "%Public Transit%" or prop_feat4_out like "%Public Transit%" or prop_feat5_out like "%Public Transit%" or prop_feat6_out like "%Public Transit%"'); } if (!empty($prop_featx_out_4)) { $criteria->addCondition('prop_feat1_out like "%Golf%" or prop_feat2_out like "%Golf%" or prop_feat3_out like "%Golf%" or prop_feat4_out like "%Golf%" or prop_feat5_out like "%Golf%" or prop_feat6_out like "%Golf%"'); } if (!empty($prop_featx_out_5)) { $criteria->addCondition('prop_feat1_out like "%Library%" or prop_feat2_out like "%Library%" or prop_feat3_out like "%Library%" or prop_feat4_out like "%Library%" or prop_feat5_out like "%Library%" or prop_feat6_out like "%Library%"'); } //物业类型 if (!empty($propertyType_id)) { $criteria->addCondition('propertyType_id="' . $propertyType_id . '"'); } if (strpos($total_price, '-') !== false) { $price = explode('-', $total_price); $minPrice = intval($price[0]) * 10000; $maxPrice = intval($price[1]) * 10000; if ($maxPrice != 0 || $minPrice != 0) { if ($maxPrice > $minPrice) { $criteria->addCondition('lp_dol <' . $maxPrice); } $criteria->addCondition('lp_dol >=' . $minPrice); } } //房屋面积 if (!empty($house_area)) { if ($house_area == 1) { $criteria->addCondition('house_area<700 and house_area > 1'); } elseif ($house_area == 2) { $criteria->addCondition('house_area>=700 and house_area<1100'); } elseif ($house_area == 3) { $criteria->addCondition('house_area>=1100 and house_area<1500'); } elseif ($house_area == 4) { $criteria->addCondition('house_area>=1500 and house_area<2000'); } elseif ($house_area == 5) { $criteria->addCondition('house_area>=2000 and house_area<2500'); } elseif ($house_area == 6) { $criteria->addCondition('house_area>=2500 and house_area<3000'); } elseif ($house_area == 7) { $criteria->addCondition('house_area>=3000 and house_area<3500'); } elseif ($house_area == 8) { $criteria->addCondition('house_area>=3500 and house_area<4000'); } elseif ($house_area == 9) { $criteria->addCondition('house_area>=4000'); } } //土地面积 if (!empty($land_area)) { if ($land_area == 1) { $criteria->addCondition('land_area<2000 and land_area > 100'); } elseif ($land_area == 2) { $criteria->addCondition('land_area>=2000 and land_area<4000'); } elseif ($land_area == 3) { $criteria->addCondition('land_area>=4000 and land_area<6000'); } elseif ($land_area == 4) { $criteria->addCondition('land_area>=6000 and land_area<12000'); } elseif ($land_area == 5) { $criteria->addCondition('land_area>=12000 and land_area<20000'); } elseif ($land_area == 6) { $criteria->addCondition('land_area>=20000 and land_area<43560'); } elseif ($land_area == 7) { $criteria->addCondition('land_area>=43560'); } } if (!empty($bedroom_num)) { if ($bedroom_num <= 5) { $criteria->addCondition('br>' . $bedroom_num); } else { $criteria->addCondition('br>=' . $bedroom_num); } } if (!empty($construction_year)) { if (!empty(self::$searchData['cd9'][$construction_year]['min'])) { $criteria->addCondition('yr_built>' . self::$searchData['cd9'][$construction_year]['min']); } if (!empty(self::$searchData['cd9'][$construction_year]['max'])) { $criteria->addCondition('yr_built<=' . self::$searchData['cd9'][$construction_year]['max']); } } if (!empty($bath_tot)) { $criteria->addCondition('bath_tot>"' . $bath_tot . '"'); } if (!empty($style)) { if ($style == "1") { $criteria->addCondition('style="Bungalow" or style="Bungalow-Raised" or style="Raised-Bungalow"'); } elseif ($style == "2") { $criteria->addCondition('style="1 1/2 Storey"'); } elseif ($style == "3") { $criteria->addCondition('style="2-Storey"'); } elseif ($style == "4") { $criteria->addCondition('style="2 1/2 Storey"'); } elseif ($style == "5") { $criteria->addCondition('style="3-Storey"'); } } if (!empty($comp_pts)) { if ($comp_pts == "1") { $criteria->addCondition('comp_pts="S"'); } elseif ($comp_pts == "2") { $criteria->addCondition('comp_pts="N"'); } elseif ($comp_pts == "3") { $criteria->addCondition('comp_pts="E"'); } elseif ($comp_pts == "4") { $criteria->addCondition('comp_pts="W"'); } } if (!empty($gar_spaces)) { $criteria->addCondition('gar_spaces >"' . $gar_spaces . '"'); } if (!empty($bsmt1_out)) { $criteria->addCondition('bsmt1_out="' . $bsmt1_out . '"'); } if (!empty($pool)) { if ($pool == "1") { //$criteria->addCondition('pool="Abv" or pool="Grnd" or pool="Indoor" or pool="Inground"'); $criteria->addCondition('pool like "%pool%"'); } elseif ($pool == "2") { $criteria->addCondition('pool="" or pool="None"'); } } #$criteria->order = 'id DESC'; $criteria->order = 'city_id ASC,lp_dol DESC'; if (!empty($time_sort)) { $criteria->order = 'pix_updt ' . $time_sort . ', city_id ASC,lp_dol DESC'; } if (!empty($price_sort)) { $criteria->order = 'lp_dol ' . $price_sort; } $criteria->with = array('mname', 'propertyType', 'city'); $count = House::model()->count($criteria); $pager = new CPagination($count); $pager->pageSize = 10; $pager->applyLimit($criteria); $house_list = House::model()->findAll($criteria); //generate cookie list for previous and next page foreach ($house_list as $val) { //generate ml_num for cookielist $ml_list = $ml_list . "," . $val->ml_num; } $listcookie = "fzd_houselist"; if (!isset($_COOKIE[$listcookie])) { setcookie($listcookie, "", time() - 3600); } setcookie($listcookie, $ml_list, time() + 86400 * 30, "/"); //end of adding cookie $collection_list = array(); if ($this->_account['userId']) { $collect_model = Collect::model()->find('user_id=:user_id', array(':user_id' => $this->_account['userId'])); if (!empty($collect_model)) { $collection_list = explode(',', $collect_model->collection); } } $data = array('cd1' => $city_id, 'cd2' => $district_id, 'cd3' => $investType_id, 'cd4' => $propertyType_id, 'cd5' => $total_price, 'cd6' => $house_area, 'cd7' => $land_area, 'cd8' => $bedroom_num, 'cd9' => $construction_year, 'cd10' => $prop_featx_out, 'cd11' => $prop_featx_out2, 'cd12' => $prop_featx_out3, 'cd12_2' => $prop_featx_out_2, 'cd12_3' => $prop_featx_out_3, 'cd12_4' => $prop_featx_out_4, 'cd12_5' => $prop_featx_out_5, 'cd13' => $bath_tot, 'cd14' => $style, 'cd15' => $comp_pts, 'cd16' => $gar_spaces, 'cd17' => $bsmt1_out, 'cd18' => $pool, 'time_sort' => $time_sort, 'price_sort' => $price_sort, 'diy_price' => json_encode($diy_price), 'city_list' => $city_list, 'district_list' => $district_list, 'investType_list' => $investType_list, 'propertyType_list' => $propertyType_list, 'count' => $count, 'house_list' => $house_list, 'collection_list' => $collection_list, "pages" => $pager, "type" => $type); $this->render('index', $data); }
/** * 取用户组列表 * @param $type */ protected function _groupList($type = 'user') { switch ($type) { case 'user': return AdminGroup::model()->findAll(); break; case 'subject': return Subject::model()->findAll(); break; case 'city': return City::model()->findAll(); break; case 'district': return District::model()->findAll(); break; case 'investType': return InvestType::model()->findAll(); break; case 'propertyType': return PropertyType::model()->findAll(); break; case 'house': return House::model()->findAll(); break; case 'match': return Match::model()->findAll(); break; } }
public function actionGetMapHouse() { $result = array(); if (empty($_POST)) { $result['IsError'] = true; $result['Message'] = '数据接收失败'; } else { $result['IsError'] = false; //根据条件查询地图 $criteria = new CDbCriteria(); // $criteria->join = 'join city_id as b on b.id = t.city_id'; // $criteria->join .= ' join propertyType_id as c on c.id = t.propertyType_id'; /* 排序 * <span data-value="1">价格:从高到低</span> <span data-value="2">价格:从低到高</span> <span data-value="3">日期:从后到前</span> <span data-value="4">日期:从前到后</span> */ if ($_POST['orderby'] == 1) { $criteria->order = 't.lp_dol desc'; } else { if ($_POST['orderby'] == 2) { $criteria->order = 't.lp_dol asc'; } else { if ($_POST['orderby'] == 3) { $criteria->order = 't.yr_built asc'; } else { if ($_POST['orderby'] == 4) { $criteria->order = 't.yr_built desc'; } else { $criteria->order = 't.id desc'; } } } } //city_id if (!empty($_POST['country']) && trim($_POST['country']) != 'undefined') { $criteria->addCondition("t.city_id = :city_id"); $criteria->params += array(':city_id' => intval($_POST['country'])); } //district_id if (!empty($_POST['district']) && trim($_POST['district']) != 'undefined') { $criteria->addCondition("t.district_id = :district_id"); $criteria->params += array(':district_id' => intval($_POST['district'])); } //卫生间数量 1-5 if (!empty($_POST['housebaths']) && intval($_POST['housebaths']) > 0) { $criteria->addCondition("t.toilet_num = :toilet_num"); $criteria->params += array(':toilet_num' => intval($_POST['housebaths'])); } //土地面积 if (!empty($_POST['houseground'])) { $ground = explode(',', $_POST['houseground']); $minGround = intval($ground[0]); $maxGround = intval($ground[1]); if ($minGround != 0 || $maxGround != 0) { if ($maxGround > $minGround) { $criteria->addCondition("t.depth*t.front_ft <= :maxGround"); $criteria->params += array(':maxGround' => $maxGround); } $criteria->addCondition("t.depth*t.front_ft >= :minGround"); $criteria->params += array(':minGround' => $minGround); } } //价格区间 if (!empty($_POST['houseprice'])) { $price = explode(',', $_POST['houseprice']); $minPrice = intval($price[0]); $maxPrice = intval($price[1]); if ($maxPrice != 0 || $minPrice != 0) { if ($maxPrice > $minPrice) { $criteria->addCondition("t.lp_dol <= :maxPrice"); $criteria->params += array(':maxPrice' => $maxPrice); } $criteria->addCondition("t.lp_dol >= :minPrice"); $criteria->params += array(':minPrice' => $minPrice); } } //房型 if (!empty($_POST['houseroom']) && intval($_POST['houseroom']) > 0) { $houseroom = intval($_POST['houseroom']); if ($houseroom == '6') { $criteria->addCondition("t.br_plus >= :bedroom_num"); } else { if ($houseroom > 0) { $criteria->addCondition("t.br_plus = :bedroom_num"); } } $criteria->params += array(':br_plus' => $houseroom); } //房屋类型 if (!empty($_POST['housetype']) && intval($_POST['housetype']) != 0) { if ($_POST['housetype'] == 1) { $criteria->addCondition('type_own1_out="Detached"'); } elseif ($_POST['housetype'] == 2) { $criteria->addCondition('type_own1_out="Townhouse" or type_own1_out="Att∕Row∕Twnhouse" or type_own1_out="Triplex" or type_own1_out="Fourplex" or type_own1_out="Multiplex"'); } elseif ($_POST['housetype'] == 3) { $criteria->addCondition('lp_dol>3000000'); } elseif ($_POST['housetype'] == 4) { $criteria->addCondition('type_own1_out="Semi-Detached" or type_own1_out="Link" or type_own1_out="Duplex"'); } elseif ($_POST['housetype'] == 5) { $criteria->addCondition('type_own1_out="Cottage" or type_own1_out="Rural Resid"'); } elseif ($_POST['housetype'] == 6) { $criteria->addCondition('type_own1_out="Farm"'); } elseif ($_POST['housetype'] == 7) { $criteria->addCondition('type_own1_out="Vacant Land"'); } elseif ($_POST['housetype'] == 8) { $criteria->addCondition('type_own1_out="Mobile/Trailer" or type_own1_out="Det W/Com Elements" or type_own1_out="Store W/Apt/offc"'); } // $criteria->addCondition("t.propertyType_id = :propertyType_id"); // $criteria->params += array(':propertyType_id' => intval($_POST['housetype'])); } //根据地区名字搜索 if (!empty($_POST['city']) && trim($_POST['city']) != '州名/市名(中英)') { $city = trim($_POST['city']); $criteria->addCondition("t.addr like '%" . $city . "%' OR b.pinyin like '%" . $city . "%' OR b.englishName like '%" . $city . "%'"); } //建造年份 if (!empty($_POST['houseyear'])) { $year = explode(',', $_POST['houseyear']); $minYear = intval($year[0]); $maxYear = intval($year[1]); if ($maxYear != 0 || $minYear != 0) { if ($maxYear > $minYear) { $criteria->addCondition("t.yr <= :maxYear"); $criteria->params += array(':maxYear' => $maxYear); } $criteria->addCondition("t.yr >= :minYear"); $criteria->params += array(':minYear' => $minYear); } } $house = House::model()->findAll($criteria); //经纬度范围 if ((empty($_POST['city']) || trim($_POST['city']) == '州名/市名(中英)') && empty($_POST['country']) && !empty($_POST['city'])) { if (!empty($house)) { $bound = explode(',', $_POST['bounds']); foreach ($house as $key => $val) { $jingweidu = actionGetCodeAddress2($val->country . $val->community . $val->addr); if (floatval($val->latitude) >= floatval($bound[0]) && floatval($jingweidu['lat']) <= floatval($bound[2]) && floatval($jingweidu['lng']) >= floatval($bound[1]) && floatval($jingweidu['lng']) <= floatval($bound[3])) { } else { unset($house[$key]); } } } } $count = count($house); //数据重组 if (!empty($house)) { $result['Message'] = '成功'; $result['Data']['AreaHouseCount'] = array(); $result['Data']['MapHouseList'] = array(); foreach ($house as $key => $val) { $jingweidu = actionGetCodeAddress2($val->country . $val->community . $val->addr); $mapHouseList = array(); $mapHouseList['Beds'] = $val->br_plus; $mapHouseList['Baths'] = $val->bath_tot; $mapHouseList['Kitchen'] = $val->kit_plus; $mapHouseList['GeocodeLat'] = $jingweidu['lat']; $mapHouseList['GeocodeLng'] = $jingweidu['lng']; $mapHouseList['Address'] = $val->addr; $mapHouseList['Price'] = $val->lp_dol; $mapHouseList['Id'] = $val->id; $propertyType = PropertyType::model()->findByPk($val->propertyType_id); $mapHouseList['HouseType'] = !empty($propertyType) ? $propertyType->name : ''; $countryInfo = City::model()->findByPk($val->city_id); $mapHouseList['CountryName'] = !empty($countryInfo) ? $countryInfo->name : ''; $mapHouseList['Country'] = $val->city_id; $mapHouseList['Money'] = 'CAD'; $area2Name = District::model()->findByPk($val->district_id); $mapHouseList['Area2Name'] = !empty($area2Name) ? $area2Name->name : ''; $mapHouseList['CoverImg'] = !empty($val->house_image) ? $val->house_image : 'uploads/201501/29cd77e5f187df554a1ff9facdc190e2.jpg'; $mapHouseList['BuildYear'] = $val->construction_year; $result['Data']['MapHouseList'][] = $mapHouseList; //数据总数拼装 if (!empty($countryInfo)) { $provinceInfo = Province::model()->findByPk($countryInfo->province_id); } if (intval($_POST['zoom']) < 10 && intval($_POST['zoom']) >= 6) { $result['Data']['AreaHouseCount'][$val->city_id]['Count']['NameCn'] = $val['name']; $result['Data']['AreaHouseCount'][$val->city_id]['Count']['HouseCount'] += 1; $result['Data']['AreaHouseCount'][$val->city_id]['Count']['GeocodeLat'] = !empty($countryInfo) ? $countryInfo->lat : ''; $result['Data']['AreaHouseCount'][$val->city_id]['Count']['GeocodeLng'] = !empty($countryInfo) ? $countryInfo->lnt : ''; $result['Data']['AreaHouseCount'][$val->city_id]['Count']['MaxZoom'] = 2; $result['Data']['AreaHouseCount'][$val->city_id]['List'][] = $mapHouseList; } else { if (intval($_POST['zoom']) < 6) { if (!empty($provinceInfo)) { $result['Data']['AreaHouseCount'][$provinceInfo->id]['Count']['NameCn'] = $val['name']; $result['Data']['AreaHouseCount'][$provinceInfo->id]['Count']['HouseCount'] += 1; $result['Data']['AreaHouseCount'][$provinceInfo->id]['Count']['GeocodeLat'] = $provinceInfo->lat; $result['Data']['AreaHouseCount'][$provinceInfo->id]['Count']['GeocodeLng'] = $provinceInfo->lnt; $result['Data']['AreaHouseCount'][$provinceInfo->id]['Count']['MaxZoom'] = 2; $result['Data']['AreaHouseCount'][$provinceInfo->id]['List'][] = $mapHouseList; } } } } } else { $result['IsError'] = true; $result['Message'] = '无数据'; } } echo json_encode($result); }
/** * @param int $propertyType * @return bool */ public function actionPropertySubTypes($propertyType = 0) { if (!$propertyType) { return false; } $propertySubTypes = PropertyType::model()->getTypes($propertyType); foreach ($propertySubTypes as $propertySubType) { echo "<option value='" . $propertySubType->pty_id . "'>" . $propertySubType->pty_title . "</option>"; } }
/** * 房源列表 */ public function actionIndex() { Yii::app()->clientScript->registerCssFile(Yii::app()->theme->baseUrl . '/css/house.css'); $city_id = Yii::app()->request->getQuery('cd1', 0); $district_id = Yii::app()->request->getQuery('cd2', 0); $investType_id = Yii::app()->request->getQuery('cd3', 0); $propertyType_id = Yii::app()->request->getQuery('cd4', 0); $total_price = Yii::app()->request->getQuery('cd5', 0); $house_area = Yii::app()->request->getQuery('cd6', 0); $land_area = Yii::app()->request->getQuery('cd7', 0); $bedroom_num = Yii::app()->request->getQuery('cd8', 0); $construction_year = Yii::app()->request->getQuery('cd9', 0); $prop_featx_out = Yii::app()->request->getQuery('cd10', 0); $time_sort = Yii::app()->request->getQuery('time_sort', 'DESC'); $price_sort = Yii::app()->request->getQuery('price_sort'); $diy_word = null; $city_list = City::model()->findAll(array('order' => 'id ASC')); if (!empty($city_id)) { $district_list = District::model()->findAll('city_id=:city_id', array(':city_id' => $city_id)); } else { $district_list = District::model()->findAll(); } $investType_list = InvestType::model()->findAll(); $propertyType_list = PropertyType::model()->findAll(); //按搜索条件查询房源信息 $criteria = new CDbCriteria(); if (!empty($city_id)) { $criteria->addCondition('city_id=' . $city_id); } if (!empty($district_id)) { $criteria->addCondition('district_id=' . $district_id); } if (!empty($propertyType_id)) { if ($propertyType_id == 1) { $criteria->addCondition('type_own1_out="Detached"'); } elseif ($propertyType_id == 2) { $criteria->addCondition('type_own1_out="Townhouse" or type_own1_out="Att∕Row∕Twnhouse" or type_own1_out="Triplex" or type_own1_out="Fourplex" or type_own1_out="Multiplex"'); } elseif ($propertyType_id == 3) { $criteria->addCondition('lp_dol>3000000'); } elseif ($propertyType_id == 4) { $criteria->addCondition('type_own1_out="Semi-Detached" or type_own1_out="Link" or type_own1_out="Duplex"'); } elseif ($propertyType_id == 5) { $criteria->addCondition('type_own1_out="Cottage" or type_own1_out="Rural Resid"'); } elseif ($propertyType_id == 6) { $criteria->addCondition('type_own1_out="Farm"'); } elseif ($propertyType_id == 7) { $criteria->addCondition('type_own1_out="Vacant Land"'); } elseif ($propertyType_id == 8) { $criteria->addCondition('type_own1_out="Mobile/Trailer" or type_own1_out="Det W/Com Elements" or type_own1_out="Store W/Apt/offc"'); } } if (!empty($total_price)) { if (!empty(self::$searchData['cd5'][$total_price]['min'])) { $criteria->addCondition('lp_dol>' . self::$searchData['cd5'][$total_price]['min']); } if (!empty(self::$searchData['cd5'][$total_price]['max'])) { $criteria->addCondition('lp_dol<=' . self::$searchData['cd5'][$total_price]['max']); } } if (!empty($house_area)) { if (!empty(self::$searchData['cd6'][$house_area]['min'])) { $criteria->addCondition('sqft>' . self::$searchData['cd6'][$house_area]['min']); } if (!empty(self::$searchData['cd6'][$house_area]['max'])) { $criteria->addCondition('sqft<=' . self::$searchData['cd6'][$house_area]['max']); } } if (!empty($land_area)) { if (!empty(self::$searchData['cd7'][$land_area]['min'])) { $criteria->addCondition('depth*front_ft>' . self::$searchData['cd7'][$land_area]['min']); } if (!empty(self::$searchData['cd7'][$land_area]['max'])) { $criteria->addCondition('depth*front_ft<=' . self::$searchData['cd7'][$land_area]['max']); } } if (!empty($bedroom_num)) { if ($bedroom_num <= 5) { $criteria->addCondition('br_plus=' . $bedroom_num); } else { $criteria->addCondition('br_plus>=' . $bedroom_num); } } if (!empty($construction_year)) { if (!empty(self::$searchData['cd9'][$construction_year]['min'])) { $criteria->addCondition('yr_built>' . self::$searchData['cd9'][$construction_year]['min']); } if (!empty(self::$searchData['cd9'][$construction_year]['max'])) { $criteria->addCondition('yr_built<=' . self::$searchData['cd9'][$construction_year]['max']); } } if (!empty($prop_featx_out)) { $criteria->addCondition('prop_feat1_out="' . $prop_featx_out . '"'); } $criteria->order = 'id DESC'; if (!empty($time_sort)) { $criteria->order = 'pix_updt ' . $time_sort; } if (!empty($price_sort)) { $criteria->order = 'lp_dol ' . $price_sort; } $count = House::model()->count($criteria); $pager = new CPagination($count); $pager->pageSize = 10; $pager->applyLimit($criteria); $house_list = House::model()->findAll($criteria); $collection_list = array(); if ($this->_account['userId']) { $collect_model = Collect::model()->find('user_id=:user_id', array(':user_id' => $this->_account['userId'])); if (!empty($collect_model)) { $collection_list = explode(',', $collect_model->collection); } } $data = array('cd1' => $city_id, 'cd2' => $district_id, 'cd3' => $investType_id, 'cd4' => $propertyType_id, 'cd5' => $total_price, 'cd6' => $house_area, 'cd7' => $land_area, 'cd8' => $bedroom_num, 'cd9' => $construction_year, 'cd10' => $prop_featx_out, 'time_sort' => $time_sort, 'price_sort' => $price_sort, 'diy_price' => json_encode($diy_price), 'city_list' => $city_list, 'district_list' => $district_list, 'investType_list' => $investType_list, 'propertyType_list' => $propertyType_list, 'count' => $count, 'house_list' => $house_list, 'collection_list' => $collection_list, "pages" => $pager); $this->render('index', $data); }
<?php } ?> </tr> </table> </div> </div> <?php echo $form->beginControlGroup($model, 'dea_ptype'); ?> <?php echo $form->controlLabel($model, 'dea_ptype'); ?> <div class="controls"> <?php echo $form->checkBoxListWithSelectOnLabel($model, 'dea_ptype', Chtml::listData(PropertyType::model()->getTypes(), 'pty_id', 'pty_title'), ['separator' => ' ']); ?> <label style="display:inline-block; margin-left:28px;float:none; margin-right:12px; font-weight: bold">Branch</label> <?php echo $form->checkBoxListWithSelectOnLabel($model, 'dea_branch', CHtml::listData(Branch::model()->active()->findAll(), 'bra_id', 'bra_title'), ['separator' => ' ']); ?> </div> <?php echo $form->endControlGroup(); ?> <div class="control-group"> <label class="control-label"> Negotiator </label>
</div> <div class="control-group"> <label class="control-label">Bedrooms</label> <div class="controls"> <?php echo $form->textField($instructionModel, 'dea_bedroom'); ?> </div> </div> <div class="control-group"> <label class="control-label">PropertyType</label> <div class="controls"> <?php echo $form->checkBoxList($instructionModel, 'dea_ptype', CHtml::listData(PropertyType::model()->getTypes(), 'pty_id', 'pty_title'), ['separator' => ' ']); ?> </div> </div> <div class="control-group"> <label class="control-label">Receive Emails</label> <div class="controls"> <?php echo $form->checkBox($clientModel, 'cli_saleemail', ['value' => 'Yes', 'uncheckValue' => '']); ?> </div> </div> </div> </fieldset>