Unhandled Error!

Undefined index: HTTP_REFERER

Document /modules/shopproductbooking/controllers/booking.php
Document type PHP document
Line 163
Exception class Phpr_PhpException

Code Highlight

        $bookingDomain = Phpr::$config->get("BOOKING_FORM_DOMAIN",
            "booking." . str_replace("www.", "", $_SERVER['HTTP_HOST'])
        );
        if($dev = Phpr::$request->getField('dev_domain')) {
            $bookingDomain = str_replace("booking", "booking-$dev", $bookingDomain);
        }
        elseif(preg_match('/(?<=dev_domain=)[a-z]+/', $_SERVER['HTTP_REFERER'], $matches)) {
            $bookingDomain = str_replace("booking", "booking-{$matches[0]}", $bookingDomain);
        }
        return $bookingDomain;
    }
 
	public function getRemoteBookingForm() {
# Call Stack Code Document Line
32 ProductBookingController::getBookingDomain(()) /modules/shopproductbooking/controllers/booking.php 88
31 ProductBookingController::getRemoteProductDetails(array(1) [0 => '140005']) /modules/shopproductbooking/controllers/booking.php 44
30 ProductBookingController::getProductDetails(array(1) [0 => '140005']) /modules/shopproductbooking/classes/shopproductbooking_module.php 58
29 ShopProductBooking_Module->after_product_fetch(object(Shop_Product))
28 call_user_func_array(array(2) [0 => object(ShopProductBooking_Module), 1 => 'after_product_fetch'], array(1) [0 => object(Shop_Product)]) /phproad/system/class_functions.php 18
27 callFunction(array(2) [0 => object(ShopProductBooking_Module), 1 => 'after_product_fetch'], array(1) [0 => object(Shop_Product)]) /phproad/modules/phpr/classes/phpr_events.php 79
26 Phpr_Events->fire_event(array(1) [name => 'shop:onAfterProductRecordFetch'], object(Shop_Product))
25 call_user_func_array(array(2) [0 => object(Phpr_Events), 1 => 'fire_event'], array(2) [0 => array(1), 1 => object(Shop_Product)]) /phproad/system/class_functions.php 18
24 callFunction(array(2) [0 => object(Phpr_Events), 1 => 'fire_event'], array(2) [0 => array(1), 1 => object(Shop_Product)]) /phproad/modules/phpr/classes/phpr_events.php 153
23 Phpr_Events->fireEvent('shop:onAfterProductRecordFetch', object(Shop_Product))
22 call_user_func_array(array(2) [0 => object(Phpr_Events), 1 => 'fireEvent'], array(2) [0 => 'shop:onAfterProductRecordFetch', 1 => object(Shop_Product)]) /phproad/modules/phpr/classes/phpr_extensible.php 159
21 Phpr_Extensible->__call('fireEvent', array(2) [0 => 'shop:onAfterProductRecordFetch', 1 => object(Shop_Product)]) /modules/shop/models/shop_product.php 1861
20 Backend_Events->fireEvent('shop:onAfterProductRecordFetch', object(Shop_Product)) /modules/shop/models/shop_product.php 1861
19 Shop_Product->after_fetch(()) /phproad/modules/db/classes/db_activerecord.php 444
18 Db_ActiveRecord->_find_fill(array(3) [0 => array(138), 1 => array(138), 2 => array(138)], null) /phproad/modules/db/classes/db_activerecord.php 540
17 Db_ActiveRecord->find_all_internal(null, array(0), null) /phproad/modules/db/classes/db_activerecord.php 559
16 Db_ActiveRecord->find_all(()) /modules/cms/classes/cms_controller.php(383) : eval()'d code 20
15 eval(()) /modules/cms/classes/cms_controller.php 383
14 Cms_Controller->evalWithException('?><? $string = $_SERVER["REQUEST_URI"] ; $string = strtok($string, '?'); $placename = array_reverse(explode('/', trim($string, '/'))); $placename = ucwords(htmlentities($placename[0])); ?> <!-- view:shop:product_list_diy_trade_21_2_row_dynamics --> <!-- <?php if( isset($paginate) && $paginate ) { $page_index = isset($page_index) ? $page_index-1 : 0; $records_per_page = isset($records_per_page) ? $records_per_page : 48; $pagination = $products->paginate($page_index, $records_per_page); } else { $pagination = null; } $products = $products instanceof Db_ActiveRecord ? $products->find_all() : $products; ?> --> <?php $foundit = 0 ; foreach ($products as $product){ if($product->x_bookpay <= 1 or $product->x_bookpay >= 200){ $foundit = 1 ; } } if(empty($foundit)) return ; ?> <?php $i=1 ; $showEvery = 3 ; foreach ($products as $product): ?> <?php if($product->x_bookpay <= 1 or $product->x_bookpay >= 200): ?> <?php if( is_int(($i-1) / $showEvery) && $i >1 ): ?> <!-- start promo --> <!--<div style="margin-bottom: 2em;" class="hide-for-small"> <div class="twelve columns" style="height: 100%; border: 1px solid #404040; margin-bottom: 2em; padding:1.5em 1.5em 0;"> </div> </div>--> <!-- end promo --> <?php endif ?> <div style="margin-bottom: 2em;" class="product-list-item"> <? if($i == 1): ?> <div class="" style="display: inline-block; border: 1px solid #002B41; background: #002B41; color: #fff; padding: 0.5em 0.5em 0.2em 0.5em; font-size: 1.6em; text-transform: uppercase; font-weight: bold">Most Popular</div> <? endif; ?> <? if (strpos($product->name, 'Package') !== false): ?> <div class="" style="display: inline-block; border: 1px solid #00b67A; background: #00b67A; color: #fff; padding: 0.5em 0.5em 0.2em 0.5em; font-size: 1.6em; font-weight: bold; text-transform: uppercase;">Package Deal</div> <? endif; ?> <div class="twelve columns" style="<?php echo ($i == 1) ? 'border: 0.2em solid #002B41 !important;' : ''; ?> <? if (strpos($product->name, 'Package') !== false): ?>border: 0.2em solid #00b67A !important;<? endif; ?> height: 100%; margin-bottom: 2em; padding:1.5em 1.5em 0; min-height: 280px;"> <?php $this->render_partial('product_card_image', array('product' => $product, 'placename' => $placename)); ?> <?php $this->render_partial('product_card_header', array('product' => $product)); ?> <div class="four mobile-four columns"> <?php $days1Multiplier = 0.6; $percentages = $product->om('x_remote_percentages'); if($percentages && !empty($percentages['days_1'])) { $days1Multiplier = $percentages['days_1']/100; } ?> <div class="product-mobile"> <?php $this->render_partial('product_card_banners', array('product' => $product)); ?> <div class="catbul"><?php echo $product->x_bullets; ?></div> </div> <div class="row desc"> <div class="twelve mobile-four columns product-price-wrap"> <? if (strpos($product->name, 'Skip Hire') !== false): ?> <span class="price">Our Price From: </span><span class="price"> POA</span> <? else: ?> <span class="price">Our Price From: </span><span class="price"> <? if ($product->x_weekly_only != 1): ?> <?php echo format_currency($product->om('x_remote_sale_price')*$days1Multiplier); ?> <? else: ?> <?php echo format_currency($product->om('x_remote_sale_price')); ?> <? endif; ?> </span> <? endif; ?> </div> </div> <div class="twelve mobile-four columns ticks"> <p style="font-size: 1.1em; margin: 1em 0;">&nbsp;<i class="fas fa-check" style="color: #00b67A;"></i>&nbsp;&nbsp;DIY &amp; Trade<br class="hide-for-small"/> <?php if($product->om('is_on_sale')): ?> &nbsp;<i class="fas fa-check" style="color: #00b67A;"></i>&nbsp;&nbsp;<span style="color: #eb121a">Save <?php $sale_price_or_discount = $product->om('x_remote_discount') ?: $product->om('sale_price_or_discount'); if(strpos($sale_price_or_discount, '%')) { echo round($sale_price_or_discount); echo "&#37;"; } else { echo format_currency(ltrim($sale_price_or_discount, '-')); } ?></span><br/> <?php endif; ?> <?php if($product->om('x_remote_booking_delay') >= 7): ?> <span class="hide-for-small">&nbsp;<i class="fas fa-arrow-trend-down" style="color: #00b67A;"></i>&nbsp;&nbsp;Low Availability</span> <?php else: ?> <span class="hide-for-small">&nbsp;<i class="fas fa-check" style="color: #00b67A;"></i>&nbsp;&nbsp;Best Availability</span> <?php endif ?> <?php if(Phpr::$config->get('TEST_EXTRA_API_FIELDS', false) && $product->om('x_has_insurance')): ?> <span class="hide-for-small">&nbsp;<i class="fas fa-shield" style="color: #00b67A;"></i>&nbsp;&nbsp;Insurance Available</span> <?php endif ?> <?php if(Phpr::$config->get('TEST_EXTRA_API_FIELDS', false) && $product->om('x_deposit_amount')): ?> <span class="hide-for-small">&nbsp;<i class="fas fa-money-bill-transfer" style="color: #00b67A;"></i>&nbsp;&nbsp;Deposit <?= format_currency($product->om('x_deposit_amount')) ?> (Refundable)</span> <?php endif ?> <?php if(Phpr::$config->get('TEST_EXTRA_API_FIELDS', false) && $product->om('x_requires_id')): ?> <span class="hide-for-small">&nbsp;<i class="fas fa-id-card" style="color: #00b67A;"></i>&nbsp;&nbsp;Online ID Verification Required</span> <?php endif ?> </p> </div> <? $productUrl = $product->page_url('/product') . '/'; if(!$product->has_om_records()) { $productUrl .= (strpos($productUrl, '?') ? '&' : '?') . 'booking_modal_show=1'; } ?> <div class="row"> <!--<div class="twelve mobile-four columns"> <a href="<?php echo $productUrl ?>" title="Book &amp; Pay Online" class="button expand quotebutton"><i class="fas fa-calendar-alt"></i>&nbsp; Book &amp; Pay Online</a> </div> <div class="twelve mobile-four columns"> <a href="<?php echo $product->page_url('/product'); ?>/" data-gtm="Button: Book & Pay Online (C)" title="Book &amp; Pay Online" class="button expand quotebutton"><i class="fas fa-calendar-alt"></i>&nbsp; Book &amp; Pay Online</a> </div> <div class="twelve mobile-four columns"> <a href="<?php echo $product->page_url('/product'); ?>/" data-gtm="Button: Product Detail (C)" title="More Information" class="button expand quotebutton-alt">Product Detail</a> </div>--> <div class="twelve mobile-four columns"> <a href="<?php echo $product->page_url('/product'); ?>/" data-gtm="Button: Details & Booking (C)" title="Details &amp; Booking" class="button expand quotebutton"><i class="fas fa-calendar-alt"></i>&nbsp;&nbsp; Details &nbsp;&amp;&nbsp; Booking</a> </div> </div> <div class="row"> <div class="twelve columns" style="text-align: center; padding-top: 1em; color: #808080;"> <p class='product-list-free-delivery'> <?php if($product->om('x_allow_delivery') > 0 && $product->om('x_min_delivery_charge') > 0) { echo "<i class='fas fa-truck fa-fw' style='padding-right: 1em'></i>&nbsp; <span style='font-weight: 700;'>Low Cost</span> National Delivery"; } elseif ($product->om('x_allow_delivery') > 0 && $product->om('x_min_delivery_charge') < 1) { echo "<i class='fas fa-truck fa-fw' style='padding-right: 1em'></i>&nbsp; <span style='font-weight: 700;'>FREE</span> Delivery: Nationwide"; } ?> <?php $collectionSitesCount = $product->om('x_collection_available_from'); if($collectionSitesCount > 0) { echo "<i class='fas fa-map-marker-alt'></i>&nbsp;&nbsp;Click & Collect: <span style='font-weight: 700;'>$collectionSitesCount</span> Locations"; } ?> </p> </div> </div> </div> </div> </div> <?php /* <?php else: ?> <!--<div style="margin-bottom: 2em;"> <div class="twelve columns" style="height: 100%; border: 1px solid #404040; margin-bottom: 2em; padding:1.5em 1.5em 0;"> . </div> </div>--> <?php endif; ?> */ ?> <?php $i++; ?> <?php endif; ?> <?php endforeach; ?>', 'CMS partial', 'shop:product_list_diy_trade_21_2_row_dynamics', array(1) [products => object(Shop_Product)]) /modules/cms/classes/cms_controller.php 1020
13 Cms_Controller->render_partial('shop:product_list_diy_trade_21_2_row_dynamics', array(1) [products => object(Shop_Product)]) /modules/cms/classes/cms_controller.php(383) : eval()'d code 83
12 eval(()) /modules/cms/classes/cms_controller.php 383
11 Cms_Controller->evalWithException('?><? $string = $_SERVER["REQUEST_URI"] ; $patterns = array(); $patterns[0] = '/rotavator-cultivator-and-tiller-hire/'; $patterns[1] = '/-/'; $patterns[2] = '/\//'; $replacements = array(); $replacements[0] = ''; $replacements[1] = '-'; $replacements[2] = ''; $placename = ucwords(htmlentities( preg_replace($patterns, $replacements, $string))); $headers = array( "Rotavator Hire In $placename", "Tiller Hire In $placename", "Cultivator Hire In $placename", "Rotavator Rental In $placename", "Tiller Rental In $placename", "Cultivator Rental In $placename" ); $headerKey = array_rand($headers); $header = $headers[$headerKey]; $descriptions = array( "We have rotavator hire in $placename available at great rates. We have a choice of sizes available, from small tillers for gardens and allotments, to large power-driven cultivators for commercial use. Take a look at the range on our website and book your rotavator hire quickly and easily online or over the phone. You can collect the machine from your nearest store or we can deliver to you!", "Looking for rotavator hire in $placename? We have a great range of cultivating machines available for hire, from small tillers for gardens and allotments, to large power-driven machines for commercial and industrial use. Take a look at the range on our website and book your rotavator hire easily online or over the phone. You can collect the machine from your nearest store if you have suitable transport or we can deliver to you!", "If you are looking for rotavator hire in $placename, we can help! National Tool Hire offers a great range of ground tillers from top brands like Camon. Our hire rates are extremely competitive, and we deliver for FREE! ", "If you are looking for rotavator hire in $placename, National Tool Hire can help! We have a choice of sizes available, from small tillers for gardens and allotments, to large power-driven cultivators for commercial use. Take a look at the range on our website and book your rotavator hire quickly and easily online or over the phone. You can collect the machine from your nearest store, or we can deliver to you!", "We have cheap rotavator hire in $placename – book quickly and easily online with FREE delivery to your door! National Tool Hire offers a great range of ground tillers from top brands like Camon. Our hire rates are extremely competitive, and we deliver for FREE! Book your rotavator hire quickly and easily online or over the phone with our hire team.", "We have tiller hire in $placename available at great rates. We offer a great selection of tillers - from small machines for domestic use, up to large power-driven units for professional use. Book a hire online or over the phone and collect from store at the start of the hire or we can deliver to you!", "Looking for garden tiller hire in $placename? Our tillers can be used in gardens, allotments and fields, to turn soil prior to laying turf or planting seeds. You can rent a rotavator online or over the phone quickly and easily. You can collect the machine from your nearest store at the start of the hire or we can deliver it to you.", "If you are looking for tiller hire in $placename, we can help! We have a great range of ground tillers and cultivators available for hire, from small tillers for gardens and allotments, to large power-driven machines for commercial and industrial use. These machines help to turn and aerate soil, prior to laying fresh turf or planting seeds. Take a look at the range on our website and book your tiller easily online or over the phone. You can collect the machine from your nearest store if you have suitable transport or we can deliver to you!", "If you are looking for garden tiller hire in $placename, National Tool Hire can help! We have a choice of sizes available, from small tillers for gardens and allotments, to large power-driven cultivators for commercial use. Take a look at the range on our website and book your tiller hire quickly and easily online or over the phone. You can collect the machine from your nearest store, or we can deliver to you!", "We have cheap tiller hire in $placename – book quickly and easily online with FREE delivery to your door! We have a choice of sizes available, so whether you are looking for a small tiller for your garden or allotment, or a large rotavator for commercial use, we can supply a suitable unit. These machines are ideal for turning and aerating soil prior to laying fresh turf or planting seeds and bulbs.", "We have cultivator hire in $placename available at great rates. Book quickly and easily online with FREE delivery to your door! We have a choice of sizes available, from small tillers for gardens & allotments, to large cultivators for professional use. These machines are ideal for turning and aerating soil prior to laying fresh turf or planting seeds and bulbs.", "Looking for cultivator hire in $placename? We have a great selection of cultivators, tillers and rotavators available for hire, at great rates and with FREE delivery! Whether you are a DIY customer or trade customer, you can book what you need quickly and easily on our website and either collect from your nearest store or we can deliver to you.", "If you are looking for cultivator hire in $placename, we can help! We have an excellent range of cultivators, rotavators & tillers available for hire, from top brands like Camon. You can book your hire online or over the phone and collect the machine from store at the start or the hire or we can deliver to you!", "If you are looking for cultivator hire in $placename, National Tool Hire can help! Our range of cultivators for hire includes small tillers for domestic use, right up to large power-driven rotavators for professional use. Our hire rates are extremely competitive, and delivery is FREE! Take a look at the range on our website and hire a cultivator online or over the phone with our hire team.", "We have cheap cultivator hire in $placename – book quickly and easily online with FREE delivery to your door! We have these machines available in a range of sizes – suited to everything from gardens and allotments to fields and farms.", "Rotavator rental in $placename – We have rotavators available for rent at great rates! Our range includes a selection of sizes, from small tillers for home use, up to large industrial cultivators for trade use. These machines help to turn soil and cultivate land prior to laying fresh turf or seeds. You can rent a rotavator online or over the phone quickly and easily. You can collect the machine from your nearest store, or we can deliver to you.", "Looking for tiller rental in $placename? We have these machines available in a range of sizes – suited to everything from gardens and allotments to fields and farms. Whether you want to rent a tiller for one day, two days, a weekend, a week or more, you can book quickly and easily online or over the phone. You can collect the machine from your local store at the start of the hire or we can deliver it to you and pick it up again at the end of the hire!", "Cultivator rental in $placename – We have a great range of cultivators, tillers and rotavators available to rent at great rates! These machines are ideal for turning soil and preparing ground for fresh turf, or the planting of seeds and bulbs. You can rent a cultivator online using our website or over the phone with our hire team. Our rates are extremely competitive, and we can deliver to your door for FREE!", "Looking to rent a rotavator in $placename? We can help! We have a great range of cultivators, rotavators and tillers available to book online or over the phone with our hire team. Whether you need to turn the soil in your garden or allotment prior to laying fresh turf or planting seeds and bulbs, we can provide a suitable machine to get the job done. Our rotavator rental rates are extremely competitive and we can deliver to your door!", "If you are looking to rent a tiller in $placename, National Tool Hire can help! We have a great range of cultivators, rotavators and tillers available to rent. You can book for 1 day, 2 days, a weekend, a week or more! Our rental rates are extremely competitive, and we can deliver the machine to your door and pick it up again at the end of the rental period!" ); $descriptionKey = array_rand($descriptions); $description = $descriptions[$descriptionKey]; ?> <section id="category-page" class="content category" style="z-index: 999; position:relative; padding-bottom: 0px;"> <div class="row"> <div class="twelve columns"> <div class="cat-breadcrumbs"> <a href="/">Home</a> &nbsp;>&nbsp; <?php echo "<a href='/tool-hire/$placename/' aria-label='Tool Hire $placename'>Tool Hire $placename</a>" ?> &nbsp;>&nbsp; <?php echo "Rotavator, Cultivator & Tiller Hire $placename" ?> </div> </div> <div class="twelve columns"> <h1><?php echo $header; ?></h1> </div> </div> <div class="row"> <div class="twelve columns" style="margin-bottom: 2em;"> <p> <?php echo $description; ?> </p> </div> <?php $this->render_partial('free_delivery_dynamic'); ?> </div> </section> <section class="category"> <div class="row"> <div class="nine columns"> <?php $group = Shop_CustomGroup::create()->find_by_code('dynamic_rotavators'); if($group): ?> <?php $this->render_partial('shop:product_list_diy_trade_21_2_row_dynamics', array( 'products' => $group->list_products() )); ?> <?php endif; ?> </div> <div class="three columns" style="position: -webkit-sticky; /* Safari */ position: sticky; top: 1rem;"> <?php $this->render_partial('call_free') ?> <div class="twelve columns random-usp"> <?php $this->render_partial('random_usp') ?> </div> <div class="twelve columns random-blog"> <?php $this->render_partial('random_blog') ?> </div> </div> </div> </section> <section> <p class="footerbanner" style="padding: 10px 5px; background-color: #c8102e; margin-bottom: 2em; margin-top: 0"> <? $num = Rand (1,5); switch ($num) { case 1: echo '<a class="footerbanner-link" href="/price-match/"><em class="fa fa-tag fa-lg"></em>&nbsp; &nbsp; <span style="font-weight: bold;">Rotavator, Cultivator and Tiller Hire:</span> Price Match Promise</a></p>'; break; case 2: echo '<a class="footerbanner-link" href="/tool-hire-guide/"><em class="fa fa-info-circle fa-lg"></em>&nbsp; &nbsp; <span style="font-weight: bold;">DIY &amp; Trade:</span> Rotavator, Cultivator and Tiller Hire</a></p>'; break; case 3: echo '<a class="footerbanner-link" href="/tool-hire-guide/"><em class="fa fa-calendar fa-lg"></em>&nbsp; &nbsp; <span style="font-weight: bold;">Cheap Weekly Hire Rates</span></a></p>'; break; case 4: echo '<a class="footerbanner-link" href="/free-delivery/"><em class="fa fa-hand-pointer-o fa-lg"></em>&nbsp; &nbsp; <span style="font-weight: bold;">Collect from Store</span> - or - <span style="font-weight: bold;">Delivered to Door</span>&nbsp; &nbsp; <em class="fa fa-truck fa-lg"></em></a></p>'; break; case 5: echo '<a class="footerbanner-link" href="/free-delivery/"><em class="fa fa-hand-pointer-o fa-lg"></em>&nbsp; &nbsp; <span style="font-weight: bold;">Click &amp Collect</span> - or - <span style="font-weight: bold;">Free Delivery</span>&nbsp; &nbsp; <em class="fa fa-truck fa-lg"></em></a></p>'; } ?> </p> <?php $reviews = array( "Fantastic Rotavator|This rotavator worked fantastic on light soil, struggled with the hard unturned ground but we got there eventually cheers!|Thomas Gillat", "Much Appreciated|Very good rotavator helped to prep my garden soil without all the hard grafting it would usually take, thank you very much|Bradley Foster", "Rotavator Review|So glad I decided to hire a rotavator instead of doing everything myself by hand would have took me weeks otherwise!|Philip Davies", "Quick Delivery|Decided to hire a rotavator in $placename for a job I had saved loads of time and worked as expected with quick delivery too|Raki Jagota", "Brill|Thank you for this rotavator it worked brill from start to finish, runs very smooth and not too difficult to navigate either |Paul Welsby", "Nice and Light|The rotavator I hired was nice and light, even managed to use it on heavy clay soil, did need to keep tight hold of it as the force is powerful|John W", "Thanks|Used this on softer soil in the autumn with the idea of getting my garden ready for the spring time. No complaints here thanks was great|M. Thomason", "Great Rotavator |Required a rotavator in $placename was worried I would need to buy one, luckily I could rent one from national tool hire for 2 days instead|Lee A", "Value For Money|Hired a rotavator to use to prepare my garden for summer, this took away so much unwanted hassle and back ache great value for money too|Elizabeth", "Thanks A Million|Thanks national tool hire once again, this done an excellent job at turning over my soil - even the harder soil I was dreading!|Bryan O'Donoghue", "Wish I'd Hired Sooner|I hired a rotavator last week after a few days of very hard work trying to prepare the soil myself, why did I not hire one of these sooner? |Andy Packard", "Makes It Look Easy|When working in $placename on a job that would have taken weeks to do, the only con is how easy it made it look compared to my attempts!|Lee Cooper", "Job Well Done|Delivery was quick meaning I could start my job earlier than planned, rotavator itself did exactly what it promised glad I chose to hire one|Owen Walker", "New Garden Prep|I was dreading how much ground work was needed in our new garden but this rotavator made it much easier to get all the prep work done |Jay Fitchett", "Weekend Work|I hired a rotavator in $placename over the course of a weekend, arrived a bit later but only took me a day to finish the lot in the end|H Truman", "A Very Pleased Skeptic|This machinery worked a treat, was slightly skeptical at first but I must say very pleasantly surprised with the outcome!|L. Horne", "Promising Results|Once we finished assembling the kit the rotavator itself was a doddle to use with promising results great piece of kit would hire again|Ben Palmer", "Thanks Guys|The time that this piece of kit saved me was worth the money alone, best around in $placename much appreciated guys|Rob Parr", "hired Rotavator|I own a large plot of land in $placename, tried this hire and it really worked and is ready for seed sowing!!|Mr Trims", "Rotavator worked|I needed new turf laying but had to hire this to break up the old, it done the job and I was pleased|Henry", "Rotavator|Very strong and reliable machine, worked all the way through with no messing about, hire was good|Thomas", "Rotavator hire|hired this in $placename for my garden renovation, it helped complete the job just that bit easier and worked well|O.R", "Happy finish|Husband didn’t think he would need this until a days work, after hire it took less than a day to complete, fast and easy to us|O.Reden", "rotavator|I feel these hard blades on the machine don’t half do the justice into the ground, worked spectacular would hire this again|Bryce", "rotavator job|hired in $placename we used this on our families farm as we wanted to replant crops, wasn’t to optimistic till I tried it, happy now|Mr.Potts", "Rotavator |good variable speed control, we used in the estate to make flower beds, worked well and no ready for the next step grest work for a little machine|Mrs.Lews", "Rotavator review|Our current one broke so we hired this one for a small job, was smaller than expected and the job was done within the day, reliable and trustworthy service|Mrs Jennings", "Rotavator by gardener|As a gardener when my current one went kaput I needed one asap in $placename got this hired and safe to say it went smoothly and helped me do my work|Lea Court", "Rotavator|Make sure you hold it comfortably and firmly and you will have no problems with this great machine|Edmund", "Rotavator really well|This really saved my back from the ache, I couldn’t complain about any issues and really would hire again|Shannon Lewis", "really rotavated|excellent machine hired in $placename done hours worth of work in less than an hour, how can you complain?|Alice Gregory", "great product|Real beast for its size, aggressive and impressive little machine, happy fella as it didn’t take much effort|Brian C", "Rotavator|good little cheap hire and is done whats epxected of it, arrived in good condition and was fast at getting the job done|Pat B", "hire done|great for getting rid of clay like soil turned, cant argue with the price and I put in little to no effort in $placename|D.M", "rotavator|rotavator hired and came next day, worked great and and my garden is ready for more flowers!!|Deirdre", "Happy finish|Finished with the hire and couldn’t be more pleased it really turned everything over ready for new turf, driver was lovely also|Hannah Jewel", "Garden work|Managed to rip out stubborn weeds & brambles on a neglected piece of land. Saved my back so much work. |Laura Collimore", "Great piece of kit|I hired a medium rotavator for my small farm. There's a knack to it but once you've got the hang of it it s fairly straight forward. High work rate & cost effective. |Jack Reeves", "Very powerful|Solidy built with a heavy duty rovator. Looked like new and was made well. Operated smoothly and was simple to use. |Adrienne Smith", "Tiller Hire|Exactly as decribed, impressive power, only took me a couple of hours for a large picece of land. Excellent machine!|Nick Allen", "Medium Rotavator |Never used a medium duty rotavator before. It actually didn’t take long to get the hang of it, it had a good grip to it and was easy to steer. Worked well. |Ellen Armstrong", "Vegetable garden|Perfect for prepping the ground before growing my vegetables in my allotment. Happy with the result. |Peter Stein", "Garden borders|Hired a small rotavator for my garden borders which consist of a heavy clay soil. It turned over the soil brilliantly and was able to break the soil easily. |Jessica Beaufort", "Small tiller|Found this easy to use on light soil, I think you may struggle on any soil that’s really compacted so check witht the team before hiring. |Hamza Khan", "Ideal for an allotment|Brilliant easy to use tiller, broke down the earth super fine ready for me to be able to sow seeds. |R. Linton", "Recommendation|Saw one of my neighbours with one of these, hired on his recommendation. Made up I did, my garden was turned over quickly and the soild looks perfect. |Annie Kendrick", "Try before buy|Hired a rotavator to see if this worked on my land before possibly buying one. The results were good, I'd recommend for anyone who's unsure and wants to check it out.|Martin Clooney", "Powerful heavy duty rotavator|Bought a piece of land in $placename, found the heavy duty rotavator best for such a large space. It was easy to manouvre and was powerful enough to cut through the ground. |J.Gates", "Hired for back garden|The rotavator was exactly as described. The delivery driver explained how to use it which was really kind. It worked really well on my garden. |Hannah Lewis ", "Cracking piece of kit|Used this on an old piece of land that hasn’t been touched for a good few years. The results were incredible. |G.Stewart", "Medium duty rotavator|Perfect for the start of spring and getting ahead those jobs neglected over winter. Would recommend. |Tony Jackson", "Sorted my weed garden|Tranformed my weed pit of a garden, handy piece of kit at a resonable price - would highly recommend. |Ted Green", "5*|Very satisfied, the service was inpeccable and the rotavator worked wonders. Very pleased. |L. Robinson", "Quick job|Very happy with the service, the rotavator was perfect for the job. Saved so much time not sorting the soil manually. Happy hire in $placename. |Shirley Walker", "Green Garden|Laying a new lawn, this made the job much quicker and easier, a great company to deal with.|John Jones", "Powerful Machine|Powerful petrol rotavator made light work of that hard soil - Simon in $placename.|S Smith", "Great Machine|Great machine narrow woking width, perfect for my small allottment.|Dave Duckingfield", "Easiy to lift|Light and foldable for getting in the back of the van, not to heavy to lift.|Mr E Prichard", "Rotavator|Machine was powerful large pertol tank, absolutely prefect for working all day.|Mr I Crosby", "Cultivator|Getting the ground ready for planting season, this saved my back no end, cheers pal.|Mr l Moore", "Great results|Worked a treat even on the harder soil, I would have really struggled to do this with the fork.|Keith Moran", "Rotivator|200 mm depth, easy to control takes the work out of gardening, well worth the hire.|Mr Kelsy", "Eletric rotavator|Long electrical cord great for reaching round the garden - Ms Hardman in $placename|Ms Hardman", "Tiller Hire|Plenty of power with the six blades , blasted through the garden cheers. |Ian Graham", "Cultivator|Hire from depo in $placename, No heavy pull cord, no eletric cable easy to use.|Stuart Hert", "Adjustable|Height adjustable wheel and easy to use even on the rough terrain, great hire cheers mate.|Davo", "Worth Hiring|Hired in $placename Great piece of kit even on thoses smaller gardens, well worth the hire.|Green fingers", "Quality Beds|I just wanted that great soil quality for my beds and this machine got me there.|M Kelly", "A 1 product|Worked great even on the rough stoney ground on the front for site.|Mrs W Nicho", "Excellent machine|Will use this company again, machine in excellent condition like new hired in $placename.|L Gorzackza", "Rotavator|Got a medium size garden definately worth hiring save loads of time preping to lay lawn.|S Henshaw", "Safe Guard, clean face|I live in $placename hired rotvator for a week good safe guards not mud on this face.|Mike Lambert", "Light tiller |Got this delivered to my allotment in $placename your how to page is a massive help and actually taught me some good stuff. Thanks guys|Frank", "Med rotavator|Finally decided to sort the garden out, this item saved me hours and hours of manual labour. Its actually quite enjoyable to do as well.|Elliot", "Laying turf|Big garden job, we got one of these to churn the soil before laying new turf, top bit of kit, had me sorted in no time. Goodbye spade.|Jerry", "Veg patch|Hired one of these as I have recently bought an allotment for growing my own veg. It was a bit of a dump, I have used this kit and now planted!|Helen", "Tiller hire|Our tiller packed in after many years of use so we got the heavy duty from NTH what a bit of kit! I would very much like to buy this model|Ethan", "Garden work|We were getting some grass put into garden and got this delivered to $placename to ensure we were doing it to a high standard.|Tanya", "Plant beds|In my old age I have decided to take up gardening as a hobby. First time using this machine and boy was it fun. Simple to use too. Thanks Ron.|Mr. Davies.", "Five stars!|From start to finish, excellent. The team sent me a page on how to use it and that was amazing. Then the kit turned up clean and ready to go!|Steve.", "Tiller delivery|To start I am really impressed with you service and systems. Now for the kit, equally as impressed, sent over to me at $placename Perfect!|J M", "Rotavater |Powerful kit. Very powerful. I was in awe especially I tried this manually first. Safe to say I am happy this kit exists! Thanks team at NTH.|Bruce", "Rotavating a field|This could of taken me weeks. Weeks of hard labour. Thanks to you and this kit it was a matter of days. Really really happy with you guys.|TG", "Churning!|Who knew churning had a shortcut!? You guys clearly, a friend passed me over to you and sang your praises, I understand why now.|Sarah", "Breaking up soil|I wanted to redo my garden, grass and plants are a bit worse for where. I got this kit and WOWZA! Would seriously recommend to a gardener!|Jimmy", "Top garden|Its been a while since I hired this. My garden is looking so healthy now I can really see the difference since hiring this kit near $placename|Ste ", "Flower power|Booked myself a tiller. I was nerovus but it is nothing to worry about. I am currently enjoying the free time that would of been spent churning.|Elsa", "Tilling away|I was really happy with your how to page, helped me a bunch with this kit. Once it arrived I was eager to use. It worked perfectly.|F.N", "Rotavator for seeds|I have had to plant a whole bunch recently and getting this made it that much easier! Hired in $placename and collected from here too!|Miss Harken", ); shuffle($reviews); $reviewKeys = array_rand($reviews, 3); ?> <h2 style="text-align: center; text-transform: uppercase"><i class="fa fa-user"></i>&nbsp; &nbsp; What <? print $placename ?> Rotavator Hire Customers Say About Us:</h2> <div class="row" style="padding: 2em 0;"> <div class="three hide-for-small columns" style="text-align: center;"> <img src="/themes/nthsv3/resources/images/rated_excellent2.png" loading="lazy" alt="Rated Excellent for Rotavator, Cultivator and Tiller Hire in <? echo $placename ?>" style="float: left; width: 220px; height:100%;"> <p style="display: inline-block; float: left; padding-top: 1em;">Rated Excellent for<br/>Rotavator, Cultivator and Tiller Hire in <? echo $placename ?></p> </div> <?php foreach($reviewKeys as $reviewKey): ?> <?php $review = explode('|', $reviews[$reviewKey]); ?> <div class="three mobile-four columns"> <div class="stars"> <img src="/themes/nthsv3/resources/images/stars-5.svg" loading="lazy" alt="Rated Excellent for Rotavator, Cultivator and Tiller Hire in <? echo $placename ?>" style="width: 100px; height: 100%;"> </div> <div class="minireview"> <div> <h3 style='font-size: 1.2em; font-weight: 900; margin-bottom: 0; text-align: left;'><?php echo $review[0]; ?></h3> <?php if (isset($review[1])): ?> <p style='margin-bottom: 0;'><?php echo $review[1]; ?></p> <?php endif; ?> <?php if (isset($review[2])): ?> <p style='color: #909090;'><?php echo $review[2]; ?></p> <?php endif; ?> </div> </div> </div> <?php endforeach; ?> </div> </section> <script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "LocalBusiness", "name": "National Tool Hire Shops: <?php echo $placename; ?>", "description": "Rotavator, Cultivator and Tiller Hire in <?php echo $placename; ?>.", "telephone": "+44-800-808-9696", "image": "https://www.nationaltoolhireshops.co.uk/themes/nthsv3/resources/images/NTHS_logo.png", "address": "<?php echo $placename; ?>", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "bestRating": "5", "worstRating": "1", "ratingCount": "67" } } </script>', 'CMS page', 'Rotavator, Cultivator & Tiller Hire') /modules/cms/classes/cms_controller.php 608
10 Cms_Controller->eval_page_content(()) /modules/cms/classes/cms_controller.php 198
9 Cms_Controller->open(object(Cms_Page), array(1) [0 => 'blackpool']) /controllers/application.php 72
8 Application->On404(())
7 call_user_func_array(array(2) [0 => object(Application), 1 => 'On404'], array(0)) /phproad/modules/phpr/classes/phpr_controller.php 170
6 Phpr_Controller->executeAction('On404', array(0)) /phproad/modules/phpr/classes/phpr_controller.php 84
5 Phpr_Controller->_run('On404', array(0)) /phproad/modules/phpr/classes/phpr_response.php 64
4 Phpr_Response->open404(()) /phproad/modules/phpr/classes/phpr_response.php 37
3 Phpr_Response->open('/rotavator-cultivator-and-tiller-hire/Blackpool') /phproad/system/phproad.php 31
2 include('/var/www/vhosts/nationaltoolhireshops.co.uk/httpdocs/phproad/system/phproad.php') /boot.php 114
1 require_once('/var/www/vhosts/nationaltoolhireshops.co.uk/httpdocs/boot.php') /index.php 23