Search::computeTitle PHP Method

computeTitle() static public method

Compute title (use case of PDF OUTPUT)
static public computeTitle ( $data ) : string
$data array data of search
return string title
    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;
    }