4DQuiz


4DQuiz Search Script & Class View from small screen devices!  

PHP Script
<?php

/*    4D Quiz Search script © 4DQuiz.com, Author: Balinder Singh Walia, Modified: 27 March 2006 18:53:58    */

    // include the reusable classes/functions which are required - MySQL Database search class, extracting class from keyword etc.
include_once("./includes/common_classes.php");

$debugBool = false;
$nResultRowCount = 0;

$pUrlQueryStr            = lib_getWebFormData('q', '');            // Get web form value - query keyword(s), language, advanced search (slower)
$pLanguageCodeStr        = lib_getWebFormData('l',$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$pAdvancedSearchBool    = (lib_getWebFormData('s','') === 'a');
$pIPAddrStr                = lib_getWebFormData('i',$_SERVER["REMOTE_ADDR"]);
$pIsForWidget            = (lib_getWebFormData('m','') === 'apple_dashboard_widget');
$pWidgetVersion            = lib_getWebFormData('v','');

            // if language is us set to search in en as the database same for both of these languages
switch ($pLanguageCodeStr) {
        case 'en':
           break;
           
    case 'us':
    $pLanguageCodeStr = 'en';
    break;
    
        case 'fr':
           break;
   
default:
   $pLanguageCodeStr = 'en';
}


    $keyword = new stringIntoTwoParts;
    $keyword->commandStr = $pUrlQueryStr;
    $keyword->findStrArr = array(' c:', 'c:' , ' class:', 'class:', ' product:', 'product:', 'plugin:', ' plugin:');
    $keyword->stringIntoTwoParts(); // extract keyword and class from search keyword if any

    $classStr = $keyword->seacrhClassStr;
    $pUrlQueryStr = $keyword->keywordStr;

$limitStartInt = 0;
$limitStopInt = 1000;

if($classStr) { // class is provided

if(($classStr == "ot") || ($classStr == "OT") || ($classStr == "Ot") || ($classStr == "oT"))    {    $classStr = "objecttools";    }

if($pAdvancedSearchBool){ //bwalia 20060228 Advanced text field search added

$queryStr = "SELECT number, name, url, syntax FROM 4D_Commands WHERE `language` = '$pLanguageCodeStr' AND class LIKE '" . $classStr . "' AND advancedSearch LIKE '" . $pUrlQueryStr . "%' ORDER BY `name` ASC LIMIT " . $limitStartInt . ", " . $limitStopInt;
}
else {
$queryStr = "SELECT number, name, url, syntax FROM 4D_Commands WHERE `language` = '$pLanguageCodeStr' AND class LIKE '" . $classStr . "' AND quickSearch LIKE '" . $pUrlQueryStr . "%' ORDER BY `name` ASC LIMIT " . $limitStartInt . ", " . $limitStopInt;
}

} else {    // class is NOT provided

if($pAdvancedSearchBool){ //bwalia 20060228 Advanced text field search added
//$queryStr = "SELECT number, name, url, syntax FROM 4D_Commands WHERE `language` = '$pLanguageCodeStr' AND name LIKE '" . $pUrlQueryStr . "%' ORDER BY `name` ASC LIMIT " . $limitStartInt . ", " . $limitStopInt;

$queryStr = "SELECT number, name, url, syntax FROM 4D_Commands WHERE `language` = '$pLanguageCodeStr' AND advancedSearch LIKE '" . $pUrlQueryStr . "%' ORDER BY `name` ASC LIMIT " . $limitStartInt . ", " . $limitStopInt;
}
else {
$queryStr = "SELECT number, name, url, syntax FROM 4D_Commands WHERE `language` = '$pLanguageCodeStr' AND quickSearch LIKE '" . $pUrlQueryStr . "%' ORDER BY `name` ASC LIMIT " . $limitStartInt . ", " . $limitStopInt;
}

}

$db = new dbMYSQL();
//$db->bDebug = true;

$localServerBool = (($_SERVER["HTTP_HOST"] == "localhost") || ($_SERVER["HTTP_HOST"] == "local.4dquiz.com") || ($_SERVER["HTTP_HOST"]=="dev.4dquiz.com"));

if($localServerBool)    { $db->passwordStr = 'xxxxxx';
//$db->serverStr = 'localhost';
} // development server should override mysql server to localhost

$db->queryStr = $queryStr;

$obj = new html();

if($db->queryMySQL()){
$obj->pResultInt = $db->resultInt;
$obj->generateHtml();
$nResultRowCount = $obj->pNumLines;
}

if(strlen($pUrlQueryStr) > 2) {

if($classStr) {

if($pAdvancedSearchBool){ //bwalia 20060228 Advanced text field search added
$queryStr = "SELECT number, name, url, syntax FROM 4D_Commands WHERE `language` = '$pLanguageCodeStr' AND class LIKE '" . $classStr . "' AND advancedSearch LIKE '%" . $pUrlQueryStr . "%' ORDER BY `name` ASC LIMIT " . $limitStartInt . ", " . $limitStopInt;
} else {
//$queryStr = "SELECT number, name, url, syntax FROM 4D_Commands WHERE `language` = '$pLanguageCodeStr' AND class LIKE '" . $classStr . "' AND name LIKE '%" . $pUrlQueryStr . "%' ORDER BY `name` ASC LIMIT " . $limitStartInt . ", " . $limitStopInt;
$queryStr = "SELECT number, name, url, syntax FROM 4D_Commands WHERE `language` = '$pLanguageCodeStr' AND class LIKE '" . $classStr . "' AND quickSearch LIKE '%" . $pUrlQueryStr . "%' ORDER BY `name` ASC LIMIT " . $limitStartInt . ", " . $limitStopInt;

}

} else {

if($pAdvancedSearchBool){ //bwalia 20060228 Advanced text field search added
$queryStr = "SELECT number, name, url, syntax FROM 4D_Commands WHERE `language` = '$pLanguageCodeStr' AND advancedSearch LIKE '%" . $pUrlQueryStr . "%' ORDER BY `name` ASC LIMIT " . $limitStartInt . ", " . $limitStopInt;
} else {
//$queryStr = "SELECT number, name, url, syntax FROM 4D_Commands WHERE `language` = '$pLanguageCodeStr' AND name LIKE '%" . $pUrlQueryStr . "%' ORDER BY `name` ASC LIMIT " . $limitStartInt . ", " . $limitStopInt;
$queryStr = "SELECT number, name, url, syntax FROM 4D_Commands WHERE `language` = '$pLanguageCodeStr' AND quickSearch LIKE '%" . $pUrlQueryStr . "%' ORDER BY `name` ASC LIMIT " . $limitStartInt . ", " . $limitStopInt;
}

}

$db->queryStr = $queryStr;

if($db->queryMySQL()){
$obj->pResultInt = $db->resultInt;
$obj->generateHtml();
$nResultRowCount = $obj->pNumLines;
}

}

$responseText = $obj->pHtmlTxt;    // Log response in database
include_once("log_request_insert.php"); // Log request in database

$db->closeMySQL();

if($obj->pHtmlTxt != '') {
echo $obj->pHtmlTxt; // print the html output for web page or 4dquiz widget
if(($localServerBool) && ($debugBool)) {
echo "<br />" . $nResultRowCount . "<br />Results source: Localhost";
}

} else {
if($pWidgetVersion != '') { echo '<!--Empty-->'; } // print the html output for web page or 4dquiz widget
}

// End of search code etc










// html is generated in a single function for easy maintainence
class html

{
// Initialise the default values of query result resource and output html
var $pResultInt                 = 0;
var $pHtmlTxt                     = '';
var    $pIsForDashboardBool        = true;
var    $pNumLines                    = 0;
    
     /* this function in a class which will generate html and output html will be available via object $obj->pHtmlTxt, Please make sure a valid query resource id is passed before outout can be generated*/
        
function generateHtml()
{

$nCounterInt         = 0;
$nPageSizeInt         = 1000;
$rowInt             = 0;
$outputHtmlTxt        = '';

while (($nCounterInt<$nPageSizeInt) && ($rowInt = mysql_fetch_object($this->pResultInt))) {
$cmdMoreInfoUrlStr = $rowInt->url;
$cmdTitleStr = $rowInt->syntax;

if(! $cmdMoreInfoUrlStr) { // just use url as it is provided
$cmdNumberInt = $rowInt->number;
$cmdNumberStr = "CMU" . str_pad($cmdNumberInt, 5, "0", STR_PAD_LEFT);
$cmdMoreInfoUrlStr = "http://www.4d.com/docs/CMU/$cmdNumberStr.HTM";
}

if($cmdTitleStr == "")
{
$cmdTitleStr = $rowInt->name;
}

if($this->pIsForDashboardBool) {
$outputlineTxt = "<a href='javascript:goWeb(\"$cmdMoreInfoUrlStr\")' onMouseOver=\"row_onMouseOver('row$nCounterInt', '$cmdTitleStr', '$cmdMoreInfoUrlStr');\">$cmdTitleStr</a><br />\n"; //assumes the webpage/4dquiz has javascript function goWeb()

} else {

//$outputlineTxt = "<a href=\"#\" onclick='goWeb(\"" .  $cmdMoreInfoUrlStr . "\")'>$cmdTitleStr</a><br />\n"; //assumes the webpage/4dquiz has javascript function goWeb()
//$outputlineTxt = "<a class=\"popupMenu\" id=\"row$nCounterInt\" href='javascript:goWeb(\"$cmdMoreInfoUrlStr\")' onMouseOver=\"row_onMouseOver('row$nCounterInt', '$cmdTitleStr', '$cmdMoreInfoUrlStr');\" title=\"$cmdTitleStr\">$cmdTitleStr<span>$cmdTitleStr<br /><a href='4dquiz.com'>web</a></span></a><br />\n"; //assumes the webpage/4dquiz has javascript function goWeb()
$outputlineTxt = "<a href='javascript:goWeb(\"$cmdMoreInfoUrlStr\")' onMouseOver=\"row_onMouseOver('row$nCounterInt', '$cmdTitleStr', '$cmdMoreInfoUrlStr');\">$cmdTitleStr</a><br />\n"; //assumes the webpage/4dquiz has javascript function goWeb()
}

$nPosInt = strpos($this->pHtmlTxt, $cmdTitleStr);

if($nPosInt === false) {
$this->pHtmlTxt .= $outputlineTxt;
$nCounterInt += 1;
}
}

$this->pNumLines = $nCounterInt;

}
}


?>
N/A


N/A




Topics of Interest
Array Utility Routines
 

Published date: Fri, 14 Jul 2006 15:47:20 GMT   → View XML Version
Edit this page now

© 2005 - 2006 4dquiz.com, All trademarks accepted. All Rights Reserved!
Site Index