fix search priority
This commit is contained in:
104
config.php
104
config.php
@@ -331,7 +331,11 @@ class Databap extends PhpObject
|
||||
function __construct($oClassManagement)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
//Browser <> PHP <> MySql synchronization
|
||||
date_default_timezone_set(Settings::TIMEZONE);
|
||||
//header('Content-Type: text/html; charset=utf-8');
|
||||
|
||||
$this->oMySql = new MySqlManager();
|
||||
if($this->oMySql->sDbState == MySqlManager::DB_NO_DATA) $this->install();
|
||||
$this->oProcedure = new Procedure($this->oMySql);
|
||||
@@ -523,6 +527,8 @@ class Databap extends PhpObject
|
||||
$sSAPDomain = 'http://scn.sap.com';
|
||||
$sSAPBlogUrl = $sSAPDomain.'/community/data-warehousing/netweaver-bw/blog';
|
||||
|
||||
//TODO add http://www.biportal.org/sap_bi_blog
|
||||
|
||||
$oDom = $this->getRemotePageDom($sSAPBlogUrl);
|
||||
$aoArticles = $oDom->getElementsByTagName('header');
|
||||
|
||||
@@ -966,8 +972,8 @@ class Databap extends PhpObject
|
||||
|
||||
$asCode = $this->oMySql->selectRow(MySqlManager::CODE_TABLE, $iCodeId, $asSelect);
|
||||
$asCode['description'] = self::getDescriptionFormat($asCode['description']);
|
||||
$asCode['led'] = self::getDateFormat($asCode['led']);
|
||||
$asCode['timestamp'] = strtotime($asCode['led']);
|
||||
$asCode['led'] = self::getDateFormat($asCode['led']);
|
||||
return $asCode;
|
||||
}
|
||||
|
||||
@@ -976,8 +982,8 @@ class Databap extends PhpObject
|
||||
$asProc = $this->oMySql->selectRow(MySqlManager::PROC_TABLE, $iProcId);
|
||||
$asProc['title'] = self::getDescriptionFormat($asProc['title']);
|
||||
$asProc['description'] = self::getDescriptionFormat($asProc['description']);
|
||||
$asProc['timestamp'] = strtotime($asProc['led']);
|
||||
$asProc['led'] = self::getDateFormat($asProc['led']);
|
||||
$asProc['timestamp'] = strtotime($asCode['led']);
|
||||
return $asProc;
|
||||
}
|
||||
|
||||
@@ -986,8 +992,8 @@ class Databap extends PhpObject
|
||||
$asDoc = $this->oMySql->selectRow(MySqlManager::DOC_TABLE, $iDocId);
|
||||
$asDoc['title'] = self::getDescriptionFormat($asDoc['title']);
|
||||
$asDoc['description'] = self::getDescriptionFormat($asDoc['description']);
|
||||
$asDoc['timestamp'] = strtotime($asDoc['led']);
|
||||
$asDoc['led'] = self::getDateFormat($asDoc['led']);
|
||||
$asDoc['timestamp'] = strtotime($asCode['led']);
|
||||
return $asDoc;
|
||||
}
|
||||
|
||||
@@ -998,8 +1004,8 @@ class Databap extends PhpObject
|
||||
$asTransferredInfo['art_date'] = self::getDateFormat($asArt['date'], self::DATE_FORMAT);
|
||||
$asTransferredInfo['name'] = self::getNameFormat($asArt['first_name'], $asArt['last_name']);
|
||||
$asTransferredInfo['description'] = self::getDescriptionFormat($asArt['title']);
|
||||
$asTransferredInfo['timestamp'] = strtotime($asArt['led']);
|
||||
$asTransferredInfo['led'] = self::getDateFormat($asArt['led']);
|
||||
$asTransferredInfo['timestamp'] = strtotime($asCode['led']);
|
||||
$asTransferredInfo['company'] = 'SAP';
|
||||
return $asTransferredInfo;
|
||||
}
|
||||
@@ -2291,7 +2297,7 @@ class Databap extends PhpObject
|
||||
header('Content-type: application/json');
|
||||
if($bConvert)
|
||||
{
|
||||
$asData = MySqlManager::cleanData($asData, 'utf8_encode');
|
||||
$asData = ToolBox::cleanData($asData, 'utf8_encode');
|
||||
}
|
||||
return self::jsonConvert($asData);
|
||||
}
|
||||
@@ -2694,6 +2700,7 @@ class SearchEngine extends PhpObject
|
||||
}
|
||||
$sWords = implode(self::KEYWORDS_SEPARATOR, $asWords);
|
||||
$sWords = strtolower(str_replace("\n", self::KEYWORDS_SEPARATOR, $sWords));
|
||||
//TODO Fix char encoding
|
||||
$sWords = preg_replace('/(\W+)/', self::KEYWORDS_SEPARATOR, $sWords); //remove all non-word characters
|
||||
|
||||
//Add / Modify search database
|
||||
@@ -2792,9 +2799,10 @@ class SearchEngine extends PhpObject
|
||||
|
||||
//$sRegExp = implode('(.{0,2})', $asSequence);
|
||||
$sRegExp = implode(self::KEYWORDS_SEPARATOR.'?', $asSequence);
|
||||
$sSequence = implode(self::KEYWORDS_SEPARATOR, $asSequence);
|
||||
|
||||
//TODO replace with selectRow()
|
||||
$sQuery = "SELECT id_search, id_item, type/*, keywords*/ FROM searchs WHERE keywords REGEXP '{$sRegExp}'";
|
||||
$sQuery = "SELECT id_search, id_item, type, keywords FROM searchs WHERE keywords REGEXP '{$sRegExp}'";
|
||||
|
||||
//search sequence
|
||||
$asItems = $this->oMySql->getArrayQuery($sQuery, true);
|
||||
@@ -2803,13 +2811,15 @@ class SearchEngine extends PhpObject
|
||||
$iSearchId = $asItem['id_search'];
|
||||
$iItemId = $asItem['id_item'];;
|
||||
$iItemType = $asItem['type'];
|
||||
//$sWords = self::KEYWORDS_SEPARATOR.$asItem['keywords'].self::KEYWORDS_SEPARATOR;
|
||||
$sWords = $asItem['keywords'];
|
||||
|
||||
//Calculate hit value
|
||||
//$iCount = 0;
|
||||
|
||||
$this->incItemRank($iSearchId, $iLevel/**10+$iCount*/);
|
||||
//Calculte bonus points
|
||||
$sWords = str_replace(self::KEYWORDS_SEPARATOR.$sSequence.self::KEYWORDS_SEPARATOR, self::KEYWORDS_SEPARATOR, self::KEYWORDS_SEPARATOR.$sWords.self::KEYWORDS_SEPARATOR, $iSeqCount);
|
||||
$sWords = str_replace(self::KEYWORDS_SEPARATOR.$sSequence, self::KEYWORDS_SEPARATOR, self::KEYWORDS_SEPARATOR.$sWords.self::KEYWORDS_SEPARATOR, $iStaCount);
|
||||
$sWords = str_replace($sSequence.self::KEYWORDS_SEPARATOR, self::KEYWORDS_SEPARATOR, self::KEYWORDS_SEPARATOR.$sWords.self::KEYWORDS_SEPARATOR, $iEndCount);
|
||||
$iBonus = $iSeqCount*5 + $iStaCount*2 + $iEndCount;
|
||||
|
||||
$this->incItemRank($iSearchId, $iLevel*10+$iBonus);
|
||||
$this->setItemInfo($iSearchId, $iItemType, $iItemId);
|
||||
$this->setUserInfo($this->getItemInfo($iSearchId, MySqlManager::getId(MySqlManager::USER_TABLE)));
|
||||
}
|
||||
@@ -3550,16 +3560,27 @@ class MySqlManager extends PhpObject
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->oConnection = mysql_connect(self::DB_SERVER, self::DB_LOGIN, self::DB_PASS);
|
||||
//$this->oConnection = mysql_connect(self::DB_SERVER, self::DB_LOGIN, self::DB_PASS);
|
||||
$this->oConnection = new mysqli(self::DB_SERVER, self::DB_LOGIN, self::DB_PASS);
|
||||
|
||||
/*
|
||||
$dsn = 'mysql:dbname=databap;host=127.0.0.1';
|
||||
try {$dbh = new PDO($dsn, self::DB_LOGIN, self::DB_PASS);}
|
||||
catch (PDOException $e) {$this->addError('Connexion échouée : ' . $e->getMessage());}
|
||||
*/
|
||||
|
||||
$this->setTrace(false);
|
||||
if(!$this->oConnection)
|
||||
//if(!$this->oConnection)
|
||||
if($this->oConnection->connect_error)
|
||||
{
|
||||
$this->addError('bug connection');
|
||||
//$this->addError('bug connection');
|
||||
$this->addError('bug connection : '.$this->oConnection->connect_error);
|
||||
$this->sDbState = self::DB_NO_CONN;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!mysql_select_db(self::DB_NAME, $this->oConnection))
|
||||
//if(!mysql_select_db(self::DB_NAME, $this->oConnection))
|
||||
if(!$this->oConnection->select_db(self::DB_NAME))
|
||||
{
|
||||
$this->addError('bug selecting database. Installing...');
|
||||
$this->sDbState = self::DB_NO_DATA;
|
||||
@@ -3570,7 +3591,8 @@ class MySqlManager extends PhpObject
|
||||
public function __destruct()
|
||||
{
|
||||
parent::__destruct();
|
||||
mysql_close($this->oConnection);
|
||||
//mysql_close($this->oConnection);
|
||||
$this->oConnection->close();
|
||||
}
|
||||
|
||||
public function setTrace($bAction)
|
||||
@@ -3599,7 +3621,8 @@ class MySqlManager extends PhpObject
|
||||
//Create Database
|
||||
$this->setQuery("DROP DATABASE IF EXISTS ".self::DB_NAME);
|
||||
$this->setQuery("CREATE DATABASE ".self::DB_NAME);
|
||||
mysql_select_db(self::DB_NAME, $this->oConnection);
|
||||
//mysql_select_db(self::DB_NAME, $this->oConnection);
|
||||
$this->oConnection->select_db(self::DB_NAME);
|
||||
|
||||
//Create tables
|
||||
@array_walk($this->getInstallQueries(), array($this, 'setQuery'));
|
||||
@@ -3648,13 +3671,14 @@ class MySqlManager extends PhpObject
|
||||
private function setQuery($sQuery, $sTypeQuery=__FUNCTION__)
|
||||
{
|
||||
$this->getQuery($sQuery, $sTypeQuery);
|
||||
return (mysql_affected_rows()!=0);
|
||||
//return (mysql_affected_rows()!=0);
|
||||
return ($this->oConnection->affected_rows!=0);
|
||||
}
|
||||
|
||||
private function getQuery($sQuery, $sTypeQuery=__FUNCTION__)
|
||||
{
|
||||
$sQuery = str_replace(array("\n", "\t"), array(" ", ""), $sQuery);
|
||||
$oResult = mysql_query($sQuery, $this->oConnection);
|
||||
//$oResult = mysql_query($sQuery, $this->oConnection);
|
||||
|
||||
if($this->bTrace)
|
||||
{
|
||||
@@ -3662,9 +3686,9 @@ class MySqlManager extends PhpObject
|
||||
$this->addNotice($sQuery);
|
||||
}
|
||||
|
||||
if(!$oResult)
|
||||
if(!($oResult = $this->oConnection->query($sQuery)))
|
||||
{
|
||||
$this->addError("\nErreur SQL : \n".str_replace("\t", "", $sQuery)."\n\n".str_replace(array("\t", "\n"), "", mysql_error()));
|
||||
$this->addError("\nErreur SQL : \n".str_replace("\t", "", $sQuery)."\n\n".str_replace(array("\t", "\n"), "", $this->oConnection->error));
|
||||
}
|
||||
return $oResult;
|
||||
}
|
||||
@@ -3677,7 +3701,8 @@ class MySqlManager extends PhpObject
|
||||
$oResult = $this->getQuery($sQuery, true, $sTypeQuery);
|
||||
if($oResult!==false)
|
||||
{
|
||||
while($asCurrentRow = mysql_fetch_array($oResult))
|
||||
//while($asCurrentRow = mysql_fetch_array($oResult))
|
||||
while($asCurrentRow = $oResult->fetch_array())
|
||||
{
|
||||
if($bStringOnly)
|
||||
{
|
||||
@@ -4225,10 +4250,12 @@ class MySqlManager extends PhpObject
|
||||
return $this->selectValue($sTableName, 'COUNT(1)', $oConstraints);
|
||||
}
|
||||
|
||||
public static function cleanSql(&$oData)
|
||||
public function cleanSql(&$oData)
|
||||
{
|
||||
self::cleanData($oData, 'mysql_real_escape_string');
|
||||
$oData = self::cleanData($oData, 'mysql_real_escape_string');
|
||||
//self::cleanData($oData, 'mysql_real_escape_string');
|
||||
//$oData = self::cleanData($oData, 'mysql_real_escape_string');
|
||||
$this->cleanData($oData);
|
||||
$oData = $this->cleanData($oData);
|
||||
}
|
||||
|
||||
public static function implodeAll($asText, $asKeyValueSeparator='', $sRowSeparator='', $sKeyPre='', $sValuePost=false)
|
||||
@@ -4258,18 +4285,16 @@ class MySqlManager extends PhpObject
|
||||
return array_intersect_key($asArray, $asValidKeys);
|
||||
}
|
||||
|
||||
public static function cleanData($oData, $sCleaningFunc)
|
||||
public function cleanData($oData)
|
||||
{
|
||||
if(!is_array($oData))
|
||||
{
|
||||
$test = call_user_func($sCleaningFunc, $oData);
|
||||
return $test;
|
||||
return $this->oConnection->real_escape_string($oData);
|
||||
}
|
||||
elseif(count($oData)>0)
|
||||
{
|
||||
$asCleaningFunc = array_fill(1, count($oData), $sCleaningFunc);
|
||||
$asKeys = array_map(array('self', 'cleanData'), array_keys($oData), $asCleaningFunc);
|
||||
$asValues = array_map(array('self', 'cleanData'), $oData, $asCleaningFunc);
|
||||
$asKeys = array_map(array($this, 'cleanData'), array_keys($oData));
|
||||
$asValues = array_map(array($this, 'cleanData'), $oData);
|
||||
return array_combine($asKeys, $asValues);
|
||||
}
|
||||
}
|
||||
@@ -4302,7 +4327,22 @@ class ToolBox
|
||||
//get rid of magic quotes
|
||||
if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc())
|
||||
{
|
||||
$asData = MySqlManager::cleanData($asData, 'stripslashes');
|
||||
$asData = self::cleanData($asData, 'stripslashes');
|
||||
}
|
||||
}
|
||||
|
||||
public static function cleanData($oData, $sCleaningFunc)
|
||||
{
|
||||
if(!is_array($oData))
|
||||
{
|
||||
return call_user_func($sCleaningFunc, $oData);
|
||||
}
|
||||
elseif(count($oData)>0)
|
||||
{
|
||||
$asCleaningFunc = array_fill(1, count($oData), $sCleaningFunc);
|
||||
$asKeys = array_map(array('self', 'cleanData'), array_keys($oData), $asCleaningFunc);
|
||||
$asValues = array_map(array('self', 'cleanData'), $oData, $asCleaningFunc);
|
||||
return array_combine($asKeys, $asValues);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- <meta http-equiv="content-type" content="text/html; charset=utf-8" /> -->
|
||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
|
||||
<meta name="author" content="Francois Lutran" />
|
||||
<meta name="description" content="Abap database for consultants" />
|
||||
|
||||
Reference in New Issue
Block a user