Remove mod/hovercard file
This commit is contained in:
		
					parent
					
						
							
								707d9efed5
							
						
					
				
			
			
				commit
				
					
						e3e2b0e6d0
					
				
			
		
					 1 changed files with 0 additions and 151 deletions
				
			
		| 
						 | 
				
			
			@ -1,151 +0,0 @@
 | 
			
		|||
<?php
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Name: Frio Hovercard
 | 
			
		||||
 * Description: Hovercard addon for the frio theme
 | 
			
		||||
 * Version: 0.1
 | 
			
		||||
 * Author: Rabuzarus <https://github.com/rabuzarus>
 | 
			
		||||
 * License: GNU AFFERO GENERAL PUBLIC LICENSE (Version 3)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
use Friendica\App;
 | 
			
		||||
use Friendica\Core\Config;
 | 
			
		||||
use Friendica\Core\Renderer;
 | 
			
		||||
use Friendica\Core\System;
 | 
			
		||||
use Friendica\Database\DBA;
 | 
			
		||||
use Friendica\Model\Contact;
 | 
			
		||||
use Friendica\Model\GContact;
 | 
			
		||||
use Friendica\Util\Proxy as ProxyUtils;
 | 
			
		||||
use Friendica\Util\Strings;
 | 
			
		||||
 | 
			
		||||
function hovercard_init(App $a)
 | 
			
		||||
{
 | 
			
		||||
	// Just for testing purposes
 | 
			
		||||
	$_GET['mode'] = 'minimal';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function hovercard_content()
 | 
			
		||||
{
 | 
			
		||||
	$profileurl =  $_REQUEST['profileurl'] ?? '';
 | 
			
		||||
	$datatype   = ($_REQUEST['datatype']   ?? '') ?: 'json';
 | 
			
		||||
 | 
			
		||||
	// Get out if the system doesn't have public access allowed
 | 
			
		||||
	if (intval(Config::get('system', 'block_public'))) {
 | 
			
		||||
		throw new \Friendica\Network\HTTPException\ForbiddenException();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 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 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;
 | 
			
		||||
		exit();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 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 (strpos($profileurl, 'redir/') === 0) {
 | 
			
		||||
		$cid = intval(substr($profileurl, 6));
 | 
			
		||||
		$remote_contact = DBA::selectFirst('contact', ['nurl'], ['id' => $cid]);
 | 
			
		||||
		$profileurl = $remote_contact['nurl'] ?? '';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$contact = [];
 | 
			
		||||
	// if it's the url containing https it should be converted to http
 | 
			
		||||
	$nurl = Strings::normaliseLink(GContact::cleanContactUrl($profileurl));
 | 
			
		||||
	if (!$nurl) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Search for contact data
 | 
			
		||||
	// Look if the local user has got the contact
 | 
			
		||||
	if (local_user()) {
 | 
			
		||||
		$contact = Contact::getDetailsByURL($nurl, local_user());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// If not then check the global user
 | 
			
		||||
	if (!count($contact)) {
 | 
			
		||||
		$contact = Contact::getDetailsByURL($nurl);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Feeds url could have been destroyed through "cleanContactUrl", so we now use the original url
 | 
			
		||||
	if (!count($contact) && local_user()) {
 | 
			
		||||
		$nurl = Strings::normaliseLink($profileurl);
 | 
			
		||||
		$contact = Contact::getDetailsByURL($nurl, local_user());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!count($contact)) {
 | 
			
		||||
		$nurl = Strings::normaliseLink($profileurl);
 | 
			
		||||
		$contact = Contact::getDetailsByURL($nurl);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!count($contact)) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Get the photo_menu - the menu if possible contact actions
 | 
			
		||||
	if (local_user()) {
 | 
			
		||||
		$actions = Contact::photoMenu($contact);
 | 
			
		||||
	} else {
 | 
			
		||||
		$actions = [];
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Move the contact data to the profile array so we can deliver it to
 | 
			
		||||
	$profile = [
 | 
			
		||||
		'name'         => $contact['name'],
 | 
			
		||||
		'nick'         => $contact['nick'],
 | 
			
		||||
		'addr'         => ($contact['addr'] ?? '') ?: $contact['url'],
 | 
			
		||||
		'thumb'        => ProxyUtils::proxifyUrl($contact['thumb'], false, ProxyUtils::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_link' => Strings::formatNetworkName($contact['network'], $contact['url']),
 | 
			
		||||
		'tags'         => $contact['keywords'],
 | 
			
		||||
		'bd'           => $contact['birthday'] <= DBA::NULL_DATE ? '' : $contact['birthday'],
 | 
			
		||||
		'account_type' => Contact::getAccountType($contact),
 | 
			
		||||
		'actions'      => $actions,
 | 
			
		||||
	];
 | 
			
		||||
	if ($datatype == 'html') {
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate('hovercard.tpl');
 | 
			
		||||
		$o = Renderer::replaceMacros($tpl, [
 | 
			
		||||
			'$profile' => $profile,
 | 
			
		||||
		]);
 | 
			
		||||
 | 
			
		||||
		return $o;
 | 
			
		||||
	} else {
 | 
			
		||||
		System::jsonExit($profile);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the raw content of a template file
 | 
			
		||||
 *
 | 
			
		||||
 * @param string $template The name of the template
 | 
			
		||||
 * @param string $root     Directory of the template
 | 
			
		||||
 *
 | 
			
		||||
 * @return string|bool Output the raw content if existent, otherwise false
 | 
			
		||||
 * @throws Exception
 | 
			
		||||
 */
 | 
			
		||||
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.
 | 
			
		||||
	$templateEngine = Renderer::getTemplateEngine();
 | 
			
		||||
	$template = $templateEngine->getTemplateFile($template, $root);
 | 
			
		||||
 | 
			
		||||
	$filename = $template->filename;
 | 
			
		||||
 | 
			
		||||
	// Get the content of the template file
 | 
			
		||||
	if (file_exists($filename)) {
 | 
			
		||||
		$content = file_get_contents($filename);
 | 
			
		||||
 | 
			
		||||
		return $content;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue