From d602bb21908c0bb3420e007ab7b57e6c3e405fcb Mon Sep 17 00:00:00 2001 From: Denis Flaven Date: Thu, 26 Jun 2014 14:27:26 +0000 Subject: [PATCH] #948 Finalization of the full text accelerators: two new parameters: 'skip' and 'enable_enlarge'. 'attributes' is now an optional parameter. SVN:trunk[3227] --- pages/UI.php | 12 ++++++++---- pages/ajax.render.php | 28 +++++++++++++++++++++++----- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/pages/UI.php b/pages/UI.php index e7e0df319..b53a43d5f 100644 --- a/pages/UI.php +++ b/pages/UI.php @@ -580,11 +580,15 @@ try { try { - $oSearch = DBObjectSearch::FromOQL($aAccelerator['query']); - if ($sClass != $oSearch->GetClass()) + $bSkip = array_key_exists('skip', $aAccelerator) ? $aAccelerator['skip'] : false; + if (!$bSkip) { - $oP->p("Full text accelerator for class '$sClass': searched class mismatch (".$oSearch->GetClass().")"); - $iErrors++; + $oSearch = DBObjectSearch::FromOQL($aAccelerator['query']); + if ($sClass != $oSearch->GetClass()) + { + $oP->p("Full text accelerator for class '$sClass': searched class mismatch (".$oSearch->GetClass().")"); + $iErrors++; + } } } catch (OqlException $e) diff --git a/pages/ajax.render.php b/pages/ajax.render.php index 0477e3fab..ba715f647 100644 --- a/pages/ajax.render.php +++ b/pages/ajax.render.php @@ -1337,9 +1337,15 @@ EOF { unset($aSearchClasses[$iPos]); } - array_unshift($aSearchClasses, $aRestriction['query']); + $bSkip = array_key_exists('skip', $aRestriction) ? $aRestriction['skip'] : false ; + if (!$bSkip) + { + // NOT skipped, add the class to the list of classes to search into + array_unshift($aSearchClasses, $aRestriction['query']); + } } + $aSearchClasses = array_values($aSearchClasses); // renumbers the array starting from zero, removing the missing indexes $fStarted = microtime(true); $iFoundInThisRound = 0; for($iPos = $iCurrentPos; $iPos < count($aSearchClasses) ; $iPos++) @@ -1377,12 +1383,17 @@ EOF $fStartedClass = microtime(true); } $oSet = new DBObjectSet($oFilter, array(), $aParams); - if (array_key_exists($sClassName, $aAccelerators)) + if (array_key_exists($sClassName, $aAccelerators) && array_key_exists('attributes', $aAccelerators[$sClassName])) { $oSet->OptimizeColumnLoad(array($oFilter->GetClassAlias() => $aAccelerators[$sClassName]['attributes'])); } $sFullTextJS = addslashes($sFullText); + $bEnableEnlarge = true; + if (array_key_exists($sClassName, $aAccelerators) && array_key_exists('enable_enlarge', $aAccelerators[$sClassName])) + { + $bEnableEnlarge = $aAccelerators[$sClassName]['enable_enlarge']; + } $sEnlargeTheSearch = <<".Dict::S('UI:Search:Enlarge').""; + } if ($oSet->Count() > 0) { $aLeafs = array(); @@ -1413,7 +1431,7 @@ EOF $oPage->add("
\n"); if (array_key_exists($sClassName, $aAccelerators)) { - $oPage->add("

".MetaModel::GetClassIcon($sClassName)." ".Dict::Format('UI:Search:Count_ObjectsOf_Class_Found', count($aLeafs), Metamodel::GetName($sClassName))." 

\n"); + $oPage->add("

".MetaModel::GetClassIcon($sClassName)." ".Dict::Format('UI:Search:Count_ObjectsOf_Class_Found', count($aLeafs), Metamodel::GetName($sClassName)).$sEnlargeButton."

\n"); } else { @@ -1434,7 +1452,7 @@ EOF { $oPage->add("
\n"); $oPage->add("
\n"); - $oPage->add("

".MetaModel::GetClassIcon($sClassName)." ".Dict::Format('UI:Search:Count_ObjectsOf_Class_Found', 0, Metamodel::GetName($sClassName))." 

\n"); + $oPage->add("

".MetaModel::GetClassIcon($sClassName)." ".Dict::Format('UI:Search:Count_ObjectsOf_Class_Found', 0, Metamodel::GetName($sClassName)).$sEnlargeButton."

\n"); $oPage->add("
\n"); $oPage->add("
\n"); $oPage->p(' '); // Some space ?