HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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 &ldquo;' . $searchWords . '&rdquo;.');
        $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 &ldquo;' . $searchWords . '&rdquo;');
        $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');


}