} else {
$t->set('compose_enable', !$compose_disable);
$t->set('msg', htmlspecialchars($msg));
- $t->set('save_draft', $conf['user']['allow_folders'] && !$readonly_drafts);
+ $t->set('save_draft', $imp_imap->allowFolders() && !$readonly_drafts);
$t->set('subject', htmlspecialchars($header['subject']));
if (!$prefs->isLocked('default_identity')) {
$t->set('title', htmlspecialchars($title));
$t->set('send_msg_ak', Horde::getAccessKeyAndTitle(_("_Send Message")));
- if ($conf['user']['allow_folders'] && !$readonly_drafts) {
+ if ($imp_imap->allowFolders() && !$readonly_drafts) {
$t->set('save_draft_ak', Horde::getAccessKeyAndTitle(_("Save _Draft")));
}
$t->set('help', Horde_Help::link('imp', 'compose-buttons'));
}
$t->set('compose_options', $compose_options);
- $t->set('ssm', ($conf['user']['allow_folders'] && !$prefs->isLocked('save_sent_mail')));
+ $t->set('ssm', ($imp_imap->allowFolders() && !$prefs->isLocked('save_sent_mail')));
if ($t->get('ssm')) {
if ($readonly_sentmail) {
$notification->push(sprintf(_("Cannot save sent-mail message to \"%s\" as that mailbox is read-only.", $sent_mail_folder), 'horde.warning'));
Horde_Registry::appInit('imp', array('impmode' => 'mimp'));
/* Redirect back to the mailbox if folder use is not allowed. */
-if (empty($conf['user']['allow_folders'])) {
+if (!$injector->getInstance('IMP_Injector_Factory_Imap')->create()->allowFolders()) {
$notification->push(_("Folder use is not enabled."), 'horde.error');
Horde::url('mailbox-mimp.php', true)->redirect();
}
Horde::addScriptFile('folders.js', 'imp');
/* Redirect back to the mailbox if folder use is not allowed. */
-if (!$conf['user']['allow_folders']) {
+$imp_imap = $injector->getInstance('IMP_Injector_Factory_Imap')->create();
+if (!$imp_imap->allowFolders()) {
$notification->push(_("Folder use is not enabled."), 'horde.error');
Horde::url('mailbox.php', true)->redirect();
}
if (!empty($new_names) &&
!empty($old_names) &&
($iMax == count($old_names))) {
- $imp_imap = $injector->getInstance('IMP_Injector_Factory_Imap')->create();
for ($i = 0; $i < $iMax; ++$i) {
$old_name = IMP::formMbox($old_names[$i], false);
$old_ns = $imp_imap->getNamespace($old_name);
*/
public function menu($menu)
{
- global $conf, $injector, $prefs, $registry;
+ global $injector, $prefs, $registry;
$menu_mailbox_url = Horde::url('mailbox.php');
));
}
- if ($conf['user']['allow_folders']) {
+ if ($injector->getInstance('IMP_Injector_Factory_Imap')->create()->allowFolders()) {
$menu->addArray(array(
'icon' => 'folders/folder.png',
'text' => _("_Folders"),
{
$t = $GLOBALS['injector']->createInstance('Horde_Template');
$t->set('forminput', Horde_Util::formInput());
- $t->set('use_folders', ($GLOBALS['session']->get('imp', 'protocol') != 'pop') && $GLOBALS['conf']['user']['allow_folders'], true);
+ $t->set('use_folders', $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create()->allowFolders(), true);
if ($t->get('use_folders')) {
Horde::addScriptFile('imp.js', 'imp');
$menu_view = $GLOBALS['prefs']->getValue('menu_view');
*/
protected function _postcreate()
{
- global $conf, $prefs;
+ global $prefs;
if ($this->ob instanceof Horde_Imap_Client_Socket_Pop3) {
/* Turn some options off if we are working with POP3. */
- $conf['user']['allow_folders'] = false;
$prefs->setValue('save_sent_mail', false);
$prefs->setLocked('save_sent_mail', true);
$prefs->setLocked('sent_mail_folder', true);
}
/**
+ * Are folders allowed?
+ *
+ * @return boolean True if folders are allowed.
+ */
+ public function allowFolders()
+ {
+ return !empty($GLOBALS['conf']['user']['allow_folders']) &&
+ !($this->ob instanceof Horde_Imap_Client_Socket_Pop3);
+ }
+
+ /**
* Do a UIDVALIDITY check - needed if UIDs are passed between page
* accesses.
*
public $unseen = 0;
/**
+ * Are folders allowed?
+ *
+ * @var boolean
+ */
+ protected $_allowFolders;
+
+ /**
* Array containing the mailbox tree.
*
* @var array
public function __construct()
{
if ($GLOBALS['session']->get('imp', 'protocol') == 'imap') {
- $ns = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create()->getNamespaceList();
+ $imp_imap = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create();
+ $ns = $imp_imap->getNamespaceList();
$ptr = reset($ns);
+ $this->_allowFolders = $imp_imap->allowFolders();
$this->_delimiter = $ptr['delimiter'];
- $this->_namespaces = empty($GLOBALS['conf']['user']['allow_folders'])
- ? array()
- : $ns;
+ $this->_namespaces = $this->_allowFolders
+ ? $ns
+ : array();
}
$this->init();
/* Add INBOX and exit if folders aren't allowed or if we are using
* POP3. */
- if (empty($conf['user']['allow_folders']) ||
- ($session->get('imp', 'protocol') == 'pop')) {
+ if (!$this->_allowFolders) {
$this->_insertElt($this->_makeElt('INBOX', self::ELT_IS_SUBSCRIBED));
return;
}
$this->changed = true;
}
- if (empty($GLOBALS['conf']['user']['allow_folders'])) {
+ if (!$this->_allowFolders) {
return;
}
*/
public function saveSentmail($ident = null)
{
- if (!$GLOBALS['conf']['user']['allow_folders']) {
- return false;
- }
-
- return $this->getValue('save_sent_mail', $ident);
+ return $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create()->allowFolders()
+ ? $this->getValue('save_sent_mail', $ident)
+ : false;
}
}
$ui->suppressGroups[] = 'smime';
}
- if (empty($conf['user']['allow_folders'])) {
+ if (!$injector->getInstance('IMP_Injector_Factory_Imap')->create()->allowFolders()) {
$ui->suppressGroups[] = 'searches';
}
*/
protected function _initialPage()
{
- $t = $GLOBALS['injector']->createInstance('Horde_Template');
+ global $injector, $prefs;
+
+ $t = $injector->createInstance('Horde_Template');
$t->setOption('gettext', true);
- if (empty($GLOBALS['conf']['user']['allow_folders'])) {
+ if (!$injector->getInstance('IMP_Injector_Factory_Imap')->create()->allowFolders()) {
$t->set('nofolder', true);
} else {
- $mailbox_selected = $GLOBALS['prefs']->getValue('initial_page');
+ $mailbox_selected = $prefs->getValue('initial_page');
$t->set('folder_page', IMP::formMbox(self::PREF_FOLDER_PAGE, true));
$t->set('folder_sel', $mailbox_selected == self::PREF_FOLDER_PAGE);
$t->set('flist', IMP::flistSelect(array(
*/
protected function _updateSentmail($ui)
{
- global $conf, $prefs;
+ global $injector, $prefs;
- if (!$conf['user']['allow_folders'] ||
+ $imp_imap = $injector->getInstance('IMP_Injector_Factory_Imap')->create();
+
+ if (!$imp_imap->allowFolders() ||
$prefs->isLocked('sent_mail_folder')) {
return false;
}
$sent_mail_folder = $sm_default;
}
- $sent_mail_folder = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create()->appendNamespace($sent_mail_folder);
+ $sent_mail_folder = $imp_imap->appendNamespace($sent_mail_folder);
if ($sent_mail_folder) {
- $imp_folder = $GLOBALS['injector']->getInstance('IMP_Folder');
+ $imp_folder = $injector->getInstance('IMP_Folder');
if (!$imp_folder->exists($sent_mail_folder) &&
!$imp_folder->create($sent_mail_folder, $prefs->getValue('subscribe'), array('sent' => true))) {
return false;
}
}
- return $GLOBALS['injector']->getInstance('IMP_Identity')->setValue('sent_mail_folder', $sent_mail_folder);
+ return $injector->getInstance('IMP_Identity')->setValue('sent_mail_folder', $sent_mail_folder);
}
/* Personal S/MIME certificate management. */
*/
protected function _updateSpecialFolders($pref, $folder, $new, $type, $ui)
{
- global $prefs;
+ global $injector, $prefs;
+
+ $imp_imap = $injector->getInstance('IMP_Injector_Factory_Imap')->create();
- if (!$GLOBALS['conf']['user']['allow_folders'] ||
+ if (!$imp_imap->allowFolders() ||
$prefs->isLocked($pref)) {
return false;
}
$folder = substr($folder, strlen(self::PREF_SPECIALUSE));
} elseif (!empty($new)) {
$new = Horde_String::convertCharset($new, 'UTF-8', 'UTF7-IMAP');
- $folder = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create()->appendNamespace($new);
- if (!$GLOBALS['injector']->getInstance('IMP_Folder')->create($folder, $prefs->getValue('subscribe'), array($type => true))) {
+ $folder = $injector->getInstance('IMP_Injector_Factory_Imap')->create()->appendNamespace($new);
+ if (!$injector->getInstance('IMP_Folder')->create($folder, $prefs->getValue('subscribe'), array($type => true))) {
$folder = null;
}
}
$t->set('read_receipt_set', ($d_read != 'ask'));
}
- $t->set('save_sent_mail', ($conf['user']['allow_folders'] && !$prefs->isLocked('save_sent_mail')));
+ $imp_imap = $injector->getInstance('IMP_Injector_Factory_Imap')->create();
+ $t->set('save_sent_mail', ($imp_imap->allowFolders() && !$prefs->isLocked('save_sent_mail')));
$t->set('priority', $prefs->getValue('set_priority'));
if (!$prefs->isLocked('default_encrypt') &&
($prefs->getValue('use_pgp') || $prefs->getValue('use_smime'))) {
}
/* Generate folder options list. */
-if ($conf['user']['allow_folders']) {
+if ($imp_imap->allowFolders()) {
$folder_options = IMP::flistSelect(array('heading' => _("Messages to"), 'new_folder' => true, 'inc_tasklists' => true, 'inc_notepads' => true));
}
$n_template->setOption('gettext', true);
$n_template->set('id', 1);
$n_template->set('sessiontag', Horde_Util::formInput());
- $n_template->set('use_folders', $conf['user']['allow_folders']);
+ $n_template->set('use_folders', $imp_imap->allowFolders());
$n_template->set('readonly', $readonly);
$n_template->set('use_pop', $session->get('imp', 'protocol') == 'pop');
$n_template->set('flaglist_set', $form_set);
$n_template->set('flaglist_unset', $form_unset);
- if ($conf['user']['allow_folders']) {
+ if ($injector->getInstance('IMP_Injector_Factory_Imap')->create()->allowFolders()) {
$n_template->set('move', Horde::widget('#', _("Move to folder"), 'widget moveAction', '', '', _("Move"), true));
$n_template->set('copy', Horde::widget('#', _("Copy to folder"), 'widget copyAction', '', '', _("Copy"), true));
$n_template->set('options', IMP::flistSelect(array('heading' => _("This message to"), 'new_folder' => true, 'inc_tasklists' => true, 'inc_notepads' => true)));
$view = new Horde_View(array('templatePath' => IMP_TEMPLATES . '/mobile'));
new Horde_View_Helper_Text($view);
-if (empty($conf['user']['allow_folders'])) {
+if (!$injector->getInstance('IMP_Injector_Factory_Imap')->create()->allowFolders()) {
$view->allowFolders = false;
} else {
$view->allowFolders = true;
$view->logout = Horde::getServiceLink('logout')->setRaw(false);
echo $view->render('head.html.php');
-if (!empty($conf['user']['allow_folders'])) {
+if ($view->allowFolders) {
echo $view->render('folders.html.php');
}
echo $view->render('mailbox.html.php');
$has_blacklist = $registry->hasMethod('mail/blacklistFrom');
$has_whitelist = $registry->hasMethod('mail/whitelistFrom');
+$imp_imap = $injector->getInstance('IMP_Injector_Factory_Imap')->create();
+
// Quota information
$show_quota = $session->get('imp', 'imap_quota')
? '<span class="used">' . Horde::img('quotauncover.gif') . '</span>'
: '';
-
function _simpleButton($id, $text, $image, $nodisplay = false)
{
$ak = Horde::getAccessKey($text, true);
<a id="ctx_container_collapse"><span class="iconImg"></span><?php echo _("Collapse All") ?></a>
</div>
-<?php if ($conf['user']['allow_folders']): ?>
+<?php if ($imp_imap->allowFolders()): ?>
<div class="context" id="ctx_folderopts" style="display:none">
<a id="ctx_folderopts_new"><span class="iconImg"></span><?php echo _("New Folder") ?></a>
<?php if ($use_sub): ?>