+
+ $tabs = array(
+ array(
+ 'label' => t('Account settings'),
+ 'url' => $a->get_baseurl().'/settings',
+ 'sel' => (($a->argc == 1)?'active':''),
+ ),
+ array(
+ 'label' => t('Connector settings'),
+ 'url' => $a->get_baseurl().'/settings/connectors',
+ 'sel' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
+ ),
+ array(
+ 'label' => t('Plugin settings'),
+ 'url' => $a->get_baseurl().'/settings/addon',
+ 'sel' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
+ ),
+ array(
+ 'label' => t('Connections'),
+ 'url' => $a->get_baseurl() . '/settings/oauth',
+ 'sel' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
+ ),
+ array(
+ 'label' => t('Export personal data'),
+ 'url' => $a->get_baseurl() . '/uexport',
+ 'sel' => ''
+ )
+ );
+
+ $tabtpl = get_markup_template("common_tabs.tpl");
+ $tabs = replace_macros($tabtpl, array(
+ '$tabs' => $tabs,
+ ));
+
+ if(($a->argc > 1) && ($a->argv[1] === 'oauth')) {
+
+ if(($a->argc > 2) && ($a->argv[2] === 'add')) {
+ $tpl = get_markup_template("settings_oauth_edit.tpl");
+ $o .= replace_macros($tpl, array(
+ '$tabs' => $tabs,
+ '$title' => t('Add application'),
+ '$submit' => t('Submit'),
+ '$cancel' => t('Cancel'),
+ '$name' => array('name', t('Name'), '', ''),
+ '$key' => array('key', t('Consumer Key'), '', ''),
+ '$secret' => array('secret', t('Consumer Secret'), '', ''),
+ '$redirect' => array('redirect', t('Redirect'), '', ''),
+ '$icon' => array('icon', t('Icon url'), '', ''),
+ ));
+ return $o;
+ }
+
+ if(($a->argc > 3) && ($a->argv[2] === 'edit')) {
+ $r = q("SELECT * FROM clients WHERE client_id='%s' AND uid=%d",
+ dbesc($a->argv[3]),
+ local_user());
+
+ if (!count($r)){
+ notice(t("You can't edit this application."));
+ return;
+ }
+ $app = $r[0];
+
+ $tpl = get_markup_template("settings_oauth_edit.tpl");
+ $o .= replace_macros($tpl, array(
+ '$tabs' => $tabs,
+ '$title' => t('Add application'),
+ '$submit' => t('Update'),
+ '$cancel' => t('Cancel'),
+ '$name' => array('name', t('Name'), $app['name'] , ''),
+ '$key' => array('key', t('Consumer Key'), $app['client_id'], ''),
+ '$secret' => array('secret', t('Consumer Secret'), $app['pw'], ''),
+ '$redirect' => array('redirect', t('Redirect'), $app['redirect_uri'], ''),
+ '$icon' => array('icon', t('Icon url'), $app['icon'], ''),
+ ));
+ return $o;
+ }
+
+ if(($a->argc > 3) && ($a->argv[2] === 'delete')) {
+ $r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d",
+ dbesc($a->argv[3]),
+ local_user());
+ goaway($a->get_baseurl()."/settings/oauth/");
+ return;
+ }
+
+
+ $r = q("SELECT clients.*, tokens.id as oauth_token, (clients.uid=%d) AS my
+ FROM clients
+ LEFT JOIN tokens ON clients.client_id=tokens.client_id
+ WHERE clients.uid IN (%d,0)",
+ local_user(),
+ local_user());
+
+
+ $tpl = get_markup_template("settings_oauth.tpl");
+ $o .= replace_macros($tpl, array(
+ '$baseurl' => $a->get_baseurl(),
+ '$title' => t('Connected Apps'),
+ '$add' => t('Add application'),
+ '$edit' => t('Edit'),
+ '$delete' => t('Delete'),
+ '$consumerkey' => t('Client key starts with'),
+ '$noname' => t('No name'),
+ '$remove' => t('Remove authorization'),
+ '$tabs' => $tabs,
+ '$apps' => $r,
+ ));
+ return $o;
+
+ }