You'll have to excuse me but i'm a bit of a noob when it comes to programming. I have managed to create my own snippet that connects to a webservice to bring out some results and display them through a chunk in a loop.
Now although (to my surprise) this seems to do the job and function correctly, it does seem to be quite slow sometimes.
Is there anything anyone can see thats obviously wrong with this code or any improvements that can be made to resolve any speed issues with loading the page.
<?php
$tenure = !empty($tenure) ? $tenure : '0';
$rentalTermsID = !empty($rentalTermsID) ? $rentalTermsID : 0;
$FeaturedCount = !empty($FeaturedCount) ? $FeaturedCount : 0;
$commercial = !empty($commercial) ? $commercial : 0;
$types = !empty($types) ? $types : 0;
if (isset($_COOKIE["listing_view"])) {
if ($_COOKIE["listing_view"] == 'list') {
$tpl = 'propertyTplList';
}
elseif($_COOKIE["listing_view"] == 'grid-large') {
$tpl = 'propertyTplGridLarge';
}
elseif($_COOKIE["listing_view"] == 'grid') {
$tpl = 'propertyTplGrid';
}
}
else {
$tpl = 'propertyTplList';
}
try {
$wsdl_url = '[[link to webservice goes here ]]';
$client = new SoapClient($wsdl_url,
array( 'trace' => true,
'exceptions' => true,
)
);
$params = array(
'strSitePrefix' => "",
'intSiteID' => "-1",
'intPropertyID' => "0",
'intPropertyDevelopmentID' => "0",
'bytBedrooms' => isset( $_GET['bytBedrooms'] ) ? $_GET['bytBedrooms'] : 0,
'decMinPrice' => isset( $_GET['decMinPrice'] ) ? $_GET['decMinPrice'] : 0,
'decMaxPrice' => isset( $_GET['decMaxPrice'] ) ? $_GET['decMaxPrice'] : 0,
'bytTenure' => $tenure,
'intCommercial' => $commercial,
'bytPropertyAge' => "0",
'intRentalTerms' => $rentalTermsID,
'bytFeaturedCount' => $FeaturedCount,
'strAreas' => isset( $_GET['strAreas'] ) ? $_GET['strAreas'] : 0,
'strTypes' => $types,
'bytSortOrder' => isset( $_GET['bytSortOrder'] ) ? $_GET['bytSortOrder'] : 1,
'bytUseCDataTags' => "0",
);
$result = $client->GetDataV8($params);
//var_dump($result);
$xml = simplexml_load_string($result->GetDataV8Result->any);
//var_dump($xml);
$total = 0;
if($xml){
foreach ($xml->PropertiesDataSet->Properties as $key=>$item) {
$modx->setPlaceholder('ID', $item->ID);
$modx->setPlaceholder('ShortDescription', $item->ShortDescription);
$modx->setPlaceholder('Description', $item->Description);
$modx->setPlaceholder('FullDescription', $item->FullDescription);
$modx->setPlaceholder('BulletPoints', $item->BulletPoints);
$modx->setPlaceholder('PropertyName', $item->PropertyName);
$modx->setPlaceholder('Street', $item->Street);
$modx->setPlaceholder('Locality', $item->Locality);
$modx->setPlaceholder('Town', $item->Town);
$modx->setPlaceholder('Region', $item->Region);
$modx->setPlaceholder('Country', $item->Country);
$modx->setPlaceholder('PostCode', $item->PostCode);
$modx->setPlaceholder('PostCodeLng', $item->PostCodeLng);
$modx->setPlaceholder('PostCodeLat', $item->PostCodeLat);
$modx->setPlaceholder('Status', $item->Status);
$modx->setPlaceholder('Type', $item->Type);
$modx->setPlaceholder('Tenure', $item->Tenure);
$modx->setPlaceholder('Pictures', $item->Pictures);
$modx->setPlaceholder('Picture1', $item->Picture1);
$modx->setPlaceholder('Picture2', $item->Picture2);
$modx->setPlaceholder('Picture3', $item->Picture3);
$modx->setPlaceholder('Picture4', $item->Picture4);
$modx->setPlaceholder('Picture5', $item->Picture5);
$modx->setPlaceholder('Picture6', $item->Picture6);
$modx->setPlaceholder('Picture7', $item->Picture7);
$modx->setPlaceholder('Picture8', $item->Picture8);
$modx->setPlaceholder('Picture9', $item->Picture9);
$modx->setPlaceholder('Picture10', $item->Picture10);
$modx->setPlaceholder('Picture11', $item->Picture11);
$modx->setPlaceholder('Picture12', $item->Picture12);
$modx->setPlaceholder('Picture13', $item->Picture13);
$modx->setPlaceholder('Picture14', $item->Picture14);
$modx->setPlaceholder('Picture15', $item->Picture15);
$modx->setPlaceholder('Picture16', $item->Picture16);
$modx->setPlaceholder('Floorplan', $item->Floorplan);
$modx->setPlaceholder('VirtualTourURL', $item->VirtualTourURL);
$modx->setPlaceholder('CurrencyID', $item->CurrencyID);
$modx->setPlaceholder('PricePrefix', $item->PricePrefix);
$modx->setPlaceholder('Price', $item->Price);
$modx->setPlaceholder('PriceFrequency', $item->PriceFrequency);
$modx->setPlaceholder('DisplayPrice', $item->DisplayPrice);
$modx->setPlaceholder('Bedrooms', $item->Bedrooms);
$modx->setPlaceholder('Receptions', $item->Receptions);
$modx->setPlaceholder('Bathrooms', $item->Bathrooms);
$modx->setPlaceholder('Built', $item->Built);
$modx->setPlaceholder('Garage', $item->Garage);
$modx->setPlaceholder('ParkingOffStreet', $item->ParkingOffStreet);
$modx->setPlaceholder('CentralHeating', $item->CentralHeating);
$modx->setPlaceholder('DoubleGlazing', $item->DoubleGlazing);
$modx->setPlaceholder('Gardens', $item->Gardens);
$modx->setPlaceholder('StatusID', $item->StatusID);
$modx->setPlaceholder('TypeID', $item->TypeID);
$modx->setPlaceholder('LocationID', $item->LocationID);
$modx->setPlaceholder('TenureID', $item->TenureID);
$modx->setPlaceholder('NewHome', $item->NewHome);
$modx->setPlaceholder('Exclusive', $item->Exclusive);
$modx->setPlaceholder('Age', $item->Age);
$modx->setPlaceholder('Commercial', $item->Commercial);
$modx->setPlaceholder('AreaID', $item->AreaID);
$modx->setPlaceholder('DevelopmentID', $item->DevelopmentID);
$modx->setPlaceholder('WebFeatured', $item->WebFeatured);
$modx->setPlaceholder('RentalAvailableDate', $item->RentalAvailableDate);
$modx->setPlaceholder('RentalTerms', $item->RentalTerms);
$modx->setPlaceholder('RentalTermsID', $item->RentalTermsID);
$modx->setPlaceholder('RentalBenefit', $item->RentalBenefit);
$modx->setPlaceholder('RentalPets', $item->RentalPets);
$modx->setPlaceholder('RentalIncludesBills', $item->RentalIncludesBills);
$modx->setPlaceholder('RentalStudents', $item->RentalStudents);
$modx->setPlaceholder('RentalFurnished', $item->RentalFurnished);
$modx->setPlaceholder('HIPURL', $item->HIPURL);
$modx->setPlaceholder('HIPEERCurrent', $item->HIPEERCurrent);
$modx->setPlaceholder('HIPEERPotential', $item->HIPEERPotential);
$modx->setPlaceholder('HIPEIRCurrent', $item->HIPEIRCurrent);
$modx->setPlaceholder('HIPEIRPotential', $item->HIPEIRPotential);
$modx->setPlaceholder('HIPEERChart', $item->HIPEERChart);
$modx->setPlaceholder('HIPEIRChart', $item->HIPEIRChart);
$modx->setPlaceholder('Retirement', $item->Retirement);
$modx->setPlaceholder('Riverside', $item->Riverside);
$modx->setPlaceholder('VendorNotes', $item->VendorNotes);
$modx->setPlaceholder('SEODescription', $item->SEODescription);
$modx->setPlaceholder('SEODescription', $item->SEODescription);
$modx->setPlaceholder('DetailsFileName', $item->DetailsFileName);
$modx->setPlaceholder('DisplayAddress', $item->DisplayAddress);
$displayAddress = explode(',',$item->DisplayAddress);
$modx->setPlaceholders($displayAddress,'DisplayAddress.');
$modx->setPlaceholder('Category', $item->Category);
$modx->setPlaceholder('Revision', $item->Revision);
$modx->setPlaceholder('RevisionDate', $item->RevisionDate);
$modx->setPlaceholder('Qualification', $item->Qualification);
$modx->setPlaceholder('LandArea', $item->LandArea);
$modx->setPlaceholder('FloorArea', $item->FloorArea);
$modx->setPlaceholder('UserName', $item->UserName);
$modx->setPlaceholder('StreetviewYaw', $item->StreetviewYaw);
$modx->setPlaceholder('StreetviewPitch', $item->StreetviewPitch);
$modx->setPlaceholder('StreetViewSuppress', $item->StreetViewSuppress);
$modx->setPlaceholder('QRCode', $item->QRCode);
$modx->setPlaceholder('EPCReference', $item->EPCReference);
if($rentalTermsID == '1') {
if($item->RentalTermsID == '1'){
$properties .= $modx->getChunk($tpl);
}
}else {
if($item->RentalTermsID != '1'){
$properties .= $modx->getChunk($tpl);
}
}
}
return $properties;
}else{
echo '<p>No Results Found</p>';
}
} catch (SoapFault $fault) {
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}