mirror of
https://github.com/YunoHost-Apps/hubzilla_ynh.git
synced 2024-09-03 19:26:21 +02:00
180 lines
6 KiB
PHP
180 lines
6 KiB
PHP
<?php
|
|
|
|
function siteinfo_init(&$a) {
|
|
global $db;
|
|
|
|
if ($a->argv[1]=="json"){
|
|
$register_policy = Array('REGISTER_CLOSED', 'REGISTER_APPROVE', 'REGISTER_OPEN');
|
|
$directory_mode = Array('DIRECTORY_MODE_NORMAL', 'DIRECTORY_MODE_SECONDARY','DIRECTORY_MODE_PRIMARY', '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'] . '@' . get_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'] . '@' . get_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($a->plugins) && count($a->plugins)) {
|
|
$r = q("select * from addon where hidden = 0");
|
|
if(count($r))
|
|
foreach($r as $rr)
|
|
$visible_plugins[] = $rr['name'];
|
|
}
|
|
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 = RED_VERSION;
|
|
if(@is_dir('.git') && function_exists('shell_exec')) {
|
|
$commit = trim( @shell_exec('git log -1 --format="%h"'));
|
|
if(! get_config('system','hidden_tag_siteinfo'))
|
|
$tag = trim( @shell_exec('git describe --tags --abbrev=0'));
|
|
else
|
|
$tag = '';
|
|
}
|
|
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'));
|
|
|
|
|
|
$data = Array(
|
|
'version' => $version,
|
|
'version_tag' => $tag,
|
|
'commit' => $commit,
|
|
'url' => z_root(),
|
|
'plugins' => $visible_plugins,
|
|
'register_policy' => $register_policy[$a->config['system']['register_policy']],
|
|
'directory_mode' => $directory_mode[$a->config['system']['directory_mode']],
|
|
'language' => get_config('system','language'),
|
|
'diaspora_emulation' => get_config('system','diaspora_enabled'),
|
|
'rss_connections' => get_config('system','feed_contacts'),
|
|
'expiration' => $site_expire,
|
|
'default_service_restrictions' => $service_class,
|
|
'admin' => $admin,
|
|
'site_name' => (($site_name) ? $site_name : ''),
|
|
'platform' => PLATFORM_NAME,
|
|
'dbdriver' => $db->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
|
|
);
|
|
json_return_and_die($data);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function siteinfo_content(&$a) {
|
|
|
|
if(! get_config('system','hidden_version_siteinfo')) {
|
|
$version = sprintf( t('Version %s'), RED_VERSION );
|
|
if(@is_dir('.git') && function_exists('shell_exec')) {
|
|
$commit = @shell_exec('git log -1 --format="%h"');
|
|
$tag = @shell_exec('git describe --tags --abbrev=0');
|
|
}
|
|
if(! isset($commit) || strlen($commit) > 16)
|
|
$commit = '';
|
|
}
|
|
else {
|
|
$version = $commit = '';
|
|
}
|
|
$visible_plugins = array();
|
|
if(is_array($a->plugins) && count($a->plugins)) {
|
|
$r = q("select * from addon where hidden = 0");
|
|
if(count($r))
|
|
foreach($r as $rr)
|
|
$visible_plugins[] = $rr['name'];
|
|
}
|
|
|
|
$plugins_list = '';
|
|
if(count($visible_plugins)) {
|
|
$plugins_text = t('Installed plugins/addons/apps:');
|
|
$sorted = $visible_plugins;
|
|
$s = '';
|
|
sort($sorted);
|
|
foreach($sorted as $p) {
|
|
if(strlen($p)) {
|
|
if(strlen($s)) $s .= ', ';
|
|
$s .= $p;
|
|
}
|
|
}
|
|
$plugins_list .= $s;
|
|
}
|
|
else
|
|
$plugins_text = t('No installed plugins/addons/apps');
|
|
|
|
$txt = get_config('system','admininfo');
|
|
$admininfo = bbcode($txt);
|
|
|
|
if(file_exists('doc/site_donate.html'))
|
|
$donate .= file_get_contents('doc/site_donate.html');
|
|
|
|
$o = replace_macros(get_markup_template('siteinfo.tpl'), array(
|
|
'$title' => t('$Projectname'),
|
|
'$description' => t('This is a hub of $Projectname - a global cooperative network of decentralized privacy enhanced websites.'),
|
|
'$version' => $version,
|
|
'$tag_txt' => t('Tag: '),
|
|
'$tag' => $tag,
|
|
'$polled' => t('Last background fetch: '),
|
|
'$lastpoll' => get_poller_runtime(),
|
|
'$commit' => $commit,
|
|
'$web_location' => t('Running at web location') . ' ' . z_root(),
|
|
'$visit' => t('Please visit <a href="https://redmatrix.me">redmatrix.me</a> to learn more about $Projectname.'),
|
|
'$bug_text' => t('Bug reports and issues: please visit'),
|
|
'$bug_link_url' => 'https://github.com/redmatrix/hubzilla/issues',
|
|
'$bug_link_text' => t('$projectname issues'),
|
|
'$contact' => t('Suggestions, praise, etc. - please email "redmatrix" at librelist - dot com'),
|
|
'$donate' => $donate,
|
|
'$adminlabel' => t('Site Administrators'),
|
|
'$admininfo' => $admininfo,
|
|
'$plugins_text' => $plugins_text,
|
|
'$plugins_list' => $plugins_list
|
|
));
|
|
|
|
call_hooks('about_hook', $o);
|
|
|
|
return $o;
|
|
|
|
}
|