if((! $debugging) || (! $logfile) || ($level > $loglevel))
return;
+ $process_id = session_id();
+
+ if ($process_id == "")
+ $process_id = get_app()->process_id;
+
$callers = debug_backtrace();
$logline = sprintf("%s@%s\t[%s]:%s:%s:%s\t%s\n",
datetime_convert(),
- session_id(),
+ $process_id,
$LOGGER_LEVELS[$level],
basename($callers[0]['file']),
$callers[0]['line'],
$micropro = Null;
} else {
- $r = q("SELECT `id`, `uid`, `addr`, `url`, `name`, `micro`, `network` FROM `contact`
+ // Splitting the query in two parts makes it much faster
+ $r = q("SELECT `id` FROM `contact`
WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending`
AND NOT `hidden` AND NOT `archive`
AND `network` IN ('%s', '%s', '%s') ORDER BY RAND() LIMIT %d",
dbesc(NETWORK_DIASPORA),
intval($shown)
);
- if(count($r)) {
- $contacts = sprintf( tt('%d Contact','%d Contacts', $total),$total);
- $micropro = Array();
- foreach($r as $rr) {
- $micropro[] = micropro($rr,true,'mpfriend');
+ if ($r) {
+ $contacts = "";
+ foreach ($r AS $contact)
+ $contacts[] = $contact["id"];
+
+ $r = q("SELECT `id`, `uid`, `addr`, `url`, `name`, `thumb`, `network` FROM `contact` WHERE `id` IN (%s)",
+ dbesc(implode(",", $contacts)));
+ if(count($r)) {
+ $contacts = sprintf( tt('%d Contact','%d Contacts', $total),$total);
+ $micropro = Array();
+ foreach($r as $rr) {
+ $micropro[] = micropro($rr,true,'mpfriend');
+ }
}
}
}
}}
-if(! function_exists('micropro')) {
/**
+ * @brief Format contacts as picture links or as texxt links
*
- * @param array $contact
- * @param boolean $redirect
- * @param string $class
- * @param boolean $textmode
- * @return string #FIXME: remove html
+ * @param array $contact Array with contacts which contains an array with
+ * int 'id' => The ID of the contact
+ * int 'uid' => The user ID of the user who owns this data
+ * string 'name' => The name of the contact
+ * string 'url' => The url to the profile page of the contact
+ * string 'addr' => The webbie of the contact (e.g.) username@friendica.com
+ * string 'network' => The network to which the contact belongs to
+ * string 'thumb' => The contact picture
+ * string 'click' => js code which is performed when clicking on the contact
+ * @param boolean $redirect If true try to use the redir url if it's possible
+ * @param string $class CSS class for the
+ * @param boolean $textmode If true display the contacts as text links
+ * if false display the contacts as picture links
+
+ * @return string Formatted html
*/
function micropro($contact, $redirect = false, $class = '', $textmode = false) {
- if($class)
- $class = ' ' . $class;
-
+ // Use the contact URL if no address is available
if ($contact["addr"] == "")
$contact["addr"] = $contact["url"];
else
$url = zrl($url);
}
- $click = ((x($contact,'click')) ? ' onclick="' . $contact['click'] . '" ' : '');
- if($click)
+
+ // If there is some js available we don't need the url
+ if(x($contact,'click'))
$url = '';
- if($textmode) {
- return '<div class="contact-block-textdiv' . $class . '"><a class="contact-block-link' . $class . $sparkle
- . (($click) ? ' fakelink' : '') . '" '
- . (($redir) ? ' target="redir" ' : '')
- . (($url) ? ' href="' . $url . '"' : '') . $click
- . '" title="' . $contact['name'] . ' [' . $contact['addr'] . ']" alt="' . $contact['name']
- . '" >'. $contact['name'] . '</a></div>' . "\r\n";
- }
- else {
- return '<div class="contact-block-div' . $class . '"><a class="contact-block-link' . $class . $sparkle
- . (($click) ? ' fakelink' : '') . '" '
- . (($redir) ? ' target="redir" ' : '')
- . (($url) ? ' href="' . $url . '"' : '') . $click . ' ><img class="contact-block-img' . $class . $sparkle . '" src="'
- . proxy_url($contact['micro'], false, PROXY_SIZE_THUMB) . '" title="' . $contact['name'] . ' [' . $contact['addr'] . ']" alt="' . $contact['name']
- . '" /></a></div>' . "\r\n";
- }
-}}
+
+ return replace_macros(get_markup_template(($textmode)?'micropro_txt.tpl':'micropro_img.tpl'),array(
+ '$click' => (($contact['click']) ? $contact['click'] : ''),
+ '$class' => $class,
+ '$url' => $url,
+ '$photo' => proxy_url($contact['thumb'], false, PROXY_SIZE_THUMB),
+ '$name' => $contact['name'],
+ 'title' => $contact['name'] . ' [' . $contact['addr'] . ']',
+ '$parkle' => $sparkle,
+ '$redir' => $redir,
+
+ ));
+}