コード例 #1
0
ファイル: contact_widgets.php プロジェクト: vinzv/friendica
function unavailable_networks()
{
    $network_filter = "";
    $networks = array();
    if (!plugin_enabled("appnet")) {
        $networks[] = NETWORK_APPNET;
    }
    if (!plugin_enabled("fbpost") and !plugin_enabled("facebook")) {
        $networks[] = NETWORK_FACEBOOK;
    }
    if (!plugin_enabled("statusnet")) {
        $networks[] = NETWORK_STATUSNET;
    }
    if (!plugin_enabled("pumpio")) {
        $networks[] = NETWORK_PUMPIO;
    }
    if (!plugin_enabled("twitter")) {
        $networks[] = NETWORK_TWITTER;
    }
    if (get_config("system", "ostatus_disabled")) {
        $networks[] = NETWORK_OSTATUS;
    }
    if (!get_config("system", "diaspora_enabled")) {
        $networks[] = NETWORK_DIASPORA;
    }
    if (!sizeof($networks)) {
        return "";
    }
    $network_filter = implode("','", $networks);
    $network_filter = "AND `network` NOT IN ('{$network_filter}')";
    return $network_filter;
}
コード例 #2
0
ファイル: statistics_json.php プロジェクト: vinzv/friendica
function statistics_json_init(&$a)
{
    if (!get_config("system", "nodeinfo")) {
        http_status_exit(404);
        killme();
    }
    $statistics = array("name" => $a->config["sitename"], "network" => FRIENDICA_PLATFORM, "version" => FRIENDICA_VERSION . "-" . DB_UPDATE_VERSION, "registrations_open" => $a->config['register_policy'] != 0, "total_users" => get_config('nodeinfo', 'total_users'), "active_users_halfyear" => get_config('nodeinfo', 'active_users_halfyear'), "active_users_monthly" => get_config('nodeinfo', 'active_users_monthly'), "local_posts" => get_config('nodeinfo', 'local_posts'));
    $statistics["services"] = array();
    $statistics["services"]["appnet"] = plugin_enabled("appnet");
    $statistics["services"]["blogger"] = plugin_enabled("blogger");
    $statistics["services"]["buffer"] = plugin_enabled("buffer");
    $statistics["services"]["dreamwidth"] = plugin_enabled("dwpost");
    $statistics["services"]["facebook"] = plugin_enabled("fbpost");
    $statistics["services"]["gnusocial"] = plugin_enabled("statusnet");
    $statistics["services"]["googleplus"] = plugin_enabled("gpluspost");
    $statistics["services"]["libertree"] = plugin_enabled("libertree");
    $statistics["services"]["livejournal"] = plugin_enabled("ljpost");
    $statistics["services"]["pumpio"] = plugin_enabled("pumpio");
    $statistics["services"]["twitter"] = plugin_enabled("twitter");
    $statistics["services"]["tumblr"] = plugin_enabled("tumblr");
    $statistics["services"]["wordpress"] = plugin_enabled("wppost");
    $statistics["appnet"] = $statistics["services"]["appnet"];
    $statistics["blogger"] = $statistics["services"]["blogger"];
    $statistics["buffer"] = $statistics["services"]["buffer"];
    $statistics["dreamwidth"] = $statistics["services"]["dreamwidth"];
    $statistics["facebook"] = $statistics["services"]["facebook"];
    $statistics["gnusocial"] = $statistics["services"]["gnusocial"];
    $statistics["googleplus"] = $statistics["services"]["googleplus"];
    $statistics["libertree"] = $statistics["services"]["libertree"];
    $statistics["livejournal"] = $statistics["services"]["livejournal"];
    $statistics["pumpio"] = $statistics["services"]["pumpio"];
    $statistics["twitter"] = $statistics["services"]["twitter"];
    $statistics["tumblr"] = $statistics["services"]["tumblr"];
    $statistics["wordpress"] = $statistics["services"]["wordpress"];
    header("Content-Type: application/json");
    echo json_encode($statistics, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
    logger("statistics_init: printed " . print_r($statistics, true), LOGGER_DATA);
    killme();
}
コード例 #3
0
ファイル: nodeinfo.php プロジェクト: vinzv/friendica
function nodeinfo_cron()
{
    $a = get_app();
    // If the plugin "statistics_json" is enabled then disable it and actrivate nodeinfo.
    if (plugin_enabled("statistics_json")) {
        set_config("system", "nodeinfo", true);
        $plugin = "statistics_json";
        $plugins = get_config("system", "addon");
        $plugins_arr = array();
        if ($plugins) {
            $plugins_arr = explode(",", str_replace(" ", "", $plugins));
            $idx = array_search($plugin, $plugins_arr);
            if ($idx !== false) {
                unset($plugins_arr[$idx]);
                uninstall_plugin($plugin);
                set_config("system", "addon", implode(", ", $plugins_arr));
            }
        }
    }
    if (!get_config("system", "nodeinfo")) {
        return;
    }
    $last = get_config('nodeinfo', 'last_calucation');
    if ($last) {
        // Calculate every 24 hours
        $next = $last + 24 * 60 * 60;
        if ($next > time()) {
            logger("calculation intervall not reached");
            return;
        }
    }
    logger("cron_start");
    $users = q("SELECT profile.*, `user`.`login_date`, `lastitem`.`lastitem_date`\n\t\t\tFROM (SELECT MAX(`item`.`changed`) as `lastitem_date`, `item`.`uid`\n\t\t\t\tFROM `item`\n\t\t\t\t\tWHERE `item`.`type` = 'wall'\n\t\t\t\t\t\tGROUP BY `item`.`uid`) AS `lastitem`\n\t\t\t\t\t\tRIGHT OUTER JOIN `user` ON `user`.`uid` = `lastitem`.`uid`, `contact`, `profile`\n                                WHERE\n\t\t\t\t\t`user`.`uid` = `contact`.`uid` AND `profile`.`uid` = `user`.`uid`\n\t\t\t\t\tAND `profile`.`is-default` AND (`profile`.`publish` OR `profile`.`net-publish`)\n\t\t\t\t\tAND `user`.`verified` AND `contact`.`self`\n\t\t\t\t\tAND NOT `user`.`blocked`\n\t\t\t\t\tAND NOT `user`.`account_removed`\n\t\t\t\t\tAND NOT `user`.`account_expired`");
    if (is_array($users)) {
        $total_users = count($users);
        $active_users_halfyear = 0;
        $active_users_monthly = 0;
        $halfyear = time() - 180 * 24 * 60 * 60;
        $month = time() - 30 * 24 * 60 * 60;
        foreach ($users as $user) {
            if (strtotime($user['login_date']) > $halfyear or strtotime($user['lastitem_date']) > $halfyear) {
                ++$active_users_halfyear;
            }
            if (strtotime($user['login_date']) > $month or strtotime($user['lastitem_date']) > $month) {
                ++$active_users_monthly;
            }
        }
        set_config('nodeinfo', 'total_users', $total_users);
        logger("total_users: " . $total_users, LOGGER_DEBUG);
        set_config('nodeinfo', 'active_users_halfyear', $active_users_halfyear);
        set_config('nodeinfo', 'active_users_monthly', $active_users_monthly);
    }
    //$posts = q("SELECT COUNT(*) AS local_posts FROM `item` WHERE `wall` AND `uid` != 0 AND `id` = `parent` AND left(body, 6) != '[share'");
    $posts = q("SELECT COUNT(*) AS `local_posts` FROM `item`\n\t\t\tINNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`\n\t\t\tWHERE `contact`.`self` and `item`.`id` = `item`.`parent` AND left(body, 6) != '[share' AND `item`.`network` IN ('%s', '%s', '%s')", dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_DFRN));
    if (!is_array($posts)) {
        $local_posts = -1;
    } else {
        $local_posts = $posts[0]["local_posts"];
    }
    set_config('nodeinfo', 'local_posts', $local_posts);
    logger("local_posts: " . $local_posts, LOGGER_DEBUG);
    $posts = q("SELECT COUNT(*) AS `local_comments` FROM `item`\n\t\t\tINNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`\n\t\t\tWHERE `contact`.`self` and `item`.`id` != `item`.`parent` AND `item`.`network` IN ('%s', '%s', '%s')", dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_DFRN));
    if (!is_array($posts)) {
        $local_comments = -1;
    } else {
        $local_comments = $posts[0]["local_comments"];
    }
    set_config('nodeinfo', 'local_comments', $local_comments);
    // Now trying to register
    $url = "http://the-federation.info/register/" . $a->get_hostname();
    logger('registering url: ' . $url, LOGGER_DEBUG);
    $ret = fetch_url($url);
    logger('registering answer: ' . $ret, LOGGER_DEBUG);
    logger("cron_end");
    set_config('nodeinfo', 'last_calucation', time());
}
コード例 #4
0
ファイル: theme.php プロジェクト: vinzv/friendica
function vier_community_info()
{
    $a = get_app();
    $show_pages = get_vier_config("show_pages", 1);
    $show_profiles = get_vier_config("show_profiles", 1);
    $show_helpers = get_vier_config("show_helpers", 1);
    $show_services = get_vier_config("show_services", 1);
    $show_friends = get_vier_config("show_friends", 1);
    $show_lastusers = get_vier_config("show_lastusers", 1);
    //get_baseurl
    $url = $a->get_baseurl($ssl_state);
    $aside['$url'] = $url;
    // comunity_profiles
    if ($show_profiles) {
        $r = suggestion_query(local_user(), 0, 9);
        $tpl = get_markup_template('ch_directory_item.tpl');
        if (count($r)) {
            $aside['$comunity_profiles_title'] = t('Community Profiles');
            $aside['$comunity_profiles_items'] = array();
            foreach ($r as $rr) {
                $entry = replace_macros($tpl, array('$id' => $rr['id'], '$profile_link' => $a->get_baseurl() . '/follow/?url=' . urlencode($rr['url']), '$photo' => proxy_url($rr['photo'], false, PROXY_SIZE_MICRO), '$alt_text' => $rr['name']));
                $aside['$comunity_profiles_items'][] = $entry;
            }
        }
    }
    // last 9 users
    if ($show_lastusers) {
        $publish = get_config('system', 'publish_all') ? '' : " AND `publish` = 1 ";
        $order = " ORDER BY `register_date` DESC ";
        $r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`\n\t\t\t\tFROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`\n\t\t\t\tWHERE `is-default` = 1 {$publish} AND `user`.`blocked` = 0 {$order} LIMIT %d , %d ", 0, 9);
        $tpl = get_markup_template('ch_directory_item.tpl');
        if (count($r)) {
            $aside['$lastusers_title'] = t('Last users');
            $aside['$lastusers_items'] = array();
            foreach ($r as $rr) {
                $profile_link = $a->get_baseurl() . '/profile/' . (strlen($rr['nickname']) ? $rr['nickname'] : $rr['profile_uid']);
                $entry = replace_macros($tpl, array('$id' => $rr['id'], '$profile_link' => $profile_link, '$photo' => $a->get_cached_avatar_image($rr['thumb']), '$alt_text' => $rr['name']));
                $aside['$lastusers_items'][] = $entry;
            }
        }
    }
    //right_aside FIND FRIENDS
    if ($show_friends and local_user()) {
        $nv = array();
        $nv['title'] = array("", t('Find Friends'), "", "");
        $nv['directory'] = array('directory', t('Local Directory'), "", "");
        $nv['global_directory'] = array(get_server(), t('Global Directory'), "", "");
        $nv['match'] = array('match', t('Similar Interests'), "", "");
        $nv['suggest'] = array('suggest', t('Friend Suggestions'), "", "");
        $nv['invite'] = array('invite', t('Invite Friends'), "", "");
        $nv['search'] = '<form name="simple_bar" method="get" action="' . $a->get_baseurl() . '/dirfind">
						<span class="sbox_l"></span>
						<span class="sbox">
						<input type="text" name="search" size="13" maxlength="50">
						</span>
						<span class="sbox_r" id="srch_clear"></span>';
        $aside['$nv'] = $nv;
    }
    //Community_Pages at right_aside
    if ($show_pages and local_user()) {
        require_once 'include/forums.php';
        if (x($_GET['cid']) && intval($_GET['cid']) != 0) {
            $cid = $_GET['cid'];
        }
        //sort by last updated item
        $lastitem = true;
        $contacts = get_forumlist($a->user['uid'], true, $lastitem, true);
        $total = count($contacts);
        $visible_forums = 10;
        if (count($contacts)) {
            $id = 0;
            foreach ($contacts as $contact) {
                $selected = $cid == $contact['id'] ? ' forum-selected' : '';
                $entry = array('url' => z_root() . '/network?f=&cid=' . $contact['id'], 'external_url' => z_root() . '/redir/' . $contact['id'], 'name' => $contact['name'], 'cid' => $contact['id'], 'selected' => $selected, 'micro' => proxy_url($contact['micro'], false, PROXY_SIZE_MICRO), 'id' => ++$id);
                $entries[] = $entry;
            }
            $tpl = get_markup_template('widget_forumlist_right.tpl');
            $page .= replace_macros($tpl, array('$title' => t('Forums'), '$forums' => $entries, '$link_desc' => t('External link to forum'), '$total' => $total, '$visible_forums' => $visible_forums, '$showmore' => t('show more')));
            $aside['$page'] = $page;
        }
    }
    //END Community Page
    //helpers
    if ($show_helpers) {
        $r = array();
        $helperlist = get_config("vier", "helperlist");
        $helpers = explode(",", $helperlist);
        if ($helpers) {
            $query = "";
            foreach ($helpers as $index => $helper) {
                if ($query != "") {
                    $query .= ",";
                }
                $query .= "'" . dbesc(normalise_link(trim($helper))) . "'";
            }
            $r = q("SELECT `url`, `name` FROM `gcontact` WHERE `nurl` IN (%s)", $query);
        }
        foreach ($r as $index => $helper) {
            $r[$index]["url"] = zrl($helper["url"]);
        }
        $r[] = array("url" => "help/Quick-Start-guide", "name" => t("Quick Start"));
        $tpl = get_markup_template('ch_helpers.tpl');
        if ($r) {
            $helpers = array();
            $helpers['title'] = array("", t('Help'), "", "");
            $aside['$helpers_items'] = array();
            foreach ($r as $rr) {
                $entry = replace_macros($tpl, array('$url' => $rr['url'], '$title' => $rr['name']));
                $aside['$helpers_items'][] = $entry;
            }
            $aside['$helpers'] = $helpers;
        }
    }
    //end helpers
    //connectable services
    if ($show_services) {
        $r = array();
        if (plugin_enabled("appnet")) {
            $r[] = array("photo" => "images/appnet.png", "name" => "App.net");
        }
        if (plugin_enabled("buffer")) {
            $r[] = array("photo" => "images/buffer.png", "name" => "Buffer");
        }
        if (plugin_enabled("blogger")) {
            $r[] = array("photo" => "images/blogger.png", "name" => "Blogger");
        }
        if (plugin_enabled("dwpost")) {
            $r[] = array("photo" => "images/dreamwidth.png", "name" => "Dreamwidth");
        }
        if (plugin_enabled("fbpost")) {
            $r[] = array("photo" => "images/facebook.png", "name" => "Facebook");
        }
        if (plugin_enabled("ifttt")) {
            $r[] = array("photo" => "addon/ifttt/ifttt.png", "name" => "IFTTT");
        }
        if (plugin_enabled("statusnet")) {
            $r[] = array("photo" => "images/gnusocial.png", "name" => "GNU Social");
        }
        if (plugin_enabled("gpluspost")) {
            $r[] = array("photo" => "images/googleplus.png", "name" => "Google+");
        }
        //if (plugin_enabled("ijpost"))
        //	$r[] = array("photo" => "images/", "name" => "");
        if (plugin_enabled("libertree")) {
            $r[] = array("photo" => "images/libertree.png", "name" => "Libertree");
        }
        //if (plugin_enabled("ljpost"))
        //	$r[] = array("photo" => "images/", "name" => "");
        if (plugin_enabled("pumpio")) {
            $r[] = array("photo" => "images/pumpio.png", "name" => "pump.io");
        }
        if (plugin_enabled("tumblr")) {
            $r[] = array("photo" => "images/tumblr.png", "name" => "Tumblr");
        }
        if (plugin_enabled("twitter")) {
            $r[] = array("photo" => "images/twitter.png", "name" => "Twitter");
        }
        if (plugin_enabled("wppost")) {
            $r[] = array("photo" => "images/wordpress.png", "name" => "Wordpress");
        }
        if (function_exists("imap_open") and !get_config("system", "imap_disabled") and !get_config("system", "dfrn_only")) {
            $r[] = array("photo" => "images/mail.png", "name" => "E-Mail");
        }
        $tpl = get_markup_template('ch_connectors.tpl');
        if (count($r)) {
            $con_services = array();
            $con_services['title'] = array("", t('Connect Services'), "", "");
            $aside['$con_services'] = $con_services;
            foreach ($r as $rr) {
                $entry = replace_macros($tpl, array('$url' => $url, '$photo' => $rr['photo'], '$alt_text' => $rr['name']));
                $aside['$connector_items'][] = $entry;
            }
        }
    }
    //end connectable services
    //print right_aside
    $tpl = get_markup_template('communityhome.tpl');
    $a->page['right_aside'] = replace_macros($tpl, $aside);
}
コード例 #5
0
ファイル: update.php プロジェクト: vinzv/friendica
function update_1190()
{
    require_once 'include/plugin.php';
    set_config('system', 'maintenance', 1);
    if (plugin_enabled('forumlist')) {
        $plugin = 'forumlist';
        $plugins = get_config('system', 'addon');
        $plugins_arr = array();
        if ($plugins) {
            $plugins_arr = explode(",", str_replace(" ", "", $plugins));
            $idx = array_search($plugin, $plugins_arr);
            if ($idx !== false) {
                unset($plugins_arr[$idx]);
                //delete forumlist manually from addon and hook table
                // since uninstall_plugin() don't work here
                q("DELETE FROM `addon` WHERE `name` = 'forumlist' ");
                q("DELETE FROM `hook` WHERE `file` = 'addon/forumlist/forumlist.php' ");
                set_config('system', 'addon', implode(", ", $plugins_arr));
            }
        }
    }
    // select old formlist addon entries
    $r = q("SELECT `uid`, `cat`, `k`, `v` FROM `pconfig` WHERE `cat` = '%s' ", dbesc('forumlist'));
    // convert old forumlist addon entries in new config entries
    if (count($r)) {
        foreach ($r as $rr) {
            $uid = $rr['uid'];
            $family = $rr['cat'];
            $key = $rr['k'];
            $value = $rr['v'];
            if ($key === 'randomise') {
                del_pconfig($uid, $family, $key);
            }
            if ($key === 'show_on_profile') {
                if ($value) {
                    set_pconfig($uid, feature, forumlist_profile, $value);
                }
                del_pconfig($uid, $family, $key);
            }
            if ($key === 'show_on_network') {
                if ($value) {
                    set_pconfig($uid, feature, forumlist_widget, $value);
                }
                del_pconfig($uid, $family, $key);
            }
        }
    }
    set_config('system', 'maintenance', 0);
    return UPDATE_SUCCESS;
}