- Move action files map from index.php to steps' func.inc files
| | |
| | | } |
| | | |
| | | |
| | | // map task/action to a certain include file |
| | | $action_map = array( |
| | | 'mail' => array( |
| | | 'preview' => 'show.inc', |
| | | 'print' => 'show.inc', |
| | | 'moveto' => 'move_del.inc', |
| | | 'delete' => 'move_del.inc', |
| | | 'send' => 'sendmail.inc', |
| | | 'expunge' => 'folders.inc', |
| | | 'purge' => 'folders.inc', |
| | | 'remove-attachment' => 'attachments.inc', |
| | | 'display-attachment' => 'attachments.inc', |
| | | 'upload' => 'attachments.inc', |
| | | 'group-expand' => 'autocomplete.inc', |
| | | ), |
| | | |
| | | 'addressbook' => array( |
| | | 'add' => 'edit.inc', |
| | | 'group-create' => 'groups.inc', |
| | | 'group-rename' => 'groups.inc', |
| | | 'group-delete' => 'groups.inc', |
| | | 'group-addmembers' => 'groups.inc', |
| | | 'group-delmembers' => 'groups.inc', |
| | | ), |
| | | |
| | | 'settings' => array( |
| | | 'folders' => 'folders.inc', |
| | | 'rename-folder' => 'folders.inc', |
| | | 'delete-folder' => 'folders.inc', |
| | | 'subscribe' => 'folders.inc', |
| | | 'unsubscribe' => 'folders.inc', |
| | | 'purge' => 'folders.inc', |
| | | 'folder-size' => 'folders.inc', |
| | | 'add-identity' => 'edit_identity.inc', |
| | | ) |
| | | ); |
| | | |
| | | // include task specific functions |
| | | if (is_file($incfile = 'program/steps/'.$RCMAIL->task.'/func.inc')) |
| | | include_once($incfile); |
| | |
| | | // allow 5 "redirects" to another action |
| | | $redirects = 0; $incstep = null; |
| | | while ($redirects < 5) { |
| | | $stepfile = !empty($action_map[$RCMAIL->task][$RCMAIL->action]) ? |
| | | $action_map[$RCMAIL->task][$RCMAIL->action] : strtr($RCMAIL->action, '-', '_') . '.inc'; |
| | | |
| | | // execute a plugin action |
| | | if ($RCMAIL->plugins->is_plugin_task($RCMAIL->task)) { |
| | | $RCMAIL->plugins->exec_action($RCMAIL->task.'.'.$RCMAIL->action); |
| | |
| | | break; |
| | | } |
| | | // try to include the step file |
| | | else if (is_file($incfile = 'program/steps/'.$RCMAIL->task.'/'.$stepfile)) { |
| | | else if (($stepfile = $RCMAIL->get_action_file()) |
| | | && is_file($incfile = 'program/steps/'.$RCMAIL->task.'/'.$stepfile) |
| | | ) { |
| | | include($incfile); |
| | | $redirects++; |
| | | } |
| | |
| | | |
| | | private $texts; |
| | | private $books = array(); |
| | | private $action_map = array(); |
| | | |
| | | |
| | | /** |
| | |
| | | setcookie($name, $value, $exp, $cookie['path'], $cookie['domain'], |
| | | rcube_https_check(), true); |
| | | } |
| | | |
| | | /** |
| | | * Registers action aliases for current task |
| | | * |
| | | * @param array $map Alias-to-filename hash array |
| | | */ |
| | | public function register_action_map($map) |
| | | { |
| | | if (is_array($map)) { |
| | | foreach ($map as $idx => $val) { |
| | | $this->action_map[$idx] = $val; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Returns current action filename |
| | | * |
| | | * @param array $map Alias-to-filename hash array |
| | | */ |
| | | public function get_action_file() |
| | | { |
| | | if (!empty($this->action_map[$this->action])) { |
| | | return $this->action_map[$this->action]; |
| | | } |
| | | |
| | | return strtr($this->action, '-', '_') . '.inc'; |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | 'recordscountdisplay' => 'rcmail_rowcount_display', |
| | | 'searchform' => array($OUTPUT, 'search_form') |
| | | )); |
| | | |
| | | // register action aliases |
| | | $RCMAIL->register_action_map(array( |
| | | 'add' => 'edit.inc', |
| | | 'group-create' => 'groups.inc', |
| | | 'group-rename' => 'groups.inc', |
| | | 'group-delete' => 'groups.inc', |
| | | 'group-addmembers' => 'groups.inc', |
| | | 'group-delmembers' => 'groups.inc', |
| | | )); |
| | |
| | | 'searchform' => array($OUTPUT, 'search_form'), |
| | | )); |
| | | |
| | | |
| | | // register action aliases |
| | | $RCMAIL->register_action_map(array( |
| | | 'preview' => 'show.inc', |
| | | 'print' => 'show.inc', |
| | | 'moveto' => 'move_del.inc', |
| | | 'delete' => 'move_del.inc', |
| | | 'send' => 'sendmail.inc', |
| | | 'expunge' => 'folders.inc', |
| | | 'purge' => 'folders.inc', |
| | | 'remove-attachment' => 'attachments.inc', |
| | | 'display-attachment' => 'attachments.inc', |
| | | 'upload' => 'attachments.inc', |
| | | 'group-expand' => 'autocomplete.inc', |
| | | )); |
| | |
| | | 'identitieslist' => 'rcmail_identities_list', |
| | | )); |
| | | |
| | | // register action aliases |
| | | $RCMAIL->register_action_map(array( |
| | | 'folders' => 'folders.inc', |
| | | 'rename-folder' => 'folders.inc', |
| | | 'delete-folder' => 'folders.inc', |
| | | 'subscribe' => 'folders.inc', |
| | | 'unsubscribe' => 'folders.inc', |
| | | 'purge' => 'folders.inc', |
| | | 'folder-size' => 'folders.inc', |
| | | 'add-identity' => 'edit_identity.inc', |
| | | )); |