X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fhovercard.php;h=0e8cc80f27ae962453b57988f4d005d037c3e890;hb=5af9596dde162b1b9819869e3d5129f571a1c503;hp=65b03f2b9470f96163c9f3b67cc819548df0a092;hpb=07faa14361f46b744e4b135d161ad491baa93809;p=friendica.git diff --git a/mod/hovercard.php b/mod/hovercard.php index 65b03f2b94..0e8cc80f27 100644 --- a/mod/hovercard.php +++ b/mod/hovercard.php @@ -7,90 +7,91 @@ * Author: Rabuzarus * License: GNU AFFERO GENERAL PUBLIC LICENSE (Version 3) */ - -require_once("include/socgraph.php"); -require_once("include/Contact.php"); - -function hovercard_init(App $a) { +use Friendica\App; +use Friendica\Core\Config; +use Friendica\Core\System; +use Friendica\Model\Contact; +use Friendica\Model\GContact; +use Friendica\Model\Profile; + +function hovercard_init(App $a) +{ // Just for testing purposes - $_GET["mode"] = "minimal"; + $_GET['mode'] = 'minimal'; } -function hovercard_content() { - $profileurl = (x($_REQUEST,'profileurl') ? $_REQUEST['profileurl'] : ""); - $datatype = (x($_REQUEST,'datatype') ?$_REQUEST['datatype'] : "json"); + +function hovercard_content() +{ + $profileurl = defaults($_REQUEST, 'profileurl', ''); + $datatype = defaults($_REQUEST, 'datatype' , 'json'); // Get out if the system doesn't have public access allowed - if(intval(get_config('system','block_public'))) - http_status_exit(401); + if (intval(Config::get('system', 'block_public'))) { + System::httpExit(401); + } // Return the raw content of the template. We use this to make templates usable for js functions. // Look at hovercard.js (function getHoverCardTemplate()). - // This part should be moved in it's own module. Maybe we could make more templates accessabel. - // (We need to discuss possible security lacks before doing this) - if ($datatype == "tpl") { - $templatecontent = get_template_content("hovercard.tpl"); + // This part should be moved in its own module. Maybe we could make more templates accessible. + // (We need to discuss possible security leaks before doing this) + if ($datatype == 'tpl') { + $templatecontent = get_template_content('hovercard.tpl'); echo $templatecontent; killme(); } - // If a contact is connected the url is internally changed to "redir/CID". We need the pure url to search for + // If a contact is connected the url is internally changed to 'redir/CID'. We need the pure url to search for // the contact. So we strip out the contact id from the internal url and look in the contact table for // the real url (nurl) - if(local_user() && strpos($profileurl, "redir/") === 0) { + $cid = 0; + if (strpos($profileurl, 'redir/') === 0) { $cid = intval(substr($profileurl, 6)); - $r = q("SELECT `nurl`, `self` FROM `contact` WHERE `id` = '%d' LIMIT 1", intval($cid)); - $profileurl = ($r[0]["nurl"] ? $r[0]["nurl"] : ""); - $self = ($r[0]["self"] ? $r[0]["self"] : ""); + $remote_contact = dba::selectFirst('contact', ['nurl'], ['id' => $cid]); + $profileurl = defaults($remote_contact, 'nurl', ''); } + $contact = []; // if it's the url containing https it should be converted to http - $nurl = normalise_link(clean_contact_url($profileurl)); - if($nurl) { + $nurl = normalise_link(GContact::cleanContactUrl($profileurl)); + if ($nurl) { // Search for contact data - $contact = get_contact_details_by_url($nurl); + $contact = Contact::getDetailsByURL($nurl); } - - if(!is_array($contact)) + if (!count($contact)) { return; + } // Get the photo_menu - the menu if possible contact actions - if(local_user()) - $actions = contact_photo_menu($contact); - + if (local_user()) { + $actions = Contact::photoMenu($contact); + } // Move the contact data to the profile array so we can deliver it to - // - $profile = array( - 'name' => $contact["name"], - 'nick' => $contact["nick"], - 'addr' => (($contact["addr"] != "") ? $contact["addr"] : $contact["url"]), - 'thumb' => proxy_url($contact["thumb"], false, PROXY_SIZE_THUMB), - 'url' => ($cid ? ("redir/".$cid) : zrl($contact["url"])), - 'nurl' => $contact["nurl"], // We additionally store the nurl as identifier -// 'alias' => $contact["alias"], - 'location' => $contact["location"], - 'gender' => $contact["gender"], - 'about' => $contact["about"], - 'network' => format_network_name($contact["network"], $contact["url"]), - 'tags' => $contact["keywords"], -// 'nsfw' => intval($contact["nsfw"]), -// 'server_url' => $contact["server_url"], - 'bd' => (($contact["birthday"] <= '0001-01-01') ? "" : $contact["birthday"]), -// 'generation' => $contact["generation"], - 'account_type' => account_type($contact), - 'actions' => $actions, - ); - if($datatype == "html") { - $t = get_markup_template("hovercard.tpl"); - - $o = replace_macros($t, array( + $profile = [ + 'name' => $contact['name'], + 'nick' => $contact['nick'], + 'addr' => defaults($contact, 'addr', $contact['url']), + 'thumb' => proxy_url($contact['thumb'], false, PROXY_SIZE_THUMB), + 'url' => Contact::magicLink($contact['url']), + 'nurl' => $contact['nurl'], // We additionally store the nurl as identifier + 'location' => $contact['location'], + 'gender' => $contact['gender'], + 'about' => $contact['about'], + 'network' => format_network_name($contact['network'], $contact['url']), + 'tags' => $contact['keywords'], + 'bd' => $contact['birthday'] <= '0001-01-01' ? '' : $contact['birthday'], + 'account_type' => Contact::getAccountType($contact), + 'actions' => $actions, + ]; + if ($datatype == 'html') { + $tpl = get_markup_template('hovercard.tpl'); + $o = replace_macros($tpl, [ '$profile' => $profile, - )); + ]); return $o; - } else { - json_return_and_die($profile); + System::jsonExit($profile); } } @@ -102,15 +103,15 @@ function hovercard_content() { * * @return string|bool Output the raw content if existent, otherwise false */ -function get_template_content($template, $root = "") { - +function get_template_content($template, $root = '') +{ // We load the whole template system to get the filename. // Maybe we can do it a little bit smarter if I get time. $t = get_markup_template($template, $root); $filename = $t->filename; // Get the content of the template file - if(file_exists($filename)) { + if (file_exists($filename)) { $content = file_get_contents($filename); return $content;