X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Facl_selectors.php;h=f57af575afa3091124e3dff1716d6b288c6c62fe;hb=27b3943cc7a79ad16be45276f4676de22fc38617;hp=f337474a2a0347ac894a730be0f99208990d6d53;hpb=33e938a837cdb7ba7ae3ae00d0ffc6cdf8183a1d;p=friendica.git diff --git a/include/acl_selectors.php b/include/acl_selectors.php index f337474a2a..f57af575af 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -4,11 +4,11 @@ * @file include/acl_selectors.php */ -require_once("include/contact_selectors.php"); -require_once("include/contact_widgets.php"); -require_once("include/DirSearch.php"); -require_once("include/features.php"); -require_once("mod/proxy.php"); +require_once "include/contact_selectors.php"; +require_once "include/contact_widgets.php"; +require_once "include/DirSearch.php"; +require_once "include/features.php"; +require_once "mod/proxy.php"; /** @@ -35,10 +35,11 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) { if (dbm::is_result($r)) { foreach ($r as $rr) { - if ((is_array($preselected)) && in_array($rr['id'], $preselected)) + if ((is_array($preselected)) && in_array($rr['id'], $preselected)) { $selected = " selected=\"selected\" "; - else + } else { $selected = ''; + } $trimmed = mb_substr($rr['name'],0,12); @@ -54,7 +55,8 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) { return $o; } - +/// @TODO after an optional parameter, no mandadory parameter can follow +/// @TODO find proper type-hints function contact_selector($selname, $selclass, $preselected = false, $options) { $a = get_app(); @@ -66,24 +68,24 @@ function contact_selector($selname, $selclass, $preselected = false, $options) { $size = 4; if (is_array($options)) { - if (x($options,'size')) + if (x($options, 'size')) $size = $options['size']; - if (x($options,'mutual_friends')) { + if (x($options, 'mutual_friends')) { $mutual = true; } - if (x($options,'single')) { + if (x($options, 'single')) { $single = true; } - if (x($options,'multiple')) { + if (x($options, 'multiple')) { $single = false; } - if (x($options,'exclude')) { + if (x($options, 'exclude')) { $exclude = $options['exclude']; } - if (x($options,'networks')) { - switch($options['networks']) { + if (x($options, 'networks')) { + switch ($options['networks']) { case 'DFRN_ONLY': $networks = array(NETWORK_DFRN); break; @@ -115,11 +117,11 @@ function contact_selector($selname, $selclass, $preselected = false, $options) { $sql_extra = ''; - if ($x['mutual']) { + if (x($x, 'mutual')) { $sql_extra .= sprintf(" AND `rel` = %d ", intval(CONTACT_IS_FRIEND)); } - if (intval($x['exclude'])) { + if (x($x, 'exclude')) { $sql_extra .= sprintf(" AND `id` != %d ", intval($x['exclude'])); } @@ -374,7 +376,7 @@ function populate_acl($user = null, $show_jotnets = false) { '$aclModalTitle' => t('Permissions'), '$aclModalDismiss' => t('Close'), '$features' => array( - 'aclautomention' => (feature_enabled($user['uid'],"aclautomention")?"true":"false") + 'aclautomention' => (feature_enabled($user['uid'], "aclautomention") ? "true" : "false") ), )); @@ -391,7 +393,7 @@ function construct_acl_data(App $a, $user) { $user_defaults = get_acl_permissions($user); if ($acl_data['groups']) { - foreach ($acl_data['groups'] as $key=>$group) { + foreach ($acl_data['groups'] as $key => $group) { // Add a "selected" flag to groups that are posted to by default if ($user_defaults['allow_gid'] && in_array($group['id'], $user_defaults['allow_gid']) && !in_array($group['id'], $user_defaults['deny_gid']) ) { @@ -402,7 +404,7 @@ function construct_acl_data(App $a, $user) { } } if ($acl_data['contacts']) { - foreach ($acl_data['contacts'] as $key=>$contact) { + foreach ($acl_data['contacts'] as $key => $contact) { // Add a "selected" flag to groups that are posted to by default if ($user_defaults['allow_cid'] && in_array($contact['id'], $user_defaults['allow_cid']) && !in_array($contact['id'], $user_defaults['deny_cid']) ) { @@ -441,7 +443,7 @@ function acl_lookup(App $a, $out_type = 'json') { logger("Searching for ".$search." - type ".$type, LOGGER_DEBUG); - if ($search!=""){ + if ($search != "") { $sql_extra = "AND `name` LIKE '%%".dbesc($search)."%%'"; $sql_extra2 = "AND (`attag` LIKE '%%".dbesc($search)."%%' OR `name` LIKE '%%".dbesc($search)."%%' OR `nick` LIKE '%%".dbesc($search)."%%')"; } else { @@ -450,7 +452,7 @@ function acl_lookup(App $a, $out_type = 'json') { } // count groups and contacts - if ($type=='' || $type=='g'){ + if ($type == '' || $type == 'g') { $r = q("SELECT COUNT(*) AS g FROM `group` WHERE `deleted` = 0 AND `uid` = %d $sql_extra", intval(local_user()) ); @@ -508,7 +510,7 @@ function acl_lookup(App $a, $out_type = 'json') { $groups = array(); $contacts = array(); - if ($type=='' || $type=='g'){ + if ($type == '' || $type == 'g') { /// @todo We should cache this query. // This can be done when we can delete cache entries via wildcard @@ -517,7 +519,7 @@ function acl_lookup(App $a, $out_type = 'json') { INNER JOIN `group_member` ON `group_member`.`gid`=`group`.`id` AND `group_member`.`uid` = `group`.`uid` WHERE NOT `group`.`deleted` AND `group`.`uid` = %d $sql_extra - GROUP BY `group`.`name` + GROUP BY `group`.`name`, `group`.`id` ORDER BY `group`.`name` LIMIT %d,%d", intval(local_user()), @@ -525,7 +527,7 @@ function acl_lookup(App $a, $out_type = 'json') { intval($count) ); - foreach ($r as $g){ + foreach ($r as $g) { // logger('acl: group: ' . $g['name'] . ' members: ' . $g['uids']); $groups[] = array( "type" => "g", @@ -539,7 +541,7 @@ function acl_lookup(App $a, $out_type = 'json') { } } - if ($type==''){ + if ($type == '') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum`, `prv` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' @@ -549,9 +551,7 @@ function acl_lookup(App $a, $out_type = 'json') { intval(local_user()), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_STATUSNET) ); - } - elseif ($type=='c'){ - + } elseif ($type == 'c') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum`, `prv` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' AND NOT (`network` IN ('%s')) @@ -625,46 +625,50 @@ function acl_lookup(App $a, $out_type = 'json') { $items = array_merge($groups, $contacts); if ($conv_id) { - /* if $conv_id is set, get unknow contacts in thread */ - /* but first get know contacts url to filter them out */ - function _contact_link($i) { return dbesc($i['link']); } - $known_contacts = array_map('_contact_link', $contacts); - $unknow_contacts = array(); - $r = q("SELECT `author-avatar`,`author-name`,`author-link` + /* + * if $conv_id is set, get unknown contacts in thread + * but first get known contacts url to filter them out + */ + $known_contacts = array_map( + function ($i) { + return dbesc($i['link']); + } + , $contacts); + + $unknown_contacts = array(); + $r = q("SELECT `author-link` FROM `item` WHERE `parent` = %d AND (`author-name` LIKE '%%%s%%' OR `author-link` LIKE '%%%s%%') AND `author-link` NOT IN ('%s') - GROUP BY `author-link` + GROUP BY `author-link`, `author-avatar`, `author-name` ORDER BY `author-name` ASC ", intval($conv_id), dbesc($search), dbesc($search), - implode("','", $known_contacts) + implode("', '", $known_contacts) ); if (dbm::is_result($r)) { foreach ($r as $row) { - // nickname.. - $up = parse_url($row['author-link']); - $nick = explode("/", $up['path']); - $nick = $nick[count($nick) - 1]; - $nick .= "@" . $up['host']; - // /nickname - $unknow_contacts[] = array( - 'type' => 'c', - 'photo' => proxy_url($row['author-avatar'], false, PROXY_SIZE_MICRO), - 'name' => htmlentities($row['author-name']), - 'id' => '', - 'network' => 'unknown', - 'link' => $row['author-link'], - 'nick' => htmlentities($nick), - 'forum' => false - ); + $contact = get_contact_details_by_url($row['author-link']); + + if (count($contact) > 0) { + $unknown_contacts[] = array( + 'type' => 'c', + 'photo' => proxy_url($contact['micro'], false, PROXY_SIZE_MICRO), + 'name' => htmlentities($contact['name']), + 'id' => intval($contact['cid']), + 'network' => $contact['network'], + 'link' => $contact['url'], + 'nick' => htmlentities($contact['nick'] ? : $contact['addr']), + 'forum' => $contact['forum'] + ); + } } } - $items = array_merge($items, $unknow_contacts); - $tot += count($unknow_contacts); + $items = array_merge($items, $unknown_contacts); + $tot += count($unknown_contacts); } $results = array(