]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #4915 from M-arcus/patch-4
authorHypolite Petovan <mrpetovan@gmail.com>
Wed, 25 Apr 2018 12:06:04 +0000 (08:06 -0400)
committerGitHub <noreply@github.com>
Wed, 25 Apr 2018 12:06:04 +0000 (08:06 -0400)
[DOCS] Docs: Minor improvements

31 files changed:
boot.php
doc/Install.md
doc/Profiles.md
doc/de/Install.md
mod/admin.php
mod/community.php
mod/dfrn_notify.php
mod/invite.php
mod/profile.php
src/Content/ForumManager.php
src/Content/Nav.php
src/Content/Widget.php
src/Model/Item.php
src/Protocol/DFRN.php
src/Protocol/Diaspora.php
tests/BaseObjectTest.php
tests/TextTest.php
util/credits.txt
view/global.css
view/lang/fi-fi/messages.po
view/lang/fi-fi/strings.php
view/templates/invite.tpl
view/templates/paginate.tpl
view/templates/peoplefind.tpl
view/theme/frio/css/style.css
view/theme/frio/js/modal.js
view/theme/frio/templates/invite.tpl [new file with mode: 0644]
view/theme/frio/templates/peoplefind.tpl
view/theme/vier/style.css
view/theme/vier/templates/communityhome.tpl
view/theme/vier/theme.php

index 217a5f4e1d9ba834df26bcc3ba5f3455e933f4a6..1ca8b8d8d8ccf720c977887789c6ebd5f8ade8cf 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -232,10 +232,11 @@ define('ACCOUNT_TYPE_RELAY',       4);
  * Type of the community page
  * @{
  */
-define('CP_NO_COMMUNITY_PAGE',  -1);
-define('CP_USERS_ON_SERVER',     0);
-define('CP_GLOBAL_COMMUNITY',    1);
-define('CP_USERS_AND_GLOBAL',    2);
+define('CP_NO_INTERNAL_COMMUNITY', -2);
+define('CP_NO_COMMUNITY_PAGE',     -1);
+define('CP_USERS_ON_SERVER',        0);
+define('CP_GLOBAL_COMMUNITY',       1);
+define('CP_USERS_AND_GLOBAL',       2);
 /**
  * @}
  */
index b8929d371bbb6416c8ae3bce7aff37c9450fcb2f..2a80cf72a9ab156a516737306689e65ce3fbe8c1 100644 (file)
@@ -99,7 +99,9 @@ You might wish to move/rename .htconfig.php to another name and empty (called 'd
 
 ### Option B: Run the automatic install script
 
-Open the file htconfig.php in the main Friendica directory with a text editor. Remove the `die('...');` line and edit the lines to suit your installation (MySQL, language, theme etc.), then save the file (do not rename it). 
+Open the file htconfig.php in the main Friendica directory with a text editor.
+Remove the `die('...');` line and edit the lines to suit your installation (MySQL, language, theme etc.).
+Then save the file (do not rename it). 
 
 Navigate to the main Friendica directory and execute the following command:
 
index 715d27d957d715366654ef46d7bb412e1e86cc8a..aceb94da3927b67fd6afb5d13ac27d0a34588b4d 100644 (file)
@@ -4,35 +4,32 @@ Profiles
 * [Home](help)
 
 Friendica has unlimited profiles.
-You may use different profiles to show different "sides of yourself" to different audiences.
+You may use different profiles to present different aspects of yourself to different audiences.
 
 Default / public profile
 ---
 You always have a profile known as your "default" or "public" profile.
-This profile is always available to the general public and cannot be hidden (there may be rare exceptions on privately run or disconnected sites).
-You may, and probably should restrict the information you make available on your public profile.
+This profile is always available to the general public and usually cannot be hidden.
+You may, and probably should restrict the personal information you make available on your public profile.
 
 That said, if you want other friends to be able to find you, it helps to have the following information in your public profile:
 
 * Your real name
 * A photo of **you**
-* Your location on the planet, at least to a country level
+* Your location, preferably at least the country
 
-Without this basic information, you could get very lonely here.
-Most people (even your best friends) will not try and connect with somebody that has a fake name or doesn't contain a real photo.  
-
-In addition, if you'd like to meet people that share some general interests with you, please take a moment and add some "Public Keywords" to your profile.
+In addition, if you'd like to meet people that share some general interests with you, add some "Public Keywords" to your profile.
 Such as "music, linux, photography" or whatever.
 You can add as many keywords as you like. 
 
 Your default or public profile is also shown to contacts on other networks, since they do not have the ability to view your private profiles.
-Only members of the Friendica network can see alternate/private profiles.
+Only members of the Friendica network can see alternate/ private profiles.
 
-Alternate profiles
+Alternate/ private profiles
 ---
 To create an alternate profile, select "Profiles" from the menu of your Friendica site.
 You may edit an existing profile, change the profile photo, or create a new profile.
-You may also create a "clone" of an existing profile if you only wish to change a few items but don't wish to enter all the information again. 
+You may also "clone" your existing profile if you only wish to change a few items but don't wish to enter all the information again. 
 
 To assign a profile to specific persons, select the person from your "Contacts" page and click the pencil "Edit" icon.
 You will find a dropdown box listing the various profiles available.
@@ -51,17 +48,13 @@ You may also be able to comment directly on posts from while visiting the other
 There are two settings which allow you to publish your profile to a directory and ensure that it can be found by others.
 You can change these through settings on the "Settings" page.
 One setting allows you to publish your profile in the site directory of this Friendica server.
-Another option (this may have been disabled by the site creator) allows you to publish your profile in the "Global Directory".
-This is a mega directory which contains people from many other Friendica installations world-wide.
+Another option (this may have been disabled by the site admin) allows you to publish your profile in a [Global Directory](Making-Friends.md#the-directories).
 
-If you do not wish to be visible to any of these sites, you may leave your profile unpublished.   
+If you do not wish to be visible to any of these directories, do not published your profile.   
 
 Although you may have multiple profiles, you only have one profile photo.
-This is intentional.
-In early tests we experimented with different photos for each profile and found it was very confusing for people.
-They might see a different picture depending on what website they visited or what conversation they were in, and often alerted them to the fact that other people might be able to see different profiles of you than they could see.
-
-(But you can use the rich-text information boxes within a profile such as "Tell us about yourself" and link other photos onto the page.)
+This is intentional; it avoids confusion by potentially seeing different profile pictures of a contact depending on what website you visit or conversation you participate in.
+You can always can use the free text information boxes within a profile such as "Tell us about yourself" and link other photos for yourself.
 
 Keywords and Directory Search
 ---
@@ -70,8 +63,7 @@ The search is typically for your nickname or part of your full name.
 However this search will also match against other profile fields - such as gender, location, "about", work, and education.
 You may also include "Keywords" in your default profile - which may be used to search for common interests with other members.
 You have two sets of keywords available - public and private.
-Private keywords are *not* visible to anybody.
-You could use these keywords to locate people who share membership in secret societies, or that share a love of fishing (for example) - without making this information visible on your public profile.
+Private keywords are *not* visible on your profile, but will bring up your profile when matched in a search of the site directory.
 Public keywords are used in the friend suggestion tool and although they aren't readily visible, they may be seen by viewing the HTML of your profile page.
 
 Directory searches are also able to use "boolean" logic so that you can search for "+lesbian +Florida" and find those who's sexual preference (or keywords) contain the world "lesbian" and that live in Florida.
@@ -79,7 +71,7 @@ See the section on "Topical Tags" on the [Tags-and-Mentions](help/Tags-and-Menti
 
 On your Contacts page is a link to "Find People with Shared Interests" (unless your site administrator has disabled the global directory).
 This will combine both your public and private keywords, and find people in the global directory who have matching and/or similar keywords.
-(Your private keywords are not identified or stored on the global directory).
+Private keywords are not identified or stored on the global directory.
 The more keywords you provide, the more relevant the search results that are returned.
 These are sorted by relevance.
 You may discover that you are the first person on the list - because you are very likely the most relevant match for your keywords in the directory.
index 839c4d523faac898d1b2843baad10ff4b0707543..ff077351b791fc1f169260c5059df7029fbd7a59 100644 (file)
@@ -37,7 +37,7 @@ Requirements
 * die Möglichkeit, wiederkehrende Aufgaben mit cron (Linux/Mac) oder "Scheduled Tasks" einzustellen (Windows) [Beachte: andere Optionen sind in Abschnitt 7 dieser Dokumentation zu finden]
 * Installation in einer Top-Level-Domain oder Subdomain (ohne eine Verzeichnis/Pfad-Komponente in der URL) wird bevorzugt. Verzeichnispfade sind für diesen Zweck nicht so günstig und wurden auch nicht ausführlich getestet.
 
-Installation procedure
+Installation
 ---
 
 ### Friendica
index 3debb57bedf2072d2b1d02de3918df7ac9b5f093..7749cff6dcd3be23fb95a79e2ae5f294beb03964 100644 (file)
@@ -1262,6 +1262,7 @@ function admin_page_site(App $a)
 
        /* Community page style */
        $community_page_style_choices = [
+               CP_NO_INTERNAL_COMMUNITY => L10n::t("No community page for local users"),
                CP_NO_COMMUNITY_PAGE => L10n::t("No community page"),
                CP_USERS_ON_SERVER => L10n::t("Public postings from users of this site"),
                CP_GLOBAL_COMMUNITY => L10n::t("Public postings from the federated network"),
index 40ebdbb6e011f2aa5cea9a9f0a55523da7815d8b..876339dea11d8de39de3408ef5826a8429b7f783 100644 (file)
@@ -30,6 +30,11 @@ function community_content(App $a, $update = 0)
 
        $page_style = Config::get('system', 'community_page_style');
 
+       if ($page_style == CP_NO_INTERNAL_COMMUNITY) {
+               notice(L10n::t('Access denied.') . EOL);
+               return;
+       }
+
        if ($a->argc > 1) {
                $content = $a->argv[1];
        } else {
index 27e8ed63f8f0b2ff2449edd564d95701b821b3ea..e2f0336db6e5e267c0f06016f03e3318c2857773 100644 (file)
@@ -198,9 +198,6 @@ function dfrn_notify_post(App $a) {
 
 function dfrn_dispatch_public($postdata)
 {
-       /// @todo Currently disabled, until there is a working item distribution for public posts
-       return false;
-
        $msg = Diaspora::decodeRaw([], $postdata);
        if (!$msg) {
                // We have to fail silently to be able to hand it over to the salmon parser
index 6807ff2c12e034bb8084fae928bd9a25f7c2bb09..813dbf7044a33f734918f2bc6316240eb1fb9c4a 100644 (file)
@@ -144,14 +144,13 @@ function invite_content(App $a) {
 
        $o = replace_macros($tpl, [
                '$form_security_token' => get_form_security_token("send_invite"),
-               '$invite'              => L10n::t('Send invitations'),
-               '$addr_text'           => L10n::t('Enter email addresses, one per line:'),
-               '$msg_text'            => L10n::t('Your message:'),
-               '$default_message'     => L10n::t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n"
+               '$title'               => L10n::t('Send invitations'),
+               '$recipients'          => ['recipients', L10n::t('Enter email addresses, one per line:')],
+               '$message'             => ['message', L10n::t('Your message:'),L10n::t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n"
                        . $linktxt
                        . "\r\n" . "\r\n" . (($invonly) ? L10n::t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '') .L10n::t('Once you have registered, please connect with me via my profile page at:')
                        . "\r\n" . "\r\n" . System::baseUrl() . '/profile/' . $a->user['nickname']
-                       . "\r\n" . "\r\n" . L10n::t('For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca') . "\r\n" . "\r\n"  ,
+                       . "\r\n" . "\r\n" . L10n::t('For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca') . "\r\n" . "\r\n"],
                '$submit'              => L10n::t('Submit')
        ]);
 
index ab11b4d5fe509850c97c48fdc9e4346feb9f9215..d6cbd276ff59ccb812fd84ca42dc4ec2d3ffac9a 100644 (file)
@@ -191,7 +191,7 @@ function profile_content(App $a, $update = 0)
                $o .= Widget::commonFriendsVisitor($a->profile['profile_uid']);
 
                if (x($_SESSION, 'new_member') && $is_owner) {
-                       $o .= '<a href="newmember" id="newmember-tips" style="font-size: 1.2em;"><b>' . L10n::t('Tips for New Members') . '</b></a>' . EOL;
+                       $o .= '<div id="newmember-tips"><a href="newmember"><b>' . L10n::t('Tips for New Members') . '</b></a></div>';
                }
 
                $commpage = $a->profile['page-flags'] == PAGE_COMMUNITY;
index 4f09b8a1126a3cc0512f763d9ffc307a9a977be5..cfd083f9f8c3821010e1f61d3d77a78d1163f278 100644 (file)
@@ -49,7 +49,7 @@ class ForumManager
                        "SELECT `contact`.`id`, `contact`.`url`, `contact`.`name`, `contact`.`micro`, `contact`.`thumb`
                        FROM `contact`
                                WHERE `network`= 'dfrn' AND $select AND `uid` = ?
-                               AND NOT `blocked` AND NOT `hidden` AND NOT `pending` AND NOT `archive`
+                               AND NOT `blocked` AND NOT `pending` AND NOT `archive`
                                AND `success_update` > `failure_update`
                        $order ",
                        $uid
index c437c6e2a1859cbcce1bf5a4323a89bbc60d95c0..cd2cfb3639044f116b3234d47df94cd05ebf6320 100644 (file)
@@ -161,7 +161,8 @@ class Nav
                        }
                }
 
-               if (local_user() || Config::get('system', 'community_page_style') != CP_NO_COMMUNITY_PAGE) {
+               if ((local_user() || Config::get('system', 'community_page_style') != CP_NO_COMMUNITY_PAGE) &&
+                       !(Config::get('system', 'community_page_style') == CP_NO_INTERNAL_COMMUNITY)) {
                        $nav['community'] = ['community', L10n::t('Community'), '', L10n::t('Conversations on this and other servers')];
                }
 
index 058a7a1fb51c47e82bc2e00e1e299bd03829427c..04dfbb8e0313a230537556b3f9a4c2cc1e28dc9a 100644 (file)
@@ -55,19 +55,24 @@ class Widget
                        }
                }
 
-               return replace_macros(get_markup_template('peoplefind.tpl'), array(
-                       '$findpeople' => L10n::t('Find People'),
-                       '$desc' => L10n::t('Enter name or interest'),
-                       '$label' => L10n::t('Connect/Follow'),
-                       '$hint' => L10n::t('Examples: Robert Morgenstein, Fishing'),
-                       '$findthem' => L10n::t('Find'),
-                       '$suggest' => L10n::t('Friend Suggestions'),
-                       '$similar' => L10n::t('Similar Interests'),
-                       '$random' => L10n::t('Random Profile'),
-                       '$inv' => L10n::t('Invite Friends'),
-                       '$directory' => L10n::t('View Global Directory'),
-                       '$global_dir' => $global_dir
-               ));
+               $nv = [];
+               $nv['findpeople'] = L10n::t('Find People');
+               $nv['desc'] = L10n::t('Enter name or interest');
+               $nv['label'] = L10n::t('Connect/Follow');
+               $nv['hint'] = L10n::t('Examples: Robert Morgenstein, Fishing');
+               $nv['findthem'] = L10n::t('Find');
+               $nv['suggest'] = L10n::t('Friend Suggestions');
+               $nv['similar'] = L10n::t('Similar Interests');
+               $nv['random'] = L10n::t('Random Profile');
+               $nv['inv'] = L10n::t('Invite Friends');
+               $nv['directory'] = L10n::t('Global Directory');
+               $nv['global_dir'] = $global_dir;
+               $nv['local_directory'] = L10n::t('Local Directory');
+
+               $aside = [];
+               $aside['$nv'] = $nv;
+
+               return replace_macros(get_markup_template('peoplefind.tpl'), $aside);
        }
 
        /**
index 499ec25c1ae3a65bbcfd0dc36f58d945d8eae371..8125c4ac7126b341717ccd7b9f6a1b58b4397a50 100644 (file)
@@ -839,6 +839,81 @@ class Item extends BaseObject
                return $current_post;
        }
 
+       /**
+        * @brief Distributes public items to the receivers
+        *
+        * @param integer $itemid Item ID that should be added
+        */
+       public static function distribute($itemid)
+       {
+               $condition = ["`id` IN (SELECT `parent` FROM `item` WHERE `id` = ?)", $itemid];
+               $parent = dba::selectFirst('item', ['owner-id'], $condition);
+               if (!DBM::is_result($parent)) {
+                       return;
+               }
+
+               // Only distribute public items from native networks
+               $condition = ['id' => $itemid, 'uid' => 0,
+                       'network' => [NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS, ""],
+                       'visible' => true, 'deleted' => false, 'moderated' => false, 'private' => false];
+               $item = dba::selectFirst('item', [], ['id' => $itemid]);
+               if (!DBM::is_result($item)) {
+                       return;
+               }
+
+               unset($item['id']);
+
+               $condition = ["`nurl` IN (SELECT `nurl` FROM `contact` WHERE `id` = ?) AND `uid` != 0 AND NOT `blocked` AND `rel` IN (?, ?)",
+                       $parent['owner-id'], CONTACT_IS_SHARING,  CONTACT_IS_FRIEND];
+               $contacts = dba::select('contact', ['uid'], $condition);
+               while ($contact = dba::fetch($contacts)) {
+                       self::storeForUser($itemid, $item, $contact['uid']);
+               }
+       }
+
+       /**
+        * @brief Store public items for the receivers
+        *
+        * @param integer $itemid Item ID that should be added
+        * @param array   $item   The item entry that will be stored
+        * @param integer $uid    The user that will receive the item entry
+        */
+       private static function storeForUser($itemid, $item, $uid)
+       {
+               $item['uid'] = $uid;
+               $item['origin'] = 0;
+               $item['wall'] = 0;
+               if ($item['uri'] == $item['parent-uri']) {
+                       $item['contact-id'] = Contact::getIdForURL($item['owner-link'], $uid);
+               } else {
+                       $item['contact-id'] = Contact::getIdForURL($item['author-link'], $uid);
+               }
+
+               if (empty($item['contact-id'])) {
+                       $self = dba::selectFirst('contact', ['id'], ['self' => true, 'uid' => $uid]);
+                       if (!DBM::is_result($self)) {
+                               return;
+                       }
+                       $item['contact-id'] = $self['id'];
+               }
+
+               if (in_array($item['type'], ["net-comment", "wall-comment"])) {
+                       $item['type'] = 'remote-comment';
+               } elseif ($item['type'] == 'wall') {
+                       $item['type'] = 'remote';
+               }
+
+               /// @todo Handling of "event-id"
+
+               $distributed = self::insert($item, false, false, true);
+
+               if (!$distributed) {
+                       logger("Distributed public item " . $itemid . " for user " . $uid . " wasn't stored", LOGGER_DEBUG);
+               } else {
+                       logger("Distributed public item " . $itemid . " for user " . $uid . " with id " . $distributed, LOGGER_DEBUG);
+               }
+       }
+
        /**
         * @brief Add a shadow entry for a given item id that is a thread starter
         *
@@ -850,8 +925,8 @@ class Item extends BaseObject
         */
        public static function addShadow($itemid)
        {
-               $fields = ['uid', 'wall', 'private', 'moderated', 'visible', 'contact-id', 'deleted', 'network', 'author-id', 'owner-id'];
-               $condition = ["`id` = ? AND (`parent` = ? OR `parent` = 0)", $itemid, $itemid];
+               $fields = ['uid', 'private', 'moderated', 'visible', 'deleted', 'network'];
+               $condition = ['id' => $itemid, 'parent' => [0, $itemid]];
                $item = dba::selectFirst('item', $fields, $condition);
 
                if (!DBM::is_result($item)) {
@@ -873,27 +948,9 @@ class Item extends BaseObject
                        return;
                }
 
-               // Only do these checks if the post isn't a wall post
-               if (!$item["wall"]) {
-                       // Check, if hide-friends is activated - then don't do a shadow entry
-                       if (dba::exists('profile', ['is-default' => true, 'uid' => $item['uid'], 'hide-friends' => true])) {
-                               return;
-                       }
-
-                       // Check if the contact is hidden or blocked
-                       if (!dba::exists('contact', ['hidden' => false, 'blocked' => false, 'id' => $item['contact-id']])) {
-                               return;
-                       }
-               }
-
-               // Only add a shadow, if the profile isn't hidden
-               if (dba::exists('user', ['uid' => $item['uid'], 'hidewall' => true])) {
-                       return;
-               }
-
                $item = dba::selectFirst('item', [], ['id' => $itemid]);
 
-               if (DBM::is_result($item) && ($item["allow_cid"] == '')  && ($item["allow_gid"] == '') &&
+               if (DBM::is_result($item) && ($item["allow_cid"] == '') && ($item["allow_gid"] == '') &&
                        ($item["deny_cid"] == '') && ($item["deny_gid"] == '')) {
 
                        if (!dba::exists('item', ['uri' => $item['uri'], 'uid' => 0])) {
index 4821f3e4a1da1cb00524c33366774dfc27805c51..74975159ea6221db720437b8af13c86f2946fa50 100644 (file)
@@ -2773,6 +2773,10 @@ class DFRN
                        if ($posted_id) {
                                logger("Reply from contact ".$item["contact-id"]." was stored with id ".$posted_id, LOGGER_DEBUG);
 
+                               if ($item['uid'] == 0) {
+                                       Item::distribute($posted_id);
+                               }
+
                                $item["id"] = $posted_id;
 
                                $r = q(
@@ -2827,6 +2831,10 @@ class DFRN
 
                        logger("Item was stored with id ".$posted_id, LOGGER_DEBUG);
 
+                       if ($item['uid'] == 0) {
+                               Item::distribute($posted_id);
+                       }
+
                        if (stristr($item["verb"], ACTIVITY_POKE)) {
                                self::doPoke($item, $importer, $posted_id);
                        }
index e81c53499fa92337b41858148be96022b049eaca..6f03c0df87ad559cd0137034cb2d9d6f0f8d5a93 100644 (file)
@@ -590,57 +590,13 @@ class Diaspora
                        return false;
                }
 
-               if (!($postdata = self::validPosting($msg))) {
+               if (!($fields = self::validPosting($msg))) {
                        logger("Invalid posting");
                        return false;
                }
 
-               $fields = $postdata['fields'];
-
-               // Is it a an action (comment, like, ...) for our own post?
-               if (isset($fields->parent_guid) && !$postdata["relayed"]) {
-                       $guid = notags(unxmlify($fields->parent_guid));
-                       $importer = self::importerForGuid($guid);
-                       if (is_array($importer)) {
-                               logger("delivering to origin: ".$importer["name"]);
-                               $message_id = self::dispatch($importer, $msg, $fields);
-                               return $message_id;
-                       }
-               }
-
-               // Process item retractions. This has to be done separated from the other stuff,
-               // since retractions for comments could come even from non followers.
-               if (!empty($fields) && in_array($fields->getName(), ['retraction'])) {
-                       $target = notags(unxmlify($fields->target_type));
-                       if (in_array($target, ["Comment", "Like", "Post", "Reshare", "StatusMessage"])) {
-                               logger('processing retraction for '.$target, LOGGER_DEBUG);
-                               $importer = ["uid" => 0, "page-flags" => PAGE_FREELOVE];
-                               $message_id = self::dispatch($importer, $msg, $fields);
-                               return $message_id;
-                       }
-               }
-
-               // Now distribute it to the followers
-               $r = q(
-                       "SELECT `user`.* FROM `user` WHERE `user`.`uid` IN
-                       (SELECT `contact`.`uid` FROM `contact` WHERE `contact`.`network` = '%s' AND `contact`.`addr` = '%s')
-                       AND NOT `account_expired` AND NOT `account_removed`",
-                       dbesc(NETWORK_DIASPORA),
-                       dbesc($msg["author"])
-               );
-
-               if (DBM::is_result($r)) {
-                       foreach ($r as $rr) {
-                               logger("delivering to: ".$rr["username"]);
-                               self::dispatch($rr, $msg, $fields);
-                       }
-               } elseif (!Config::get('system', 'relay_subscribe', false)) {
-                       logger("Unwanted message from ".$msg["author"]." send by ".$_SERVER["REMOTE_ADDR"]." with ".$_SERVER["HTTP_USER_AGENT"].": ".print_r($msg, true), LOGGER_DEBUG);
-               } else {
-                       // Use a dummy importer to import the data for the public copy
-                       $importer = ["uid" => 0, "page-flags" => PAGE_FREELOVE];
-                       $message_id = self::dispatch($importer, $msg, $fields);
-               }
+               $importer = ["uid" => 0, "page-flags" => PAGE_FREELOVE];
+               $message_id = self::dispatch($importer, $msg, $fields);
 
                return $message_id;
        }
@@ -662,11 +618,13 @@ class Diaspora
 
                // This is only needed for private postings since this is already done for public ones before
                if (is_null($fields)) {
-                       if (!($postdata = self::validPosting($msg))) {
+                       $private = true;
+                       if (!($fields = self::validPosting($msg))) {
                                logger("Invalid posting");
                                return false;
                        }
-                       $fields = $postdata['fields'];
+               } else {
+                       $private = false;
                }
 
                $type = $fields->getName();
@@ -675,27 +633,47 @@ class Diaspora
 
                switch ($type) {
                        case "account_migration":
+                               if (!$private) {
+                                       logger('Message with type ' . $type . ' is not private, quitting.');
+                                       return false;
+                               }
                                return self::receiveAccountMigration($importer, $fields);
 
                        case "account_deletion":
-                               return self::receiveAccountDeletion($importer, $fields);
+                               return self::receiveAccountDeletion($fields);
 
                        case "comment":
                                return self::receiveComment($importer, $sender, $fields, $msg["message"]);
 
                        case "contact":
+                               if (!$private) {
+                                       logger('Message with type ' . $type . ' is not private, quitting.');
+                                       return false;
+                               }
                                return self::receiveContactRequest($importer, $fields);
 
                        case "conversation":
+                               if (!$private) {
+                                       logger('Message with type ' . $type . ' is not private, quitting.');
+                                       return false;
+                               }
                                return self::receiveConversation($importer, $msg, $fields);
 
                        case "like":
                                return self::receiveLike($importer, $sender, $fields);
 
                        case "message":
+                               if (!$private) {
+                                       logger('Message with type ' . $type . ' is not private, quitting.');
+                                       return false;
+                               }
                                return self::receiveMessage($importer, $fields);
 
                        case "participation":
+                               if (!$private) {
+                                       logger('Message with type ' . $type . ' is not private, quitting.');
+                                       return false;
+                               }
                                return self::receiveParticipation($importer, $fields);
 
                        case "photo": // Not implemented
@@ -705,6 +683,10 @@ class Diaspora
                                return self::receivePollParticipation($importer, $fields);
 
                        case "profile":
+                               if (!$private) {
+                                       logger('Message with type ' . $type . ' is not private, quitting.');
+                                       return false;
+                               }
                                return self::receiveProfile($importer, $fields);
 
                        case "reshare":
@@ -840,7 +822,7 @@ class Diaspora
 
                // Only some message types have signatures. So we quit here for the other types.
                if (!in_array($type, ["comment", "like"])) {
-                       return ["fields" => $fields, "relayed" => false];
+                       return $fields;
                }
                // No author_signature? This is a must, so we quit.
                if (!isset($author_signature)) {
@@ -849,16 +831,12 @@ class Diaspora
                }
 
                if (isset($parent_author_signature)) {
-                       $relayed = true;
-
                        $key = self::key($msg["author"]);
 
                        if (!Crypto::rsaVerify($signed_data, $parent_author_signature, $key, "sha256")) {
                                logger("No valid parent author signature for parent author ".$msg["author"]. " in type ".$type." - signed data: ".$signed_data." - Message: ".$msg["message"]." - Signature ".$parent_author_signature, LOGGER_DEBUG);
                                return false;
                        }
-               } else {
-                       $relayed = false;
                }
 
                $key = self::key($fields->author);
@@ -867,7 +845,7 @@ class Diaspora
                        logger("No valid author signature for author ".$fields->author. " in type ".$type." - signed data: ".$signed_data." - Message: ".$msg["message"]." - Signature ".$author_signature, LOGGER_DEBUG);
                        return false;
                } else {
-                       return ["fields" => $fields, "relayed" => $relayed];
+                       return $fields;
                }
        }
 
@@ -1650,25 +1628,23 @@ class Diaspora
        /**
         * @brief Processes an account deletion
         *
-        * @param array  $importer Array of the importer user
         * @param object $data     The message object
         *
         * @return bool Success
         */
-       private static function receiveAccountDeletion($importer, $data)
+       private static function receiveAccountDeletion($data)
        {
-               /// @todo Account deletion should remove the contact from the global contacts as well
-
                $author = notags(unxmlify($data->author));
 
-               $contact = self::contactByHandle($importer["uid"], $author);
-               if (!$contact) {
-                       logger("cannot find contact for author: ".$author);
-                       return false;
+               $contacts = dba::select('contact', ['id'], ['addr' => $author]);
+               while ($contact = dba::fetch($contacts)) {
+                       Contact::remove($contact["id"]);
                }
 
-               // We now remove the contact
-               Contact::remove($contact["id"]);
+               dba::delete('gcontact', ['addr' => $author]);
+
+               logger('Removed contacts for ' . $author);
+
                return true;
        }
 
@@ -1836,6 +1812,9 @@ class Diaspora
 
                if ($message_id) {
                        logger("Stored comment ".$datarray["guid"]." with message id ".$message_id, LOGGER_DEBUG);
+                       if ($datarray['uid'] == 0) {
+                               Item::distribute($message_id);
+                       }
                }
 
                // If we are the origin of the parent we store the original data and notify our followers
@@ -2157,6 +2136,9 @@ class Diaspora
 
                if ($message_id) {
                        logger("Stored like ".$datarray["guid"]." with message id ".$message_id, LOGGER_DEBUG);
+                       if ($datarray['uid'] == 0) {
+                               Item::distribute($message_id);
+                       }
                }
 
                // like on comments have the comment as parent. So we need to fetch the toplevel parent
@@ -2883,6 +2865,9 @@ class Diaspora
 
                if ($message_id) {
                        logger("Stored reshare ".$datarray["guid"]." with message id ".$message_id, LOGGER_DEBUG);
+                       if ($datarray['uid'] == 0) {
+                               Item::distribute($message_id);
+                       }
                        return true;
                } else {
                        return false;
@@ -3107,6 +3092,9 @@ class Diaspora
 
                if ($message_id) {
                        logger("Stored item ".$datarray["guid"]." with message id ".$message_id, LOGGER_DEBUG);
+                       if ($datarray['uid'] == 0) {
+                               Item::distribute($message_id);
+                       }
                        return true;
                } else {
                        return false;
index 73eb4720ba6c1cd0656f84db60518714adca8484..b7b90b138e2914f2c006a74b76f7d854d7159b28 100644 (file)
@@ -7,12 +7,14 @@ namespace Friendica\Test;
 
 use Friendica\App;
 use Friendica\BaseObject;
-use PHPUnit_Framework_TestCase;
-
+// backward compatibility
+if (!class_exists('\PHPUnit\Framework\TestCase')) {
+    class_alias('\PHPUnit_Framework_TestCase', '\PHPUnit\Framework\TestCase');
+}
 /**
  * Tests for the BaseObject class.
  */
-class BaseObjectTest extends PHPUnit_Framework_TestCase
+class BaseObjectTest extends \PHPUnit\Framework\TestCase
 {
 
        /**
index 3a15b97665840d378b85b6b4846d79aabaf39edd..3cda2342f36b88aa36f7a5ff1759fed4ddc23b67 100644 (file)
@@ -5,12 +5,15 @@
 
 namespace Friendica\Test;
 
-use PHPUnit_Framework_TestCase;
+// backward compatibility
+if (!class_exists('\PHPUnit\Framework\TestCase')) {
+    class_alias('\PHPUnit_Framework_TestCase', '\PHPUnit\Framework\TestCase');
+}
 
 /**
  * Tests for text functions.
  */
-class TextTest extends PHPUnit_Framework_TestCase
+class TextTest extends \PHPUnit\Framework\TestCase
 {
 
        /**
@@ -61,10 +64,10 @@ class TextTest extends PHPUnit_Framework_TestCase
        public function testAutonameLength1()
        {
                $autoname1=autoname(1);
-               $this->assertEquals(1, count($autoname1));
+               $this->assertEquals(1, strlen($autoname1));
 
                $autoname2=autoname(1);
-               $this->assertEquals(1, count($autoname2));
+               $this->assertEquals(1, strlen($autoname2));
        }
 
        /**
index c6a5c3f31912a079526a4a9317c79c12c7e1888a..e24f45f8a53dcdaa5d99952b6e80fbb92760ce11 100644 (file)
@@ -12,6 +12,7 @@ Alexandre Alapetite
 AlfredSK
 Andi Stadler
 Andreas H.
+Andreas Neustifter
 Andrej Stieben
 André Alves
 André Lohan
@@ -209,4 +210,4 @@ zotlabs
 zottel
 Zvi ben Yaakov (a.k.a rdc)
 Михаил
-朱陈锬
\ No newline at end of file
+朱陈锬
index 30dbeeff0928150aa92eeb71c1ad5eca20c82c98..9d62cf03061619bd5b5c556a7b2159387f2802c9 100644 (file)
@@ -202,9 +202,17 @@ blockquote.shared_content {
 }
 
 #profile-photo-wrapper {
+  clear: both;
   overflow: hidden;
 }
 
+#newmember-tips {
+  font-size: 1.2em;
+  float: right;
+  margin-top: -32px;
+  padding-right: 10px;
+}
+
 /* headers */
 h1, h2, h3, h4, h5, h6 {
   margin: 5px 0px 5px 0px;
index fe36d4d0e0f614ae7b96d982ce74bb9b12072420..94a320866a57494dcf20b0716c996d913b7cdbb5 100644 (file)
@@ -15,8 +15,8 @@ msgstr ""
 "Project-Id-Version: friendica\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2018-04-22 11:15+0200\n"
-"PO-Revision-Date: 2018-04-22 14:11+0000\n"
-"Last-Translator: fabrixxm <fabrix.xm@gmail.com>\n"
+"PO-Revision-Date: 2018-04-23 13:50+0000\n"
+"Last-Translator: Kris\n"
 "Language-Team: Finnish (Finland) (http://www.transifex.com/Friendica/friendica/language/fi_FI/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -154,7 +154,7 @@ msgstr "[Friendica:Notify] %s merkitsi sinut"
 #: include/enotify.php:197
 #, php-format
 msgid "%1$s tagged you at %2$s"
-msgstr ""
+msgstr "%1$s merkitsi sinut kohteessa %2$s"
 
 #: include/enotify.php:198
 #, php-format
@@ -199,7 +199,7 @@ msgstr "[Friendica:Notify] %s merkitsi julkaisusi"
 #: include/enotify.php:246
 #, php-format
 msgid "%1$s tagged your post at %2$s"
-msgstr ""
+msgstr "%1$s merkitsi julkaisusi kohteessa %2$s"
 
 #: include/enotify.php:247
 #, php-format
@@ -2013,7 +2013,7 @@ msgstr "Tallennetut haut"
 
 #: src/Content/Feature.php:100
 msgid "Save search terms for re-use"
-msgstr ""
+msgstr "Tallenna hakutermit myöhempää käyttöä varten"
 
 #: src/Content/Feature.php:105
 msgid "Network Tabs"
@@ -2069,7 +2069,7 @@ msgstr "Tunnisteet"
 
 #: src/Content/Feature.php:116
 msgid "Ability to tag existing posts"
-msgstr ""
+msgstr "Saa merkitä olemassa olevia julkaisuja"
 
 #: src/Content/Feature.php:117
 msgid "Post Categories"
@@ -2125,7 +2125,7 @@ msgstr "Tunnistepilvi"
 
 #: src/Content/Feature.php:128
 msgid "Provide a personal tag cloud on your profile page"
-msgstr ""
+msgstr "Näytä henkilökohtainen tunnistepilvi profiilisivullasi"
 
 #: src/Content/Feature.php:129
 msgid "Display Membership Date"
@@ -2651,7 +2651,7 @@ msgstr "Yhteisö"
 
 #: src/Content/Nav.php:165
 msgid "Conversations on this and other servers"
-msgstr ""
+msgstr "Keskustelut täällä ja muilla palvelimilla"
 
 #: src/Content/Nav.php:172
 msgid "Directory"
@@ -2659,7 +2659,7 @@ msgstr "Luettelo"
 
 #: src/Content/Nav.php:172
 msgid "People directory"
-msgstr ""
+msgstr "Henkilöluettelo"
 
 #: src/Content/Nav.php:174 mod/admin.php:179
 msgid "Information"
@@ -2985,11 +2985,11 @@ msgstr "kautta"
 
 #: src/Object/Post.php:367
 msgid "Wall-to-Wall"
-msgstr ""
+msgstr "Seinäjulkaisu"
 
 #: src/Object/Post.php:368
 msgid "via Wall-To-Wall:"
-msgstr ""
+msgstr "seinäjulkaisun kautta"
 
 #: src/Object/Post.php:399 src/Object/Post.php:795 mod/photos.php:1490
 #: mod/photos.php:1529 mod/photos.php:1602
@@ -3054,7 +3054,7 @@ msgstr "Video"
 
 #: src/Database/DBStructure.php:32
 msgid "There are no tables on MyISAM."
-msgstr ""
+msgstr "MyISAMissa ei ole taulukoita."
 
 #: src/Database/DBStructure.php:75
 #, php-format
@@ -3392,7 +3392,7 @@ msgstr ""
 #: mod/dirfind.php:49
 #, php-format
 msgid "People Search - %s"
-msgstr ""
+msgstr "Käyttäjähaku - %s"
 
 #: mod/dirfind.php:60
 #, php-format
@@ -4666,7 +4666,7 @@ msgstr "Lähetä julkiset julkaisut kaikille kontakteille:"
 
 #: mod/settings.php:870
 msgid "Action after import:"
-msgstr ""
+msgstr "Toiminta tuonnin jälkeen:"
 
 #: mod/settings.php:870
 msgid "Move to folder"
@@ -4718,7 +4718,7 @@ msgstr "Päivitä selain xx sekunnin välein"
 
 #: mod/settings.php:968
 msgid "Minimum of 10 seconds. Enter -1 to disable it."
-msgstr ""
+msgstr "Vähintään 10 sekuntia. -1 poistaa ominaisuuden käytöstä."
 
 #: mod/settings.php:969
 msgid "Number of items to display per page:"
@@ -4963,11 +4963,11 @@ msgstr ""
 
 #: mod/settings.php:1130
 msgid "Allow friends to tag your posts?"
-msgstr ""
+msgstr "Anna kavereiden lisätä tunnisteita julkaisuusi?"
 
 #: mod/settings.php:1130
 msgid "Your contacts can add additional tags to your posts."
-msgstr ""
+msgstr "Kontaktisi voi lisätä ylimääräisiä tunnisteita julkaisuusi."
 
 #: mod/settings.php:1134
 msgid "Allow us to suggest you as a potential friend to new members?"
@@ -5889,7 +5889,7 @@ msgstr "Worker"
 
 #: mod/admin.php:1355
 msgid "Message Relay"
-msgstr ""
+msgstr "Viestirele"
 
 #: mod/admin.php:1356
 msgid ""
@@ -6059,7 +6059,7 @@ msgstr "Näkyvästi esillä rekisteröitymissivulla. Voit käyttää BBCodeia."
 
 #: mod/admin.php:1380
 msgid "Accounts abandoned after x days"
-msgstr ""
+msgstr "Käyttäjätilit hylätään X päivän jälkeen"
 
 #: mod/admin.php:1380
 msgid ""
@@ -6380,7 +6380,7 @@ msgstr ""
 
 #: mod/admin.php:1417
 msgid "Discover contacts from other servers"
-msgstr ""
+msgstr "Etsi kontakteja muilta palvelimilta"
 
 #: mod/admin.php:1417
 msgid ""
@@ -6441,7 +6441,7 @@ msgstr "Piilota tunnisteet"
 
 #: mod/admin.php:1424
 msgid "Suppress showing a list of hashtags at the end of the posting."
-msgstr ""
+msgstr "Piilota tunnistelista julkaisun lopussa."
 
 #: mod/admin.php:1425
 msgid "Path to item cache"
@@ -6502,7 +6502,7 @@ msgstr ""
 
 #: mod/admin.php:1431
 msgid "Only search in tags"
-msgstr ""
+msgstr "Tunnistehaku"
 
 #: mod/admin.php:1431
 msgid "On large systems the text search can slow down the system extremely."
@@ -6563,7 +6563,7 @@ msgstr ""
 
 #: mod/admin.php:1440
 msgid "Enable frontend worker"
-msgstr ""
+msgstr "Ota Frontend Worker käyttöön"
 
 #: mod/admin.php:1440
 #, php-format
@@ -6577,7 +6577,7 @@ msgstr ""
 
 #: mod/admin.php:1442
 msgid "Subscribe to relay"
-msgstr ""
+msgstr "Relen tilaus"
 
 #: mod/admin.php:1442
 msgid ""
@@ -6587,7 +6587,7 @@ msgstr ""
 
 #: mod/admin.php:1443
 msgid "Relay server"
-msgstr ""
+msgstr "Relepalvelin"
 
 #: mod/admin.php:1443
 msgid ""
@@ -6597,7 +6597,7 @@ msgstr ""
 
 #: mod/admin.php:1444
 msgid "Direct relay transfer"
-msgstr ""
+msgstr "Suora releen siirto"
 
 #: mod/admin.php:1444
 msgid ""
@@ -6606,7 +6606,7 @@ msgstr ""
 
 #: mod/admin.php:1445
 msgid "Relay scope"
-msgstr ""
+msgstr "Relen soveltamisala"
 
 #: mod/admin.php:1445
 msgid ""
@@ -6629,7 +6629,7 @@ msgstr "palvelintunnisteet"
 
 #: mod/admin.php:1446
 msgid "Comma separated list of tags for the 'tags' subscription."
-msgstr ""
+msgstr "Pilkulla erotettu tunnistelista tunnistetilausta varten."
 
 #: mod/admin.php:1447
 msgid "Allow user tags"
@@ -6639,7 +6639,7 @@ msgstr "Salli käyttäjien tunnisteet"
 msgid ""
 "If enabled, the tags from the saved searches will used for the 'tags' "
 "subscription in addition to the 'relay_server_tags'."
-msgstr ""
+msgstr "Jos otettu käyttöön, tunnisteet tallennetuista hauista käytetään tunnistetilaukseen 'relay_server_tags'in lisäksi."
 
 #: mod/admin.php:1475
 msgid "Update has been marked successful"
index 950104c96dd417e0d1a12a4ca3a1d824df7b62ce..89513a7e51c4068763043105fca8d59903e3882c 100644 (file)
@@ -35,7 +35,7 @@ $a->strings["[Friendica:Notify] %s posted to your profile wall"] = "[Friendica:N
 $a->strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s kirjoitti seinällesi kohteessa %2\$s";
 $a->strings["%1\$s posted to [url=%2\$s]your wall[/url]"] = "%1\$s kirjoitti [url=%2\$s]seinällesi[/url]";
 $a->strings["[Friendica:Notify] %s tagged you"] = "[Friendica:Notify] %s merkitsi sinut";
-$a->strings["%1\$s tagged you at %2\$s"] = "";
+$a->strings["%1\$s tagged you at %2\$s"] = "%1\$s merkitsi sinut kohteessa %2\$s";
 $a->strings["%1\$s [url=%2\$s]tagged you[/url]."] = "%1\$s [url=%2\$s]merkitsi sinut[/url].";
 $a->strings["[Friendica:Notify] %s shared a new post"] = "[Friendica:Notify] %s jakoi uuden julkaisun";
 $a->strings["%1\$s shared a new post at %2\$s"] = "";
@@ -44,7 +44,7 @@ $a->strings["[Friendica:Notify] %1\$s poked you"] = "[Friendica:Notify] %1\$s t
 $a->strings["%1\$s poked you at %2\$s"] = "%1\$s tökkäsi sinua kohteessa %2\$s";
 $a->strings["%1\$s [url=%2\$s]poked you[/url]."] = "%1\$s [url=%2\$s]tökkasi sinua[/url].";
 $a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica:Notify] %s merkitsi julkaisusi";
-$a->strings["%1\$s tagged your post at %2\$s"] = "";
+$a->strings["%1\$s tagged your post at %2\$s"] = "%1\$s merkitsi julkaisusi kohteessa %2\$s";
 $a->strings["%1\$s tagged [url=%2\$s]your post[/url]"] = "%1\$s merkitsi [url=%2\$s]julkaisusi[/url]";
 $a->strings["[Friendica:Notify] Introduction received"] = "[Friendica:Notify] Esittely vastaanotettu";
 $a->strings["You've received an introduction from '%1\$s' at %2\$s"] = "Olet vastaanottanut kaverikutsun henkilöltä '%1\$s' kohteessa %2\$s";
@@ -459,7 +459,7 @@ $a->strings["Enable widget to display Network posts only from selected group"] =
 $a->strings["Network Filter"] = "Verkkosuodatin";
 $a->strings["Enable widget to display Network posts only from selected network"] = "";
 $a->strings["Saved Searches"] = "Tallennetut haut";
-$a->strings["Save search terms for re-use"] = "";
+$a->strings["Save search terms for re-use"] = "Tallenna hakutermit myöhempää käyttöä varten";
 $a->strings["Network Tabs"] = "Verkko välilehdet";
 $a->strings["Network Personal Tab"] = "";
 $a->strings["Enable tab to display only Network posts that you've interacted on"] = "";
@@ -473,7 +473,7 @@ $a->strings["Select and delete multiple posts/comments at once"] = "Valitse ja p
 $a->strings["Edit Sent Posts"] = "Muokkaa lähetetyt julkaisut";
 $a->strings["Edit and correct posts and comments after sending"] = "Muokkaa ja korjaa julkaisuja ja kommenteja julkaisun jälkeen";
 $a->strings["Tagging"] = "Tunnisteet";
-$a->strings["Ability to tag existing posts"] = "";
+$a->strings["Ability to tag existing posts"] = "Saa merkitä olemassa olevia julkaisuja";
 $a->strings["Post Categories"] = "Julkaisuluokat";
 $a->strings["Add categories to your posts"] = "Luokittele julkaisusi";
 $a->strings["Saved Folders"] = "Tallennetut kansiot";
@@ -487,7 +487,7 @@ $a->strings["Ability to mute notifications for a thread"] = "";
 $a->strings["Advanced Profile Settings"] = "Profiilin lisäasetukset";
 $a->strings["Show visitors public community forums at the Advanced Profile Page"] = "";
 $a->strings["Tag Cloud"] = "Tunnistepilvi";
-$a->strings["Provide a personal tag cloud on your profile page"] = "";
+$a->strings["Provide a personal tag cloud on your profile page"] = "Näytä henkilökohtainen tunnistepilvi profiilisivullasi";
 $a->strings["Display Membership Date"] = "Näytä liittymispäivämäärä";
 $a->strings["Display membership date in profile"] = "Näytä liittymispäivämäärä profiilissa";
 $a->strings["Export"] = "Vie";
@@ -622,9 +622,9 @@ $a->strings["Apps"] = "Sovellukset";
 $a->strings["Addon applications, utilities, games"] = "Lisäosa sovelluksia, apuohjelmia, pelejä";
 $a->strings["Search site content"] = "Sivustohaku";
 $a->strings["Community"] = "Yhteisö";
-$a->strings["Conversations on this and other servers"] = "";
+$a->strings["Conversations on this and other servers"] = "Keskustelut täällä ja muilla palvelimilla";
 $a->strings["Directory"] = "Luettelo";
-$a->strings["People directory"] = "";
+$a->strings["People directory"] = "Henkilöluettelo";
 $a->strings["Information"] = "Tietoja";
 $a->strings["Information about this friendica instance"] = "Lisätietoja tästä Friendica -instanssista";
 $a->strings["Network"] = "Verkko";
@@ -700,8 +700,8 @@ $a->strings["Share this"] = "Jaa tämä";
 $a->strings["share"] = "jaa";
 $a->strings["to"] = "";
 $a->strings["via"] = "kautta";
-$a->strings["Wall-to-Wall"] = "";
-$a->strings["via Wall-To-Wall:"] = "";
+$a->strings["Wall-to-Wall"] = "Seinäjulkaisu";
+$a->strings["via Wall-To-Wall:"] = "seinäjulkaisun kautta";
 $a->strings["Comment"] = "Kommentti";
 $a->strings["%d comment"] = [
        0 => "%d kommentti",
@@ -717,7 +717,7 @@ $a->strings["Code"] = "Koodi";
 $a->strings["Image"] = "Kuva";
 $a->strings["Link"] = "Linkki";
 $a->strings["Video"] = "Video";
-$a->strings["There are no tables on MyISAM."] = "";
+$a->strings["There are no tables on MyISAM."] = "MyISAMissa ei ole taulukoita.";
 $a->strings["\n\t\t\t\tThe friendica developers released update %s recently,\n\t\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\n\t\t\t\tFriendican kehittäjät askettäin julkaisi %s-päivityksen,\n\t\t\t\tmutta asennuksessa jotain meni pahasti pieleen.\n\t\t\t\tTämä on korjattava pian, ja en voi korjata sitä itse. Ota yhteyttä\n\t\t\t\tFriendica -kehittäjään jos et voi auttaa. Tietokantani saattaa olla virheellinen.";
 $a->strings["The error message is\n[pre]%s[/pre]"] = "Virheviesti on\n[pre]%s[/pre]";
 $a->strings["\nError %d occurred during database update:\n%s\n"] = "\n%d virhe tapahtui tietokannan päivityksen aikana:\n%s\n";
@@ -794,7 +794,7 @@ $a->strings["Find on this site"] = "";
 $a->strings["Results for:"] = "Tulokset haulla:";
 $a->strings["Site Directory"] = "Sivuston luettelo";
 $a->strings["No entries (some entries may be hidden)."] = "";
-$a->strings["People Search - %s"] = "";
+$a->strings["People Search - %s"] = "Käyttäjähaku - %s";
 $a->strings["Forum Search - %s"] = "Foorumihaku - %s";
 $a->strings["No matches"] = "Ei täsmääviä profiileja";
 $a->strings["Resubscribing to OStatus contacts"] = "";
@@ -1091,7 +1091,7 @@ $a->strings["Email login name:"] = "Sähköpostitilin käyttäjätunnus:";
 $a->strings["Email password:"] = "Sähköpostin salasana:";
 $a->strings["Reply-to address:"] = "Vastausosoite:";
 $a->strings["Send public posts to all email contacts:"] = "Lähetä julkiset julkaisut kaikille kontakteille:";
-$a->strings["Action after import:"] = "";
+$a->strings["Action after import:"] = "Toiminta tuonnin jälkeen:";
 $a->strings["Move to folder"] = "Siirrä kansioon";
 $a->strings["Move to folder:"] = "Siirrä kansioon:";
 $a->strings["No special theme for mobile devices"] = "Ei mobiiliteemaa";
@@ -1103,7 +1103,7 @@ $a->strings["Mobile Theme:"] = "Mobiiliteema:";
 $a->strings["Suppress warning of insecure networks"] = "";
 $a->strings["Should the system suppress the warning that the current group contains members of networks that can't receive non public postings."] = "";
 $a->strings["Update browser every xx seconds"] = "Päivitä selain xx sekunnin välein";
-$a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "";
+$a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "Vähintään 10 sekuntia. -1 poistaa ominaisuuden käytöstä.";
 $a->strings["Number of items to display per page:"] = "";
 $a->strings["Maximum of 100 items"] = "Enintään 100 kohdetta";
 $a->strings["Number of items to display per page when viewed from mobile device:"] = "";
@@ -1156,8 +1156,8 @@ $a->strings["Hide your profile details from anonymous viewers?"] = "";
 $a->strings["Anonymous visitors will only see your profile picture, your display name and the nickname you are using on your profile page. Disables posting public messages to Diaspora and other networks."] = "";
 $a->strings["Allow friends to post to your profile page?"] = "Anna kavereiden julkaista profiilisivullasi?";
 $a->strings["Your contacts may write posts on your profile wall. These posts will be distributed to your contacts"] = "";
-$a->strings["Allow friends to tag your posts?"] = "";
-$a->strings["Your contacts can add additional tags to your posts."] = "";
+$a->strings["Allow friends to tag your posts?"] = "Anna kavereiden lisätä tunnisteita julkaisuusi?";
+$a->strings["Your contacts can add additional tags to your posts."] = "Kontaktisi voi lisätä ylimääräisiä tunnisteita julkaisuusi.";
 $a->strings["Allow us to suggest you as a potential friend to new members?"] = "";
 $a->strings["If you like, Friendica may suggest new members to add you as a contact."] = "";
 $a->strings["Permit unknown people to send you private mail?"] = "Salli yksityisviesit tuntemattomilta?";
@@ -1375,7 +1375,7 @@ $a->strings["Policies"] = "Käytännöt";
 $a->strings["Auto Discovered Contact Directory"] = "";
 $a->strings["Performance"] = "Suoritus";
 $a->strings["Worker"] = "Worker";
-$a->strings["Message Relay"] = "";
+$a->strings["Message Relay"] = "Viestirele";
 $a->strings["Relocate - WARNING: advanced function. Could make this server unreachable."] = "";
 $a->strings["Site name"] = "Sivuston nimi";
 $a->strings["Host name"] = "Palvelimen nimi";
@@ -1412,7 +1412,7 @@ $a->strings["Maximum Daily Registrations"] = "Päivittäinen rekisteröitymisraj
 $a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day.  If register is set to closed, this setting has no effect."] = "Mikäli rekisteröityminen on sallittu, tämä asettaa enimmäismäärä uusia rekisteröitymisiä päivässä. Jos reksiteröityminen ei ole sallittu, tällä asetuksella ei ole vaikutusta.";
 $a->strings["Register text"] = "Rekisteröitymisteksti";
 $a->strings["Will be displayed prominently on the registration page. You can use BBCode here."] = "Näkyvästi esillä rekisteröitymissivulla. Voit käyttää BBCodeia.";
-$a->strings["Accounts abandoned after x days"] = "";
+$a->strings["Accounts abandoned after x days"] = "Käyttäjätilit hylätään X päivän jälkeen";
 $a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "";
 $a->strings["Allowed friend domains"] = "Sallittuja kaveri-verkkotunnuksia";
 $a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "";
@@ -1478,7 +1478,7 @@ $a->strings["Periodical check of global contacts"] = "";
 $a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "";
 $a->strings["Days between requery"] = "";
 $a->strings["Number of days after which a server is requeried for his contacts."] = "";
-$a->strings["Discover contacts from other servers"] = "";
+$a->strings["Discover contacts from other servers"] = "Etsi kontakteja muilta palvelimilta";
 $a->strings["Periodically query other servers for contacts. You can choose between 'users': the users on the remote system, 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommened setting is 'Users, Global Contacts'."] = "";
 $a->strings["Timeframe for fetching global contacts"] = "";
 $a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "";
@@ -1489,7 +1489,7 @@ $a->strings["If enabled, general server and usage data will be published. The da
 $a->strings["Check upstream version"] = "";
 $a->strings["Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."] = "";
 $a->strings["Suppress Tags"] = "Piilota tunnisteet";
-$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "";
+$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "Piilota tunnistelista julkaisun lopussa.";
 $a->strings["Path to item cache"] = "";
 $a->strings["The item caches buffers generated bbcode and external images."] = "";
 $a->strings["Cache duration in seconds"] = "";
@@ -1502,7 +1502,7 @@ $a->strings["Base path to installation"] = "Asennuksen peruspolku";
 $a->strings["If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."] = "";
 $a->strings["Disable picture proxy"] = "";
 $a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwith."] = "";
-$a->strings["Only search in tags"] = "";
+$a->strings["Only search in tags"] = "Tunnistehaku";
 $a->strings["On large systems the text search can slow down the system extremely."] = "";
 $a->strings["New base url"] = "Uusi perusosoite";
 $a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "Vaihtaa tämän palvelimen perus-URL-osoitteen. Lähettää uudelleensijoitusviestit käyttäjien kaikille kontakteille Friendicassa ja Diasporassa*.";
@@ -1515,22 +1515,22 @@ $a->strings["Don't use 'proc_open' with the worker"] = "";
 $a->strings["Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."] = "";
 $a->strings["Enable fastlane"] = "Käytä fastlane";
 $a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "";
-$a->strings["Enable frontend worker"] = "";
+$a->strings["Enable frontend worker"] = "Ota Frontend Worker käyttöön";
 $a->strings["When enabled the Worker process is triggered when backend access is performed \\x28e.g. messages being delivered\\x29. On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."] = "";
-$a->strings["Subscribe to relay"] = "";
+$a->strings["Subscribe to relay"] = "Relen tilaus";
 $a->strings["Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page."] = "";
-$a->strings["Relay server"] = "";
+$a->strings["Relay server"] = "Relepalvelin";
 $a->strings["Address of the relay server where public posts should be send to. For example https://relay.diasp.org"] = "";
-$a->strings["Direct relay transfer"] = "";
+$a->strings["Direct relay transfer"] = "Suora releen siirto";
 $a->strings["Enables the direct transfer to other servers without using the relay servers"] = "";
-$a->strings["Relay scope"] = "";
+$a->strings["Relay scope"] = "Relen soveltamisala";
 $a->strings["Can be 'all' or 'tags'. 'all' means that every public post should be received. 'tags' means that only posts with selected tags should be received."] = "";
 $a->strings["all"] = "kaikki";
 $a->strings["tags"] = "tunnisteet";
 $a->strings["Server tags"] = "palvelintunnisteet";
-$a->strings["Comma separated list of tags for the 'tags' subscription."] = "";
+$a->strings["Comma separated list of tags for the 'tags' subscription."] = "Pilkulla erotettu tunnistelista tunnistetilausta varten.";
 $a->strings["Allow user tags"] = "Salli käyttäjien tunnisteet";
-$a->strings["If enabled, the tags from the saved searches will used for the 'tags' subscription in addition to the 'relay_server_tags'."] = "";
+$a->strings["If enabled, the tags from the saved searches will used for the 'tags' subscription in addition to the 'relay_server_tags'."] = "Jos otettu käyttöön, tunnisteet tallennetuista hauista käytetään tunnistetilaukseen 'relay_server_tags'in lisäksi.";
 $a->strings["Update has been marked successful"] = "";
 $a->strings["Database structure update %s was successfully applied."] = "Tietokannan rakenteen %s-päivitys onnistui.";
 $a->strings["Executing of database structure update %s failed with error: %s"] = "Tietokannan rakennepäivitys %s epäonnistui virheviestillä %s";
index 6fd8539c5acc45289f3ed04f61fa85329d1e14e6..2087635e4fb34c42b8b9b7e4f62448c1a222b750 100644 (file)
@@ -1,31 +1,18 @@
 
 <form action="invite" method="post" id="invite-form" >
 
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+       <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
 
-<div id="invite-wrapper">
+       <div id="invite-wrapper">
 
-<h3>{{$invite}}</h3>
+               <h3>{{$title}}</h3>
 
-<div id="invite-recipient-text">
-{{$addr_text}}
-</div>
+               {{include file="field_textarea.tpl" field=$recipients}}
+               {{include file="field_textarea.tpl" field=$message}}
 
-<div id="invite-recipient-textarea">
-<textarea id="invite-recipients" name="recipients" rows="8" cols="32" ></textarea>
-</div>
+               <div id="invite-submit-wrapper">
+                       <input type="submit" name="submit" value="{{$submit|escape:'html'}}" />
+               </div>
 
-<div id="invite-message-text">
-{{$msg_text}}
-</div>
-
-<div id="invite-message-textarea">
-<textarea id="invite-message" name="message" rows="10" cols="72" >{{$default_message}}</textarea>
-</div>
-
-<div id="invite-submit-wrapper">
-<input type="submit" name="submit" value="{{$submit|escape:'html'}}" />
-</div>
-
-</div>
+       </div>
 </form>
index fcd580b0715aede0b680bb4aa8062e8cdcfa53f8..ee9a1cc3302ccf841a2afb30d60775de6e1e8ff3 100644 (file)
@@ -1,5 +1,5 @@
+{{if $pager && ($pager.prev || $pager.next)}}\r
 <div class="pager">\r
-       {{if $pager}}\r
        {{if $pager.prev}}<span class="pager_prev {{$pager.prev.class}}"><a href="{{$pager.prev.url}}">{{$pager.prev.text}}</a></span>{{/if}}\r
 \r
        {{if $pager.first}}<span class="pager_first {{$pager.first.class}}"><a href="{{$pager.first.url}}">{{$pager.first.text}}</a></span>{{/if}}\r
@@ -9,5 +9,5 @@
        {{if $pager.last}}&nbsp;<span class="pager_last {{$pager.last.class}}"><a href="{{$pager.last.url}}">{{$pager.last.text}}</a></span>{{/if}}\r
 \r
        {{if $pager.next}}<span class="pager_next {{$pager.next.class}}"><a href="{{$pager.next.url}}">{{$pager.next.text}}</a></span>{{/if}}\r
-       {{/if}}\r
 </div>\r
+{{/if}}\r
index 481bdd71e00016685b766cef9080858316fb68a9..67f7a8086ba9c3efe368388542607a53163abb2d 100644 (file)
@@ -1,16 +1,17 @@
 
 <div id="peoplefind-sidebar" class="widget">
-       <h3>{{$findpeople}}</h3>
-       <div id="peoplefind-desc">{{$desc}}</div>
+       <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="{{$hint|escape:'html'}}" /><input id="side-peoplefind-submit" type="submit" name="submit" value="{{$findthem|escape:'html'}}" />
+               <input id="side-peoplefind-url" type="text" name="search" size="24" title="{{$nv.hint|escape:'html'}}" /><input id="side-peoplefind-submit" type="submit" name="submit" value="{{$nv.findthem|escape:'html'}}" />
        </form>
-       <div class="side-link" id="side-match-link"><a href="match" >{{$similar}}</a></div>
-       <div class="side-link" id="side-suggest-link"><a href="suggest" >{{$suggest}}</a></div>
-       <div class="side-link" id="side-directory-link"><a href="{{$global_dir}}" target="extlink" >{{$directory}}</a></div>
-       <div class="side-link" id="side-random-profile-link" ><a href="randprof" target="extlink" >{{$random}}</a></div>
-       {{if $inv}} 
-       <div class="side-link" id="side-invite-link" ><a href="invite" >{{$inv}}</a></div>
+       <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>
 
index 1614547b85d411b8b69540b97da67798e555864d..8a3ca862916ce05f7de56465d817efda1b9566d3 100644 (file)
@@ -2118,7 +2118,7 @@ ul.dropdown-menu li:hover {
 #adminpage, .delegate-content-wrapper, .uexport-content-wrapper,
 .viewcontacts-content-wrapper, .dfrn_request-content-wrapper,
 .friendica-content-wrapper, .credits-content-wrapper, .nogroup-content-wrapper,
-.profperm-content-wrapper {
+.profperm-content-wrapper, .invite-content-wrapper {
     min-height: calc(100vh - 150px);
     padding: 15px;
     padding-bottom: 20px;
index 56df75d7b68269fa5ea9ced61d7ad80b0e1998eb..46bb1e5143819306de62c3d93c60a81487bb8928 100644 (file)
@@ -207,6 +207,10 @@ function addToModal(url) {
                                //Get first element with the class "heading"
                                //and use it as title.
                                loadModalTitle();
+
+                               // We need to initialize autosize again for new
+                               // modal conent.
+                               autosize($('.modal .text-autosize'));
                        }
                });
 }
diff --git a/view/theme/frio/templates/invite.tpl b/view/theme/frio/templates/invite.tpl
new file mode 100644 (file)
index 0000000..9ff2024
--- /dev/null
@@ -0,0 +1,19 @@
+
+<div id="invite-wrapper">
+
+       <h3 class="heading">{{$title}}</h3>
+
+       <form action="invite" method="post" id="invite-form" >
+               <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+
+               <div id="invite-content-wrapper">
+                       {{include file="field_textarea.tpl" field=$recipients}}
+                       {{include file="field_textarea.tpl" field=$message}}
+
+                       <div id="invite-submit-wrapper" class="form-group pull-right">
+                               <button type="submit" name="submit" class="btn btn-primary">{{$submit|escape:'html'}}</button>
+                       </div>
+                       <div class="clear"></div>
+               </div>
+       </form>
+</div>
index 5a84f26c8f09e061a284f58b699f2c19ebd53349..21b3e47e839fae395dd7d51a03c698f21037d55c 100644 (file)
@@ -1,22 +1,23 @@
-
 <div id="peoplefind-sidebar" class="widget">
-       <h3>{{$findpeople}}</h3>
+       <h3>{{$nv.findpeople}}</h3>
 
        <form action="dirfind" method="get">
                {{* The search field *}}
-               <label for="side-peoplefind-url" id="peoplefind-desc">{{$desc}}</label>
+               <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="{{$hint|escape:'html'}}" />
-                       <button id="side-peoplefind-submit" class="btn btn-default btn-sm form-button-search" type="submit">{{$findthem}}</button>
+                       <input id="side-peoplefind-url" class="search-input form-control form-search" type="text" name="search" data-toggle="tooltip" title="{{$nv.hint|escape:'html'}}" />
+                       <button id="side-peoplefind-submit" class="btn btn-default btn-sm form-button-search" type="submit">{{$nv.findthem|escape: 'html'}}</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" >{{$similar}}</a></div>
-       <div class="side-link" id="side-suggest-link"><a href="suggest" >{{$suggest}}</a></div>
+       <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 $inv}} 
-       <div class="side-link" id="side-invite-link" ><a href="invite" >{{$inv}}</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>
-
index 507b4b5709f4db7e88394f29e07ae7e31ccac58a..ba10b16021959413ad77b3b2dcadd8e53198788f 100644 (file)
@@ -1153,9 +1153,9 @@ aside #profiles-menu {
   left: 10px;
 }
 
-aside #search-text, aside #side-follow-url, aside #side-peoplefind-url, right_aside input {
-  width: 140px;
-  height: 17px;
+aside #search-text, aside #side-follow-url, aside #side-peoplefind-url, right_aside #side-peoplefind-url { 
+  width: 65%;
+  float: left;
   padding-left: 10px;
   /*border-top-left-radius: 15px;
   border-top-right-radius: 15px;
@@ -1167,6 +1167,15 @@ aside #search-text, aside #side-follow-url, aside #side-peoplefind-url, right_as
   -moz-border-right-colors: #dbdbdb;*/
 }
 
+aside #side-peoplefind-submit, right_aside #side-peoplefind-submit {
+  width: 25%;
+  float: right;
+}
+
+#side-match-link {
+  clear: both;
+}
+
 aside h4, right_aside h4 {
   margin-bottom: 0px;
   margin-top: 0px;
@@ -3332,7 +3341,10 @@ img.photo-album-photo {
 .videos .video-top-wrapper:hover .video-delete {
   opacity: 1;
 }
-
+/* invite page */
+#invite-wrapper textarea {
+  width: 100%;
+}
 /* upload/select popup */
   fbrowser.image .photo-album-image-wrapper { margin-left: 10px; }
   #message-preview { margin-top: 15px; }
index a85b4419f8001e21c5939f328fffa872774cbb90..b32b63804223409c22c247699dc445e389ff2c0d 100644 (file)
 {{/if}}
 
 {{if $nv}}
-<div id="right_friends" class="widget">
-<h3>{{$nv.title.1}}</h3>
-<ul role="menu">
-<li class="tool" role="menuitem"><a class="{{$nv.directory.2}}" href="{{$nv.directory.0}}" title="{{$nv.directory.3}}" >{{$nv.directory.1}}</a></li>
-<li class="tool" role="menuitem"><a class="{{$nv.global_directory.2}}" href="{{$nv.global_directory.0}}" target="blank" title="{{$nv.global_directory.3}}" >{{$nv.global_directory.1}}</a></li>
-<li class="tool" role="menuitem"><a class="{{$nv.match.2}}" href="{{$nv.match.0}}" title="{{$nv.match.3}}" >{{$nv.match.1}}</a></li>
-<li class="tool" role="menuitem"><a class="{{$nv.suggest.2}}" href="{{$nv.suggest.0}}" title="{{$nv.suggest.3}}" >{{$nv.suggest.1}}</a></li>
-<li class="tool" role="menuitem"><a class="{{$nv.invite.2}}" href="{{$nv.invite.0}}" title="{{$nv.invite.3}}" >{{$nv.invite.1}}</a></li>
-</ul>
-{{$nv.search}}
-</div>
+{{include file='peoplefind.tpl' nv=$nv}}
 {{/if}}
 
 {{if $lastusers_title}}
index e758cb65158bd915b550e4ce2cfba95cad486b14..c7525946535c48532b72c2cae86445e2bff12212 100644 (file)
@@ -196,19 +196,18 @@ function vier_community_info()
        //right_aside FIND FRIENDS
        if ($show_friends && local_user()) {
                $nv = [];
-               $nv['title'] = ["", L10n::t('Find Friends'), "", ""];
-               $nv['directory'] = ['directory', L10n::t('Local Directory'), "", ""];
-               $nv['global_directory'] = [get_server(), L10n::t('Global Directory'), "", ""];
-               $nv['match'] = ['match', L10n::t('Similar Interests'), "", ""];
-               $nv['suggest'] = ['suggest', L10n::t('Friend Suggestions'), "", ""];
-               $nv['invite'] = ['invite', L10n::t('Invite Friends'), "", ""];
-
-               $nv['search'] = '<form name="simple_bar" method="get" action="dirfind">
-                                               <span class="sbox_l"></span>
-                                               <span class="sbox">
-                                               <input type="text" name="search" size="13" maxlength="50">
-                                               </span>
-                                               <span class="sbox_r" id="srch_clear"></span>';
+               $nv['findpeople'] = L10n::t('Find People');
+               $nv['desc'] = L10n::t('Enter name or interest');
+               $nv['label'] = L10n::t('Connect/Follow');
+               $nv['hint'] = L10n::t('Examples: Robert Morgenstein, Fishing');
+               $nv['findthem'] = L10n::t('Find');
+               $nv['suggest'] = L10n::t('Friend Suggestions');
+               $nv['similar'] = L10n::t('Similar Interests');
+               $nv['random'] = L10n::t('Random Profile');
+               $nv['inv'] = L10n::t('Invite Friends');
+               $nv['directory'] = L10n::t('Global Directory');
+               $nv['global_dir'] = get_server();
+               $nv['local_directory'] = L10n::t('Local Directory');
 
                $aside['$nv'] = $nv;
        }