/** * Search plugin main function **/ public function search($args) { if (!SecurityUtil::checkPermission('Feeds::', '::', ACCESS_READ)) { return true; } ModUtil::dbInfoLoad('Search'); $pntable = DBUtil::getTables(); $feedscolumn = $pntable['feeds_column']; $searchTable = $pntable['search_result']; $searchColumn = $pntable['search_result_column']; $where = search_construct_where($args, array($feedscolumn['name']), null); $sessionId = session_id(); // define the permission filter to apply $permFilter = array(array('realm' => 0, 'component_left' => 'Feeds', 'instance_left' => 'fid', 'instance_right' => '', 'level' => ACCESS_READ)); // get the result set $objArray = DBUtil::selectObjectArray('feeds', $where, 'fid', 1, -1, '', $permFilter); if ($objArray === false) { return LogUtil::registerError($this->__('Error! Could not load items.')); } $insertSql = "INSERT INTO $searchTable ($searchColumn[title], $searchColumn[text], $searchColumn[extra], $searchColumn[created], $searchColumn[module], $searchColumn[session]) VALUES "; // Process the result set and insert into search result table foreach ($objArray as $obj) { $sql = $insertSql . '(' . '\'' . DataUtil::formatForStore($obj['name']) . '\', ' . '\'' . '\', ' . '\'' . DataUtil::formatForStore($obj['fid']) . '\', ' . '\'' . DataUtil::formatForStore($obj['cr_date']) . '\', ' . '\'' . 'Feeds' . '\', ' . '\'' . DataUtil::formatForStore($sessionId) . '\')'; $insertResult = DBUtil::executeSQL($sql); if (!$insertResult) { return LogUtil::registerError(__('Error! Could not load items.', $dom)); } } return true; }
/** * Get all admin messages items that match the criteria * * @author Mark West, Jorn Wildt * @param bool args['activeonly'] only show active items * @return bool true/false on success/failure */ function Admin_Messages_searchapi_search($args) { $dom = ZLanguage::getModuleDomain('Admin_Messages'); // Security check if (!SecurityUtil::checkPermission('Admin_Messages::', '::', ACCESS_READ)) { return true; } // get the db and table info ModUtil::dbInfoLoad('Search'); $pntable = DBUtil::getTables(); $messagestable = $pntable['message']; $messagescolumn = $pntable['message_column']; $searchTable =& $pntable['search_result']; $searchColumn =& $pntable['search_result_column']; // form the where clause $where = ''; if (!ModUtil::getVar('Admin_Messages', 'allowsearchinactive') || isset($args['activeonly']) && (bool) $args['activeonly']) { $where .= " {$messagescolumn['active']} = 1 AND "; } $where .= " ({$messagescolumn['date']}+{$messagescolumn['expire']} > '" . time() . "' OR {$messagescolumn['expire']} = 0) AND"; $where .= search_construct_where($args, array($messagescolumn['title'], $messagescolumn['content']), $messagescolumn['language']); $sessionId = session_id(); $sql = "\nSELECT\n {$messagescolumn['mid']} as mid,\n {$messagescolumn['title']} as title,\n {$messagescolumn['content']} as text,\n {$messagescolumn['date']} as date\nFROM {$messagestable}\nWHERE {$where}"; $result = DBUtil::executeSQL($sql); if (!$result) { return LogUtil::registerError(__('Error! Could not load data.')); } $insertSql = "INSERT INTO {$searchTable}\n ({$searchColumn['title']},\n {$searchColumn['text']},\n {$searchColumn['module']},\n {$searchColumn['created']},\n {$searchColumn['session']})\nVALUES "; // Process the result set and insert into search result table for (; !$result->EOF; $result->MoveNext()) { $message = $result->GetRowAssoc(2); if (SecurityUtil::checkPermission('Admin_Messages::', "{$message['title']}::{$message['mid']}", ACCESS_READ)) { $sql = $insertSql . '(' . '\'' . DataUtil::formatForStore($message['title']) . '\', ' . '\'' . DataUtil::formatForStore($message['text']) . '\', ' . '\'' . 'Admin_Messages' . '\', ' . '\'' . DataUtil::formatForStore(DateUtil::getDatetime($message['date'])) . '\', ' . '\'' . DataUtil::formatForStore($sessionId) . '\')'; $insertResult = DBUtil::executeSQL($sql); if (!$insertResult) { return LogUtil::registerError(__('Error! Could not load data.', $dom)); } } } return true; }
function mediashare_searchapi_search($args) { $dom = ZLanguage::getModuleDomain('mediashare'); pnModDBInfoLoad('mediashare'); pnModDBInfoLoad('Search'); $pntable = pnDBGetTables(); $mediaTable = $pntable['mediashare_media']; $mediaColumn = $pntable['mediashare_media_column']; $albumsTable = $pntable['mediashare_albums']; $albumsColumn = $pntable['mediashare_albums_column']; $searchTable = $pntable['search_result']; $searchColumn = $pntable['search_result_column']; $sessionId = session_id(); // Find accessible albums $accessibleAlbumSql = pnModAPIFunc('mediashare', 'user', 'getAccessibleAlbumsSql', array('access' => mediashareAccessRequirementViewSomething, 'field' => "media.{$mediaColumn['parentAlbumId']}")); $albumText = __('Multimedia file in album: ', $dom); $sql = "\nINSERT INTO {$searchTable}\n ({$searchColumn['title']},\n {$searchColumn['text']},\n {$searchColumn['module']},\n {$searchColumn['extra']},\n {$searchColumn['created']},\n {$searchColumn['session']})\nSELECT CONCAT(media.{$mediaColumn['title']}, ' [{$albumText}', album.{$albumsColumn['title']}, ']'),\n media.{$mediaColumn['description']},\n 'mediashare',\n CONCAT(album.{$albumsColumn['id']}, ':', media.{$mediaColumn['id']}),\n media.{$mediaColumn['createdDate']},\n '{$sessionId}'\nFROM {$mediaTable} media\nINNER JOIN {$albumsTable} album\n ON album.{$albumsColumn['id']} = media.{$mediaColumn['parentAlbumId']}\nWHERE ({$accessibleAlbumSql}) AND "; $sql .= search_construct_where($args, array("media.{$mediaColumn['title']}", "media.{$mediaColumn['description']}", "media.{$mediaColumn['keywords']}")); $dbresult = DBUtil::executeSQL($sql); if (!$dbresult) { return LogUtil::registerError(__('Error! Could not load items.', $dom)); } return true; }
/** * Search plugin main function **/ public function search($args) { // Permission check $this->throwForbiddenUnless(SecurityUtil::checkPermission('AddressBook::', '::', ACCESS_READ), LogUtil::getErrorMsgPermission()); ModUtil::dbInfoLoad('Search'); $ztable = DBUtil::getTables(); $addresstable = $ztable['addressbook_address']; $addresscolumn = $ztable['addressbook_address_column']; $searchTable = $ztable['search_result']; $searchColumn = $ztable['search_result_column']; $searchcols = array($addresscolumn['lname'], $addresscolumn['fname'], $addresscolumn['company'], $addresscolumn['city'], $addresscolumn['zip'], $addresscolumn['address1'], $addresscolumn['address2'], $addresscolumn['state'], $addresscolumn['country'], $addresscolumn['contact_1'], $addresscolumn['contact_2'], $addresscolumn['contact_3'], $addresscolumn['contact_4'], $addresscolumn['contact_5']); $cusfields = DBUtil::selectFieldArray('addressbook_customfields', 'id'); // Get user id if (UserUtil::isLoggedIn()) { $user_id = UserUtil::getVar('uid'); } else { $user_id = 0; } for ($i = 0; $i < count($cusfields); $i++) { $colname = 'custom_' . $cusfields[$i]; array_push($searchcols, $addresscolumn[$colname]); } $where = search_construct_where($args, $searchcols); // admin always sees all records but favorites if (SecurityUtil::checkPermission('AddressBook::', '::', ACCESS_ADMIN)) { $where .= " AND ({$addresscolumn['user_id']} IS NOT NULL)"; } else { // global protect - users see only their own records (admin sees all) if (ModUtil::getVar('AddressBook', 'globalprotect') == 1 && !SecurityUtil::checkPermission('AddressBook::', '::', ACCESS_ADMIN)) { $where .= " AND ({$addresscolumn['user_id']}={$user_id})"; } else { // if private = 1, show only private records if ($private == 1) { $where .= " AND ({$addresscolumn['user_id']}={$user_id} AND {$addresscolumn['private']} = 1)"; } else { // if private = 0, show all records $where .= " AND (({$addresscolumn['private']} = 0) OR ({$addresscolumn['user_id']}={$user_id} AND {$addresscolumn['private']} = 1))"; } } } $sessionId = session_id(); $insertSql = "INSERT INTO {$searchTable}\n ({$searchColumn['title']},\n {$searchColumn['text']},\n {$searchColumn['extra']},\n {$searchColumn['module']},\n {$searchColumn['created']},\n {$searchColumn['session']})\n VALUES "; ModUtil::loadApi('AddressBook', 'user'); if (ModUtil::getVar('AddressBook', 'addressbooktype') == 1) { $sort = "sortname DESC,sortcompany DESC"; } else { $sort = "sortcompany DESC,sortname DESC"; } $permChecker = new addressbook_result_checker(); //$addresses = DBUtil::selectObjectArray('addressbook_address', $where, null, null, '', $permChecker, null); $addresses = DBUtil::selectObjectArrayFilter('addressbook_address', $where, null, null, null, '', $permChecker, null); foreach ($addresses as $address) { $line_1 = $address['fname'] . " " . $address['lname']; if (empty($line_1)) { $line_1 = $address['company']; } else { if (!empty($address['company'])) { $line_1 .= " [" . $address['company'] . "]"; } } if (ModUtil::getVar('AddressBook', 'zipbeforecity') == 1) { $line_2 = $address['zip'] . " " . $address['city']; } else { $line_2 = $address['city'] . " " . $address['zip']; } $sql = $insertSql . '(' . '\'' . DataUtil::formatForStore($line_1) . '\', ' . '\'' . DataUtil::formatForStore($line_2) . '\', ' . '\'' . DataUtil::formatForStore($address['id']) . '\', ' . '\'' . 'AddressBook' . '\', ' . '\'' . DataUtil::formatForStore($address['cr_date']) . '\', ' . '\'' . DataUtil::formatForStore($sessionId) . '\')'; $insertResult = DBUtil::executeSQL($sql); if (!$insertResult) { return LogUtil::registerError($this->__('Error! Could not load addresses.')); } } return true; }