request->get) ? $this->request->get['search_name'] : ''; $searches = new Hm_Saved_Searches($this->user_config->get('saved_searches', array())); $params = $name ? $searches->get($name, array()) : array(); $url_search = get_search_from_url($this->request); $diff = array_diff_assoc($params, $url_search); if (count($diff) > 0) { $this->out('search_param_update', true); } $this->out('search_name', $name); $this->out('search_params', $params); } } /** * @subpackage savedsearches/handler */ class Hm_Handler_saved_search_folder_data extends Hm_Handler_Module { public function process() { $this->out('saved_searches', $this->user_config->get('saved_searches', array())); } } /** * @subpackage savedsearches/handler */ class Hm_Handler_update_search extends Hm_Handler_Module { public function process() { list($success, $form) = $this->process_form(array('search_name')); if ($success) { $data = get_search_from_post($this->request); $searches = new Hm_Saved_Searches($this->user_config->get('saved_searches', array())); if ($searches->update($form['search_name'], $data)) { $this->session->record_unsaved('Updated a search'); $this->user_config->set('saved_searches', $searches->dump()); $this->session->set('user_data', $this->user_config->dump()); $this->out('updated_search', true); Hm_Msgs::add('Saved search updated'); } else { Hm_Msgs::add('ERRUnable to update the search paramaters'); } } } } /** * @subpackage savedsearches/handler */ class Hm_Handler_delete_search extends Hm_Handler_Module { public function process() { list($success, $form) = $this->process_form(array('search_name')); if ($success) { $searches = new Hm_Saved_Searches($this->user_config->get('saved_searches', array())); if ($searches->delete($form['search_name'])) { $this->session->record_unsaved('Deleted a search'); $this->user_config->set('saved_searches', $searches->dump()); $this->session->set('user_data', $this->user_config->dump()); $this->out('deleted_search', true); } } } } /** * @subpackage savedsearches/handler */ class Hm_Handler_save_search extends Hm_Handler_Module { public function process() { list($success, $form) = $this->process_form(array('search_name')); if ($success) { $data = get_search_from_post($this->request); $searches = new Hm_Saved_Searches($this->user_config->get('saved_searches', array())); if ($searches->add($form['search_name'], $data)) { $this->session->record_unsaved('Saved a search'); $this->user_config->set('saved_searches', $searches->dump()); $this->session->set('user_data', $this->user_config->dump()); $this->out('saved_search', true); } else { Hm_Msgs::add('ERRYou already have a search by that name'); } } } } /** * @subpackage savedsearches/output */ class Hm_Output_search_name_fld extends Hm_Output_Module { protected function output() { $name = $this->get('search_name', ''); return ''; } } /** * @subpackage savedsearches/output */ class Hm_Output_filter_saved_search_result extends Hm_Output_Module { protected function output() { if ($this->get('saved_search') || $this->get('updated_search') || $this->get('deleted_search')) { $this->out('saved_search_result', 1); } else { $this->out('saved_search_result', 0); } } } /** * @subpackage savedsearches/output */ class Hm_Output_update_search_icon extends Hm_Output_Module { protected function output() { if ($this->get('search_param_update')) { return ''; } } } /** * @subpackage savedsearches/output */ class Hm_Output_delete_search_icon extends Hm_Output_Module { protected function output() { $style = ''; if (!$this->get('search_name')) { $style = 'style="display: none;"'; } return ''; } } /** * @subpackage savedsearches/output */ class Hm_Output_save_search_icon extends Hm_Output_Module { protected function output() { $name = $this->get('search_name', ''); if (!$name) { return ' '; } } } /** * @subpackage savedsearches/output */ class Hm_Output_save_searches_form extends Hm_Output_Module { protected function output() { $name = $this->get('search_name', ''); if (!$name) { return '
'; } } } /** * @subpackage savedsearches/output */ class Hm_Output_search_folders extends Hm_Output_Module { protected function output() { $res = ''; $details = $this->get('saved_searches', array()); if (!empty($details)) { foreach ($details as $name => $args) { $url = sprintf('?page=search&search_terms=%s&search_fld=%s&search_since=%s&search_name=%s', $this->html_safe(urlencode($args[0])), $this->html_safe(urlencode($args[2])), $this->html_safe(urlencode($args[1])), $this->html_safe(urlencode($name)) ); $res .= '