function getObjectsByTitle($sid, $a_title, $user_id) { $this->initAuth($sid); $this->initIlias(); if (!$this->__checkSession($sid)) { return $this->__raiseError($this->__getMessage(), $this->__getMessageCode()); } if (!strlen($a_title)) { return $this->__raiseError('No valid query string given.', 'Client'); } include_once './Services/Search/classes/class.ilQueryParser.php'; $query_parser =& new ilQueryParser($a_title); $query_parser->setMinWordLength(0, true); $query_parser->setCombination(QP_COMBINATION_AND); $query_parser->parse(); if (!$query_parser->validate()) { return $this->__raiseError($query_parser->getMessage(), 'Client'); } include_once './Services/Search/classes/class.ilObjectSearchFactory.php'; include_once 'Services/Search/classes/Like/class.ilLikeObjectSearch.php'; $object_search = new ilLikeObjectSearch($query_parser); #$object_search =& ilObjectSearchFactory::_getObjectSearchInstance($query_parser); $object_search->setFields(array('title')); $object_search->appendToFilter('role'); $object_search->appendToFilter('rolt'); $res =& $object_search->performSearch(); if ($user_id) { $res->setUserId($user_id); } $res->filter(ROOT_FOLDER_ID, true); $objs = array(); foreach ($res->getUniqueResults() as $entry) { if ($entry['type'] == 'role' or $entry['type'] == 'rolt') { if ($tmp = ilObjectFactory::getInstanceByObjId($entry['obj_id'], false)) { $objs[] = $tmp; } continue; } if ($tmp = ilObjectFactory::getInstanceByRefId($entry['ref_id'], false)) { $objs[] = $tmp; } } if (!count($objs)) { return ''; } include_once './webservice/soap/classes/class.ilObjectXMLWriter.php'; $xml_writer = new ilObjectXMLWriter(); $xml_writer->enablePermissionCheck(true); if ($user_id) { $xml_writer->setUserId($user_id); $xml_writer->enableOperations(true); } $xml_writer->setObjects($objs); if ($xml_writer->start()) { return $xml_writer->getXML(); } return $this->__raiseError('Cannot create object xml !', 'Server'); }