if (is_array($http->variable('SubTreeArray'))) {
        $subTreeList = $http->variable('SubTreeArray');
    } else {
        $subTreeList = array($http->variable('SubTreeArray'));
    }
    foreach ($subTreeList as $subTreeItem) {
        // as form input is generally a string, is_int cannot be used for checking the value type
        if (is_numeric($subTreeItem) && $subTreeItem > 0) {
            $subTreeArray[] = $subTreeItem;
        }
    }
}
$Module->setTitle("Search for: {$searchText}");
$classArray = eZContentClass::fetchList(eZContentClass::VERSION_STATUS_DEFINED, true, false, array('name' => 'asc'));
$sectionArray = eZSection::fetchList();
$searchArray = eZSearch::buildSearchArray();
if ($useSearchCode) {
    $searchResult = eZSearch::search($searchText, array('SearchSectionID' => $searchSectionID, 'SearchContentClassID' => $searchContentClassID, 'SearchContentClassAttributeID' => $searchContentClassAttributeID, 'SearchSubTreeArray' => $subTreeArray, 'SearchDate' => $searchDate, 'SearchTimestamp' => $searchTimestamp, 'SearchLimit' => $pageLimit, 'SearchOffset' => $Offset), $searchArray);
    if (strlen(trim($searchText)) == 0 && count($searchArray) > 0) {
        $searchText = 'search by additional parameter';
    }
}
$viewParameters = array('offset' => $Offset);
$searchData = false;
$tpl->setVariable("search_data", $searchData);
$tpl->setVariable('search_contentclass_id', $searchContentClassID);
$tpl->setVariable('search_contentclass_attribute_id', $searchContentClassAttributeID);
$tpl->setVariable('search_section_id', $searchSectionID);
$tpl->setVariable('search_date', $searchDate);
$tpl->setVariable('search_timestamp', $searchTimestamp);
$tpl->setVariable('search_sub_tree', $subTreeArray);
 public static function fetchContentSearch($searchText, $subTreeArray, $offset, $limit, $searchTimestamp, $publishDate, $sectionID, $classID, $classAttributeID, $ignoreVisibility, $limitation, $sortArray)
 {
     $searchArray = eZSearch::buildSearchArray();
     $parameters = array();
     if ($classID !== false) {
         $parameters['SearchContentClassID'] = $classID;
     }
     if ($classAttributeID !== false) {
         $parameters['SearchContentClassAttributeID'] = $classAttributeID;
     }
     if ($sectionID !== false) {
         $parameters['SearchSectionID'] = $sectionID;
     }
     if ($publishDate !== false) {
         $parameters['SearchDate'] = $publishDate;
     }
     if ($sortArray !== false) {
         $parameters['SortArray'] = $sortArray;
     }
     $parameters['SearchLimit'] = $limit;
     $parameters['SearchOffset'] = $offset;
     $parameters['IgnoreVisibility'] = $ignoreVisibility;
     $parameters['Limitation'] = $limitation;
     if ($subTreeArray !== false) {
         $parameters['SearchSubTreeArray'] = $subTreeArray;
     }
     if ($searchTimestamp) {
         $parameters['SearchTimestamp'] = $searchTimestamp;
     }
     $searchResult = eZSearch::search($searchText, $parameters, $searchArray);
     return array('result' => $searchResult);
 }