---------------------------------------------------------------------------------- 5 Star 4 Star 3 Star 2 Star 1 Star Hotel Name Pool Valet Parking Pet-friendly 29 Inn Yes No Yes 4 Seasons Yes Yes No etc...
<ul class="hotel-star-level"> <li><a href="#5star">5 Star</li> <li><a href="#4star">4 Star</li> <li><a href="#3star">3 Star</li> <li><a href="#2star">2 Star</li> <li><a href="#1star">1 Star</li> </ul>
<div class="tab-content-wrap"> <!-- Tab 1 --> <div id="all" class="first pill-tab-content"> <div class="hotel-rows-wrap"> [[hotel_listing_rows? &filter=`all`]] </div><!-- / .hotel-rows-wrap --> </div><!-- / #tab-1 --> <!-- Tab 2 --> <div id="5star" class="pill-tab-content"> <div class="hotel-rows-wrap"> [[hotel_listing_rows? &filter=`5star`]] </div><!-- / .hotel-rows-wrap --> </div><!-- / #tab-2 --> etc..
Why do you want to load 900 results into one page.
Nobody wants to see 900 Hotels at once.
Can't you make one page(resource) for each tab and paginate the results of each tab or load them with infinit scroll or something?
<?php $path = MODX_CORE_PATH . 'components/name-of-component/'; $result = $modx->addPackage('name-of-component',$path . 'model/','TABLEPREFIX_'); if (! $result) { return 'failed to add package'; } else { switch ($filter) { // Filters case "all": $query = $modx->newQuery('TABLESUFFIX'); $query->sortby('listing_number'); $listings = $modx->getCollection('TABLESUFFIX', $query); foreach($listings as $listing) { $fields = $listing->toArray(); if ($listing->get('basic') == '1') { $fields['basic_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else { $fields['basic_check'] = ''; } if ($listing->get('basic2') == '1') { $fields['basic2_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else if ($listing->get('basic2') == '2') { $fields['basic2_check'] = '<img src="assets/images/icons/dollar.svg" alt="" width="20" height="20">'; } else { $fields['basic2'] = ''; } if ($listing->get('basic3') == '1') { $fields['basic3_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else if ($listing->get('basic3') == '2') { $fields['basic3_check'] = '<img src="assets/images/icons/dollar.svg" alt="" width="20" height="20">'; } else { $fields['basic3_check'] = ''; } $output .= $modx->getChunk('listings_row', $fields); }; return $output; break; case "filter-tab-2": $query = $modx->newQuery('TABLESUFFIX'); $query->where(array( listing_type => 'filter-tab-2' )); $query->sortby('listing_number'); $listings = $modx->getCollection('TABLESUFFIX', $query); foreach($listings as $listing) { $fields = $listing->toArray(); if ($listing->get('basic') == '1') { $fields['basic_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else { $fields['basic_check'] = ''; } if ($listing->get('basic2') == '1') { $fields['basic2_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else if ($listing->get('basic2') == '2') { $fields['basic2_check'] = '<img src="assets/images/icons/dollar.svg" alt="" width="20" height="20">'; } else { $fields['basic2'] = ''; } if ($listing->get('basic3') == '1') { $fields['basic3_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else if ($listing->get('basic3') == '2') { $fields['basic3_check'] = '<img src="assets/images/icons/dollar.svg" alt="" width="20" height="20">'; } else { $fields['basic3_check'] = ''; } $output .= $modx->getChunk('listings_row', $fields); }; return $output; break; case "filter-tab-3": $query = $modx->newQuery('TABLESUFFIX'); $query->sortby('listing_number'); $listings = $modx->getCollection('TABLESUFFIX', $query); foreach($listings as $listing) { $fields = $listing->toArray(); if ($listing->get('basic') == '1') { $fields['basic_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else { $fields['basic_check'] = ''; } if ($listing->get('basic2') == '1') { $fields['basic2_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else if ($listing->get('basic2') == '2') { $fields['basic2_check'] = '<img src="assets/images/icons/dollar.svg" alt="" width="20" height="20">'; } else { $fields['basic2'] = ''; } if ($listing->get('basic3') == '1') { $fields['basic3_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else if ($listing->get('basic3') == '2') { $fields['basic3_check'] = '<img src="assets/images/icons/dollar.svg" alt="" width="20" height="20">'; } else { $fields['basic3_check'] = ''; } $output .= $modx->getChunk('listings_row', $fields); }; return $output; break;
$query = $modx->newQuery('TABLESUFFIX'); $query->sortby('listing_number'); $listings = array(); if ($query->stmt->execute()) { if (!$listings = $c->stmt->fetchAll(PDO::FETCH_ASSOC)) { $listings = array(); } } foreach($listings as $fields) { if ($fields['basic'] == '1') { $fields['basic_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else { $fields['basic_check'] = ''; } if ($fields['basic2'] == '1') { $fields['basic2_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else if ($fields['basic2'] == '2') { $fields['basic2_check'] = '<img src="assets/images/icons/dollar.svg" alt="" width="20" height="20">'; } else { $fields['basic2'] = ''; } if ($fields['basic3'] == '1') { $fields['basic3_check'] = '<img src="assets/images/icons/check.svg" alt="" width="20" height="20">'; } else if ($fields['basic3'] == '2') { $fields['basic3_check'] = '<img src="assets/images/icons/dollar.svg" alt="" width="20" height="20">'; } else { $fields['basic3_check'] = ''; } $output .= $modx->getChunk('listings_row', $fields); };