Page MenuHomeIn-Portal Phabricator

D342.diff
No OneTemporary

File Metadata

Created
Wed, Apr 30, 7:30 AM

D342.diff

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