File: D:/HostingSpaces/SBogers10/spire.komma-mediadesign.nl/wwwroot/mvc/controllers/c_results.php
<?php
// Get search
if(defined('URL_SUB'))
{
// Total data
$totalData = array();
$resultingTables = 0;
// Search
$searchWords = str_replace('-',' ',URL_SUB);
// Where to look
$searchFields = array('title','comment1','comment2','productCode');
// Search in all product tables
$tables = array('pcaccessories'=>11,'pccases'=>10,'cpucoolers'=>9,'mobileaccessories'=>12,'powersupply'=>8,'systemcooling'=>7,'ergonomics'=>18,'led'=>19);
$urls = array('pcaccessories'=>'pc-accessories','pccases'=>'computer-cases','cpucoolers'=>'cpu-coolers','mobileaccessories'=>'mobile-accessories','powersupply'=>'power-supplies','systemcooling'=>'system-cooling','ergonomics'=>'ergonomics','led'=>'led');
foreach($tables as $tableName => $pageId)
{
$Dbh = new DatabaseHandler();
$Dbh->setTableName('page_'.$tableName.'_items');
$Dbh->setData(array('title'=>'','productCode'=>''));
$Dbh->setActiveOnly(TRUE,$pageId);
$Dbh->addRule('productStatus','1');
X2 ? $Dbh->addRule('x2','1') : $Dbh->addRule('x2','1','AND NOT');
$Dbh->setOrder('productCode','ASC');
// Add searchword
$superGroupIds = array();
$search = '';
$words = explode(' ',$searchWords);
foreach($words as $key => $searchWord)
{
$cleanWord = trim($searchWord);
if(!empty($cleanWord))
{
$search = '%'.$cleanWord.'%';
}
$superGroupIds[] = $Dbh->addSearchGroup($search,$searchFields,'OR','AND');
}
$Dbh->addToSuperGroup($superGroupIds);
// Save in total data array
if($data = $Dbh->select())
{
if( ! empty($data))
{
if( ! is_array($data[key($data)])) $data = array($data);
$totalData[$tableName] = $data;
$resultingTables++;
}
}
}
if($resultingTables > 0)
{
$this->setData('pageViewTitle','You searched for “' . $searchWords . '”.');
$this->setData('resultsDesc','<p>Results where found in the following categories:</p>');
$foundedUrls = array();
foreach(array_keys($totalData) as $tableName)
{
$foundedUrls[] = $urls[$tableName];
}
/*
* Get category data from database
*/
$CatDbh = new DatabaseHandler();
$CatDbh->setTableName('page_categorieen_items');
$CatDbh->setData(array('id'=>'','title'=>'','description'=>'','x2_title'=>'','x2_description'=>''));
$CatDbh->setActiveOnly(TRUE,3);
if(X2)
{
$CatDbh->addRule('x2',1);
$CatDbh->setOrder('x2_title','ASC');
}
else
{
$CatDbh->setOrder('title','ASC');
}
$catData = $CatDbh->select();
$thumbListOutput = '';
$thumbListDescOutput = '';
$subMenuOutput = '';
foreach($catData as $key => $data)
{
$linkTitle = $this->encodeUrl($data['title']);
// Catch x2 title
if(X2)
{
$data['title'] = $data['x2_title'];
}
/*
* Get thumbnail
*/
$ImageDbh = new DatabaseHandler();
$ImageDbh->setTableName('page_categorieen_images');
$ImageDbh->setData(array('filename_thumb'=>''));
$ImageDbh->setOrder('imageOrder','DESC');
$ImageDbh->addRule('itemId',$data['id']);
$catDataData = $ImageDbh->select();
// If any result is found in this table
if(in_array($linkTitle,$foundedUrls))
{
// Tablename / key from totaldata
$resultDataKey = array_search($linkTitle,$urls);
$catDataData['filename_thumb'] = '<a href="' . SITE_ROOT . $linkTitle . '/search/' . URL_SUB . '/"><img src="'.IMAGE_ROOT.'uploads/'.$catDataData['filename_thumb'].'" alt="Spire Corp | '.$data['title'].'" /></a>';
/*
* Manipulate data
*/
if(X2)
{
switch($linkTitle)
{
case 'computer-cases':
$catDataData['filename_thumb'] = '<a href="'.SITE_ROOT.$linkTitle.'/"><img src="/img/x2/products/cases.jpg" alt="X2 Products | '.$data['title'].'" /></a>';
break;
case 'cpu-coolers':
$catDataData['filename_thumb'] = '<a href="'.SITE_ROOT.$linkTitle.'/"><img src="/img/x2/products/cpucoolers.jpg" alt="X2 Products | '.$data['title'].'" /></a>';
break;
case 'pc-accessories':
$catDataData['filename_thumb'] = '<a href="'.SITE_ROOT.$linkTitle.'/"><img src="/img/x2/products/peripherals.jpg" alt="X2 Products | '.$data['title'].'" /></a>';
break;
case 'power-supplies':
$catDataData['filename_thumb'] = '<a href="'.SITE_ROOT.$linkTitle.'/"><img src="/img/x2/products/powersupplies.jpg" alt="X2 Products | '.$data['title'].'" /></a>';
break;
case 'system-cooling':
$catDataData['filename_thumb'] = '<a href="'.SITE_ROOT.$linkTitle.'/"><img src="/img/x2/products/systemcooling.jpg" alt="X2 Products | '.$data['title'].'" /></a>';
break;
}
}
/*
* Create output data for categoryBlock with description
*/
$thumbListDescOutput .= '<li class="result-hover ';
if($key % 4 == 0) $thumbListDescOutput .= ' first';
$thumbListDescOutput .= '">';
$thumbListDescOutput .= '<span class="borderTop"></span>';
$thumbListDescOutput .= '<div class="image"><div class="shadow"></div><div class="labelDown"></div>'.$catDataData['filename_thumb'].'</div>';
$thumbListDescOutput .= '<div class="content">';
$thumbListDescOutput .= '<a class="main" href="' . SITE_ROOT . $linkTitle . '/search/' . URL_SUB . '/">'.$data['title'].' ( ' . count($totalData[$resultDataKey]) . ' ) </a><br /><br />';
// Show all products which have been found
foreach($totalData[$resultDataKey] as $product)
{
$productUrl = $this->encodeUrl($product['title']) . '-' . $this->encodeUrl($product['productCode']);
$thumbListDescOutput .= '<a href="' . SITE_ROOT . $linkTitle . '/' . $productUrl . '/">' . $product['title'] . '<br /><span class="spireCode">' . $product['productCode'] . '</span></a><br /><br />';
}
$thumbListDescOutput .= '</div>';
$thumbListDescOutput .= '</li>';
/*
* Create output data for subMenu
*/
$classes = array();
if(($key+1) % 4 == 0) $classes[] = 'last';
if(defined('URL_PAGE') && URL_PAGE == $linkTitle) $classes[] = 'active';
$subMenuOutput .= '<li';
if(count($classes)>0)
{
$subMenuOutput .= ' class="';
}
foreach($classes as $n=> $class)
{
if($n != 0) $subMenuOutput .= ' ';
$subMenuOutput .= $class;
}
if(count($classes)>0)
{
$subMenuOutput .= '"';
}
$subMenuOutput .= '><a href="'.SITE_ROOT.$linkTitle.'/">'.$data['title'].'</a><span class="separator"></span><span class="background"></span></li>';
}
}
/*
* Set Data
*/
$this->setData('result_thumb_list',$thumbListOutput);
$this->setData('result_thumb_desc_list',$thumbListDescOutput);
}
else
{
$this->load('/mvc/controllers/c_categories.php');
// No result found
$this->setData('pageViewTitle','You searched for “' . $searchWords . '”');
$this->setData('resultsDesc','
<div class="no_products_found">No products found.</div>
<br /><br /><br />
<div id="categoriesBlock">
<div class="title-wrapper">
<h2>Shop by category</h2>
<a href="/products/">
<span>Start shopping</span>
<span class="arrow"></span>
</a>
</div>
<ul id="blockItemList" class="withDescription">
' . $this->getData('cat_thumb_desc_list',FALSE) . '
</ul>
</div>
');
}
/*
* Set Page Title
*/
$this->setData('page_title', 'Search results | Products | '.SITE_NAME);
/*
* Set Breadcrump
*/
$bc = new Breadcrump();
$bc->add('home',SITE_ROOT);
$bc->add('products',SITE_ROOT.'products/');
$output = $bc->get();
$this->setData('breadcrump', $output);
/*
* Set Content View Path
*/
$this->setData('content_view_path', 'mvc/views/v_results.php');
}