Rename selectOne to selectFirst

This commit is contained in:
Hypolite Petovan 2018-01-10 08:36:02 -05:00
parent c7a7658316
commit ae66bcaff3
51 changed files with 821 additions and 821 deletions

View File

@ -222,7 +222,7 @@ function api_login(App $a)
} else { } else {
$user_id = User::authenticate(trim($user), trim($password)); $user_id = User::authenticate(trim($user), trim($password));
if ($user_id) { if ($user_id) {
$record = dba::selectOne('user', [], ['uid' => $user_id]); $record = dba::selectFirst('user', [], ['uid' => $user_id]);
} }
} }
@ -473,7 +473,7 @@ function api_rss_extra(App $a, $arr, $user_info)
*/ */
function api_unique_id_to_nurl($id) function api_unique_id_to_nurl($id)
{ {
$r = dba::selectOne('contact', array('nurl'), array('uid' => 0, 'id' => $id)); $r = dba::selectFirst('contact', array('nurl'), array('uid' => 0, 'id' => $id));
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
return $r["nurl"]; return $r["nurl"];
@ -792,7 +792,7 @@ function api_get_user(App $a, $contact_id = null)
// If this is a local user and it uses Frio, we can get its color preferences. // If this is a local user and it uses Frio, we can get its color preferences.
if ($ret['self']) { if ($ret['self']) {
$theme_info = dba::selectOne('user', ['theme'], ['uid' => $ret['uid']]); $theme_info = dba::selectFirst('user', ['theme'], ['uid' => $ret['uid']]);
if ($theme_info['theme'] === 'frio') { if ($theme_info['theme'] === 'frio') {
$schema = PConfig::get($ret['uid'], 'frio', 'schema'); $schema = PConfig::get($ret['uid'], 'frio', 'schema');
if ($schema && ($schema != '---')) { if ($schema && ($schema != '---')) {
@ -4870,7 +4870,7 @@ function api_friendica_remoteauth()
// traditional DFRN // traditional DFRN
$r = dba::selectOne('contact', [], ['uid' => api_user(), 'nurl' => $c_url]); $r = dba::selectFirst('contact', [], ['uid' => api_user(), 'nurl' => $c_url]);
if (!DBM::is_result($r) || ($r['network'] !== NETWORK_DFRN)) { if (!DBM::is_result($r) || ($r['network'] !== NETWORK_DFRN)) {
throw new BadRequestException("Unknown contact"); throw new BadRequestException("Unknown contact");

View File

@ -224,12 +224,12 @@ function common_friends_visitor_widget($profile_uid)
if (!$cid) { if (!$cid) {
if (get_my_url()) { if (get_my_url()) {
$r = dba::selectOne('contact', ['id'], $r = dba::selectFirst('contact', ['id'],
['nurl' => normalise_link(get_my_url()), 'uid' => $profile_uid]); ['nurl' => normalise_link(get_my_url()), 'uid' => $profile_uid]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$cid = $r['id']; $cid = $r['id'];
} else { } else {
$r = dba::selectOne('gcontact', ['id'], ['nurl' => normalise_link(get_my_url())]); $r = dba::selectFirst('gcontact', ['id'], ['nurl' => normalise_link(get_my_url())]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$zcid = $r['id']; $zcid = $r['id'];
} }

View File

@ -968,7 +968,7 @@ function best_link_url($item, &$sparkle, $url = '') {
$clean_url = normalise_link($item['author-link']); $clean_url = normalise_link($item['author-link']);
if (local_user()) { if (local_user()) {
$r = dba::selectOne('contact', ['id'], $r = dba::selectFirst('contact', ['id'],
['network' => NETWORK_DFRN, 'uid' => local_user(), 'nurl' => normalise_link($clean_url), 'pending' => false]); ['network' => NETWORK_DFRN, 'uid' => local_user(), 'nurl' => normalise_link($clean_url), 'pending' => false]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$best_url = 'redir/' . $r['id']; $best_url = 'redir/' . $r['id'];
@ -1019,7 +1019,7 @@ function item_photo_menu($item) {
$cid = 0; $cid = 0;
$network = ''; $network = '';
$rel = 0; $rel = 0;
$r = dba::selectOne('contact', array('id', 'network', 'rel'), array('uid' => local_user(), 'nurl' => normalise_link($item['author-link']))); $r = dba::selectFirst('contact', array('id', 'network', 'rel'), array('uid' => local_user(), 'nurl' => normalise_link($item['author-link'])));
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$cid = $r['id']; $cid = $r['id'];
$network = $r['network']; $network = $r['network'];

View File

@ -1047,7 +1047,7 @@ class dba {
if (is_bool($old_fields)) { if (is_bool($old_fields)) {
$do_insert = $old_fields; $do_insert = $old_fields;
$old_fields = self::selectOne($table, [], $condition); $old_fields = self::selectFirst($table, [], $condition);
if (is_bool($old_fields)) { if (is_bool($old_fields)) {
if ($do_insert) { if ($do_insert) {
@ -1095,7 +1095,7 @@ class dba {
* @return bool|array * @return bool|array
* @see dba::select * @see dba::select
*/ */
public static function selectOne($table, array $fields = [], array $condition = [], $params = []) public static function selectFirst($table, array $fields = [], array $condition = [], $params = [])
{ {
$params['limit'] = 1; $params['limit'] = 1;
$result = self::select($table, $fields, $condition, $params); $result = self::select($table, $fields, $condition, $params);

View File

@ -106,7 +106,7 @@ function notification($params)
} }
if ($params['type'] == NOTIFY_COMMENT) { if ($params['type'] == NOTIFY_COMMENT) {
$p = dba::selectOne('thread', ['ignored'], ['iid' => $parent_id]); $p = dba::selectFirst('thread', ['ignored'], ['iid' => $parent_id]);
if (DBM::is_result($p) && $p["ignored"]) { if (DBM::is_result($p) && $p["ignored"]) {
logger("Thread ".$parent_id." will be ignored", LOGGER_DEBUG); logger("Thread ".$parent_id." will be ignored", LOGGER_DEBUG);
return; return;
@ -131,7 +131,7 @@ function notification($params)
$p = null; $p = null;
if ($params['otype'] === 'item' && $parent_id) { if ($params['otype'] === 'item' && $parent_id) {
$p = dba::selectOne('item', [], ['id' => $parent_id]); $p = dba::selectFirst('item', [], ['id' => $parent_id]);
} }
$item_post_type = item_post_type($p); $item_post_type = item_post_type($p);
@ -672,12 +672,12 @@ function check_item_notification($itemid, $uid, $defaulttype = "") {
$profiles = $notification_data["profiles"]; $profiles = $notification_data["profiles"];
$fields = ['notify-flags', 'language', 'username', 'email', 'nickname']; $fields = ['notify-flags', 'language', 'username', 'email', 'nickname'];
$user = dba::selectOne('user', $fields, ['uid' => $uid]); $user = dba::selectFirst('user', $fields, ['uid' => $uid]);
if (!DBM::is_result($user)) { if (!DBM::is_result($user)) {
return false; return false;
} }
$owner = dba::selectOne('contact', ['url'], ['self' => true, 'uid' => $uid]); $owner = dba::selectFirst('contact', ['url'], ['self' => true, 'uid' => $uid]);
if (!DBM::is_result($owner)) { if (!DBM::is_result($owner)) {
return false; return false;
} }

View File

@ -162,7 +162,7 @@ function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0)
if (remote_user() && count($_SESSION['remote'])) { if (remote_user() && count($_SESSION['remote'])) {
foreach ($_SESSION['remote'] as $visitor) { foreach ($_SESSION['remote'] as $visitor) {
if ($visitor['uid'] == $uid) { if ($visitor['uid'] == $uid) {
$r = dba::selectOne('contact', ['profile-id'], ['id' => $visitor['cid']]); $r = dba::selectFirst('contact', ['profile-id'], ['id' => $visitor['cid']]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$profile = $r['profile-id']; $profile = $r['profile-id'];
} }

View File

@ -562,7 +562,7 @@ function item_store($arr, $force_parent = false, $notify = false, $dontcache = f
// check for create date and expire time // check for create date and expire time
$expire_interval = Config::get('system', 'dbclean-expire-days', 0); $expire_interval = Config::get('system', 'dbclean-expire-days', 0);
$user = dba::selectOne('user', ['expire'], ['uid' => $uid]); $user = dba::selectFirst('user', ['expire'], ['uid' => $uid]);
if (DBM::is_result($user) && ($user['expire'] > 0) && (($user['expire'] < $expire_interval) || ($expire_interval == 0))) { if (DBM::is_result($user) && ($user['expire'] > 0) && (($user['expire'] < $expire_interval) || ($expire_interval == 0))) {
$expire_interval = $user['expire']; $expire_interval = $user['expire'];
} }
@ -1149,14 +1149,14 @@ function item_store($arr, $force_parent = false, $notify = false, $dontcache = f
*/ */
function item_set_last_item($arr) { function item_set_last_item($arr) {
// Unarchive the author // Unarchive the author
$contact = dba::selectOne('contact', [], ['id' => $arr["author-link"]]); $contact = dba::selectFirst('contact', [], ['id' => $arr["author-link"]]);
if ($contact['term-date'] > NULL_DATE) { if ($contact['term-date'] > NULL_DATE) {
Contact::unmarkForArchival($contact); Contact::unmarkForArchival($contact);
} }
// Unarchive the contact if it is a toplevel posting // Unarchive the contact if it is a toplevel posting
if ($arr["parent-uri"] === $arr["uri"]) { if ($arr["parent-uri"] === $arr["uri"]) {
$contact = dba::selectOne('contact', [], ['id' => $arr["contact-id"]]); $contact = dba::selectFirst('contact', [], ['id' => $arr["contact-id"]]);
if ($contact['term-date'] > NULL_DATE) { if ($contact['term-date'] > NULL_DATE) {
Contact::unmarkForArchival($contact); Contact::unmarkForArchival($contact);
} }

View File

@ -69,7 +69,7 @@ function send_message($recipient = 0, $body = '', $subject = '', $replyto = '')
'subject' => $subject, 'recips' => $handles); 'subject' => $subject, 'recips' => $handles);
dba::insert('conv', $fields); dba::insert('conv', $fields);
$r = dba::selectOne('conv', ['id'], ['guid' => $conv_guid, 'uid' => local_user()]); $r = dba::selectFirst('conv', ['id'], ['guid' => $conv_guid, 'uid' => local_user()]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$convid = $r['id']; $convid = $r['id'];
} }
@ -188,7 +188,7 @@ function send_wallmessage($recipient = '', $body = '', $subject = '', $replyto =
'subject' => $subject, 'recips' => $handles); 'subject' => $subject, 'recips' => $handles);
dba::insert('conv', $fields); dba::insert('conv', $fields);
$r = dba::selectOne('conv', ['id'], ['guid' => $conv_guid, 'uid' => $recipient['uid']]); $r = dba::selectFirst('conv', ['id'], ['guid' => $conv_guid, 'uid' => $recipient['uid']]);
if (!DBM::is_result($r)) { if (!DBM::is_result($r)) {
logger('send message: conversation not found.'); logger('send message: conversation not found.');
return -4; return -4;

View File

@ -94,7 +94,7 @@ function nav_info(App $a)
$nav['usermenu'][] = array('notes/', t('Personal notes'), '', t('Your personal notes')); $nav['usermenu'][] = array('notes/', t('Personal notes'), '', t('Your personal notes'));
// user info // user info
$r = dba::selectOne('contact', ['micro'], ['uid' => $a->user['uid'], 'self' => true]); $r = dba::selectFirst('contact', ['micro'], ['uid' => $a->user['uid'], 'self' => true]);
$userinfo = array( $userinfo = array(
'icon' => (DBM::is_result($r) ? $a->remove_baseurl($r['micro']) : 'images/person-48.jpg'), 'icon' => (DBM::is_result($r) ? $a->remove_baseurl($r['micro']) : 'images/person-48.jpg'),
'name' => $a->user['username'], 'name' => $a->user['username'],

View File

@ -33,7 +33,7 @@ function ref_session_read($id)
return ''; return '';
} }
$r = dba::selectOne('session', ['data'], ['sid' => $id]); $r = dba::selectFirst('session', ['data'], ['sid' => $id]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$session_exists = true; $session_exists = true;
return $r['data']; return $r['data'];

View File

@ -226,7 +226,7 @@ function wtagblock($uid, $count = 0, $owner_id = 0, $flags = '', $type = TERM_HA
$o = ''; $o = '';
$r = tagadelic($uid, $count, $owner_id, $flags, $type); $r = tagadelic($uid, $count, $owner_id, $flags, $type);
if (count($r)) { if (count($r)) {
$contact = dba::selectOne('contact', ['url'], ['id' => $uid]); $contact = dba::selectFirst('contact', ['url'], ['id' => $uid]);
$url = System::removedBaseUrl($contact['url']); $url = System::removedBaseUrl($contact['url']);
foreach ($r as $rr) { foreach ($r as $rr) {

View File

@ -108,7 +108,7 @@ if (!$a->is_backend()) {
*/ */
if (x($_SESSION, 'authenticated') && !x($_SESSION, 'language')) { if (x($_SESSION, 'authenticated') && !x($_SESSION, 'language')) {
// we didn't loaded user data yet, but we need user language // we didn't loaded user data yet, but we need user language
$r = dba::selectOne('user', ['language'], ['uid' => $_SESSION['uid']]); $r = dba::selectFirst('user', ['language'], ['uid' => $_SESSION['uid']]);
$_SESSION['language'] = $lang; $_SESSION['language'] = $lang;
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$_SESSION['language'] = $r['language']; $_SESSION['language'] = $r['language'];

View File

@ -1551,7 +1551,7 @@ function admin_page_users(App $a)
{ {
if ($a->argc > 2) { if ($a->argc > 2) {
$uid = $a->argv[3]; $uid = $a->argv[3];
$user = dba::selectOne('user', ['username', 'blocked'], ['uid' => $uid]); $user = dba::selectFirst('user', ['username', 'blocked'], ['uid' => $uid]);
if (DBM::is_result($user)) { if (DBM::is_result($user)) {
notice('User not found' . EOL); notice('User not found' . EOL);
goaway('admin/users'); goaway('admin/users');

View File

@ -32,7 +32,7 @@ function cal_init(App $a)
if ($a->argc > 1) { if ($a->argc > 1) {
$nick = $a->argv[1]; $nick = $a->argv[1];
$user = dba::selectOne('user', [], ['nickname' => $nick, 'blocked' => false]); $user = dba::selectFirst('user', [], ['nickname' => $nick, 'blocked' => false]);
if (!DBM::is_result($user)) { if (!DBM::is_result($user)) {
return; return;
} }

View File

@ -63,11 +63,11 @@ function common_content(App $a)
} }
if (!$cid && get_my_url()) { if (!$cid && get_my_url()) {
$contact = dba::selectOne('contact', ['id'], ['nurl' => normalise_link(get_my_url()), 'uid' => $uid]); $contact = dba::selectFirst('contact', ['id'], ['nurl' => normalise_link(get_my_url()), 'uid' => $uid]);
if (DBM::is_result($contact)) { if (DBM::is_result($contact)) {
$cid = $contact['id']; $cid = $contact['id'];
} else { } else {
$gcontact = dba::selectOne('gcontact', ['id'], ['nurl' => normalise_link(get_my_url())]); $gcontact = dba::selectFirst('gcontact', ['id'], ['nurl' => normalise_link(get_my_url())]);
if (DBM::is_result($gcontact)) { if (DBM::is_result($gcontact)) {
$zcid = $gcontact['id']; $zcid = $gcontact['id'];
} }

View File

@ -33,7 +33,7 @@ function contacts_init(App $a)
$contact = []; $contact = [];
if ((($a->argc == 2) && intval($a->argv[1])) || (($a->argc == 3) && intval($a->argv[1]) && ($a->argv[2] == "posts"))) { if ((($a->argc == 2) && intval($a->argv[1])) || (($a->argc == 3) && intval($a->argv[1]) && ($a->argv[2] == "posts"))) {
$contact_id = intval($a->argv[1]); $contact_id = intval($a->argv[1]);
$contact = dba::selectOne('contact', [], ['id' => $contact_id, 'uid' => local_user()]); $contact = dba::selectFirst('contact', [], ['id' => $contact_id, 'uid' => local_user()]);
} }
if (DBM::is_result($contact)) { if (DBM::is_result($contact)) {
@ -222,7 +222,7 @@ function contacts_post(App $a)
notice(t('Failed to update contact record.') . EOL); notice(t('Failed to update contact record.') . EOL);
} }
$contact = dba::selectOne('contact', [], ['id' => $contact_id, 'uid' => local_user()]); $contact = dba::selectFirst('contact', [], ['id' => $contact_id, 'uid' => local_user()]);
if (DBM::is_result($contact)) { if (DBM::is_result($contact)) {
$a->data['contact'] = $contact; $a->data['contact'] = $contact;
} }
@ -233,7 +233,7 @@ function contacts_post(App $a)
function _contact_update($contact_id) function _contact_update($contact_id)
{ {
$contact = dba::selectOne('contact', ['uid', 'url', 'network'], ['id' => $contact_id, 'uid' => local_user()]); $contact = dba::selectFirst('contact', ['uid', 'url', 'network'], ['id' => $contact_id, 'uid' => local_user()]);
if (!DBM::is_result($contact)) { if (!DBM::is_result($contact)) {
return; return;
} }
@ -254,7 +254,7 @@ function _contact_update($contact_id)
function _contact_update_profile($contact_id) function _contact_update_profile($contact_id)
{ {
$contact = dba::selectOne('contact', ['uid', 'url', 'network'], ['id' => $contact_id, 'uid' => local_user()]); $contact = dba::selectFirst('contact', ['uid', 'url', 'network'], ['id' => $contact_id, 'uid' => local_user()]);
if (!DBM::is_result($contact)) { if (!DBM::is_result($contact)) {
return; return;
} }
@ -389,7 +389,7 @@ function contacts_content(App $a)
$cmd = $a->argv[2]; $cmd = $a->argv[2];
$orig_record = dba::selectOne('contact', [], ['id' => $contact_id, 'uid' => local_user(), 'self' => false]); $orig_record = dba::selectFirst('contact', [], ['id' => $contact_id, 'uid' => local_user(), 'self' => false]);
if (!DBM::is_result($orig_record)) { if (!DBM::is_result($orig_record)) {
notice(t('Could not access contact record.') . EOL); notice(t('Could not access contact record.') . EOL);
goaway('contacts'); goaway('contacts');
@ -904,7 +904,7 @@ function contact_posts($a, $contact_id)
{ {
$o = contacts_tab($a, $contact_id, 1); $o = contacts_tab($a, $contact_id, 1);
$contact = dba::selectOne('contact', ['url'], ['id' => $contact_id]); $contact = dba::selectFirst('contact', ['url'], ['id' => $contact_id]);
if (DBM::is_result($contact)) { if (DBM::is_result($contact)) {
$a->page['aside'] = ""; $a->page['aside'] = "";
profile_load($a, "", 0, Contact::getDetailsByURL($contact["url"])); profile_load($a, "", 0, Contact::getDetailsByURL($contact["url"]));

View File

@ -202,7 +202,7 @@ function display_content(App $a, $update = false, $update_uid = 0) {
if ($update) { if ($update) {
$item_id = $_REQUEST['item_id']; $item_id = $_REQUEST['item_id'];
$item = dba::selectOne('item', ['uid', 'parent'], ['id' => $item_id]); $item = dba::selectFirst('item', ['uid', 'parent'], ['id' => $item_id]);
$a->profile = array('uid' => intval($item['uid']), 'profile_uid' => intval($item['uid'])); $a->profile = array('uid' => intval($item['uid']), 'profile_uid' => intval($item['uid']));
$item_parent = $item['parent']; $item_parent = $item['parent'];
} else { } else {
@ -345,7 +345,7 @@ function display_content(App $a, $update = false, $update_uid = 0) {
$s = dba::inArray($r); $s = dba::inArray($r);
if (local_user() && (local_user() == $a->profile['uid'])) { if (local_user() && (local_user() == $a->profile['uid'])) {
$unseen = dba::selectOne('item', ['id'], ['parent' => $s[0]['parent'], 'unseen' => true]); $unseen = dba::selectFirst('item', ['id'], ['parent' => $s[0]['parent'], 'unseen' => true]);
if (DBM::is_result($unseen)) { if (DBM::is_result($unseen)) {
dba::update('item', array('unseen' => false), array('parent' => $s[0]['parent'], 'unseen' => true)); dba::update('item', array('unseen' => false), array('parent' => $s[0]['parent'], 'unseen' => true));
} }

View File

@ -44,7 +44,7 @@ function hovercard_content()
$cid = 0; $cid = 0;
if (local_user() && strpos($profileurl, 'redir/') === 0) { if (local_user() && strpos($profileurl, 'redir/') === 0) {
$cid = intval(substr($profileurl, 6)); $cid = intval(substr($profileurl, 6));
$r = dba::selectOne('contact', ['nurl'], ['id' => $cid]); $r = dba::selectFirst('contact', ['nurl'], ['id' => $cid]);
$profileurl = defaults($r, 'nurl', ''); $profileurl = defaults($r, 'nurl', '');
} }

View File

@ -581,7 +581,7 @@ function networkThreadedView(App $a, $update = 0) {
if ($cid) { if ($cid) {
// If $cid belongs to a communitity forum or a privat goup,.add a mention to the status editor // If $cid belongs to a communitity forum or a privat goup,.add a mention to the status editor
$condition = ["`id` = ? AND (`forum` OR `prv`)", $cid]; $condition = ["`id` = ? AND (`forum` OR `prv`)", $cid];
$contact = dba::selectOne('contact', ['addr', 'nick'], $condition); $contact = dba::selectFirst('contact', ['addr', 'nick'], $condition);
if (DBM::is_result($contact)) { if (DBM::is_result($contact)) {
if ($contact["addr"] != '') { if ($contact["addr"] != '') {
$content = "!".$contact["addr"]; $content = "!".$contact["addr"];
@ -632,7 +632,7 @@ function networkThreadedView(App $a, $update = 0) {
$sql_nets = (($nets) ? sprintf(" and $sql_table.`network` = '%s' ", dbesc($nets)) : ''); $sql_nets = (($nets) ? sprintf(" and $sql_table.`network` = '%s' ", dbesc($nets)) : '');
if ($group) { if ($group) {
$r = dba::selectOne('group', ['name'], ['id' => $group, 'uid' => $_SESSION['uid']]); $r = dba::selectFirst('group', ['name'], ['id' => $group, 'uid' => $_SESSION['uid']]);
if (!DBM::is_result($r)) { if (!DBM::is_result($r)) {
if ($update) if ($update)
killme(); killme();
@ -647,7 +647,7 @@ function networkThreadedView(App $a, $update = 0) {
$contact_str_self = ""; $contact_str_self = "";
$contact_str = implode(',',$contacts); $contact_str = implode(',',$contacts);
$self = dba::selectOne('contact', ['id'], ['uid' => $_SESSION['uid'], 'self' => true]); $self = dba::selectFirst('contact', ['id'], ['uid' => $_SESSION['uid'], 'self' => true]);
if (DBM::is_result($self)) { if (DBM::is_result($self)) {
$contact_str_self = $self["id"]; $contact_str_self = $self["id"];
} }
@ -668,7 +668,7 @@ function networkThreadedView(App $a, $update = 0) {
$fields = ['id', 'name', 'network', 'writable', 'nurl', $fields = ['id', 'name', 'network', 'writable', 'nurl',
'forum', 'prv', 'contact-type', 'addr', 'thumb', 'location']; 'forum', 'prv', 'contact-type', 'addr', 'thumb', 'location'];
$condition = ["`id` = ? AND (NOT `blocked` OR `pending`)", $cid]; $condition = ["`id` = ? AND (NOT `blocked` OR `pending`)", $cid];
$r = dba::selectOne('contact', $fields, $condition); $r = dba::selectFirst('contact', $fields, $condition);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$sql_extra = " AND ".$sql_table.".`contact-id` = ".intval($cid); $sql_extra = " AND ".$sql_table.".`contact-id` = ".intval($cid);

View File

@ -68,13 +68,13 @@ function noscrape_init(App $a) {
// We display the last activity (post or login), reduced to year and week number // We display the last activity (post or login), reduced to year and week number
$last_active = 0; $last_active = 0;
$condition = ['uid' => $a->profile['uid'], 'self' => true]; $condition = ['uid' => $a->profile['uid'], 'self' => true];
$contact = dba::selectOne('contact', ['last-item'], $condition); $contact = dba::selectFirst('contact', ['last-item'], $condition);
if (DBM::is_result($contact)) { if (DBM::is_result($contact)) {
$last_active = strtotime($contact['last-item']); $last_active = strtotime($contact['last-item']);
} }
$condition = ['uid' => $a->profile['uid']]; $condition = ['uid' => $a->profile['uid']];
$user = dba::selectOne('user', ['login_date'], $condition); $user = dba::selectFirst('user', ['login_date'], $condition);
if (DBM::is_result($user)) { if (DBM::is_result($user)) {
if ($last_active < strtotime($user['login_date'])) { if ($last_active < strtotime($user['login_date'])) {
$last_active = strtotime($user['login_date']); $last_active = strtotime($user['login_date']);

View File

@ -148,7 +148,7 @@ function proxy_init(App $a) {
$r = array(); $r = array();
if (!$direct_cache && ($cachefile == '')) { if (!$direct_cache && ($cachefile == '')) {
$r = dba::selectOne('photo', ['data', 'desc'], ['resource-id' => $urlhash]); $r = dba::selectFirst('photo', ['data', 'desc'], ['resource-id' => $urlhash]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$img_str = $r['data']; $img_str = $r['data'];
$mime = $r['desc']; $mime = $r['desc'];

View File

@ -32,7 +32,7 @@ function receive_post(App $a)
} }
$guid = $a->argv[2]; $guid = $a->argv[2];
$importer = dba::selectOne('user', [], ['guid' => $guid, 'account_expired' => false, 'account_removed' => false]); $importer = dba::selectFirst('user', [], ['guid' => $guid, 'account_expired' => false, 'account_removed' => false]);
if (!DBM::is_result($importer)) { if (!DBM::is_result($importer)) {
http_status_exit(500); http_status_exit(500);
} }

View File

@ -997,7 +997,7 @@ function settings_content(App $a)
require_once('include/acl_selectors.php'); require_once('include/acl_selectors.php');
$profile = dba::selectOne('profile', [], ['is-default' => true, 'uid' => local_user()]); $profile = dba::selectFirst('profile', [], ['is-default' => true, 'uid' => local_user()]);
if (!DBM::is_result($profile)) { if (!DBM::is_result($profile)) {
notice(t('Unable to find your profile. Please contact your admin.') . EOL); notice(t('Unable to find your profile. Please contact your admin.') . EOL);
return; return;

View File

@ -26,7 +26,7 @@ function unfollow_post(App $a) {
$condition = ["`uid` = ? AND `rel` = ? AND (`nurl` = ? OR `alias` = ? OR `alias` = ?) AND `network` != ?", $condition = ["`uid` = ? AND `rel` = ? AND (`nurl` = ? OR `alias` = ? OR `alias` = ?) AND `network` != ?",
$uid, CONTACT_IS_FRIEND, normalise_link($url), $uid, CONTACT_IS_FRIEND, normalise_link($url),
normalise_link($url), $url, NETWORK_STATUSNET]; normalise_link($url), $url, NETWORK_STATUSNET];
$contact = dba::selectOne('contact', [], $condition); $contact = dba::selectFirst('contact', [], $condition);
if (!DBM::is_result($contact)) { if (!DBM::is_result($contact)) {
notice(t("Contact wasn't found or can't be unfollowed.")); notice(t("Contact wasn't found or can't be unfollowed."));
@ -65,7 +65,7 @@ function unfollow_content(App $a) {
$condition = ["`uid` = ? AND `rel` = ? AND (`nurl` = ? OR `alias` = ? OR `alias` = ?) AND `network` != ?", $condition = ["`uid` = ? AND `rel` = ? AND (`nurl` = ? OR `alias` = ? OR `alias` = ?) AND `network` != ?",
local_user(), CONTACT_IS_FRIEND, normalise_link($url), local_user(), CONTACT_IS_FRIEND, normalise_link($url),
normalise_link($url), $url, NETWORK_STATUSNET]; normalise_link($url), $url, NETWORK_STATUSNET];
$contact = dba::selectOne('contact', ['url', 'network', 'addr', 'name'], $condition); $contact = dba::selectFirst('contact', ['url', 'network', 'addr', 'name'], $condition);
if (!DBM::is_result($contact)) { if (!DBM::is_result($contact)) {
notice(t("You aren't a friend of this contact.").EOL); notice(t("You aren't a friend of this contact.").EOL);

View File

@ -36,7 +36,7 @@ function xrd_init(App $a)
$name = substr($local, 0, strpos($local, '@')); $name = substr($local, 0, strpos($local, '@'));
} }
$r = dba::selectOne('user', [], ['nickname' => $name]); $r = dba::selectFirst('user', [], ['nickname' => $name]);
if (!DBM::is_result($r)) { if (!DBM::is_result($r)) {
killme(); killme();
} }

View File

@ -1,404 +1,404 @@
<?php <?php
/** /**
* @file src/Content/OEmbed.php * @file src/Content/OEmbed.php
*/ */
namespace Friendica\Content; namespace Friendica\Content;
use Friendica\Core\Cache; use Friendica\Core\Cache;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Core\Config; use Friendica\Core\Config;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use Friendica\Util\ParseUrl; use Friendica\Util\ParseUrl;
use dba; use dba;
use DOMDocument; use DOMDocument;
use DOMXPath; use DOMXPath;
use DOMNode; use DOMNode;
use Exception; use Exception;
require_once 'include/dba.php'; require_once 'include/dba.php';
require_once 'mod/proxy.php'; require_once 'mod/proxy.php';
/** /**
* Handles all OEmbed content fetching and replacement * Handles all OEmbed content fetching and replacement
* *
* OEmbed is a standard used to allow an embedded representation of a URL on * OEmbed is a standard used to allow an embedded representation of a URL on
* third party sites * third party sites
* *
* @see https://oembed.com * @see https://oembed.com
* *
* @author Hypolite Petovan <mrpetovan@gmail.com> * @author Hypolite Petovan <mrpetovan@gmail.com>
*/ */
class OEmbed class OEmbed
{ {
public static function replaceCallback($matches) public static function replaceCallback($matches)
{ {
$embedurl = $matches[1]; $embedurl = $matches[1];
$j = self::fetchURL($embedurl); $j = self::fetchURL($embedurl);
$s = self::formatObject($j); $s = self::formatObject($j);
return $s; return $s;
} }
/** /**
* @brief Get data from an URL to embed its content. * @brief Get data from an URL to embed its content.
* *
* @param string $embedurl The URL from which the data should be fetched. * @param string $embedurl The URL from which the data should be fetched.
* @param bool $no_rich_type If set to true rich type content won't be fetched. * @param bool $no_rich_type If set to true rich type content won't be fetched.
* *
* @return bool|object Returns object with embed content or false if no embedable * @return bool|object Returns object with embed content or false if no embedable
* content exists * content exists
*/ */
public static function fetchURL($embedurl, $no_rich_type = false) public static function fetchURL($embedurl, $no_rich_type = false)
{ {
$embedurl = trim($embedurl, "'"); $embedurl = trim($embedurl, "'");
$embedurl = trim($embedurl, '"'); $embedurl = trim($embedurl, '"');
$a = get_app(); $a = get_app();
$condition = ['url' => normalise_link($embedurl)]; $condition = ['url' => normalise_link($embedurl)];
$r = dba::selectOne('oembed', ['content'], $condition); $r = dba::selectFirst('oembed', ['content'], $condition);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$txt = $r["content"]; $txt = $r["content"];
} else { } else {
$txt = Cache::get($a->videowidth . $embedurl); $txt = Cache::get($a->videowidth . $embedurl);
} }
// These media files should now be caught in bbcode.php // These media files should now be caught in bbcode.php
// left here as a fallback in case this is called from another source // left here as a fallback in case this is called from another source
$noexts = array("mp3", "mp4", "ogg", "ogv", "oga", "ogm", "webm"); $noexts = array("mp3", "mp4", "ogg", "ogv", "oga", "ogm", "webm");
$ext = pathinfo(strtolower($embedurl), PATHINFO_EXTENSION); $ext = pathinfo(strtolower($embedurl), PATHINFO_EXTENSION);
if (is_null($txt)) { if (is_null($txt)) {
$txt = ""; $txt = "";
if (!in_array($ext, $noexts)) { if (!in_array($ext, $noexts)) {
// try oembed autodiscovery // try oembed autodiscovery
$redirects = 0; $redirects = 0;
$html_text = fetch_url($embedurl, false, $redirects, 15, "text/*"); $html_text = fetch_url($embedurl, false, $redirects, 15, "text/*");
if ($html_text) { if ($html_text) {
$dom = @DOMDocument::loadHTML($html_text); $dom = @DOMDocument::loadHTML($html_text);
if ($dom) { if ($dom) {
$xpath = new DOMXPath($dom); $xpath = new DOMXPath($dom);
$entries = $xpath->query("//link[@type='application/json+oembed']"); $entries = $xpath->query("//link[@type='application/json+oembed']");
foreach ($entries as $e) { foreach ($entries as $e) {
$href = $e->getAttributeNode("href")->nodeValue; $href = $e->getAttributeNode("href")->nodeValue;
$txt = fetch_url($href . '&maxwidth=' . $a->videowidth); $txt = fetch_url($href . '&maxwidth=' . $a->videowidth);
break; break;
} }
$entries = $xpath->query("//link[@type='text/json+oembed']"); $entries = $xpath->query("//link[@type='text/json+oembed']");
foreach ($entries as $e) { foreach ($entries as $e) {
$href = $e->getAttributeNode("href")->nodeValue; $href = $e->getAttributeNode("href")->nodeValue;
$txt = fetch_url($href . '&maxwidth=' . $a->videowidth); $txt = fetch_url($href . '&maxwidth=' . $a->videowidth);
break; break;
} }
} }
} }
} }
$txt = trim($txt); $txt = trim($txt);
if (!$txt || $txt[0] != "{") { if (!$txt || $txt[0] != "{") {
$txt = '{"type":"error"}'; $txt = '{"type":"error"}';
} else { //save in cache } else { //save in cache
$j = json_decode($txt); $j = json_decode($txt);
if ($j->type != "error") { if ($j->type != "error") {
dba::insert('oembed', array('url' => normalise_link($embedurl), dba::insert('oembed', array('url' => normalise_link($embedurl),
'content' => $txt, 'created' => datetime_convert()), true); 'content' => $txt, 'created' => datetime_convert()), true);
} }
Cache::set($a->videowidth . $embedurl, $txt, CACHE_DAY); Cache::set($a->videowidth . $embedurl, $txt, CACHE_DAY);
} }
} }
$j = json_decode($txt); $j = json_decode($txt);
if (!is_object($j)) { if (!is_object($j)) {
return false; return false;
} }
// Always embed the SSL version // Always embed the SSL version
if (isset($j->html)) { if (isset($j->html)) {
$j->html = str_replace(array("http://www.youtube.com/", "http://player.vimeo.com/"), array("https://www.youtube.com/", "https://player.vimeo.com/"), $j->html); $j->html = str_replace(array("http://www.youtube.com/", "http://player.vimeo.com/"), array("https://www.youtube.com/", "https://player.vimeo.com/"), $j->html);
} }
$j->embedurl = $embedurl; $j->embedurl = $embedurl;
// If fetching information doesn't work, then improve via internal functions // If fetching information doesn't work, then improve via internal functions
if (($j->type == "error") || ($no_rich_type && ($j->type == "rich"))) { if (($j->type == "error") || ($no_rich_type && ($j->type == "rich"))) {
$data = ParseUrl::getSiteinfoCached($embedurl, true, false); $data = ParseUrl::getSiteinfoCached($embedurl, true, false);
$j->type = $data["type"]; $j->type = $data["type"];
if ($j->type == "photo") { if ($j->type == "photo") {
$j->url = $data["url"]; $j->url = $data["url"];
//$j->width = $data["images"][0]["width"]; //$j->width = $data["images"][0]["width"];
//$j->height = $data["images"][0]["height"]; //$j->height = $data["images"][0]["height"];
} }
if (isset($data["title"])) { if (isset($data["title"])) {
$j->title = $data["title"]; $j->title = $data["title"];
} }
if (isset($data["text"])) { if (isset($data["text"])) {
$j->description = $data["text"]; $j->description = $data["text"];
} }
if (is_array($data["images"])) { if (is_array($data["images"])) {
$j->thumbnail_url = $data["images"][0]["src"]; $j->thumbnail_url = $data["images"][0]["src"];
$j->thumbnail_width = $data["images"][0]["width"]; $j->thumbnail_width = $data["images"][0]["width"];
$j->thumbnail_height = $data["images"][0]["height"]; $j->thumbnail_height = $data["images"][0]["height"];
} }
} }
call_hooks('oembed_fetch_url', $embedurl, $j); call_hooks('oembed_fetch_url', $embedurl, $j);
return $j; return $j;
} }
public static function formatObject($j) public static function formatObject($j)
{ {
$embedurl = $j->embedurl; $embedurl = $j->embedurl;
$jhtml = $j->html; $jhtml = $j->html;
$ret = '<div class="oembed ' . $j->type . '">'; $ret = '<div class="oembed ' . $j->type . '">';
switch ($j->type) { switch ($j->type) {
case "video": case "video":
if (isset($j->thumbnail_url)) { if (isset($j->thumbnail_url)) {
$tw = (isset($j->thumbnail_width) && intval($j->thumbnail_width)) ? $j->thumbnail_width : 200; $tw = (isset($j->thumbnail_width) && intval($j->thumbnail_width)) ? $j->thumbnail_width : 200;
$th = (isset($j->thumbnail_height) && intval($j->thumbnail_height)) ? $j->thumbnail_height : 180; $th = (isset($j->thumbnail_height) && intval($j->thumbnail_height)) ? $j->thumbnail_height : 180;
// make sure we don't attempt divide by zero, fallback is a 1:1 ratio // make sure we don't attempt divide by zero, fallback is a 1:1 ratio
$tr = (($th) ? $tw / $th : 1); $tr = (($th) ? $tw / $th : 1);
$th = 120; $th = 120;
$tw = $th * $tr; $tw = $th * $tr;
$tpl = get_markup_template('oembed_video.tpl'); $tpl = get_markup_template('oembed_video.tpl');
$ret .= replace_macros($tpl, array( $ret .= replace_macros($tpl, array(
'$baseurl' => System::baseUrl(), '$baseurl' => System::baseUrl(),
'$embedurl' => $embedurl, '$embedurl' => $embedurl,
'$escapedhtml' => base64_encode($jhtml), '$escapedhtml' => base64_encode($jhtml),
'$tw' => $tw, '$tw' => $tw,
'$th' => $th, '$th' => $th,
'$turl' => $j->thumbnail_url, '$turl' => $j->thumbnail_url,
)); ));
} else { } else {
$ret = $jhtml; $ret = $jhtml;
} }
break; break;
case "photo": case "photo":
$ret .= '<img width="' . $j->width . '" src="' . proxy_url($j->url) . '">'; $ret .= '<img width="' . $j->width . '" src="' . proxy_url($j->url) . '">';
break; break;
case "link": case "link":
break; break;
case "rich": case "rich":
if (self::isAllowedURL($embedurl)) { if (self::isAllowedURL($embedurl)) {
$ret .= proxy_parse_html($jhtml); $ret .= proxy_parse_html($jhtml);
} }
break; break;
} }
$ret .= '</div>'; $ret .= '</div>';
// add link to source if not present in "rich" type // add link to source if not present in "rich" type
if ($j->type != 'rich' || !strpos($j->html, $embedurl)) { if ($j->type != 'rich' || !strpos($j->html, $embedurl)) {
$ret .= '<h4>'; $ret .= '<h4>';
if (isset($j->title)) { if (isset($j->title)) {
if (isset($j->provider_name)) { if (isset($j->provider_name)) {
$ret .= $j->provider_name . ": "; $ret .= $j->provider_name . ": ";
} }
$embedlink = (isset($j->title)) ? $j->title : $embedurl; $embedlink = (isset($j->title)) ? $j->title : $embedurl;
$ret .= '<a href="' . $embedurl . '" rel="oembed">' . $embedlink . '</a>'; $ret .= '<a href="' . $embedurl . '" rel="oembed">' . $embedlink . '</a>';
if (isset($j->author_name)) { if (isset($j->author_name)) {
$ret .= ' (' . $j->author_name . ')'; $ret .= ' (' . $j->author_name . ')';
} }
} elseif (isset($j->provider_name) || isset($j->author_name)) { } elseif (isset($j->provider_name) || isset($j->author_name)) {
$embedlink = ""; $embedlink = "";
if (isset($j->provider_name)) { if (isset($j->provider_name)) {
$embedlink .= $j->provider_name; $embedlink .= $j->provider_name;
} }
if (isset($j->author_name)) { if (isset($j->author_name)) {
if ($embedlink != "") { if ($embedlink != "") {
$embedlink .= ": "; $embedlink .= ": ";
} }
$embedlink .= $j->author_name; $embedlink .= $j->author_name;
} }
if (trim($embedlink) == "") { if (trim($embedlink) == "") {
$embedlink = $embedurl; $embedlink = $embedurl;
} }
$ret .= '<a href="' . $embedurl . '" rel="oembed">' . $embedlink . '</a>'; $ret .= '<a href="' . $embedurl . '" rel="oembed">' . $embedlink . '</a>';
} }
$ret .= "</h4>"; $ret .= "</h4>";
} elseif (!strpos($j->html, $embedurl)) { } elseif (!strpos($j->html, $embedurl)) {
// add <a> for html2bbcode conversion // add <a> for html2bbcode conversion
$ret .= '<a href="' . $embedurl . '" rel="oembed">' . $j->title . '</a>'; $ret .= '<a href="' . $embedurl . '" rel="oembed">' . $j->title . '</a>';
} }
$ret = str_replace("\n", "", $ret); $ret = str_replace("\n", "", $ret);
return mb_convert_encoding($ret, 'HTML-ENTITIES', mb_detect_encoding($ret)); return mb_convert_encoding($ret, 'HTML-ENTITIES', mb_detect_encoding($ret));
} }
public static function BBCode2HTML($text) public static function BBCode2HTML($text)
{ {
$stopoembed = Config::get("system", "no_oembed"); $stopoembed = Config::get("system", "no_oembed");
if ($stopoembed == true) { if ($stopoembed == true) {
return preg_replace("/\[embed\](.+?)\[\/embed\]/is", "<!-- oembed $1 --><i>" . t('Embedding disabled') . " : $1</i><!-- /oembed $1 -->", $text); return preg_replace("/\[embed\](.+?)\[\/embed\]/is", "<!-- oembed $1 --><i>" . t('Embedding disabled') . " : $1</i><!-- /oembed $1 -->", $text);
} }
return preg_replace_callback("/\[embed\](.+?)\[\/embed\]/is", ['self', 'replaceCallback'], $text); return preg_replace_callback("/\[embed\](.+?)\[\/embed\]/is", ['self', 'replaceCallback'], $text);
} }
/** /**
* Find <span class='oembed'>..<a href='url' rel='oembed'>..</a></span> * Find <span class='oembed'>..<a href='url' rel='oembed'>..</a></span>
* and replace it with [embed]url[/embed] * and replace it with [embed]url[/embed]
*/ */
public static function HTML2BBCode($text) public static function HTML2BBCode($text)
{ {
// start parser only if 'oembed' is in text // start parser only if 'oembed' is in text
if (strpos($text, "oembed")) { if (strpos($text, "oembed")) {
// convert non ascii chars to html entities // convert non ascii chars to html entities
$html_text = mb_convert_encoding($text, 'HTML-ENTITIES', mb_detect_encoding($text)); $html_text = mb_convert_encoding($text, 'HTML-ENTITIES', mb_detect_encoding($text));
// If it doesn't parse at all, just return the text. // If it doesn't parse at all, just return the text.
$dom = @DOMDocument::loadHTML($html_text); $dom = @DOMDocument::loadHTML($html_text);
if (!$dom) { if (!$dom) {
return $text; return $text;
} }
$xpath = new DOMXPath($dom); $xpath = new DOMXPath($dom);
$xattr = self::buildXPath("class", "oembed"); $xattr = self::buildXPath("class", "oembed");
$entries = $xpath->query("//div[$xattr]"); $entries = $xpath->query("//div[$xattr]");
$xattr = "@rel='oembed'"; //oe_build_xpath("rel","oembed"); $xattr = "@rel='oembed'"; //oe_build_xpath("rel","oembed");
foreach ($entries as $e) { foreach ($entries as $e) {
$href = $xpath->evaluate("a[$xattr]/@href", $e)->item(0)->nodeValue; $href = $xpath->evaluate("a[$xattr]/@href", $e)->item(0)->nodeValue;
if (!is_null($href)) { if (!is_null($href)) {
$e->parentNode->replaceChild(new DOMText("[embed]" . $href . "[/embed]"), $e); $e->parentNode->replaceChild(new DOMText("[embed]" . $href . "[/embed]"), $e);
} }
} }
return self::getInnerHTML($dom->getElementsByTagName("body")->item(0)); return self::getInnerHTML($dom->getElementsByTagName("body")->item(0));
} else { } else {
return $text; return $text;
} }
} }
/** /**
* Determines if rich content OEmbed is allowed for the provided URL * Determines if rich content OEmbed is allowed for the provided URL
* *
* @brief Determines if rich content OEmbed is allowed for the provided URL * @brief Determines if rich content OEmbed is allowed for the provided URL
* @param string $url * @param string $url
* @return boolean * @return boolean
*/ */
public static function isAllowedURL($url) public static function isAllowedURL($url)
{ {
if (!Config::get('system', 'no_oembed_rich_content')) { if (!Config::get('system', 'no_oembed_rich_content')) {
return true; return true;
} }
$domain = parse_url($url, PHP_URL_HOST); $domain = parse_url($url, PHP_URL_HOST);
if (!x($domain)) { if (!x($domain)) {
return false; return false;
} }
$str_allowed = Config::get('system', 'allowed_oembed', ''); $str_allowed = Config::get('system', 'allowed_oembed', '');
if (!x($str_allowed)) { if (!x($str_allowed)) {
return false; return false;
} }
$allowed = explode(',', $str_allowed); $allowed = explode(',', $str_allowed);
return allowed_domain($domain, $allowed); return allowed_domain($domain, $allowed);
} }
public static function getHTML($url, $title = null) public static function getHTML($url, $title = null)
{ {
// Always embed the SSL version // Always embed the SSL version
$url = str_replace(array("http://www.youtube.com/", "http://player.vimeo.com/"), $url = str_replace(array("http://www.youtube.com/", "http://player.vimeo.com/"),
array("https://www.youtube.com/", "https://player.vimeo.com/"), $url); array("https://www.youtube.com/", "https://player.vimeo.com/"), $url);
$o = OEmbed::fetchURL($url); $o = OEmbed::fetchURL($url);
if (!is_object($o) || $o->type == 'error') { if (!is_object($o) || $o->type == 'error') {
throw new Exception('OEmbed failed for URL: ' . $url); throw new Exception('OEmbed failed for URL: ' . $url);
} }
if (x($title)) { if (x($title)) {
$o->title = $title; $o->title = $title;
} }
$html = OEmbed::formatObject($o); $html = OEmbed::formatObject($o);
return $html; return $html;
} }
/** /**
* @brief Generates the iframe HTML for an oembed attachment. * @brief Generates the iframe HTML for an oembed attachment.
* *
* Width and height are given by the remote, and are regularly too small for * Width and height are given by the remote, and are regularly too small for
* the generated iframe. * the generated iframe.
* *
* The width is entirely discarded for the actual width of the post, while fixed * The width is entirely discarded for the actual width of the post, while fixed
* height is used as a starting point before the inevitable resizing. * height is used as a starting point before the inevitable resizing.
* *
* Since the iframe is automatically resized on load, there are no need for ugly * Since the iframe is automatically resized on load, there are no need for ugly
* and impractical scrollbars. * and impractical scrollbars.
* *
* @todo This function is currently unused until someone™ adds support for a separate OEmbed domain * @todo This function is currently unused until someone™ adds support for a separate OEmbed domain
* *
* @param string $src Original remote URL to embed * @param string $src Original remote URL to embed
* @param string $width * @param string $width
* @param string $height * @param string $height
* @return string formatted HTML * @return string formatted HTML
* *
* @see oembed_format_object() * @see oembed_format_object()
*/ */
private static function iframe($src, $width, $height) private static function iframe($src, $width, $height)
{ {
$a = get_app(); $a = get_app();
if (!$height || strstr($height, '%')) { if (!$height || strstr($height, '%')) {
$height = '200'; $height = '200';
} }
$width = '100%'; $width = '100%';
$src = System::baseUrl() . '/oembed/' . base64url_encode($src); $src = System::baseUrl() . '/oembed/' . base64url_encode($src);
return '<iframe onload="resizeIframe(this);" class="embed_rich" height="' . $height . '" width="' . $width . '" src="' . $src . '" allowfullscreen scrolling="no" frameborder="no">' . t('Embedded content') . '</iframe>'; return '<iframe onload="resizeIframe(this);" class="embed_rich" height="' . $height . '" width="' . $width . '" src="' . $src . '" allowfullscreen scrolling="no" frameborder="no">' . t('Embedded content') . '</iframe>';
} }
/** /**
* Generates an XPath query to select elements whose provided attribute contains * Generates an XPath query to select elements whose provided attribute contains
* the provided value in a space-separated list. * the provided value in a space-separated list.
* *
* @brief Generates attribute search XPath string * @brief Generates attribute search XPath string
* *
* @param string $attr Name of the attribute to seach * @param string $attr Name of the attribute to seach
* @param string $value Value to search in a space-separated list * @param string $value Value to search in a space-separated list
* @return string * @return string
*/ */
private static function buildXPath($attr, $value) private static function buildXPath($attr, $value)
{ {
// https://www.westhoffswelt.de/blog/2009/6/9/select-html-elements-with-more-than-one-css-class-using-xpath // https://www.westhoffswelt.de/blog/2009/6/9/select-html-elements-with-more-than-one-css-class-using-xpath
return "contains(normalize-space(@$attr), ' $value ') or substring(normalize-space(@$attr), 1, string-length('$value') + 1) = '$value ' or substring(normalize-space(@$attr), string-length(@$attr) - string-length('$value')) = ' $value' or @$attr = '$value'"; return "contains(normalize-space(@$attr), ' $value ') or substring(normalize-space(@$attr), 1, string-length('$value') + 1) = '$value ' or substring(normalize-space(@$attr), string-length(@$attr) - string-length('$value')) = ' $value' or @$attr = '$value'";
} }
/** /**
* Returns the inner XML string of a provided DOMNode * Returns the inner XML string of a provided DOMNode
* *
* @brief Returns the inner XML string of a provided DOMNode * @brief Returns the inner XML string of a provided DOMNode
* *
* @param DOMNode $node * @param DOMNode $node
* @return string * @return string
*/ */
private static function getInnerHTML(DOMNode $node) private static function getInnerHTML(DOMNode $node)
{ {
$innerHTML = ''; $innerHTML = '';
$children = $node->childNodes; $children = $node->childNodes;
foreach ($children as $child) { foreach ($children as $child) {
$innerHTML .= $child->ownerDocument->saveXML($child); $innerHTML .= $child->ownerDocument->saveXML($child);
} }
return $innerHTML; return $innerHTML;
} }
} }

View File

@ -109,7 +109,7 @@ class Cache
// Frequently clear cache // Frequently clear cache
self::clear(); self::clear();
$r = dba::selectOne('cache', ['v'], ['k' => $key]); $r = dba::selectFirst('cache', ['v'], ['k' => $key]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$cached = $r['v']; $cached = $r['v'];

View File

@ -97,7 +97,7 @@ class Config
} }
} }
$ret = dba::selectOne('config', ['v'], ['cat' => $family, 'k' => $key]); $ret = dba::selectFirst('config', ['v'], ['cat' => $family, 'k' => $key]);
if (DBM::is_result($ret)) { if (DBM::is_result($ret)) {
// manage array value // manage array value
$val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret['v']) ? unserialize($ret['v']) : $ret['v']); $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret['v']) ? unserialize($ret['v']) : $ret['v']);

View File

@ -90,7 +90,7 @@ class PConfig
} }
} }
$ret = dba::selectOne('pconfig', ['v'], ['uid' => $uid, 'cat' => $family, 'k' => $key]); $ret = dba::selectFirst('pconfig', ['v'], ['uid' => $uid, 'cat' => $family, 'k' => $key]);
if (DBM::is_result($ret)) { if (DBM::is_result($ret)) {
$val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret['v']) ? unserialize($ret['v']) : $ret['v']); $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret['v']) ? unserialize($ret['v']) : $ret['v']);
$a->config[$uid][$family][$key] = $val; $a->config[$uid][$family][$key] = $val;

View File

@ -165,7 +165,7 @@ class Worker
private static function highestPriority() private static function highestPriority()
{ {
$condition = array("`executed` <= ? AND NOT `done`", NULL_DATE); $condition = array("`executed` <= ? AND NOT `done`", NULL_DATE);
$s = dba::selectOne('workerqueue', ['priority'], $condition, ['order' => ['priority']]); $s = dba::selectFirst('workerqueue', ['priority'], $condition, ['order' => ['priority']]);
if (DBM::is_result($s)) { if (DBM::is_result($s)) {
return $s["priority"]; return $s["priority"];
} else { } else {

View File

@ -103,7 +103,7 @@ class Contact extends BaseObject
return true; return true;
} }
$user = dba::selectOne('user', ['uid', 'username', 'nickname'], ['uid' => $uid]); $user = dba::selectFirst('user', ['uid', 'username', 'nickname'], ['uid' => $uid]);
if (!DBM::is_result($user)) { if (!DBM::is_result($user)) {
return false; return false;
} }
@ -145,7 +145,7 @@ class Contact extends BaseObject
public static function remove($id) public static function remove($id)
{ {
// We want just to make sure that we don't delete our "self" contact // We want just to make sure that we don't delete our "self" contact
$r = dba::selectOne('contact', ['uid'], ['id' => $id, 'self' => false]); $r = dba::selectFirst('contact', ['uid'], ['id' => $id, 'self' => false]);
if (!DBM::is_result($r) || !intval($r['uid'])) { if (!DBM::is_result($r) || !intval($r['uid'])) {
return; return;
@ -490,7 +490,7 @@ class Contact extends BaseObject
return $menu; return $menu;
} }
$r = dba::selectOne('contact', [], ['nurl' => $contact['nurl'], 'network' => $contact['network'], 'uid' => $uid]); $r = dba::selectFirst('contact', [], ['nurl' => $contact['nurl'], 'network' => $contact['network'], 'uid' => $uid]);
if ($r) { if ($r) {
return self::photoMenu($r, $uid); return self::photoMenu($r, $uid);
} else { } else {
@ -653,18 +653,18 @@ class Contact extends BaseObject
/// @todo Verify if we can't use Contact::getDetailsByUrl instead of the following /// @todo Verify if we can't use Contact::getDetailsByUrl instead of the following
// We first try the nurl (http://server.tld/nick), most common case // We first try the nurl (http://server.tld/nick), most common case
$contact = dba::selectOne('contact', ['id', 'avatar-date'], ['nurl' => normalise_link($url), 'uid' => $uid]); $contact = dba::selectFirst('contact', ['id', 'avatar-date'], ['nurl' => normalise_link($url), 'uid' => $uid]);
// Then the addr (nick@server.tld) // Then the addr (nick@server.tld)
if (!DBM::is_result($contact)) { if (!DBM::is_result($contact)) {
$contact = dba::selectOne('contact', ['id', 'avatar-date'], ['addr' => $url, 'uid' => $uid]); $contact = dba::selectFirst('contact', ['id', 'avatar-date'], ['addr' => $url, 'uid' => $uid]);
} }
// Then the alias (which could be anything) // Then the alias (which could be anything)
if (!DBM::is_result($contact)) { if (!DBM::is_result($contact)) {
// The link could be provided as http although we stored it as https // The link could be provided as http although we stored it as https
$ssl_url = str_replace('http://', 'https://', $url); $ssl_url = str_replace('http://', 'https://', $url);
$r = dba::selectOne('contact', ['id', 'avatar', 'avatar-date'], ['`alias` IN (?, ?, ?) AND `uid` = ?', $url, normalise_link($url), $ssl_url, $uid]); $r = dba::selectFirst('contact', ['id', 'avatar', 'avatar-date'], ['`alias` IN (?, ?, ?) AND `uid` = ?', $url, normalise_link($url), $ssl_url, $uid]);
$contact = dba::fetch($r); $contact = dba::fetch($r);
dba::close($r); dba::close($r);
} }
@ -697,7 +697,7 @@ class Contact extends BaseObject
} }
// Get data from the gcontact table // Get data from the gcontact table
$gcontacts = dba::selectOne('gcontact', ['name', 'nick', 'url', 'photo', 'addr', 'alias', 'network'], ['nurl' => normalise_link($url)]); $gcontacts = dba::selectFirst('gcontact', ['name', 'nick', 'url', 'photo', 'addr', 'alias', 'network'], ['nurl' => normalise_link($url)]);
if (!DBM::is_result($gcontacts)) { if (!DBM::is_result($gcontacts)) {
return 0; return 0;
} }
@ -735,7 +735,7 @@ class Contact extends BaseObject
$contact_id = $contacts[0]["id"]; $contact_id = $contacts[0]["id"];
// Update the newly created contact from data in the gcontact table // Update the newly created contact from data in the gcontact table
$gcontact = dba::selectOne('gcontact', ['location', 'about', 'keywords', 'gender'], ['nurl' => normalise_link($data["url"])]); $gcontact = dba::selectFirst('gcontact', ['location', 'about', 'keywords', 'gender'], ['nurl' => normalise_link($data["url"])]);
if (DBM::is_result($gcontact)) { if (DBM::is_result($gcontact)) {
// Only use the information when the probing hadn't fetched these values // Only use the information when the probing hadn't fetched these values
if ($data['keywords'] != '') { if ($data['keywords'] != '') {
@ -759,7 +759,7 @@ class Contact extends BaseObject
self::updateAvatar($data["photo"], $uid, $contact_id); self::updateAvatar($data["photo"], $uid, $contact_id);
$fields = ['url', 'nurl', 'addr', 'alias', 'name', 'nick', 'keywords', 'location', 'about', 'avatar-date', 'pubkey']; $fields = ['url', 'nurl', 'addr', 'alias', 'name', 'nick', 'keywords', 'location', 'about', 'avatar-date', 'pubkey'];
$contact = dba::selectOne('contact', $fields, ['id' => $contact_id]); $contact = dba::selectFirst('contact', $fields, ['id' => $contact_id]);
// This condition should always be true // This condition should always be true
if (!DBM::is_result($contact)) { if (!DBM::is_result($contact)) {
@ -817,7 +817,7 @@ class Contact extends BaseObject
return false; return false;
} }
$blocked = dba::selectOne('contact', ['blocked'], ['id' => $cid]); $blocked = dba::selectFirst('contact', ['blocked'], ['id' => $cid]);
if (!DBM::is_result($blocked)) { if (!DBM::is_result($blocked)) {
return false; return false;
} }
@ -837,7 +837,7 @@ class Contact extends BaseObject
return false; return false;
} }
$hidden = dba::selectOne('contact', ['hidden'], ['id' => $cid]); $hidden = dba::selectFirst('contact', ['hidden'], ['id' => $cid]);
if (!DBM::is_result($hidden)) { if (!DBM::is_result($hidden)) {
return false; return false;
} }
@ -980,7 +980,7 @@ class Contact extends BaseObject
public static function updateAvatar($avatar, $uid, $cid, $force = false) public static function updateAvatar($avatar, $uid, $cid, $force = false)
{ {
// Limit = 1 returns the row so no need for dba:inArray() // Limit = 1 returns the row so no need for dba:inArray()
$r = dba::selectOne('contact', ['avatar', 'photo', 'thumb', 'micro', 'nurl'], ['id' => $cid]); $r = dba::selectFirst('contact', ['avatar', 'photo', 'thumb', 'micro', 'nurl'], ['id' => $cid]);
if (!DBM::is_result($r)) { if (!DBM::is_result($r)) {
return false; return false;
} else { } else {
@ -999,7 +999,7 @@ class Contact extends BaseObject
// Update the public contact (contact id = 0) // Update the public contact (contact id = 0)
if ($uid != 0) { if ($uid != 0) {
$pcontact = dba::selectOne('contact', ['id'], ['nurl' => $r[0]['nurl']]); $pcontact = dba::selectFirst('contact', ['id'], ['nurl' => $r[0]['nurl']]);
if (DBM::is_result($pcontact)) { if (DBM::is_result($pcontact)) {
self::updateAvatar($avatar, 0, $pcontact['id'], $force); self::updateAvatar($avatar, 0, $pcontact['id'], $force);
} }
@ -1023,7 +1023,7 @@ class Contact extends BaseObject
This will reliably kill your communication with Friendica contacts. This will reliably kill your communication with Friendica contacts.
*/ */
$r = dba::selectOne('contact', ['url', 'nurl', 'addr', 'alias', 'batch', 'notify', 'poll', 'poco', 'network'], ['id' => $id]); $r = dba::selectFirst('contact', ['url', 'nurl', 'addr', 'alias', 'batch', 'notify', 'poll', 'poco', 'network'], ['id' => $id]);
if (!DBM::is_result($r)) { if (!DBM::is_result($r)) {
return false; return false;
} }
@ -1246,7 +1246,7 @@ class Contact extends BaseObject
); );
} }
$r = dba::selectOne('contact', ['url' => $ret['url'], 'network' => $ret['network'], 'uid' => $uid]); $r = dba::selectFirst('contact', ['url' => $ret['url'], 'network' => $ret['network'], 'uid' => $uid]);
if (!DBM::is_result($r)) { if (!DBM::is_result($r)) {
$result['message'] .= t('Unable to retrieve contact information.') . EOL; $result['message'] .= t('Unable to retrieve contact information.') . EOL;

View File

@ -888,7 +888,7 @@ class GContact
'network', 'bd', 'gender', 'network', 'bd', 'gender',
'keywords', 'alias', 'contact-type', 'keywords', 'alias', 'contact-type',
'url', 'location', 'about'); 'url', 'location', 'about');
$old_contact = dba::selectOne('contact', $fields, ['id' => $r[0]["id"]]); $old_contact = dba::selectFirst('contact', $fields, ['id' => $r[0]["id"]]);
// Update it with the current values // Update it with the current values
$fields = array('name' => $contact['name'], 'nick' => $contact['nick'], $fields = array('name' => $contact['name'], 'nick' => $contact['nick'],

View File

@ -39,7 +39,7 @@ class Group extends BaseObject
// all the old members are gone, but the group remains so we don't break any security // all the old members are gone, but the group remains so we don't break any security
// access lists. What we're doing here is reviving the dead group, but old content which // access lists. What we're doing here is reviving the dead group, but old content which
// was restricted to this group may now be seen by the new group members. // was restricted to this group may now be seen by the new group members.
$group = dba::selectOne('group', ['deleted'], ['id' => $gid]); $group = dba::selectFirst('group', ['deleted'], ['id' => $gid]);
if (DBM::is_result($group) && $group['deleted']) { if (DBM::is_result($group) && $group['deleted']) {
dba::update('group', ['deleted' => 0], ['gid' => $gid]); dba::update('group', ['deleted' => 0], ['gid' => $gid]);
notice(t('A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name.') . EOL); notice(t('A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name.') . EOL);
@ -120,7 +120,7 @@ class Group extends BaseObject
return false; return false;
} }
$group = dba::selectOne('group', ['id'], ['uid' => $uid, 'name' => $name]); $group = dba::selectFirst('group', ['id'], ['uid' => $uid, 'name' => $name]);
if (DBM::is_result($group)) { if (DBM::is_result($group)) {
return $group['id']; return $group['id'];
} }
@ -139,13 +139,13 @@ class Group extends BaseObject
return false; return false;
} }
$group = dba::selectOne('group', ['uid'], ['gid' => $gid]); $group = dba::selectFirst('group', ['uid'], ['gid' => $gid]);
if (!DBM::is_result($group)) { if (!DBM::is_result($group)) {
return false; return false;
} }
// remove group from default posting lists // remove group from default posting lists
$user = dba::selectOne('user', ['def_gid', 'allow_gid', 'deny_gid'], ['uid' => $group['uid']]); $user = dba::selectFirst('user', ['def_gid', 'allow_gid', 'deny_gid'], ['uid' => $group['uid']]);
if (DBM::is_result($user)) { if (DBM::is_result($user)) {
$change = false; $change = false;

View File

@ -38,14 +38,14 @@ class Photo
*/ */
public static function store(Image $Image, $uid, $cid, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '', $desc = '') public static function store(Image $Image, $uid, $cid, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '', $desc = '')
{ {
$r = dba::selectOne('photo', ['guid'], ["`resource-id` = ? AND `guid` != ?", $rid, '']); $r = dba::selectFirst('photo', ['guid'], ["`resource-id` = ? AND `guid` != ?", $rid, '']);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$guid = $r['guid']; $guid = $r['guid'];
} else { } else {
$guid = get_guid(); $guid = get_guid();
} }
$x = dba::selectOne('photo', ['id'], ['resource-id' => $rid, 'uid' => $uid, 'contact-id' => $cid, 'scale' => $scale]); $x = dba::selectFirst('photo', ['id'], ['resource-id' => $rid, 'uid' => $uid, 'contact-id' => $cid, 'scale' => $scale]);
$fields = array( $fields = array(
'uid' => $uid, 'uid' => $uid,
@ -88,7 +88,7 @@ class Photo
*/ */
public static function importProfilePhoto($photo, $uid, $cid, $quit_on_error = false) public static function importProfilePhoto($photo, $uid, $cid, $quit_on_error = false)
{ {
$r = dba::selectOne( $r = dba::selectFirst(
'photo', ['resource-id'], ['uid' => $uid, 'contact-id' => $cid, 'scale' => 4, 'album' => 'Contact Photos'] 'photo', ['resource-id'], ['uid' => $uid, 'contact-id' => $cid, 'scale' => 4, 'album' => 'Contact Photos']
); );

View File

@ -84,7 +84,7 @@ class User
return $default_group; return $default_group;
} }
$user = dba::selectOne('user', ['def_gid'], ['uid' => $uid]); $user = dba::selectFirst('user', ['def_gid'], ['uid' => $uid]);
if (DBM::is_result($user)) { if (DBM::is_result($user)) {
$default_group = $user["def_gid"]; $default_group = $user["def_gid"];
@ -112,7 +112,7 @@ class User
if (is_object($user_info)) { if (is_object($user_info)) {
$user = (array) $user_info; $user = (array) $user_info;
} elseif (is_int($user_info)) { } elseif (is_int($user_info)) {
$user = dba::selectOne('user', ['uid', 'password'], $user = dba::selectFirst('user', ['uid', 'password'],
[ [
'uid' => $user_info, 'uid' => $user_info,
'blocked' => 0, 'blocked' => 0,
@ -328,7 +328,7 @@ class User
if ($insert_result) { if ($insert_result) {
$uid = dba::lastInsertId(); $uid = dba::lastInsertId();
$user = dba::selectOne('user', [], ['uid' => $uid]); $user = dba::selectFirst('user', [], ['uid' => $uid]);
} else { } else {
throw new Exception(t('An error occurred during registration. Please try again.')); throw new Exception(t('An error occurred during registration. Please try again.'));
} }
@ -530,7 +530,7 @@ class User
logger('Removing user: ' . $uid); logger('Removing user: ' . $uid);
$user = dba::selectOne('user', [], ['uid' => $uid]); $user = dba::selectFirst('user', [], ['uid' => $uid]);
call_hooks('remove_user', $user); call_hooks('remove_user', $user);

View File

@ -1,306 +1,306 @@
<?php <?php
namespace Friendica\Module; namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Config; use Friendica\Core\Config;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use Friendica\Model\User; use Friendica\Model\User;
use dba; use dba;
require_once 'boot.php'; require_once 'boot.php';
require_once 'include/datetime.php'; require_once 'include/datetime.php';
require_once 'include/pgettext.php'; require_once 'include/pgettext.php';
require_once 'include/security.php'; require_once 'include/security.php';
require_once 'include/text.php'; require_once 'include/text.php';
/** /**
* Login module * Login module
* *
* @author Hypolite Petovan mrpetovan@gmail.com * @author Hypolite Petovan mrpetovan@gmail.com
*/ */
class Login extends BaseModule class Login extends BaseModule
{ {
public static function content() public static function content()
{ {
$a = self::getApp(); $a = self::getApp();
if (x($_SESSION, 'theme')) { if (x($_SESSION, 'theme')) {
unset($_SESSION['theme']); unset($_SESSION['theme']);
} }
if (x($_SESSION, 'mobile-theme')) { if (x($_SESSION, 'mobile-theme')) {
unset($_SESSION['mobile-theme']); unset($_SESSION['mobile-theme']);
} }
if (local_user()) { if (local_user()) {
goaway(self::getApp()->get_baseurl()); goaway(self::getApp()->get_baseurl());
} }
return self::form(self::getApp()->get_baseurl(), $a->config['register_policy'] != REGISTER_CLOSED); return self::form(self::getApp()->get_baseurl(), $a->config['register_policy'] != REGISTER_CLOSED);
} }
public static function post() public static function post()
{ {
session_unset(); session_unset();
// OpenId Login // OpenId Login
if ( if (
!x($_POST, 'password') !x($_POST, 'password')
&& ( && (
x($_POST, 'openid_url') x($_POST, 'openid_url')
|| x($_POST, 'username') || x($_POST, 'username')
) )
) { ) {
$noid = Config::get('system', 'no_openid'); $noid = Config::get('system', 'no_openid');
$openid_url = trim($_POST['openid_url'] ? : $_POST['username']); $openid_url = trim($_POST['openid_url'] ? : $_POST['username']);
// if it's an email address or doesn't resolve to a URL, fail. // if it's an email address or doesn't resolve to a URL, fail.
if ($noid || strpos($openid_url, '@') || !validate_url($openid_url)) { if ($noid || strpos($openid_url, '@') || !validate_url($openid_url)) {
notice(t('Login failed.') . EOL); notice(t('Login failed.') . EOL);
goaway(self::getApp()->get_baseurl()); goaway(self::getApp()->get_baseurl());
// NOTREACHED // NOTREACHED
} }
// Otherwise it's probably an openid. // Otherwise it's probably an openid.
try { try {
require_once 'library/openid.php'; require_once 'library/openid.php';
$openid = new LightOpenID; $openid = new LightOpenID;
$openid->identity = $openid_url; $openid->identity = $openid_url;
$_SESSION['openid'] = $openid_url; $_SESSION['openid'] = $openid_url;
$_SESSION['remember'] = $_POST['remember']; $_SESSION['remember'] = $_POST['remember'];
$openid->returnUrl = self::getApp()->get_baseurl(true) . '/openid'; $openid->returnUrl = self::getApp()->get_baseurl(true) . '/openid';
goaway($openid->authUrl()); goaway($openid->authUrl());
} catch (Exception $e) { } catch (Exception $e) {
notice(t('We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID.') . '<br /><br >' . t('The error message was:') . ' ' . $e->getMessage()); notice(t('We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID.') . '<br /><br >' . t('The error message was:') . ' ' . $e->getMessage());
} }
// NOTREACHED // NOTREACHED
} }
if (x($_POST, 'auth-params') && $_POST['auth-params'] === 'login') { if (x($_POST, 'auth-params') && $_POST['auth-params'] === 'login') {
$record = null; $record = null;
$addon_auth = array( $addon_auth = array(
'username' => trim($_POST['username']), 'username' => trim($_POST['username']),
'password' => trim($_POST['password']), 'password' => trim($_POST['password']),
'authenticated' => 0, 'authenticated' => 0,
'user_record' => null 'user_record' => null
); );
/* /*
* A plugin indicates successful login by setting 'authenticated' to non-zero value and returning a user record * A plugin indicates successful login by setting 'authenticated' to non-zero value and returning a user record
* Plugins should never set 'authenticated' except to indicate success - as hooks may be chained * Plugins should never set 'authenticated' except to indicate success - as hooks may be chained
* and later plugins should not interfere with an earlier one that succeeded. * and later plugins should not interfere with an earlier one that succeeded.
*/ */
call_hooks('authenticate', $addon_auth); call_hooks('authenticate', $addon_auth);
if ($addon_auth['authenticated'] && count($addon_auth['user_record'])) { if ($addon_auth['authenticated'] && count($addon_auth['user_record'])) {
$record = $addon_auth['user_record']; $record = $addon_auth['user_record'];
} else { } else {
$user_id = User::authenticate(trim($_POST['username']), trim($_POST['password'])); $user_id = User::authenticate(trim($_POST['username']), trim($_POST['password']));
if ($user_id) { if ($user_id) {
$record = dba::selectOne('user', [], ['uid' => $user_id]); $record = dba::selectFirst('user', [], ['uid' => $user_id]);
} }
} }
if (!$record || !count($record)) { if (!$record || !count($record)) {
logger('authenticate: failed login attempt: ' . notags(trim($_POST['username'])) . ' from IP ' . $_SERVER['REMOTE_ADDR']); logger('authenticate: failed login attempt: ' . notags(trim($_POST['username'])) . ' from IP ' . $_SERVER['REMOTE_ADDR']);
notice(t('Login failed.') . EOL); notice(t('Login failed.') . EOL);
goaway(self::getApp()->get_baseurl()); goaway(self::getApp()->get_baseurl());
} }
if (!$_POST['remember']) { if (!$_POST['remember']) {
new_cookie(0); // 0 means delete on browser exit new_cookie(0); // 0 means delete on browser exit
} }
// if we haven't failed up this point, log them in. // if we haven't failed up this point, log them in.
$_SESSION['remember'] = $_POST['remember']; $_SESSION['remember'] = $_POST['remember'];
$_SESSION['last_login_date'] = datetime_convert('UTC', 'UTC'); $_SESSION['last_login_date'] = datetime_convert('UTC', 'UTC');
authenticate_success($record, true, true); authenticate_success($record, true, true);
if (x($_SESSION, 'return_url')) { if (x($_SESSION, 'return_url')) {
$return_url = $_SESSION['return_url']; $return_url = $_SESSION['return_url'];
unset($_SESSION['return_url']); unset($_SESSION['return_url']);
} else { } else {
$return_url = ''; $return_url = '';
} }
goaway($return_url); goaway($return_url);
} }
} }
/** /**
* @brief Tries to auth the user from the cookie or session * @brief Tries to auth the user from the cookie or session
* *
* @todo Should be moved to Friendica\Core\Session when it's created * @todo Should be moved to Friendica\Core\Session when it's created
*/ */
public static function sessionAuth() public static function sessionAuth()
{ {
// When the "Friendica" cookie is set, take the value to authenticate and renew the cookie. // When the "Friendica" cookie is set, take the value to authenticate and renew the cookie.
if (isset($_COOKIE["Friendica"])) { if (isset($_COOKIE["Friendica"])) {
$data = json_decode($_COOKIE["Friendica"]); $data = json_decode($_COOKIE["Friendica"]);
if (isset($data->uid)) { if (isset($data->uid)) {
$user = dba::selectOne('user', [], $user = dba::selectFirst('user', [],
[ [
'uid' => $data->uid, 'uid' => $data->uid,
'blocked' => false, 'blocked' => false,
'account_expired' => false, 'account_expired' => false,
'account_removed' => false, 'account_removed' => false,
'verified' => true, 'verified' => true,
] ]
); );
if (DBM::is_result($user)) { if (DBM::is_result($user)) {
if ($data->hash != cookie_hash($user)) { if ($data->hash != cookie_hash($user)) {
logger("Hash for user " . $data->uid . " doesn't fit."); logger("Hash for user " . $data->uid . " doesn't fit.");
nuke_session(); nuke_session();
goaway(self::getApp()->get_baseurl()); goaway(self::getApp()->get_baseurl());
} }
// Renew the cookie // Renew the cookie
// Expires after 7 days by default, // Expires after 7 days by default,
// can be set via system.auth_cookie_lifetime // can be set via system.auth_cookie_lifetime
$authcookiedays = Config::get('system', 'auth_cookie_lifetime', 7); $authcookiedays = Config::get('system', 'auth_cookie_lifetime', 7);
new_cookie($authcookiedays * 24 * 60 * 60, $user); new_cookie($authcookiedays * 24 * 60 * 60, $user);
// Do the authentification if not done by now // Do the authentification if not done by now
if (!isset($_SESSION) || !isset($_SESSION['authenticated'])) { if (!isset($_SESSION) || !isset($_SESSION['authenticated'])) {
authenticate_success($user); authenticate_success($user);
if (Config::get('system', 'paranoia')) { if (Config::get('system', 'paranoia')) {
$_SESSION['addr'] = $data->ip; $_SESSION['addr'] = $data->ip;
} }
} }
} }
} }
} }
if (isset($_SESSION) && x($_SESSION, 'authenticated')) { if (isset($_SESSION) && x($_SESSION, 'authenticated')) {
if (x($_SESSION, 'visitor_id') && !x($_SESSION, 'uid')) { if (x($_SESSION, 'visitor_id') && !x($_SESSION, 'uid')) {
$r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1", $r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
intval($_SESSION['visitor_id']) intval($_SESSION['visitor_id'])
); );
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$a->contact = $r[0]; $a->contact = $r[0];
} }
} }
if (x($_SESSION, 'uid')) { if (x($_SESSION, 'uid')) {
// already logged in user returning // already logged in user returning
$check = Config::get('system', 'paranoia'); $check = Config::get('system', 'paranoia');
// extra paranoia - if the IP changed, log them out // extra paranoia - if the IP changed, log them out
if ($check && ($_SESSION['addr'] != $_SERVER['REMOTE_ADDR'])) { if ($check && ($_SESSION['addr'] != $_SERVER['REMOTE_ADDR'])) {
logger('Session address changed. Paranoid setting in effect, blocking session. ' . logger('Session address changed. Paranoid setting in effect, blocking session. ' .
$_SESSION['addr'] . ' != ' . $_SERVER['REMOTE_ADDR']); $_SESSION['addr'] . ' != ' . $_SERVER['REMOTE_ADDR']);
nuke_session(); nuke_session();
goaway(self::getApp()->get_baseurl()); goaway(self::getApp()->get_baseurl());
} }
$user = dba::selectOne('user', [], $user = dba::selectFirst('user', [],
[ [
'uid' => $_SESSION['uid'], 'uid' => $_SESSION['uid'],
'blocked' => false, 'blocked' => false,
'account_expired' => false, 'account_expired' => false,
'account_removed' => false, 'account_removed' => false,
'verified' => true, 'verified' => true,
] ]
); );
if (!DBM::is_result($user)) { if (!DBM::is_result($user)) {
nuke_session(); nuke_session();
goaway(self::getApp()->get_baseurl()); goaway(self::getApp()->get_baseurl());
} }
// Make sure to refresh the last login time for the user if the user // Make sure to refresh the last login time for the user if the user
// stays logged in for a long time, e.g. with "Remember Me" // stays logged in for a long time, e.g. with "Remember Me"
$login_refresh = false; $login_refresh = false;
if (!x($_SESSION['last_login_date'])) { if (!x($_SESSION['last_login_date'])) {
$_SESSION['last_login_date'] = datetime_convert('UTC', 'UTC'); $_SESSION['last_login_date'] = datetime_convert('UTC', 'UTC');
} }
if (strcmp(datetime_convert('UTC', 'UTC', 'now - 12 hours'), $_SESSION['last_login_date']) > 0) { if (strcmp(datetime_convert('UTC', 'UTC', 'now - 12 hours'), $_SESSION['last_login_date']) > 0) {
$_SESSION['last_login_date'] = datetime_convert('UTC', 'UTC'); $_SESSION['last_login_date'] = datetime_convert('UTC', 'UTC');
$login_refresh = true; $login_refresh = true;
} }
authenticate_success($user, false, false, $login_refresh); authenticate_success($user, false, false, $login_refresh);
} }
} }
} }
/** /**
* @brief Wrapper for adding a login box. * @brief Wrapper for adding a login box.
* *
* @param string $return_url The url relative to the base the user should be sent * @param string $return_url The url relative to the base the user should be sent
* back to after login completes * back to after login completes
* @param bool $register If $register == true provide a registration link. * @param bool $register If $register == true provide a registration link.
* This will most always depend on the value of $a->config['register_policy']. * This will most always depend on the value of $a->config['register_policy'].
* @param array $hiddens optional * @param array $hiddens optional
* *
* @return string Returns the complete html for inserting into the page * @return string Returns the complete html for inserting into the page
* *
* @hooks 'login_hook' string $o * @hooks 'login_hook' string $o
*/ */
public static function form($return_url = null, $register = false, $hiddens = []) public static function form($return_url = null, $register = false, $hiddens = [])
{ {
$a = self::getApp(); $a = self::getApp();
$o = ''; $o = '';
$reg = false; $reg = false;
if ($register) { if ($register) {
$reg = array( $reg = array(
'title' => t('Create a New Account'), 'title' => t('Create a New Account'),
'desc' => t('Register') 'desc' => t('Register')
); );
} }
$noid = Config::get('system', 'no_openid'); $noid = Config::get('system', 'no_openid');
if (is_null($return_url)) { if (is_null($return_url)) {
$return_url = $a->query_string; $return_url = $a->query_string;
} }
if (local_user()) { if (local_user()) {
$tpl = get_markup_template('logout.tpl'); $tpl = get_markup_template('logout.tpl');
} else { } else {
$a->page['htmlhead'] .= replace_macros( $a->page['htmlhead'] .= replace_macros(
get_markup_template('login_head.tpl'), get_markup_template('login_head.tpl'),
[ [
'$baseurl' => $a->get_baseurl(true) '$baseurl' => $a->get_baseurl(true)
] ]
); );
$tpl = get_markup_template('login.tpl'); $tpl = get_markup_template('login.tpl');
$_SESSION['return_url'] = $return_url; $_SESSION['return_url'] = $return_url;
} }
$o .= replace_macros( $o .= replace_macros(
$tpl, $tpl,
[ [
'$dest_url' => self::getApp()->get_baseurl(true) . '/login', '$dest_url' => self::getApp()->get_baseurl(true) . '/login',
'$logout' => t('Logout'), '$logout' => t('Logout'),
'$login' => t('Login'), '$login' => t('Login'),
'$lname' => array('username', t('Nickname or Email: ') , '', ''), '$lname' => array('username', t('Nickname or Email: ') , '', ''),
'$lpassword' => array('password', t('Password: '), '', ''), '$lpassword' => array('password', t('Password: '), '', ''),
'$lremember' => array('remember', t('Remember me'), 0, ''), '$lremember' => array('remember', t('Remember me'), 0, ''),
'$openid' => !$noid, '$openid' => !$noid,
'$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''), '$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''),
'$hiddens' => $hiddens, '$hiddens' => $hiddens,
'$register' => $reg, '$register' => $reg,
'$lostpass' => t('Forgot your password?'), '$lostpass' => t('Forgot your password?'),
'$lostlink' => t('Password Reset'), '$lostlink' => t('Password Reset'),
'$tostitle' => t('Website Terms of Service'), '$tostitle' => t('Website Terms of Service'),
'$toslink' => t('terms of service'), '$toslink' => t('terms of service'),
'$privacytitle' => t('Website Privacy Policy'), '$privacytitle' => t('Website Privacy Policy'),
'$privacylink' => t('privacy policy'), '$privacylink' => t('privacy policy'),
] ]
); );
call_hooks('login_hook', $o); call_hooks('login_hook', $o);
return $o; return $o;
} }
} }

View File

@ -40,7 +40,7 @@ class FKOAuth1 extends OAuthServer
{ {
logger("FKOAuth1::loginUser $uid"); logger("FKOAuth1::loginUser $uid");
$a = get_app(); $a = get_app();
$record = dba::selectOne('user', [], ['uid' => $uid, 'blocked' => 0, 'account_expired' => 0, 'account_removed' => 0, 'verified' => 1]); $record = dba::selectFirst('user', [], ['uid' => $uid, 'blocked' => 0, 'account_expired' => 0, 'account_removed' => 0, 'verified' => 1]);
if (!DBM::is_result($record)) { if (!DBM::is_result($record)) {
logger('FKOAuth1::loginUser failure: ' . print_r($_SERVER, true), LOGGER_DEBUG); logger('FKOAuth1::loginUser failure: ' . print_r($_SERVER, true), LOGGER_DEBUG);
@ -63,7 +63,7 @@ class FKOAuth1 extends OAuthServer
$a->timezone = $a->user['timezone']; $a->timezone = $a->user['timezone'];
} }
$r = dba::selectOne('contact', [], ['uid' => $_SESSION['uid'], 'self' => 1]); $r = dba::selectFirst('contact', [], ['uid' => $_SESSION['uid'], 'self' => 1]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$a->contact = $r; $a->contact = $r;

View File

@ -88,7 +88,7 @@ class FKOAuthDataStore extends OAuthDataStore
*/ */
public function lookup_nonce($consumer, $token, $nonce, $timestamp) public function lookup_nonce($consumer, $token, $nonce, $timestamp)
{ {
$r = dba::selectOne('tokens', ['id', 'secret'], ['client_id' => $consumer->key, 'id' => $nonce, 'expires' => $timestamp]); $r = dba::selectFirst('tokens', ['id', 'secret'], ['client_id' => $consumer->key, 'id' => $nonce, 'expires' => $timestamp]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
return new \OAuthToken($r['id'], $r['secret']); return new \OAuthToken($r['id'], $r['secret']);

View File

@ -406,7 +406,7 @@ class Probe
$condition = array('nurl' => normalise_link($data["url"])); $condition = array('nurl' => normalise_link($data["url"]));
$old_fields = dba::selectOne('gcontact', $fieldnames, $condition); $old_fields = dba::selectFirst('gcontact', $fieldnames, $condition);
dba::update('gcontact', $fields, $condition, $old_fields); dba::update('gcontact', $fields, $condition, $old_fields);
@ -439,7 +439,7 @@ class Probe
$condition = array('nurl' => normalise_link($data["url"]), 'self' => false, 'uid' => 0); $condition = array('nurl' => normalise_link($data["url"]), 'self' => false, 'uid' => 0);
$old_fields = dba::selectOne('contact', $fieldnames, $condition); $old_fields = dba::selectFirst('contact', $fieldnames, $condition);
dba::update('contact', $fields, $condition, $old_fields); dba::update('contact', $fields, $condition, $old_fields);
} }

View File

@ -261,7 +261,7 @@ class Post extends BaseObject
'classundo' => $item['starred'] ? "" : "hidden", 'classundo' => $item['starred'] ? "" : "hidden",
'starred' => t('starred'), 'starred' => t('starred'),
); );
$r = dba::selectOne('thread', ['ignored'], ['uid' => $item['uid'], 'iid' => $item['id']]); $r = dba::selectFirst('thread', ['ignored'], ['uid' => $item['uid'], 'iid' => $item['id']]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$ignore = array( $ignore = array(
'do' => t("ignore thread"), 'do' => t("ignore thread"),

View File

@ -2015,7 +2015,7 @@ class Diaspora
// like on comments have the comment as parent. So we need to fetch the toplevel parent // like on comments have the comment as parent. So we need to fetch the toplevel parent
if ($parent_item["id"] != $parent_item["parent"]) { if ($parent_item["id"] != $parent_item["parent"]) {
$toplevel = dba::selectOne('item', ['origin'], ['id' => $parent_item["parent"]]); $toplevel = dba::selectFirst('item', ['origin'], ['id' => $parent_item["parent"]]);
$origin = $toplevel["origin"]; $origin = $toplevel["origin"];
} else { } else {
$origin = $parent_item["origin"]; $origin = $parent_item["origin"];
@ -2317,7 +2317,7 @@ class Diaspora
$arr["last-child"] = 1; $arr["last-child"] = 1;
$user = dba::selectOne('user', ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid'], ['uid' => $importer["uid"]]); $user = dba::selectFirst('user', ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid'], ['uid' => $importer["uid"]]);
$arr["allow_cid"] = $user["allow_cid"]; $arr["allow_cid"] = $user["allow_cid"];
$arr["allow_gid"] = $user["allow_gid"]; $arr["allow_gid"] = $user["allow_gid"];
@ -2741,7 +2741,7 @@ class Diaspora
while ($item = dba::fetch($r)) { while ($item = dba::fetch($r)) {
// Fetch the parent item // Fetch the parent item
$parent = dba::selectOne('item', ['author-link', 'origin'], ['id' => $item["parent"]]); $parent = dba::selectFirst('item', ['author-link', 'origin'], ['id' => $item["parent"]]);
// Only delete it if the parent author really fits // Only delete it if the parent author really fits
if (!link_compare($parent["author-link"], $contact["url"]) && !link_compare($item["author-link"], $contact["url"])) { if (!link_compare($parent["author-link"], $contact["url"]) && !link_compare($item["author-link"], $contact["url"])) {
@ -3255,7 +3255,7 @@ class Diaspora
// If the item belongs to a user, we take this user id. // If the item belongs to a user, we take this user id.
if ($item['uid'] == 0) { if ($item['uid'] == 0) {
$condition = ['verified' => true, 'blocked' => false, 'account_removed' => false, 'account_expired' => false]; $condition = ['verified' => true, 'blocked' => false, 'account_removed' => false, 'account_expired' => false];
$first_user = dba::selectOne('user', ['uid'], $condition); $first_user = dba::selectFirst('user', ['uid'], $condition);
$owner = User::getOwnerDataById($first_user['uid']); $owner = User::getOwnerDataById($first_user['uid']);
} else { } else {
$owner = User::getOwnerDataById($item['uid']); $owner = User::getOwnerDataById($item['uid']);

View File

@ -254,7 +254,7 @@ class Feed {
if (!$simulate) { if (!$simulate) {
$condition = ["`uid` = ? AND `uri` = ? AND `network` IN (?, ?)", $condition = ["`uid` = ? AND `uri` = ? AND `network` IN (?, ?)",
$importer["uid"], $item["uri"], NETWORK_FEED, NETWORK_DFRN]; $importer["uid"], $item["uri"], NETWORK_FEED, NETWORK_DFRN];
$previous = dba::selectOne('item', ['id'], $condition); $previous = dba::selectFirst('item', ['id'], $condition);
if (DBM::is_result($previous)) { if (DBM::is_result($previous)) {
logger("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already existed under id ".$previous["id"], LOGGER_DEBUG); logger("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already existed under id ".$previous["id"], LOGGER_DEBUG);
continue; continue;

View File

@ -72,7 +72,7 @@ class OStatus
if ($aliaslink != '') { if ($aliaslink != '') {
$condition = ["`uid` = ? AND `alias` = ? AND `network` != ?", $condition = ["`uid` = ? AND `alias` = ? AND `network` != ?",
$importer["uid"], $aliaslink, NETWORK_STATUSNET]; $importer["uid"], $aliaslink, NETWORK_STATUSNET];
$r = dba::selectOne('contact', [], $condition); $r = dba::selectFirst('contact', [], $condition);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$found = true; $found = true;
@ -91,7 +91,7 @@ class OStatus
$condition = ["`uid` = ? AND `nurl` IN (?, ?) AND `network` != ?", $importer["uid"], $condition = ["`uid` = ? AND `nurl` IN (?, ?) AND `network` != ?", $importer["uid"],
normalise_link($author["author-link"]), normalise_link($aliaslink), NETWORK_STATUSNET]; normalise_link($author["author-link"]), normalise_link($aliaslink), NETWORK_STATUSNET];
$r = dba::selectOne('contact', [], $condition); $r = dba::selectFirst('contact', [], $condition);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$found = true; $found = true;
@ -106,7 +106,7 @@ class OStatus
if (!$found && ($addr != "")) { if (!$found && ($addr != "")) {
$condition = ["`uid` = ? AND `addr` = ? AND `network` != ?", $condition = ["`uid` = ? AND `addr` = ? AND `network` != ?",
$importer["uid"], $addr, NETWORK_STATUSNET]; $importer["uid"], $addr, NETWORK_STATUSNET];
$r = dba::selectOne('contact', [], $condition); $r = dba::selectFirst('contact', [], $condition);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$found = true; $found = true;
@ -208,7 +208,7 @@ class OStatus
if ($cid) { if ($cid) {
$fields = ['url', 'nurl', 'name', 'nick', 'alias', 'about', 'location']; $fields = ['url', 'nurl', 'name', 'nick', 'alias', 'about', 'location'];
$old_contact = dba::selectOne('contact', $fields, ['id' => $cid]); $old_contact = dba::selectFirst('contact', $fields, ['id' => $cid]);
// Update it with the current values // Update it with the current values
$fields = array('url' => $author["author-link"], 'name' => $contact["name"], $fields = array('url' => $author["author-link"], 'name' => $contact["name"],
@ -542,7 +542,7 @@ class OStatus
private static function deleteNotice($item) private static function deleteNotice($item)
{ {
$condition = ['uid' => $item['uid'], 'author-link' => $item['author-link'], 'uri' => $item['uri']]; $condition = ['uid' => $item['uid'], 'author-link' => $item['author-link'], 'uri' => $item['uri']];
$deleted = dba::selectOne('item', ['id', 'parent-uri'], $condition); $deleted = dba::selectFirst('item', ['id', 'parent-uri'], $condition);
if (!DBM::is_result($deleted)) { if (!DBM::is_result($deleted)) {
logger('Item from '.$item['author-link'].' with uri '.$item['uri'].' for user '.$item['uid']." wasn't found. We don't delete it. "); logger('Item from '.$item['author-link'].' with uri '.$item['uri'].' for user '.$item['uid']." wasn't found. We don't delete it. ");
return; return;
@ -896,7 +896,7 @@ class OStatus
private static function fetchRelated($related, $related_uri, $importer) private static function fetchRelated($related, $related_uri, $importer)
{ {
$condition = ['`item-uri` = ? AND `protocol` IN (?, ?)', $related_uri, PROTOCOL_DFRN, PROTOCOL_OSTATUS_SALMON]; $condition = ['`item-uri` = ? AND `protocol` IN (?, ?)', $related_uri, PROTOCOL_DFRN, PROTOCOL_OSTATUS_SALMON];
$conversation = dba::selectOne('conversation', ['source', 'protocol'], $condition); $conversation = dba::selectFirst('conversation', ['source', 'protocol'], $condition);
if (DBM::is_result($conversation)) { if (DBM::is_result($conversation)) {
$stored = true; $stored = true;
$xml = $conversation['source']; $xml = $conversation['source'];
@ -976,7 +976,7 @@ class OStatus
// Finally we take the data that we fetched from "ostatus:conversation" // Finally we take the data that we fetched from "ostatus:conversation"
if ($xml == '') { if ($xml == '') {
$condition = ['item-uri' => $related_uri, 'protocol' => PROTOCOL_SPLITTED_CONV]; $condition = ['item-uri' => $related_uri, 'protocol' => PROTOCOL_SPLITTED_CONV];
$conversation = dba::selectOne('conversation', ['source'], $condition); $conversation = dba::selectFirst('conversation', ['source'], $condition);
if (DBM::is_result($conversation)) { if (DBM::is_result($conversation)) {
$stored = true; $stored = true;
logger('Got cached XML from conversation for URI '.$related_uri, LOGGER_DEBUG); logger('Got cached XML from conversation for URI '.$related_uri, LOGGER_DEBUG);

View File

@ -66,7 +66,7 @@ class PortableContact
if ($cid) { if ($cid) {
if (!$url || !$uid) { if (!$url || !$uid) {
$r = dba::selectOne('contact', ['poco', 'uid'], ['id' => $cid]); $r = dba::selectFirst('contact', ['poco', 'uid'], ['id' => $cid]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$url = $r['poco']; $url = $r['poco'];
$uid = $r['uid']; $uid = $r['uid'];
@ -813,7 +813,7 @@ class PortableContact
return false; return false;
} }
$servers = dba::selectOne('gserver', [], ['nurl' => normalise_link($server_url)]); $servers = dba::selectFirst('gserver', [], ['nurl' => normalise_link($server_url)]);
if (DBM::is_result($servers)) { if (DBM::is_result($servers)) {
if ($servers["created"] <= NULL_DATE) { if ($servers["created"] <= NULL_DATE) {
$fields = ['created' => datetime_convert()]; $fields = ['created' => datetime_convert()];

View File

@ -226,7 +226,7 @@ class ExAuth
if ($a->get_hostname() == $aCommand[2]) { if ($a->get_hostname() == $aCommand[2]) {
$this->writeLog(LOG_INFO, 'internal auth for ' . $sUser . '@' . $aCommand[2]); $this->writeLog(LOG_INFO, 'internal auth for ' . $sUser . '@' . $aCommand[2]);
$aUser = dba::selectOne('user', ['uid', 'password'], ['nickname' => $sUser]); $aUser = dba::selectFirst('user', ['uid', 'password'], ['nickname' => $sUser]);
if (DBM::is_result($aUser)) { if (DBM::is_result($aUser)) {
$uid = $aUser['uid']; $uid = $aUser['uid'];
$success = User::authenticate($aUser, $aCommand[3]); $success = User::authenticate($aUser, $aCommand[3]);

View File

@ -126,7 +126,7 @@ class Lock
do { do {
dba::lock('locks'); dba::lock('locks');
$lock = dba::selectOne('locks', ['locked', 'pid'], ['name' => $fn_name]); $lock = dba::selectFirst('locks', ['locked', 'pid'], ['name' => $fn_name]);
if (DBM::is_result($lock)) { if (DBM::is_result($lock)) {
if ($lock['locked']) { if ($lock['locked']) {

View File

@ -39,7 +39,7 @@ class Expire {
} }
return; return;
} elseif (intval($param) > 0) { } elseif (intval($param) > 0) {
$user = dba::selectOne('user', ['uid', 'username', 'expire'], ['uid' => $param]); $user = dba::selectFirst('user', ['uid', 'username', 'expire'], ['uid' => $param]);
if (DBM::is_result($user)) { if (DBM::is_result($user)) {
logger('Expire items for user '.$user['uid'].' ('.$user['username'].') - interval: '.$user['expire'], LOGGER_DEBUG); logger('Expire items for user '.$user['uid'].' ('.$user['username'].') - interval: '.$user['expire'], LOGGER_DEBUG);
item_expire($user['uid'], $user['expire']); item_expire($user['uid'], $user['expire']);

View File

@ -267,7 +267,7 @@ class Notifier {
$fields = ['forum', 'prv']; $fields = ['forum', 'prv'];
$condition = ['id' => $target_item['contact-id']]; $condition = ['id' => $target_item['contact-id']];
$contact = dba::selectOne('contact', $fields, $condition); $contact = dba::selectFirst('contact', $fields, $condition);
if (!DBM::is_result($contact)) { if (!DBM::is_result($contact)) {
// Should never happen // Should never happen
return false; return false;

View File

@ -42,7 +42,7 @@ Class OnePoll
$d = datetime_convert(); $d = datetime_convert();
$contact = dba::selectOne('contact', [], ['id' => $contact_id]); $contact = dba::selectFirst('contact', [], ['id' => $contact_id]);
if (!DBM::is_result($contact)) { if (!DBM::is_result($contact)) {
logger('Contact not found or cannot be used.'); logger('Contact not found or cannot be used.');
return; return;
@ -339,10 +339,10 @@ Class OnePoll
logger("Mail: Enabled", LOGGER_DEBUG); logger("Mail: Enabled", LOGGER_DEBUG);
$mbox = null; $mbox = null;
$user = dba::selectOne('user', ['prvkey'], ['uid' => $importer_uid]); $user = dba::selectFirst('user', ['prvkey'], ['uid' => $importer_uid]);
$condition = ["`server` != '' AND `uid` = ?", $importer_uid]; $condition = ["`server` != '' AND `uid` = ?", $importer_uid];
$mailconf = dba::selectOne('mailacct', [], $condition); $mailconf = dba::selectFirst('mailacct', [], $condition);
if (DBM::is_result($user) && DBM::is_result($mailconf)) { if (DBM::is_result($user) && DBM::is_result($mailconf)) {
$mailbox = Email::constructMailboxName($mailconf); $mailbox = Email::constructMailboxName($mailconf);
$password = ''; $password = '';
@ -384,7 +384,7 @@ Class OnePoll
// Have we seen it before? // Have we seen it before?
$fields = ['deleted', 'id']; $fields = ['deleted', 'id'];
$condition = ['uid' => $importer_uid, 'uri' => $datarray['uri']]; $condition = ['uid' => $importer_uid, 'uri' => $datarray['uri']];
$r = dba::selectOne('item', $fields, $condition); $r = dba::selectFirst('item', $fields, $condition);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
logger("Mail: Seen before ".$msg_uid." for ".$mailconf['user']." UID: ".$importer_uid." URI: ".$datarray['uri'],LOGGER_DEBUG); logger("Mail: Seen before ".$msg_uid." for ".$mailconf['user']." UID: ".$importer_uid." URI: ".$datarray['uri'],LOGGER_DEBUG);

View File

@ -80,7 +80,7 @@ class Queue
$q_item = $r[0]; $q_item = $r[0];
$contact = dba::selectOne('contact', [], ['id' => $q_item['cid']]); $contact = dba::selectFirst('contact', [], ['id' => $q_item['cid']]);
if (!DBM::is_result($contact)) { if (!DBM::is_result($contact)) {
remove_queue_item($q_item['id']); remove_queue_item($q_item['id']);
return; return;
@ -113,7 +113,7 @@ class Queue
} }
} }
$user = dba::selectOne('user', [], ['uid' => $contact['uid']]); $user = dba::selectFirst('user', [], ['uid' => $contact['uid']]);
if (!DBM::is_result($user)) { if (!DBM::is_result($user)) {
remove_queue_item($q_item['id']); remove_queue_item($q_item['id']);
return; return;

View File

@ -57,7 +57,7 @@ if (in_array($net['network'], array(NETWORK_PHANTOM, NETWORK_MAIL))) {
exit(1); exit(1);
} }
$nurl = normalise_link($net['url']); $nurl = normalise_link($net['url']);
$r = dba::selectOne("contact", ["id"], ["nurl" => $nurl, "uid" => 0]); $r = dba::selectFirst("contact", ["id"], ["nurl" => $nurl, "uid" => 0]);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
dba::update("contact", array("hidden" => true), array("id" => $r["id"])); dba::update("contact", array("hidden" => true), array("id" => $r["id"]));
echo "NOTICE: The account should be silenced from the global community page\r\n"; echo "NOTICE: The account should be silenced from the global community page\r\n";