public function updateCMSFields(FieldList $fields) { $fields->insertBefore(new Tab('MembershipDetails', 'Membership Details'), 'Main'); //move first and ;astname $fields->addFieldToTab('Root.MembershipDetails', $fields->dataFieldByName('FirstName')); $fields->addFieldToTab('Root.MembershipDetails', $fields->dataFieldByName('Surname')); $fields->addFieldToTab('Root.MembershipDetails', $fields->dataFieldByName('Email')); $fields->addFieldToTab('Root.MembershipDetails', $region = DropdownField::create('RegionID', 'Region', Region::get()->map('ID', 'Title'))); $region->setEmptyString(' '); $fields->addFieldToTab('Root.MembershipDetails', DropdownField::create('MembershipStatus', 'Membership Status', $this->owner->dbObject('MembershipStatus')->enumValues())); $fields->addFieldToTab('Root.MembershipDetails', $expiry = DateField::create('ExpiryDate')); $fields->addFieldToTab('Root.MembershipDetails', DropdownField::create('Discount', 'Discount', $this->owner->dbObject('Discount')->enumValues())); $fields->addFieldToTab('Root.MembershipDetails', $discountExpiry = DateField::create('DiscountExpiryDate')); $fields->addFieldToTab('Root.MembershipDetails', $joined = DateField::create('JoinedDate')); $fields->addFieldToTab('Root.MembershipDetails', TextareaField::create('NotesForMember')); if ($this->owner->MembershipStatus !== "Not applied") { $fields->addFieldToTab('Root.MembershipDetails', TextField::create('MemberNumber')); } $fields->addFieldToTab('Root.MembershipDetails', TextField::create('HomePhone')); $fields->addFieldToTab('Root.MembershipDetails', TextField::create('WorkPhone')); $fields->addFieldToTab('Root.MembershipDetails', TextField::create('MobilePhone')); $fields->addFieldToTab('Root.MembershipDetails', TextareaField::create('Address')); $fields->addFieldToTab('Root.MembershipDetails', TextField::create('Occupation')); $fields->addFieldToTab('Root.MembershipDetails', TextField::create('BirthDate')); $expiry->setConfig('showcalendar', true); $expiry->setConfig('showdropdown', true); $expiry->setConfig('dateformat', 'dd-MM-YYYY'); $discountExpiry->setConfig('showcalendar', true); $discountExpiry->setConfig('showdropdown', true); $discountExpiry->setConfig('dateformat', 'dd-MM-YYYY'); $joined->setConfig('showcalendar', true); $joined->setConfig('showdropdown', true); $joined->setConfig('dateformat', 'dd-MM-YYYY'); }
public function show(SS_HTTPRequest $request) { $region = Region::get()->byID($request->param('ID')); if (!$region) { return $this->httpError(404, 'That region could not be found'); } return array('Region' => $region, 'Title' => $region->Title); }
public function getCMSFields() { $fields = FieldList::create(TabSet::create('Root')); $fields->addFieldsToTab('Root.Main', array(TextField::create('Title'), TextareaField::create('Description'), CurrencyField::create('PricePerNight', 'Price (per night)'), DropdownField::create('Bedrooms')->setSource(ArrayLib::valuekey(range(1, 10))), DropdownField::create('Bathrooms')->setSource(ArrayLib::valuekey(range(1, 10))), DropdownField::create('RegionID', 'Region')->setSource(Region::get()->map('ID', 'Title'))->setEmptyString('-- Select a region --'), CheckboxField::create('FeaturedOnHomepage', 'Feature on homepage'))); $fields->addFieldToTab('Root.Photos', $upload = UploadField::create('PrimaryPhoto', 'Primary photo')); $upload->getValidator()->setAllowedExtensions(array('png', 'jpeg', 'jpg', 'gif')); $upload->setFolderName('property-photos'); return $fields; }
public function region(SS_HTTPRequest $r) { $region = Region::get()->byID($r->param('ID')); if (!$region) { return $this->httpError(404, 'That region was not found'); } $this->articleList = $this->articleList->filter(array('RegionID' => $region->ID)); return array('SelectedRegion' => $region); }
public function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldToTab('Root.Attachments', $photo = UploadField::create('Photo')); $fields->addFieldToTab('Root.Attachments', $brochure = UploadField::create('Brochure', 'Travel brochure, optional (PDF only)')); $photo->getValidator()->setAllowedExtensions(array('png', 'gif', 'jpg', 'jpeg')); $photo->setFolderName('travel-photos'); $brochure->getValidator()->setAllowedExtensions(array('pdf')); $brochure->setFolderName('travel-brochures'); $fields->addFieldToTab('Root.Categories', CheckboxSetField::create('Categories', 'Selected categories', $this->Parent()->Categories()->map('ID', 'Title'))); $fields->addFieldToTab('Root.Main', DropdownField::create('RegionID', 'Region', Region::get()->map('ID', 'Title'))->setEmptyString('-- None --'), 'Content'); return $fields; }
public function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldsToTab('Root.Main', DateField::create('Date', 'Date of article')->setConfig('showcalendar', true), 'Content'); $fields->addFieldsToTab('Root.Main', TextareaField::create('Teaser'), 'Content'); $fields->addFieldsToTab('Root.Main', TextField::create('Author', 'Author of article'), 'Content'); $fields->addFieldsToTab('Root.Attachments', $photo = UploadField::create('Photo')); $fields->addFieldsToTab('Root.Attachments', $brochure = UploadField::create('Brochure', 'Travel brochure, optional (PDF only)')); $photo->setFolderName('travel-photos'); $brochure->setFolderName('travel-brochures')->getValidator()->setAllowedExtensions(array('pdf')); $fields->addFieldsToTab('Root.Categories', CheckboxSetField::create('Categories', 'Selected categories', $this->Parent()->Categories()->map('ID', 'Title'))); $fields->addFieldsToTab('Root.Main', DropdownField::create('RegionID', 'Region', Region::get()->map('ID', 'Title'))->setEmptyString('-- None --'), 'Content'); return $fields; }
public function updateCMSFields(FieldList $fields) { $details = $fields->dataFieldByName('Details'); $event = $fields->dataFieldByName('EventPageID'); $cID = Calendar::get_one('Calendar')->ID; $fields->push($calendar = HiddenField::create('CalendarID', 'Calendar')); $calendar->setValue($cID); $fields->insertAfter($event, 'TimeFrameType'); $fields->insertAfter($region = DropdownField::create('RegionID', 'Region', Region::get()->map('ID', 'Title')), 'EventPageID'); $region->setEmptyString(' '); $fields->removeByName('RelatedPage'); $fields->addFieldToTab('Root.Details', TextareaField::create('Intro', 'Intro')); $fields->insertAfter($details, 'Intro'); $fields->addFieldToTab('Root.Brand', ColorPaletteField::create("Colour", "Colour", $this->owner->getPalette())); $fields->insertAfter($splash = UploadField::create('SplashImage', 'Splash Image'), 'Colour'); $fields->insertAfter($small = UploadField::create('SmallImage', 'Small Image'), 'SplashImage'); $splash->setFolderName('Uploads/Splash-Images'); $small->setFolderName('Uploads/Small-Images'); }
public function searchableFields() { return array('Title' => array('filter' => 'PartialMatchFilter', 'title' => 'Title', 'field' => 'TextField'), 'RegionID' => array('filter' => 'ExactMatchFilter', 'title' => 'Region', 'field' => DropdownField::create('RegionID')->setSource(Region::get()->map('ID', 'Title'))->setEmptyString('-- Any region --')), 'FeaturedOnHomepage' => array('filter' => 'ExactMatchFilter', 'title' => 'Only featured')); }
public function search() { $output = ''; if (!$this->isJson()) { return $this->httpError(500, 'Content Type not allowed'); } try { $search_params = json_decode($this->request->getBody(), true); $query = new QueryObject(new Consultant()); $query->addAlias(QueryAlias::create('Company')); $query->addAndCondition(QueryCriteria::equal("Active", true)); $location = @explode(',', @$search_params['location_term']); $name = @$search_params['name_term']; $service = @$search_params['service_term']; $region = @$search_params['region_term']; if (!empty($name)) { $query->addAndCondition(QueryCompoundCriteria::compoundOr(array(QueryCriteria::like('CompanyService.Name', $name), QueryCriteria::like('CompanyService.Overview', $name), QueryCriteria::like('Company.Name', $name)))); } if (!empty($service) || !empty($region)) { $query->addAlias(QueryAlias::create('ServicesOffered')); if (!empty($service)) { $query->addAndCondition(QueryCriteria::like("ConsultantServiceOfferedType.Type", $service)); } if (!empty($region)) { $region_id = Region::get()->filter('Name', $region)->first()->ID; $query->addAndCondition(QueryCriteria::id("Consultant_ServicesOffered.RegionID", $region_id)); } } if (is_array($location) && !empty($location[0])) { $query->addAlias(QueryAlias::create('Offices')); $query->addAndCondition(QueryCriteria::like("Office.City", $location[0])); } $countries = array_flip(Geoip::getCountryDropDown()); if (is_array($location) && count($location) == 2) { $country = trim($location[1]); if (!empty($country) && array_key_exists($country, $countries)) { $query->addAndCondition(QueryCriteria::like("Office.Country", $countries[$country])); } } else { if (is_array($location) && count($location) == 3) { $state = trim($location[1]); $country = trim($location[2]); if (!empty($country) && array_key_exists($country, $countries)) { $query->addAndCondition(QueryCriteria::like("Office.Country", $countries[$country])); } if (!empty($state)) { $query->addAndCondition(QueryCriteria::like("Office.State", $state)); } } } list($list, $size) = $this->consultants_repository->getAll($query, 0, 1000); foreach ($list as $public_cloud) { $output .= $public_cloud->renderWith('ConsultantsDirectoryPage_CloudBox', array('ConsultantLink' => $this->Link())); } } catch (Exception $ex) { return $this->httpError(500, 'Server Error'); } return empty($output) ? $this->httpError(404, '') : $output; }
/** * Generates units from user work and pays his salary * * @return mixed (boolean/array) */ public function work() { /* http://wiki.e-sim.org/index.php/Productivity_formula * P = 10 * (4+E) * N * C * R * Q P - Productivity E - Economy skill level N - Employee multiplier (Number of employees already worked that day in the company.) if employeesWorked <=10 Then N = 1.0 + (10-employeesWorked) * 0.05 elseif employeesWorked <=20 Then N = 1.0 - (employeesWorked-10) * 0.03 elseif employeesWorked <=30 Then N = 0.7 - (employeesWorked-20) * 0.02 else N=0.5; C 1 If home country controls capital 0.75 If not R for manufacture companies: 1.25 If region's country owns the appropriate high raw. (eg: Iron for Weapons) 1 If region's country do not own the appropriate high raw. for raw companies: 1.0 in high regions 0.75 in medium region. Q 1.0 for manufacture companies for raw companies 1.0 for Q1 companies 1.2 for Q2 companies 1.4 for Q3 companies 1.6 for Q4 companies 1.8 for Q5 companies * */ $job = new Job(); $job = $job->getByUid($this->uid); if (!$job) { throw new Exception("you don't have a job"); } $skills = new Skill(); $skills->get($this->uid); $E = $skills->economic; $employeesWorked = 1; //ToDO PENDING if ($employeesWorked <= 10) { $N = 1.0 + (10 - $employeesWorked) * 0.05; } elseif ($employeesWorked <= 20) { $N = 1.0 - ($employeesWorked - 10) * 0.03; } elseif ($employeesWorked <= 30) { $N = 0.7 - ($employeesWorked - 20) * 0.02; } else { $N = 0.5; } $company = new Company(); $company->get($job->company); $region = new Region(); $companyRegion = $region->get($company->region); //does the region have the resource that company produces? // also determine product quality if ($company->productType == Company::PRODUCT_TYPE_RESOURCE) { $R = $companyRegion->resourceAmount / 10; $Q = 1; } else { $product = new Product(); $product->get($company->product); if ($companyRegion->resourceType == $product->resource) { $R = 1.25; } else { $R = 1; } $Q = 0.8 + 0.2 * $company->quality; } $country = new Country(); $country = $country->get($companyRegion->country); $capitalRegion = $region->get($country->capitalRegionId); //is country capital owned by original owners? if ($capitalRegion->country == $capitalRegion->countryConqueror) { $C = 1; } else { $C = 0.75; } if ($companyRegion->resourceAmount > 0) { $productivity = 10 * (4 + $E) * $N * $C * $R * $Q; } else { $productivity = 10 * (4 + $E) * $N * $C * $Q; } $user = new User($this->uid); $user->updateXP('WORK'); $skills->economic += 0.125; $skills->save(); $company->pendingUnits += $productivity; //calculate produced units if ($company->productType == Company::PRODUCT_TYPE_RESOURCE) { $createdUnits = floor($company->pendingUnits); $company->pendingUnits -= $createdUnits; $added = $company->addStock($createdUnits, Company::PRODUCT_TYPE_PRODUCT); if ($added) { $company->save(); } } else { $minProduct = $product->productivityBase * $company->quality; $createdUnits = floor($company->pendingUnits / $minProduct); if ($company->pendingUnits > $minProduct) { } $company->pendingUnits -= $createdUnits * $minProduct; $added = $company->addStock($createdUnits, Company::PRODUCT_TYPE_PRODUCT); if ($added) { $company->save(); } } //pay salary $transactionData = array('quantity' => $job->salary, 'action' => 'PAY_SALARY', 'receiver' => $this->uid, 'receiverType' => Company::RECEIVER_TYPE_USER); if ($company->transaction($transactionData)) { //save historial Service::getDB()->insert('work_historial', array('uid' => $this->uid, 'date' => $this->now())); return array('productivity' => $productivity, 'createdUnits' => $createdUnits); } else { return false; } }
public function PopularRegions() { return Region::get()->filter(array('PopularOnHomepage' => true))->limit(6); }
/** * Get the {@link FeatureItem} objects attached to this page that are not Archived * * @return ArrayList */ public function CurrentRegions() { return Region::get()->filter(array('Archived' => false, 'HideFromRegionLists' => false))->sort('Sort'); }