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

@@ -1091,6 +1091,11 @@ class Databap extends PhpObject
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
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['title'] = self::getDescriptionFormat($asCode['description']);
$asCode['description'] = self::getDescriptionFormat($asCode['description']);
$asCode['timestamp'] = strtotime($asCode['led']);
$asCode['led'] = self::getDateFormat($asCode['led']);
@@ -1150,7 +1156,7 @@ class Databap extends PhpObject
{
$asTable['system'] = self::getTableFormat($asTable['system']);
$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['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['art_date'] = self::getDateFormat($asArt['date'], self::DATE_FORMAT);
$asTransferredInfo['name'] = self::getNameFormat($asArt['first_name'], $asArt['last_name']);
$asTransferredInfo['title'] = self::getDescriptionFormat($asArt['title']);
$asTransferredInfo['description'] = self::getDescriptionFormat($asArt['title']);
$asTransferredInfo['timestamp'] = strtotime($asArt['led']);
$asTransferredInfo['led'] = self::getDateFormat($asArt['led']);
$asTransferredInfo['company'] = 'SAP';
//Domain
$asParsedUrl = parse_url($asArt['link']);
$asTransferredInfo['domain'] = $asParsedUrl['host'];
$asTransferredInfo['company'] = $asTransferredInfo['domain'];
return $asTransferredInfo;
}
@@ -1302,8 +1309,8 @@ class Databap extends PhpObject
$sOptNameIdCol = MySqlManager::getId(self::OPTNAME_TABLE);
$sOptNameTextCol = MySqlManager::getText(self::OPTNAME_TABLE);
$asInfo = array('select'=>array($sOptNameIdCol, $sOptNameTextCol, 'type'),
'from'=>self::OPTNAME_TABLE,
'constraint'=>array('language'=>$this->sLanguage));
'from'=>self::OPTNAME_TABLE,
'constraint'=>array('language'=>$this->sLanguage));
return $this->oMySql->selectRows($asInfo, true, $sOptNameIdCol);
}
@@ -2252,7 +2259,7 @@ class Databap extends PhpObject
foreach($asTypedItemIds as $iItemId)
{
//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['id_item'] = $iItemId;
@@ -2538,15 +2545,23 @@ class Databap extends PhpObject
//complementary infos
$asCompleteResults = array();
foreach($asResults as $iItemId=>$asItemInfo)
foreach($asResults as $asItemInfo)
{
//phrase
$sPhrase = $this->getPhraseFromIdCode($asItemInfo['id_code']);
if($sPhrase !== false)
//Item Info
$iItemId = $asItemInfo['id_item'];
$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);

View File

@@ -96,7 +96,7 @@ class SearchEngine extends PhpObject
{
if(!array_key_exists($iSearchId, $this->asItemInfos))
{
switch($iItemType)
/*switch($iItemType)
{
case Databap::CODE_TYPE:
$sItemTable = Databap::CODE_TABLE;
@@ -119,7 +119,7 @@ class SearchEngine extends PhpObject
$asItemFields = array(MySqlManager::getId(Databap::USER_TABLE), 'title AS description', 'led');
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]['id_item'] = $iItemId;
}
@@ -132,6 +132,7 @@ class SearchEngine extends PhpObject
else return false;
}
/*
private function setUserInfo($iUserId)
{
if($iUserId > 0 && !array_key_exists($iUserId, $this->asUserInfos))
@@ -155,6 +156,7 @@ class SearchEngine extends PhpObject
return $this->asUserInfos[$iUserId][$sInfoName];
else return false;
}
*/
private function setResults()
{
@@ -197,7 +199,7 @@ class SearchEngine extends PhpObject
$this->incItemRank($iSearchId, $iLevel*10+$iBonus);
$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++;
}
@@ -213,7 +215,7 @@ class SearchEngine extends PhpObject
arsort($this->asItemRanks);
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');
$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';
@@ -224,6 +226,10 @@ class SearchEngine extends PhpObject
'name'=>Databap::getNameFormat($sFirstName, $sLastName),
'company'=>Databap::getCompanyFormat($sCompany),
'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;
}

2
jquery/databap.js vendored
View File

@@ -610,7 +610,7 @@ function Databap()
{
//Filling up the item line
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_company').html(asItemInfo.company);
$verHtml.find('#led').html(asItemInfo.led);

View File

@@ -6,7 +6,7 @@
<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>
<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="ECC">ECC</option>
</select>

2
todo
View File

@@ -8,6 +8,7 @@ Internal:
- put feedback box in title
Bug fix:
- [1.0.0] Lien dans les procédure (virer les textarea en mode "read")
- [1.0.0] Tab dans chat
- [1.0.1] Check le document type plutot que l'extension pour les /img
- [1.0.1] Resize .gif
@@ -15,6 +16,7 @@ Bug fix:
Améliorations
- [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] Chat : compatibilité mobile (utiliser la fonctionnalité ff)
- [1.1.0] search : add tagname, like code:blabla to search blabla in codes only