Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F860087
D342.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Apr 30, 7:30 AM
Size
2 KB
Mime Type
text/x-diff
Expires
Thu, May 1, 7:30 AM (20 h, 14 m)
Engine
blob
Format
Raw Data
Handle
611785
Attached To
D342: INP-1742 Apply "ItemType" filter in JOIN to Search Results table
D342.diff
View Options
Index: branches/5.2.x/core/kernel/db/cat_event_handler.php
===================================================================
--- branches/5.2.x/core/kernel/db/cat_event_handler.php
+++ branches/5.2.x/core/kernel/db/cat_event_handler.php
@@ -422,6 +422,7 @@
$type_clauses['displayed']['except'] = '';
}
$type_clauses['displayed']['having_filter'] = false;
+ $item_type = (int)$this->Application->getUnitOption($event->Prefix, 'ItemType');
if (in_array('search', $types) || in_array('search', $except_types)) {
$event_mapping = Array (
@@ -449,7 +450,9 @@
$search_helper = $this->Application->recallObject('SearchHelper');
$search_sql = ' FROM ' . $search_helper->getSearchTable() . ' search_result
- JOIN %1$s ON %1$s.ResourceId = search_result.ResourceId';
+ JOIN %1$s
+ ON %1$s.ResourceId = search_result.ResourceId
+ AND search_result.ItemType = ' . $item_type;
$sql = str_replace('FROM %1$s', $search_sql, $object->GetPlainSelectSQL());
$object->SetSelectSQL($sql);
@@ -475,7 +478,6 @@
}
$rel_table = $this->Application->getUnitOption('rel', 'TableName');
- $item_type = (int)$this->Application->getUnitOption($event->Prefix, 'ItemType');
if ($item_type == 0) {
trigger_error('<strong>ItemType</strong> not defined for prefix <strong>' . $event->Prefix . '</strong>', E_USER_WARNING);
Index: branches/5.2.x/core/units/categories/categories_event_handler.php
===================================================================
--- branches/5.2.x/core/units/categories/categories_event_handler.php
+++ branches/5.2.x/core/units/categories/categories_event_handler.php
@@ -380,7 +380,8 @@
$types = $types ? explode(',', $types) : Array ();
$except_types = $event->getEventParam('except');
- $except_types = $except_types ? explode(',', $except_types) : Array ();
+ $except_types = $except_types ? explode(',', $except_types) : array();
+ $item_type = (int)$this->Application->getUnitOption($event->Prefix, 'ItemType');
if (in_array('related', $types) || in_array('related', $except_types)) {
$related_to = $event->getEventParam('related_to');
@@ -395,7 +396,6 @@
}
$rel_table = $this->Application->getUnitOption('rel', 'TableName');
- $item_type = (int)$this->Application->getUnitOption($event->Prefix, 'ItemType');
if ($item_type == 0) {
trigger_error('<strong>ItemType</strong> not defined for prefix <strong>' . $event->Prefix . '</strong>', E_USER_WARNING);
@@ -561,7 +561,9 @@
$object = $event->getObject();
$search_sql = ' FROM ' . $search_helper->getSearchTable() . ' search_result
- JOIN %1$s ON %1$s.ResourceId = search_result.ResourceId';
+ JOIN %1$s
+ ON %1$s.ResourceId = search_result.ResourceId
+ AND search_result.ItemType = ' . $item_type;
$sql = str_replace('FROM %1$s', $search_sql, $object->GetPlainSelectSQL());
$object->SetSelectSQL($sql);
Event Timeline
Log In to Comment