static function computeTitle($data)
{
$title = "";
if (count($data['search']['criteria'])) {
foreach ($data['search']['criteria'] as $criteria) {
$searchopt =& self::getOptions($data['itemtype']);
$titlecontain = '';
if (strlen($criteria['value']) > 0) {
if (isset($criteria['link'])) {
$titlecontain = " " . $criteria['link'] . " ";
}
$gdname = '';
$valuename = '';
switch ($criteria['field']) {
case "all":
$titlecontain = sprintf(__('%1$s %2$s'), $titlecontain, __('All'));
break;
case "view":
$titlecontain = sprintf(__('%1$s %2$s'), $titlecontain, __('Items seen'));
break;
default:
$titlecontain = sprintf(__('%1$s %2$s'), $titlecontain, $searchopt[$criteria['field']]["name"]);
$itemtype = getItemTypeForTable($searchopt[$criteria['field']]["table"]);
$valuename = '';
if ($item = getItemForItemtype($itemtype)) {
$valuename = $item->getValueToDisplay($searchopt[$criteria['field']], $criteria['value']);
}
$gdname = Dropdown::getDropdownName($searchopt[$criteria['field']]["table"], $criteria['value']);
}
if (empty($valuename)) {
$valuename = $criteria['value'];
}
switch ($criteria['searchtype']) {
case "equals":
if (in_array($searchopt[$criteria['field']]["field"], array('name', 'completename'))) {
$titlecontain = sprintf(__('%1$s = %2$s'), $titlecontain, $gdname);
} else {
$titlecontain = sprintf(__('%1$s = %2$s'), $titlecontain, $valuename);
}
break;
case "notequals":
if (in_array($searchopt[$criteria['field']]["field"], array('name', 'completename'))) {
$titlecontain = sprintf(__('%1$s <> %2$s'), $titlecontain, $gdname);
} else {
$titlecontain = sprintf(__('%1$s <> %2$s'), $titlecontain, $valuename);
}
break;
case "lessthan":
$titlecontain = sprintf(__('%1$s < %2$s'), $titlecontain, $valuename);
break;
case "morethan":
$titlecontain = sprintf(__('%1$s > %2$s'), $titlecontain, $valuename);
break;
case "contains":
$titlecontain = sprintf(__('%1$s = %2$s'), $titlecontain, '%' . $valuename . '%');
break;
case "under":
$titlecontain = sprintf(__('%1$s %2$s'), $titlecontain, sprintf(__('%1$s %2$s'), __('under'), $gdname));
break;
case "notunder":
$titlecontain = sprintf(__('%1$s %2$s'), $titlecontain, sprintf(__('%1$s %2$s'), __('not under'), $gdname));
break;
default:
$titlecontain = sprintf(__('%1$s = %2$s'), $titlecontain, $valuename);
break;
}
}
$title .= $titlecontain;
}
}
if (count($data['search']['metacriteria'])) {
$metanames = array();
foreach ($data['search']['metacriteria'] as $metacriteria) {
$searchopt =& self::getOptions($metacriteria['itemtype']);
if (!isset($metanames[$metacriteria['itemtype']])) {
if ($metaitem = getItemForItemtype($metacriteria['itemtype'])) {
$metanames[$metacriteria['itemtype']] = $metaitem->getTypeName();
}
}
$titlecontain2 = '';
if (strlen($metacriteria['value']) > 0) {
if (isset($metacriteria['link'])) {
$titlecontain2 = sprintf(__('%1$s %2$s'), $titlecontain2, $metacriteria['link']);
}
$titlecontain2 = sprintf(__('%1$s %2$s'), $titlecontain2, sprintf(__('%1$s / %2$s'), $metanames[$metacriteria['itemtype']], $searchopt[$metacriteria['field']]["name"]));
$gdname2 = Dropdown::getDropdownName($searchopt[$metacriteria['field']]["table"], $metacriteria['value']);
switch ($metacriteria['searchtype']) {
case "equals":
if (in_array($searchopt[$metacriteria['link']]["field"], array('name', 'completename'))) {
$titlecontain2 = sprintf(__('%1$s = %2$s'), $titlecontain2, $gdname2);
} else {
$titlecontain2 = sprintf(__('%1$s = %2$s'), $titlecontain2, $metacriteria['value']);
}
break;
case "notequals":
if (in_array($searchopt[$metacriteria['link']]["field"], array('name', 'completename'))) {
$titlecontain2 = sprintf(__('%1$s <> %2$s'), $titlecontain2, $gdname2);
} else {
$titlecontain2 = sprintf(__('%1$s <> %2$s'), $titlecontain2, $metacriteria['value']);
}
break;
case "lessthan":
$titlecontain2 = sprintf(__('%1$s < %2$s'), $titlecontain2, $metacriteria['value']);
break;
case "morethan":
$titlecontain2 = sprintf(__('%1$s > %2$s'), $titlecontain2, $metacriteria['value']);
break;
case "contains":
$titlecontain2 = sprintf(__('%1$s = %2$s'), $titlecontain2, '%' . $metacriteria['value'] . '%');
break;
case "under":
$titlecontain2 = sprintf(__('%1$s %2$s'), $titlecontain2, sprintf(__('%1$s %2$s'), __('under'), $gdname2));
break;
case "notunder":
$titlecontain2 = sprintf(__('%1$s %2$s'), $titlecontain2, sprintf(__('%1$s %2$s'), __('not under'), $gdname2));
break;
default:
$titlecontain2 = sprintf(__('%1$s = %2$s'), $titlecontain2, $metacriteria['value']);
break;
}
}
$title .= $titlecontain2;
}
}
return $title;
}