Esempio n. 1
0
function get_site_info()
{
    $register_policy = array('REGISTER_CLOSED', 'REGISTER_APPROVE', 'REGISTER_OPEN');
    $directory_mode = array('DIRECTORY_MODE_NORMAL', 'DIRECTORY_MODE_PRIMARY', 'DIRECTORY_MODE_SECONDARY', 256 => 'DIRECTORY_MODE_STANDALONE');
    $sql_extra = '';
    $r = q("select * from channel left join account on account_id = channel_account_id where ( account_roles & 4096 )>0 and account_default_channel = channel_id");
    if ($r) {
        $admin = array();
        foreach ($r as $rr) {
            if ($rr['channel_pageflags'] & PAGE_HUBADMIN) {
                $admin[] = array('name' => $rr['channel_name'], 'address' => $rr['channel_address'] . '@' . App::get_hostname(), 'channel' => z_root() . '/channel/' . $rr['channel_address']);
            }
        }
        if (!$admin) {
            foreach ($r as $rr) {
                $admin[] = array('name' => $rr['channel_name'], 'address' => $rr['channel_address'] . '@' . App::get_hostname(), 'channel' => z_root() . '/channel/' . $rr['channel_address']);
            }
        }
    } else {
        $admin = false;
    }
    $def_service_class = get_config('system', 'default_service_class');
    if ($def_service_class) {
        $service_class = get_config('service_class', $def_service_class);
    } else {
        $service_class = false;
    }
    $visible_plugins = array();
    if (is_array(App::$plugins) && count(App::$plugins)) {
        $r = q("select * from addon where hidden = 0");
        if (count($r)) {
            foreach ($r as $rr) {
                $visible_plugins[] = $rr['aname'];
            }
        }
    }
    sort($visible_plugins);
    if (@is_dir('.git') && function_exists('shell_exec')) {
        $commit = trim(@shell_exec('git log -1 --format="%h"'));
    }
    if (!isset($commit) || strlen($commit) > 16) {
        $commit = '';
    }
    $site_info = get_config('system', 'info');
    $site_name = get_config('system', 'sitename');
    if (!get_config('system', 'hidden_version_siteinfo')) {
        $version = Zotlabs\Lib\System::get_project_version();
        $tag = Zotlabs\Lib\System::get_std_version();
        if (@is_dir('.git') && function_exists('shell_exec')) {
            $commit = trim(@shell_exec('git log -1 --format="%h"'));
        }
        if (!isset($commit) || strlen($commit) > 16) {
            $commit = '';
        }
    } else {
        $version = $commit = '';
    }
    //Statistics
    $channels_total_stat = intval(get_config('system', 'channels_total_stat'));
    $channels_active_halfyear_stat = intval(get_config('system', 'channels_active_halfyear_stat'));
    $channels_active_monthly_stat = intval(get_config('system', 'channels_active_monthly_stat'));
    $local_posts_stat = intval(get_config('system', 'local_posts_stat'));
    $hide_in_statistics = intval(get_config('system', 'hide_in_statistics'));
    $site_expire = intval(get_config('system', 'default_expire_days'));
    load_config('feature_lock');
    $locked_features = array();
    if (is_array(App::$config['feature_lock']) && count(App::$config['feature_lock'])) {
        foreach (App::$config['feature_lock'] as $k => $v) {
            if ($k === 'config_loaded') {
                continue;
            }
            $locked_features[$k] = intval($v);
        }
    }
    $data = array('version' => $version, 'version_tag' => $tag, 'server_role' => Zotlabs\Lib\System::get_server_role(), 'commit' => $commit, 'url' => z_root(), 'plugins' => $visible_plugins, 'register_policy' => $register_policy[get_config('system', 'register_policy')], 'invitation_only' => intval(get_config('system', 'invitation_only')), 'directory_mode' => $directory_mode[get_config('system', 'directory_mode')], 'language' => get_config('system', 'language'), 'rss_connections' => intval(get_config('system', 'feed_contacts')), 'expiration' => $site_expire, 'default_service_restrictions' => $service_class, 'locked_features' => $locked_features, 'admin' => $admin, 'site_name' => $site_name ? $site_name : '', 'platform' => Zotlabs\Lib\System::get_platform_name(), 'dbdriver' => DBA::$dba->getdriver(), 'lastpoll' => get_config('system', 'lastpoll'), 'info' => $site_info ? $site_info : '', 'channels_total' => $channels_total_stat, 'channels_active_halfyear' => $channels_active_halfyear_stat, 'channels_active_monthly' => $channels_active_monthly_stat, 'local_posts' => $local_posts_stat, 'hide_in_statistics' => $hide_in_statistics);
    return $data;
}