Add Install Mode
- merged `friendica/develop` to `nupplaPhil/install_mode` - content merged `mod/install.php` to `src/Class/`
This commit is contained in:
commit
1ab965c944
128 changed files with 34290 additions and 33303 deletions
|
@ -1120,6 +1120,7 @@ function admin_page_site_post(App $a)
|
|||
}
|
||||
Config::set('system', 'language', $language);
|
||||
Config::set('system', 'theme', $theme);
|
||||
Theme::install($theme);
|
||||
|
||||
if ($theme_mobile == '---') {
|
||||
Config::delete('system', 'mobile-theme');
|
||||
|
@ -1262,6 +1263,7 @@ function admin_page_site(App $a)
|
|||
|
||||
/* Community page style */
|
||||
$community_page_style_choices = [
|
||||
CP_NO_INTERNAL_COMMUNITY => L10n::t("No community page for local users"),
|
||||
CP_NO_COMMUNITY_PAGE => L10n::t("No community page"),
|
||||
CP_USERS_ON_SERVER => L10n::t("Public postings from users of this site"),
|
||||
CP_GLOBAL_COMMUNITY => L10n::t("Public postings from the federated network"),
|
||||
|
|
|
@ -23,6 +23,12 @@ function babel_content()
|
|||
'content' => visible_lf($bbcode)
|
||||
];
|
||||
|
||||
$plain = Text\BBCode::toPlaintext($bbcode, false);
|
||||
$results[] = [
|
||||
'title' => L10n::t('BBCode::toPlaintext'),
|
||||
'content' => visible_lf($plain)
|
||||
];
|
||||
|
||||
$html = Text\BBCode::convert($bbcode);
|
||||
$results[] = [
|
||||
'title' => L10n::t("BBCode::convert \x28raw HTML\x29"),
|
||||
|
|
|
@ -30,6 +30,11 @@ function community_content(App $a, $update = 0)
|
|||
|
||||
$page_style = Config::get('system', 'community_page_style');
|
||||
|
||||
if ($page_style == CP_NO_INTERNAL_COMMUNITY) {
|
||||
notice(L10n::t('Access denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
if ($a->argc > 1) {
|
||||
$content = $a->argv[1];
|
||||
} else {
|
||||
|
|
|
@ -25,42 +25,13 @@ function dfrn_notify_post(App $a) {
|
|||
$data = json_decode($postdata);
|
||||
if (is_object($data)) {
|
||||
$nick = defaults($a->argv, 1, '');
|
||||
|
||||
$user = dba::selectFirst('user', [], ['nickname' => $nick, 'account_expired' => false, 'account_removed' => false]);
|
||||
if (!DBM::is_result($user)) {
|
||||
System::httpExit(500);
|
||||
}
|
||||
$msg = Diaspora::decodeRaw($user, $postdata);
|
||||
|
||||
// Check if the user has got this contact
|
||||
$cid = Contact::getIdForURL($msg['author'], $user['uid']);
|
||||
if (!$cid) {
|
||||
// Otherwise there should be a public contact
|
||||
$cid = Contact::getIdForURL($msg['author']);
|
||||
if (!$cid) {
|
||||
logger('Contact not found for address ' . $msg['author']);
|
||||
System::xmlExit(3, 'Contact not found');
|
||||
}
|
||||
}
|
||||
|
||||
// We now have some contact, so we fetch it
|
||||
$importer = dba::fetch_first("SELECT *, `name` as `senderName`
|
||||
FROM `contact`
|
||||
WHERE NOT `blocked` AND `id` = ? LIMIT 1",
|
||||
$cid);
|
||||
|
||||
// This should never fail
|
||||
if (!DBM::is_result($importer)) {
|
||||
logger('Contact not found for address ' . $msg['author']);
|
||||
System::xmlExit(3, 'Contact not found');
|
||||
}
|
||||
|
||||
// Set the user id. This is important if this is a public contact
|
||||
$importer['importer_uid'] = $user['uid'];
|
||||
|
||||
// Now we should be able to import it
|
||||
$ret = DFRN::import($msg['message'], $importer);
|
||||
System::xmlExit($ret, 'Done');
|
||||
} else {
|
||||
dfrn_dispatch_private($user, $postdata);
|
||||
} elseif (!dfrn_dispatch_public($postdata)) {
|
||||
require_once 'mod/salmon.php';
|
||||
salmon_post($a, $postdata);
|
||||
}
|
||||
|
@ -91,19 +62,12 @@ function dfrn_notify_post(App $a) {
|
|||
$dfrn_id = substr($dfrn_id, 2);
|
||||
}
|
||||
|
||||
$r = q("SELECT * FROM `challenge` WHERE `dfrn-id` = '%s' AND `challenge` = '%s' LIMIT 1",
|
||||
dbesc($dfrn_id),
|
||||
dbesc($challenge)
|
||||
);
|
||||
if (! DBM::is_result($r)) {
|
||||
logger('dfrn_notify: could not match challenge to dfrn_id ' . $dfrn_id . ' challenge=' . $challenge);
|
||||
if (!dba::exists('challenge', ['dfrn-id' => $dfrn_id, 'challenge' => $challenge])) {
|
||||
logger('could not match challenge to dfrn_id ' . $dfrn_id . ' challenge=' . $challenge);
|
||||
System::xmlExit(3, 'Could not match challenge');
|
||||
}
|
||||
|
||||
$r = q("DELETE FROM `challenge` WHERE `dfrn-id` = '%s' AND `challenge` = '%s'",
|
||||
dbesc($dfrn_id),
|
||||
dbesc($challenge)
|
||||
);
|
||||
dba::delete('challenge', ['dfrn-id' => $dfrn_id, 'challenge' => $challenge]);
|
||||
|
||||
// find the local user who owns this relationship.
|
||||
|
||||
|
@ -143,8 +107,8 @@ function dfrn_notify_post(App $a) {
|
|||
dbesc($a->argv[1])
|
||||
);
|
||||
|
||||
if (! DBM::is_result($r)) {
|
||||
logger('dfrn_notify: contact not found for dfrn_id ' . $dfrn_id);
|
||||
if (!DBM::is_result($r)) {
|
||||
logger('contact not found for dfrn_id ' . $dfrn_id);
|
||||
System::xmlExit(3, 'Contact not found');
|
||||
//NOTREACHED
|
||||
}
|
||||
|
@ -153,15 +117,11 @@ function dfrn_notify_post(App $a) {
|
|||
|
||||
$importer = $r[0];
|
||||
|
||||
logger("Remote rino version: ".$rino_remote." for ".$importer["url"], LOGGER_DEBUG);
|
||||
|
||||
if ((($writable != (-1)) && ($writable != $importer['writable'])) || ($importer['forum'] != $forum) || ($importer['prv'] != $prv)) {
|
||||
q("UPDATE `contact` SET `writable` = %d, forum = %d, prv = %d WHERE `id` = %d",
|
||||
intval(($writable == (-1)) ? $importer['writable'] : $writable),
|
||||
intval($forum),
|
||||
intval($prv),
|
||||
intval($importer['id'])
|
||||
);
|
||||
$fields = ['writable' => ($writable == (-1)) ? $importer['writable'] : $writable,
|
||||
'forum' => $forum, 'prv' => $prv];
|
||||
dba::update('contact', $fields, ['id' => $importer['id']]);
|
||||
|
||||
if ($writable != (-1)) {
|
||||
$importer['writable'] = $writable;
|
||||
}
|
||||
|
@ -173,8 +133,7 @@ function dfrn_notify_post(App $a) {
|
|||
|
||||
$importer = Contact::updateSslPolicy($importer, $ssl_policy);
|
||||
|
||||
logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']);
|
||||
logger('dfrn_notify: data: ' . $data, LOGGER_DATA);
|
||||
logger('data: ' . $data, LOGGER_DATA);
|
||||
|
||||
if ($dissolve == 1) {
|
||||
// Relationship is dissolved permanently
|
||||
|
@ -186,8 +145,6 @@ function dfrn_notify_post(App $a) {
|
|||
$rino = Config::get('system', 'rino_encrypt');
|
||||
$rino = intval($rino);
|
||||
|
||||
logger("Local rino version: " . $rino, LOGGER_DEBUG);
|
||||
|
||||
if (strlen($key)) {
|
||||
|
||||
// if local rino is lower than remote rino, abort: should not happen!
|
||||
|
@ -198,24 +155,25 @@ function dfrn_notify_post(App $a) {
|
|||
}
|
||||
|
||||
$rawkey = hex2bin(trim($key));
|
||||
logger('rino: md5 raw key: ' . md5($rawkey));
|
||||
logger('rino: md5 raw key: ' . md5($rawkey), LOGGER_DATA);
|
||||
|
||||
$final_key = '';
|
||||
|
||||
if ($dfrn_version >= 2.1) {
|
||||
if ((($importer['duplex']) && strlen($importer['cprvkey'])) || (! strlen($importer['cpubkey']))) {
|
||||
if (($importer['duplex'] && strlen($importer['cprvkey'])) || !strlen($importer['cpubkey'])) {
|
||||
openssl_private_decrypt($rawkey, $final_key, $importer['cprvkey']);
|
||||
} else {
|
||||
openssl_public_decrypt($rawkey, $final_key, $importer['cpubkey']);
|
||||
}
|
||||
} else {
|
||||
if ((($importer['duplex']) && strlen($importer['cpubkey'])) || (! strlen($importer['cprvkey']))) {
|
||||
if (($importer['duplex'] && strlen($importer['cpubkey'])) || !strlen($importer['cprvkey'])) {
|
||||
openssl_public_decrypt($rawkey, $final_key, $importer['cpubkey']);
|
||||
} else {
|
||||
openssl_private_decrypt($rawkey, $final_key, $importer['cprvkey']);
|
||||
}
|
||||
}
|
||||
|
||||
switch($rino_remote) {
|
||||
switch ($rino_remote) {
|
||||
case 0:
|
||||
case 1:
|
||||
// we got a key. old code send only the key, without RINO version.
|
||||
|
@ -230,16 +188,93 @@ function dfrn_notify_post(App $a) {
|
|||
logger('rino: decrypted data: ' . $data, LOGGER_DATA);
|
||||
}
|
||||
|
||||
logger('Importing post from ' . $importer['addr'] . ' to ' . $importer['nickname'] . ' with the RINO ' . $rino_remote . ' encryption.', LOGGER_DEBUG);
|
||||
|
||||
$ret = DFRN::import($data, $importer);
|
||||
System::xmlExit($ret, 'Processed');
|
||||
|
||||
// NOTREACHED
|
||||
}
|
||||
|
||||
function dfrn_dispatch_public($postdata)
|
||||
{
|
||||
$msg = Diaspora::decodeRaw([], $postdata);
|
||||
if (!$msg) {
|
||||
// We have to fail silently to be able to hand it over to the salmon parser
|
||||
return false;
|
||||
}
|
||||
|
||||
// Fetch the corresponding public contact
|
||||
$contact = Contact::getDetailsByAddr($msg['author'], 0);
|
||||
if (!$contact) {
|
||||
logger('Contact not found for address ' . $msg['author']);
|
||||
System::xmlExit(3, 'Contact not found');
|
||||
}
|
||||
|
||||
// We now have some contact, so we fetch it
|
||||
$importer = dba::fetch_first("SELECT *, `name` as `senderName`
|
||||
FROM `contact`
|
||||
WHERE NOT `blocked` AND `id` = ? LIMIT 1",
|
||||
$contact['id']);
|
||||
|
||||
$importer['importer_uid'] = 0;
|
||||
|
||||
// This should never fail
|
||||
if (!DBM::is_result($importer)) {
|
||||
logger('Contact not found for address ' . $msg['author']);
|
||||
System::xmlExit(3, 'Contact not found');
|
||||
}
|
||||
|
||||
logger('Importing post from ' . $msg['author'] . ' with the public envelope.', LOGGER_DEBUG);
|
||||
|
||||
// Now we should be able to import it
|
||||
$ret = DFRN::import($msg['message'], $importer);
|
||||
System::xmlExit($ret, 'Done');
|
||||
}
|
||||
|
||||
function dfrn_dispatch_private($user, $postdata)
|
||||
{
|
||||
$msg = Diaspora::decodeRaw($user, $postdata);
|
||||
if (!$msg) {
|
||||
System::xmlExit(4, 'Unable to parse message');
|
||||
}
|
||||
|
||||
// Check if the user has got this contact
|
||||
$cid = Contact::getIdForURL($msg['author'], $user['uid']);
|
||||
if (!$cid) {
|
||||
// Otherwise there should be a public contact
|
||||
$cid = Contact::getIdForURL($msg['author']);
|
||||
if (!$cid) {
|
||||
logger('Contact not found for address ' . $msg['author']);
|
||||
System::xmlExit(3, 'Contact not found');
|
||||
}
|
||||
}
|
||||
|
||||
// We now have some contact, so we fetch it
|
||||
$importer = dba::fetch_first("SELECT *, `name` as `senderName`
|
||||
FROM `contact`
|
||||
WHERE NOT `blocked` AND `id` = ? LIMIT 1",
|
||||
$cid);
|
||||
|
||||
// This should never fail
|
||||
if (!DBM::is_result($importer)) {
|
||||
logger('Contact not found for address ' . $msg['author']);
|
||||
System::xmlExit(3, 'Contact not found');
|
||||
}
|
||||
|
||||
// Set the user id. This is important if this is a public contact
|
||||
$importer['importer_uid'] = $user['uid'];
|
||||
|
||||
logger('Importing post from ' . $msg['author'] . ' to ' . $user['nickname'] . ' with the private envelope.', LOGGER_DEBUG);
|
||||
|
||||
// Now we should be able to import it
|
||||
$ret = DFRN::import($msg['message'], $importer);
|
||||
System::xmlExit($ret, 'Done');
|
||||
}
|
||||
|
||||
function dfrn_notify_content(App $a) {
|
||||
|
||||
if(x($_GET,'dfrn_id')) {
|
||||
if (x($_GET,'dfrn_id')) {
|
||||
|
||||
/*
|
||||
* initial communication from external contact, $direction is their direction.
|
||||
|
@ -252,10 +287,10 @@ function dfrn_notify_content(App $a) {
|
|||
$type = "";
|
||||
$last_update = "";
|
||||
|
||||
logger('dfrn_notify: new notification dfrn_id=' . $dfrn_id);
|
||||
logger('new notification dfrn_id=' . $dfrn_id);
|
||||
|
||||
$direction = (-1);
|
||||
if(strpos($dfrn_id,':') == 1) {
|
||||
if (strpos($dfrn_id,':') == 1) {
|
||||
$direction = intval(substr($dfrn_id,0,1));
|
||||
$dfrn_id = substr($dfrn_id,2);
|
||||
}
|
||||
|
@ -264,23 +299,18 @@ function dfrn_notify_content(App $a) {
|
|||
|
||||
$status = 0;
|
||||
|
||||
$r = q("DELETE FROM `challenge` WHERE `expire` < " . intval(time()));
|
||||
dba::delete('challenge', ["`expire` < ?", time()]);
|
||||
|
||||
$r = q("INSERT INTO `challenge` ( `challenge`, `dfrn-id`, `expire` , `type`, `last_update` )
|
||||
VALUES( '%s', '%s', %d, '%s', '%s' ) ",
|
||||
dbesc($hash),
|
||||
dbesc($dfrn_id),
|
||||
intval(time() + 90 ),
|
||||
dbesc($type),
|
||||
dbesc($last_update)
|
||||
);
|
||||
$fields = ['challenge' => $hash, 'dfrn-id' => $dfrn_id, 'expire' => time() + 90,
|
||||
'type' => $type, 'last_update' => $last_update];
|
||||
dba::insert('challenge', $fields);
|
||||
|
||||
logger('dfrn_notify: challenge=' . $hash, LOGGER_DEBUG);
|
||||
logger('challenge=' . $hash, LOGGER_DATA);
|
||||
|
||||
$sql_extra = '';
|
||||
switch($direction) {
|
||||
case (-1):
|
||||
$sql_extra = sprintf(" AND ( `issued-id` = '%s' OR `dfrn-id` = '%s' ) ", dbesc($dfrn_id), dbesc($dfrn_id));
|
||||
$sql_extra = sprintf(" AND (`issued-id` = '%s' OR `dfrn-id` = '%s') ", dbesc($dfrn_id), dbesc($dfrn_id));
|
||||
$my_id = $dfrn_id;
|
||||
break;
|
||||
case 0:
|
||||
|
@ -302,11 +332,11 @@ function dfrn_notify_content(App $a) {
|
|||
dbesc($a->argv[1])
|
||||
);
|
||||
|
||||
if (! DBM::is_result($r)) {
|
||||
if (!DBM::is_result($r)) {
|
||||
$status = 1;
|
||||
}
|
||||
|
||||
logger("Remote rino version: ".$rino_remote." for ".$r[0]["url"], LOGGER_DEBUG);
|
||||
logger("Remote rino version: ".$rino_remote." for ".$r[0]["url"], LOGGER_DATA);
|
||||
|
||||
$challenge = '';
|
||||
$encrypted_id = '';
|
||||
|
@ -316,7 +346,7 @@ function dfrn_notify_content(App $a) {
|
|||
$pub_key = trim($r[0]['pubkey']);
|
||||
$dplx = intval($r[0]['duplex']);
|
||||
|
||||
if ((($dplx) && (strlen($prv_key))) || ((strlen($prv_key)) && (!(strlen($pub_key))))) {
|
||||
if (($dplx && strlen($prv_key)) || (strlen($prv_key) && !strlen($pub_key))) {
|
||||
openssl_private_encrypt($hash, $challenge, $prv_key);
|
||||
openssl_private_encrypt($id_str, $encrypted_id, $prv_key);
|
||||
} elseif (strlen($pub_key)) {
|
||||
|
@ -334,7 +364,7 @@ function dfrn_notify_content(App $a) {
|
|||
$rino = Config::get('system', 'rino_encrypt');
|
||||
$rino = intval($rino);
|
||||
|
||||
logger("Local rino version: ". $rino, LOGGER_DEBUG);
|
||||
logger("Local rino version: ". $rino, LOGGER_DATA);
|
||||
|
||||
// if requested rino is lower than enabled local rino, lower local rino version
|
||||
// if requested rino is higher than enabled local rino, reply with local rino
|
||||
|
@ -342,7 +372,7 @@ function dfrn_notify_content(App $a) {
|
|||
$rino = $rino_remote;
|
||||
}
|
||||
|
||||
if((($r[0]['rel']) && ($r[0]['rel'] != CONTACT_IS_SHARING)) || ($r[0]['page-flags'] == PAGE_COMMUNITY)) {
|
||||
if (($r[0]['rel'] && ($r[0]['rel'] != CONTACT_IS_SHARING)) || ($r[0]['page-flags'] == PAGE_COMMUNITY)) {
|
||||
$perm = 'rw';
|
||||
} else {
|
||||
$perm = 'r';
|
||||
|
@ -362,5 +392,4 @@ function dfrn_notify_content(App $a) {
|
|||
|
||||
killme();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -116,14 +116,14 @@ function friendica_content(App $a)
|
|||
} else {
|
||||
$o .= '<p>' . L10n::t('No installed addons/apps') . '</p>' . PHP_EOL;
|
||||
}
|
||||
|
||||
|
||||
if (Config::get('system', 'tosdisplay'))
|
||||
{
|
||||
$o .= '<p>'.L10n::t('Read about the <a href="%1$s/tos">Terms of Service</a> of this node.', System::baseurl()).'</p>';
|
||||
}
|
||||
|
||||
$blocklist = Config::get('system', 'blocklist');
|
||||
if (count($blocklist)) {
|
||||
$blocklist = Config::get('system', 'blocklist', []);
|
||||
if (!empty($blocklist)) {
|
||||
$o .= '<div id="about_blocklist"><p>' . L10n::t('On this server the following remote servers are blocked.') . '</p>' . PHP_EOL;
|
||||
$o .= '<table class="table"><thead><tr><th>' . L10n::t('Blocked domain') . '</th><th>' . L10n::t('Reason for the block') . '</th></thead><tbody>' . PHP_EOL;
|
||||
foreach ($blocklist as $b) {
|
||||
|
|
|
@ -51,7 +51,7 @@ function install_post(App $a) {
|
|||
$phpath = notags(trim($_POST['phpath']));
|
||||
|
||||
require_once("include/dba.php");
|
||||
if (!dba::connect($dbhost, $dbuser, $dbpass, $dbdata)) {
|
||||
if (!dba::connect($dbhost, $dbuser, $dbpass, $dbdata, true)) {
|
||||
$a->data['db_conn_failed'] = true;
|
||||
}
|
||||
|
||||
|
@ -140,11 +140,37 @@ function install_content(App $a) {
|
|||
switch ($install_wizard_pass) {
|
||||
case 1: { // System check
|
||||
|
||||
|
||||
$checks = [];
|
||||
|
||||
check_funcs($checks);
|
||||
|
||||
check_imagik($checks);
|
||||
|
||||
check_htconfig($checks);
|
||||
|
||||
check_smarty3($checks);
|
||||
|
||||
check_keys($checks);
|
||||
|
||||
if (x($_POST, 'phpath')) {
|
||||
$phpath = notags(trim($_POST['phpath']));
|
||||
}
|
||||
|
||||
list($checks, $checkspassed) = Install::check($phpath);
|
||||
check_php($phpath, $checks);
|
||||
|
||||
check_htaccess($checks);
|
||||
|
||||
/// @TODO Maybe move this out?
|
||||
function check_passed($v, $c) {
|
||||
if ($c['required']) {
|
||||
$v = $v && $c['status'];
|
||||
}
|
||||
return $v;
|
||||
}
|
||||
$checkspassed = array_reduce($checks, "check_passed", true);
|
||||
|
||||
|
||||
|
||||
$tpl = get_markup_template('install_checks.tpl');
|
||||
$o .= replace_macros($tpl, [
|
||||
|
|
|
@ -144,14 +144,13 @@ function invite_content(App $a) {
|
|||
|
||||
$o = replace_macros($tpl, [
|
||||
'$form_security_token' => get_form_security_token("send_invite"),
|
||||
'$invite' => L10n::t('Send invitations'),
|
||||
'$addr_text' => L10n::t('Enter email addresses, one per line:'),
|
||||
'$msg_text' => L10n::t('Your message:'),
|
||||
'$default_message' => L10n::t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n"
|
||||
'$title' => L10n::t('Send invitations'),
|
||||
'$recipients' => ['recipients', L10n::t('Enter email addresses, one per line:')],
|
||||
'$message' => ['message', L10n::t('Your message:'),L10n::t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n"
|
||||
. $linktxt
|
||||
. "\r\n" . "\r\n" . (($invonly) ? L10n::t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '') .L10n::t('Once you have registered, please connect with me via my profile page at:')
|
||||
. "\r\n" . "\r\n" . System::baseUrl() . '/profile/' . $a->user['nickname']
|
||||
. "\r\n" . "\r\n" . L10n::t('For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca') . "\r\n" . "\r\n" ,
|
||||
. "\r\n" . "\r\n" . L10n::t('For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca') . "\r\n" . "\r\n"],
|
||||
'$submit' => L10n::t('Submit')
|
||||
]);
|
||||
|
||||
|
|
|
@ -23,9 +23,18 @@ function noscrape_init(App $a)
|
|||
|
||||
Profile::load($a, $which, $profile);
|
||||
|
||||
$json_info = [
|
||||
'addr' => $a->profile['addr'],
|
||||
'nick' => $which,
|
||||
'guid' => $a->profile['guid'],
|
||||
'key' => $a->profile['pubkey'],
|
||||
'homepage' => System::baseUrl()."/profile/{$which}",
|
||||
'comm' => ($a->profile['account-type'] == ACCOUNT_TYPE_COMMUNITY),
|
||||
];
|
||||
|
||||
if (!$a->profile['net-publish'] || $a->profile['hidewall']) {
|
||||
header('Content-type: application/json; charset=utf-8');
|
||||
$json_info = ["hide" => true];
|
||||
$json_info["hide"] = true;
|
||||
echo json_encode($json_info);
|
||||
exit;
|
||||
}
|
||||
|
@ -36,17 +45,9 @@ function noscrape_init(App $a)
|
|||
|
||||
$contactPhoto = dba::selectFirst('contact', ['photo'], ['self' => true, 'uid' => $a->profile['uid']]);
|
||||
|
||||
$json_info = [
|
||||
'fn' => $a->profile['name'],
|
||||
'addr' => $a->profile['addr'],
|
||||
'nick' => $which,
|
||||
'guid' => $a->profile['guid'],
|
||||
'key' => $a->profile['pubkey'],
|
||||
'homepage' => System::baseUrl()."/profile/{$which}",
|
||||
'comm' => (x($a->profile, 'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY),
|
||||
'photo' => $contactPhoto["photo"],
|
||||
'tags' => $keywords
|
||||
];
|
||||
$json_info['fn'] = $a->profile['name'];
|
||||
$json_info['photo'] = $contactPhoto["photo"];
|
||||
$json_info['tags'] = $keywords;
|
||||
|
||||
if (is_array($a->profile) && !$a->profile['hide-friends']) {
|
||||
/// @todo What should this value tell us?
|
||||
|
|
|
@ -191,7 +191,7 @@ function profile_content(App $a, $update = 0)
|
|||
$o .= Widget::commonFriendsVisitor($a->profile['profile_uid']);
|
||||
|
||||
if (x($_SESSION, 'new_member') && $is_owner) {
|
||||
$o .= '<a href="newmember" id="newmember-tips" style="font-size: 1.2em;"><b>' . L10n::t('Tips for New Members') . '</b></a>' . EOL;
|
||||
$o .= '<div id="newmember-tips"><a href="newmember"><b>' . L10n::t('Tips for New Members') . '</b></a></div>';
|
||||
}
|
||||
|
||||
$commpage = $a->profile['page-flags'] == PAGE_COMMUNITY;
|
||||
|
|
|
@ -12,6 +12,7 @@ use Friendica\Core\Config;
|
|||
use Friendica\Core\L10n;
|
||||
use Friendica\Core\PConfig;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Core\Theme;
|
||||
use Friendica\Core\Worker;
|
||||
use Friendica\Database\DBM;
|
||||
use Friendica\Model\Contact;
|
||||
|
@ -354,6 +355,7 @@ function settings_post(App $a)
|
|||
theme_post($a);
|
||||
}
|
||||
}
|
||||
Theme::install($theme);
|
||||
|
||||
$r = q("UPDATE `user` SET `theme` = '%s' WHERE `uid` = %d",
|
||||
dbesc($theme),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue