292 lines
7.5 KiB
PHP
292 lines
7.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* constants.php
|
|
*
|
|
* Loads constants used by the rest of the SquirrelMail source.
|
|
*
|
|
* Before 1.5.2 script was stored in functions/constants.php
|
|
* @copyright 1999-2025 The SquirrelMail Project Team
|
|
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
|
* @version $Id$
|
|
* @package squirrelmail
|
|
* @since 1.2.0
|
|
*/
|
|
|
|
/** @ignore */
|
|
|
|
/**
|
|
* SquirrelMail version number -- DO NOT CHANGE
|
|
* @since 1.5.2
|
|
*/
|
|
define('SM_VERSION', '1.5.2 [SVN]');
|
|
|
|
/**
|
|
* Year interval for copyright notices in the interface
|
|
* @since 1.5.2
|
|
*/
|
|
define('SM_COPYRIGHT', '1999-2025');
|
|
|
|
/**************************************************************/
|
|
/* Set values for constants used by SquirrelMail preferences. */
|
|
/**************************************************************/
|
|
|
|
/**
|
|
* Define constants for SquirrelMail debug modes.
|
|
* Note that these are binary so that modes can be
|
|
* mixed and matched, and they are also ordered from
|
|
* minor to severe. When adding new modes, please
|
|
* order them in a sensical way (MODERATE is the 10th
|
|
* bit; ADVANCED is the 20th bit).
|
|
* @since 1.5.2
|
|
*/
|
|
define('SM_DEBUG_MODE_OFF', 0); // complete error suppression
|
|
define('SM_DEBUG_MODE_SIMPLE', 1); // PHP E_ERROR
|
|
define('SM_DEBUG_MODE_MODERATE', 512); // PHP E_ALL
|
|
define('SM_DEBUG_MODE_ADVANCED', 524288); // PHP E_ALL plus log errors intentionally suppressed
|
|
define('SM_DEBUG_MODE_STRICT', 536870912); // PHP E_STRICT
|
|
|
|
/**
|
|
* Define basic, general purpose preference constants.
|
|
* @since 1.2.0
|
|
*/
|
|
define('SMPREF_NO', 0);
|
|
define('SMPREF_OFF', 0);
|
|
define('SMPREF_YES', 1);
|
|
define('SMPREF_ON', 1);
|
|
define('SMPREF_NONE', 'none');
|
|
|
|
/**
|
|
* Define constants for location based preferences.
|
|
* @since 1.2.0
|
|
*/
|
|
define('SMPREF_LOC_TOP', 'top');
|
|
define('SMPREF_LOC_BETWEEN', 'between');
|
|
define('SMPREF_LOC_BOTTOM', 'bottom');
|
|
define('SMPREF_LOC_LEFT', '');
|
|
define('SMPREF_LOC_RIGHT', 'right');
|
|
|
|
/**
|
|
* Define preferences for folder settings.
|
|
* @since 1.2.0
|
|
*/
|
|
define('SMPREF_UNSEEN_NONE', 1);
|
|
define('SMPREF_UNSEEN_INBOX', 2);
|
|
define('SMPREF_UNSEEN_ALL', 3);
|
|
define('SMPREF_UNSEEN_SPECIAL', 4); // Only special folders (since 1.2.5)
|
|
define('SMPREF_UNSEEN_NORMAL', 5); // Only normal folders (since 1.2.5)
|
|
define('SMPREF_UNSEEN_ONLY', 1);
|
|
define('SMPREF_UNSEEN_TOTAL', 2);
|
|
|
|
define('SMPREF_MAILBOX_SELECT_LONG', 0);
|
|
define('SMPREF_MAILBOX_SELECT_INDENTED', 1);
|
|
define('SMPREF_MAILBOX_SELECT_DELIMITED', 2);
|
|
|
|
/**
|
|
* Define constants for time/date display preferences.
|
|
* @since 1.2.0
|
|
*/
|
|
define('SMPREF_TIME_24HR', 1);
|
|
define('SMPREF_TIME_12HR', 2);
|
|
|
|
/**
|
|
* Define constants for javascript preferences.
|
|
* @since 1.2.0
|
|
*/
|
|
define('SMPREF_JS_OFF', 0);
|
|
define('SMPREF_JS_ON', 1);
|
|
define('SMPREF_JS_AUTODETECT', 2);
|
|
|
|
/**
|
|
* default value for page_selector_max
|
|
* @since 1.5.1
|
|
*/
|
|
define('PG_SEL_MAX', 10);
|
|
|
|
|
|
/**
|
|
* The number of pages to cache msg headers
|
|
* @since 1.5.1
|
|
*/
|
|
define('SQM_MAX_PAGES_IN_CACHE',5);
|
|
|
|
/**
|
|
* The number of mailboxes to cache msg headers
|
|
* @since 1.5.1
|
|
*/
|
|
define('SQM_MAX_MBX_IN_CACHE',3);
|
|
|
|
/**
|
|
* Sort constants used for sorting of messages
|
|
* @since 1.5.1
|
|
*/
|
|
define('SQSORT_NONE',0);
|
|
define('SQSORT_DATE_ASC',1);
|
|
define('SQSORT_DATE_DESC',2);
|
|
define('SQSORT_FROM_ASC',3);
|
|
define('SQSORT_FROM_DESC',4);
|
|
define('SQSORT_SUBJ_ASC',5);
|
|
define('SQSORT_SUBJ_DESC',6);
|
|
define('SQSORT_SIZE_ASC',7);
|
|
define('SQSORT_SIZE_DESC',8);
|
|
define('SQSORT_TO_ASC',9);
|
|
define('SQSORT_TO_DESC',10);
|
|
define('SQSORT_CC_ASC',11);
|
|
define('SQSORT_CC_DESC',12);
|
|
define('SQSORT_INT_DATE_ASC',13);
|
|
define('SQSORT_INT_DATE_DESC',14);
|
|
|
|
/**
|
|
* Special sort constant thread which is added to above sort mode.
|
|
* By doing a bitwise check ($sort & SQSORT_THREAD) we know if the mailbox
|
|
* is sorted by thread.
|
|
* @since 1.5.1
|
|
*/
|
|
define('SQSORT_THREAD',32);
|
|
|
|
/**
|
|
* Mailbox preference array keys
|
|
* @since 1.5.1
|
|
*/
|
|
define('MBX_PREF_SORT',0);
|
|
define('MBX_PREF_LIMIT',1);
|
|
define('MBX_PREF_AUTO_EXPUNGE',2);
|
|
define('MBX_PREF_INTERNALDATE',3);
|
|
define('MBX_PREF_COLUMNS',4);
|
|
// define('MBX_PREF_FUTURE',unique integer key);
|
|
|
|
/**
|
|
* Email address array keys
|
|
* @since 1.5.1
|
|
*/
|
|
define('SQM_ADDR_PERSONAL', 0);
|
|
define('SQM_ADDR_ADL', 1);
|
|
define('SQM_ADDR_MAILBOX', 2);
|
|
define('SQM_ADDR_HOST', 3);
|
|
|
|
/**
|
|
* Supported columns to show in a messages list
|
|
* The MBX_PREF_COLUMNS contains an ordered array with these columns
|
|
* @since 1.5.1
|
|
*/
|
|
define('SQM_COL_CHECK',0);
|
|
define('SQM_COL_FROM',1);
|
|
define('SQM_COL_DATE', 2);
|
|
define('SQM_COL_SUBJ', 3);
|
|
define('SQM_COL_FLAGS', 4);
|
|
define('SQM_COL_SIZE', 5);
|
|
define('SQM_COL_PRIO', 6);
|
|
define('SQM_COL_ATTACHMENT', 7);
|
|
define('SQM_COL_INT_DATE', 8);
|
|
define('SQM_COL_TO', 9);
|
|
define('SQM_COL_CC', 10);
|
|
define('SQM_COL_BCC', 11);
|
|
|
|
/**
|
|
* Address book field list
|
|
* @since 1.4.16 and 1.5.2
|
|
*/
|
|
define('SM_ABOOK_FIELD_NICKNAME', 0);
|
|
define('SM_ABOOK_FIELD_FIRSTNAME', 1);
|
|
define('SM_ABOOK_FIELD_LASTNAME', 2);
|
|
define('SM_ABOOK_FIELD_EMAIL', 3);
|
|
define('SM_ABOOK_FIELD_LABEL', 4);
|
|
|
|
/**
|
|
* Generic variable type constants
|
|
* @since 1.5.2
|
|
*/
|
|
define('SQ_TYPE_INT', 'int');
|
|
define('SQ_TYPE_BIGINT', 'bigint');
|
|
define('SQ_TYPE_STRING', 'string');
|
|
define('SQ_TYPE_BOOL', 'bool');
|
|
define('SQ_TYPE_ARRAY', 'array');
|
|
|
|
/**
|
|
* Template engines supported
|
|
* @since 1.5.2
|
|
*/
|
|
define('SQ_PHP_TEMPLATE', 'PHP_');
|
|
define('SQ_SMARTY_TEMPLATE', 'Smarty_');
|
|
|
|
/**
|
|
* Used by plugins to indicate an incompatibility with a SM version
|
|
* @since 1.5.2
|
|
*/
|
|
define('SQ_INCOMPATIBLE', 'INCOMPATIBLE');
|
|
|
|
/**
|
|
* Define constants used in the options code
|
|
*/
|
|
|
|
// Define constants for the various option types
|
|
define('SMOPT_TYPE_STRING', 0);
|
|
define('SMOPT_TYPE_STRLIST', 1);
|
|
define('SMOPT_TYPE_TEXTAREA', 2);
|
|
define('SMOPT_TYPE_INTEGER', 3);
|
|
define('SMOPT_TYPE_FLOAT', 4);
|
|
define('SMOPT_TYPE_BOOLEAN', 5);
|
|
define('SMOPT_TYPE_HIDDEN', 6);
|
|
define('SMOPT_TYPE_COMMENT', 7);
|
|
define('SMOPT_TYPE_FLDRLIST', 8);
|
|
define('SMOPT_TYPE_FLDRLIST_MULTI', 9);
|
|
define('SMOPT_TYPE_EDIT_LIST', 10);
|
|
define('SMOPT_TYPE_EDIT_LIST_ASSOCIATIVE', 11);
|
|
define('SMOPT_TYPE_STRLIST_MULTI', 12);
|
|
define('SMOPT_TYPE_BOOLEAN_CHECKBOX', 13);
|
|
define('SMOPT_TYPE_BOOLEAN_RADIO', 14);
|
|
define('SMOPT_TYPE_STRLIST_RADIO', 15);
|
|
define('SMOPT_TYPE_SUBMIT', 16);
|
|
define('SMOPT_TYPE_INFO', 17);
|
|
define('SMOPT_TYPE_PASSWORD', 18);
|
|
|
|
// Define constants for the layout scheme for edit lists
|
|
define('SMOPT_EDIT_LIST_LAYOUT_LIST', 0);
|
|
define('SMOPT_EDIT_LIST_LAYOUT_SELECT', 1);
|
|
|
|
// Define constants for the options refresh levels
|
|
define('SMOPT_REFRESH_NONE', 0);
|
|
define('SMOPT_REFRESH_FOLDERLIST', 1);
|
|
define('SMOPT_REFRESH_ALL', 2);
|
|
|
|
// Define constants for the options size
|
|
define('SMOPT_SIZE_TINY', 0);
|
|
define('SMOPT_SIZE_SMALL', 1);
|
|
define('SMOPT_SIZE_MEDIUM', 2);
|
|
define('SMOPT_SIZE_LARGE', 3);
|
|
define('SMOPT_SIZE_HUGE', 4);
|
|
define('SMOPT_SIZE_NORMAL', 5);
|
|
|
|
// Define miscellaneous options constants
|
|
define('SMOPT_SAVE_DEFAULT', 'save_option');
|
|
define('SMOPT_SAVE_NOOP', 'save_option_noop');
|
|
|
|
// Convenience array of values 'a' through 'z'
|
|
$a_to_z = array(
|
|
'a' => 'a',
|
|
'b' => 'b',
|
|
'c' => 'c',
|
|
'd' => 'd',
|
|
'e' => 'e',
|
|
'f' => 'f',
|
|
'g' => 'g',
|
|
'h' => 'h',
|
|
'i' => 'i',
|
|
'j' => 'j',
|
|
'k' => 'k',
|
|
'l' => 'l',
|
|
'm' => 'm',
|
|
'n' => 'n',
|
|
'o' => 'o',
|
|
'p' => 'p',
|
|
'q' => 'q',
|
|
'r' => 'r',
|
|
's' => 's',
|
|
't' => 't',
|
|
'u' => 'u',
|
|
'v' => 'v',
|
|
'w' => 'w',
|
|
'x' => 'x',
|
|
'y' => 'y',
|
|
'z' => 'z',
|
|
);
|