mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 06:35:15 +00:00
129 lines
3.7 KiB
PHP
129 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace Code\Widget;
|
|
|
|
use App;
|
|
use Code\Lib\Apps;
|
|
use Code\Render\Theme;
|
|
|
|
|
|
class Settings_menu implements WidgetInterface
|
|
{
|
|
|
|
public function widget(array $arguments): string
|
|
{
|
|
|
|
if (!local_channel()) {
|
|
return '';
|
|
}
|
|
|
|
|
|
$channel = App::get_channel();
|
|
|
|
$x = q(
|
|
"select count(*) as total from hubloc where hubloc_hash = '%s' and hubloc_deleted = 0 ",
|
|
dbesc($channel['channel_hash'])
|
|
);
|
|
|
|
$hublocs = $x && $x[0]['total'] > 1;
|
|
|
|
$tabs = [
|
|
[
|
|
'label' => t('Account settings'),
|
|
'url' => z_root() . '/settings/account',
|
|
'selected' => ((argv(1) === 'account') ? 'active' : ''),
|
|
],
|
|
|
|
[
|
|
'label' => t('Channel settings'),
|
|
'url' => z_root() . '/settings/channel',
|
|
'selected' => ((argv(1) === 'channel') ? 'active' : ''),
|
|
],
|
|
|
|
];
|
|
|
|
$tabs[] = [
|
|
'label' => t('Edit profile'),
|
|
'url' => z_root() . '/settings/profile_edit',
|
|
'selected' => ((argv(1) === 'profile_edit') ? 'active' : ''),
|
|
];
|
|
|
|
$tabs[] = [
|
|
'label' => t('Display settings'),
|
|
'url' => z_root() . '/settings/display',
|
|
'selected' => ((argv(1) === 'display') ? 'active' : ''),
|
|
];
|
|
|
|
$tabs[] = [
|
|
'label' => t('Manage blocked sites/channels'),
|
|
'url' => z_root() . '/superblock',
|
|
'selected' => ((argv(0) === 'superblock') ? 'active' : ''),
|
|
];
|
|
|
|
|
|
if ($hublocs) {
|
|
$tabs[] = [
|
|
'label' => t('Manage locations'),
|
|
'url' => z_root() . '/locs',
|
|
'selected' => ((argv(1) === 'locs') ? 'active' : ''),
|
|
];
|
|
}
|
|
|
|
$tabs[] = [
|
|
'label' => t('Export channel'),
|
|
'url' => z_root() . '/uexport',
|
|
'selected' => ''
|
|
];
|
|
|
|
$tabs[] = [
|
|
'label' => t('Multifactor authentication'),
|
|
'url' => z_root() . '/settings/multifactor',
|
|
'selected' => ((argv(1) === 'multifactor') ? 'active' : ''),
|
|
];
|
|
|
|
if (Apps::system_app_installed(local_channel(), 'Clients')) {
|
|
$tabs[] = [
|
|
'label' => t('Client apps'),
|
|
'url' => z_root() . '/settings/oauth2',
|
|
'selected' => ((argv(1) === 'oauth2') ? 'active' : ''),
|
|
];
|
|
}
|
|
|
|
if(Apps::system_app_installed(local_channel(),'Roles')) {
|
|
$tabs[] = [
|
|
'label' => t('Permission roles'),
|
|
'url' => z_root() . '/settings/permcats',
|
|
'selected' => ((argv(1) === 'permcats') ? 'active' : ''),
|
|
];
|
|
}
|
|
|
|
$tabs[] = [
|
|
'label' => t('External Identities'),
|
|
'url' => z_root() . '/settings/identities',
|
|
'selected' => ((argv(1) === 'identities') ? 'active' : '')
|
|
];
|
|
|
|
$links = q("select * from linkid where sigtype = %d and ident = '%s'",
|
|
intval(IDLINK_RELME),
|
|
dbesc($channel['channel_hash'])
|
|
);
|
|
|
|
$sources = q("select * from source where src_channel_id = %d",
|
|
intval($channel['channel_id'])
|
|
);
|
|
|
|
if ($links || $sources) {
|
|
$tabs[] = [
|
|
'label' => t('Channel Sources'),
|
|
'url' => z_root() . '/sources',
|
|
'selected' => ((argv(1) === 'sources') ? 'active' : ''),
|
|
];
|
|
}
|
|
|
|
return replace_macros(Theme::get_template('generic_links_widget.tpl'), [
|
|
'$title' => t('Settings'),
|
|
'$class' => 'settings-widget',
|
|
'$items' => $tabs,
|
|
]);
|
|
}
|
|
}
|