Merge pull request #7154 from MrPetovan/task/refactor-widgets
Refactor widgets
This commit is contained in:
		
				commit
				
					
						a758671a1b
					
				
			
		
					 38 changed files with 260 additions and 309 deletions
				
			
		| 
						 | 
				
			
			@ -59,7 +59,7 @@ function cal_init(App $a)
 | 
			
		|||
 | 
			
		||||
	$account_type = Contact::getAccountType($profile);
 | 
			
		||||
 | 
			
		||||
	$tpl = Renderer::getMarkupTemplate("vcard-widget.tpl");
 | 
			
		||||
	$tpl = Renderer::getMarkupTemplate("widget/vcard.tpl");
 | 
			
		||||
 | 
			
		||||
	$vcard_widget = Renderer::replaceMacros($tpl, [
 | 
			
		||||
		'$name' => $profile['name'],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,7 +47,7 @@ function common_content(App $a)
 | 
			
		|||
		$contact = DBA::selectFirst('contact', ['name', 'url', 'photo', 'uid', 'id'], ['self' => true, 'uid' => $uid]);
 | 
			
		||||
 | 
			
		||||
		if (DBA::isResult($contact)) {
 | 
			
		||||
			$vcard_widget = Renderer::replaceMacros(Renderer::getMarkupTemplate("vcard-widget.tpl"), [
 | 
			
		||||
			$vcard_widget = Renderer::replaceMacros(Renderer::getMarkupTemplate("widget/vcard.tpl"), [
 | 
			
		||||
				'$name'  => $contact['name'],
 | 
			
		||||
				'$photo' => $contact['photo'],
 | 
			
		||||
				'url'    => 'contact/' . $cid
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -61,7 +61,7 @@ function photos_init(App $a) {
 | 
			
		|||
 | 
			
		||||
		$account_type = Contact::getAccountType($profile);
 | 
			
		||||
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate("vcard-widget.tpl");
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate("widget/vcard.tpl");
 | 
			
		||||
 | 
			
		||||
		$vcard_widget = Renderer::replaceMacros($tpl, [
 | 
			
		||||
			'$name' => $profile['name'],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,7 +49,7 @@ function videos_init(App $a)
 | 
			
		|||
 | 
			
		||||
		$account_type = Contact::getAccountType($profile);
 | 
			
		||||
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate("vcard-widget.tpl");
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate("widget/vcard.tpl");
 | 
			
		||||
 | 
			
		||||
		$vcard_widget = Renderer::replaceMacros($tpl, [
 | 
			
		||||
			'$name' => $profile['name'],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -105,7 +105,6 @@ class Router
 | 
			
		|||
			$collector->addRoute(['GET'], '/{id:\d+}/posts',                     Module\Contact::class);
 | 
			
		||||
			$collector->addRoute(['GET'], '/{id:\d+}/update',                    Module\Contact::class);
 | 
			
		||||
			$collector->addRoute(['GET'], '/{id:\d+}/updateprofile',             Module\Contact::class);
 | 
			
		||||
			$collector->addRoute(['GET'], '/all',                                Module\Contact::class);
 | 
			
		||||
			$collector->addRoute(['GET'], '/archived',                           Module\Contact::class);
 | 
			
		||||
			$collector->addRoute(['GET', 'POST'], '/batch',                      Module\Contact::class);
 | 
			
		||||
			$collector->addRoute(['GET'], '/blocked',                            Module\Contact::class);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,7 +31,7 @@ class Widget
 | 
			
		|||
	 */
 | 
			
		||||
	public static function follow($value = "")
 | 
			
		||||
	{
 | 
			
		||||
		return Renderer::replaceMacros(Renderer::getMarkupTemplate('follow.tpl'), array(
 | 
			
		||||
		return Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/follow.tpl'), array(
 | 
			
		||||
			'$connect' => L10n::t('Add New Contact'),
 | 
			
		||||
			'$desc' => L10n::t('Enter address or web location'),
 | 
			
		||||
			'$hint' => L10n::t('Example: bob@example.com, http://example.com/barbara'),
 | 
			
		||||
| 
						 | 
				
			
			@ -74,7 +74,7 @@ class Widget
 | 
			
		|||
		$aside = [];
 | 
			
		||||
		$aside['$nv'] = $nv;
 | 
			
		||||
 | 
			
		||||
		return Renderer::replaceMacros(Renderer::getMarkupTemplate('peoplefind.tpl'), $aside);
 | 
			
		||||
		return Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/peoplefind.tpl'), $aside);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
| 
						 | 
				
			
			@ -120,6 +120,46 @@ class Widget
 | 
			
		|||
		return $network_filter;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @param string $type
 | 
			
		||||
	 * @param string $title
 | 
			
		||||
	 * @param string $desc
 | 
			
		||||
	 * @param string $all
 | 
			
		||||
	 * @param string $baseUrl
 | 
			
		||||
	 * @param array  $options
 | 
			
		||||
	 * @param string $selected
 | 
			
		||||
	 * @return string
 | 
			
		||||
	 * @throws \Exception
 | 
			
		||||
	 */
 | 
			
		||||
	public static function filter($type, $title, $desc, $all, $baseUrl, array $options, $selected = null)
 | 
			
		||||
	{
 | 
			
		||||
		$queryString = parse_url($baseUrl, PHP_URL_QUERY);
 | 
			
		||||
		$queryArray = [];
 | 
			
		||||
 | 
			
		||||
		if ($queryString) {
 | 
			
		||||
			parse_str($queryString, $queryArray);
 | 
			
		||||
			unset($queryArray[$type]);
 | 
			
		||||
 | 
			
		||||
			if (count($queryArray)) {
 | 
			
		||||
				$baseUrl = substr($baseUrl, 0, strpos($baseUrl, '?')) . '?' . http_build_query($queryArray) . '&';
 | 
			
		||||
			} else {
 | 
			
		||||
				$baseUrl = substr($baseUrl, 0, strpos($baseUrl, '?')) . '?';
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			$baseUrl = trim($baseUrl, '?') . '?';
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/filter.tpl'), [
 | 
			
		||||
			'$type'      => $type,
 | 
			
		||||
			'$title'     => $title,
 | 
			
		||||
			'$desc'      => $desc,
 | 
			
		||||
			'$selected'  => $selected,
 | 
			
		||||
			'$all_label' => $all,
 | 
			
		||||
			'$options'   => $options,
 | 
			
		||||
			'$base'      => $baseUrl,
 | 
			
		||||
		]);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Return networks widget
 | 
			
		||||
	 *
 | 
			
		||||
| 
						 | 
				
			
			@ -146,7 +186,7 @@ class Widget
 | 
			
		|||
 | 
			
		||||
		$nets = array();
 | 
			
		||||
		while ($rr = DBA::fetch($r)) {
 | 
			
		||||
			$nets[] = array('ref' => $rr['network'], 'name' => ContactSelector::networkToName($rr['network']), 'selected' => (($selected == $rr['network']) ? 'selected' : '' ));
 | 
			
		||||
			$nets[] = ['ref' => $rr['network'], 'name' => ContactSelector::networkToName($rr['network'])];
 | 
			
		||||
		}
 | 
			
		||||
		DBA::close($r);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -154,14 +194,15 @@ class Widget
 | 
			
		|||
			return '';
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return Renderer::replaceMacros(Renderer::getMarkupTemplate('nets.tpl'), array(
 | 
			
		||||
			'$title' => L10n::t('Protocols'),
 | 
			
		||||
			'$desc' => '',
 | 
			
		||||
			'$sel_all' => (($selected == '') ? 'selected' : ''),
 | 
			
		||||
			'$all' => L10n::t('All Protocols'),
 | 
			
		||||
			'$nets' => $nets,
 | 
			
		||||
			'$base' => $baseurl,
 | 
			
		||||
		));
 | 
			
		||||
		return self::filter(
 | 
			
		||||
			'nets',
 | 
			
		||||
			L10n::t('Protocols'),
 | 
			
		||||
			'',
 | 
			
		||||
			L10n::t('All Protocols'),
 | 
			
		||||
			$baseurl,
 | 
			
		||||
			$nets,
 | 
			
		||||
			$selected
 | 
			
		||||
		);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
| 
						 | 
				
			
			@ -183,25 +224,26 @@ class Widget
 | 
			
		|||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$matches = false;
 | 
			
		||||
		$matches = [];
 | 
			
		||||
		$terms = array();
 | 
			
		||||
		$cnt = preg_match_all('/\[(.*?)\]/', $saved, $matches, PREG_SET_ORDER);
 | 
			
		||||
		if ($cnt) {
 | 
			
		||||
			foreach ($matches as $mtch)
 | 
			
		||||
			{
 | 
			
		||||
				$unescaped = XML::escape(FileTag::decode($mtch[1]));
 | 
			
		||||
				$terms[] = array('name' => $unescaped, 'selected' => (($selected == $unescaped) ? 'selected' : ''));
 | 
			
		||||
				$terms[] = ['ref' => $unescaped, 'name' => $unescaped];
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return Renderer::replaceMacros(Renderer::getMarkupTemplate('fileas_widget.tpl'), array(
 | 
			
		||||
			'$title' => L10n::t('Saved Folders'),
 | 
			
		||||
			'$desc' => '',
 | 
			
		||||
			'$sel_all' => (($selected == '') ? 'selected' : ''),
 | 
			
		||||
			'$all' => L10n::t('Everything'),
 | 
			
		||||
			'$terms' => $terms,
 | 
			
		||||
			'$base' => $baseurl,
 | 
			
		||||
		));
 | 
			
		||||
		return self::filter(
 | 
			
		||||
			'file',
 | 
			
		||||
			L10n::t('Saved Folders'),
 | 
			
		||||
			'',
 | 
			
		||||
			L10n::t('Everything'),
 | 
			
		||||
			$baseurl,
 | 
			
		||||
			$terms,
 | 
			
		||||
			$selected
 | 
			
		||||
		);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
| 
						 | 
				
			
			@ -225,25 +267,26 @@ class Widget
 | 
			
		|||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$matches = false;
 | 
			
		||||
		$matches = [];
 | 
			
		||||
		$terms = array();
 | 
			
		||||
		$cnt = preg_match_all('/<(.*?)>/', $saved, $matches, PREG_SET_ORDER);
 | 
			
		||||
 | 
			
		||||
		if ($cnt) {
 | 
			
		||||
			foreach ($matches as $mtch) {
 | 
			
		||||
				$unescaped = XML::escape(FileTag::decode($mtch[1]));
 | 
			
		||||
				$terms[] = array('name' => $unescaped, 'selected' => (($selected == $unescaped) ? 'selected' : ''));
 | 
			
		||||
				$terms[] = ['ref' => $unescaped, 'name' => $unescaped];
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return Renderer::replaceMacros(Renderer::getMarkupTemplate('categories_widget.tpl'), array(
 | 
			
		||||
			'$title' => L10n::t('Categories'),
 | 
			
		||||
			'$desc' => '',
 | 
			
		||||
			'$sel_all' => (($selected == '') ? 'selected' : ''),
 | 
			
		||||
			'$all' => L10n::t('Everything'),
 | 
			
		||||
			'$terms' => $terms,
 | 
			
		||||
			'$base' => $baseurl,
 | 
			
		||||
		));
 | 
			
		||||
		return self::filter(
 | 
			
		||||
			'category',
 | 
			
		||||
			L10n::t('Categories'),
 | 
			
		||||
			'',
 | 
			
		||||
			L10n::t('Everything'),
 | 
			
		||||
			$baseurl,
 | 
			
		||||
			$terms,
 | 
			
		||||
			$selected
 | 
			
		||||
		);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
| 
						 | 
				
			
			@ -319,7 +362,7 @@ class Widget
 | 
			
		|||
			$entries[] = $entry;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate('remote_friends_common.tpl');
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate('widget/remote_friends_common.tpl');
 | 
			
		||||
		return Renderer::replaceMacros($tpl, [
 | 
			
		||||
			'$desc'     => L10n::tt("%d contact in common", "%d contacts in common", $t),
 | 
			
		||||
			'$base'     => System::baseUrl(),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,7 +59,7 @@ class CalendarExport
 | 
			
		|||
		// of the profile page it should be the personal /events page. So we can use $a->user.
 | 
			
		||||
		$user = defaults($a->data['user'], 'nickname', $a->user['nickname']);
 | 
			
		||||
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate("events_aside.tpl");
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate("widget/events.tpl");
 | 
			
		||||
		$return = Renderer::replaceMacros($tpl, [
 | 
			
		||||
			'$etitle'      => L10n::t("Export"),
 | 
			
		||||
			'$export_ical' => L10n::t("Export calendar as ical"),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,7 @@ class ContactBlock
 | 
			
		|||
	/**
 | 
			
		||||
	 * Get HTML for contact block
 | 
			
		||||
	 *
 | 
			
		||||
	 * @template contact_block.tpl
 | 
			
		||||
	 * @template widget/contacts.tpl
 | 
			
		||||
	 * @hook contact_block_end (contacts=>array, output=>string)
 | 
			
		||||
	 * @return string
 | 
			
		||||
	 */
 | 
			
		||||
| 
						 | 
				
			
			@ -102,7 +102,7 @@ class ContactBlock
 | 
			
		|||
			DBA::close($contact_ids_stmt);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate('contact_block.tpl');
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate('widget/contacts.tpl');
 | 
			
		||||
		$o = Renderer::replaceMacros($tpl, [
 | 
			
		||||
			'$contacts' => $contacts_title,
 | 
			
		||||
			'$nickname' => $profile['nickname'],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,7 +49,7 @@ class TagCloud
 | 
			
		|||
				$tags[] = $tag;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			$tpl = Renderer::getMarkupTemplate('tagblock_widget.tpl');
 | 
			
		||||
			$tpl = Renderer::getMarkupTemplate('widget/tagcloud.tpl');
 | 
			
		||||
			$o = Renderer::replaceMacros($tpl, [
 | 
			
		||||
				'$title' => L10n::t('Tags'),
 | 
			
		||||
				'$tags' => $tags
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,6 +18,8 @@ use Friendica\Core\System;
 | 
			
		|||
use Friendica\Core\Worker;
 | 
			
		||||
use Friendica\Database\DBA;
 | 
			
		||||
use Friendica\Model;
 | 
			
		||||
use Friendica\Network\HTTPException\BadRequestException;
 | 
			
		||||
use Friendica\Network\HTTPException\NotFoundException;
 | 
			
		||||
use Friendica\Network\Probe;
 | 
			
		||||
use Friendica\Util\DateTimeFormat;
 | 
			
		||||
use Friendica\Util\Proxy as ProxyUtils;
 | 
			
		||||
| 
						 | 
				
			
			@ -30,102 +32,6 @@ use Friendica\Util\Strings;
 | 
			
		|||
 */
 | 
			
		||||
class Contact extends BaseModule
 | 
			
		||||
{
 | 
			
		||||
	public static function init()
 | 
			
		||||
	{
 | 
			
		||||
		$a = self::getApp();
 | 
			
		||||
 | 
			
		||||
		if (!local_user()) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$nets = defaults($_GET, 'nets', '');
 | 
			
		||||
 | 
			
		||||
		if (empty($a->page['aside'])) {
 | 
			
		||||
			$a->page['aside'] = '';
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$contact_id = null;
 | 
			
		||||
		$contact = null;
 | 
			
		||||
		// @TODO: Replace with parameter from router
 | 
			
		||||
		if ($a->argc == 2 && intval($a->argv[1])
 | 
			
		||||
			|| $a->argc == 3 && intval($a->argv[1]) && in_array($a->argv[2], ['posts', 'conversations'])
 | 
			
		||||
		) {
 | 
			
		||||
			$contact_id = intval($a->argv[1]);
 | 
			
		||||
			$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => local_user(), 'deleted' => false]);
 | 
			
		||||
 | 
			
		||||
			if (!DBA::isResult($contact)) {
 | 
			
		||||
				$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => 0, 'deleted' => false]);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Don't display contacts that are about to be deleted
 | 
			
		||||
			if ($contact['network'] == Protocol::PHANTOM) {
 | 
			
		||||
				$contact = false;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (DBA::isResult($contact)) {
 | 
			
		||||
			if ($contact['self']) {
 | 
			
		||||
				// @TODO: Replace with parameter from router
 | 
			
		||||
				if (($a->argc == 3) && intval($a->argv[1]) && in_array($a->argv[2], ['posts', 'conversations'])) {
 | 
			
		||||
					$a->internalRedirect('profile/' . $contact['nick']);
 | 
			
		||||
				} else {
 | 
			
		||||
					$a->internalRedirect('profile/' . $contact['nick'] . '?tab=profile');
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			$a->data['contact'] = $contact;
 | 
			
		||||
 | 
			
		||||
			if (($contact['network'] != '') && ($contact['network'] != Protocol::DFRN)) {
 | 
			
		||||
				$network_link = Strings::formatNetworkName($contact['network'], $contact['url']);
 | 
			
		||||
			} else {
 | 
			
		||||
				$network_link = '';
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			$vcard_widget = Renderer::replaceMacros(Renderer::getMarkupTemplate('vcard-widget.tpl'), [
 | 
			
		||||
				'$name'         => $contact['name'],
 | 
			
		||||
				'$photo'        => $contact['photo'],
 | 
			
		||||
				'$url'          => Model\Contact::MagicLink($contact['url']),
 | 
			
		||||
				'$addr'         => defaults($contact, 'addr', ''),
 | 
			
		||||
				'$network_link' => $network_link,
 | 
			
		||||
				'$network'      => L10n::t('Network:'),
 | 
			
		||||
				'$account_type' => Model\Contact::getAccountType($contact)
 | 
			
		||||
			]);
 | 
			
		||||
 | 
			
		||||
			$findpeople_widget = '';
 | 
			
		||||
			$follow_widget = '';
 | 
			
		||||
			$networks_widget = '';
 | 
			
		||||
		} else {
 | 
			
		||||
			$vcard_widget = '';
 | 
			
		||||
			$networks_widget = Widget::networks('contact', $nets);
 | 
			
		||||
			if (isset($_GET['add'])) {
 | 
			
		||||
				$follow_widget = Widget::follow($_GET['add']);
 | 
			
		||||
			} else {
 | 
			
		||||
				$follow_widget = Widget::follow();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			$findpeople_widget = Widget::findPeople();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if ($contact['uid'] != 0) {
 | 
			
		||||
			$groups_widget = Model\Group::sidebarWidget('contact', 'group', 'full', 'everyone', $contact_id);
 | 
			
		||||
		} else {
 | 
			
		||||
			$groups_widget = null;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$a->page['aside'] .= Renderer::replaceMacros(Renderer::getMarkupTemplate('contacts-widget-sidebar.tpl'), [
 | 
			
		||||
			'$vcard_widget'      => $vcard_widget,
 | 
			
		||||
			'$findpeople_widget' => $findpeople_widget,
 | 
			
		||||
			'$follow_widget'     => $follow_widget,
 | 
			
		||||
			'$groups_widget'     => $groups_widget,
 | 
			
		||||
			'$networks_widget'   => $networks_widget
 | 
			
		||||
		]);
 | 
			
		||||
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate('contacts-head.tpl');
 | 
			
		||||
		$a->page['htmlhead'] .= Renderer::replaceMacros($tpl, [
 | 
			
		||||
			'$baseurl' => $a->getBaseURL(true),
 | 
			
		||||
		]);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private static function batchActions(App $a)
 | 
			
		||||
	{
 | 
			
		||||
		if (empty($_POST['contact_batch']) || !is_array($_POST['contact_batch'])) {
 | 
			
		||||
| 
						 | 
				
			
			@ -353,7 +259,93 @@ class Contact extends BaseModule
 | 
			
		|||
 | 
			
		||||
	public static function content($update = 0)
 | 
			
		||||
	{
 | 
			
		||||
		if (!local_user()) {
 | 
			
		||||
			return Login::form($_SERVER['REQUET_URI']);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$a = self::getApp();
 | 
			
		||||
 | 
			
		||||
		$nets = defaults($_GET, 'nets', '');
 | 
			
		||||
 | 
			
		||||
		if (empty($a->page['aside'])) {
 | 
			
		||||
			$a->page['aside'] = '';
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$contact_id = null;
 | 
			
		||||
		$contact = null;
 | 
			
		||||
		// @TODO: Replace with parameter from router
 | 
			
		||||
		if ($a->argc == 2 && intval($a->argv[1])
 | 
			
		||||
			|| $a->argc == 3 && intval($a->argv[1]) && in_array($a->argv[2], ['posts', 'conversations'])
 | 
			
		||||
		) {
 | 
			
		||||
			$contact_id = intval($a->argv[1]);
 | 
			
		||||
			$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => local_user(), 'deleted' => false]);
 | 
			
		||||
 | 
			
		||||
			if (!DBA::isResult($contact)) {
 | 
			
		||||
				$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => 0, 'deleted' => false]);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Don't display contacts that are about to be deleted
 | 
			
		||||
			if ($contact['network'] == Protocol::PHANTOM) {
 | 
			
		||||
				$contact = false;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (DBA::isResult($contact)) {
 | 
			
		||||
			if ($contact['self']) {
 | 
			
		||||
				// @TODO: Replace with parameter from router
 | 
			
		||||
				if (($a->argc == 3) && intval($a->argv[1]) && in_array($a->argv[2], ['posts', 'conversations'])) {
 | 
			
		||||
					$a->internalRedirect('profile/' . $contact['nick']);
 | 
			
		||||
				} else {
 | 
			
		||||
					$a->internalRedirect('profile/' . $contact['nick'] . '?tab=profile');
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			$a->data['contact'] = $contact;
 | 
			
		||||
 | 
			
		||||
			if (($contact['network'] != '') && ($contact['network'] != Protocol::DFRN)) {
 | 
			
		||||
				$network_link = Strings::formatNetworkName($contact['network'], $contact['url']);
 | 
			
		||||
			} else {
 | 
			
		||||
				$network_link = '';
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			$vcard_widget = Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/vcard.tpl'), [
 | 
			
		||||
				'$name'         => $contact['name'],
 | 
			
		||||
				'$photo'        => $contact['photo'],
 | 
			
		||||
				'$url'          => Model\Contact::magicLinkByContact($contact, $contact['url']),
 | 
			
		||||
				'$addr'         => defaults($contact, 'addr', ''),
 | 
			
		||||
				'$network_link' => $network_link,
 | 
			
		||||
				'$network'      => L10n::t('Network:'),
 | 
			
		||||
				'$account_type' => Model\Contact::getAccountType($contact)
 | 
			
		||||
			]);
 | 
			
		||||
 | 
			
		||||
			$findpeople_widget = '';
 | 
			
		||||
			$follow_widget = '';
 | 
			
		||||
			$networks_widget = '';
 | 
			
		||||
		} else {
 | 
			
		||||
			$vcard_widget = '';
 | 
			
		||||
			$findpeople_widget = Widget::findPeople();
 | 
			
		||||
			if (isset($_GET['add'])) {
 | 
			
		||||
				$follow_widget = Widget::follow($_GET['add']);
 | 
			
		||||
			} else {
 | 
			
		||||
				$follow_widget = Widget::follow();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			$networks_widget = Widget::networks($_SERVER['REQUEST_URI'], $nets);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if ($contact['uid'] != 0) {
 | 
			
		||||
			$groups_widget = Model\Group::sidebarWidget('contact', 'group', 'full', 'everyone', $contact_id);
 | 
			
		||||
		} else {
 | 
			
		||||
			$groups_widget = null;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$a->page['aside'] .= $vcard_widget . $findpeople_widget . $follow_widget . $groups_widget . $networks_widget;
 | 
			
		||||
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate('contacts-head.tpl');
 | 
			
		||||
		$a->page['htmlhead'] .= Renderer::replaceMacros($tpl, [
 | 
			
		||||
			'$baseurl' => $a->getBaseURL(true),
 | 
			
		||||
		]);
 | 
			
		||||
 | 
			
		||||
		$sort_type = 0;
 | 
			
		||||
		$o = '';
 | 
			
		||||
		Nav::setSelected('contact');
 | 
			
		||||
| 
						 | 
				
			
			@ -366,7 +358,7 @@ class Contact extends BaseModule
 | 
			
		|||
		if ($a->argc == 3) {
 | 
			
		||||
			$contact_id = intval($a->argv[1]);
 | 
			
		||||
			if (!$contact_id) {
 | 
			
		||||
				return;
 | 
			
		||||
				throw new BadRequestException();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// @TODO: Replace with parameter from router
 | 
			
		||||
| 
						 | 
				
			
			@ -374,9 +366,7 @@ class Contact extends BaseModule
 | 
			
		|||
 | 
			
		||||
			$orig_record = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => [0, local_user()], 'self' => false, 'deleted' => false]);
 | 
			
		||||
			if (!DBA::isResult($orig_record)) {
 | 
			
		||||
				notice(L10n::t('Could not access contact record.') . EOL);
 | 
			
		||||
				$a->internalRedirect('contact');
 | 
			
		||||
				return; // NOTREACHED
 | 
			
		||||
				throw new NotFoundException(L10n::t('Contact not found'));
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ($cmd === 'update' && ($orig_record['uid'] != 0)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -398,7 +388,7 @@ class Contact extends BaseModule
 | 
			
		|||
				info(($blocked ? L10n::t('Contact has been blocked') : L10n::t('Contact has been unblocked')) . EOL);
 | 
			
		||||
 | 
			
		||||
				$a->internalRedirect('contact/' . $contact_id);
 | 
			
		||||
				return; // NOTREACHED
 | 
			
		||||
				// NOTREACHED
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ($cmd === 'ignore') {
 | 
			
		||||
| 
						 | 
				
			
			@ -408,7 +398,7 @@ class Contact extends BaseModule
 | 
			
		|||
				info(($ignored ? L10n::t('Contact has been ignored') : L10n::t('Contact has been unignored')) . EOL);
 | 
			
		||||
 | 
			
		||||
				$a->internalRedirect('contact/' . $contact_id);
 | 
			
		||||
				return; // NOTREACHED
 | 
			
		||||
				// NOTREACHED
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ($cmd === 'archive' && ($orig_record['uid'] != 0)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -419,7 +409,7 @@ class Contact extends BaseModule
 | 
			
		|||
				}
 | 
			
		||||
 | 
			
		||||
				$a->internalRedirect('contact/' . $contact_id);
 | 
			
		||||
				return; // NOTREACHED
 | 
			
		||||
				// NOTREACHED
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ($cmd === 'drop' && ($orig_record['uid'] != 0)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -459,7 +449,7 @@ class Contact extends BaseModule
 | 
			
		|||
				info(L10n::t('Contact has been removed.') . EOL);
 | 
			
		||||
 | 
			
		||||
				$a->internalRedirect('contact');
 | 
			
		||||
				return; // NOTREACHED
 | 
			
		||||
				// NOTREACHED
 | 
			
		||||
			}
 | 
			
		||||
			if ($cmd === 'posts') {
 | 
			
		||||
				return self::getPostsHTML($a, $contact_id);
 | 
			
		||||
| 
						 | 
				
			
			@ -664,30 +654,24 @@ class Contact extends BaseModule
 | 
			
		|||
			return $arr['output'];
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$blocked = false;
 | 
			
		||||
		$hidden = false;
 | 
			
		||||
		$ignored = false;
 | 
			
		||||
		$archived = false;
 | 
			
		||||
		$all = false;
 | 
			
		||||
 | 
			
		||||
		// @TODO: Replace with parameter from router
 | 
			
		||||
		if (($a->argc == 2) && ($a->argv[1] === 'all')) {
 | 
			
		||||
			$sql_extra = '';
 | 
			
		||||
			$all = true;
 | 
			
		||||
		} elseif (($a->argc == 2) && ($a->argv[1] === 'blocked')) {
 | 
			
		||||
			$sql_extra = " AND `blocked` = 1 ";
 | 
			
		||||
			$blocked = true;
 | 
			
		||||
		} elseif (($a->argc == 2) && ($a->argv[1] === 'hidden')) {
 | 
			
		||||
			$sql_extra = " AND `hidden` = 1 ";
 | 
			
		||||
			$hidden = true;
 | 
			
		||||
		} elseif (($a->argc == 2) && ($a->argv[1] === 'ignored')) {
 | 
			
		||||
			$sql_extra = " AND `readonly` = 1 ";
 | 
			
		||||
			$ignored = true;
 | 
			
		||||
		} elseif (($a->argc == 2) && ($a->argv[1] === 'archived')) {
 | 
			
		||||
			$sql_extra = " AND `archive` = 1 ";
 | 
			
		||||
			$archived = true;
 | 
			
		||||
		} else {
 | 
			
		||||
			$sql_extra = " AND `blocked` = 0 ";
 | 
			
		||||
		$type = defaults($a->argv, 1, '');
 | 
			
		||||
 | 
			
		||||
		switch ($type) {
 | 
			
		||||
			case 'blocked':
 | 
			
		||||
				$sql_extra = " AND `blocked` = 1";
 | 
			
		||||
				break;
 | 
			
		||||
			case 'hidden':
 | 
			
		||||
				$sql_extra = " AND `hidden` = 1 AND `blocked` = 0";
 | 
			
		||||
				break;
 | 
			
		||||
			case 'ignored':
 | 
			
		||||
				$sql_extra = " AND `readonly` = 1 AND `blocked` = 0";
 | 
			
		||||
				break;
 | 
			
		||||
			case 'archived':
 | 
			
		||||
				$sql_extra = " AND `archive` = 1 AND `blocked` = 0";
 | 
			
		||||
				break;
 | 
			
		||||
			default:
 | 
			
		||||
				$sql_extra = " AND `blocked` = 0";
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$sql_extra .= sprintf(" AND `network` != '%s' ", Protocol::PHANTOM);
 | 
			
		||||
| 
						 | 
				
			
			@ -696,34 +680,18 @@ class Contact extends BaseModule
 | 
			
		|||
		$nets   = Strings::escapeTags(trim(defaults($_GET, 'nets'  , '')));
 | 
			
		||||
 | 
			
		||||
		$tabs = [
 | 
			
		||||
			[
 | 
			
		||||
				'label' => L10n::t('Suggestions'),
 | 
			
		||||
				'url'   => 'suggest',
 | 
			
		||||
				'sel'   => '',
 | 
			
		||||
				'title' => L10n::t('Suggest potential friends'),
 | 
			
		||||
				'id'    => 'suggestions-tab',
 | 
			
		||||
				'accesskey' => 'g',
 | 
			
		||||
			],
 | 
			
		||||
			[
 | 
			
		||||
				'label' => L10n::t('All Contacts'),
 | 
			
		||||
				'url'   => 'contact/all',
 | 
			
		||||
				'sel'   => ($all) ? 'active' : '',
 | 
			
		||||
				'url'   => 'contact',
 | 
			
		||||
				'sel'   => !$type ? 'active' : '',
 | 
			
		||||
				'title' => L10n::t('Show all contacts'),
 | 
			
		||||
				'id'    => 'showall-tab',
 | 
			
		||||
				'accesskey' => 'l',
 | 
			
		||||
			],
 | 
			
		||||
			[
 | 
			
		||||
				'label' => L10n::t('Unblocked'),
 | 
			
		||||
				'url'   => 'contact',
 | 
			
		||||
				'sel'   => ((!$all) && (!$blocked) && (!$hidden) && (!$search) && (!$nets) && (!$ignored) && (!$archived)) ? 'active' : '',
 | 
			
		||||
				'title' => L10n::t('Only show unblocked contacts'),
 | 
			
		||||
				'id'    => 'showunblocked-tab',
 | 
			
		||||
				'accesskey' => 'o',
 | 
			
		||||
			],
 | 
			
		||||
			[
 | 
			
		||||
				'label' => L10n::t('Blocked'),
 | 
			
		||||
				'url'   => 'contact/blocked',
 | 
			
		||||
				'sel'   => ($blocked) ? 'active' : '',
 | 
			
		||||
				'sel'   => $type == 'blocked' ? 'active' : '',
 | 
			
		||||
				'title' => L10n::t('Only show blocked contacts'),
 | 
			
		||||
				'id'    => 'showblocked-tab',
 | 
			
		||||
				'accesskey' => 'b',
 | 
			
		||||
| 
						 | 
				
			
			@ -731,7 +699,7 @@ class Contact extends BaseModule
 | 
			
		|||
			[
 | 
			
		||||
				'label' => L10n::t('Ignored'),
 | 
			
		||||
				'url'   => 'contact/ignored',
 | 
			
		||||
				'sel'   => ($ignored) ? 'active' : '',
 | 
			
		||||
				'sel'   => $type == 'ignored' ? 'active' : '',
 | 
			
		||||
				'title' => L10n::t('Only show ignored contacts'),
 | 
			
		||||
				'id'    => 'showignored-tab',
 | 
			
		||||
				'accesskey' => 'i',
 | 
			
		||||
| 
						 | 
				
			
			@ -739,7 +707,7 @@ class Contact extends BaseModule
 | 
			
		|||
			[
 | 
			
		||||
				'label' => L10n::t('Archived'),
 | 
			
		||||
				'url'   => 'contact/archived',
 | 
			
		||||
				'sel'   => ($archived) ? 'active' : '',
 | 
			
		||||
				'sel'   => $type == 'archived' ? 'active' : '',
 | 
			
		||||
				'title' => L10n::t('Only show archived contacts'),
 | 
			
		||||
				'id'    => 'showarchived-tab',
 | 
			
		||||
				'accesskey' => 'y',
 | 
			
		||||
| 
						 | 
				
			
			@ -747,7 +715,7 @@ class Contact extends BaseModule
 | 
			
		|||
			[
 | 
			
		||||
				'label' => L10n::t('Hidden'),
 | 
			
		||||
				'url'   => 'contact/hidden',
 | 
			
		||||
				'sel'   => ($hidden) ? 'active' : '',
 | 
			
		||||
				'sel'   => $type == 'hidden' ? 'active' : '',
 | 
			
		||||
				'title' => L10n::t('Only show hidden contacts'),
 | 
			
		||||
				'id'    => 'showhidden-tab',
 | 
			
		||||
				'accesskey' => 'h',
 | 
			
		||||
| 
						 | 
				
			
			@ -755,7 +723,7 @@ class Contact extends BaseModule
 | 
			
		|||
			[
 | 
			
		||||
				'label' => L10n::t('Groups'),
 | 
			
		||||
				'url'   => 'group',
 | 
			
		||||
				'sel'   => ($hidden) ? 'active' : '',
 | 
			
		||||
				'sel'   => '',
 | 
			
		||||
				'title' => L10n::t('Organize your contact groups'),
 | 
			
		||||
				'id'    => 'contactgroups-tab',
 | 
			
		||||
				'accesskey' => 'e',
 | 
			
		||||
| 
						 | 
				
			
			@ -809,9 +777,18 @@ class Contact extends BaseModule
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		switch ($type) {
 | 
			
		||||
			case 'blocked':	 $header .= ' - ' . L10n::t('Blocked'); break;
 | 
			
		||||
			case 'hidden':   $header .= ' - ' . L10n::t('Hidden'); break;
 | 
			
		||||
			case 'ignored':  $header .= ' - ' . L10n::t('Ignored'); break;
 | 
			
		||||
			case 'archived': $header .= ' - ' . L10n::t('Archived'); break;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$header .= $nets ? ' - ' . ContactSelector::networkToName($nets) : '';
 | 
			
		||||
 | 
			
		||||
		$tpl = Renderer::getMarkupTemplate('contacts-template.tpl');
 | 
			
		||||
		$o .= Renderer::replaceMacros($tpl, [
 | 
			
		||||
			'$header'     => L10n::t('Contacts') . (($nets) ? ' - ' . ContactSelector::networkToName($nets) : ''),
 | 
			
		||||
			'$header'     => $header,
 | 
			
		||||
			'$tabs'       => $t,
 | 
			
		||||
			'$total'      => $total,
 | 
			
		||||
			'$search'     => $search_hdr,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +0,0 @@
 | 
			
		|||
 | 
			
		||||
<div id="categories-sidebar" class="widget">
 | 
			
		||||
	<h3>{{$title}}</h3>
 | 
			
		||||
	<div id="nets-desc">{{$desc nofilter}}</div>
 | 
			
		||||
	
 | 
			
		||||
	<ul class="categories-ul">
 | 
			
		||||
		<li class="tool"><a href="{{$base}}" class="categories-link categories-all{{if $sel_all}} categories-selected{{/if}}">{{$all}}</a></li>
 | 
			
		||||
		{{foreach $terms as $term}}
 | 
			
		||||
			<li class="tool"><a href="{{$base}}?f=&category={{$term.name}}" class="categories-link{{if $term.selected}} categories-selected{{/if}}">{{$term.name}}</a></li>
 | 
			
		||||
		{{/foreach}}
 | 
			
		||||
	</ul>
 | 
			
		||||
	
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +0,0 @@
 | 
			
		|||
 | 
			
		||||
{{$vcard_widget nofilter}}
 | 
			
		||||
{{$findpeople_widget nofilter}}
 | 
			
		||||
{{$follow_widget nofilter}}
 | 
			
		||||
{{$groups_widget nofilter}}
 | 
			
		||||
{{$networks_widget nofilter}}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,13 +0,0 @@
 | 
			
		|||
 | 
			
		||||
<div id="fileas-sidebar" class="widget">
 | 
			
		||||
	<h3>{{$title}}</h3>
 | 
			
		||||
	<div id="nets-desc">{{$desc nofilter}}</div>
 | 
			
		||||
	
 | 
			
		||||
	<ul class="fileas-ul">
 | 
			
		||||
		<li class="tool"><a href="{{$base}}" class="fileas-link fileas-all{{if $sel_all}} fileas-selected{{/if}}">{{$all}}</a></li>
 | 
			
		||||
		{{foreach $terms as $term}}
 | 
			
		||||
			<li class="tool"><a href="{{$base}}?f=&file={{$term.name}}" class="fileas-link{{if $term.selected}} fileas-selected{{/if}}">{{$term.name}}</a></li>
 | 
			
		||||
		{{/foreach}}
 | 
			
		||||
	</ul>
 | 
			
		||||
	
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,11 +0,0 @@
 | 
			
		|||
 | 
			
		||||
<div id="nets-sidebar" class="widget">
 | 
			
		||||
	<h3>{{$title}}</h3>
 | 
			
		||||
	<div id="nets-desc">{{$desc nofilter}}</div>
 | 
			
		||||
	<a href="{{$base}}" class="nets-link{{if $sel_all}} nets-selected{{/if}} nets-all">{{$all}}</a>
 | 
			
		||||
	<ul role="menu" class="nets-ul">
 | 
			
		||||
	{{foreach $nets as $net}}
 | 
			
		||||
	<li role="menuitem" ><a href="{{$base}}?nets={{$net.ref}}" class="nets-link{{if $net.selected}} nets-selected{{/if}}">{{$net.name}}</a></li>
 | 
			
		||||
	{{/foreach}}
 | 
			
		||||
	</ul>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
<div id="contact-block">
 | 
			
		||||
<h3 class="contact-block-h4">{{$contacts}}</h3>
 | 
			
		||||
{{if $micropro}}
 | 
			
		||||
		<a class="allcontact-link" href="viewcontacts/{{$nickname}}">{{$viewcontacts}}</a>
 | 
			
		||||
		<a class="allcontact-link" href="profile/{{$nickname}}/contacts">{{$viewcontacts}}</a>
 | 
			
		||||
		<div class='contact-block-content'>
 | 
			
		||||
		{{foreach $micropro as $m}}
 | 
			
		||||
			{{$m nofilter}}
 | 
			
		||||
							
								
								
									
										11
									
								
								view/templates/widget/filter.tpl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								view/templates/widget/filter.tpl
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
 | 
			
		||||
<div id="{{$type}}-sidebar" class="widget">
 | 
			
		||||
	<h3>{{$title}}</h3>
 | 
			
		||||
	<div id="{{$type}}-desc">{{$desc nofilter}}</div>
 | 
			
		||||
	<ul role="menu" class="{{$type}}-ul">
 | 
			
		||||
		<li role="menuitem" {{if !$selected}}class="selected"{{/if}}><a href="{{$base}}" class="{{$type}}-link{{if !$selected}} {{$type}}-selected{{/if}} {{$type}}-all">{{$all_label}}</a></li>
 | 
			
		||||
		{{foreach $options as $option}}
 | 
			
		||||
			<li role="menuitem" {{if $selected == $option.ref}}class="selected"{{/if}}><a href="{{$base}}{{$type}}={{$option.ref}}" class="{{$type}}-link{{if $selected == $option.ref}} {{$type}}-selected{{/if}}">{{$option.name}}</a></li>
 | 
			
		||||
		{{/foreach}}
 | 
			
		||||
	</ul>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -153,7 +153,7 @@ input#acl-search {
 | 
			
		|||
  background:#2e2f2e;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.group-selected, .nets-selected, .fileas-selected, .categories-selected{
 | 
			
		||||
.widget .selected, .group-selected {
 | 
			
		||||
  background:#2e2f2e;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -126,7 +126,7 @@ nav #site-location {
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo, .profile-jot-text, .group-selected, .nets-selected, .fileas-selected, #profile-jot-submit, .categories-selected {
 | 
			
		||||
.contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo, .profile-jot-text, .group-selected, .widget .selected, #profile-jot-submit {
 | 
			
		||||
	border-radius: 3px;
 | 
			
		||||
	-moz-border-radius: 3px;
 | 
			
		||||
	box-shadow: 4px 4px 3px 0 #444444;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -386,7 +386,7 @@ div.wall-item-content-wrapper.shiny {
 | 
			
		|||
	margin-bottom: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.group-selected, .nets-selected, .fileas-selected, .categories-selected, .forum-selected {
 | 
			
		||||
.widget .selected, .group-selected, .forum-selected {
 | 
			
		||||
	padding: 3px;
 | 
			
		||||
	-moz-border-radius: 3px;
 | 
			
		||||
	border-radius: 3px;
 | 
			
		||||
| 
						 | 
				
			
			@ -2124,11 +2124,11 @@ a.mail-list-link {
 | 
			
		|||
	list-style: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.nets-ul, .fileas-ul, .categories-ul, .datebrowse-ul {
 | 
			
		||||
.nets-ul, .fileas-ul, .category-ul, .datebrowse-ul {
 | 
			
		||||
	list-style-type: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.nets-ul li, .fileas-ul li, .categories-ul li, .datebrowse-ul li {
 | 
			
		||||
.nets-ul li, .fileas-ul li, .category-ul li, .datebrowse-ul li {
 | 
			
		||||
	margin-top: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2139,11 +2139,11 @@ a.mail-list-link {
 | 
			
		|||
	margin-left: 42px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fileas-link, .categories-link {
 | 
			
		||||
.fileas-link, .category-link {
 | 
			
		||||
	margin-left: 24px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fileas-all, .categories-all {
 | 
			
		||||
.fileas-all, .category-all {
 | 
			
		||||
	margin-left: 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +0,0 @@
 | 
			
		|||
 | 
			
		||||
<div id="fileas-sidebar" class="widget">
 | 
			
		||||
	<h3>{{$title}}</h3>
 | 
			
		||||
	<div id="nets-desc">{{$desc nofilter}}</div>
 | 
			
		||||
	
 | 
			
		||||
	<ul class="fileas-ul">
 | 
			
		||||
		<li class="tool{{if $sel_all}} selected{{/if}}"><a href="{{$base}}" class="fileas-link fileas-all{{if $sel_all}} fileas-selected{{/if}}">{{$all}}</a></li>
 | 
			
		||||
		{{foreach $terms as $term}}
 | 
			
		||||
			<li class="tool{{if $term.selected}} selected{{/if}}"><a href="{{$base}}?f=&file={{$term.name}}" class="fileas-link{{if $term.selected}} fileas-selected{{/if}}">{{$term.name}}</a></li>
 | 
			
		||||
		{{/foreach}}
 | 
			
		||||
	</ul>
 | 
			
		||||
	
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,11 +0,0 @@
 | 
			
		|||
 | 
			
		||||
<div id="nets-sidebar" class="widget">
 | 
			
		||||
	<h3>{{$title}}</h3>
 | 
			
		||||
	<div id="nets-desc">{{$desc nofilter}}</div>
 | 
			
		||||
	<ul role="menu" class="nets-ul">
 | 
			
		||||
		<li role="menuitem" {{if $sel_all}}class="selected"{{/if}}><a href="{{$base}}" class="nets-link{{if $sel_all}} nets-selected{{/if}} nets-all">{{$all}}</a></li>
 | 
			
		||||
		{{foreach $nets as $net}}
 | 
			
		||||
		<li role="menuitem" {{if $net.selected}}class="selected"{{/if}}><a href="{{$base}}?nets={{$net.ref}}" class="nets-link{{if $net.selected}} nets-selected{{/if}}">{{$net.name}}</a></li>
 | 
			
		||||
		{{/foreach}}
 | 
			
		||||
	</ul>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -2,17 +2,17 @@
 | 
			
		|||
<div id="contact-block">
 | 
			
		||||
	<h3 class="contact-block-h4 pull-left">{{$contacts}}</h3>
 | 
			
		||||
 | 
			
		||||
	{{if $micropro}}
 | 
			
		||||
	<a class="pull-right widget-action faded-icon" id="contact-block-view-contacts" href="viewcontacts/{{$nickname}}">
 | 
			
		||||
{{if $micropro}}
 | 
			
		||||
	<a class="pull-right widget-action faded-icon" id="contact-block-view-contacts" href="profile/{{$nickname}}/contacts">
 | 
			
		||||
		<i class="fa fa-eye" aria-hidden="true"></i>
 | 
			
		||||
		<span class="sr-only">{{$viewcontacts}}</span>
 | 
			
		||||
	</a>
 | 
			
		||||
 | 
			
		||||
	<div class='contact-block-content'>
 | 
			
		||||
		{{foreach $micropro as $m}}
 | 
			
		||||
			{{$m nofilter}}
 | 
			
		||||
		{{/foreach}}
 | 
			
		||||
	{{foreach $micropro as $m}}
 | 
			
		||||
		{{$m nofilter}}
 | 
			
		||||
	{{/foreach}}
 | 
			
		||||
	</div>
 | 
			
		||||
	{{/if}}
 | 
			
		||||
{{/if}}
 | 
			
		||||
</div>
 | 
			
		||||
<div class="clear"></div>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,12 +0,0 @@
 | 
			
		|||
<div id="fileas-sidebar" class="widget">
 | 
			
		||||
	<h3>{{$title}}</h3>
 | 
			
		||||
	<div id="nets-desc">{{$desc nofilter}}</div>
 | 
			
		||||
	
 | 
			
		||||
	<ul class="fileas-ul">
 | 
			
		||||
		<li class="tool {{if $sel_all}}selected{{/if}}"><a href="{{$base}}" class="fileas-link fileas-all">{{$all}}</a></li>
 | 
			
		||||
		{{foreach $terms as $term}}
 | 
			
		||||
			<li class="tool {{if $term.selected}}selected{{/if}}"><a href="{{$base}}?f=&file={{$term.name}}" class="fileas-link">{{$term.name}}</a></li>
 | 
			
		||||
		{{/foreach}}
 | 
			
		||||
	</ul>
 | 
			
		||||
	
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,12 +0,0 @@
 | 
			
		|||
<div id="nets-sidebar" class="widget">
 | 
			
		||||
	<h3>{{$title}}</h3>
 | 
			
		||||
	<div id="nets-desc">{{$desc nofilter}}</div>
 | 
			
		||||
	
 | 
			
		||||
	<ul class="nets-ul">
 | 
			
		||||
		<li class="tool {{if $sel_all}}selected{{/if}}"><a href="{{$base}}" class="nets-link nets-all">{{$all}}</a>
 | 
			
		||||
		{{foreach $nets as $net}}
 | 
			
		||||
			<li class="tool {{if $net.selected}}selected{{/if}}"><a href="{{$base}}?f=&nets={{$net.ref}}" class="nets-link">{{$net.name}}</a></li>
 | 
			
		||||
		{{/foreach}}
 | 
			
		||||
	</ul>
 | 
			
		||||
	
 | 
			
		||||
</div>
 | 
			
		||||
							
								
								
									
										14
									
								
								view/theme/quattro/templates/widget/filter.tpl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								view/theme/quattro/templates/widget/filter.tpl
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
<div id="{{$type}}-sidebar" class="widget">
 | 
			
		||||
	<h3>{{$title}}</h3>
 | 
			
		||||
{{if $desc}}
 | 
			
		||||
	<div id="{{$type}}-desc">{{$desc nofilter}}</div>
 | 
			
		||||
{{/if}}
 | 
			
		||||
	
 | 
			
		||||
	<ul class="{{$type}}-ul">
 | 
			
		||||
		<li class="tool {{if !$selected}}selected{{/if}}"><a href="{{$base}}" class="{{$type}}-link {{$type}}-all">{{$all_label}}</a>
 | 
			
		||||
{{foreach $options as $option}}
 | 
			
		||||
		<li class="tool {{if $selected == $option.ref}}selected{{/if}}"><a href="{{$base}}{{$type}}={{$option.ref}}" class="{{$type}}-link">{{$option.name}}</a></li>
 | 
			
		||||
{{/foreach}}
 | 
			
		||||
	</ul>
 | 
			
		||||
	
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -962,10 +962,9 @@ li.widget-list {
 | 
			
		|||
	top: 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.group-selected,
 | 
			
		||||
.nets-selected,
 | 
			
		||||
.fileas-selected,
 | 
			
		||||
.categories-selected {
 | 
			
		||||
 | 
			
		||||
.widget .selected,
 | 
			
		||||
.group-selected {
 | 
			
		||||
	padding-bottom: 0px;
 | 
			
		||||
	padding-left: 2px;
 | 
			
		||||
	padding-right: 2px;
 | 
			
		||||
| 
						 | 
				
			
			@ -1006,13 +1005,13 @@ ul .sidebar-group-li .icon {
 | 
			
		|||
	width: 12px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.nets-ul, .fileas-ul, .categories-ul, .datebrowse-ul  {
 | 
			
		||||
.nets-ul, .fileas-ul, .category-ul, .datebrowse-ul  {
 | 
			
		||||
	list-style-type: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.nets-ul li,
 | 
			
		||||
.fileas-ul li,
 | 
			
		||||
.categories-ul li,
 | 
			
		||||
.category-ul li,
 | 
			
		||||
.datebrowse-link {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1029,12 +1028,12 @@ ul .sidebar-group-li .icon {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
.fileas-link,
 | 
			
		||||
.categories-link {
 | 
			
		||||
.category-link {
 | 
			
		||||
	margin-left: 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fileas-all,
 | 
			
		||||
.categories-all {
 | 
			
		||||
.category-all {
 | 
			
		||||
	margin-left: 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -4627,7 +4626,7 @@ hr.line-dots {
 | 
			
		|||
 | 
			
		||||
#birthday-notice {}
 | 
			
		||||
#nav-notifications-template {}
 | 
			
		||||
#categories-sidebar {}
 | 
			
		||||
#category-sidebar {}
 | 
			
		||||
#nets-desc {}
 | 
			
		||||
#status-tab {}
 | 
			
		||||
#page-footer {}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -448,7 +448,7 @@ pre code {
 | 
			
		|||
	/* color: #000; */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.group-selected, .nets-selected, .fileas-selected, .forum-selected {
 | 
			
		||||
.widget .selected, .forum-selected {
 | 
			
		||||
	font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,7 +39,7 @@
 | 
			
		|||
{{/if}}
 | 
			
		||||
 | 
			
		||||
{{if $nv}}
 | 
			
		||||
{{include file='peoplefind.tpl' nv=$nv}}
 | 
			
		||||
{{include file='widget/peoplefind.tpl' nv=$nv}}
 | 
			
		||||
{{/if}}
 | 
			
		||||
 | 
			
		||||
{{if $lastusers_title}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue