case 'delete_search_query':
$queryid = Horde_Util::getFormData('queryid');
if (!empty($queryid)) {
+ $imp_search = $injector->getInstance('IMP_Search');
$notification->push(sprintf(_("Deleted Virtual Folder \"%s\"."), $imp_search->getLabel($queryid)), 'horde.success');
$imp_search->deleteSearchQuery($queryid);
}
foreach ($raw_rows as $key => $val) {
$val['nocheckbox'] = !empty($val['vfolder']);
if (!empty($val['vfolder']) && $val['editvfolder']) {
+ $imp_search = $injector->getInstance('IMP_Search');
$val['delvfolder'] = Horde::link($imp_search->deleteUrl($val['value']), _("Delete Virtual Folder")) . _("Delete") . '</a>';
$val['editvfolder'] = Horde::link($imp_search->editUrl($val['value']), _("Edit Virtual Folder")) . _("Edit") . '</a>';
}
$imptree = $GLOBALS['injector']->getInstance('IMP_Imap_Tree');
$imptree->eltDiffStart();
- if ($GLOBALS['imp_search']->isEditableVFolder($this->_vars->mbox)) {
- $GLOBALS['notification']->push(sprintf(_("Deleted Virtual Folder \"%s\"."), $GLOBALS['imp_search']->getLabel($this->_vars->mbox)), 'horde.success');
- $GLOBALS['imp_search']->deleteSearchQuery($this->_vars->mbox);
+ $imp_search = $GLOBALS['injector']->getInstance('IMP_Search');
+
+ if ($imp_search->isEditableVFolder($this->_vars->mbox)) {
+ $GLOBALS['notification']->push(sprintf(_("Deleted Virtual Folder \"%s\"."), $imp_search->getLabel($this->_vars->mbox)), 'horde.success');
+ $imp_search->deleteSearchQuery($this->_vars->mbox);
$result = true;
} else {
$result = $GLOBALS['injector']->getInstance('IMP_Folder')->delete(array($this->_vars->mbox));
protected function _changed($rw = null)
{
/* Only update search mailboxes on forced refreshes. */
- if ($GLOBALS['imp_search']->isSearchMbox($this->_vars->view)) {
+ if ($GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($this->_vars->view)) {
return ($this->_action == 'viewPort') || $this->_vars->forceUpdate;
}
$ob->po = 1;
}
if ($elt['vfolder']) {
- $ob->v = $GLOBALS['imp_search']->isEditableVFolder($elt['value']) ? 2 : 1;
+ $ob->v = $GLOBALS['injector']->getInstance('IMP_Search')->isEditableVFolder($elt['value']) ? 2 : 1;
}
if (!$elt['sub']) {
$ob->un = 1;
*/
public function searchMailbox($mailbox, $query)
{
- return $GLOBALS['imp_search']->runSearchQuery($query, $mailbox);
+ return $GLOBALS['injector']->getInstance('IMP_Search')->runSearchQuery($query, $mailbox);
}
/**
* Global variables defined:
* $imp_imap - An IMP_Imap object
* $imp_mbox - Current mailbox information
- * $imp_search - An IMP_Search object
*/
protected function _init()
{
'IMP_Imap_Tree' => new IMP_Injector_Binder_Imaptree(),
'IMP_Mailbox' => new IMP_Injector_Binder_Mailbox(),
'IMP_Quota' => new IMP_Injector_Binder_Quota(),
+ 'IMP_Search' => new IMP_Injector_Binder_Search(),
'IMP_Sentmail' => new IMP_Injector_Binder_Sentmail()
);
{
$this->init();
$this->mailboxesChanged();
- $GLOBALS['imp_search']->initialize(true);
+ $GLOBALS['injector']->getInstance('IMP_Search')->initialize(true);
}
/* Helper methods. */
? 'INBOX'
: $GLOBALS['prefs']->getValue('initial_page');
+ $imp_search = $GLOBALS['injector']->getInstance('IMP_Search');
+
if (!$GLOBALS['prefs']->getValue('use_vinbox') &&
- $GLOBALS['imp_search']->isVINBOXFolder($init_url)) {
+ $imp_search->isVINBOXFolder($init_url)) {
$init_url = 'folders.php';
- } elseif (($GLOBALS['imp_search']->createSearchID($init_url) == $init_url) &&
- !$GLOBALS['imp_search']->isVFolder($init_url)) {
+ } elseif (($imp_search->createSearchID($init_url) == $init_url) &&
+ !$imp_search->isVFolder($init_url)) {
$init_url = 'INBOX';
if (!$GLOBALS['prefs']->isLocked('initial_page')) {
$GLOBALS['prefs']->setValue('initial_page', $init_url);
}
/* Set up search information for the session. */
- $GLOBALS['imp_search']->initialize();
+ $GLOBALS['injector']->getInstance('IMP_Search')->initialize();
/* If the user wants to run filters on login, make sure they get
run. */
$query = new Horde_Imap_Client_Search_Query();
$query->flag('\\seen', false);
- $ids = $GLOBALS['imp_search']->runSearchQuery($query, 'INBOX', Horde_Imap_Client::SORT_SEQUENCE, 1);
+ $ids = $GLOBALS['injector']->getInstance('IMP_Search')->runSearchQuery($query, 'INBOX', Horde_Imap_Client::SORT_SEQUENCE, 1);
$html = '<table cellspacing="0" width="100%">';
if (empty($ids)) {
return;
}
- $mbox_list = $GLOBALS['imp_search']->isSearchMbox($mbox)
- ? $GLOBALS['imp_search']->getSearchFolders($mbox)
+ $imp_search = $GLOBALS['injector']->getInstance('IMP_Search');
+ $mbox_list = $imp_search->isSearchMbox($mbox)
+ ? $imp_search->getSearchFolders($mbox)
: array($mbox);
foreach ($mbox_list as $val) {
$this->clearFlistCache();
/* Recreate Virtual Folders. */
- $GLOBALS['imp_search']->initialize(true);
+ $GLOBALS['injector']->getInstance('IMP_Search')->initialize(true);
/* Clear the folder from the sort prefs. */
foreach ($deleted as $val) {
$GLOBALS['injector']->getInstance('IMP_Imap_Tree')->insert($folder);
/* Recreate Virtual Folders. */
- $GLOBALS['imp_search']->initialize(true);
+ $GLOBALS['injector']->getInstance('IMP_Search')->initialize(true);
return true;
}
static public function getLabel($mbox)
{
$label = IMP_Search::isSearchMbox($mbox)
- ? $GLOBALS['imp_search']->getLabel($mbox)
+ ? $GLOBALS['injector']->getInstance('IMP_Search')->getLabel($mbox)
: self::displayFolder($mbox);
try {
/* Add the list of virtual folders to the list. */
if (!empty($options['inc_vfolder'])) {
- $vfolders = $GLOBALS['imp_search']->listQueries(IMP_Search::LIST_VFOLDER);
+ $imp_search = $GLOBALS['injector']->getInstance('IMP_Search');
+ $vfolders = $imp_search->listQueries(IMP_Search::LIST_VFOLDER);
if (!empty($vfolders)) {
$vfolder_list = array();
- $vfolder_sel = $GLOBALS['imp_search']->searchMboxID();
+ $vfolder_sel = $imp_search->searchMboxID();
foreach ($vfolders as $id => $val) {
$vfolder_list[] = array(
'l' => Horde_Text_Filter::filter($val, 'space2html', array('charset' => Horde_Nls::getCharset(), 'encode' => true)),
'sel' => ($vfolder_sel == $id),
- 'v' => htmlspecialchars($GLOBALS['imp_search']->createSearchID($id))
+ 'v' => htmlspecialchars($imp_search->createSearchID($id))
);
}
$t->set('vfolder', $vfolder_list);
$prefs->getValue('empty_trash_menu')) {
$mailbox = null;
if ($prefs->getValue('use_vtrash')) {
- $mailbox = $GLOBALS['imp_search']->createSearchID($prefs->getValue('vtrash_id'));
+ $mailbox = $GLOBALS['injector']->getInstance('IMP_Search')->createSearchID($prefs->getValue('vtrash_id'));
} else {
$trash_folder = self::folderPref($prefs->getValue('trash_folder'), true);
if (!is_null($trash_folder)) {
} else {
/* We are dealing with format #2. */
while (list($key, $val) = each($indices)) {
- if ($GLOBALS['imp_search']->isSearchMbox($key)) {
+ if ($GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($key)) {
$msgList += self::parseIndicesList($val);
} else {
/* Make sure we don't have any duplicate keys. */
if (is_null($delhide) || $force) {
if ($GLOBALS['prefs']->getValue('use_vtrash')) {
- $delhide = !$GLOBALS['imp_search']->isVTrashFolder();
+ $delhide = !$GLOBALS['injector']->getInstance('IMP_Search')->isVTrashFolder();
} else {
$sortpref = self::getSort();
$delhide = ($GLOBALS['prefs']->getValue('delhide') &&
!$GLOBALS['prefs']->getValue('use_trash') &&
- ($GLOBALS['imp_search']->isSearchMbox($mbox) ||
+ ($GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($mbox) ||
($sortpref['by'] != Horde_Imap_Client::SORT_THREAD)));
}
}
$mbox = $GLOBALS['imp_mbox']['mailbox'];
}
- $search_mbox = $GLOBALS['imp_search']->isSearchMbox($mbox);
+ $search_mbox = $GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($mbox);
$prefmbox = $search_mbox
? $mbox
: self::folderPref($mbox, false);
* implementation. We will always prefer REFERENCES, but will fallback
* to ORDEREDSUBJECT if the server doesn't support THREAD sorting. */
return ($_SESSION['imp']['protocol'] == 'imap') &&
- !$GLOBALS['imp_search']->isSearchMbox($mbox) &&
+ !$GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($mbox) &&
(!$GLOBALS['prefs']->getValue('use_trash') ||
!$GLOBALS['prefs']->getValue('use_vtrash') ||
- $GLOBALS['imp_search']->isVTrashFolder($mbox));
+ $GLOBALS['injector']->getInstance('IMP_Search')->isVTrashFolder($mbox));
}
/**
$mbox = $GLOBALS['imp_mbox']['mailbox'];
}
- $prefmbox = $GLOBALS['imp_search']->isSearchMbox($mbox)
+ $prefmbox = $GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($mbox)
? $mbox
: self::folderPref($mbox, false);
/**
* Sets mailbox/index information for current page load.
- * Sets the global $imp_search object.
*
* The global $imp_mbox objects will contain an array with the following
* elements:
'uid' => null
);
}
-
- // Initialize IMP_Search object.
- $GLOBALS['imp_search'] = new IMP_Search(array('id' => (isset($_SESSION['imp']) && IMP_Search::isSearchMbox($GLOBALS['imp_mbox']['mailbox'])) ? $GLOBALS['imp_mbox']['mailbox'] : null));
}
/**
if (($_SESSION['imp']['protocol'] != 'pop') &&
$GLOBALS['prefs']->getValue('use_vinbox') &&
($vinbox_id = $GLOBALS['prefs']->getValue('vinbox_id'))) {
- $t->set('vinbox', Horde::link(self::generateIMPUrl('mailbox.php', $GLOBALS['imp_search']->createSearchID($vinbox_id))->add('no_newmail_popup', 1)));
+ $t->set('vinbox', Horde::link(self::generateIMPUrl('mailbox.php', $GLOBALS['injector']->getInstance('IMP_Search')->createSearchID($vinbox_id))->add('no_newmail_popup', 1)));
}
} else {
$t->set('msg', ($var == 1) ? _("You have 1 new message.") : sprintf(_("You have %s new messages."), $var));
// TODO: POP3 also?
if (!$res &&
($_SESSION['imp']['protocol'] == 'imap') &&
- !$GLOBALS['imp_search']->isSearchMbox($mailbox)) {
+ !$GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($mailbox)) {
try {
$status = $this->_ob->status($mailbox, Horde_Imap_Client::STATUS_UIDNOTSTICKY);
$res = $status['uidnotsticky'];
$this->_insert($this->_getList($this->_showunsub), $this->_showunsub ? null : true);
/* Add virtual folders to the tree. */
- $this->insertVFolders($GLOBALS['imp_search']->listQueries(IMP_Search::LIST_VFOLDER));
+ $this->insertVFolders($GLOBALS['injector']->getInstance('IMP_Search')->listQueries(IMP_Search::LIST_VFOLDER));
}
$id = $this->_convertName($id, true);
$vfolder_base = ($id == self::VFOLDER_KEY);
- $search_id = $GLOBALS['imp_search']->createSearchID($id);
+ $search_id = $GLOBALS['injector']->getInstance('IMP_Search')->createSearchID($id);
if ($vfolder_base ||
(isset($this->_tree[$search_id]) &&
if ($changed) {
$GLOBALS['prefs']->setValue('nav_poll', serialize($this->_poll));
- $GLOBALS['imp_search']->createVINBOXFolder();
+ $GLOBALS['injector']->getInstance('IMP_Search')->createVINBOXFolder();
$this->changed = true;
}
}
if ($removed) {
$GLOBALS['prefs']->setValue('nav_poll', serialize($this->_poll));
- $GLOBALS['imp_search']->createVINBOXFolder();
+ $GLOBALS['injector']->getInstance('IMP_Search')->createVINBOXFolder();
$this->changed = true;
}
}
$adds = $id = array();
foreach ($id_list as $key => $val) {
- $id[$GLOBALS['imp_search']->createSearchID($key)] = $val;
+ $id[$GLOBALS['injector']->getInstance('IMP_Search')->createSearchID($key)] = $val;
}
foreach (array_keys($id) as $key) {
/* Virtual folders. */
if ($this->isVFolder($mailbox)) {
+ $imp_search = $GLOBALS['injector']->getInstance('IMP_Search');
+
$row['vfolder'] = true;
- $row['editvfolder'] = $GLOBALS['imp_search']->isEditableVFolder($mailbox['v']);
- if ($GLOBALS['imp_search']->isVTrashFolder($mailbox['v'])) {
+ $row['editvfolder'] = $imp_search->isEditableVFolder($mailbox['v']);
+ if ($imp_search->isVTrashFolder($mailbox['v'])) {
$row['specialvfolder'] = true;
$row['icon'] = 'folders/trash.png';
$row['alt'] = _("Virtual Trash Folder");
$row['class'] = 'trashImg';
- } elseif ($GLOBALS['imp_search']->isVINBOXFolder($mailbox['v'])) {
+ } elseif ($imp_search->isVINBOXFolder($mailbox['v'])) {
$row['specialvfolder'] = true;
$row['icon'] = 'folders/inbox.png';
$row['alt'] = _("Virtual INBOX Folder");
--- /dev/null
+<?php
+/**
+ * Binder for IMP_Search::.
+ *
+ * Copyright 2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @author Michael Slusarz <slusarz@horde.org>
+ * @package IMP
+ */
+class IMP_Injector_Binder_Search implements Horde_Injector_Binder
+{
+ /**
+ */
+ public function create(Horde_Injector $injector)
+ {
+ return new IMP_Search(array(
+ 'id' => (isset($_SESSION['imp']) && IMP_Search::isSearchMbox($GLOBALS['imp_mbox']['mailbox'])) ? $GLOBALS['imp_mbox']['mailbox'] : null
+ ));
+ }
+
+ /**
+ */
+ public function equals(Horde_Injector_Binder $binder)
+ {
+ return false;
+ }
+
+}
}
/* Purge non-existent search sorts. */
+ $imp_search = $GLOBALS['injector']->getInstance('IMP_Search');
$update = false;
$sortpref = @unserialize($GLOBALS['prefs']->getValue('sortpref'));
+
foreach (array_keys($sortpref) as $key) {
- if ($GLOBALS['imp_search']->isSearchMbox($key) &&
- !$GLOBALS['imp_search']->isEditableVFolder($key)) {
+ if ($imp_search->isSearchMbox($key) &&
+ !$imp_search->isEditableVFolder($key)) {
unset($sortpref[$key]);
$update = true;
}
}
+
if ($update) {
$GLOBALS['prefs']->setValue('sortpref', serialize($sortpref));
}
/* This will overwrite the existing entry. */
$query = $imp_ui_search->createQuery($rules);
- $GLOBALS['imp_search']->addVFolder($query, $ui['folders'], $rules, $ui['vfolder_label'], $id);
+ $GLOBALS['injector']->getInstance('IMP_Search')->addVFolder($query, $ui['folders'], $rules, $ui['vfolder_label'], $id);
}
}
* than 'purge_sentmail_keep' days. */
$query = new Horde_Imap_Client_Search_Query();
$query->dateSearch($del_time, Horde_Imap_Client_Search_Query::DATE_BEFORE);
- $msg_ids = $GLOBALS['imp_search']->runSearchQuery($query, $mbox);
+ $msg_ids = $GLOBALS['injector']->getInstance('IMP_Search')->runSearchQuery($query, $mbox);
if (empty($msg_ids)) {
continue;
}
/* Get the list of messages older than 'purge_spam_keep' days. */
$query = new Horde_Imap_Client_Search_Query();
$query->dateSearch($del_time, Horde_Imap_Client_Search_Query::DATE_BEFORE);
- $msg_ids = $GLOBALS['imp_search']->runSearchQuery($query, $spam_folder);
+ $msg_ids = $GLOBALS['injector']->getInstance('IMP_Search')->runSearchQuery($query, $spam_folder);
if (empty($msg_ids)) {
return false;
}
/* Get the list of messages older than 'purge_trash_keep' days. */
$query = new Horde_Imap_Client_Search_Query();
$query->dateSearch($del_time, Horde_Imap_Client_Search_Query::DATE_BEFORE);
- $msg_ids = $GLOBALS['imp_search']->runSearchQuery($query, $trash_folder);
+ $msg_ids = $GLOBALS['injector']->getInstance('IMP_Search')->runSearchQuery($query, $trash_folder);
if (empty($msg_ids)) {
return false;
}
public function __construct($mailbox, $uid = null)
{
$this->_mailbox = $mailbox;
- $this->_searchmbox = $GLOBALS['imp_search']->isSearchMbox($mailbox);
+ $this->_searchmbox = $GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($mailbox);
if (is_null($uid)) {
unset($_SESSION['imp']['cache']['imp_mailbox'][$mailbox]);
}
try {
- foreach ($GLOBALS['imp_search']->runSearch($query, $this->_mailbox) as $val) {
+ foreach ($GLOBALS['injector']->getInstance('IMP_Search')->runSearch($query, $this->_mailbox) as $val) {
list($idx, $mbox) = explode(IMP::IDX_SEP, $val);
$this->_sorted[] = $idx;
$this->_sortedMbox[] = $mbox;
$query->flag('\\deleted', false);
}
try {
- $res = $GLOBALS['imp_search']->imapSearch($this->_mailbox, $query, array('sort' => array($sortpref['by']), 'reverse' => (bool)$sortpref['dir']));
+ $res = $GLOBALS['injector']->getInstance('IMP_Search')->imapSearch($this->_mailbox, $query, array('sort' => array($sortpref['by']), 'reverse' => (bool)$sortpref['dir']));
$this->_sorted = $res['sort'];
} catch (Horde_Imap_Client_Exception $e) {
$GLOBALS['notification']->push(_("Mailbox listing failed") . ': ' . $e->getMessage(), 'horde.error');
if ($this->_usepop ||
!empty($options['nuke']) ||
($use_trash && ($mbox == $trash)) ||
- ($use_vtrash && ($GLOBALS['imp_search']->isVTrashFolder()))) {
+ ($use_vtrash && ($GLOBALS['injector']->getInstance('IMP_Search')->isVTrashFolder()))) {
/* Purge messages immediately. */
$expunge_now = true;
} else {
/* If in Virtual Inbox, we need to reset flag to unseen so that it
* appears again in the mailbox list. */
- if ($GLOBALS['imp_search']->isVINBOXFolder($mbox) &&
+ if ($GLOBALS['injector']->getInstance('IMP_Search')->isVINBOXFolder($mbox) &&
($pos = array_search('\\seen', $res['flags']))) {
unset($res['flags'][$pos]);
}
return $msg_list ? array() : null;
}
+ $imp_search = $GLOBALS['injector']->getInstance('IMP_Search');
$process_list = $update_list = array();
foreach (array_keys($mbox_list) as $key) {
if (!$GLOBALS['imp_imap']->isReadOnly($key)) {
- if ($GLOBALS['imp_search']->isSearchMbox($key)) {
- foreach ($GLOBALS['imp_search']->getSearchFolders($key) as $skey) {
+ if ($imp_search->isSearchMbox($key)) {
+ foreach ($imp_search->getSearchFolders($key) as $skey) {
$process_list[$skey] = $mbox_list[$key];
}
} else {
*/
public function emptyMailbox($mbox_list)
{
- global $imp_search, $notification, $prefs;
+ global $notification, $prefs;
+ $imp_search = $GLOBALS['injector']->getInstance('IMP_Search');
$trash_folder = ($prefs->getValue('use_trash'))
? IMP::folderPref($prefs->getValue('trash_folder'), true)
: null;
/* Perform the search to find the other parts of the message. */
$query = new Horde_Imap_Client_Search_Query();
$query->headerText('Content-Type', $id);
- $indices = $GLOBALS['imp_search']->runSearchQuery($query, $mbox);
+ $indices = $GLOBALS['injector']->getInstance('IMP_Search')->runSearchQuery($query, $mbox);
/* If not able to find the other parts of the message, prepare a
* status message. */
$ui->suppress = array_diff($ui->suppress, array('trashselect', 'empty_trash_menu'));
}
if ($prefs->isDirty('use_vtrash')) {
- $GLOBALS['imp_search']->initialize(true);
+ $GLOBALS['injector']->getInstance('IMP_Search')->initialize(true);
}
break;
case 'server':
if ($prefs->isDirty('use_vinbox')) {
- $GLOBALS['imp_search']->initialize(true);
+ $GLOBALS['injector']->getInstance('IMP_Search')->initialize(true);
}
if ($prefs->isDirty('subscribe')) {
public function getQuota()
{
try {
- $quota = $GLOBALS['imp_imap']->ob()->getQuotaRoot($GLOBALS['imp_search']->isSearchMbox($GLOBALS['imp_mbox']['mailbox']) ? 'INBOX' : $GLOBALS['imp_mbox']['mailbox']);
+ $quota = $GLOBALS['imp_imap']->ob()->getQuotaRoot($GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($GLOBALS['imp_mbox']['mailbox']) ? 'INBOX' : $GLOBALS['imp_mbox']['mailbox']);
} catch (Horde_Imap_Client_Exception $e) {
throw new IMP_Exception(_("Unable to retrieve quota"));
}
$query = new Horde_Imap_Client_Search_Query();
$search_array = array();
- $search_fields = $GLOBALS['imp_search']->searchFields();
- $flag_fields = $GLOBALS['imp_search']->flagFields();
+ $search_fields = $GLOBALS['injector']->getInstance('IMP_Search')->searchFields();
+ $flag_fields = $GLOBALS['injector']->getInstance('IMP_Search')->flagFields();
$imp_flags = $GLOBALS['injector']->getInstance('IMP_Imap_Flags');
$or_search = false;
$c_list = array();
if ($criteria) {
- $search_fields = $GLOBALS['imp_search']->searchFields();
+ $search_fields = $GLOBALS['injector']->getInstance('IMP_Search')->searchFields();
$tmp = new stdClass;
$tmp->t = $criteria;
$tmp->v = ($search_fields[$criteria]['type'] == 'size')
}
/* Set the search in the IMP session. */
- return $GLOBALS['imp_search']->createSearchQuery($this->createQuery($c_list), array($mbox), $c_list, _("Search Results"), IMP_Search::MBOX_PREFIX . IMP_Search::BASIC_SEARCH);
+ return $GLOBALS['injector']->getInstance('IMP_Search')->createSearchQuery($this->createQuery($c_list), array($mbox), $c_list, _("Search Results"), IMP_Search::MBOX_PREFIX . IMP_Search::BASIC_SEARCH);
}
}
/* Set the search in the IMP session. */
if ($is_search) {
- $GLOBALS['imp_search']->createSearchQuery($query, array($args['qsearchmbox']), array(), _("Search Results"), $mbox);
+ $GLOBALS['injector']->getInstance('IMP_Search')->createSearchQuery($query, array($args['qsearchmbox']), array(), _("Search Results"), $mbox);
}
} else {
- $is_search = $GLOBALS['imp_search']->isSearchMbox($mbox);
+ $is_search = $GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($mbox);
}
/* Set the current time zone. */
Horde_Registry::appInit('imp', array('impmode' => 'mimp'));
Horde_Nls::setTimeZone();
+
+$imp_search = $injector->getInstance('IMP_Search');
$imp_ui_mimp = $injector->getInstance('IMP_Ui_Mimp');
$vars = Horde_Variables::getDefaultVariables();
} catch (Horde_Exception_HookNotSet $e) {}
/* Is this a search mailbox? */
+$imp_search = $injector->getInstance('IMP_Search');
$search_mbox = $imp_search->isSearchMbox($imp_mbox['mailbox']);
$vfolder = $imp_search->isVFolder();
break;
case 'view_messages':
- $redirect = IMP::generateIMPUrl('thread.php', $imp_mbox['mailbox'], null, null, false)->setRaw(true)->add(array('mode' => 'msgview', 'msglist' => $GLOBALS['imp_imap']->ob()->utils->toSequenceString(IMP::parseIndicesList($indices), array('mailbox' => true))));
+ $redirect = IMP::generateIMPUrl('thread.php', $imp_mbox['mailbox'], null, null, false)->setRaw(true)->add(array('mode' => 'msgview', 'msglist' => $imp_imap->ob()->utils->toSequenceString(IMP::parseIndicesList($indices), array('mailbox' => true))));
header('Location: ' . $redirect);
exit;
}
/* Determine if we are going to show the Hide/Purge Deleted Message links. */
if (!$prefs->getValue('use_trash') &&
- !$GLOBALS['imp_search']->isVINBOXFolder()) {
+ !$imp_search->isVINBOXFolder()) {
$showdelete = array('hide' => ($sortpref['by'] != Horde_Imap_Client::SORT_THREAD), 'purge' => true);
} else {
$showdelete = array('hide' => false, 'purge' => false);
/* We know we are going to be exclusively dealing with this mailbox, so
* select it on the IMAP server (saves some STATUS calls). Open R/W to clear
* the RECENT flag. */
-if (!$imp_search->isSearchMbox($imp_mbox['mailbox'])) {
- $imp_imap->ob()->openMailbox($imp_mbox['mailbox'], Horde_Imap_Client::OPEN_READWRITE);
+if (!($search_mbox = $injector->getInstance('IMP_Search')->isSearchMbox($imp_mbox['mailbox']))) {
+ $injector->getInstance('IMP_Imap')->getOb()->openMailbox($imp_mbox['mailbox'], Horde_Imap_Client::OPEN_READWRITE);
}
/* Make sure we have a valid index. */
* message in the header. */
$h_page_label = htmlspecialchars($page_label);
$header_label = $h_page_label;
-if ($imp_search->isSearchMbox($imp_mbox['mailbox'])) {
+if ($search_mbox) {
$header_label .= ' [' . Horde::link(Horde::applicationUrl('mailbox.php')->add('mailbox', $mailbox_name)) . IMP::displayFolder($mailbox_name) . '</a>]';
}
$new_mail = (isset($request_parts[1]) && ($request_parts[1] === 'new'));
}
-/* Obtain some information describing the mailbox state. */
$imp_mailbox = $injector->getInstance('IMP_Mailbox')->getOb($mailbox);
+$imp_search = $injector->getInstance('IMP_Search');
+
+/* Obtain some information describing the mailbox state. */
$total_num = $imp_mailbox->getMessageCount();
$unseen_num = ($imp_search->isVINBOXFolder($mailbox))
? $imp_mailbox->getMessageCount()
exit;
}
+$imp_search = $GLOBALS['injector']->getInstance('IMP_Search');
+
/* If search_basic_mbox is set, we are processing the search query. */
$search_mailbox = Horde_Util::getFormData('search_basic_mbox');
if ($search_mailbox) {
$id = $imp_ui_search->processBasicSearch($search_mailbox, Horde_Util::getFormData('search_criteria'), Horde_Util::getFormData('search_criteria_text'), Horde_Util::getFormData('search_criteria_not'), Horde_Util::getFormData('search_flags'));
/* Redirect to the mailbox screen. */
- header('Location: ' . Horde::applicationUrl('mailbox.php', true)->setRaw(true)->add('mailbox', $GLOBALS['imp_search']->createSearchID($id)));
+ header('Location: ' . Horde::applicationUrl('mailbox.php', true)->setRaw(true)->add('mailbox', $imp_search->createSearchID($id)));
exit;
}
exit;
}
+$imp_search = $GLOBALS['injector']->getInstance('IMP_Search');
+
$charset = Horde_Nls::getCharset();
$criteria = Horde_Util::getFormData('criteria_form');
$dimp_view = ($_SESSION['imp']['view'] == 'dimp');
}
/* Redirect to the mailbox page. */
- $id = $GLOBALS['imp_search']->createSearchID($id);
+ $id = $imp_search->createSearchID($id);
if ($dimp_view) {
/* Output javascript code to close the IFRAME and load the search
* mailbox in DIMP. */