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; }
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(); }
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()); }
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); }
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; }