Changeset View
Changeset View
Standalone View
Standalone View
branches/5.2.x/core/units/categories/categories_event_handler.php
Show First 20 Lines • Show All 374 Lines • ▼ Show 20 Line(s) | |||||
// process "types" and "except" parameters | // process "types" and "except" parameters | ||||
$type_clauses = Array(); | $type_clauses = Array(); | ||||
$types = $event->getEventParam('types'); | $types = $event->getEventParam('types'); | ||||
$types = $types ? explode(',', $types) : Array (); | $types = $types ? explode(',', $types) : Array (); | ||||
$except_types = $event->getEventParam('except'); | $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)) { | if (in_array('related', $types) || in_array('related', $except_types)) { | ||||
$related_to = $event->getEventParam('related_to'); | $related_to = $event->getEventParam('related_to'); | ||||
if (!$related_to) { | if (!$related_to) { | ||||
$related_prefix = $event->Prefix; | $related_prefix = $event->Prefix; | ||||
} | } | ||||
else { | else { | ||||
$sql = 'SELECT Prefix | $sql = 'SELECT Prefix | ||||
FROM '.TABLE_PREFIX.'ItemTypes | FROM '.TABLE_PREFIX.'ItemTypes | ||||
WHERE ItemName = '.$this->Conn->qstr($related_to); | WHERE ItemName = '.$this->Conn->qstr($related_to); | ||||
$related_prefix = $this->Conn->GetOne($sql); | $related_prefix = $this->Conn->GetOne($sql); | ||||
} | } | ||||
$rel_table = $this->Application->getUnitOption('rel', 'TableName'); | $rel_table = $this->Application->getUnitOption('rel', 'TableName'); | ||||
$item_type = (int)$this->Application->getUnitOption($event->Prefix, 'ItemType'); | |||||
if ($item_type == 0) { | if ($item_type == 0) { | ||||
trigger_error('<strong>ItemType</strong> not defined for prefix <strong>' . $event->Prefix . '</strong>', E_USER_WARNING); | trigger_error('<strong>ItemType</strong> not defined for prefix <strong>' . $event->Prefix . '</strong>', E_USER_WARNING); | ||||
} | } | ||||
// process case, then this list is called inside another list | // process case, then this list is called inside another list | ||||
$prefix_special = $event->getEventParam('PrefixSpecial'); | $prefix_special = $event->getEventParam('PrefixSpecial'); | ||||
if (!$prefix_special) { | if (!$prefix_special) { | ||||
▲ Show 20 Lines • Show All 149 Lines • ▼ Show 20 Line(s) | |||||
$search_event = $event_mapping[$type]; | $search_event = $event_mapping[$type]; | ||||
$this->$search_event($event); | $this->$search_event($event); | ||||
/** @var kDBList $object */ | /** @var kDBList $object */ | ||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
$search_sql = ' FROM ' . $search_helper->getSearchTable() . ' search_result | $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()); | $sql = str_replace('FROM %1$s', $search_sql, $object->GetPlainSelectSQL()); | ||||
$object->SetSelectSQL($sql); | $object->SetSelectSQL($sql); | ||||
$object->addCalculatedField('Relevance', 'search_result.Relevance'); | $object->addCalculatedField('Relevance', 'search_result.Relevance'); | ||||
$type_clauses['search']['include'] = '1'; | $type_clauses['search']['include'] = '1'; | ||||
$type_clauses['search']['except'] = '0'; | $type_clauses['search']['except'] = '0'; | ||||
▲ Show 20 Lines • Show All 2659 Lines • Show Last 20 Lines |