);
$_prefs['vfolder'] = array(
- // 'value' => serialize(array(
- // // Virtual Inbox, enabled by default.
- // new IMP_Search_Vfolder_Vinbox(array(
- // 'disable' => false
- // )),
- // // Virtual Trash, disabled by default.
- // new IMP_Search_Vfolder_Vtrash(array(
- // 'disable' => true
- // ))
- // ))
- 'value' => 'a:1:{i:0;C:25:"IMP_Search_Vfolder_Vinbox":30:{a:2:{s:1:"e";i:1;s:1:"v";i:1;}}}'
+ // By default, Virtual Inbox is enabled and Virtual Trash is disabled.
+ // 'value' => serialize(array())
+ 'value' => 'a:0:{}'
);
$_prefs['filter'] = array(
- // 'value' => serialize(array(
- // // Attachments filter, enabled by default
- // new IMP_Search_Filter_Attachment(array(
- // 'disable' => false
- // )),
- // // Bulk filter, enabled by default
- // new IMP_Search_Filter_Bulk(array(
- // 'disable' => false
- // )),
- // // Mailing list filter, enabled by default
- // new IMP_Search_Filter_Mailinglist(array(
- // 'disable' => false
- // )),
- // // Personal filter, enabled by default
- // new IMP_Search_Filter_Personal(array(
- // 'disable' => false
- // ))
- // ))
- 'value' => 'a:4:{i:0;C:28:"IMP_Search_Filter_Attachment":30:{a:2:{s:1:"e";i:1;s:1:"v";i:1;}}i:1;C:22:"IMP_Search_Filter_Bulk":30:{a:2:{s:1:"e";i:1;s:1:"v";i:1;}}i:2;C:29:"IMP_Search_Filter_Mailinglist":30:{a:2:{s:1:"e";i:1;s:1:"v";i:1;}}i:3;C:26:"IMP_Search_Filter_Personal":30:{a:2:{s:1:"e";i:1;s:1:"v";i:1;}}}'
+ // By default, all filters are enabled.
+ // 'value' => serialize(array())
+ 'value' => 'a:0:{}'
);
*/
public function getFilters()
{
- if ($f_list = $GLOBALS['prefs']->getValue('filter')) {
- $f_list = @unserialize($f_list);
- }
-
$filters = array();
- if (is_array($f_list)) {
- foreach ($f_list as $val) {
- if ($val instanceof IMP_Search_Filter) {
- $filters[$val->id] = $val;
+ /* Build list of default filters. */
+ $di = new DirectoryIterator(IMP_BASE . '/lib/Search/Filter');
+ foreach ($di as $val) {
+ if ($val->isFile()) {
+ $cname = 'IMP_Search_Filter_' . $val->getBasename('.php');
+ if (($cname != 'IMP_Search_Filter_Builtin') &&
+ class_exists($cname)) {
+ $filter = new $cname();
+ $filters[$filter->id] = $filter;
+ }
+ }
+ }
+
+ if ($f_list = $GLOBALS['prefs']->getValue('filter')) {
+ $f_list = @unserialize($f_list);
+ if (is_array($f_list)) {
+ foreach ($f_list as $val) {
+ if ($val instanceof IMP_Search_Filter) {
+ $filters[$val->id] = $val;
+ }
}
}
}
*/
public function getVFolders()
{
- if ($pref_vf = $GLOBALS['prefs']->getValue('vfolder')) {
- $pref_vf = @unserialize($pref_vf);
- }
-
- $has_vinbox = $has_vtrash = false;
$vf = array();
- if (is_array($pref_vf)) {
- foreach ($pref_vf as $val) {
- if ($val instanceof IMP_Search_Vfolder) {
- $vf[$val->id] = $val;
-
- if (!$has_vinbox &&
- ($val instanceof IMP_Search_Vfolder_Vinbox)) {
- $has_vinbox = true;
- } elseif (!$has_vtrash &&
- ($val instanceof IMP_Search_Vfolder_Vtrash)) {
- $has_vtrash = true;
- }
+ /* Build list of default virtual folders. */
+ $di = new DirectoryIterator(IMP_BASE . '/lib/Search/Vfolder');
+ $disabled = array('IMP_Search_Vfolder_Vtrash');
+
+ foreach ($di as $val) {
+ if ($val->isFile()) {
+ $cname = 'IMP_Search_VFolder_' . $val->getBasename('.php');
+ if (($cname != 'IMP_Search_VFolder_Builtin') &&
+ class_exists($cname)) {
+ $filter = new $cname(array(
+ 'disabled' => in_array($cname, $disabled)
+ ));
+ $filters[$filter->id] = $filter;
}
}
}
- if (!$has_vtrash) {
- $ob = new IMP_Search_Vfolder_Vtrash(array(
- 'disable' => true
- ));
- $vf = array($ob->id => $ob) + $vf;
- }
-
- if (!$has_vinbox) {
- $ob = new IMP_Search_Vfolder_Vinbox(array(
- 'disable' => true
- ));
- $vf = array($ob->id => $ob) + $vf;
+ if ($pref_vf = $GLOBALS['prefs']->getValue('vfolder')) {
+ $pref_vf = @unserialize($pref_vf);
+ if (is_array($pref_vf)) {
+ foreach ($pref_vf as $val) {
+ if ($val instanceof IMP_Search_Vfolder) {
+ $vf[$val->id] = $val;
+ }
+ }
+ }
}
return $vf;