Index: trunk/kernel/searchaction.php =================================================================== diff -u -N -r724 -r836 --- trunk/kernel/searchaction.php (.../searchaction.php) (revision 724) +++ trunk/kernel/searchaction.php (.../searchaction.php) (revision 836) @@ -35,6 +35,19 @@ $objSession->SetVariable("UserSearchWord",""); $objSession->SetVariable("Page_Userlist",1); break; + + case "m_usergroup_search": /* user list */ + $searchlist = trim($objSession->GetVariable("UserGroupSearchWord")); + if(strlen($searchlist)>0) + $searchlist = ","; + $searchlist = $_POST["list_search"]; + $objSession->SetVariable("UserGroupSearchWord",$searchlist); + $objSession->SetVariable("Page_Userlist",1); + break; + case "m_usergroup_search_reset": /*user list */ + $objSession->SetVariable("UserGroupSearchWord",""); + $objSession->SetVariable("Page_Userlist",1); + break; case "m_summary_search": /* summary list */ $searchlist = trim($objSession->GetVariable("UserSearchWord")); @@ -208,5 +221,29 @@ $objSession->SetVariable("EmailsLSearchWord",""); $objSession->SetVariable("Page_EmailsL",1); break; + + case 'm_searchword_search': + $searchlist = trim( $objSession->GetVariable("KeywordSearchWord") ); + if(strlen($searchlist) > 0) $searchlist = ","; + $searchlist = $_POST["list_search"]; + $objSession->SetVariable("KeywordSearchWord",$searchlist); + $objSession->SetVariable("Page_SearchLog",1); + break; + case 'm_searchword_search_reset': + $objSession->SetVariable("KeywordSearchWord",""); + $objSession->SetVariable("Page_SearchLog",1); + break; + + case 'm_session_search': + $searchlist = trim( $objSession->GetVariable("SessionSearchWord") ); + if(strlen($searchlist) > 0) $searchlist = ","; + $searchlist = $_POST["list_search"]; + $objSession->SetVariable("SessionSearchWord",$searchlist); + $objSession->SetVariable("Page_Sessionlist",1); + break; + case 'm_session_search_reset': + $objSession->SetVariable("SessionSearchWord",""); + $objSession->SetVariable("Page_Sessionlist",1); + break; } ?> Index: trunk/tools/debug_sample.php =================================================================== diff -u -N -r821 -r836 --- trunk/tools/debug_sample.php (.../debug_sample.php) (revision 821) +++ trunk/tools/debug_sample.php (.../debug_sample.php) (revision 836) @@ -31,6 +31,9 @@ define('DEBUG_MODE', 1); // global debugging define('DEBUG_ACTIONS', KERNEL_ACTIONS + SHOW_REQUEST + FRONT_KERNEL_ACTIONS + FRONT_SHOW_REQUEST); //define('DEBUG_HELP', 1); // allow to add missing help + + // For local license testing + define('GET_LICENSE_URL', 'http://maris.prod.intechnic.lv/in-business/license.php'); if( defined('DEBUG_MODE') && constant('DEBUG_MODE') == 1 ) { Index: trunk/admin/logs/searchlog.php =================================================================== diff -u -N -r822 -r836 --- trunk/admin/logs/searchlog.php (.../searchlog.php) (revision 822) +++ trunk/admin/logs/searchlog.php (.../searchlog.php) (revision 836) @@ -140,7 +140,7 @@ $SearchWords = $objSession->GetVariable("KeywordSearchWord"); if(strlen($SearchWords)) { - $where = $objSearchWords->AdminSearchWhereClause($SearchWords); + $where = $objSearchList->AdminSearchWhereClause($SearchWords); } else $where = ""; Index: trunk/admin/users/adduser_items.php =================================================================== diff -u -N -r822 -r836 --- trunk/admin/users/adduser_items.php (.../adduser_items.php) (revision 822) +++ trunk/admin/users/adduser_items.php (.../adduser_items.php) (revision 836) @@ -107,9 +107,6 @@ $itemcount=$objEditItems->NumItems(); $c = $objEditItems->GetItemByIndex($en); -$objImageList = new clsImageList(); -$objImageList->Query_Images("ResourceId=".$c->Get("ResourceId"),""); - if($itemcount>1) { if ($en+1 == $itemcount) @@ -161,7 +158,8 @@ $filter = false; // always initialize variables before use -if ($UserView != $Bit_All) { + +if ($ItemView != $Bit_All) { $filter = true; } Index: trunk/kernel/frontaction.php =================================================================== diff -u -N -r827 -r836 --- trunk/kernel/frontaction.php (.../frontaction.php) (revision 827) +++ trunk/kernel/frontaction.php (.../frontaction.php) (revision 836) @@ -767,26 +767,58 @@ $keywords = $_POST["keywords"]; $type = $objItemTypes->GetTypeByName("Category"); $objSearch = new clsSearchResults("Category","clsCategory"); + $length = $objConfig->Get('Search_MinKeyword_Length'); if(strlen($keywords)) - { - $objSearchList = new clsSearchLogList(); - $objSearchList->UpdateKeyword($keywords,0); + { + $performSearch = false; + $isExact = (substr($keywords, 0, 1) == '"' && substr($keywords, strlen($keywords) - 1, 1) == '"'); - $objSearch->SetKeywords($keywords); - $objSearch->AddSimpleFields(); - if(is_numeric($objConfig->Get("SearchRel_Pop_category"))) - $objSearch->PctPop = ($objConfig->Get("SearchRel_Pop_category")/100); - if(is_numeric($objConfig->Get("SearchRel_Keyword_category"))) - $objSearch->PctRelevance = ($objConfig->Get("SearchRel_Keyword_category")/100); - if(is_numeric($objConfig->Get("SearchRel_Rating_article"))) - $objSearch->PctRating = ($objConfig->Get("SearchRel_Rating_category")/100); - - //echo "Searching On $keywords
\n"; - $objSearch->PerformSearch(1,$SortOrder,TRUE); - $SearchPerformed = TRUE; - //$objSearch->SetRelevence($type->Get("ItemType"), "CategoryId"); - //echo "Finished Setting Category Relevence
\n"; + if ($isExact) { + $performSearch = (strlen(trim(str_replace('"', '', $keywords))) >= $length); + } + else { + $key_arr = explode(' ', $keywords); + + foreach($key_arr as $value) { + if (strlen($value) < $length) { + $keywords = str_replace(' '.$value, '', $keywords); + $keywords = str_replace($value.' ', '', $keywords); + } + } + + $keywords = str_replace(' ', ' ', $keywords); + + $performSearch = (strlen($keywords) >= $length); + } + + if ($performSearch) { + $objSearchList = new clsSearchLogList(); + $objSearchList->UpdateKeyword($keywords,0); + + $objSearch->SetKeywords($keywords); + $objSearch->AddSimpleFields(); + if(is_numeric($objConfig->Get("SearchRel_Pop_category"))) + $objSearch->PctPop = ($objConfig->Get("SearchRel_Pop_category")/100); + if(is_numeric($objConfig->Get("SearchRel_Keyword_category"))) + $objSearch->PctRelevance = ($objConfig->Get("SearchRel_Keyword_category")/100); + if(is_numeric($objConfig->Get("SearchRel_Rating_article"))) + $objSearch->PctRating = ($objConfig->Get("SearchRel_Rating_category")/100); + + //echo "Searching On $keywords
\n"; + $objSearch->PerformSearch(1,$SortOrder,TRUE); + $SearchPerformed = TRUE; + //$objSearch->SetRelevence($type->Get("ItemType"), "CategoryId"); + //echo "Finished Setting Category Relevence
\n"; + } + else { + if(strlen($_GET["Error"])>0) + $var_list["t"] = $_GET["Error"]; + + $MissingCount = SetMissingDataErrors("m_simplesearch"); + $MissingCount++; + $FormError["m_simplesearch"]["keywords"] = language("lu_keywords_tooshort"); + } } else { @@ -853,8 +885,32 @@ $keywords = $_POST["keywords"]; $type = $objItemTypes->GetTypeByName("Category"); $objSearch = new clsSearchResults("Category","clsCategory"); + $length = $objConfig->Get('Search_MinKeyword_Length'); + if(strlen($keywords)) - { + { + $performSearch = false; + $isExact = (substr($keywords, 0, 1) == '"' && substr($keywords, strlen($keywords) - 1, 1) == '"'); + + if ($isExact) { + $performSearch = (strlen(trim(str_replace('"', '', $keywords))) >= $length); + } + else { + $key_arr = explode(' ', $keywords); + + foreach($key_arr as $value) { + if (strlen($value) < $length) { + $keywords = str_replace(' '.$value, '', $keywords); + $keywords = str_replace($value.' ', '', $keywords); + } + } + + $keywords = str_replace(' ', ' ', $keywords); + + $performSearch = (strlen($keywords) >= $length); + } + + if ($performSearch) { $objSearchList = new clsSearchLogList(); $objSearchList->UpdateKeyword($keywords,0); @@ -874,6 +930,12 @@ //$objSearch->SetRelevence($type->Get("ItemType"), "CategoryId"); } $SearchPerformed = TRUE; + } + else { + $MissingCount = SetMissingDataErrors("m_simplesearch"); + $MissingCount++; + $FormError["m_simplesearch"]["keywords"] = language("lu_keywords_tooshort"); + } } else { $MissingCount = SetMissingDataErrors("m_simplesearch"); Index: trunk/admin/install/upgrades/inportal_upgrade_v1.0.10.sql =================================================================== diff -u -N -r811 -r836 --- trunk/admin/install/upgrades/inportal_upgrade_v1.0.10.sql (.../inportal_upgrade_v1.0.10.sql) (revision 811) +++ trunk/admin/install/upgrades/inportal_upgrade_v1.0.10.sql (.../inportal_upgrade_v1.0.10.sql) (revision 836) @@ -1,5 +1,8 @@ -ALTER TABLE Category DROP INDEX ResourceId, ADD UNIQUE ResourceId (ResourceId); -ALTER TABLE PortalGroup DROP INDEX ResourceId, ADD UNIQUE ResourceId (ResourceId); -ALTER TABLE PortalUser DROP INDEX ResourceId, ADD UNIQUE ResourceId (ResourceId); - +ALTER TABLE Category DROP INDEX ResourceId, ADD UNIQUE ResourceId (ResourceId); +ALTER TABLE PortalGroup DROP INDEX ResourceId, ADD UNIQUE ResourceId (ResourceId); +ALTER TABLE PortalUser DROP INDEX ResourceId, ADD UNIQUE ResourceId (ResourceId); + +INSERT INTO ConfigurationValues VALUES ('Search_MinKeyword_Length', '3', 'In-Portal', ''); + + UPDATE Modules SET Version = '1.0.10' WHERE Name = 'In-Portal'; \ No newline at end of file Index: trunk/admin/install/inportal_data.sql =================================================================== diff -u -N -r796 -r836 --- trunk/admin/install/inportal_data.sql (.../inportal_data.sql) (revision 796) +++ trunk/admin/install/inportal_data.sql (.../inportal_data.sql) (revision 836) @@ -151,6 +151,7 @@ INSERT INTO ConfigurationValues VALUES ('EmailsL_SortField', 'time_sent', 'In-Portal', ''); INSERT INTO ConfigurationValues VALUES ('Perpage_EmailsL', '20', 'In-Portal', ''); INSERT INTO ConfigurationValues VALUES ('Perpage_CustomData', '20', 'In-Portal', ''); +INSERT INTO ConfigurationValues VALUES ('Search_MinKeyword_Length', '3', 'In-Portal', ''); INSERT INTO Events VALUES (30, 'USER.ADD', 1, 0, 'In-Portal:Users', 'la_event_user.add', 0) INSERT INTO Events VALUES (32, 'USER.ADD', 2, 0, 'In-Portal:Users', 'la_event_user.add', 1) Index: trunk/kernel/include/itemdb.php =================================================================== diff -u -N -r826 -r836 --- trunk/kernel/include/itemdb.php (.../itemdb.php) (revision 826) +++ trunk/kernel/include/itemdb.php (.../itemdb.php) (revision 836) @@ -162,8 +162,9 @@ $var = "m_" . $name[$i]; if( !$this->HasField($name[$i]) || ($this->Data[$name[$i]] != $value[$i])) { + $this->DetectChanges($name[$i], $value[$i]); $this->Data[$name[$i]] = $value[$i]; - $this->m_dirtyFieldsMap[$name[$i]] = $value[$i]; + $this->m_dirtyFieldsMap[$name[$i]] = $value[$i]; } } } @@ -172,6 +173,7 @@ $var = "m_" . $name; if( !$this->HasField($name) || $this->Data[$name] != $value ) { + $this->DetectChanges($name, $value); $this->Data[$name] = $value; $this->m_dirtyFieldsMap[$name] = $value; } @@ -270,8 +272,6 @@ $sql = "UPDATE ".$this->tablename ." SET "; $first = 1; - $this->DetectChanges(); - foreach ($this->m_dirtyFieldsMap as $key => $value) { if(!is_numeric($key) && $key != $this->IdField() && $key!='ResourceId') @@ -374,17 +374,17 @@ return $sql; } - function DetectChanges() + function DetectChanges($name, $value) { global $objSession; -//print_pre($this->m_dirtyFieldsMap); - foreach ($this->m_dirtyFieldsMap as $key => $value) { - //if ($this->Data[$key] != $this->m_dirtyFieldsMap[$key]) { - if ((!strstr($key, 'Modif') && $key != 'CreatedOn')) { - $objSession->SetVariable("HasChanges", 1); - } - //} - } + //print_pre($_POST); + //echo "$name: $value
"; + if ($this->Data[$name] != $value && !strstr($name, 'Modif') && !strstr($name, 'Created')) { + //echo "$name Modified ".$this->Data[$name]." $value
"; + if (!strstr($name, 'Hot') && !strstr($name, 'Pop')) { + $objSession->SetVariable("HasChanges", 1); + } + } } function Create() @@ -409,7 +409,6 @@ $this->SetUniqueId($this->adodbConnection->Insert_ID()); - $this->DetectChanges(); /*if ($this->adodbConnection->Affected_Rows() > 0) { $objSession->SetVariable("HasChanges", 1); } */