]> git.mxchange.org Git - friendica.git/commitdiff
Refactor widgets
authorHypolite Petovan <hypolite@mrpetovan.com>
Sat, 18 May 2019 15:33:35 +0000 (11:33 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Sat, 18 May 2019 15:33:35 +0000 (11:33 -0400)
- Move widget templates to subfolder
- Add new generic filter widget templates to replace category, network and filer filters
- Update styles

49 files changed:
mod/cal.php
mod/common.php
mod/photos.php
mod/videos.php
src/Content/Widget.php
src/Content/Widget/CalendarExport.php
src/Content/Widget/ContactBlock.php
src/Content/Widget/TagCloud.php
src/Module/Contact.php
view/templates/categories_widget.tpl [deleted file]
view/templates/contact_block.tpl [deleted file]
view/templates/contacts-widget-sidebar.tpl [deleted file]
view/templates/events_aside.tpl [deleted file]
view/templates/fileas_widget.tpl [deleted file]
view/templates/follow.tpl [deleted file]
view/templates/nets.tpl [deleted file]
view/templates/peoplefind.tpl [deleted file]
view/templates/remote_friends_common.tpl [deleted file]
view/templates/tagblock_widget.tpl [deleted file]
view/templates/vcard-widget.tpl [deleted file]
view/templates/widget/contacts.tpl [new file with mode: 0644]
view/templates/widget/events.tpl [new file with mode: 0644]
view/templates/widget/filter.tpl [new file with mode: 0644]
view/templates/widget/follow.tpl [new file with mode: 0644]
view/templates/widget/peoplefind.tpl [new file with mode: 0644]
view/templates/widget/remote_friends_common.tpl [new file with mode: 0644]
view/templates/widget/tagcloud.tpl [new file with mode: 0644]
view/templates/widget/vcard.tpl [new file with mode: 0644]
view/theme/duepuntozero/deriv/darkzero.css
view/theme/duepuntozero/deriv/slackr.css
view/theme/duepuntozero/style.css
view/theme/frio/templates/contact_block.tpl [deleted file]
view/theme/frio/templates/fileas_widget.tpl [deleted file]
view/theme/frio/templates/follow.tpl [deleted file]
view/theme/frio/templates/nets.tpl [deleted file]
view/theme/frio/templates/peoplefind.tpl [deleted file]
view/theme/frio/templates/vcard-widget.tpl [deleted file]
view/theme/frio/templates/widget/contacts.tpl [new file with mode: 0644]
view/theme/frio/templates/widget/follow.tpl [new file with mode: 0644]
view/theme/frio/templates/widget/peoplefind.tpl [new file with mode: 0644]
view/theme/frio/templates/widget/vcard.tpl [new file with mode: 0644]
view/theme/quattro/templates/fileas_widget.tpl [deleted file]
view/theme/quattro/templates/nets.tpl [deleted file]
view/theme/quattro/templates/widget/filter.tpl [new file with mode: 0644]
view/theme/smoothly/style.css
view/theme/smoothly/templates/follow.tpl [deleted file]
view/theme/smoothly/templates/widget/follow.tpl [new file with mode: 0644]
view/theme/vier/style.css
view/theme/vier/templates/communityhome.tpl

index 4b41c24e35e867af712ee4a5c62a8388f6abf99d..3f3cba466f5d8cbc5c63f55ab6cc3809daa917ac 100644 (file)
@@ -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'],
index 6b6090e19beedef238ac97652a75a628e5ef4019..a2821921c6ca21a4f4c8a0ba48999b4e6619782f 100644 (file)
@@ -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
index db9beb6685fa8e712386ca830700a3983c75cfce..7c0ca1b7badc4465b7276052100ad6530a8db8cf 100644 (file)
@@ -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'],
index 728a71bb5d70495bd6810c2a143e77f71294b78d..3fb36a73e4d319e20b04d8d634c03e3e44cf4436 100644 (file)
@@ -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'],
index b7fa5ab4e8903f1e42c3e8a5e67405206acea80b..b5f83a803e1e12ccdab0af78c0f7ef0dd4d3feaf 100644 (file)
@@ -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(),
index 120af99d00f98e439924e4afc7b1e05fe5086772..84482f638b90e8a7be334712749ec5505e5b147a 100644 (file)
@@ -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"),
index 6c77e7f3fd3119747050f983a7779384a55ecac0..f4fdea2fb4c3b6be90212defe83ddadf87d1e19d 100644 (file)
@@ -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'],
index 8413eccd19c8d13e7a4e57414b7644d9d91ed0d1..bbf8c3885893dda75b4f1fb3e978295c838f19a6 100644 (file)
@@ -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
index b1c37e21ad0d922fc3f43da1cb3f8bc7a3f44e3c..4429573ab78ec120385ab83ef6a6ece9f2a88b9f 100644 (file)
@@ -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,
diff --git a/view/templates/categories_widget.tpl b/view/templates/categories_widget.tpl
deleted file mode 100644 (file)
index e3cf0fc..0000000
+++ /dev/null
@@ -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>
diff --git a/view/templates/contact_block.tpl b/view/templates/contact_block.tpl
deleted file mode 100644 (file)
index 49a0e43..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-
-<div id="contact-block">
-<h3 class="contact-block-h4">{{$contacts}}</h3>
-{{if $micropro}}
-               <a class="allcontact-link" href="viewcontacts/{{$nickname}}">{{$viewcontacts}}</a>
-               <div class='contact-block-content'>
-               {{foreach $micropro as $m}}
-                       {{$m nofilter}}
-               {{/foreach}}
-               </div>
-{{/if}}
-</div>
-<div class="clear"></div>
diff --git a/view/templates/contacts-widget-sidebar.tpl b/view/templates/contacts-widget-sidebar.tpl
deleted file mode 100644 (file)
index af578ac..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-
-{{$vcard_widget nofilter}}
-{{$findpeople_widget nofilter}}
-{{$follow_widget nofilter}}
-{{$groups_widget nofilter}}
-{{$networks_widget nofilter}}
-
diff --git a/view/templates/events_aside.tpl b/view/templates/events_aside.tpl
deleted file mode 100644 (file)
index e9b5477..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<div id="sidebar-events" class="widget">
-       <h3>{{$etitle}}</h3>
-
-       <ul class="sidebar-calendar-export-ul">
-               <li role="menuitem" class="sidebar-calendar-export-li"><a href="{{$baseurl}}/cal/{{$user}}/export/ical" >{{$export_ical}}</a></li>
-               <li role="menuitem" class="sidebar-calendar-export-li"><a href="{{$baseurl}}/cal/{{$user}}/export/csv" >{{$export_csv}}</a></li>
-       </ul>
-</div>
diff --git a/view/templates/fileas_widget.tpl b/view/templates/fileas_widget.tpl
deleted file mode 100644 (file)
index a55c90b..0000000
+++ /dev/null
@@ -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>
diff --git a/view/templates/follow.tpl b/view/templates/follow.tpl
deleted file mode 100644 (file)
index 12a5621..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<div id="follow-sidebar" class="widget">
-       <h3>{{$connect}}</h3>
-       <div id="connect-desc">{{$desc nofilter}}</div>
-       <form action="follow" method="get" >
-               <input id="side-follow-url" type="text" name="url" value="{{$value}}" size="24" placeholder="{{$hint}}" title="{{$hint}}" /><input id="side-follow-submit" type="submit" name="submit" value="{{$follow}}" />
-       </form>
-</div>
-
diff --git a/view/templates/nets.tpl b/view/templates/nets.tpl
deleted file mode 100644 (file)
index 5ea602a..0000000
+++ /dev/null
@@ -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>
diff --git a/view/templates/peoplefind.tpl b/view/templates/peoplefind.tpl
deleted file mode 100644 (file)
index d4d99c2..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-
-<div id="peoplefind-sidebar" class="widget">
-       <h3>{{$nv.findpeople}}</h3>
-       <div id="peoplefind-desc">{{$nv.desc}}</div>
-       <form action="dirfind" method="get" />
-               <input id="side-peoplefind-url" type="text" name="search" size="24" title="{{$nv.hint}}" /><input id="side-peoplefind-submit" type="submit" name="submit" value="{{$nv.findthem}}" />
-       </form>
-       <div class="side-link" id="side-match-link"><a href="match" >{{$nv.similar}}</a></div>
-       <div class="side-link" id="side-suggest-link"><a href="suggest" >{{$nv.suggest}}</a></div>
-       <div class="side-link" id="side-directory-link"><a href="directory" >{{$nv.local_directory}}</a></div>
-       <div class="side-link" id="side-directory-link"><a href="{{$nv.global_dir}}" target="extlink" >{{$nv.directory}}</a></div>
-       <div class="side-link" id="side-random-profile-link" ><a href="randprof" target="extlink" >{{$nv.random}}</a></div>
-       {{if $nv.inv}} 
-       <div class="side-link" id="side-invite-link" ><a href="invite" >{{$nv.inv}}</a></div>
-       {{/if}}
-</div>
-
diff --git a/view/templates/remote_friends_common.tpl b/view/templates/remote_friends_common.tpl
deleted file mode 100644 (file)
index 4ae682f..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-
-<div id="remote-friends-in-common" class="bigwidget">
-       <div id="rfic-desc">{{$desc nofilter}} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{if $linkmore}}<a href="{{$base}}/common/rem/{{$uid}}/{{$cid}}">{{$more}}</a>{{/if}}</div>
-       {{if $items}}
-       {{foreach $items as $item}}
-       <div class="profile-match-wrapper">
-               <div class="profile-match-photo">
-                       <a href="{{$item.url}}">
-                               <img src="{{$item.photo}}" width="80" height="80" alt="{{$item.name}}" title="{{$item.name}}" />
-                       </a>
-               </div>
-               <div class="profile-match-break"></div>
-               <div class="profile-match-name">
-                       <a href="{{$item.url}}" title="{{$item.name}}">{{$item.name}}</a>
-               </div>
-               <div class="profile-match-end"></div>
-       </div>
-       {{/foreach}}
-       {{/if}}
-       <div id="rfic-end" class="clear"></div>
-</div>
-
diff --git a/view/templates/tagblock_widget.tpl b/view/templates/tagblock_widget.tpl
deleted file mode 100644 (file)
index fd007c9..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-
-<div class="tagblock widget">
-       <h3>{{$title}}</h3>
-
-       <div class="tag-cloud">
-               {{foreach $tags as $tag}}
-               <span class="tags">
-                       <span class="tag{{$tag.level}}">#</span><a href="{{$tag.url}}" class="tag{{$tag.level}}">{{$tag.name}}</a>
-               </span>
-               {{/foreach}}
-       </div>
-       <div class="tagblock-widget-end clear"></div>
-</div>
diff --git a/view/templates/vcard-widget.tpl b/view/templates/vcard-widget.tpl
deleted file mode 100644 (file)
index 2404664..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-
-<div class="vcard h-card">
-       <div class="fn p-name">{{$name}}</div>
-       {{if $addr}}<div class="p-addr">{{$addr}}</div>{{/if}}
-       {{if $pdesc}}<div class="title p-job-title">{{$pdesc}}</div>{{/if}}
-       {{if $url}}
-       <div id="profile-photo-wrapper"><a href="{{$url}}"><img class="vcard-photo photo u-photo" style="width: 175px; height: 175px;" src="{{$photo}}" alt="{{$name}}" /></a></div>
-       {{else}}
-       <div id="profile-photo-wrapper"><img class="vcard-photo photo u-photo" style="width: 175px; height: 175px;" src="{{$photo}}" alt="{{$name}}" /></div>
-       {{/if}}
-       {{if $account_type}}<div class="account-type">{{$account_type}}</div>{{/if}}
-       {{if $network_link}}<dl class="network"><dt class="network-label">{{$network}}</dt><dd class="x-network">{{$network_link nofilter}}</dd></dl>{{/if}}
-       <div id="profile-vcard-break"></div>
-</div>
diff --git a/view/templates/widget/contacts.tpl b/view/templates/widget/contacts.tpl
new file mode 100644 (file)
index 0000000..fa6e223
--- /dev/null
@@ -0,0 +1,13 @@
+
+<div id="contact-block">
+<h3 class="contact-block-h4">{{$contacts}}</h3>
+{{if $micropro}}
+               <a class="allcontact-link" href="profile/{{$nickname}}/contacts">{{$viewcontacts}}</a>
+               <div class='contact-block-content'>
+               {{foreach $micropro as $m}}
+                       {{$m nofilter}}
+               {{/foreach}}
+               </div>
+{{/if}}
+</div>
+<div class="clear"></div>
diff --git a/view/templates/widget/events.tpl b/view/templates/widget/events.tpl
new file mode 100644 (file)
index 0000000..e9b5477
--- /dev/null
@@ -0,0 +1,9 @@
+
+<div id="sidebar-events" class="widget">
+       <h3>{{$etitle}}</h3>
+
+       <ul class="sidebar-calendar-export-ul">
+               <li role="menuitem" class="sidebar-calendar-export-li"><a href="{{$baseurl}}/cal/{{$user}}/export/ical" >{{$export_ical}}</a></li>
+               <li role="menuitem" class="sidebar-calendar-export-li"><a href="{{$baseurl}}/cal/{{$user}}/export/csv" >{{$export_csv}}</a></li>
+       </ul>
+</div>
diff --git a/view/templates/widget/filter.tpl b/view/templates/widget/filter.tpl
new file mode 100644 (file)
index 0000000..bef4969
--- /dev/null
@@ -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>
diff --git a/view/templates/widget/follow.tpl b/view/templates/widget/follow.tpl
new file mode 100644 (file)
index 0000000..12a5621
--- /dev/null
@@ -0,0 +1,9 @@
+
+<div id="follow-sidebar" class="widget">
+       <h3>{{$connect}}</h3>
+       <div id="connect-desc">{{$desc nofilter}}</div>
+       <form action="follow" method="get" >
+               <input id="side-follow-url" type="text" name="url" value="{{$value}}" size="24" placeholder="{{$hint}}" title="{{$hint}}" /><input id="side-follow-submit" type="submit" name="submit" value="{{$follow}}" />
+       </form>
+</div>
+
diff --git a/view/templates/widget/peoplefind.tpl b/view/templates/widget/peoplefind.tpl
new file mode 100644 (file)
index 0000000..d4d99c2
--- /dev/null
@@ -0,0 +1,17 @@
+
+<div id="peoplefind-sidebar" class="widget">
+       <h3>{{$nv.findpeople}}</h3>
+       <div id="peoplefind-desc">{{$nv.desc}}</div>
+       <form action="dirfind" method="get" />
+               <input id="side-peoplefind-url" type="text" name="search" size="24" title="{{$nv.hint}}" /><input id="side-peoplefind-submit" type="submit" name="submit" value="{{$nv.findthem}}" />
+       </form>
+       <div class="side-link" id="side-match-link"><a href="match" >{{$nv.similar}}</a></div>
+       <div class="side-link" id="side-suggest-link"><a href="suggest" >{{$nv.suggest}}</a></div>
+       <div class="side-link" id="side-directory-link"><a href="directory" >{{$nv.local_directory}}</a></div>
+       <div class="side-link" id="side-directory-link"><a href="{{$nv.global_dir}}" target="extlink" >{{$nv.directory}}</a></div>
+       <div class="side-link" id="side-random-profile-link" ><a href="randprof" target="extlink" >{{$nv.random}}</a></div>
+       {{if $nv.inv}} 
+       <div class="side-link" id="side-invite-link" ><a href="invite" >{{$nv.inv}}</a></div>
+       {{/if}}
+</div>
+
diff --git a/view/templates/widget/remote_friends_common.tpl b/view/templates/widget/remote_friends_common.tpl
new file mode 100644 (file)
index 0000000..4ae682f
--- /dev/null
@@ -0,0 +1,22 @@
+
+<div id="remote-friends-in-common" class="bigwidget">
+       <div id="rfic-desc">{{$desc nofilter}} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{if $linkmore}}<a href="{{$base}}/common/rem/{{$uid}}/{{$cid}}">{{$more}}</a>{{/if}}</div>
+       {{if $items}}
+       {{foreach $items as $item}}
+       <div class="profile-match-wrapper">
+               <div class="profile-match-photo">
+                       <a href="{{$item.url}}">
+                               <img src="{{$item.photo}}" width="80" height="80" alt="{{$item.name}}" title="{{$item.name}}" />
+                       </a>
+               </div>
+               <div class="profile-match-break"></div>
+               <div class="profile-match-name">
+                       <a href="{{$item.url}}" title="{{$item.name}}">{{$item.name}}</a>
+               </div>
+               <div class="profile-match-end"></div>
+       </div>
+       {{/foreach}}
+       {{/if}}
+       <div id="rfic-end" class="clear"></div>
+</div>
+
diff --git a/view/templates/widget/tagcloud.tpl b/view/templates/widget/tagcloud.tpl
new file mode 100644 (file)
index 0000000..fd007c9
--- /dev/null
@@ -0,0 +1,13 @@
+
+<div class="tagblock widget">
+       <h3>{{$title}}</h3>
+
+       <div class="tag-cloud">
+               {{foreach $tags as $tag}}
+               <span class="tags">
+                       <span class="tag{{$tag.level}}">#</span><a href="{{$tag.url}}" class="tag{{$tag.level}}">{{$tag.name}}</a>
+               </span>
+               {{/foreach}}
+       </div>
+       <div class="tagblock-widget-end clear"></div>
+</div>
diff --git a/view/templates/widget/vcard.tpl b/view/templates/widget/vcard.tpl
new file mode 100644 (file)
index 0000000..2404664
--- /dev/null
@@ -0,0 +1,14 @@
+
+<div class="vcard h-card">
+       <div class="fn p-name">{{$name}}</div>
+       {{if $addr}}<div class="p-addr">{{$addr}}</div>{{/if}}
+       {{if $pdesc}}<div class="title p-job-title">{{$pdesc}}</div>{{/if}}
+       {{if $url}}
+       <div id="profile-photo-wrapper"><a href="{{$url}}"><img class="vcard-photo photo u-photo" style="width: 175px; height: 175px;" src="{{$photo}}" alt="{{$name}}" /></a></div>
+       {{else}}
+       <div id="profile-photo-wrapper"><img class="vcard-photo photo u-photo" style="width: 175px; height: 175px;" src="{{$photo}}" alt="{{$name}}" /></div>
+       {{/if}}
+       {{if $account_type}}<div class="account-type">{{$account_type}}</div>{{/if}}
+       {{if $network_link}}<dl class="network"><dt class="network-label">{{$network}}</dt><dd class="x-network">{{$network_link nofilter}}</dd></dl>{{/if}}
+       <div id="profile-vcard-break"></div>
+</div>
index 908574f7064565105179372217e93e3bce7dc3ee..3b6fa92e3b27d25849e8806550949613fc17be93 100644 (file)
@@ -153,7 +153,7 @@ input#acl-search {
   background:#2e2f2e;
 }
 
-.group-selected, .nets-selected, .fileas-selected, .categories-selected{
+.widget .selected, .group-selected {
   background:#2e2f2e;
 }
 
index 3b42cdd10b3e1522930a3b4a656737b57f33956c..c096ffa7dfcf1335fa5043b9bdbd5aa6d2eab4b3 100644 (file)
@@ -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;
index 7cda87c1e47660f5fc9232f84e3f28a543db298c..f586d6e04d740fe705200e2364a8d25502bdc38e 100644 (file)
@@ -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;
 }
 
diff --git a/view/theme/frio/templates/contact_block.tpl b/view/theme/frio/templates/contact_block.tpl
deleted file mode 100644 (file)
index 0ae6479..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-
-<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}}">
-               <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}}
-       </div>
-       {{/if}}
-</div>
-<div class="clear"></div>
diff --git a/view/theme/frio/templates/fileas_widget.tpl b/view/theme/frio/templates/fileas_widget.tpl
deleted file mode 100644 (file)
index b7d867e..0000000
+++ /dev/null
@@ -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>
diff --git a/view/theme/frio/templates/follow.tpl b/view/theme/frio/templates/follow.tpl
deleted file mode 100644 (file)
index fadd0a6..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-
-<div id="follow-sidebar" class="widget">
-       <h3>{{$connect}}</h3>
-
-       <form action="follow" method="get">
-               <label for="side-follow-url" id="connect-desc">{{$desc nofilter}}</label>
-               {{* The input field - For visual consistence we are using a search input field*}}
-               <div class="form-group form-group-search">
-                       <input id="side-follow-url" class="search-input form-control form-search" type="text" name="url" value="{{$value}}" placeholder="{{$hint}}" data-toggle="tooltip" title="{{$hint}}" />
-                       <button id="side-follow-submit" class="btn btn-default btn-sm form-button-search" type="submit">{{$follow}}</button>
-               </div>
-       </form>
-</div>
-
diff --git a/view/theme/frio/templates/nets.tpl b/view/theme/frio/templates/nets.tpl
deleted file mode 100644 (file)
index 8bc0c91..0000000
+++ /dev/null
@@ -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>
diff --git a/view/theme/frio/templates/peoplefind.tpl b/view/theme/frio/templates/peoplefind.tpl
deleted file mode 100644 (file)
index fc5d249..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<div id="peoplefind-sidebar" class="widget">
-       <h3>{{$nv.findpeople}}</h3>
-
-       <form action="dirfind" method="get">
-               {{* The search field *}}
-               <label for="side-peoplefind-url" id="peoplefind-desc">{{$nv.desc}}</label>
-               <div class="form-group form-group-search">
-                       <input id="side-peoplefind-url" class="search-input form-control form-search" type="text" name="search" data-toggle="tooltip" title="{{$nv.hint}}" />
-                       <button id="side-peoplefind-submit" class="btn btn-default btn-sm form-button-search" type="submit">{{$nv.findthem}}</button>
-               </div>
-       </form>
-
-       {{* Directory links *}}
-       <div class="side-link" id="side-directory-link"><a href="directory" >{{$nv.local_directory}}</a></div>
-       <div class="side-link" id="side-directory-link"><a href="{{$nv.global_dir}}" target="extlink" >{{$nv.directory}}</a></div>
-       {{* Additional links *}}
-       <div class="side-link" id="side-match-link"><a href="match" >{{$nv.similar}}</a></div>
-       <div class="side-link" id="side-suggest-link"><a href="suggest" >{{$nv.suggest}}</a></div>
-
-       {{if $nv.inv}} 
-       <div class="side-link" id="side-invite-link" ><button type="button" class="btn-link" onclick="addToModal('invite'); return false;">{{$nv.inv}}</button></div>
-       {{/if}}
-</div>
diff --git a/view/theme/frio/templates/vcard-widget.tpl b/view/theme/frio/templates/vcard-widget.tpl
deleted file mode 100644 (file)
index d1b4172..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<div class="vcard h-card widget">
-
-       <div id="profile-photo-wrapper">
-               {{if $url}}
-               <a href="{{$url}}"><img class="photo u-photo" src="{{$photo}}" alt="{{$name}}" /></a>
-               {{else}}
-               <img class="photo u-photo" src="{{$photo}}" alt="{{$name}}" />
-               {{/if}}
-       </div>
-
-       {{* The short information which will appended to the second navbar by scrollspy *}}
-       <div id="vcard-short-info-wrapper" style="display: none;">
-               <div id="vcard-short-info" class="media" style="display: none">
-                       <div id="vcard-short-photo-wrapper" class="pull-left">
-                               <img class="media-object" src="{{$photo}}" alt="{{$name}}" />
-                       </div>
-
-                       <div id="vcard-short-desc" class="media-body">
-                               <h4 class="media-heading">{{$name}}</h4>
-                               {{if $addr}}<div class="vcard-short-addr">{{$addr}}</div>{{/if}}
-                       </div>
-               </div>
-       </div>
-
-       <div class="panel-body">
-               <div class="profile-header">
-                       <h3 class="fn p-name">{{$name}}</h3>
-
-                       {{if $addr}}<div class="p-addr">{{$addr}}</div>{{/if}}
-
-                       {{if $account_type}}<div class="account-type">({{$account_type}})</div>{{/if}}
-
-                       {{if $pdesc}}<div class="title">{{$pdesc}}</div>{{/if}}
-
-                       {{if $network_link}}<dl class="network"><dt class="network-label">{{$network}}</dt><dd class="x-network">{{$network_link nofilter}}</dd></dl>{{/if}}
-               </div>
-       </div>
-</div>
diff --git a/view/theme/frio/templates/widget/contacts.tpl b/view/theme/frio/templates/widget/contacts.tpl
new file mode 100644 (file)
index 0000000..e084381
--- /dev/null
@@ -0,0 +1,18 @@
+
+<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="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}}
+       </div>
+{{/if}}
+</div>
+<div class="clear"></div>
diff --git a/view/theme/frio/templates/widget/follow.tpl b/view/theme/frio/templates/widget/follow.tpl
new file mode 100644 (file)
index 0000000..fadd0a6
--- /dev/null
@@ -0,0 +1,14 @@
+
+<div id="follow-sidebar" class="widget">
+       <h3>{{$connect}}</h3>
+
+       <form action="follow" method="get">
+               <label for="side-follow-url" id="connect-desc">{{$desc nofilter}}</label>
+               {{* The input field - For visual consistence we are using a search input field*}}
+               <div class="form-group form-group-search">
+                       <input id="side-follow-url" class="search-input form-control form-search" type="text" name="url" value="{{$value}}" placeholder="{{$hint}}" data-toggle="tooltip" title="{{$hint}}" />
+                       <button id="side-follow-submit" class="btn btn-default btn-sm form-button-search" type="submit">{{$follow}}</button>
+               </div>
+       </form>
+</div>
+
diff --git a/view/theme/frio/templates/widget/peoplefind.tpl b/view/theme/frio/templates/widget/peoplefind.tpl
new file mode 100644 (file)
index 0000000..fc5d249
--- /dev/null
@@ -0,0 +1,23 @@
+<div id="peoplefind-sidebar" class="widget">
+       <h3>{{$nv.findpeople}}</h3>
+
+       <form action="dirfind" method="get">
+               {{* The search field *}}
+               <label for="side-peoplefind-url" id="peoplefind-desc">{{$nv.desc}}</label>
+               <div class="form-group form-group-search">
+                       <input id="side-peoplefind-url" class="search-input form-control form-search" type="text" name="search" data-toggle="tooltip" title="{{$nv.hint}}" />
+                       <button id="side-peoplefind-submit" class="btn btn-default btn-sm form-button-search" type="submit">{{$nv.findthem}}</button>
+               </div>
+       </form>
+
+       {{* Directory links *}}
+       <div class="side-link" id="side-directory-link"><a href="directory" >{{$nv.local_directory}}</a></div>
+       <div class="side-link" id="side-directory-link"><a href="{{$nv.global_dir}}" target="extlink" >{{$nv.directory}}</a></div>
+       {{* Additional links *}}
+       <div class="side-link" id="side-match-link"><a href="match" >{{$nv.similar}}</a></div>
+       <div class="side-link" id="side-suggest-link"><a href="suggest" >{{$nv.suggest}}</a></div>
+
+       {{if $nv.inv}} 
+       <div class="side-link" id="side-invite-link" ><button type="button" class="btn-link" onclick="addToModal('invite'); return false;">{{$nv.inv}}</button></div>
+       {{/if}}
+</div>
diff --git a/view/theme/frio/templates/widget/vcard.tpl b/view/theme/frio/templates/widget/vcard.tpl
new file mode 100644 (file)
index 0000000..d1b4172
--- /dev/null
@@ -0,0 +1,38 @@
+<div class="vcard h-card widget">
+
+       <div id="profile-photo-wrapper">
+               {{if $url}}
+               <a href="{{$url}}"><img class="photo u-photo" src="{{$photo}}" alt="{{$name}}" /></a>
+               {{else}}
+               <img class="photo u-photo" src="{{$photo}}" alt="{{$name}}" />
+               {{/if}}
+       </div>
+
+       {{* The short information which will appended to the second navbar by scrollspy *}}
+       <div id="vcard-short-info-wrapper" style="display: none;">
+               <div id="vcard-short-info" class="media" style="display: none">
+                       <div id="vcard-short-photo-wrapper" class="pull-left">
+                               <img class="media-object" src="{{$photo}}" alt="{{$name}}" />
+                       </div>
+
+                       <div id="vcard-short-desc" class="media-body">
+                               <h4 class="media-heading">{{$name}}</h4>
+                               {{if $addr}}<div class="vcard-short-addr">{{$addr}}</div>{{/if}}
+                       </div>
+               </div>
+       </div>
+
+       <div class="panel-body">
+               <div class="profile-header">
+                       <h3 class="fn p-name">{{$name}}</h3>
+
+                       {{if $addr}}<div class="p-addr">{{$addr}}</div>{{/if}}
+
+                       {{if $account_type}}<div class="account-type">({{$account_type}})</div>{{/if}}
+
+                       {{if $pdesc}}<div class="title">{{$pdesc}}</div>{{/if}}
+
+                       {{if $network_link}}<dl class="network"><dt class="network-label">{{$network}}</dt><dd class="x-network">{{$network_link nofilter}}</dd></dl>{{/if}}
+               </div>
+       </div>
+</div>
diff --git a/view/theme/quattro/templates/fileas_widget.tpl b/view/theme/quattro/templates/fileas_widget.tpl
deleted file mode 100644 (file)
index 7946e8f..0000000
+++ /dev/null
@@ -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>
diff --git a/view/theme/quattro/templates/nets.tpl b/view/theme/quattro/templates/nets.tpl
deleted file mode 100644 (file)
index 2d488dc..0000000
+++ /dev/null
@@ -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>
diff --git a/view/theme/quattro/templates/widget/filter.tpl b/view/theme/quattro/templates/widget/filter.tpl
new file mode 100644 (file)
index 0000000..8a44bec
--- /dev/null
@@ -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>
index 9866bc362a3b2b82d06db8bc67ccb4bfd912bd20..9bbf00c78030af7d751e570a2d0e933a3c6aec0f 100644 (file)
@@ -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 {}
diff --git a/view/theme/smoothly/templates/follow.tpl b/view/theme/smoothly/templates/follow.tpl
deleted file mode 100644 (file)
index 4d52485..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<div id="follow-sidebar" class="widget">
-       <h3>{{$connect}}</h3>
-       <div id="connect-desc">{{$desc nofilter}}</div>
-       <form action="follow" method="post" >
-               <input id="side-follow-url" type="text-sidebar" name="url" size="24" title="{{$hint}}" /><input id="side-follow-submit" type="submit" name="submit" value="{{$follow}}" />
-       </form>
-</div>
-
diff --git a/view/theme/smoothly/templates/widget/follow.tpl b/view/theme/smoothly/templates/widget/follow.tpl
new file mode 100644 (file)
index 0000000..4d52485
--- /dev/null
@@ -0,0 +1,9 @@
+
+<div id="follow-sidebar" class="widget">
+       <h3>{{$connect}}</h3>
+       <div id="connect-desc">{{$desc nofilter}}</div>
+       <form action="follow" method="post" >
+               <input id="side-follow-url" type="text-sidebar" name="url" size="24" title="{{$hint}}" /><input id="side-follow-submit" type="submit" name="submit" value="{{$follow}}" />
+       </form>
+</div>
+
index eedbe09a45f149a412f83537341a4315a7b60f46..3dc9b4649134c807db9e98655692420b9801997a 100644 (file)
@@ -448,7 +448,7 @@ pre code {
        /* color: #000; */
 }
 
-.group-selected, .nets-selected, .fileas-selected, .forum-selected {
+.widget .selected, .forum-selected {
        font-weight: bold;
 }
 
index 618ba8e1e574838d7a30e474057c26e70104f4b7..94c8abcd7bbbed97f36eb973a117b897725bdc8a 100644 (file)
@@ -39,7 +39,7 @@
 {{/if}}
 
 {{if $nv}}
-{{include file='peoplefind.tpl' nv=$nv}}
+{{include file='widget/peoplefind.tpl' nv=$nv}}
 {{/if}}
 
 {{if $lastusers_title}}