Example #1
0
                $projectLinks = array();
                foreach ($dws as $ws) {
                    $projectLinks[] = $ws->getId();
                    echo '<span style="padding-right:5px"><span class="project-replace">' . implode(',', $projectLinks) . '</span></span>';
                }
            }
            if ($search_result["manager"] == 'Projects') {
                ?>
			<span class="project-replace" onclick="Ext.getCmp('tabs-panel').setActiveTab('overview-panel')"><?php 
                echo $object->getId();
                ?>
</span>
		<?php 
            } else {
                $object_name = $object->getObjectName();
                $context_on_name = SearchableObjects::getContext($object_name, $search_string);
                if ($context_on_name != '') {
                    $object_name = $context_on_name;
                } else {
                    $object_name = clean($object_name);
                }
                if ($object instanceof MailContent && $object->getHasAttachments()) {
                    $linkIcon = 'link-ico ico-attachment';
                } else {
                    $linkIcon = '';
                }
                ?>
			<a class="<?php 
                echo $linkIcon;
                ?>
" href="<?php 
 /**
  * Do the search
  *
  * @param string $conditions
  * @param integer $limit
  * @param integer $offset
  * @return array
  */
 function doSearch($conditions, $limit = null, $offset = null, $search_for = '')
 {
     $table_name = SearchableObjects::instance()->getTableName(true);
     //$tags_table_name = Tags::instance()->getTableName();
     $limit_string = '';
     if ((int) $limit > 0) {
         $offset = (int) $offset > 0 ? (int) $offset : 0;
         $limit_string = " LIMIT {$offset}, {$limit}";
     }
     // if
     $where = '';
     if (trim($conditions) != '') {
         $where = "WHERE {$conditions}";
     }
     $sql = "SELECT distinct `rel_object_manager`, `rel_object_id` FROM {$table_name} {$where} ORDER BY `rel_object_id` DESC {$limit_string}";
     $result = DB::executeAll($sql);
     if (!is_array($result)) {
         return null;
     }
     $new_where = "'1' = '2' ";
     foreach ($result as $row) {
         $manager_class = array_var($row, 'rel_object_manager');
         $object_id = array_var($row, 'rel_object_id');
         $new_where .= " OR (rel_object_manager = '" . $manager_class . "' AND rel_object_id = '" . $object_id . "')";
     }
     $new_where = " AND (" . $new_where . ')';
     $sql = "SELECT `rel_object_manager`, `rel_object_id`, `column_name`, `content` FROM {$table_name} {$where} {$new_where} ORDER BY `rel_object_id`";
     $result = DB::executeAll($sql);
     if (!is_array($result)) {
         return null;
     }
     $loaded = array();
     $objects = array();
     foreach ($result as $row) {
         $manager_class = array_var($row, 'rel_object_manager');
         $object_id = array_var($row, 'rel_object_id');
         if (!isset($loaded[$manager_class . '-' . $object_id])) {
             if (class_exists($manager_class)) {
                 $object = get_object_by_manager_and_id($object_id, $manager_class);
                 if ($object instanceof ApplicationDataObject) {
                     $objects[] = array('object' => $object, 'context' => array(array('context' => SearchableObjects::getContext(array_var($row, 'content'), $search_for), 'column_name' => array_var($row, 'column_name'))));
                     $loaded[$manager_class . '-' . $object_id] = count($objects) - 1;
                 }
                 // if
             }
             // if
         } else {
             $objects[$loaded[$manager_class . '-' . $object_id]]['context'][] = array('context' => SearchableObjects::getContext(array_var($row, 'content'), $search_for), 'column_name' => array_var($row, 'column_name'));
         }
         // if
     }
     // foreach
     return count($objects) ? $objects : null;
 }