unify getItemInfo between search and databap

This commit is contained in:
lutranf
2014-09-03 18:12:48 +02:00
parent 73a4866a8e
commit 2c8adebc45
5 changed files with 40 additions and 17 deletions

View File

@@ -1092,6 +1092,11 @@ class Databap extends PhpObject
return $this->jsonConvert($asResult); return $this->jsonConvert($asResult);
} }
private function getItemInfo($sType, $iItemId)
{
return call_user_func(array($this, 'get'.ucfirst($this->getPagesFromHash($sType)).'Info'), $iItemId);
}
//TODO: one function only with a type parameter //TODO: one function only with a type parameter
private function getCodeInfo($oCode, $sMode='', $bCode=false) private function getCodeInfo($oCode, $sMode='', $bCode=false)
{ {
@@ -1116,6 +1121,7 @@ class Databap extends PhpObject
} }
$asCode = $this->oMySql->selectRow(self::CODE_TABLE, $iCodeId, $asSelect); $asCode = $this->oMySql->selectRow(self::CODE_TABLE, $iCodeId, $asSelect);
$asCode['title'] = self::getDescriptionFormat($asCode['description']);
$asCode['description'] = self::getDescriptionFormat($asCode['description']); $asCode['description'] = self::getDescriptionFormat($asCode['description']);
$asCode['timestamp'] = strtotime($asCode['led']); $asCode['timestamp'] = strtotime($asCode['led']);
$asCode['led'] = self::getDateFormat($asCode['led']); $asCode['led'] = self::getDateFormat($asCode['led']);
@@ -1150,7 +1156,7 @@ class Databap extends PhpObject
{ {
$asTable['system'] = self::getTableFormat($asTable['system']); $asTable['system'] = self::getTableFormat($asTable['system']);
$asTable['title'] = self::getTableFormat($asTable['title']); $asTable['title'] = self::getTableFormat($asTable['title']);
$asTable['description'] = $asTable['title'].' - '.self::getDescriptionFormat($asTable['description']); $asTable['description'] = self::getDescriptionFormat($asTable['description']);
$asTable['led'] = self::getDateFormat($asTable['led']); $asTable['led'] = self::getDateFormat($asTable['led']);
$asTable['formatted_keywords'] = str_replace("\n", '<br />', ToolBox::findReplaceLinks($asTable['keywords'])); $asTable['formatted_keywords'] = str_replace("\n", '<br />', ToolBox::findReplaceLinks($asTable['keywords']));
} }
@@ -1163,14 +1169,15 @@ class Databap extends PhpObject
$asTransferredInfo = array('link_art'=>$asArt['link'], 'art_title'=>$asArt['title'], 'link_auth'=>$asArt['email']); $asTransferredInfo = array('link_art'=>$asArt['link'], 'art_title'=>$asArt['title'], 'link_auth'=>$asArt['email']);
$asTransferredInfo['art_date'] = self::getDateFormat($asArt['date'], self::DATE_FORMAT); $asTransferredInfo['art_date'] = self::getDateFormat($asArt['date'], self::DATE_FORMAT);
$asTransferredInfo['name'] = self::getNameFormat($asArt['first_name'], $asArt['last_name']); $asTransferredInfo['name'] = self::getNameFormat($asArt['first_name'], $asArt['last_name']);
$asTransferredInfo['title'] = self::getDescriptionFormat($asArt['title']);
$asTransferredInfo['description'] = self::getDescriptionFormat($asArt['title']); $asTransferredInfo['description'] = self::getDescriptionFormat($asArt['title']);
$asTransferredInfo['timestamp'] = strtotime($asArt['led']); $asTransferredInfo['timestamp'] = strtotime($asArt['led']);
$asTransferredInfo['led'] = self::getDateFormat($asArt['led']); $asTransferredInfo['led'] = self::getDateFormat($asArt['led']);
$asTransferredInfo['company'] = 'SAP';
//Domain //Domain
$asParsedUrl = parse_url($asArt['link']); $asParsedUrl = parse_url($asArt['link']);
$asTransferredInfo['domain'] = $asParsedUrl['host']; $asTransferredInfo['domain'] = $asParsedUrl['host'];
$asTransferredInfo['company'] = $asTransferredInfo['domain'];
return $asTransferredInfo; return $asTransferredInfo;
} }
@@ -1302,8 +1309,8 @@ class Databap extends PhpObject
$sOptNameIdCol = MySqlManager::getId(self::OPTNAME_TABLE); $sOptNameIdCol = MySqlManager::getId(self::OPTNAME_TABLE);
$sOptNameTextCol = MySqlManager::getText(self::OPTNAME_TABLE); $sOptNameTextCol = MySqlManager::getText(self::OPTNAME_TABLE);
$asInfo = array('select'=>array($sOptNameIdCol, $sOptNameTextCol, 'type'), $asInfo = array('select'=>array($sOptNameIdCol, $sOptNameTextCol, 'type'),
'from'=>self::OPTNAME_TABLE, 'from'=>self::OPTNAME_TABLE,
'constraint'=>array('language'=>$this->sLanguage)); 'constraint'=>array('language'=>$this->sLanguage));
return $this->oMySql->selectRows($asInfo, true, $sOptNameIdCol); return $this->oMySql->selectRows($asInfo, true, $sOptNameIdCol);
} }
@@ -2252,7 +2259,7 @@ class Databap extends PhpObject
foreach($asTypedItemIds as $iItemId) foreach($asTypedItemIds as $iItemId)
{ {
//Getting item info //Getting item info
$asItem = call_user_func(array($this, 'get'.ucfirst($this->getPagesFromHash($sType)).'Info'), $iItemId); $asItem = $this->getItemInfo($sType, $iItemId);
$asItem['type'] = $sType; $asItem['type'] = $sType;
$asItem['id_item'] = $iItemId; $asItem['id_item'] = $iItemId;
@@ -2538,15 +2545,23 @@ class Databap extends PhpObject
//complementary infos //complementary infos
$asCompleteResults = array(); $asCompleteResults = array();
foreach($asResults as $iItemId=>$asItemInfo) foreach($asResults as $asItemInfo)
{ {
//phrase //Item Info
$sPhrase = $this->getPhraseFromIdCode($asItemInfo['id_code']); $iItemId = $asItemInfo['id_item'];
if($sPhrase !== false) $sType = $asItemInfo['type'];
$asItemInfo += $this->getItemInfo($sType, $iItemId);
//User Info
if($sType != self::ART_TYPE) //Already available in item info
{ {
$asItemInfo['phrase'] = $sPhrase; $asUserInfo = $this->getUserInfo($asItemInfo[MySqlManager::getId(self::USER_TABLE)]);
$asItemInfo['name'] = $asUserInfo['name'];
$asItemInfo['company'] = $asUserInfo['company'];
} }
$asCompleteResults[$iItemId] = $asItemInfo; //TODO: phrase
$asCompleteResults[] = $asItemInfo;
} }
return $this->jsonExport($asCompleteResults); return $this->jsonExport($asCompleteResults);

View File

@@ -96,7 +96,7 @@ class SearchEngine extends PhpObject
{ {
if(!array_key_exists($iSearchId, $this->asItemInfos)) if(!array_key_exists($iSearchId, $this->asItemInfos))
{ {
switch($iItemType) /*switch($iItemType)
{ {
case Databap::CODE_TYPE: case Databap::CODE_TYPE:
$sItemTable = Databap::CODE_TABLE; $sItemTable = Databap::CODE_TABLE;
@@ -119,7 +119,7 @@ class SearchEngine extends PhpObject
$asItemFields = array(MySqlManager::getId(Databap::USER_TABLE), 'title AS description', 'led'); $asItemFields = array(MySqlManager::getId(Databap::USER_TABLE), 'title AS description', 'led');
break; break;
} }
$this->asItemInfos[$iSearchId] = $this->oMySql->selectRow($sItemTable, $iItemId, $asItemFields); $this->asItemInfos[$iSearchId] = $this->oMySql->selectRow($sItemTable, $iItemId, $asItemFields);*/
$this->asItemInfos[$iSearchId]['type'] = $iItemType; $this->asItemInfos[$iSearchId]['type'] = $iItemType;
$this->asItemInfos[$iSearchId]['id_item'] = $iItemId; $this->asItemInfos[$iSearchId]['id_item'] = $iItemId;
} }
@@ -132,6 +132,7 @@ class SearchEngine extends PhpObject
else return false; else return false;
} }
/*
private function setUserInfo($iUserId) private function setUserInfo($iUserId)
{ {
if($iUserId > 0 && !array_key_exists($iUserId, $this->asUserInfos)) if($iUserId > 0 && !array_key_exists($iUserId, $this->asUserInfos))
@@ -155,6 +156,7 @@ class SearchEngine extends PhpObject
return $this->asUserInfos[$iUserId][$sInfoName]; return $this->asUserInfos[$iUserId][$sInfoName];
else return false; else return false;
} }
*/
private function setResults() private function setResults()
{ {
@@ -197,7 +199,7 @@ class SearchEngine extends PhpObject
$this->incItemRank($iSearchId, $iLevel*10+$iBonus); $this->incItemRank($iSearchId, $iLevel*10+$iBonus);
$this->setItemInfo($iSearchId, $iItemType, $iItemId); $this->setItemInfo($iSearchId, $iItemType, $iItemId);
$this->setUserInfo($this->getItemInfo($iSearchId, MySqlManager::getId(Databap::USER_TABLE))); //$this->setUserInfo($this->getItemInfo($iSearchId, MySqlManager::getId(Databap::USER_TABLE)));
} }
$iIndex++; $iIndex++;
} }
@@ -213,7 +215,7 @@ class SearchEngine extends PhpObject
arsort($this->asItemRanks); arsort($this->asItemRanks);
foreach($this->asItemRanks as $iSearchId=>$iRank) foreach($this->asItemRanks as $iSearchId=>$iRank)
{ {
$iUserId = $this->getItemInfo($iSearchId, MySqlManager::getId(Databap::USER_TABLE)); /*$iUserId = $this->getItemInfo($iSearchId, MySqlManager::getId(Databap::USER_TABLE));
$sFirstName = $this->getUserInfo($iUserId, 'first_name')?$this->getUserInfo($iUserId, 'first_name'):$this->getItemInfo($iSearchId, 'first_name'); $sFirstName = $this->getUserInfo($iUserId, 'first_name')?$this->getUserInfo($iUserId, 'first_name'):$this->getItemInfo($iSearchId, 'first_name');
$sLastName = $this->getUserInfo($iUserId, 'last_name')?$this->getUserInfo($iUserId, 'last_name'):$this->getItemInfo($iSearchId, 'last_name'); $sLastName = $this->getUserInfo($iUserId, 'last_name')?$this->getUserInfo($iUserId, 'last_name'):$this->getItemInfo($iSearchId, 'last_name');
$sCompany = $this->getUserInfo($iUserId, 'company')?$this->getUserInfo($iUserId, 'company'):'SAP'; $sCompany = $this->getUserInfo($iUserId, 'company')?$this->getUserInfo($iUserId, 'company'):'SAP';
@@ -224,6 +226,10 @@ class SearchEngine extends PhpObject
'name'=>Databap::getNameFormat($sFirstName, $sLastName), 'name'=>Databap::getNameFormat($sFirstName, $sLastName),
'company'=>Databap::getCompanyFormat($sCompany), 'company'=>Databap::getCompanyFormat($sCompany),
'led'=>Databap::getDateFormat($this->getItemInfo($iSearchId, 'led'))); 'led'=>Databap::getDateFormat($this->getItemInfo($iSearchId, 'led')));
*/
$asResult[] = array('id_item'=>$this->getItemInfo($iSearchId, 'id_item'),
'type'=>$this->getItemInfo($iSearchId, 'type'),
'rank'=>$iRank);
} }
return $asResult; return $asResult;
} }

2
jquery/databap.js vendored
View File

@@ -610,7 +610,7 @@ function Databap()
{ {
//Filling up the item line //Filling up the item line
var $verHtml = $(self.consts.versionHtml); var $verHtml = $(self.consts.versionHtml);
$verHtml.find('#description').html(asItemInfo.description); $verHtml.find('#description').html(asItemInfo.title);
$verHtml.find('#author_name').html(asItemInfo.name); $verHtml.find('#author_name').html(asItemInfo.name);
$verHtml.find('#author_company').html(asItemInfo.company); $verHtml.find('#author_company').html(asItemInfo.company);
$verHtml.find('#led').html(asItemInfo.led); $verHtml.find('#led').html(asItemInfo.led);

View File

@@ -6,7 +6,7 @@
<span class="edit">Table</span> <span class="edit">Table</span>
<span class="read"><span id="read_system"></span>| <span id="read_title"></span> - <span id="read_description"></span></span></p> <span class="read"><span id="read_system"></span>| <span id="read_title"></span> - <span id="read_description"></span></span></p>
<select id="system" name="system" class="edit inc_border round"> <select id="system" name="system" class="edit inc_border round">
<option value="TOUS">Tous</option> <option value="SAP">SAP</option>
<option value="BW" selected="selected">BW</option> <option value="BW" selected="selected">BW</option>
<option value="ECC">ECC</option> <option value="ECC">ECC</option>
</select> </select>

2
todo
View File

@@ -8,6 +8,7 @@ Internal:
- put feedback box in title - put feedback box in title
Bug fix: Bug fix:
- [1.0.0] Lien dans les procédure (virer les textarea en mode "read")
- [1.0.0] Tab dans chat - [1.0.0] Tab dans chat
- [1.0.1] Check le document type plutot que l'extension pour les /img - [1.0.1] Check le document type plutot que l'extension pour les /img
- [1.0.1] Resize .gif - [1.0.1] Resize .gif
@@ -15,6 +16,7 @@ Bug fix:
Améliorations Améliorations
- [1.0.0] Importer la liste des tables de Christophe - [1.0.0] Importer la liste des tables de Christophe
- [1.1.0] Remplacer dans les options : oui / non par [-0] (f205) [O-] (f204)
- [1.1.0] Son pour les nouveaux messages - [1.1.0] Son pour les nouveaux messages
- [1.1.0] Chat : compatibilité mobile (utiliser la fonctionnalité ff) - [1.1.0] Chat : compatibilité mobile (utiliser la fonctionnalité ff)
- [1.1.0] search : add tagname, like code:blabla to search blabla in codes only - [1.1.0] search : add tagname, like code:blabla to search blabla in codes only