Пример #1
0
 function get_user_strings()
 {
     global $user;
     global $include_path;
     $str = array();
     if (isset($_SESSION['user_settings']['lang'])) {
         $lang = $_SESSION['user_settings']['lang'];
     } elseif ($this->default_lang) {
         $lang = $this->default_lang;
     } else {
         $lang = 'en_US';
     }
     if (isset($_SESSION['selected_lang']) && $_SESSION['selected_lang'] == $lang && isset($_SESSION['str']) && !empty($_SESSION['str'])) {
         $str = -1;
     }
     if (empty($str)) {
         $file = 'lang/' . $lang . '.php';
         require_check($file);
         $str = (require_once $include_path . $file);
         if (empty($str)) {
             echo 'FATAL: No language file found';
             die;
         }
         $temp = array();
         if (isset($str['charset'])) {
             $charset = $str['charset'];
         } else {
             $charset = false;
         }
         foreach ($str as $i => $v) {
             $temp[$i] = $user->htmlsafe($v, $charset, false, false, false, true);
         }
         $str = $temp;
         $_SESSION['selected_lang'] = $lang;
         $_SESSION['str'] = $str;
     }
     return $str;
 }
Пример #2
0
function get_plugins($pre_login = false, $force = false)
{
    global $user;
    global $conf;
    global $available_display_hooks;
    global $available_work_hooks;
    global $force_plugin_reloading;
    global $include_path;
    global $fd;
    if (isset($conf['plugins'])) {
        $active_plugins = $conf['plugins'];
    } else {
        $active_plugins = array();
    }
    $active_page_hooks = array();
    $active_display_hooks = array();
    $active_work_hooks = array();
    $plugin_list = array();
    $plugins_enabled = false;
    if ($force_plugin_reloading || $force || $user->just_logged_in && is_array($active_plugins)) {
        foreach ($active_plugins as $v) {
            if (is_dir('plugins' . $fd . $v . $fd)) {
                $file = 'plugins' . $fd . $v . $fd . 'config.php';
                if (is_readable($file)) {
                    require_check($file);
                    require $include_path . $file;
                    $name = $v . '_hooks';
                    $langs = $v . '_langs';
                    if (isset(${$name})) {
                        foreach (${$name} as $type => $vals) {
                            if ($type == 'page_hook' && $vals) {
                                $active_page_hooks[] = $v;
                                if (!in_array($v, $plugin_list)) {
                                    $plugin_list[] = $v;
                                }
                                $plugins_enabled = true;
                            } elseif (is_array($vals)) {
                                foreach ($vals as $val) {
                                    if (in_array($val, ${'available_' . $type})) {
                                        ${'active_' . $type}[$v][] = $val;
                                        $plugins_enabled = true;
                                        if (!in_array($v, $plugin_list)) {
                                            $plugin_list[] = $v;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (isset(${$langs})) {
                        $_SESSION['plugin_strings'][$v] = ${$langs};
                    }
                }
            }
        }
        $plugins = array('work_hooks' => $active_work_hooks, 'display_hooks' => $active_display_hooks, 'page_hooks' => $active_page_hooks);
        if (!$pre_login) {
            $_SESSION['plugin_list'] = $plugin_list;
            $_SESSION['plugins'] = $plugins;
            $_SESSION['plugins_enabled'] = $plugins_enabled;
        }
    } else {
        $plugins = $_SESSION['plugins'];
    }
    return $plugins;
}
Пример #3
0
 function process_get_vals($get)
 {
     global $user;
     global $conf;
     global $tools;
     global $hastymail_version;
     global $imap;
     global $app_pages;
     global $include_path;
     global $fd;
     if ($user->is_ajax) {
         return;
     }
     if (is_array($get) && !empty($get)) {
         if (isset($get['mailbox']) && isset($_SESSION['folders'][$get['mailbox']])) {
             $user->page_data['mailbox'] = $get['mailbox'];
             $user->page_data['url_mailbox'] = urlencode($get['mailbox']);
         }
         if (isset($get['page'])) {
             switch (true) {
                 case $get['page'] == 'logout':
                     $this->url_action_login($get);
                     break;
                 case in_array($get['page'], $app_pages) && method_exists($this, 'url_action_' . $get['page']):
                     $this->{'url_action_' . $get['page']}($get);
                     break;
                 default:
                     $found = false;
                     $page_hooks = array();
                     if (isset($_SESSION['plugins']['page_hooks'])) {
                         $page_hooks = $_SESSION['plugins']['page_hooks'];
                     } else {
                         if (!$user->logged_in) {
                             $plugins = get_plugins(true, true);
                             if (isset($plugins['page_hooks'])) {
                                 $page_hooks = $plugins['page_hooks'];
                             }
                         }
                     }
                     if (!empty($page_hooks)) {
                         foreach ($page_hooks as $plugin) {
                             if ($plugin == $get['page']) {
                                 $file = 'plugins' . $fd . $plugin . $fd . 'page.php';
                                 require_check($file);
                                 if (is_readable($file)) {
                                     require_once $include_path . $file;
                                 }
                                 $function_name = 'url_action_' . $plugin;
                                 if (function_exists($function_name)) {
                                     $user->dsp_page = $plugin;
                                     if (!$user->logged_in) {
                                         $tools[$plugin] = hm_new('plugin_tools', $plugin);
                                     }
                                     $user->page_data['plugin_data'][$plugin] = $function_name($tools[$plugin], $_GET, $_POST);
                                     if (is_readable('plugins/' . $plugin . '/css/' . $plugin . '.css')) {
                                         $user->page_data['plugin_css'][] = 'plugins/' . $plugin . '/css/' . $plugin . '.css';
                                     }
                                     $found = true;
                                     break;
                                 }
                             }
                         }
                     }
                     if (!$found) {
                         $this->url_action_not_found($get);
                         $user->page_data['top_link'] = '';
                     }
                     break;
             }
         } else {
             $this->url_action_not_found($get);
             $user->page_data['top_link'] = '';
         }
     } else {
         if ($user->logged_in) {
             $this->url_action_mailbox($get);
         } else {
             $this->url_action_login($get);
         }
     }
     if (isset($_SESSION['just_logged_in']) && $_SESSION['just_logged_in']) {
         if (isset($_SESSION['updated'])) {
             $this->errors[] = sprintf($user->str[532], $hastymail_version);
             unset($_SESSION['updated']);
         } else {
             $this->errors[] = $user->str[383] . ' ' . $user->htmlsafe($_SESSION['user_data']['username']);
         }
         do_work_hook('just_logged_in');
         if (isset($_SESSION['user_settings']['new_user']) && $_SESSION['user_settings']['new_user']) {
             $this->autocreate_folders();
             $this->autocreate_profile($conf);
             do_work_hook('first_time_login');
             $this->write_settings(true);
             $user->page_data['settings'] = $_SESSION['user_settings'];
             $imap->get_folders(true);
             $user->page_data['folders'] = $_SESSION['folders'];
         }
         if (isset($_SESSION['user_settings']['profiles'][0]) && empty($_SESSION['user_settings']['profiles'][0]) && count($_SESSION['user_settings']['profiles']) == 1) {
             $this->errors[] = $user->str[384];
         }
         $this->set_default_profile($conf);
     }
 }