_binary From 03467d32380fb8a7e8bbf189f35198d48498ecac Mon Sep 17 00:00:00 2001
From: Anirudh Mallya <anirudh.mallya09@gmail.com>
Date: Wed, 3 Nov 2021 20:43:16 -0700
Subject: [PATCH] direct messaging, a=aniruddha

---
 src/controllers/GroupController.php           |   10 +-
 .../components/SocialComponent.php            |  114 +-
 src/css/search.css                            |  117 +-
 src/index.php                                 |   22 +-
 src/locale/en_US/configure.ini                | 2643 +++++++++--------
 src/models/GroupModel.php                     |   98 +-
 src/views/elements/ChatfeedElement.php        |  891 ++++++
 src/views/elements/GroupfeedElement.php       |   42 +-
 8 files changed, 2590 insertions(+), 1347 deletions(-)
 create mode 100644 src/views/elements/ChatfeedElement.php

diff --git a/src/controllers/GroupController.php b/src/controllers/GroupController.php
index 10bce3c0f..cdc674e77 100644
--- a/src/controllers/GroupController.php
+++ b/src/controllers/GroupController.php
@@ -123,6 +123,14 @@ class GroupController extends Controller implements CrawlConstants
             $this->setupViewFormatOutput($_REQUEST['f'], $view, $data);
         }
         $_SESSION['REMOTE_ADDR'] = L\remoteAddress();
+        if (isset($data['SUBTITLE']) &&
+        str_contains($data['SUBTITLE'], "Personal\$")) {
+            $data['SUBTITLE'] = "Chats";
+        }
+        if (isset($data['GROUP_NAME'])  &&
+        str_contains($data['GROUP_NAME'], "Personal\$")) {
+            $data['GROUP_NAME'] = "Chats";
+        }
         $this->displayView($view, $data);
     }
     /**
@@ -239,4 +247,4 @@ class GroupController extends Controller implements CrawlConstants
                 \seekquarry\yioop\library\webExit();
         }
     }
-}
+}
\ No newline at end of file
diff --git a/src/controllers/components/SocialComponent.php b/src/controllers/components/SocialComponent.php
index beca27296..e9d0c24d5 100644
--- a/src/controllers/components/SocialComponent.php
+++ b/src/controllers/components/SocialComponent.php
@@ -1339,6 +1339,49 @@ class SocialComponent extends Component implements CrawlConstants
                 $$field = $tmp;
             }
         }
+        $chats_id = $group_model->getGroupId("Personal\$" . $user_id);
+        $data['CHATS_ID'] = $chats_id;
+        if (isset($_REQUEST['connect_with'])) {
+            $group_model->addUserGroup($_REQUEST['connect_with'],
+                $data['CHATS_ID']);
+            $connected_username = $group_model->
+                getUserName($_REQUEST['connect_with']);
+        }
+        $friendsList = $group_model->getPersonalGroupUsers($data['CHATS_ID']);
+        $data['TO_CONNECT'] = $friendsList;
+        $data['FRIENDS'] = [];
+        foreach ($data['TO_CONNECT'] as $friend_id) {
+            $friend_group = $group_model->getPersonalGroupId($friend_id);
+            $friendsOfFriend = $group_model->getPersonalGroupUsers($friend_group);
+            if (in_array($user_id, $friendsOfFriend)) {
+                array_push($data['FRIENDS'], $friend_id);
+            }
+            if (isset($_REQUEST['connect_with']) &&
+                in_array($_REQUEST['connect_with'], $friendsOfFriend) &&
+                $_REQUEST['connect_with'] == $friend_id) {
+                $existing_parent_id = $group_model->getGroupThreadItem($friend_id,
+                    $username);
+                $thread_id = $group_model->addGroupItem($existing_parent_id,
+                        $data['CHATS_ID'], $user_id, $connected_username, "");
+            } elseif (isset($_REQUEST['connect_with']) &&
+                $_REQUEST['connect_with'] == $friend_id) {
+                $thread_id = $group_model->addGroupItem(0,
+                        $data['CHATS_ID'], $user_id, $connected_username, "");
+            }
+        }
+        if ((isset($_REQUEST['just_group_id']) &&
+                $data['CHATS_ID'] == $_REQUEST['just_group_id']) ||
+            (isset($group_item['GROUP_ID']) &&
+                $data['CHATS_ID'] == $group_item['GROUP_ID']) ||
+            (isset($_REQUEST['just_thread']) &&
+                $data['CHATS_ID'] == $_REQUEST['group_id']))  {
+            $data["ELEMENT"] = "chatfeed";
+            if (isset($_REQUEST['just_thread']) ) {
+                $group_item = $group_model->getGroupItem($_REQUEST['just_thread']);
+            } else {
+                $group_item = $group_model->getGroupItem($data['CHATS_ID'], true);
+            }
+        }
         $possible_arguments = ["addcomment", "addgroup", "deletepost",
             "downvote", "newthread", "status", "updatepost",  "upvote"];
         if (isset($_REQUEST['arg']) &&
@@ -1402,6 +1445,23 @@ class SocialComponent extends Component implements CrawlConstants
                     $title = "-- " . $parent_item['TITLE'];
                     $id = $group_model->addGroupItem($parent_item["ID"],
                         $group_id, $user_id, $title, $description);
+                    $friend_check = $group_model->
+                        uniqueThreadUsers($parent_item["ID"]);
+                    if (count($friend_check) > 1) {
+                        foreach ($friend_check as $friend_id) {
+                            if ($friend_id != $user_id) {
+                                $friend_personal_id = $group_model->
+                                    getPersonalGroupId($friend_id);
+                                $connected_username = $group_model->
+                                    getUserName($friend_id);
+                                $id2 =  $group_model->
+                                    addGroupItem($parent_item["ID"],
+                                    $friend_personal_id, $friend_id,
+                                        $connected_username, $description);
+                            }
+                        }
+
+                    }
                     list($bots_called, $post_parts) =
                         $this->getRequestedBots($group_id, $description);
                     $result = $this->handleResourceUploads(
@@ -1442,8 +1502,13 @@ class SocialComponent extends Component implements CrawlConstants
                     }
                     $this->addAnyBotResponses($parent_item["ID"], $group_id,
                         $bots_called, $title, $post_parts);
-                    return $parent->redirectWithMessage(
-                        tl('social_component_comment_added'), ['page_name']);
+                    if ($data['CHATS_ID'] == $_REQUEST['group_id']) {
+                        return $parent->redirectWithMessage(
+                            "", ['page_name']);;
+                    } else {
+                        return $parent->redirectWithMessage(
+                            tl('social_component_comment_added'), ['page_name']);
+                    }
                     break;
                 case "addgroup":
                     if ($_SESSION['USER_ID'] == C\PUBLIC_USER_ID) {
@@ -1816,11 +1881,20 @@ class SocialComponent extends Component implements CrawlConstants
                     C\GROUP_IMPRESSION);
             }
         }
-        $search_array = [
-            ["parent_id", "=", $just_thread, ""],
-            ["group_id", "=", $just_group_id, ""],
-            ["user_id", "=", $just_user_id, ""],
-            $pub_clause];
+        if ($just_thread && $just_group_id) {
+            $search_array = [
+                ["parent_id", "=", 0, ""],
+                ["group_id", "=", $just_group_id, ""],
+                ["user_id", "=", $just_user_id, ""],
+                ['pub_date', "=", "", "DESC"]];
+                $sort = "krsort";
+        } else {
+            $search_array = [
+                ["parent_id", "=", $just_thread, ""],
+                ["group_id", "=", $just_group_id, ""],
+                ["user_id", "=", $just_user_id, ""],
+                $pub_clause];
+        }
         $for_group = ($just_group_id) ? $just_group_id : (($just_thread) ?
             -2 : -1);
         if (!empty($just_thread) ) {
@@ -1964,7 +2038,24 @@ class SocialComponent extends Component implements CrawlConstants
                 \seekquarry\yioop\library\webExit();
             }
         }
-        $data['PAGES'] = array_values($pages);
+        if ($data['ELEMENT'] == "chatfeed") {
+            $item_count1 = 0;
+            $pages1 = [];
+            $friend_check = $group_model->
+                uniqueThreadUsers($group_item['PARENT_ID'], true);
+            if ($friend_check > 1) {
+                $for_group = (($just_thread) ? -2 : -1);
+                $search_array[0] = ["parent_id", "=", $group_item['PARENT_ID'],""];
+                $search_array[1] = ["group_id", "=", $data["CHATS_ID"], ""];
+                list($item_count1, $pages1) = $this->initializeFeedItems($data, [],
+                    $user_id, $search_array, $for_group, $sort, $limit,
+                    $results_per_page);
+            }
+            $data['PAGES'][0] = array_values($pages);
+            $data['PAGES'][1] = array_values($pages1);
+        } else {
+            $data['PAGES'] = array_values($pages);
+        }
         $data['LIMIT'] = $limit;
         $this->initializeWikiEditor($data, -1);
         return $data;
@@ -2190,7 +2281,8 @@ class SocialComponent extends Component implements CrawlConstants
         $item_count = $group_model->getGroupItemCount($search_array, $user_id,
             $for_group);
         $updatable = false;
-        if (!empty($data["JUST_THREAD"]) && $data["JUST_THREAD"] >= 0) {
+        if (!empty($data["JUST_THREAD"]) && $data["JUST_THREAD"] >= 0
+            && !$data["GROUP_ID"]) {
             $display_message = $_SESSION['DISPLAY_MESSAGE'] ?? "";
             $is_wiki = !empty($data["HEAD"]['page_type']) &&
                 $data["HEAD"]['page_type'] == 'page_and_feedback';
@@ -3900,7 +3992,7 @@ EOD;
         } else if (isset($_REQUEST['resource_description'])) {
             $resource_description = $parent->clean(
                 $_REQUEST['resource_description'], "string");
-            if(!($resource_name = $parent->clean(urldecode($_REQUEST['n']?? ""),
+            if (!($resource_name = $parent->clean(urldecode($_REQUEST['n']?? ""),
                 "file_name"))) {
                 return $parent->redirectWithMessage(
                     tl('social_component_resource_description_file_error'),
@@ -4681,4 +4773,4 @@ EOD;
             }
 EOD;
     }
-}
+}
\ No newline at end of file
diff --git a/src/css/search.css b/src/css/search.css
index 788b60479..b7ca446f6 100755
--- a/src/css/search.css
+++ b/src/css/search.css
@@ -948,7 +948,6 @@ body.mobile
     margin: 0;
     min-width:9.5in; /* making width values larger will
                 affect help visibility */
-    max-width:11in;
     padding: 0;
 }
 .mobile .body-container
@@ -3857,8 +3856,8 @@ table.wikitable > caption
     width:150px;
 }
 /*
-  Styles for the classifiers settings pages
- */
+Styles for the classifiers settings pages
+*/
 #update-accuracy.disabled
 {
     color: #555;
@@ -4300,3 +4299,115 @@ h2.trending option
     list-style-type: none;
     margin-top:10px;
 }
+.small-margin-current-activity-large
+{
+    font-size: 16pt;
+    margin: auto;
+    min-height: 6.5in;
+    min-width: 9in;
+    padding-left: 0.1in;
+    padding-right: 0.1in;
+    padding-bottom: 0.1in;
+    position: relative;
+    top: 15px;
+}
+/* Chat thread related css */
+.box {
+    padding: 10px;
+    border: 1px solid lightslategray;
+    border-radius: 10px;
+    width: 30%;
+    box-shadow: 0px 0px 2px 2px #ccc;
+    min-height:24px;
+    font-size: 14px;
+    margin-top:8px;
+    overflow: scroll;
+}
+.chat-thread-date {
+    font-size: 9px;
+    float: right;
+    margin-right: 15px;
+    opacity: 0.65;
+    color: lightslategray;
+    font-weight: bold;
+}
+
+/* user thread list of chats */
+.user-card-icon-img{
+    padding-top: 0px !important;
+}
+.user-card-sep {
+    margin-left:10px;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    opacity: 0.6;
+}
+.user-card {
+    margin-left:10px;
+    padding-top: 10px;
+}
+.user-card:hover {
+    background-color: #fcfcf5;
+    transition: 0.5s ease;
+}
+.user-card-icon {
+    margin-left:15px;
+    display:inline-block;
+    vertical-align:top;
+    padding-bottom: 10px;
+}
+.user-card-name {
+    font-size: 16px;
+    margin-left:20px;
+    display:inline-block;
+    padding-bottom: 10px;
+}
+.user-card-selected {
+    background-color: beige;
+}
+.box.right {
+    margin-left: 10%;
+}
+.comment-area {
+    height: 0.25in !important;
+    border-radius: 15px;
+    font-size: 14px;
+    padding-top: 8px;
+    padding-left: 10px;
+    padding-right: 10px;
+    margin-top: 30px;
+    display: inline-block;
+}
+.send-icons:hover {
+    opacity: 0.5;
+    transition: 0.5s ease;
+}
+.user-card-container {
+    width:20%;
+    /* display:inline-block; */
+    padding-right:4%;
+    border-right:1px solid black;
+    position:fixed;
+    overflow-y:scroll;
+    overflow-x:hidden;
+}
+.user-chats-container {
+    width:70%;
+    /* display:inline-grid; */
+    height:70%;
+    overflow:hidden;
+    margin-left: 30%;
+}
+.friend-request-warning {
+    color: #856404;
+    background-color: #fff3cd;
+    border-color: #ffeeba;
+    border: 1px solid transparent;
+    border-radius: .25rem;
+    padding: 10px;
+    width: fit-content;
+    text-align: center;
+}
+.chats {
+    margin-left:32%;
+}
\ No newline at end of file
diff --git a/src/index.php b/src/index.php
index b7d3ae4d0..713ff6313 100644
--- a/src/index.php
+++ b/src/index.php
@@ -298,7 +298,13 @@ function configureRewrites($web_site)
         }
         $request_script = substr($request_script, strlen($script_path));
     }
-    $request_script = ($request_script == "") ? $index_php : $request_script;
+    if (!empty($_SERVER['QUERY_STRING']) && isset($_REQUEST['just_thread']) &&
+        isset($_REQUEST['group_id'])) {
+            $request_script = "group/" . $_REQUEST['group_id'] . "$" .
+                $_REQUEST['just_thread'];
+    } else {
+        $request_script = ($request_script == "") ? $index_php : $request_script;
+    }
     if (in_array($request_script, ['', '/', $index_php])) {
         return;
     }
@@ -357,7 +363,7 @@ function routeAppFile($route_args)
         $_REQUEST['n'] = 'user_icon.jpg';
         $_REQUEST['route']['n'] = true;
         return true;
-    } else if(in_array($route_args[1], ['css', 'scripts', 'locale'])) {
+    } else if (in_array($route_args[1], ['css', 'scripts', 'locale'])) {
         $_REQUEST['route']['f'] = true;
         $_REQUEST['f'] = $route_args[1];
         $_REQUEST['route']['n'] = true;
@@ -497,6 +503,11 @@ function routeBlog($route_args)
 function routeFeeds($route_args)
 {
     $handled = true;
+    $tmp = "";
+    if (isset($route_args[1]) && strpos($route_args[1], "\$") !== false) {
+        $tmp = explode("\$", $route_args[1]);
+        $route_args[1] = $tmp[0];
+    }
     if (isset($route_args[1]) && $route_args[1] == intval($route_args[1])) {
         $_REQUEST['c'] = "group";
         if (!empty($route_args[2])) {
@@ -527,6 +538,11 @@ function routeFeeds($route_args)
         } else {
             $just_id = "just_" . $route_args[0] . $end;
             $_REQUEST[$just_id] = $route_args[1];
+            if (!empty($tmp[1]) && is_numeric($tmp[1])){
+                $_REQUEST['just_thread'] = $tmp[1];
+            } elseif (!empty($tmp[1]) && !is_numeric($tmp[1])) {
+                $_REQUEST['connect_with'] = $tmp[2];
+            }
             $_REQUEST['route'][$just_id] = true;
         }
     } else if (!isset($route_args[1])) {
@@ -826,4 +842,4 @@ if (php_sapi_name() != 'cli' &&
     require_once __DIR__ . "/library/Utility.php";
     $web_site =  new L\WebSite();
     bootstrap($web_site);
-}
+}
\ No newline at end of file
diff --git a/src/locale/en_US/configure.ini b/src/locale/en_US/configure.ini
index f60f1b34d..bc556a967 100644
--- a/src/locale/en_US/configure.ini
+++ b/src/locale/en_US/configure.ini
@@ -58,300 +58,106 @@ admin_controller_no_sort = "No sort"
 admin_controller_sort_ascending = "Ascending"
 admin_controller_sort_descending = "Descending"
 ;
-; StaticController.php
-static_controller_logout_successful = "Logout Successful"
-static_controller_complete_title = "Yioop - %s"
-enter_vr = "Enter VR"
-exit_vr = "Exit VR"
-;
-; Controller.php
-search_controller_logout_successful = "Logout Successful!!"
-controller_restart_server = "Restarting Server..."
-;
-; SearchController.php
-search_controller_web = "Web"
-search_controller_continuous = "Continuous"
-search_controller_allsizes = "All"
-search_controller_tiny = "Tiny"
-search_controller_small = "Small"
-search_controller_medium = "Medium"
-search_controller_large = "Large"
-search_controller_zeromin = "0m"
-search_controller_fivemin = "5m"
-search_controller_tenmin = "10m"
-search_controller_fifteenmin = "15m"
-search_controller_halfhour = "30m"
-search_controller_onehour = "1hr"
-search_controller_twohour = "2hrs"
-search_controller_alllengths = "All"
-search_controller_all = "All"
-search_controller_today = "Today"
-search_controller_this_week = "This week"
-search_controller_this_month = "This month"
-search_controller_this_year = "This Year"
-settings_controller_settings_saved = "Settings Saved!"
-search_controller_no_trend_category = "Trend Category %s Does Not Exists!"
-search_controller_mix_info = "Using Crawl Mix: %s"
-search_controller_crawl_info = "Index: %s -- Size: %s pages/%s urls"
-search_controller_search = "Search"
-search_controller_end_results = "End of Results"
-search_controller_searchmenu = "Search Menu"
-search_controller_no_index_set = "No Search Index Set For Use!"
-search_controller_get_keyword_ads = "Advertise for %s"
-search_controller_ad_keyword_description = "Do keyword advertising on Yioop!"
-search_controller_download_fetcher = "Download Fetcher: %s"
-search_controller_no_archive_page = "The website in question has requested this page not be archived."
-search_controller_site_cache = "Yioop Cache"
-search_controller_original_page = "This image appeared on the page:"
-search_controller_extracted_title = "Extracted Title"
-search_controller_extracted_description = "Extracted Description"
-search_controller_extracted_links = "Extracted Links"
-search_controller_extracted_allow_paths = "Extracted Allowed To Crawl Paths"
-search_controller_extracted_disallow_paths = "Extracted Disallowed To Crawl Paths"
-search_controller_crawl_delay = "YioopBot Crawl Delay"
-search_controller_extracted_meta_words = "Extracted Meta Words"
-search_controller_extracted_q_a_s = "Extracted Question Answer Triplets"
-search_controller_cache_comment = "Yioop Cache Page... This page has been modified to add a robots directive,  make links absolute, add extracted summaries, and to highlight query terms."
-search_controller_cached_version = "This cached version of %s was obtained by the Yioop crawler on %s."
-search_controller_header_summaries = "Toggle Extracted Headers and Summaries"
-search_controller_history = "Toggle History"
-search_controller_all_cached = "All Cached Versions - Change Year and/or Months to see Links"
-search_controller_year = "Year:"
-search_controller_month = "Month:"
+; /src/controllers/components
 ;
-; MachineController.php
-machine_controller_nolines = "No Lines Match Filter!"
+; AccountaccessComponent.php
+accountaccess_component_no_posts_yet = "No Posts Yet"
+accountaccess_component_passwords_too_long = "Password is too long!"
+accountaccess_component_passwords_dont_match = "Typed passwords do not match."
+accountaccess_component_invalid_password = "Invalid Password!"
+accountaccess_component_unknown_imagetype = "Unknown Image File Type!"
+accountaccess_component_icon_too_big = "Icon File Too Big!"
+accountaccess_component_no_user_folder = "User Folder Could Not be Created!"
+accountaccess_component_user_updated = "User Updated"
+accountaccess_component_active_status = "Active"
+accountaccess_component_inactive_status = "Inactive"
+accountaccess_component_suspended_status = "Suspended"
+accountaccess_component_request_join = "Pending"
+accountaccess_component_invited = "Invited"
+accountaccess_component_invalid_username = "Invalid Username!"
+accountaccess_component_user_exists = "User Already Exists!"
+accountaccess_component_user_added = "User Added"
+accountaccess_component_user_doesnt_exist = "Can&#039;t edit -- that username doesn&#039;t exist!"
+accountaccess_component_cant_edit_public_user = "Cannot Edit Public User!"
+accountaccess_component_user_filter_group = "Filtering by Group!"
+accountaccess_component_user_filter_role = "Filtering by Role!"
+accountaccess_component_username_doesnt_exists = "Username Does Not Exist"
+accountaccess_component_cant_delete_builtin = "Cannot Delete Built-in User!"
+accountaccess_component_user_deleted = "User Deleted"
+accountaccess_component_rolename_doesnt_exists = "Role Name Does not Exist"
+accountaccess_component_rolename_already_added = "Role Name Already Added!"
+accountaccess_component_rolename_added = "Role Name Added"
+accountaccess_component_groupname_doesnt_exists = "Group Name does not exists"
+accountaccess_component_groupname_already_added = "Group Name Already Added!"
+accountaccess_component_groupname_added = "Group Name Added"
+accountaccess_component_rolename_deleted = "Role Name Deleted"
+accountaccess_component_rolenames_deleted = "Roles Deleted"
+accountaccess_component_group_deleted = "Group Deleted"
+accountaccess_component_groups_deleted = "Groups Deleted"
+accountaccess_component_userstatus_updated = "User Status Updated"
+accountaccess_component_add_roleactivity = "Add Activity Role"
+accountaccess_component_activity_added = "Activity Added"
+accountaccess_component_rolename_exists = "Role Name Exists"
+accountaccess_component_rolename_blank = "Role Name Blank!"
+accountaccess_component_activity_deleted = "Activity Deleted"
+accountaccess_component_role_updated = "Role updated!"
 ;
-; GroupController.php
-group_controller_groupmenu = "Group Menu"
+; ChatbotComponent.php
+chatbot_component_bot_lookup_error = "Pattern Lookup Error!"
+chatbot_component_max_patterns_exceeded = "Maximum Chat Bot Patterns Exceeded"
+chatbot_component_missing_required = "Missing Required Fields (Request)!"
+chatbot_component_pattern_added = "Pattern Added!"
+chatbot_component_pattern_updated = "Pattern Updated!"
+chatbot_component_no_delete_pattern = "Could not find pattern id, pattern not deleted!"
+chatbot_component_pattern_deleted = "Pattern Deleted!"
 ;
-; /src/controllers/components
+; Component.php
+wiki_js_small = "Small"
+wiki_js_medium = "Medium"
+wiki_js_large = "Large"
+wiki_js_search_size = "Size"
+wiki_js_prompt_heading = "Header row:"
+wiki_js_example = "Example"
+wiki_js_table_title = "Table Title"
+wiki_js_submit = "Submit"
+wiki_js_cancel = "Cancel"
+wiki_js_bold = "Bold text"
+wiki_js_italic = "Italic text"
+wiki_js_underline = "Underlined text"
+wiki_js_strike = "Striked text"
+wiki_js_hr = "Horizontal Rule"
+wiki_js_heading = "Heading"
+wiki_js_heading1 = "Level 1 Heading"
+wiki_js_heading2 = "Level 2 Heading"
+wiki_js_heading3 = "Level 3 Heading"
+wiki_js_heading4 = "Level 4 Heading"
+wiki_js_bullet = "Unordered list item"
+wiki_js_enum = "Ordered list item"
+wiki_js_nowiki = "Insert non-formatted text here"
+wiki_js_add_search = "Add Search Bar Form"
+wiki_js_add_wiki_table = "Add Wiki Table"
+wiki_js_for_table_cols = "Column Count:"
+wiki_js_for_table_rows = "Row Count:"
+wiki_js_add_hyperlink = "Add Hyperlink"
+wiki_js_link_text = "Text:"
+wiki_js_link_url = "URL:"
+wiki_js_placeholder = "Search Placeholder Text"
+wiki_js_centeraligned = "This text is centered."
+wiki_js_rightaligned = "This text is right-aligned."
+wiki_js_leftaligned = "This text is left-aligned."
+wiki_js_definitionlist = "Definition List"
+wiki_js_definitionlist_item = "Item"
+wiki_js_definitionlist_definition = "Definition"
+wiki_js_slide_sample_title = "Title"
+wiki_js_slide_sample_bullet = "Slide Item"
+wiki_js_slide_resource_description = "Resource Description for "
+wiki_element_list_icon = "≔List"
+wiki_element_grid_icon = "⊞ Grid"
 ;
-; SocialComponent.php
-social_component_request_join = "Request Join"
-social_component_invited = "Invited"
-social_component_active_status = "Active"
-social_component_suspended_status = "Suspended"
-social_component_no_join = "No One"
-social_component_by_request = "By Request"
-social_component_public_request = "Public Request"
-social_component_public_join = "Anyone"
-social_component_hundred_credits = "100 Credits"
-social_component_two_hundred_credits = "200 Credits"
-social_component_five_hundred_credits = "500 Credits"
-social_component_thousand_credits = "1000 Credits"
-social_component_two_thousand_credits = "2000 Credits"
-social_component_private = "No Read"
-social_component_read = "Read"
-social_component_read_comment = "Read Comment"
-social_component_read_write = "Read Write"
-social_component_read_wiki = "Read Write Wiki"
-social_component_no_voting = "No Voting"
-social_component_up_voting = "+ Voting"
-social_component_up_down_voting = "+/- Voting"
-social_component_forever = "Never Expires"
-social_component_one_hour = "One Hour"
-social_component_one_day = "One Day"
-social_component_one_month = "One Month"
-social_component_encryption_enable = "Enable"
-social_component_encryption_disable = "Disable"
-social_component_user_activated = "User activated!"
-social_component_users_activated = "Users Activated!"
-social_component_no_user_activated = "User was not activated!"
-social_component_joined = "Group Joined!"
-social_component_groupname_unavailable = "Group name unavailable!"
-social_component_name_available = "Group name available!"
-social_component_user_banned = "User banned!"
-social_component_users_banned = "Users banned"
-social_component_no_user_banned = "User was not banned!"
-social_component_owner_changed = "Owner Changed!"
-social_component_not_in_group = "User not in group!"
-social_component_not_a_user = "Username does not exist!"
-social_component_public_cant_create = "Public user cannot  create groups!"
-social_component_groupname_exists = "Group Name Exists"
-social_component_groupname_created = "Group created!"
-social_component_groupname_doesnt_exists = "Group Name does not exists"
-social_component_group_deleted = "Group Deleted"
-social_component_no_delete_group = "Cannot Delete Group"
-social_component_user_deleted = "User Deleted"
-social_component_users_deleted = "Users deleted"
-social_component_no_delete_user_group = "Cannot Delete User from Group."
-social_component_users_invited = "Users Invited!"
-social_component_no_users_invited = "No Users Invited!!"
-social_component_banned_status = "Banned"
-social_component_unsubscribe = "Successfully Unsubscribed!"
-social_component_no_unsubscribe = "Could not Unsubscribe!"
-social_component_hour = "Hour"
-social_component_day = "Day"
-social_component_month = "Month"
-social_component_jan = "Jan"
-social_component_feb = "Feb"
-social_component_mar = "Mar"
-social_component_apr = "Apr"
-social_component_may = "May"
-social_component_jun = "Jun"
-social_component_jul = "Jul"
-social_component_aug = "Aug"
-social_component_sep = "Sep"
-social_component_oct = "Oct"
-social_component_nov = "Nov"
-social_component_dec = "Dec"
-social_component_visits = "Visits per %s"
-managegroups_element_no_activity = "No Activity"
-social_component_originally_posted = "Originally Posted By: %s"
-social_component_originally_dated = "Original Date: %s"
-social_component_buy_more_credits_join = "Buy Yioop Credits to Join Group!"
-social_component_join_group_fee = "Join discussion group fee "
-social_component_group_joined = "Group joined!"
-social_component_group_request_join = "Join Group Request Made!"
-social_component_activate_group = "Yioop Group %s Activation Request"
-social_component_activate_body = "The user %s has requested to join group %s."
-social_component_notify_closing = "Best regards,"
-social_component_notify_signature = "Yioop Software"
-social_component_no_permission = "Insufficient Access!"
-social_component_group_updated = "Group updated!"
-social_component_unknown_access = "Attempt to change access to unknown value!"
-social_component_comment_error = "Error in comment data!"
-social_component_no_comment = "Cannot post blank comment!"
-social_component_no_post_access = "Cannot post to that group!"
-social_component_join_group = "%s joined %s!"
-social_component_join_group_detail = "On %s, you joined the group  %s."
-social_component_upload_error = "Upload Error!"
-social_component_thread_notification = "New Post to Thread: %s"
-social_component_notify_body = "We thought you would be interested in a new post to the thread:"
-social_component_notify_salutation = "Dear %s,"
-social_component_comment_added = "Comment Added!"
-social_component_public_cant_add = "Public user cannot add group!"
-social_component_groupname_cant_add = "Cannot add selected group!"
-social_component_delete_error = "Error Deleting Item"
-social_component_item_deleted = "Item Deleted!"
-social_component_no_item_deleted = "No Item Deleted!"
-social_component_vote_error = "Voting Error!"
-social_component_no_vote_access = "No vote access to that post! "
-social_component_already_voted = "Already Voted!"
-social_component_vote_recorded = "Vote Recorded!"
-social_component_need_title_description = "Need both title and description!"
-social_component_new_thread_mail = "New Thread in Group %s"
-social_component_new_thread_body = "As the owner of %s we thought you would like to know of the following thread recently created in your group:"
-social_component_thread_created = "Thread Created!"
-social_component_post_edited_elsewhere = "Post was just edited elsewhere (another tab?)"
-social_component_no_update_access = "Cannot Update Post!"
-social_component_post_updated = "Post Updated!"
-social_component_login_first = "Please login to access more groups!"
-social_component_no_group_access = "Not a member or can&#039;t read that group. Switching to public group!"
-social_component_name_asc = "Name&amp;uarr;"
-social_component_name_desc = "Name&amp;darr;"
-social_component_join_asc = "Join Date&amp;uarr;"
-social_component_join_desc = "Join Date&amp;darr;"
-social_component_no_posts_yet = "No Posts Yet"
-social_component_back = "Back"
-social_component_history_page = "Historical Version of %s from %s."
-social_component_diff_page = "%s line differences between %s and %s."
-social_component_wiki_edited_elsewhere = "Wiki Page Has Been Edited Since Your Version. Loading Changed Version!"
-social_component_page_revert_to = "Revert to %s."
-social_component_page_reverted = "Page Reverted!"
-social_component_revert_error = "Error Reverting Page!"
-social_component_main = "Main"
-enter_vr = "Enter VR"
-exit_vr = "Exit VR"
-social_component_missing_fields = "Missing Fields!"
-social_component_resource_saved = "Resource Saved!"
-social_component_resource_not_saved = "Resource Not Saved!"
-social_component_page_created = "%s Wiki Page Created!"
-social_component_page_discuss_here = "Discuss the page in this thread!"
-social_component_page_saved = "Page Saved!"
-social_component_clipboard_emptied = "Clipboard Emptied!"
-social_component_clipboard_not_emptied = "Empty Clipboard Failed!"
-social_component_paste_all_success = "Paste all success!"
-social_component_paste_all_failed = "Paste all failed!"
-social_component_paste_fail = "Clipboard paste fail!"
-social_component_paste_success = "Clipboard paste success!"
-social_component_copy_fail = "Clip Folder Copy Failed!"
-social_component_copy_success = "Clip Folder Copy Succeeded!"
-social_component_clip_cut_fail = "Clipboard cut failed!"
-social_component_clip_cut_success = "Clipboard cut succeeded!"
-social_component_cut_success = "Clipboard cut succeeded!"
-social_component_resource_extracted = "Resource Extracted!"
-social_component_resource_not_extracted = "Resource Not Extracted!"
-social_component_resource_renamed = "Resource Renamed!"
-social_component_resource_not_renamed = "Resource not Renamed!"
-social_component_resource_description_file_error = "Resource File name error!"
-social_component_resource_description_saved = "Resource Description Saved!"
-social_component_resource_description_error = "Resource Description Save Error!"
-social_component_resource_created = "Resource Created!"
-social_component_resource_not_created = "Resource Not Created!"
-social_component_resource_save_first = "Need to Save Page Before Using Resources!"
-social_component_resource_uploaded = "Resource Uploaded!"
-social_component_media_no_description = "No Description"
-social_component_doc_sections = "Doc Sections"
-social_component_standard_page = "Standard"
-social_component_page_and_feedback = "Page and Feedback"
-social_component_page_alias = "Page Alias"
-social_component_media_list = "Media List"
-social_component_presentation = "Presentation"
-social_component_url_shortener = "Url Shortener"
-social_component_share_wall = "Share Wall"
-social_component_solid = "Solid"
-social_component_dashed = "Dashed"
-social_component_none = "None"
-social_component_actions = "Actions"
-social_component_new_folder = "New Folder"
-social_component_new_text_file = "New Text File"
-social_component_new_csv_file = "New CSV File"
-social_component_never = "Never"
-social_component_sort_order = "Sort Order"
-social_component_name_ascending = "Name↓"
-social_component_name_descending = "Name↑"
-social_component_date_ascending = "Date↓"
-social_component_date_descending = "Date↑"
-social_component_size_ascending = "Size↓"
-social_component_size_descending = "Size↑"
-social_component_search = "Search"
-;
-; ChatbotComponent.php
-chatbot_component_bot_lookup_error = "Pattern Lookup Error!"
-chatbot_component_max_patterns_exceeded = "Maximum Chat Bot Patterns Exceeded"
-chatbot_component_missing_required = "Missing Required Fields (Request)!"
-chatbot_component_pattern_added = "Pattern Added!"
-chatbot_component_pattern_updated = "Pattern Updated!"
-chatbot_component_no_delete_pattern = "Could not find pattern id, pattern not deleted!"
-chatbot_component_pattern_deleted = "Pattern Deleted!"
-;
-; StoreComponent.php
-store_component_credit_amounts = "Number of Credits to Buy"
-store_component_ten_in_credits = "1000 credits for $10 US"
-store_component_twenty_in_credits = "2000 credits for $20 US"
-store_component_fifty_in_credits = "5000 credits for $50 US"
-store_component_hundred_in_credits = "10000 credits for $100 US"
-store_component_month = "Month"
-store_component_year = "Year"
-store_component_script_failure = "No Working Credit Card Script Found!"
-store_component_invalid_credit_quantity = "Invalid Credit Purchase Quantity"
-advertisement_buy_credits = "Buy Credits"
-advertisement_init_ledger = "Starting Balance"
-store_component_credit_token_empty = "Error: No Credit Token Received!"
-store_component_processing_error = "Payment Processing Error %s"
-store_component_credits_purchased = "Credit purchase complete!"
-store_component_num_days = "Number of Days"
-store_component_one_day = "1 day"
-store_component_seven_days = "7 days"
-store_component_thirty_days = "30 days"
-store_component_ninety_days = "90 days"
-store_component_one_eighty_days = "180 days"
-store_component_fields_cannot_be_empty = "Name, Description, Destination URL cannot be empty"
-store_component_duration_cannot_be_empty = "Ad Duration Cannot Be Empty!"
-store_component_enter_keywords = "Please enter keywords"
-store_component_bid_too_low = "Bid too low! Calculate and bid  again!"
-store_component_too_few_credits = "Insufficient ad credits! Please purchase more credits! "
-advertisement_buy_ad = "Buy Ad"
-store_component_ad_created = "Advertisement created"
-store_component_status_changed = "Ad status changed!"
-store_component_ad_updated = "Advertisement Updated"
-;
-; CrawlComponent.php
-crawl_component_delete_crawl_success = "Deleting Crawl. . .This will take a moment to refresh."
-crawl_component_delete_crawl_fail = "Delete Crawl Failed!!"
-crawl_component_set_index = "Setting Crawl To Use as Index"
+; CrawlComponent.php
+crawl_component_delete_crawl_success = "Deleting Crawl. . .This will take a moment to refresh."
+crawl_component_delete_crawl_fail = "Delete Crawl Failed!!"
+crawl_component_set_index = "Setting Crawl To Use as Index"
 managegroups_element_no_activity = "No Activity"
 crawl_component_resume_crawl = "Resuming crawl. . .This will take a moment to refresh."
 crawl_component_resume_fail = "Resume Failed! Are there any active Queue Servers and Fetchers?"
@@ -532,132 +338,259 @@ crawl_component_subsearch_updated = "Subsearch Updated!"
 crawl_component_media_source_updated = "Media Source Updated!"
 crawl_component_parsed_feed = "Source After Parsing Aux Info"
 ;
-; AccountaccessComponent.php
-accountaccess_component_no_posts_yet = "No Posts Yet"
-accountaccess_component_passwords_too_long = "Password is too long!"
-accountaccess_component_passwords_dont_match = "Typed passwords do not match."
-accountaccess_component_invalid_password = "Invalid Password!"
-accountaccess_component_unknown_imagetype = "Unknown Image File Type!"
-accountaccess_component_icon_too_big = "Icon File Too Big!"
-accountaccess_component_no_user_folder = "User Folder Could Not be Created!"
-accountaccess_component_user_updated = "User Updated"
-accountaccess_component_active_status = "Active"
-accountaccess_component_inactive_status = "Inactive"
-accountaccess_component_suspended_status = "Suspended"
-accountaccess_component_request_join = "Pending"
-accountaccess_component_invited = "Invited"
-accountaccess_component_invalid_username = "Invalid Username!"
-accountaccess_component_user_exists = "User Already Exists!"
-accountaccess_component_user_added = "User Added"
-accountaccess_component_user_doesnt_exist = "Can&#039;t edit -- that username doesn&#039;t exist!"
-accountaccess_component_cant_edit_public_user = "Cannot Edit Public User!"
-accountaccess_component_user_filter_group = "Filtering by Group!"
-accountaccess_component_user_filter_role = "Filtering by Role!"
-accountaccess_component_username_doesnt_exists = "Username Does Not Exist"
-accountaccess_component_cant_delete_builtin = "Cannot Delete Built-in User!"
-accountaccess_component_user_deleted = "User Deleted"
-accountaccess_component_rolename_doesnt_exists = "Role Name Does not Exist"
-accountaccess_component_rolename_already_added = "Role Name Already Added!"
-accountaccess_component_rolename_added = "Role Name Added"
-accountaccess_component_groupname_doesnt_exists = "Group Name does not exists"
-accountaccess_component_groupname_already_added = "Group Name Already Added!"
-accountaccess_component_groupname_added = "Group Name Added"
-accountaccess_component_rolename_deleted = "Role Name Deleted"
-accountaccess_component_rolenames_deleted = "Roles Deleted"
-accountaccess_component_group_deleted = "Group Deleted"
-accountaccess_component_groups_deleted = "Groups Deleted"
-accountaccess_component_userstatus_updated = "User Status Updated"
-accountaccess_component_add_roleactivity = "Add Activity Role"
-accountaccess_component_activity_added = "Activity Added"
-accountaccess_component_rolename_exists = "Role Name Exists"
-accountaccess_component_rolename_blank = "Role Name Blank!"
-accountaccess_component_activity_deleted = "Activity Deleted"
-accountaccess_component_role_updated = "Role updated!"
-;
-; Component.php
-wiki_js_small = "Small"
-wiki_js_medium = "Medium"
-wiki_js_large = "Large"
-wiki_js_search_size = "Size"
-wiki_js_prompt_heading = "Header row:"
-wiki_js_example = "Example"
-wiki_js_table_title = "Table Title"
-wiki_js_submit = "Submit"
-wiki_js_cancel = "Cancel"
-wiki_js_bold = "Bold text"
-wiki_js_italic = "Italic text"
-wiki_js_underline = "Underlined text"
-wiki_js_strike = "Striked text"
-wiki_js_hr = "Horizontal Rule"
-wiki_js_heading = "Heading"
-wiki_js_heading1 = "Level 1 Heading"
-wiki_js_heading2 = "Level 2 Heading"
-wiki_js_heading3 = "Level 3 Heading"
-wiki_js_heading4 = "Level 4 Heading"
-wiki_js_bullet = "Unordered list item"
-wiki_js_enum = "Ordered list item"
-wiki_js_nowiki = "Insert non-formatted text here"
-wiki_js_add_search = "Add Search Bar Form"
-wiki_js_add_wiki_table = "Add Wiki Table"
-wiki_js_for_table_cols = "Column Count:"
-wiki_js_for_table_rows = "Row Count:"
-wiki_js_add_hyperlink = "Add Hyperlink"
-wiki_js_link_text = "Text:"
-wiki_js_link_url = "URL:"
-wiki_js_placeholder = "Search Placeholder Text"
-wiki_js_centeraligned = "This text is centered."
-wiki_js_rightaligned = "This text is right-aligned."
-wiki_js_leftaligned = "This text is left-aligned."
-wiki_js_definitionlist = "Definition List"
-wiki_js_definitionlist_item = "Item"
-wiki_js_definitionlist_definition = "Definition"
-wiki_js_slide_sample_title = "Title"
-wiki_js_slide_sample_bullet = "Slide Item"
-wiki_js_slide_resource_description = "Resource Description for "
-wiki_element_list_icon = "≔List"
-wiki_element_grid_icon = "⊞ Grid"
-;
-; SystemComponent.php
-system_component_is_replica = "Replica Server"
-system_component_select_machine = "Select Machine"
-system_component_machine_added = "Machine Added!"
-system_component_machine_exists = "Machine Name Already Exists; Please Delete First!"
-system_component_machine_incomplete = "Missing Fields From Machine Form!"
-system_component_machine_doesnt_exists = "Machine Name does not Exists!"
-system_component_stop_service_first = "Machine in use. Please stop the service running on it!"
-system_component_machine_deleted = "Machine Deleted!"
-system_component_job_doesnt_exist = "Job Doesn&#039;t Exist!"
-system_component_job_disabled = "Job Disabled!"
-system_component_job_enabled = "Job Enabled!"
-system_component_no_machine_log = "No Log File Found."
-system_component_machine_servers_updated = "Machine&#039;s Servers Updated!"
-system_component_machine_no_action = "Unable to Perform Action!"
-system_component_updatemode_toggled = "Media Update Mode Toggled!"
-system_component_select_mode = "Select Mode"
-system_component_locale_missing_info = "Field values missing or invalid!"
-system_component_locale_added = "Locale Added!"
-system_component_localename_doesnt_exists = "Locale Does Not Exist!"
-system_component_localename_deleted = "Locale Deleted"
-system_component_locale_updated = "Locale Information Updated!"
-system_component_localestrings_updated = "Locale Strings Updated!"
-system_component_all_strings = "All Strings"
-system_component_missing_strings = "Missing Strings"
-system_component_cache_cleared = "File Cache Cleared!"
-system_component_server_restarted = "Server restarted!"
-system_component_configure_no_change_db = "Problem Updating Database!"
-system_component_configure_profile_change = "Profile Updated!"
-system_component_configure_no_change_profile = "There was a Problem Updating Profile!"
-system_component_configure_disable_registration = "Disable Registration"
-system_component_configure_no_activation = "No Activation"
-system_component_configure_email_activation = "Email Activation"
-system_component_configure_admin_activation = "Admin Activation"
-system_component_configure_none = "None"
-system_component_configure_external_advertisements = "External Ad Server"
-system_component_configure_group_fees = "Group Fees"
-system_component_configure_keyword_advertisements = "Keyword Advertisements"
-system_component_configure_fees_and_keywords = "Group Fees and Keyword Ads"
-system_component_enable_bot_users = "Enable Bot Users"
-system_component_disable_bot_users = "Disable Bot Users"
+; SocialComponent.php
+social_component_request_join = "Request Join"
+social_component_invited = "Invited"
+social_component_active_status = "Active"
+social_component_suspended_status = "Suspended"
+social_component_no_join = "No One"
+social_component_by_request = "By Request"
+social_component_public_request = "Public Request"
+social_component_public_join = "Anyone"
+social_component_hundred_credits = "100 Credits"
+social_component_two_hundred_credits = "200 Credits"
+social_component_five_hundred_credits = "500 Credits"
+social_component_thousand_credits = "1000 Credits"
+social_component_two_thousand_credits = "2000 Credits"
+social_component_private = "No Read"
+social_component_read = "Read"
+social_component_read_comment = "Read Comment"
+social_component_read_write = "Read Write"
+social_component_read_wiki = "Read Write Wiki"
+social_component_no_voting = "No Voting"
+social_component_up_voting = "+ Voting"
+social_component_up_down_voting = "+/- Voting"
+social_component_forever = "Never Expires"
+social_component_one_hour = "One Hour"
+social_component_one_day = "One Day"
+social_component_one_month = "One Month"
+social_component_encryption_enable = "Enable"
+social_component_encryption_disable = "Disable"
+social_component_user_activated = "User activated!"
+social_component_users_activated = "Users Activated!"
+social_component_no_user_activated = "User was not activated!"
+social_component_joined = "Group Joined!"
+social_component_groupname_unavailable = "Group name unavailable!"
+social_component_name_available = "Group name available!"
+social_component_user_banned = "User banned!"
+social_component_users_banned = "Users banned"
+social_component_no_user_banned = "User was not banned!"
+social_component_owner_changed = "Owner Changed!"
+social_component_not_in_group = "User not in group!"
+social_component_not_a_user = "Username does not exist!"
+social_component_public_cant_create = "Public user cannot  create groups!"
+social_component_groupname_exists = "Group Name Exists"
+social_component_groupname_created = "Group created!"
+social_component_groupname_doesnt_exists = "Group Name does not exists"
+social_component_group_deleted = "Group Deleted"
+social_component_no_delete_group = "Cannot Delete Group"
+social_component_user_deleted = "User Deleted"
+social_component_users_deleted = "Users deleted"
+social_component_no_delete_user_group = "Cannot Delete User from Group."
+social_component_users_invited = "Users Invited!"
+social_component_no_users_invited = "No Users Invited!!"
+social_component_banned_status = "Banned"
+social_component_unsubscribe = "Successfully Unsubscribed!"
+social_component_no_unsubscribe = "Could not Unsubscribe!"
+social_component_hour = "Hour"
+social_component_day = "Day"
+social_component_month = "Month"
+social_component_jan = "Jan"
+social_component_feb = "Feb"
+social_component_mar = "Mar"
+social_component_apr = "Apr"
+social_component_may = "May"
+social_component_jun = "Jun"
+social_component_jul = "Jul"
+social_component_aug = "Aug"
+social_component_sep = "Sep"
+social_component_oct = "Oct"
+social_component_nov = "Nov"
+social_component_dec = "Dec"
+social_component_visits = "Visits per %s"
+managegroups_element_no_activity = "No Activity"
+social_component_originally_posted = "Originally Posted By: %s"
+social_component_originally_dated = "Original Date: %s"
+social_component_buy_more_credits_join = "Buy Yioop Credits to Join Group!"
+social_component_join_group_fee = "Join discussion group fee "
+social_component_group_joined = "Group joined!"
+social_component_group_request_join = "Join Group Request Made!"
+social_component_activate_group = "Yioop Group %s Activation Request"
+social_component_activate_body = "The user %s has requested to join group %s."
+social_component_notify_closing = "Best regards,"
+social_component_notify_signature = "Yioop Software"
+social_component_no_permission = "Insufficient Access!"
+social_component_group_updated = "Group updated!"
+social_component_unknown_access = "Attempt to change access to unknown value!"
+social_component_comment_error = "Error in comment data!"
+social_component_no_comment = "Cannot post blank comment!"
+social_component_no_post_access = "Cannot post to that group!"
+social_component_join_group = "%s joined %s!"
+social_component_join_group_detail = "On %s, you joined the group  %s."
+social_component_upload_error = "Upload Error!"
+social_component_thread_notification = "New Post to Thread: %s"
+social_component_notify_body = "We thought you would be interested in a new post to the thread:"
+social_component_notify_salutation = "Dear %s,"
+social_component_comment_added = "Comment Added!"
+social_component_public_cant_add = "Public user cannot add group!"
+social_component_groupname_cant_add = "Cannot add selected group!"
+social_component_delete_error = "Error Deleting Item"
+social_component_item_deleted = "Item Deleted!"
+social_component_no_item_deleted = "No Item Deleted!"
+social_component_vote_error = "Voting Error!"
+social_component_no_vote_access = "No vote access to that post! "
+social_component_already_voted = "Already Voted!"
+social_component_vote_recorded = "Vote Recorded!"
+social_component_need_title_description = "Need both title and description!"
+social_component_new_thread_mail = "New Thread in Group %s"
+social_component_new_thread_body = "As the owner of %s we thought you would like to know of the following thread recently created in your group:"
+social_component_thread_created = "Thread Created!"
+social_component_post_edited_elsewhere = "Post was just edited elsewhere (another tab?)"
+social_component_no_update_access = "Cannot Update Post!"
+social_component_post_updated = "Post Updated!"
+social_component_login_first = "Please login to access more groups!"
+social_component_no_group_access = "Not a member or can&#039;t read that group. Switching to public group!"
+social_component_name_asc = "Name&amp;uarr;"
+social_component_name_desc = "Name&amp;darr;"
+social_component_join_asc = "Join Date&amp;uarr;"
+social_component_join_desc = "Join Date&amp;darr;"
+social_component_no_posts_yet = "No Posts Yet"
+social_component_back = "Back"
+social_component_history_page = "Historical Version of %s from %s."
+social_component_diff_page = "%s line differences between %s and %s."
+social_component_wiki_edited_elsewhere = "Wiki Page Has Been Edited Since Your Version. Loading Changed Version!"
+social_component_page_revert_to = "Revert to %s."
+social_component_page_reverted = "Page Reverted!"
+social_component_revert_error = "Error Reverting Page!"
+social_component_main = "Main"
+enter_vr = "Enter VR"
+exit_vr = "Exit VR"
+social_component_missing_fields = "Missing Fields!"
+social_component_resource_saved = "Resource Saved!"
+social_component_resource_not_saved = "Resource Not Saved!"
+social_component_page_created = "%s Wiki Page Created!"
+social_component_page_discuss_here = "Discuss the page in this thread!"
+social_component_page_saved = "Page Saved!"
+social_component_clipboard_emptied = "Clipboard Emptied!"
+social_component_clipboard_not_emptied = "Empty Clipboard Failed!"
+social_component_paste_all_success = "Paste all success!"
+social_component_paste_all_failed = "Paste all failed!"
+social_component_paste_fail = "Clipboard paste fail!"
+social_component_paste_success = "Clipboard paste success!"
+social_component_copy_fail = "Clip Folder Copy Failed!"
+social_component_copy_success = "Clip Folder Copy Succeeded!"
+social_component_clip_cut_fail = "Clipboard cut failed!"
+social_component_clip_cut_success = "Clipboard cut succeeded!"
+social_component_cut_success = "Clipboard cut succeeded!"
+social_component_resource_extracted = "Resource Extracted!"
+social_component_resource_not_extracted = "Resource Not Extracted!"
+social_component_resource_renamed = "Resource Renamed!"
+social_component_resource_not_renamed = "Resource not Renamed!"
+social_component_resource_description_file_error = "Resource File name error!"
+social_component_resource_description_saved = "Resource Description Saved!"
+social_component_resource_description_error = "Resource Description Save Error!"
+social_component_resource_created = "Resource Created!"
+social_component_resource_not_created = "Resource Not Created!"
+social_component_resource_save_first = "Need to Save Page Before Using Resources!"
+social_component_resource_uploaded = "Resource Uploaded!"
+social_component_media_no_description = "No Description"
+social_component_doc_sections = "Doc Sections"
+social_component_standard_page = "Standard"
+social_component_page_and_feedback = "Page and Feedback"
+social_component_page_alias = "Page Alias"
+social_component_media_list = "Media List"
+social_component_presentation = "Presentation"
+social_component_url_shortener = "Url Shortener"
+social_component_share_wall = "Share Wall"
+social_component_solid = "Solid"
+social_component_dashed = "Dashed"
+social_component_none = "None"
+social_component_actions = "Actions"
+social_component_new_folder = "New Folder"
+social_component_new_text_file = "New Text File"
+social_component_new_csv_file = "New CSV File"
+social_component_never = "Never"
+social_component_sort_order = "Sort Order"
+social_component_name_ascending = "Name↓"
+social_component_name_descending = "Name↑"
+social_component_date_ascending = "Date↓"
+social_component_date_descending = "Date↑"
+social_component_size_ascending = "Size↓"
+social_component_size_descending = "Size↑"
+social_component_search = "Search"
+;
+; StoreComponent.php
+store_component_credit_amounts = "Number of Credits to Buy"
+store_component_ten_in_credits = "1000 credits for $10 US"
+store_component_twenty_in_credits = "2000 credits for $20 US"
+store_component_fifty_in_credits = "5000 credits for $50 US"
+store_component_hundred_in_credits = "10000 credits for $100 US"
+store_component_month = "Month"
+store_component_year = "Year"
+store_component_script_failure = "No Working Credit Card Script Found!"
+store_component_invalid_credit_quantity = "Invalid Credit Purchase Quantity"
+advertisement_buy_credits = "Buy Credits"
+advertisement_init_ledger = "Starting Balance"
+store_component_credit_token_empty = "Error: No Credit Token Received!"
+store_component_processing_error = "Payment Processing Error %s"
+store_component_credits_purchased = "Credit purchase complete!"
+store_component_num_days = "Number of Days"
+store_component_one_day = "1 day"
+store_component_seven_days = "7 days"
+store_component_thirty_days = "30 days"
+store_component_ninety_days = "90 days"
+store_component_one_eighty_days = "180 days"
+store_component_fields_cannot_be_empty = "Name, Description, Destination URL cannot be empty"
+store_component_duration_cannot_be_empty = "Ad Duration Cannot Be Empty!"
+store_component_enter_keywords = "Please enter keywords"
+store_component_bid_too_low = "Bid too low! Calculate and bid  again!"
+store_component_too_few_credits = "Insufficient ad credits! Please purchase more credits! "
+advertisement_buy_ad = "Buy Ad"
+store_component_ad_created = "Advertisement created"
+store_component_status_changed = "Ad status changed!"
+store_component_ad_updated = "Advertisement Updated"
+;
+; SystemComponent.php
+system_component_is_replica = "Replica Server"
+system_component_select_machine = "Select Machine"
+system_component_machine_added = "Machine Added!"
+system_component_machine_exists = "Machine Name Already Exists; Please Delete First!"
+system_component_machine_incomplete = "Missing Fields From Machine Form!"
+system_component_machine_doesnt_exists = "Machine Name does not Exists!"
+system_component_stop_service_first = "Machine in use. Please stop the service running on it!"
+system_component_machine_deleted = "Machine Deleted!"
+system_component_job_doesnt_exist = "Job Doesn&#039;t Exist!"
+system_component_job_disabled = "Job Disabled!"
+system_component_job_enabled = "Job Enabled!"
+system_component_no_machine_log = "No Log File Found."
+system_component_machine_servers_updated = "Machine&#039;s Servers Updated!"
+system_component_machine_no_action = "Unable to Perform Action!"
+system_component_updatemode_toggled = "Media Update Mode Toggled!"
+system_component_select_mode = "Select Mode"
+system_component_locale_missing_info = "Field values missing or invalid!"
+system_component_locale_added = "Locale Added!"
+system_component_localename_doesnt_exists = "Locale Does Not Exist!"
+system_component_localename_deleted = "Locale Deleted"
+system_component_locale_updated = "Locale Information Updated!"
+system_component_localestrings_updated = "Locale Strings Updated!"
+system_component_all_strings = "All Strings"
+system_component_missing_strings = "Missing Strings"
+system_component_cache_cleared = "File Cache Cleared!"
+system_component_server_restarted = "Server restarted!"
+system_component_configure_no_change_db = "Problem Updating Database!"
+system_component_configure_profile_change = "Profile Updated!"
+system_component_configure_no_change_profile = "There was a Problem Updating Profile!"
+system_component_configure_disable_registration = "Disable Registration"
+system_component_configure_no_activation = "No Activation"
+system_component_configure_email_activation = "Email Activation"
+system_component_configure_admin_activation = "Admin Activation"
+system_component_configure_none = "None"
+system_component_configure_external_advertisements = "External Ad Server"
+system_component_configure_group_fees = "Group Fees"
+system_component_configure_keyword_advertisements = "Keyword Advertisements"
+system_component_configure_fees_and_keywords = "Group Fees and Keyword Ads"
+system_component_enable_bot_users = "Enable Bot Users"
+system_component_disable_bot_users = "Disable Bot Users"
 system_component_two_minutes = "Two Minutes"
 system_component_fifteen_minutes = "15 minutes"
 system_component_half_hour = "30 minutes"
@@ -700,9 +633,19 @@ system_component_missing_optional = "The following optional items were missing:"
 system_component_check_passed = "Check Passed."
 system_component_using_local_config = "Using configs/LocalConfig.php so changing work directory above may not work."
 ;
-; RegisterController.php
-register_controller_need_cookies = "Cookies need to be enabled to register or log in to a Yioop!"
-register_validator_js_valid_email = "Valid email"
+; Controller.php
+search_controller_logout_successful = "Logout Successful!!"
+controller_restart_server = "Restarting Server..."
+;
+; GroupController.php
+group_controller_groupmenu = "Group Menu"
+;
+; MachineController.php
+machine_controller_nolines = "No Lines Match Filter!"
+;
+; RegisterController.php
+register_controller_need_cookies = "Cookies need to be enabled to register or log in to a Yioop!"
+register_validator_js_valid_email = "Valid email"
 register_validator_js_invalid_email = "Invalid email"
 register_validator_js_more_characters = "More characters needed"
 register_validator_js_strong_password = "Strong password"
@@ -741,137 +684,64 @@ register_controller_url_submitted = "Suggested URL saved!"
 register_controller_check_email = "Check Email Address!"
 register_controller_user_already_exists = "Account not created - Username already in use!!"
 ;
-; /src/views
-;
-; MachinestatusView.php
-machinestatus_view_machine_statuses = "Machine Statuses"
-machinestatus_view_manage_crawls = "Manage Crawls"
-machinestatus_view_media_updater = "Media Updater"
-machinestatus_view_configure_media_jobs = "Configure Media Jobs"
-machinestatus_view_media_sources = "Media Sources"
-machinestatus_view_nameserver = "Name Server"
-machinestatus_view_log = "Log"
-machinestatus_view_machines = "Machines"
-machinestatus_view_add_machine = "Add Machine"
-machinestatus_view_machine_name = "Name:"
-machinestatus_view_machineurl = "URL:"
-machinestatus_view_machine_channel_type = "Channel Type:"
-machinestatus_view_parent_name = "Parent Name:"
-machinestatus_view_num_fetchers = "Number of Fetchers:"
-machinestatus_view_save = "Save"
-machinestatus_view_confirm = "Are you sure you want to delete?"
-machinestatus_view_delete = "Delete"
-machinestatus_view_channel = "Channel:%s"
-machinestatus_view_parent = "Parent:%s"
-machinestatus_view_not_configured = "Machine Not Configured!"
-machinestatus_view_mirror = "Mirror"
-machinestatus_view_queue_server = "Queue Server"
-machinestatus_view_no_queue_server = "Machine has no queue server"
-machinestatus_view_no_fetchers = "Machine has no fetchers"
-machinestatus_view_fetchers = "Fetchers"
-;
-; ResendEmailView.php
-resendemail_view_resend_activation = "Resend Activation"
-resendemail_view_username = "Username:"
-resendemail_view_human_check = "Human Check:"
-resendemail_view_privacy_i_agree = " I agree to this site&#039;s use of cookies for user functionality, social media features, and traffic analytics and I agree to the"
-resendemail_view_terms = "terms"
-resendemail_view_and = " and "
-resendemail_view_privacy = "privacy policy"
-resendemail_view_period = "."
-resendemail_view_resend_email = "Resend Email"
-resendemail_view_return = "Return"
-;
-; StaticView.php
-static_view_title = "PHP Search Engine - Yioop!"
-static_view_places = "Places:"
-;
-; TestsView.php
-tests_view_tests = "Tests"
-tests_view_run_all_tests = "Run all Tests"
-tests_view_available_tests = "Available Tests"
-tests_view_phantomjs_required = "Phantom JS is required"
-tests_view_elasped_time = "Time:"
-tests_view_tests_passed = "tests passed"
-;
-; RecoverView.php
-recover_view_recover_password = "Recover Account"
-recover_view_new_password = "New Password"
-recover_view_retypepassword = "Re-type password:"
-recover_view_username = "Username:"
-recover_view_account_recovery = "Recovery Info"
-recover_view_human_check = "Human Check:"
-recover_view_privacy_i_agree = " I agree to this site&#039;s use of cookies for user functionality, social media features, and traffic analytics and I agree to the"
-recover_view_terms = "terms"
-recover_view_and = " and "
-recover_view_privacy = "privacy policy"
-recover_view_period = "."
-recover_view_return = "Return to Yioop"
-;
-; RegisterView.php
-register_view_recovery1_more = "Animal you like the best:"
-register_view_recovery1_less = "Animal you like the least:"
-register_view_recovery1_choices = "ant,bunny,cat,cockroach,dog,goldfish,hamster,horse,snake,spider,tiger,whale"
-register_view_recovery2_more = "Color you like the most:"
-register_view_recovery2_less = "Color you like the least:"
-register_view_recovery2_choices = "no color,aquamarine,blue,brown,gold,green,gray,mauve,pink,periwinkle,purple,red,silver,turquoise,yellow"
-register_view_recovery3_more = "Food you like the most:"
-register_view_recovery3_less = "Food you like the least:"
-register_view_recovery3_choices = "apple,banana,chicken,fish,lamb,nuts,orange,pork,potato,tomato,steak"
-register_view_recovery4_more = "Drink you like the most:"
-register_view_recovery4_less = "Drink you like the least:"
-register_view_recovery4_choices = "apple juice,beer,coffee,hot tea,ice tea,lemonade,orange juice,soda,sparkling water,still water,wine"
-register_view_recovery5_more = "Game you like the most:"
-register_view_recovery5_less = "Game you like the least:"
-register_view_recovery5_choices = "basketball,backgammon,checkers,chess,football,hockey,skate,ski,tennis,volleyball"
-register_view_recovery6_more = "Sound you like the most:"
-register_view_recovery6_less = "Sound you like the least:"
-register_view_recovery6_choices = "accordian,drum,flute,guitar,harmonica,harp,horn,oboe,piano,triangle,trumpet,violin,whistle,xylophone"
-register_view_create_account = "Create Account"
-register_view_firstname = "First Name:"
-register_view_lastname = "Last Name:"
-register_view_username = "Username:"
-register_view_email = "Email:"
-register_view_password = "Password:"
-register_view_retypepassword = "Re-type password:"
-register_view_account_recovery = "Recovery Info:"
-register_view_human_check = "Human Check:"
-register_view_privacy_i_agree = "By creating an account, I agree to this site&#039;s use of cookies for user functionality, social media features, and traffic analytics and I agree to the"
-register_view_terms = "Yioop Terms"
-register_view_and = "and"
-register_view_privacy = "Privacy Policy"
-register_view_period = "."
-register_view_return = "Return to Yioop"
+; SearchController.php
+search_controller_web = "Web"
+search_controller_continuous = "Continuous"
+search_controller_allsizes = "All"
+search_controller_tiny = "Tiny"
+search_controller_small = "Small"
+search_controller_medium = "Medium"
+search_controller_large = "Large"
+search_controller_zeromin = "0m"
+search_controller_fivemin = "5m"
+search_controller_tenmin = "10m"
+search_controller_fifteenmin = "15m"
+search_controller_halfhour = "30m"
+search_controller_onehour = "1hr"
+search_controller_twohour = "2hrs"
+search_controller_alllengths = "All"
+search_controller_all = "All"
+search_controller_today = "Today"
+search_controller_this_week = "This week"
+search_controller_this_month = "This month"
+search_controller_this_year = "This Year"
+settings_controller_settings_saved = "Settings Saved!"
+search_controller_no_trend_category = "Trend Category %s Does Not Exists!"
+search_controller_mix_info = "Using Crawl Mix: %s"
+search_controller_crawl_info = "Index: %s -- Size: %s pages/%s urls"
+search_controller_search = "Search"
+search_controller_end_results = "End of Results"
+search_controller_searchmenu = "Search Menu"
+search_controller_no_index_set = "No Search Index Set For Use!"
+search_controller_get_keyword_ads = "Advertise for %s"
+search_controller_ad_keyword_description = "Do keyword advertising on Yioop!"
+search_controller_download_fetcher = "Download Fetcher: %s"
+search_controller_no_archive_page = "The website in question has requested this page not be archived."
+search_controller_site_cache = "Yioop Cache"
+search_controller_original_page = "This image appeared on the page:"
+search_controller_extracted_title = "Extracted Title"
+search_controller_extracted_description = "Extracted Description"
+search_controller_extracted_links = "Extracted Links"
+search_controller_extracted_allow_paths = "Extracted Allowed To Crawl Paths"
+search_controller_extracted_disallow_paths = "Extracted Disallowed To Crawl Paths"
+search_controller_crawl_delay = "YioopBot Crawl Delay"
+search_controller_extracted_meta_words = "Extracted Meta Words"
+search_controller_extracted_q_a_s = "Extracted Question Answer Triplets"
+search_controller_cache_comment = "Yioop Cache Page... This page has been modified to add a robots directive,  make links absolute, add extracted summaries, and to highlight query terms."
+search_controller_cached_version = "This cached version of %s was obtained by the Yioop crawler on %s."
+search_controller_header_summaries = "Toggle Extracted Headers and Summaries"
+search_controller_history = "Toggle History"
+search_controller_all_cached = "All Cached Versions - Change Year and/or Months to see Links"
+search_controller_year = "Year:"
+search_controller_month = "Month:"
 ;
-; MediadetailView.php
-media_view_video = "Video"
-media_view_audio = "Audio"
-mediadetail_view_num_files = "Number of Files:"
-mediadetail_view_name = "Name"
-mediadetail_view_rename = "Rename"
-mediadetail_view_add_to_page = "Add to Page"
-mediadetail_view_extract = "Extract"
-mediadetail_view_clip_copy = "Clip Copy"
-mediadetail_view_clip_cut = "Clip Cut"
-mediadetail_element_modified = "Modified:"
-mediadetail_element_size = "Size:"
-mediadetail_element_description = "Description"
-mediadetail_view_save = "Save"
+; StaticController.php
+static_controller_logout_successful = "Logout Successful"
+static_controller_complete_title = "Yioop - %s"
+enter_vr = "Enter VR"
+exit_vr = "Exit VR"
 ;
-; SigninView.php
-signin_view_signin = "Signin"
-signin_view_username = "Username"
-signin_view_password = "Password"
-signin_view_privacy_i_agree = "By signing in, I agree to this site&#039;s use of cookies for user functionality, social media features, and traffic analytics and I agree to the"
-signin_view_terms = "terms"
-signin_view_and = " and "
-signin_view_privacy = "privacy policy"
-signin_view_period = "."
-signin_view_login = "Login"
-signin_view_recover_password = "Forgot Password?"
-signin_view_create_account = "Create Account"
-signin_view_resend_activation = "Resend Activation Email"
-signin_view_return = "Return"
+; /src/views
 ;
 ; CrawlstatusView.php
 crawlstatus_view_crawl_status = "Crawl Status"
@@ -918,13 +788,40 @@ managecrawls_element_new_crawl = "New Crawl"
 crawlstatus_view_start = "Start"
 crawlstatus_view_options = "Options"
 ;
-; NocacheView.php
-nocache_view_media_not_found = "File Not Found!"
-nocache_view_no_cache = "Did not have cache of requested item."
-nocache_view_summary_contents = "Summary Data stored in Yioop for Item"
-;
 ; /src/views/elements
 ;
+; AdminbarElement.php
+adminbar_element_join_groups = "Join Groups"
+adminbar_element_skip_nav = "Skip Navigation"
+adminbar_element_admin = "Admin"
+;
+; AdminElement.php
+admin_element_auto_logout_one_minute = "Auto-logout in One Minute!!"
+;
+; AdminmenuElement.php
+adminmenu_element_welcome_user = "Welcome, %s"
+adminmenu_element_combined_discussions = "Combined Discussions"
+adminmenu_element_my_groups = "My Groups"
+adminmenu_element_join_groups = "Join Groups"
+adminmenu_element_signout = "Sign Out"
+;
+; AppearanceElement.php
+appearance_element_use_wiki_landing = "Use Wiki Public Main Page as Landing Page:"
+appearance_element_search_page_components = "Adjust Search Page Components"
+appearance_element_background_color = "Background Color:"
+appearance_element_background_image = "Background Image:"
+appearance_element_foreground_color = "Foreground Color:"
+appearance_element_topbar_color = "Top Bar Color:"
+appearance_element_sidebar_color = "Side Bar Color:"
+appearance_element_large_logo = "Large Logo:"
+appearance_element_medium_logo = "Medium Logo:"
+appearance_element_small_logo = "Small Logo:"
+appearance_element_favicon = "Favicon:"
+appearance_element_toolbar = "Search Toolbar"
+appearance_element_auxiliary_css = "Auxiliary Style Directives"
+appearance_element_reset_customizations = "Reset Customizations"
+appearance_element_save = "Save"
+;
 ; BotstoryElement.php
 botstory_element_bot_story = "Bot Story"
 botstory_element_pattern_header = "Pattern"
@@ -941,279 +838,99 @@ botstory_element_edit_pattern = "Edit Pattern"
 botstory_element_add_pattern = "Add Pattern"
 botstory_element_save = "Save"
 ;
-; AdminbarElement.php
-adminbar_element_join_groups = "Join Groups"
-adminbar_element_skip_nav = "Skip Navigation"
-adminbar_element_admin = "Admin"
-;
-; ManagecreditsElement.php
-managecredits_element_balance = "Balance: %s credits"
-managecredits_element_transactions = "Credit Transactions"
-managecredits_element_type = "Type"
-managecredits_element_amount = "Amount"
-managecredits_element_date = "Date"
-managecredits_element_total = "Total"
-managecredits_element_purchase_credits = "Purchase Credits"
-managecredit_element_num_credits = "Quantity"
-managecredit_element_card_number = "Credit Card Number"
-managecredit_element_cvc = "CVC"
-managecredit_element_expiration = "Expiration"
-managecredits_element_charge_warning = "Using the Purchase button charges the above card the Quantity field&#039;s amount in US dollars and agrees to the "
-managecredits_element_program_terms = "Program Terms"
-managecredits_element_purchase = "Purchase"
-managecredits_element_script_failure = "No Working Credit Card Script Found!"
-managecredits_element_search = "Search"
-advertisement_init_ledger = "Starting Balance"
-advertisement_buy_credits = "Buy Credits"
-advertisement_buy_ad = "Buy Ad"
-social_component_join_group_fee = "Join discussion group fee "
-;
-; Element.php
-element_settings_toggle = "Toggle"
-;
-; GroupElement.php
-group_element_auto_logout_one_minute = "Auto-logout in One Minute!!"
-;
-; SearchbarElement.php
-searchbar_element_skip_nav = "Skip Navigation"
-searchbar_element_title = "Yioop - PHP Search Engine"
-searchbar_element_input_label = "Enter the terms you would like to search the web for"
-searchbar_element_input_placeholder = "Type what to find"
-searchbar_element_search = "Search"
-;
-; ManagecrawlsElement.php
-managecrawls_element_awaiting_status = "Awaiting Crawl Status"
-managecrawls_element_up_longer_update = "Crawl Status No Longer Updating"
-;
-; ManageaccountElement.php
-manageaccount_element_edit_or_no_text = "Toggle whether account information is editable"
-manageaccount_element_welcome = "Welcome, %s!"
-manageaccount_element_what_can_do = "From this page you can access and control aspects of your account."
-manageaccount_element_account_details = "Account Details"
-manageaccount_element_icon = "User Icon"
-manageaccount_element_username = "Username"
-manageaccount_element_firstname = "First Name"
-manageaccount_element_lastname = "Last Name"
-manageaccount_element_email = "Email"
-options_element_language_label = "Language:"
-manageaccount_element_is_bot = "Bot User:"
-manageaccount_element_bot_unique_token = "Bot Unique Token"
-manageaccount_element_bot_callback_url = "Bot Callback URL"
-manageaccount_element_password = "Password:"
-manageaccount_element_new_password = "New Password: "
-manageaccount_element_retype_password = "Retype: "
-manageaccount_element_new_recovery_qa = "Recovery Answers:"
-manageaccount_element_save = "Save"
-manageaccount_element_groups_and_feeds = "Groups and Feeds"
-manageaccount_element_group_info = "Create or subscribe to groups to communicate with friends. Each group has a discussion board and a wiki."
-manageaccount_element_num_groups = "You belong to %s groups."
-manageaccount_element_num_group = "You belong to 1 group."
-manageaccount_element_manage = "Manage"
-manageaccount_element_statistics = "Statistics"
-manageaccount_element_group_wiki = "Wiki"
-manageaccount_element_group_pages = "Pages"
-manageaccount_element_group_stats = "%s posts, %s threads"
-manageaccount_element_last_post = "Last Post:"
-manageaccount_element_recommendations = "Recommendations"
-manageaccount_element_rec_threads = "Threads:"
-manageaccount_element_rec_groups = "Groups:"
-manageaccount_element_go_to_combined_feed = "See Combined Discussions"
-manageaccount_element_go_to_groups = "See Your Groups"
-manageaccount_element_manage_groups = "Manage/Create Groups"
-manageaccount_element_join_groups = "Join Groups"
-manageaccount_element_crawl_and_index = "Crawls and Indexes"
-manageaccount_element_crawl_info = "Crawl and index the web or an existing archive and create a searchable index."
-manageaccount_element_num_crawls = "You have %s active crawls, %s previous crawl indexes."
-manageaccount_element_manage_crawls = "Manage Crawls and Indexes"
-manageaccount_element_query_statistics = "Search Query Statistics"
-manageaccount_element_manage_machines = "Manage Crawl Machines"
-manageaccount_element_crawl_mixes = "Crawl Mixes"
-manageaccount_element_mixes_info = "Present search results from multiple indexes in the order you prefer."
-manageaccount_element_num_mixes = "You have %s crawl mixes."
-manageaccount_element_num_mix = "You have %s crawl mix."
-manageaccount_element_manage_mixes = "Create/Manage Crawl Mixes"
-;
-; EditmixElement.php
-editmix_element_edit_mix = "Edit Crawl Mix"
-editmix_element_mix_name = "Mix Name"
-editmix_element_mix_components = "Mix Components"
-editmix_element_too_many = "At Maximum Number of Search Fragments!"
-editmix_element_add_fragment = "Add Search Result Fragment"
-editmix_element_save_button = "Save"
-;
-; QuerystatsElement.php
-querystats_element_query_statistics = "Search Query Statistics"
-querystats_element_filter = "Filter"
-querystats_element_go = "Go"
-querystats_element_last_hour = "Last Hour"
-querystats_element_last_day = "Last Day"
-querystats_element_last_month = "Last Month"
-querystats_element_last_year = "Last Year"
-querystats_element_all_time = "All Time"
-querystats_element_views = "Views"
-querystats_element_no_activity = "No Activity"
+; ChatfeedElement.php
+no_friends_message = "No friends yet!"
+groupfeed_element_add_group = "Add Group"
+groupfeed_element_request_add = "Request Add Group"
+groupfeed_element_combined_discussions = "Combined Discussions"
+groupfeed_element_thread_no_exist = "Thread does not exist! Maybe it was deleted?"
+not_friends_yet = "This user has not accepted the connection. Please wait until this user accepts your friend request."
+groupfeed_element_usericon = "User Icon"
+groupfeed_element_edited = "Edited: %s"
+groupfeed_element_comment = "Comment"
+groupfeed_element_feedplaces = "Feed Places"
+groupfeed_element_mygroups = "My Groups"
+groupfeed_element_userplaces = "User Places"
+groupfeed_element_group = "%s Group"
+groupfeed_element_group_wiki2 = "Group Wiki"
+groupfeed_element_group_places = "Group Places"
+groupfeed_element_recent_threads = "Recent Threads"
+groupfeed_element_recent_groups = "Recent Groups"
+groupfeed_element_drag_textarea = "Drag items into the textarea to add them..."
+groupfeed_element_click_textarea = "or click to select them."
+groupfeed_element_save = "Save"
+groupfeed_element_edit_post = "Edit Post"
+groupfeed_element_subject = "Subject"
+groupfeed_element_post = "Post"
+groupfeed_element_no_longer_update = "Group Feeds No Longer Updating!"
 ;
-; ManagegroupsElement.php
-managegroups_element_joinable_groups = "Joinable Groups"
-managegroups_element_subscribed_groups = "Subscribed Groups"
-managegroups_element_groupname = "Name"
-managegroups_element_groupowner = "Owner"
-managegroups_element_registertype = "Register"
-managegroups_element_memberaccess = "Access"
-managegroups_element_voting = "Voting"
-managegroups_element_post_lifetime = "Post Lifetime"
-managegroups_element_actions = "Actions"
-managegroups_element_join_fee = "Group Join Fee"
-managegroups_element_num_users = "%s users"
-managegroups_element_statistics = "Statistics"
-managegroups_element_group_wiki = "Wiki"
-managegroups_element_group_wiki_pages = "Pages"
-managegroups_element_join = "Join"
-managegroups_element_edit = "Edit"
-managegroups_element_delete = "Delete"
-managegroups_element_fee_warning = "There is a %s credit fee to join this group. Do you still want to join?"
-managegroups_element_num_credits = "(%s credits)"
-managegroups_element_decline = "Decline"
-managegroups_element_unsubscribe = "Unsubscribe"
-managegroups_element_delete_operation = "Are you sure you want to delete?"
-managegroups_element_group_info = "Edit Group"
-managegroups_element_create_group = "Create Group"
-managegroups_element_register = "Register"
-managegroups_element_encryption = "Encryption"
-managegroups_element_feed = "Feed"
-managegroups_element_import_discussions = "Import Discussions"
-managegroups_element_group_users = "Members"
-managegroups_element_with_selected = "With Selected"
-managegroups_element_ban = "Ban"
-managegroups_element_activate = "Activate"
-managegroups_element_name = "Name"
-managegroups_element_join_date = "Join Date"
-managegroups_element_status = "Status"
-managegroups_element_action = "Action"
-managegroups_element_filter = "Filter"
-managegroups_element_invite = "Invite More Users"
-managegroups_element_save = "Save"
-managegroups_element_invite_users_group = "Invite Users to Group"
-managegroups_element_usernames = "Usernames (space/comma delimited)"
-managegroups_element_transfer_group_owner = "Transfer Group Owner"
-managegroups_element_new_group_owner = "New Owner"
-managegroups_element_change_owner = "Change Owner"
-managegroups_element_group_statistics = "%s Group Statistics"
-managegroups_element_go = "Go"
-managegroups_element_group_views = "Group Views"
-managegroups_element_thread_views = "Thread Views"
-managegroups_element_wiki_views = "Wiki Views"
-managegroups_element_last_hour = "Last Hour"
-managegroups_element_last_day = "Last Day"
-managegroups_element_last_month = "Last Month"
-managegroups_element_last_year = "Last Year"
-managegroups_element_all_time = "All Time"
-managegroups_element_no_activity = "No Activity"
-managegroups_element_views = "Views"
-managegroups_element_search_joinable = "Search Joinable Groups"
-managegroups_element_search_subscribed = "Search Subscribed Groups"
-managegroups_element_hour = "Hour"
-managegroups_element_day = "Day"
-managegroups_element_month = "Month"
-managegroups_element_num_visits = "Number of Visits"
+; ConfigureElement.php
+configure_element_work_directory = "Search Engine Work Directory"
+configure_element_load_or_create = "Load or Create"
+configure_element_component_check = "Component Check"
+configure_element_profile_settings = "Profile Settings"
+configure_element_default_language = "Default Language:"
+configure_element_debug_display = "Debug Display"
+configure_element_error_info = "Error Info"
+configure_element_query_info = "Query Info"
+configure_element_test_info = "Test Info"
+configure_element_site_access = "Search Access"
+configure_element_web_access = "Web"
+configure_element_rss_access = "RSS"
+configure_element_api_access = "API"
+configure_element_crawl_robot = "Crawl Robot Set-up"
+configure_element_robot_name = "Crawl Robot Name:"
+configure_element_robot_instance = "Robot Instance:"
+configure_element_robot_description = "Robot Description"
+configure_element_save = "Save"
 ;
-; FooterElement.php
-footer_element_blog = "Blog"
-footer_element_privacy = "Privacy"
-footer_element_terms = "Terms"
-footer_element_bot = "ThisSiteBot"
-footer_element_developed_seek_quarry = "Developed at SeekQuarry"
-footer_element_translations_yandex = "Some Translations Powered by Yandex.translate"
-footer_element_copyright_site = "(c) This Site"
-footer_element_this_search_engine = "This Search Engine"
+; CrawloptionsElement.php
+crawloptions_element_modify_active_crawl = "Modify Active Crawl"
+crawloptions_element_edit_crawl_options = "Edit Crawl Options"
+crawloptions_element_web_crawl = "Web Crawl"
+crawloptions_element_archive_crawl = "Archive Crawl"
+crawloptions_element_load_options = "Get Crawl Options From:"
+crawloptions_element_page_options = "Page Processing Options"
+crawloptions_element_server_channel = "Server Channel:"
+crawloptions_element_no_machines = "No Configured Machines."
+crawloptions_element_crawl_order = "Crawl Order:"
+crawloptions_element_max_depth = "Max Depth:"
+crawloptions_element_repeat_type = "Repeat Type:"
+crawloptions_element_crawl_sleep = "Crawl Sleep:"
+crawloptions_element_sleep_start = "Start:"
+crawloptions_element_sleep_duration = "Duration:"
+crawloptions_element_robots_txt = "Robots.txt:"
+crawloptions_element_restrict_by_url = "Restrict Sites By Url:"
+crawloptions_element_allowed_to_crawl = "Allowed To Crawl Sites"
+crawloptions_element_disallowed_and_quota_sites = "Disallowed Sites/Sites with Quotas"
+crawloptions_element_seed_sites = "Seed Sites"
+crawloptions_element_add_suggest_urls = "Add User Suggest data"
+crawloptions_element_inject_sites = "Sites to Inject into Current Crawl"
+crawloptions_element_reindex_crawl = "Crawl or Arc Folder to Re-index:"
+crawloptions_element_need_api_for_mix = "Yioop API access required for mix archive crawls  "
+crawloptions_element_save = "Save"
 ;
-; WikiElement.php
-wiki_element_places = "Places:"
-wiki_element_redirect_to = "Redirects to:"
-wiki_element_page_no_exist = "%s page does not exist."
-wiki_element_create_edit = "You can create this page by selecting edit from the side menu."
-wiki_element_use_form = "Or use the form below to create it or to create or edit a different page."
-wiki_element_create_load_page = "Create or Load a Wiki Page"
-wiki_element_go = "Go"
-wiki_element_syntax_summary = "Wiki Syntax Guide"
-wiki_element_signin_edit = "If you have sufficient access you might be able to create the page by logging in and navigating back here."
-wiki_element_share_wall = "%s Share Wall"
-wiki_element_no_data_shared = "No data has been shared yet!"
-wiki_element_last_edited = "Last edited by  %s on %s."
-wiki_element_raw_content = "Raw Content"
-wiki_element_add_share = "Add or modify share content below."
-wiki_element_savebutton = "Save"
-wiki_element_locale_name = "Locale: %s"
-wiki_element_page = "Page: %s"
-wiki_element_resource_name = "Resource: %s"
-wiki_element_toggle_page_settings = "Settings"
-wiki_element_syntax = "Syntax"
-wiki_element_page_type = "Page Type:"
-wiki_element_page_alias = "Alias Page To:"
-wiki_element_url_to_shorten = "Url to Shorten:"
-wiki_element_short_url = "Shortened Url:"
-wiki_element_share_expires = "Expires:"
-wiki_element_page_border = "Page Border:"
-wiki_element_table_of_contents = "Table of Contents:"
-wiki_element_title = "Title:"
-wiki_element_meta_author = "Author:"
-wiki_element_meta_robots = "Meta Robots:"
-wiki_element_meta_description = "Meta Description:"
-wiki_element_alternative_path = "Resource Path:"
-wiki_element_empty_use_default = "Leave Blank to Use Default"
-wiki_element_page_header = "Header Page Name:"
-wiki_element_page_footer = "Footer Page Name:"
-wiki_element_archive_info = "To archive a page so it won&#039;t appear in search results delete its text and save."
-wiki_element_edit_reason = "Edit Reason:"
-wiki_element_closebutton = "Close"
-wiki_element_show = "Show"
-wiki_element_page_resources = "Page Resources"
-wiki_element_resources_info = "Resources are images, videos, or files associated with this page."
-wiki_element_rename_failed = "Rename Failed!"
-wiki_element_delete_operation = "Are you sure you want to delete?"
-wiki_element_list_view = "List"
-wiki_element_grid_view = "Grid"
-wiki_element_detail_view = "Detail"
-wiki_element_sort_order = "Sort Order"
-wiki_element_resource_filter = "Filter"
-wiki_element_clipboard = "Clipboard"
-wiki_element_upload_file = "Upload File"
-wiki_element_actions = "Actions"
-wiki_element_paste_all = "Paste All"
-wiki_element_empty_clipboard = "Empty Clipboard"
-wiki_element_no_clipboard_items = "The clipboard is currently empty."
-wiki_element_paste = "Paste %s"
-wiki_element_name = "Name"
-wiki_element_size = "Size"
-wiki_element_modified = "Modified"
-wiki_element_no_resources = "No resources have been saved to this page yet."
-wiki_element_video = "Video"
-wiki_element_audio = "Audio"
-wiki_element_rename = "Rename"
-wiki_element_add_to_page = "Add to Page"
-wiki_element_extract = "Extract"
-wiki_element_clip_copy = "Clip Copy"
-wiki_element_clip_cut = "Clip Cut"
-wiki_element_root_folder = "Root Folder"
-wiki_element_recent_places = "Recent Places"
-wiki_element_paths = "Resource Paths"
-wiki_element_recent_pages = "Recent Pages"
-wiki_element_recent_groups = "Recent Groups"
-wiki_element_login_for_recent = "Available after Sign-in"
-wiki_element_wiki_create_find = "Page Name to Create or Find"
-wiki_element_filter_or_create = "Search group page titles"
-wiki_element_create_page = "Create Page: %s"
-wiki_element_edit = "Edit"
-wiki_element_no_pages = "This group has no pages yet for the %s locale."
-wiki_element_no_cur_rel = "No Current Relationships"
-wiki_element_difference = "Difference:"
-wiki_element_diff_first = "First"
-wiki_element_diff_second = "Second"
-wiki_element_edited_by = "Edited by %s."
-wiki_element_page_len = "(%s bytes)."
-wiki_element_revert = "Revert"
-wiki_element_history = "History"
-wiki_element_discuss = "Discuss"
+; EditclassifierElement.php
+editclassifier_element_edit_classifier = "Edit Classifier"
+editclassifier_element_classifier_label = "Classifier Label:"
+editclassifier_element_change = "Change"
+editclassifier_element_statistics = "Statistics"
+editclassifier_element_positive_examples = "Positive Examples:"
+editclassifier_element_negative_examples = "Negative Examples:"
+editclassifier_element_accuracy = "Accuracy:"
+editclassifier_element_na = "N/A"
+editclassifier_element_update = "Update"
+editclassifier_element_add_examples = "Add Examples"
+editclassifier_element_source = "Source:"
+editclassifier_element_default_crawl = "Default Crawl"
+editclassifier_element_label_method = "Label Method"
+editclassifier_element_label_by_hand = "Label By Hand"
+editclassifier_element_all_in_class = "All In Class"
+editclassifier_element_none_in_class = "None In Class"
+editclassifier_element_keywords = "Keywords:"
+editclassifier_element_load = "Load"
+editclassifier_element_finalize = "Finalize"
+editclassifier_element_no_documents = "No Documents"
 ;
 ; EditlocalesElement.php
 editlocales_element_edit_locale = "Edit Locale: %s"
@@ -1223,6 +940,27 @@ editlocales_element_go = "Go"
 editlocales_element_no_matching = "No Matching Strings Left To Translate!"
 editlocales_element_save = "Save"
 ;
+; EditmixElement.php
+editmix_element_edit_mix = "Edit Crawl Mix"
+editmix_element_mix_name = "Mix Name"
+editmix_element_mix_components = "Mix Components"
+editmix_element_too_many = "At Maximum Number of Search Fragments!"
+editmix_element_add_fragment = "Add Search Result Fragment"
+editmix_element_save_button = "Save"
+;
+; Element.php
+element_settings_toggle = "Toggle"
+;
+; FooterElement.php
+footer_element_blog = "Blog"
+footer_element_privacy = "Privacy"
+footer_element_terms = "Terms"
+footer_element_bot = "ThisSiteBot"
+footer_element_developed_seek_quarry = "Developed at SeekQuarry"
+footer_element_translations_yandex = "Some Translations Powered by Yandex.translate"
+footer_element_copyright_site = "(c) This Site"
+footer_element_this_search_engine = "This Search Engine"
+;
 ; GroupbarElement.php
 groupbar_element_skip_nav = "Skip Navigation"
 groupbar_element_groups = "Groups"
@@ -1232,198 +970,8 @@ groupbar_element_page_thread = " %s Page at %s Group Discussion"
 groupbar_element_no_path_info = "No Path Info"
 groupbar_element_userfeed = "User: %s"
 ;
-; ManagemachinesElement.php
-managemachines_element_awaiting_status = "Awaiting statuses of machines..."
-managemachines_element_no_longer_update = "Machine status no longer updating..."
-;
-; AdminmenuElement.php
-adminmenu_element_welcome_user = "Welcome, %s"
-adminmenu_element_combined_discussions = "Combined Discussions"
-adminmenu_element_my_groups = "My Groups"
-adminmenu_element_join_groups = "Join Groups"
-adminmenu_element_signout = "Sign Out"
-;
-; SearchsourcesElement.php
-searchsources_element_channelpath = "Channel:"
-searchsources_element_item_regex = "Item Separator:"
-searchsources_element_titlepath = "Title:"
-searchsources_element_descpath = "Description:"
-searchsources_element_linkpath = "Link:"
-searchsources_element_image_xpath = "Image XPath:"
-searchsources_element_trending_stop_regex = "Trending Stop Term Regex:"
-searchsource_element_alt_link_text = "Alternative Link Tag:"
-searchsources_element_wiki_destination = "Wiki Destination:"
-searchsources_element_aux_url_xpath = "Aux Url XPaths:"
-searchsources_element_link_xpath_text = "Download Xpath:"
-searchsources_element_trend_category_group = "Group Within Category:"
-searchsources_element_trending_regex = "Trend Value Regex:"
-searchsources_element_media_sources = "Media Sources"
-searchsources_element_subsearches = "Subsearches"
-searchsources_element_media_updater = "Media Updater"
-searchsources_element_confirm_delete = "Do you really want to clear previously downloaded news feed data?"
-searchsources_element_clear_news_trending = "Clear Feeds and Trending Data"
-searchsources_element_medianame = "Name"
-searchsources_element_action = "Action"
-searchsources_element_sourcetype = "Type:"
-searchsources_element_locale_tag = "Language:"
-searchsources_element_category = "Category:"
-searchsources_element_expires = "Expires:"
-searchsources_element_url = "URL:"
-searchsources_element_editmedia = "Edit"
-searchsources_element_delete_operation = "Are you sure you want to delete?"
-searchsources_element_deletemedia = "Delete"
-searchsources_element_dirname = "Folder Name"
-searchsources_element_source = "Source:"
-searchsources_element_localestring = "Localization Identifier"
-searchsources_element_perpage = "Results per Page"
-searchsources_element_query_and_format = "Default Query and Format"
-searchsources_element_actions = "Actions"
-searchsources_element_landing = "Landing:"
-searchsources_element_trending_category = "Trend Category:"
-searchsources_element_not_applicable = "N/A"
-searchsources_element_trend_sort = "Sort:"
-searchsources_element_query = "Query:"
-searchsources_element_editsource = "Edit"
-searchsources_element_localize = "Localize"
-searchsources_element_deletesubsearch = "Delete"
-searchsources_element_edit_media_source = "Edit Media Source"
-searchsources_element_add_media_source = "Add Media Source"
-searchsources_element_sourcename = "Name:"
-searchsources_element_feed_instruct = "Provide xpaths to feed components below:"
-searchsources_element_regex_instruct = "Enter feed regexes. Regexes except Item separator should have 1 capture group."
-searchsources_element_item_text = "Item:"
-searchsources_element_save = "Save"
-searchsources_element_test = "Test"
-searchsources_element_edit_subsearch = "Edit Subsearch"
-searchsources_element_add_subsearch = "Add a Subsearch"
-searchsources_element_foldername = "Folder Name:"
-searchsources_element_per_page = "Results Per Page:"
-searchsources_element_landing_highlight = "Landing Priority:"
-searchsources_element_defaultquery = "Default Query:"
-searchsources_element_trend_category = "Category:"
-searchsources_element_search = "Search"
-;
-; SecurityElement.php
-security_element_session_captcha = "Session, Privacy, Captcha, and Recovery"
-security_element_session = "Session"
-security_element_site_timezone = "Timezone:"
-security_element_token_name = "Token Name:"
-security_element_session_name = "Session Name:"
-security_element_autologout = "Autologout:"
-security_element_consent_expires = "Cookie Consent Expires:"
-security_element_privacy = "Privacy"
-security_element_differential_privacy = "Differential Privacy:"
-security_element_group_analytics = "Group Analytics:"
-security_element_search_analytics = "Search Analytics:"
-security_element_captcha_type = "Captcha Type"
-security_element_recovery_type = "Recovery Type"
-security_element_edit_recovery = "Edit Account Recovery Questions"
-security_element_save = "Save"
-;
-; PageoptionsElement.php
-pageoptions_element_crawl_time = "Crawl Time"
-pageoptions_element_search_time = "Search Time"
-pageoptions_element_test_options = "Test Options"
-pageoptions_element_save_options = "Save"
-pageoptions_element_run_tests = "Test Process Page"
-pageoptions_element_load_options = "Get Page Options From:"
-pageoptions_element_crawl_options = "Crawl Url Options"
-pageoptions_element_page_range = "Byte Range to Download (0 - Value):"
-pageoptions_element_summarizer = "Summarizer:"
-pageoptions_element_max_description = "Max Page Summary Length in Bytes:"
-pageoptions_element_max_links_to_extract = "Max Links to Extract:"
-pageoptions_element_cache_pages = "Cache Whole Crawled Pages:"
-pageoptions_element_allow_recrawl = "Allow Page Recrawl After:"
-pageoptions_element_file_types = "Page File Types to Crawl:"
-pageoptions_element_classifiers_rankers = "Classifiers and Rankers"
-pageoptions_element_use_classify = "Use to Classify"
-pageoptions_element_use_rank = "Use to Rank"
-pageoptions_element_no_classifiers = "No classifiers."
-pageoptions_element_indexing_plugins = "Indexing Plugins"
-pageoptions_element_plugin = "Plugin"
-pageoptions_element_plugin_include = "Use in Crawl"
-pageoptions_element_configure = "Configure"
-pageoptions_element_no_compatible_plugins = "No compatible indexing plugins found!"
-pageoptions_element_page_rules = "Page Field Extraction Rules"
-pageoptions_element_search_page = "Search Page Elements and Links"
-pageoptions_element_wd_suggest = "Word Suggest"
-pageoptions_element_subsearch_link = "Subsearch"
-pageoptions_element_signin_link = "Signin"
-pageoptions_element_cache_link = "Cache"
-pageoptions_element_similar_link = "Similar"
-pageoptions_element_in_link = "Inlinks"
-pageoptions_element_ip_link = "IP Address"
-pageoptions_element_result_score = "Result Score"
-pageoptions_element_ranking_factors = "Search Ranking Factors"
-pageoptions_element_title_weight = "Title Weight:"
-pageoptions_element_description_weight = "Description Weight:"
-pageoptions_element_link_weight = "Link Weight:"
-pageoptions_element_results_grouping_options = "Search Results Grouping"
-pageoptions_element_min_results_to_group = "Minimum Results to Group:"
-pageoptions_element_test_page = "Test Page"
-pageoptions_element_uri = "URI:"
-pageoptions_element_page_type = "Type:"
-pageoptions_element_test_results = "Test Results"
-pageoptions_element_page_truncated = "Page truncated from %s to %s bytes."
-pageoptions_element_after_process = "After page processor extracts summary"
-pageoptions_element_after_rules = "After page rules applied"
-pageoptions_element_extracted_words = "Words and positions extracted to index from summary"
-pageoptions_element_extracted_questions = "Extracted Questions"
-pageoptions_element_extracted_metas = "Extracted meta words"
-pageoptions_element_page_process_times = "Page Processing Times"
-pageoptions_element_page_process_time = "Page Process Times:"
-pageoptions_element_rule_process_time = "Page Rule Process Times:"
-pageoptions_element_canon_time = "Canonicalize Terms:"
-pageoptions_element_term_pos_sentence_tag_time = "Term Pos and Sentence Tag Time:"
-pageoptions_element_qa_time = "Question Answer Extraction:"
-pageoptions_element_total_time = "Total Time:"
-pageoptions_element_time_seconds = "%s seconds"
-;
-; AdminElement.php
-admin_element_auto_logout_one_minute = "Auto-logout in One Minute!!"
-;
-; ServersettingsElement.php
-serversettings_element_server_settings = "Servers and Registration"
-serversettings_element_name_server = "Name Server Set-up"
-serversettings_element_restart = "Restart Server"
-serversettings_element_name_server_key = "Server Key:"
-serversettings_element_name_server_url = "Name Server URL:"
-serversettings_element_use_filecache = "Use Filecache:"
-serversettings_element_clear_cache = "Clear Cache"
-serversettings_element_database_setup = "Database Set-up"
-serversettings_element_database_system = "Database System:"
-serversettings_element_databasename = "Database Name:"
-serversettings_element_databasehost = "Hostname:"
-serversettings_element_databaseuser = "Database User:"
-serversettings_element_databasepassword = "Database Password:"
-serversettings_element_account_registration = "Account Registration"
-serversettings_element_mail_sender = "Sender Email:"
-serversettings_element_send_media_updater = "Send Mail From Media Updater"
-serversettings_element_use_php_mail = "Use PHP mail() function"
-serversettings_element_mail_server = "SMTP Server:"
-serversettings_element_mail_serverport = "Server Port:"
-serversettings_element_mail_username = "Mail Username:"
-serversettings_element_mail_password = "Mail Password:"
-serversettings_element_mail_security = "Mail Security:"
-serversettings_element_proxy_title = "Proxy Servers"
-serversettings_element_tor_proxy = "Tor Proxy  (.onion urls only):"
-serversettings_element_use_proxy_servers = "Crawl via Proxies"
-serversettings_element_proxy_servers = "Proxy Servers (One per line. Format: address:port or address:port:proxytype)"
-serversettings_element_monetization_config = "Monetization"
-serversettings_element_monetization_type = "Type"
-serversettings_element_no_payment_processing = "No Ad Payment Processing Script Configured"
-serversettings_element_purchase_processing = "Purchase Payment Scripts At Seekquarry.com"
-serversettings_element_ad_location = "Ad Location"
-serversettings_element_top = "Top"
-serversettings_element_side = "Side"
-serversettings_element_both = "Both"
-serversettings_element_none = "None"
-serversettings_element_global_adscript = "Global Element Ad Script"
-serversettings_element_top_adscript = "Top Element Ad Script"
-serversettings_element_side_adscript = "Side Element Ad Script"
-serversettings_element_bot_configuration = "Bot Configuration"
-serversettings_element_bot_settings = "Bot Settings"
-serversettings_element_save = "Save"
+; GroupElement.php
+group_element_auto_logout_one_minute = "Auto-logout in One Minute!!"
 ;
 ; GroupfeedElement.php
 groupfeed_element_add_group = "Add Group"
@@ -1445,6 +993,9 @@ groupfeed_element_edit = "Edit"
 groupfeed_element_confirm_delete = "Are your sure you want to delete this item?"
 groupfeed_element_delete = "Delete"
 groupfeed_element_usericon = "User Icon"
+groupfeed_public_posts = "Public Posts"
+groupfeed_chats = "Chats"
+groupfeed_connect = "Connect"
 groupfeed_element_num_posts = "%s posts"
 groupfeed_element_num_views = "%s views"
 groupfeed_element_edited = "Edited: %s"
@@ -1462,42 +1013,8 @@ groupfeed_element_group_wiki2 = "Group Wiki"
 groupfeed_element_group_places = "Group Places"
 groupfeed_element_recent_threads = "Recent Threads"
 groupfeed_element_recent_groups = "Recent Groups"
-groupfeed_element_edit_post = "Edit Post"
-groupfeed_element_no_longer_update = "Group Feeds No Longer Updating!"
-;
-; MediajobsElement.php
-mediajobs_element_configure_media_jobs = "Configure Media Jobs"
-mediajobs_element_mode = "Mode"
-mediajobs_element_nameserver = "Name Server"
-mediajobs_element_distributed = "Distributed"
-mediajobs_element_jobs_list = "Jobs List"
-mediajobs_element_job_name = "Job Name"
-mediajobs_element_run_status = "Run Status"
-mediajobs_element_on = "On"
-mediajobs_element_off = "Off"
-;
-; ManageclassifiersElement.php
-manageclassifiers_element_classifiers = "Classifiers"
-manageclassifiers_element_label_col = "Label"
-manageclassifiers_element_positive_col = "Positive"
-manageclassifiers_element_negative_col = "Negative"
-manageclassifiers_element_actions_col = "Actions"
-manageclassifiers_element_edit = "Edit"
-manageclassifiers_element_finalized = "Finalized"
-manageclassifiers_element_finalize = "Finalize"
-manageclassifiers_element_finalizing = "Finalizing"
-manageclassifiers_element_confirm = "Are you sure you want to delete?"
-manageclassifiers_element_delete = "Delete"
-manageclassifiers_element_add_classifier = "Add Classifier"
-manageclassifiers_element_classifier_name = "Name"
-manageclassifiers_element_create_button = "Create"
-manageclassifiers_element_element_search = "Search"
-;
-; StatisticsElement.php
-statistics_element_crawl_stats = "Crawl Statistics"
-statistics_element_recompute_stats = "Recompute"
-statistics_element_stats_scheduled = "Crawl statistics have been scheduled to be computed next time MediaUpdater run. "
-statistics_element_already_scheduled = "Crawl statistics have already been scheduled to be computed next time MediaUpdater run. "
+groupfeed_element_edit_post = "Edit Post"
+groupfeed_element_no_longer_update = "Group Feeds No Longer Updating!"
 ;
 ; GroupmenuElement.php
 groupmenu_element_admin_menu = "Admin Menu"
@@ -1521,90 +1038,254 @@ groupmenu_element_no_path_info = "No Path Info"
 groupmenu_element_userfeed = "User: %s"
 groupmenu_element_mygroups = "My Groups"
 ;
-; ConfigureElement.php
-configure_element_work_directory = "Search Engine Work Directory"
-configure_element_load_or_create = "Load or Create"
-configure_element_component_check = "Component Check"
-configure_element_profile_settings = "Profile Settings"
-configure_element_default_language = "Default Language:"
-configure_element_debug_display = "Debug Display"
-configure_element_error_info = "Error Info"
-configure_element_query_info = "Query Info"
-configure_element_test_info = "Test Info"
-configure_element_site_access = "Search Access"
-configure_element_web_access = "Web"
-configure_element_rss_access = "RSS"
-configure_element_api_access = "API"
-configure_element_crawl_robot = "Crawl Robot Set-up"
-configure_element_robot_name = "Crawl Robot Name:"
-configure_element_robot_instance = "Robot Instance:"
-configure_element_robot_description = "Robot Description"
-configure_element_save = "Save"
+; MachinelogElement.php
+machinelog_element_filter_log = "Filter"
+machinelog_element_go = "Go"
+machinelog_element_log_file = "%s Log File"
+machinelog_element_refresh_off = "Turn Auto Refresh Off"
+machinelog_element_refresh_on = "Turn Auto Refresh On"
 ;
-; CrawloptionsElement.php
-crawloptions_element_modify_active_crawl = "Modify Active Crawl"
-crawloptions_element_edit_crawl_options = "Edit Crawl Options"
-crawloptions_element_web_crawl = "Web Crawl"
-crawloptions_element_archive_crawl = "Archive Crawl"
-crawloptions_element_load_options = "Get Crawl Options From:"
-crawloptions_element_page_options = "Page Processing Options"
-crawloptions_element_server_channel = "Server Channel:"
-crawloptions_element_no_machines = "No Configured Machines."
-crawloptions_element_crawl_order = "Crawl Order:"
-crawloptions_element_max_depth = "Max Depth:"
-crawloptions_element_repeat_type = "Repeat Type:"
-crawloptions_element_crawl_sleep = "Crawl Sleep:"
-crawloptions_element_sleep_start = "Start:"
-crawloptions_element_sleep_duration = "Duration:"
-crawloptions_element_robots_txt = "Robots.txt:"
-crawloptions_element_restrict_by_url = "Restrict Sites By Url:"
-crawloptions_element_allowed_to_crawl = "Allowed To Crawl Sites"
-crawloptions_element_disallowed_and_quota_sites = "Disallowed Sites/Sites with Quotas"
-crawloptions_element_seed_sites = "Seed Sites"
-crawloptions_element_add_suggest_urls = "Add User Suggest data"
-crawloptions_element_inject_sites = "Sites to Inject into Current Crawl"
-crawloptions_element_reindex_crawl = "Crawl or Arc Folder to Re-index:"
-crawloptions_element_need_api_for_mix = "Yioop API access required for mix archive crawls  "
-crawloptions_element_save = "Save"
+; ManageaccountElement.php
+manageaccount_element_edit_or_no_text = "Toggle whether account information is editable"
+manageaccount_element_welcome = "Welcome, %s!"
+manageaccount_element_what_can_do = "From this page you can access and control aspects of your account."
+manageaccount_element_account_details = "Account Details"
+manageaccount_element_icon = "User Icon"
+manageaccount_element_username = "Username"
+manageaccount_element_firstname = "First Name"
+manageaccount_element_lastname = "Last Name"
+manageaccount_element_email = "Email"
+options_element_language_label = "Language:"
+manageaccount_element_is_bot = "Bot User:"
+manageaccount_element_bot_unique_token = "Bot Unique Token"
+manageaccount_element_bot_callback_url = "Bot Callback URL"
+manageaccount_element_password = "Password:"
+manageaccount_element_new_password = "New Password: "
+manageaccount_element_retype_password = "Retype: "
+manageaccount_element_new_recovery_qa = "Recovery Answers:"
+manageaccount_element_save = "Save"
+manageaccount_element_groups_and_feeds = "Groups and Feeds"
+manageaccount_element_group_info = "Create or subscribe to groups to communicate with friends. Each group has a discussion board and a wiki."
+manageaccount_element_num_groups = "You belong to %s groups."
+manageaccount_element_num_group = "You belong to 1 group."
+manageaccount_element_manage = "Manage"
+manageaccount_element_statistics = "Statistics"
+manageaccount_element_group_wiki = "Wiki"
+manageaccount_element_group_pages = "Pages"
+manageaccount_element_group_stats = "%s posts, %s threads"
+manageaccount_element_last_post = "Last Post:"
+manageaccount_element_recommendations = "Recommendations"
+manageaccount_element_rec_threads = "Threads:"
+manageaccount_element_rec_groups = "Groups:"
+manageaccount_element_go_to_combined_feed = "See Combined Discussions"
+manageaccount_element_go_to_groups = "See Your Groups"
+manageaccount_element_manage_groups = "Manage/Create Groups"
+manageaccount_element_join_groups = "Join Groups"
+manageaccount_element_crawl_and_index = "Crawls and Indexes"
+manageaccount_element_crawl_info = "Crawl and index the web or an existing archive and create a searchable index."
+manageaccount_element_num_crawls = "You have %s active crawls, %s previous crawl indexes."
+manageaccount_element_manage_crawls = "Manage Crawls and Indexes"
+manageaccount_element_query_statistics = "Search Query Statistics"
+manageaccount_element_manage_machines = "Manage Crawl Machines"
+manageaccount_element_crawl_mixes = "Crawl Mixes"
+manageaccount_element_mixes_info = "Present search results from multiple indexes in the order you prefer."
+manageaccount_element_num_mixes = "You have %s crawl mixes."
+manageaccount_element_num_mix = "You have %s crawl mix."
+manageaccount_element_manage_mixes = "Create/Manage Crawl Mixes"
+;
+; ManageadvertisementsElement.php
+manageadvertisements_element_list = "Advertisement List"
+manageadvertisements_element_adname = "Ad Name"
+manageadvertisements_element_username = "Username"
+manageadvertisements_element_keywords = "Keywords"
+manageadvertisements_element_budget = "Budget"
+manageadvertisements_element_dates = "Date"
+manageadvertisements_element_viewclicks = "Views/Clicks"
+manageadvertisements_element_status = "Status"
+manageadvertisements_element_actions = "Actions"
+manageadvertisements_element_active = "Active"
+manageadvertisements_element_deactivated = "Deactivated"
+manageadvertisements_element_suspended = "Suspended"
+manageadvertisements_element_completed = "Completed"
+manageadvertisements_element_edit = "Edit"
+manageadvertisements_element_deconfirm = "Deactivate this ad?"
+manageadvertisements_element_deactivate = "Deactivate"
+manageadvertisements_element_suspend = "Suspend"
+manageadvertisements_element_reconfirm = "Reactivate this ad?"
+manageadvertisements_element_reactivate = "Reactivate"
+manageadvertisements_element_ad_info = "Advertisement Information"
+manageadvertisements_element_purchase_ad = "Purchase Ad Listing"
+manageadvertisements_element_ad_user = "Ad Creator"
+manageadvertisements_element_displayname = "Ad Title"
+manageadvertisements_element_text = "Ad Body"
+manageadvertisements_element_ad_url = "Destination URL"
+manageeadvertisement_element_ad_duration = "Campaign Duration"
+manageeadvertisement_element_start_day = "Start day is day of purchase."
+manageeadvertisement_element_keywords = "Keywords"
+manageadvertisements_element_keyword_help = "Keywords you want to advertise for"
+manageadvertisements_element_keyword_bid_amount = "Minimum Bid Required"
+manageadvertisements_element_expensive_word = "Expensive word"
+manageadvertisements_element_calculate_bid = "Calculate Bid"
+manageadvertisements_element_update = "Update"
+manageadvertisements_element_buy_info = "Using the Purchase button deducts the Budget field amount from your %s available credits."
+manageadvertisements_element_buy_credits = "Buy more ad credits"
+manageadvertisements_element_edit_ad = "Edit Ad"
+manageadvertisements_element_purchase = "Purchase"
+manageadvertisements_element_preview = "Preview"
+manageadvertisements_element_search_advertisement = "Search"
+manageadvertisements_element_description = "Description"
+manageadvertisements_element_destination_url = "Destination URL"
+manageadvertisements_element_start_date = "Start Date"
+manageadvertisements_element_end_date = "End Date"
+;
+; ManageclassifiersElement.php
+manageclassifiers_element_classifiers = "Classifiers"
+manageclassifiers_element_label_col = "Label"
+manageclassifiers_element_positive_col = "Positive"
+manageclassifiers_element_negative_col = "Negative"
+manageclassifiers_element_actions_col = "Actions"
+manageclassifiers_element_edit = "Edit"
+manageclassifiers_element_finalized = "Finalized"
+manageclassifiers_element_finalize = "Finalize"
+manageclassifiers_element_finalizing = "Finalizing"
+manageclassifiers_element_confirm = "Are you sure you want to delete?"
+manageclassifiers_element_delete = "Delete"
+manageclassifiers_element_add_classifier = "Add Classifier"
+manageclassifiers_element_classifier_name = "Name"
+manageclassifiers_element_create_button = "Create"
+manageclassifiers_element_element_search = "Search"
+;
+; ManagecrawlsElement.php
+managecrawls_element_awaiting_status = "Awaiting Crawl Status"
+managecrawls_element_up_longer_update = "Crawl Status No Longer Updating"
+;
+; ManagecreditsElement.php
+managecredits_element_balance = "Balance: %s credits"
+managecredits_element_transactions = "Credit Transactions"
+managecredits_element_type = "Type"
+managecredits_element_amount = "Amount"
+managecredits_element_date = "Date"
+managecredits_element_total = "Total"
+managecredits_element_purchase_credits = "Purchase Credits"
+managecredit_element_num_credits = "Quantity"
+managecredit_element_card_number = "Credit Card Number"
+managecredit_element_cvc = "CVC"
+managecredit_element_expiration = "Expiration"
+managecredits_element_charge_warning = "Using the Purchase button charges the above card the Quantity field&#039;s amount in US dollars and agrees to the "
+managecredits_element_program_terms = "Program Terms"
+managecredits_element_purchase = "Purchase"
+managecredits_element_script_failure = "No Working Credit Card Script Found!"
+managecredits_element_search = "Search"
+advertisement_init_ledger = "Starting Balance"
+advertisement_buy_credits = "Buy Credits"
+advertisement_buy_ad = "Buy Ad"
+social_component_join_group_fee = "Join discussion group fee "
+;
+; ManagegroupsElement.php
+managegroups_element_joinable_groups = "Joinable Groups"
+managegroups_element_subscribed_groups = "Subscribed Groups"
+managegroups_element_groupname = "Name"
+managegroups_element_groupowner = "Owner"
+managegroups_element_registertype = "Register"
+managegroups_element_memberaccess = "Access"
+managegroups_element_voting = "Voting"
+managegroups_element_post_lifetime = "Post Lifetime"
+managegroups_element_actions = "Actions"
+managegroups_element_join_fee = "Group Join Fee"
+managegroups_element_num_users = "%s users"
+managegroups_element_statistics = "Statistics"
+managegroups_element_group_wiki = "Wiki"
+managegroups_element_group_wiki_pages = "Pages"
+managegroups_element_join = "Join"
+managegroups_element_edit = "Edit"
+managegroups_element_delete = "Delete"
+managegroups_element_fee_warning = "There is a %s credit fee to join this group. Do you still want to join?"
+managegroups_element_num_credits = "(%s credits)"
+managegroups_element_decline = "Decline"
+managegroups_element_unsubscribe = "Unsubscribe"
+managegroups_element_delete_operation = "Are you sure you want to delete?"
+managegroups_element_group_info = "Edit Group"
+managegroups_element_create_group = "Create Group"
+managegroups_element_register = "Register"
+managegroups_element_encryption = "Encryption"
+managegroups_element_feed = "Feed"
+managegroups_element_import_discussions = "Import Discussions"
+managegroups_element_group_users = "Members"
+managegroups_element_with_selected = "With Selected"
+managegroups_element_ban = "Ban"
+managegroups_element_activate = "Activate"
+managegroups_element_name = "Name"
+managegroups_element_join_date = "Join Date"
+managegroups_element_status = "Status"
+managegroups_element_action = "Action"
+managegroups_element_filter = "Filter"
+managegroups_element_invite = "Invite More Users"
+managegroups_element_save = "Save"
+managegroups_element_invite_users_group = "Invite Users to Group"
+managegroups_element_usernames = "Usernames (space/comma delimited)"
+managegroups_element_transfer_group_owner = "Transfer Group Owner"
+managegroups_element_new_group_owner = "New Owner"
+managegroups_element_change_owner = "Change Owner"
+managegroups_element_group_statistics = "%s Group Statistics"
+managegroups_element_go = "Go"
+managegroups_element_group_views = "Group Views"
+managegroups_element_thread_views = "Thread Views"
+managegroups_element_wiki_views = "Wiki Views"
+managegroups_element_last_hour = "Last Hour"
+managegroups_element_last_day = "Last Day"
+managegroups_element_last_month = "Last Month"
+managegroups_element_last_year = "Last Year"
+managegroups_element_all_time = "All Time"
+managegroups_element_no_activity = "No Activity"
+managegroups_element_views = "Views"
+managegroups_element_search_joinable = "Search Joinable Groups"
+managegroups_element_search_subscribed = "Search Subscribed Groups"
+managegroups_element_hour = "Hour"
+managegroups_element_day = "Day"
+managegroups_element_month = "Month"
+managegroups_element_num_visits = "Number of Visits"
+;
+; ManagelocalesElement.php
+managelocales_element_locale_list = "Locale List"
+managelocales_element_localename = "Name"
+managelocales_element_localetag = "Tag"
+managelocales_element_writingmode = "Mode"
+managelocales_element_enabled = "Enabled"
+managelocales_element_percenttranslated = "Percent"
+managelocales_element_actions = "Actions"
+managelocales_element_true = "true"
+managelocales_element_false = "false"
+managelocales_element_edit = "Edit"
+managelocales_confirm_delete = "Are you sure you want to delete?"
+managelocales_element_delete = "Delete"
+managelocales_element_locale_info = "Edit Locale"
+managelocales_element_add_locale = "Add Locale"
+managelocales_element_localenamelabel = "Locale Name:"
+managelocales_element_localetaglabel = "Locale Tag:"
+managelocales_element_writingmodelabel = "Writing Mode:"
+managelocales_element_localeenabled = "Locale Enabled:"
+managelocales_element_save = "Save"
+managelocales_element_search_locales = "Search Locales"
 ;
-; TrendingElement.php
-trending_element_hourly = "Top Hourly"
-trending_element_daily = "Top Daily"
-trending_element_weekly = "Top Weekly"
-trending_element_monthly = "Top Monthly"
-trending_element_yearly = "Yearly"
-trending_element_trending_terms = "Trending %s"
-trending_element_chart = "Chart"
-trending_element_term = "Term"
-trending_element_score = "Score"
-trending_element_date = "Computed %s"
-trending_element_trend_scores = "Trend Scores"
-trending_element_hourly_trend = "Hourly %s for %s for the Last Day"
-trending_element_daily_trend = "Daily %s for %s for the Last Week"
-trending_element_monthly_trend = "Weekly %s for %s for the Last Month"
-trending_element_yearly_trend = "Monthly %s for %s for the Last Year"
+; ManagemachinesElement.php
+managemachines_element_awaiting_status = "Awaiting statuses of machines..."
+managemachines_element_no_longer_update = "Machine status no longer updating..."
 ;
-; SearchElement.php
-admin_view_auto_logout_one_minute = "Auto-logout in One Minute!!"
-search_element_calculated = " %s seconds."
-search_element_results = "Showing %s - %s of %s"
-search_element_num_results = "(%s Results)"
-search_element_no_results = "No results found. Please try a different search."
-search_element_possible_answer = "Possible Answer:"
-search_element_word_cloud = "Words:"
-search_element_cache = "Cached"
-search_element_as_text = "View as text"
-search_element_similar = "Similar"
-search_element_inlink = "Inlinks"
-search_element_rank = "Rank:%s"
-search_element_relevancy = "Rel:%s"
-search_element_proximity = "Prox:%s"
-search_element_score = "Score:%s"
-search_element_score_pinned = "Score: Pinned Result"
-search_element_title = "Yioop - PHP Search Engine"
-search_element_input_label = "Enter the terms you would like to search the web for"
-search_element_input_placeholder = "Type what to find"
-search_element_search = "Search"
+; ManagerolesElement.php
+manageroles_element_roles = "Roles"
+manageroles_element_rolename = "Name"
+manageroles_element_actions = "Actions"
+manageroles_element_edit = "Edit"
+manageroles_element_delete = "Delete"
+manageroles_element_confirm_delete = "Are you sure you want to delete?"
+manageroles_element_role_info = "Role Information"
+manageroles_element_add_role = "Add Role"
+manageroles_element_role_activities = "Activities"
+manageroles_element_activity_name = "Name"
+manageroles_element_allowed_arguments = "Allowed Arguments"
+manageroles_element_activity_actions = "Actions"
+manageroles_element_save = "Save"
+manageroles_element_search_role = "Search"
 ;
 ; ManageusersElement.php
 manageusers_element_users = "Users"
@@ -1634,72 +1315,16 @@ manageusers_element_retype_password = "Retype Password"
 manageusers_element_save = "Save"
 manageusers_element_search_user = "Search"
 ;
-; ManageadvertisementsElement.php
-manageadvertisements_element_list = "Advertisement List"
-manageadvertisements_element_adname = "Ad Name"
-manageadvertisements_element_username = "Username"
-manageadvertisements_element_keywords = "Keywords"
-manageadvertisements_element_budget = "Budget"
-manageadvertisements_element_dates = "Date"
-manageadvertisements_element_viewclicks = "Views/Clicks"
-manageadvertisements_element_status = "Status"
-manageadvertisements_element_actions = "Actions"
-manageadvertisements_element_active = "Active"
-manageadvertisements_element_deactivated = "Deactivated"
-manageadvertisements_element_suspended = "Suspended"
-manageadvertisements_element_completed = "Completed"
-manageadvertisements_element_edit = "Edit"
-manageadvertisements_element_deconfirm = "Deactivate this ad?"
-manageadvertisements_element_deactivate = "Deactivate"
-manageadvertisements_element_suspend = "Suspend"
-manageadvertisements_element_reconfirm = "Reactivate this ad?"
-manageadvertisements_element_reactivate = "Reactivate"
-manageadvertisements_element_ad_info = "Advertisement Information"
-manageadvertisements_element_purchase_ad = "Purchase Ad Listing"
-manageadvertisements_element_ad_user = "Ad Creator"
-manageadvertisements_element_displayname = "Ad Title"
-manageadvertisements_element_text = "Ad Body"
-manageadvertisements_element_ad_url = "Destination URL"
-manageeadvertisement_element_ad_duration = "Campaign Duration"
-manageeadvertisement_element_start_day = "Start day is day of purchase."
-manageeadvertisement_element_keywords = "Keywords"
-manageadvertisements_element_keyword_help = "Keywords you want to advertise for"
-manageadvertisements_element_keyword_bid_amount = "Minimum Bid Required"
-manageadvertisements_element_expensive_word = "Expensive word"
-manageadvertisements_element_calculate_bid = "Calculate Bid"
-manageadvertisements_element_update = "Update"
-manageadvertisements_element_buy_info = "Using the Purchase button deducts the Budget field amount from your %s available credits."
-manageadvertisements_element_buy_credits = "Buy more ad credits"
-manageadvertisements_element_edit_ad = "Edit Ad"
-manageadvertisements_element_purchase = "Purchase"
-manageadvertisements_element_preview = "Preview"
-manageadvertisements_element_search_advertisement = "Search"
-manageadvertisements_element_description = "Description"
-manageadvertisements_element_destination_url = "Destination URL"
-manageadvertisements_element_start_date = "Start Date"
-manageadvertisements_element_end_date = "End Date"
-;
-; EditclassifierElement.php
-editclassifier_element_edit_classifier = "Edit Classifier"
-editclassifier_element_classifier_label = "Classifier Label:"
-editclassifier_element_change = "Change"
-editclassifier_element_statistics = "Statistics"
-editclassifier_element_positive_examples = "Positive Examples:"
-editclassifier_element_negative_examples = "Negative Examples:"
-editclassifier_element_accuracy = "Accuracy:"
-editclassifier_element_na = "N/A"
-editclassifier_element_update = "Update"
-editclassifier_element_add_examples = "Add Examples"
-editclassifier_element_source = "Source:"
-editclassifier_element_default_crawl = "Default Crawl"
-editclassifier_element_label_method = "Label Method"
-editclassifier_element_label_by_hand = "Label By Hand"
-editclassifier_element_all_in_class = "All In Class"
-editclassifier_element_none_in_class = "None In Class"
-editclassifier_element_keywords = "Keywords:"
-editclassifier_element_load = "Load"
-editclassifier_element_finalize = "Finalize"
-editclassifier_element_no_documents = "No Documents"
+; MediajobsElement.php
+mediajobs_element_configure_media_jobs = "Configure Media Jobs"
+mediajobs_element_mode = "Mode"
+mediajobs_element_nameserver = "Name Server"
+mediajobs_element_distributed = "Distributed"
+mediajobs_element_jobs_list = "Jobs List"
+mediajobs_element_job_name = "Job Name"
+mediajobs_element_run_status = "Run Status"
+mediajobs_element_on = "On"
+mediajobs_element_off = "Off"
 ;
 ; MixcrawlsElement.php
 mixcrawls_element_available_mixes = "Mixes"
@@ -1720,34 +1345,76 @@ mixcrawls_element_create_button = "Create"
 mixcrawls_element_search_mix = "Search"
 mixcrawls_element_mixname = "Mix Name"
 ;
-; ManagelocalesElement.php
-managelocales_element_locale_list = "Locale List"
-managelocales_element_localename = "Name"
-managelocales_element_localetag = "Tag"
-managelocales_element_writingmode = "Mode"
-managelocales_element_enabled = "Enabled"
-managelocales_element_percenttranslated = "Percent"
-managelocales_element_actions = "Actions"
-managelocales_element_true = "true"
-managelocales_element_false = "false"
-managelocales_element_edit = "Edit"
-managelocales_confirm_delete = "Are you sure you want to delete?"
-managelocales_element_delete = "Delete"
-managelocales_element_locale_info = "Edit Locale"
-managelocales_element_add_locale = "Add Locale"
-managelocales_element_localenamelabel = "Locale Name:"
-managelocales_element_localetaglabel = "Locale Tag:"
-managelocales_element_writingmodelabel = "Writing Mode:"
-managelocales_element_localeenabled = "Locale Enabled:"
-managelocales_element_save = "Save"
-managelocales_element_search_locales = "Search Locales"
+; PageoptionsElement.php
+pageoptions_element_crawl_time = "Crawl Time"
+pageoptions_element_search_time = "Search Time"
+pageoptions_element_test_options = "Test Options"
+pageoptions_element_save_options = "Save"
+pageoptions_element_run_tests = "Test Process Page"
+pageoptions_element_load_options = "Get Page Options From:"
+pageoptions_element_crawl_options = "Crawl Url Options"
+pageoptions_element_page_range = "Byte Range to Download (0 - Value):"
+pageoptions_element_summarizer = "Summarizer:"
+pageoptions_element_max_description = "Max Page Summary Length in Bytes:"
+pageoptions_element_max_links_to_extract = "Max Links to Extract:"
+pageoptions_element_cache_pages = "Cache Whole Crawled Pages:"
+pageoptions_element_allow_recrawl = "Allow Page Recrawl After:"
+pageoptions_element_file_types = "Page File Types to Crawl:"
+pageoptions_element_classifiers_rankers = "Classifiers and Rankers"
+pageoptions_element_use_classify = "Use to Classify"
+pageoptions_element_use_rank = "Use to Rank"
+pageoptions_element_no_classifiers = "No classifiers."
+pageoptions_element_indexing_plugins = "Indexing Plugins"
+pageoptions_element_plugin = "Plugin"
+pageoptions_element_plugin_include = "Use in Crawl"
+pageoptions_element_configure = "Configure"
+pageoptions_element_no_compatible_plugins = "No compatible indexing plugins found!"
+pageoptions_element_page_rules = "Page Field Extraction Rules"
+pageoptions_element_search_page = "Search Page Elements and Links"
+pageoptions_element_wd_suggest = "Word Suggest"
+pageoptions_element_subsearch_link = "Subsearch"
+pageoptions_element_signin_link = "Signin"
+pageoptions_element_cache_link = "Cache"
+pageoptions_element_similar_link = "Similar"
+pageoptions_element_in_link = "Inlinks"
+pageoptions_element_ip_link = "IP Address"
+pageoptions_element_result_score = "Result Score"
+pageoptions_element_ranking_factors = "Search Ranking Factors"
+pageoptions_element_title_weight = "Title Weight:"
+pageoptions_element_description_weight = "Description Weight:"
+pageoptions_element_link_weight = "Link Weight:"
+pageoptions_element_results_grouping_options = "Search Results Grouping"
+pageoptions_element_min_results_to_group = "Minimum Results to Group:"
+pageoptions_element_test_page = "Test Page"
+pageoptions_element_uri = "URI:"
+pageoptions_element_page_type = "Type:"
+pageoptions_element_test_results = "Test Results"
+pageoptions_element_page_truncated = "Page truncated from %s to %s bytes."
+pageoptions_element_after_process = "After page processor extracts summary"
+pageoptions_element_after_rules = "After page rules applied"
+pageoptions_element_extracted_words = "Words and positions extracted to index from summary"
+pageoptions_element_extracted_questions = "Extracted Questions"
+pageoptions_element_extracted_metas = "Extracted meta words"
+pageoptions_element_page_process_times = "Page Processing Times"
+pageoptions_element_page_process_time = "Page Process Times:"
+pageoptions_element_rule_process_time = "Page Rule Process Times:"
+pageoptions_element_canon_time = "Canonicalize Terms:"
+pageoptions_element_term_pos_sentence_tag_time = "Term Pos and Sentence Tag Time:"
+pageoptions_element_qa_time = "Question Answer Extraction:"
+pageoptions_element_total_time = "Total Time:"
+pageoptions_element_time_seconds = "%s seconds"
 ;
-; MachinelogElement.php
-machinelog_element_filter_log = "Filter"
-machinelog_element_go = "Go"
-machinelog_element_log_file = "%s Log File"
-machinelog_element_refresh_off = "Turn Auto Refresh Off"
-machinelog_element_refresh_on = "Turn Auto Refresh On"
+; QuerystatsElement.php
+querystats_element_query_statistics = "Search Query Statistics"
+querystats_element_filter = "Filter"
+querystats_element_go = "Go"
+querystats_element_last_hour = "Last Hour"
+querystats_element_last_day = "Last Day"
+querystats_element_last_month = "Last Month"
+querystats_element_last_year = "Last Year"
+querystats_element_all_time = "All Time"
+querystats_element_views = "Views"
+querystats_element_no_activity = "No Activity"
 ;
 ; ResultseditorElement.php
 resultseditor_element_edit_results = "Edit Results"
@@ -1785,6 +1452,35 @@ scrapers_element_save = "Save"
 scrapers_element_search = "Search"
 scrapers_element_name = "Name"
 ;
+; SearchbarElement.php
+searchbar_element_skip_nav = "Skip Navigation"
+searchbar_element_title = "Yioop - PHP Search Engine"
+searchbar_element_input_label = "Enter the terms you would like to search the web for"
+searchbar_element_input_placeholder = "Type what to find"
+searchbar_element_search = "Search"
+;
+; SearchElement.php
+admin_view_auto_logout_one_minute = "Auto-logout in One Minute!!"
+search_element_calculated = " %s seconds."
+search_element_results = "Showing %s - %s of %s"
+search_element_num_results = "(%s Results)"
+search_element_no_results = "No results found. Please try a different search."
+search_element_possible_answer = "Possible Answer:"
+search_element_word_cloud = "Words:"
+search_element_cache = "Cached"
+search_element_as_text = "View as text"
+search_element_similar = "Similar"
+search_element_inlink = "Inlinks"
+search_element_rank = "Rank:%s"
+search_element_relevancy = "Rel:%s"
+search_element_proximity = "Prox:%s"
+search_element_score = "Score:%s"
+search_element_score_pinned = "Score: Pinned Result"
+search_element_title = "Yioop - PHP Search Engine"
+search_element_input_label = "Enter the terms you would like to search the web for"
+search_element_input_placeholder = "Type what to find"
+search_element_search = "Search"
+;
 ; SearchmenuElement.php
 searchmenu_element_admin_menu = "Admin Menu"
 searchmenu_element_welcome = "Welcome"
@@ -1805,82 +1501,247 @@ searchmenu_element_wiki_pages = "Wiki Pages"
 searchmenu_element_suggest = "Suggest A URL"
 searchmenu_element_tools = "Tools"
 ;
-; ManagerolesElement.php
-manageroles_element_roles = "Roles"
-manageroles_element_rolename = "Name"
-manageroles_element_actions = "Actions"
-manageroles_element_edit = "Edit"
-manageroles_element_delete = "Delete"
-manageroles_element_confirm_delete = "Are you sure you want to delete?"
-manageroles_element_role_info = "Role Information"
-manageroles_element_add_role = "Add Role"
-manageroles_element_role_activities = "Activities"
-manageroles_element_activity_name = "Name"
-manageroles_element_allowed_arguments = "Allowed Arguments"
-manageroles_element_activity_actions = "Actions"
-manageroles_element_save = "Save"
-manageroles_element_search_role = "Search"
-;
-; AppearanceElement.php
-appearance_element_use_wiki_landing = "Use Wiki Public Main Page as Landing Page:"
-appearance_element_search_page_components = "Adjust Search Page Components"
-appearance_element_background_color = "Background Color:"
-appearance_element_background_image = "Background Image:"
-appearance_element_foreground_color = "Foreground Color:"
-appearance_element_topbar_color = "Top Bar Color:"
-appearance_element_sidebar_color = "Side Bar Color:"
-appearance_element_large_logo = "Large Logo:"
-appearance_element_medium_logo = "Medium Logo:"
-appearance_element_small_logo = "Small Logo:"
-appearance_element_favicon = "Favicon:"
-appearance_element_toolbar = "Search Toolbar"
-appearance_element_auxiliary_css = "Auxiliary Style Directives"
-appearance_element_reset_customizations = "Reset Customizations"
-appearance_element_save = "Save"
+; SearchsourcesElement.php
+searchsources_element_channelpath = "Channel:"
+searchsources_element_item_regex = "Item Separator:"
+searchsources_element_titlepath = "Title:"
+searchsources_element_descpath = "Description:"
+searchsources_element_linkpath = "Link:"
+searchsources_element_image_xpath = "Image XPath:"
+searchsources_element_trending_stop_regex = "Trending Stop Term Regex:"
+searchsource_element_alt_link_text = "Alternative Link Tag:"
+searchsources_element_wiki_destination = "Wiki Destination:"
+searchsources_element_aux_url_xpath = "Aux Url XPaths:"
+searchsources_element_link_xpath_text = "Download Xpath:"
+searchsources_element_trend_category_group = "Group Within Category:"
+searchsources_element_trending_regex = "Trend Value Regex:"
+searchsources_element_media_sources = "Media Sources"
+searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = "Media Updater"
+searchsources_element_confirm_delete = "Do you really want to clear previously downloaded news feed data?"
+searchsources_element_clear_news_trending = "Clear Feeds and Trending Data"
+searchsources_element_medianame = "Name"
+searchsources_element_action = "Action"
+searchsources_element_sourcetype = "Type:"
+searchsources_element_locale_tag = "Language:"
+searchsources_element_category = "Category:"
+searchsources_element_expires = "Expires:"
+searchsources_element_url = "URL:"
+searchsources_element_editmedia = "Edit"
+searchsources_element_delete_operation = "Are you sure you want to delete?"
+searchsources_element_deletemedia = "Delete"
+searchsources_element_dirname = "Folder Name"
+searchsources_element_source = "Source:"
+searchsources_element_localestring = "Localization Identifier"
+searchsources_element_perpage = "Results per Page"
+searchsources_element_query_and_format = "Default Query and Format"
+searchsources_element_actions = "Actions"
+searchsources_element_landing = "Landing:"
+searchsources_element_trending_category = "Trend Category:"
+searchsources_element_not_applicable = "N/A"
+searchsources_element_trend_sort = "Sort:"
+searchsources_element_query = "Query:"
+searchsources_element_editsource = "Edit"
+searchsources_element_localize = "Localize"
+searchsources_element_deletesubsearch = "Delete"
+searchsources_element_edit_media_source = "Edit Media Source"
+searchsources_element_add_media_source = "Add Media Source"
+searchsources_element_sourcename = "Name:"
+searchsources_element_feed_instruct = "Provide xpaths to feed components below:"
+searchsources_element_regex_instruct = "Enter feed regexes. Regexes except Item separator should have 1 capture group."
+searchsources_element_item_text = "Item:"
+searchsources_element_save = "Save"
+searchsources_element_test = "Test"
+searchsources_element_edit_subsearch = "Edit Subsearch"
+searchsources_element_add_subsearch = "Add a Subsearch"
+searchsources_element_foldername = "Folder Name:"
+searchsources_element_per_page = "Results Per Page:"
+searchsources_element_landing_highlight = "Landing Priority:"
+searchsources_element_defaultquery = "Default Query:"
+searchsources_element_trend_category = "Category:"
+searchsources_element_search = "Search"
 ;
-; SuggestView.php
-suggest_view_suggest_url = "Suggest A URL"
-suggest_view_instructions = "Suggest a site for the next web crawl. Up to ten sites per day can be accepted."
-suggest_view_url = "URL:"
-suggest_view_human_check = "Human Check:"
-suggest_view_submit_url = "Submit"
-suggest_view_return = "Return to Yioop"
+; SecurityElement.php
+security_element_session_captcha = "Session, Privacy, Captcha, and Recovery"
+security_element_session = "Session"
+security_element_site_timezone = "Timezone:"
+security_element_token_name = "Token Name:"
+security_element_session_name = "Session Name:"
+security_element_autologout = "Autologout:"
+security_element_consent_expires = "Cookie Consent Expires:"
+security_element_privacy = "Privacy"
+security_element_differential_privacy = "Differential Privacy:"
+security_element_group_analytics = "Group Analytics:"
+security_element_search_analytics = "Search Analytics:"
+security_element_captcha_type = "Captcha Type"
+security_element_recovery_type = "Recovery Type"
+security_element_edit_recovery = "Edit Account Recovery Questions"
+security_element_save = "Save"
 ;
-; /src/views/layouts
+; ServersettingsElement.php
+serversettings_element_server_settings = "Servers and Registration"
+serversettings_element_name_server = "Name Server Set-up"
+serversettings_element_restart = "Restart Server"
+serversettings_element_name_server_key = "Server Key:"
+serversettings_element_name_server_url = "Name Server URL:"
+serversettings_element_use_filecache = "Use Filecache:"
+serversettings_element_clear_cache = "Clear Cache"
+serversettings_element_database_setup = "Database Set-up"
+serversettings_element_database_system = "Database System:"
+serversettings_element_databasename = "Database Name:"
+serversettings_element_databasehost = "Hostname:"
+serversettings_element_databaseuser = "Database User:"
+serversettings_element_databasepassword = "Database Password:"
+serversettings_element_account_registration = "Account Registration"
+serversettings_element_mail_sender = "Sender Email:"
+serversettings_element_send_media_updater = "Send Mail From Media Updater"
+serversettings_element_use_php_mail = "Use PHP mail() function"
+serversettings_element_mail_server = "SMTP Server:"
+serversettings_element_mail_serverport = "Server Port:"
+serversettings_element_mail_username = "Mail Username:"
+serversettings_element_mail_password = "Mail Password:"
+serversettings_element_mail_security = "Mail Security:"
+serversettings_element_proxy_title = "Proxy Servers"
+serversettings_element_tor_proxy = "Tor Proxy  (.onion urls only):"
+serversettings_element_use_proxy_servers = "Crawl via Proxies"
+serversettings_element_proxy_servers = "Proxy Servers (One per line. Format: address:port or address:port:proxytype)"
+serversettings_element_monetization_config = "Monetization"
+serversettings_element_monetization_type = "Type"
+serversettings_element_no_payment_processing = "No Ad Payment Processing Script Configured"
+serversettings_element_purchase_processing = "Purchase Payment Scripts At Seekquarry.com"
+serversettings_element_ad_location = "Ad Location"
+serversettings_element_top = "Top"
+serversettings_element_side = "Side"
+serversettings_element_both = "Both"
+serversettings_element_none = "None"
+serversettings_element_global_adscript = "Global Element Ad Script"
+serversettings_element_top_adscript = "Top Element Ad Script"
+serversettings_element_side_adscript = "Side Element Ad Script"
+serversettings_element_bot_configuration = "Bot Configuration"
+serversettings_element_bot_settings = "Bot Settings"
+serversettings_element_save = "Save"
 ;
-; WebLayout.php
-web_layout_title = "This Search Engine - This Site"
-web_layout_description = "This Search Engine Site needs to be described. Software from Seekquarry.com"
-web_layout_site_author = "Chris Pollett"
-web_layout_query_statistics = "Query Statistics"
-web_layout_total_elapsed_time = "Total Elapsed Time for Queries: %s seconds."
-web_layout_query_time = "Time: %s seconds."
-web_layout_cookie_uses = "We use cookies to implement this site&#039;s user functionality, social media features, and traffic analytics."
-web_layout_privacy_policy = "Privacy Policy Details"
-web_layout_allow_cookies = "Allow Cookies"
+; StatisticsElement.php
+statistics_element_crawl_stats = "Crawl Statistics"
+statistics_element_recompute_stats = "Recompute"
+statistics_element_stats_scheduled = "Crawl statistics have been scheduled to be computed next time MediaUpdater run. "
+statistics_element_already_scheduled = "Crawl statistics have already been scheduled to be computed next time MediaUpdater run. "
 ;
-; RssLayout.php
-rss_layout_title = "PHP Search Engine - Yioop! : %s"
-rss_layout_description = "Search results for: %s"
+; TrendingElement.php
+trending_element_hourly = "Top Hourly"
+trending_element_daily = "Top Daily"
+trending_element_weekly = "Top Weekly"
+trending_element_monthly = "Top Monthly"
+trending_element_yearly = "Yearly"
+trending_element_trending_terms = "Trending %s"
+trending_element_chart = "Chart"
+trending_element_term = "Term"
+trending_element_score = "Score"
+trending_element_date = "Computed %s"
+trending_element_trend_scores = "Trend Scores"
+trending_element_hourly_trend = "Hourly %s for %s for the Last Day"
+trending_element_daily_trend = "Daily %s for %s for the Last Week"
+trending_element_monthly_trend = "Weekly %s for %s for the Last Month"
+trending_element_yearly_trend = "Monthly %s for %s for the Last Year"
 ;
-; View.php
-view_locale_version = "11"
-view_logo_alt_text = "Yioop"
+; WikiElement.php
+wiki_element_places = "Places:"
+wiki_element_redirect_to = "Redirects to:"
+wiki_element_page_no_exist = "%s page does not exist."
+wiki_element_create_edit = "You can create this page by selecting edit from the side menu."
+wiki_element_use_form = "Or use the form below to create it or to create or edit a different page."
+wiki_element_create_load_page = "Create or Load a Wiki Page"
+wiki_element_go = "Go"
+wiki_element_syntax_summary = "Wiki Syntax Guide"
+wiki_element_signin_edit = "If you have sufficient access you might be able to create the page by logging in and navigating back here."
+wiki_element_share_wall = "%s Share Wall"
+wiki_element_no_data_shared = "No data has been shared yet!"
+wiki_element_last_edited = "Last edited by  %s on %s."
+wiki_element_raw_content = "Raw Content"
+wiki_element_add_share = "Add or modify share content below."
+wiki_element_savebutton = "Save"
+wiki_element_locale_name = "Locale: %s"
+wiki_element_page = "Page: %s"
+wiki_element_resource_name = "Resource: %s"
+wiki_element_toggle_page_settings = "Settings"
+wiki_element_syntax = "Syntax"
+wiki_element_page_type = "Page Type:"
+wiki_element_page_alias = "Alias Page To:"
+wiki_element_url_to_shorten = "Url to Shorten:"
+wiki_element_short_url = "Shortened Url:"
+wiki_element_share_expires = "Expires:"
+wiki_element_page_border = "Page Border:"
+wiki_element_table_of_contents = "Table of Contents:"
+wiki_element_title = "Title:"
+wiki_element_meta_author = "Author:"
+wiki_element_meta_robots = "Meta Robots:"
+wiki_element_meta_description = "Meta Description:"
+wiki_element_alternative_path = "Resource Path:"
+wiki_element_empty_use_default = "Leave Blank to Use Default"
+wiki_element_page_header = "Header Page Name:"
+wiki_element_page_footer = "Footer Page Name:"
+wiki_element_archive_info = "To archive a page so it won&#039;t appear in search results delete its text and save."
+wiki_element_edit_reason = "Edit Reason:"
+wiki_element_closebutton = "Close"
+wiki_element_show = "Show"
+wiki_element_page_resources = "Page Resources"
+wiki_element_resources_info = "Resources are images, videos, or files associated with this page."
+wiki_element_rename_failed = "Rename Failed!"
+wiki_element_delete_operation = "Are you sure you want to delete?"
+wiki_element_list_view = "List"
+wiki_element_grid_view = "Grid"
+wiki_element_detail_view = "Detail"
+wiki_element_sort_order = "Sort Order"
+wiki_element_resource_filter = "Filter"
+wiki_element_clipboard = "Clipboard"
+wiki_element_upload_file = "Upload File"
+wiki_element_actions = "Actions"
+wiki_element_paste_all = "Paste All"
+wiki_element_empty_clipboard = "Empty Clipboard"
+wiki_element_no_clipboard_items = "The clipboard is currently empty."
+wiki_element_paste = "Paste %s"
+wiki_element_name = "Name"
+wiki_element_size = "Size"
+wiki_element_modified = "Modified"
+wiki_element_no_resources = "No resources have been saved to this page yet."
+wiki_element_video = "Video"
+wiki_element_audio = "Audio"
+wiki_element_rename = "Rename"
+wiki_element_add_to_page = "Add to Page"
+wiki_element_extract = "Extract"
+wiki_element_clip_copy = "Clip Copy"
+wiki_element_clip_cut = "Clip Cut"
+wiki_element_root_folder = "Root Folder"
+wiki_element_recent_places = "Recent Places"
+wiki_element_paths = "Resource Paths"
+wiki_element_recent_pages = "Recent Pages"
+wiki_element_recent_groups = "Recent Groups"
+wiki_element_login_for_recent = "Available after Sign-in"
+wiki_element_wiki_create_find = "Page Name to Create or Find"
+wiki_element_filter_or_create = "Search group page titles"
+wiki_element_create_page = "Create Page: %s"
+wiki_element_edit = "Edit"
+wiki_element_no_pages = "This group has no pages yet for the %s locale."
+wiki_element_no_cur_rel = "No Current Relationships"
+wiki_element_difference = "Difference:"
+wiki_element_diff_first = "First"
+wiki_element_diff_second = "Second"
+wiki_element_edited_by = "Edited by %s."
+wiki_element_page_len = "(%s bytes)."
+wiki_element_revert = "Revert"
+wiki_element_history = "History"
+wiki_element_discuss = "Discuss"
 ;
 ; /src/views/helpers
 ;
-; SearchformHelper.php
-searchform_helper_any = "Any"
-searchform_helper_search = "Search"
-;
-; PagingtableHelper.php
-pagingtable_helper_show = "Show"
-pagingtable_helper_row_range = "Row %s to %s of %s"
-pagingtable_helper_search = "Search"
-pagingtable_helper_add = "Add"
+; CloseHelper.php
+close_helper_close = "Close"
 ;
-; OptionsHelper.php
-option_helper_go = "Go"
+; FeedsHelper.php
+feeds_helper_view_feed_results = "News Results for %s"
+feeds_helper_view_onehour = "1 hour ago"
+feeds_helper_view_minsecs = "%s m %s s ago"
+feeds_helper_view_hourdate = "%s hours ago"
 ;
 ; FileuploadHelper.php
 fileupload_helper_drag_textarea = "Drag items into the textarea to add them..."
@@ -1896,15 +1757,6 @@ basic_js_upload_error = "Upload Error!"
 basic_js_upload_cancelled = "Upload Canceled!"
 basic_js_too_many_files = "Trying to add too many files!"
 ;
-; ImagesHelper.php
-images_helper_view_image_results = "View More Image Results..."
-;
-; CloseHelper.php
-close_helper_close = "Close"
-;
-; VideourlHelper.php
-videourl_helper_videothumb = "Video Thumb"
-;
 ; HelpbuttonHelper.php
 helpbutton_helper_question_mark = "?"
 helpbutton_helper_edit = "Edit"
@@ -1913,20 +1765,197 @@ helpbutton_helper_create_edit = "You can create this page by selecting edit from
 helpbutton_helper_page_no_exist = "%s page does not exist."
 helpbutton_helper_read = "Read"
 ;
-; FeedsHelper.php
-feeds_helper_view_feed_results = "News Results for %s"
-feeds_helper_view_onehour = "1 hour ago"
-feeds_helper_view_minsecs = "%s m %s s ago"
-feeds_helper_view_hourdate = "%s hours ago"
+; ImagesHelper.php
+images_helper_view_image_results = "View More Image Results..."
+;
+; OptionsHelper.php
+option_helper_go = "Go"
 ;
 ; PaginationHelper.php
 pagination_helper_previous = "Prev"
 pagination_helper_next = "Next"
 ;
+; PagingtableHelper.php
+pagingtable_helper_show = "Show"
+pagingtable_helper_row_range = "Row %s to %s of %s"
+pagingtable_helper_search = "Search"
+pagingtable_helper_add = "Add"
+;
+; SearchformHelper.php
+searchform_helper_any = "Any"
+searchform_helper_search = "Search"
+;
 ; ToggleHelper.php
 toggle_helper_on = "On"
 toggle_helper_off = "Off"
 ;
+; VideourlHelper.php
+videourl_helper_videothumb = "Video Thumb"
+;
+; /src/views/layouts
+;
+; RssLayout.php
+rss_layout_title = "PHP Search Engine - Yioop! : %s"
+rss_layout_description = "Search results for: %s"
+;
+; WebLayout.php
+web_layout_title = "This Search Engine - This Site"
+web_layout_description = "This Search Engine Site needs to be described. Software from Seekquarry.com"
+web_layout_site_author = "Chris Pollett"
+web_layout_query_statistics = "Query Statistics"
+web_layout_total_elapsed_time = "Total Elapsed Time for Queries: %s seconds."
+web_layout_query_time = "Time: %s seconds."
+web_layout_cookie_uses = "We use cookies to implement this site&#039;s user functionality, social media features, and traffic analytics."
+web_layout_privacy_policy = "Privacy Policy Details"
+web_layout_allow_cookies = "Allow Cookies"
+;
+; MachinestatusView.php
+machinestatus_view_machine_statuses = "Machine Statuses"
+machinestatus_view_manage_crawls = "Manage Crawls"
+machinestatus_view_media_updater = "Media Updater"
+machinestatus_view_configure_media_jobs = "Configure Media Jobs"
+machinestatus_view_media_sources = "Media Sources"
+machinestatus_view_nameserver = "Name Server"
+machinestatus_view_log = "Log"
+machinestatus_view_machines = "Machines"
+machinestatus_view_add_machine = "Add Machine"
+machinestatus_view_machine_name = "Name:"
+machinestatus_view_machineurl = "URL:"
+machinestatus_view_machine_channel_type = "Channel Type:"
+machinestatus_view_parent_name = "Parent Name:"
+machinestatus_view_num_fetchers = "Number of Fetchers:"
+machinestatus_view_save = "Save"
+machinestatus_view_confirm = "Are you sure you want to delete?"
+machinestatus_view_delete = "Delete"
+machinestatus_view_channel = "Channel:%s"
+machinestatus_view_parent = "Parent:%s"
+machinestatus_view_not_configured = "Machine Not Configured!"
+machinestatus_view_mirror = "Mirror"
+machinestatus_view_queue_server = "Queue Server"
+machinestatus_view_no_queue_server = "Machine has no queue server"
+machinestatus_view_no_fetchers = "Machine has no fetchers"
+machinestatus_view_fetchers = "Fetchers"
+;
+; MediadetailView.php
+media_view_video = "Video"
+media_view_audio = "Audio"
+mediadetail_view_num_files = "Number of Files:"
+mediadetail_view_name = "Name"
+mediadetail_view_rename = "Rename"
+mediadetail_view_add_to_page = "Add to Page"
+mediadetail_view_extract = "Extract"
+mediadetail_view_clip_copy = "Clip Copy"
+mediadetail_view_clip_cut = "Clip Cut"
+mediadetail_element_modified = "Modified:"
+mediadetail_element_size = "Size:"
+mediadetail_element_description = "Description"
+mediadetail_view_save = "Save"
+;
+; NocacheView.php
+nocache_view_media_not_found = "File Not Found!"
+nocache_view_no_cache = "Did not have cache of requested item."
+nocache_view_summary_contents = "Summary Data stored in Yioop for Item"
+;
+; RecoverView.php
+recover_view_recover_password = "Recover Account"
+recover_view_new_password = "New Password"
+recover_view_retypepassword = "Re-type password:"
+recover_view_username = "Username:"
+recover_view_account_recovery = "Recovery Info"
+recover_view_human_check = "Human Check:"
+recover_view_privacy_i_agree = " I agree to this site&#039;s use of cookies for user functionality, social media features, and traffic analytics and I agree to the"
+recover_view_terms = "terms"
+recover_view_and = " and "
+recover_view_privacy = "privacy policy"
+recover_view_period = "."
+recover_view_return = "Return to Yioop"
+;
+; RegisterView.php
+register_view_recovery1_more = "Animal you like the best:"
+register_view_recovery1_less = "Animal you like the least:"
+register_view_recovery1_choices = "ant,bunny,cat,cockroach,dog,goldfish,hamster,horse,snake,spider,tiger,whale"
+register_view_recovery2_more = "Color you like the most:"
+register_view_recovery2_less = "Color you like the least:"
+register_view_recovery2_choices = "no color,aquamarine,blue,brown,gold,green,gray,mauve,pink,periwinkle,purple,red,silver,turquoise,yellow"
+register_view_recovery3_more = "Food you like the most:"
+register_view_recovery3_less = "Food you like the least:"
+register_view_recovery3_choices = "apple,banana,chicken,fish,lamb,nuts,orange,pork,potato,tomato,steak"
+register_view_recovery4_more = "Drink you like the most:"
+register_view_recovery4_less = "Drink you like the least:"
+register_view_recovery4_choices = "apple juice,beer,coffee,hot tea,ice tea,lemonade,orange juice,soda,sparkling water,still water,wine"
+register_view_recovery5_more = "Game you like the most:"
+register_view_recovery5_less = "Game you like the least:"
+register_view_recovery5_choices = "basketball,backgammon,checkers,chess,football,hockey,skate,ski,tennis,volleyball"
+register_view_recovery6_more = "Sound you like the most:"
+register_view_recovery6_less = "Sound you like the least:"
+register_view_recovery6_choices = "accordian,drum,flute,guitar,harmonica,harp,horn,oboe,piano,triangle,trumpet,violin,whistle,xylophone"
+register_view_create_account = "Create Account"
+register_view_firstname = "First Name:"
+register_view_lastname = "Last Name:"
+register_view_username = "Username:"
+register_view_email = "Email:"
+register_view_password = "Password:"
+register_view_retypepassword = "Re-type password:"
+register_view_account_recovery = "Recovery Info:"
+register_view_human_check = "Human Check:"
+register_view_privacy_i_agree = "By creating an account, I agree to this site&#039;s use of cookies for user functionality, social media features, and traffic analytics and I agree to the"
+register_view_terms = "Yioop Terms"
+register_view_and = "and"
+register_view_privacy = "Privacy Policy"
+register_view_period = "."
+register_view_return = "Return to Yioop"
+;
+; ResendEmailView.php
+resendemail_view_resend_activation = "Resend Activation"
+resendemail_view_username = "Username:"
+resendemail_view_human_check = "Human Check:"
+resendemail_view_privacy_i_agree = " I agree to this site&#039;s use of cookies for user functionality, social media features, and traffic analytics and I agree to the"
+resendemail_view_terms = "terms"
+resendemail_view_and = " and "
+resendemail_view_privacy = "privacy policy"
+resendemail_view_period = "."
+resendemail_view_resend_email = "Resend Email"
+resendemail_view_return = "Return"
+;
+; SigninView.php
+signin_view_signin = "Signin"
+signin_view_username = "Username"
+signin_view_password = "Password"
+signin_view_privacy_i_agree = "By signing in, I agree to this site&#039;s use of cookies for user functionality, social media features, and traffic analytics and I agree to the"
+signin_view_terms = "terms"
+signin_view_and = " and "
+signin_view_privacy = "privacy policy"
+signin_view_period = "."
+signin_view_login = "Login"
+signin_view_recover_password = "Forgot Password?"
+signin_view_create_account = "Create Account"
+signin_view_resend_activation = "Resend Activation Email"
+signin_view_return = "Return"
+;
+; StaticView.php
+static_view_title = "PHP Search Engine - Yioop!"
+static_view_places = "Places:"
+;
+; SuggestView.php
+suggest_view_suggest_url = "Suggest A URL"
+suggest_view_instructions = "Suggest a site for the next web crawl. Up to ten sites per day can be accepted."
+suggest_view_url = "URL:"
+suggest_view_human_check = "Human Check:"
+suggest_view_submit_url = "Submit"
+suggest_view_return = "Return to Yioop"
+;
+; TestsView.php
+tests_view_tests = "Tests"
+tests_view_run_all_tests = "Run all Tests"
+tests_view_available_tests = "Available Tests"
+tests_view_phantomjs_required = "Phantom JS is required"
+tests_view_elasped_time = "Time:"
+tests_view_tests_passed = "tests passed"
+;
+; View.php
+view_locale_version = "11"
+view_logo_alt_text = "Yioop"
+;
 ; /src/library/indexing_plugins
 ;
 ; WordfilterPlugin.php
@@ -1934,4 +1963,4 @@ wordfilter_plugin_settings_saved = "Word Filter Settings Saved!"
 wordfilter_plugin_defaults_restored = "Defaults restored!"
 wordfilter_plugin_preferences = "Word Filter Preferences"
 wordfilter_plugin_factory_settings = "Factory Settings"
-wordfilter_plugin_save = "Save"
+wordfilter_plugin_save = "Save"
\ No newline at end of file
diff --git a/src/models/GroupModel.php b/src/models/GroupModel.php
index 2fec09f34..5f737b25b 100644
--- a/src/models/GroupModel.php
+++ b/src/models/GroupModel.php
@@ -607,6 +607,67 @@ class GroupModel extends Model implements MediaConstants
         }
         return $groups;
     }
+    /* Get friends for a user's personal group*/
+    public function getPersonalGroupUsers($group_id)
+    {
+        $db = $this->db;
+        $sql = "SELECT USER_ID from USER_GROUP where group_id = ?";
+        $result = $db->execute($sql, [$group_id]);
+        $groups = [];
+        while ($group = $db->fetchArray($result)) {
+            $groups[] = $group['USER_ID'];
+        }
+        return $groups;
+    }
+    /* Get a user's username*/
+    public function getUserName($user_id)
+    {
+        $db = $this->db;
+        $sql = "SELECT USER_NAME from USERS where user_id = ?";
+        $result = $db->execute($sql, [$user_id]);
+        while ($group = $db->fetchArray($result)) {
+            $username = $group['USER_NAME'];
+        }
+        return $username;
+    }
+    /* Get a thread based on user_id and title*/
+    public function getGroupThreadItem($user_id, $title)
+    {
+        $db = $this->db;
+        $sql = "SELECT * from group_item where user_id=? and title=?";
+        $result = $db->execute($sql, [$user_id, $title]);
+        $groups = [];
+        while ($group = $db->fetchArray($result)) {
+            $groups[] = $group;
+        }
+        return $groups[0]["PARENT_ID"];
+    }
+    /* Unique users for given parent_id thread*/
+    public function uniqueThreadUsers($parent_id, $count = false)
+    {
+        $db = $this->db;
+        $sql = "SELECT PARENT_ID, USER_ID from GROUP_ITEM where
+            PARENT_ID=? GROUP BY PARENT_ID, USER_ID;";
+        $result = $db->execute($sql, [$parent_id]);
+        $rows = [];
+        while ($row = $db->fetchArray($result)) {
+            $rows[] = $row;
+        }
+        if ($count) {
+            if ($rows) {
+                return count($rows);
+            } else {
+                return 0;
+            }
+        } else {
+            $unqiueUsers = [];
+            foreach ($rows as $row) {
+                array_push($unqiueUsers,$row["USER_ID"]);
+            }
+            return $unqiueUsers;
+        }
+
+    }
     /**
      * Get a count of the number of groups to which user_id belongs.
      *
@@ -722,10 +783,15 @@ class GroupModel extends Model implements MediaConstants
      * @param int $item_id the item to get info about
      * @return array row from GROUP_FEED table
      */
-    public function getGroupItem($item_id)
+    public function getGroupItem($item_id, $group_id = false)
     {
         $db = $this->db;
-        $sql = "SELECT * FROM GROUP_ITEM WHERE ID=? " . $db->limitOffset(1);
+        if ($group_id) {
+            $sql = "SELECT * FROM GROUP_ITEM WHERE GROUP_ID=? " .
+            $db->limitOffset(1);
+        } else {
+            $sql = "SELECT * FROM GROUP_ITEM WHERE ID=? " . $db->limitOffset(1);
+        }
         $result = $db->execute($sql, [$item_id]);
         if (!$result) {
             return false;
@@ -1402,7 +1468,7 @@ class GroupModel extends Model implements MediaConstants
      */
     public function getPageType($unparsed_page)
     {
-        if(preg_match('/^.*page_type\s*\=\s*(\w+).*END\_HEAD\_VARS/s',
+        if (preg_match('/^.*page_type\s*\=\s*(\w+).*END\_HEAD\_VARS/s',
             $unparsed_page, $matches)) {
             return $matches[1];
         }
@@ -3342,7 +3408,7 @@ EOD;
             $file_size = strlen($data);
             $vcs->headPutContents("$folder/$file_name", $data);
         }
-        $this->makeThumbStripExif($file_name, $folder, $thumb_folder,
+        $this->makeThumbStripExif ($file_name, $folder, $thumb_folder,
             $mime_type);
         if (C\nsdefined('FFMPEG') && in_array($mime_type, [
             'video/mp4', 'video/webm', 'video/ogg', 'video/avi',
@@ -3444,7 +3510,7 @@ EOD;
      * @param string $mime_type the mime type of the file
      * @return bool whether a thumb was made or not
      */
-    function makeThumbStripExif($file_name, $folder, $thumb_folder,
+    function makeThumbStripExif ($file_name, $folder, $thumb_folder,
         $mime_type = "")
     {
         if ($mime_type == "") {
@@ -3503,10 +3569,10 @@ EOD;
      */
     public function getClipboardResourceNames($user_id)
     {
-        if(($clip_group_id = $this->getPersonalGroupId($user_id)) < 0) {
+        if (($clip_group_id = $this->getPersonalGroupId($user_id)) < 0) {
             return false;
         }
-        if(!($clip_page_id = $this->getPageId($clip_group_id,
+        if (!($clip_page_id = $this->getPageId($clip_group_id,
             C\CLIPBOARD_PAGE_NAME, C\DEFAULT_LOCALE) ) ) {
             $clip_page_id = $this->setPageName($user_id, $clip_group_id,
                 C\CLIPBOARD_PAGE_NAME, "page_type=media_list\n\nEND_HEAD_VARS" .
@@ -3536,10 +3602,10 @@ EOD;
      */
     public function emptyClipFolder($user_id)
     {
-        if(($clip_group_id = $this->getPersonalGroupId($user_id)) < 0) {
+        if (($clip_group_id = $this->getPersonalGroupId($user_id)) < 0) {
             return false;
         }
-        if(!($clip_page_id = $this->getPageId($clip_group_id,
+        if (!($clip_page_id = $this->getPageId($clip_group_id,
             C\CLIPBOARD_PAGE_NAME, C\DEFAULT_LOCALE) ) ) {
             return false;
         }
@@ -3568,10 +3634,10 @@ EOD;
     public function pasteAllClipFolder($user_id, $group_id, $page_id,
         $sub_path = "")
     {
-        if(($clip_group_id = $this->getPersonalGroupId($user_id)) < 0) {
+        if (($clip_group_id = $this->getPersonalGroupId($user_id)) < 0) {
             return false;
         }
-        if(!($clip_page_id = $this->getPageId($clip_group_id,
+        if (!($clip_page_id = $this->getPageId($clip_group_id,
             C\CLIPBOARD_PAGE_NAME, C\DEFAULT_LOCALE) ) ) {
             return false;
         }
@@ -3587,7 +3653,7 @@ EOD;
         $resource_paths = glob("$clip_folder/*");
         foreach ($resource_paths as $resource_path) {
             $resource_name = substr($resource_path, $clip_folder_len);
-            if(!$this->pasteFromClipFolder($user_id,
+            if (!$this->pasteFromClipFolder($user_id,
                 $resource_name, $group_id, $page_id, $sub_path)) {
                 return false;
             }
@@ -3735,10 +3801,10 @@ EOD;
         }
         list($folder, $thumb_folder, $base_folder, ) = $folders;
         $file_path =  "$folder/$resource_name";
-        if(($clip_group_id = $this->getPersonalGroupId($user_id)) < 0) {
+        if (($clip_group_id = $this->getPersonalGroupId($user_id)) < 0) {
             return false;
         }
-        if(!($clip_page_id = $this->getPageId($clip_group_id,
+        if (!($clip_page_id = $this->getPageId($clip_group_id,
             C\CLIPBOARD_PAGE_NAME, C\DEFAULT_LOCALE) ) ) {
             return false;
         }
@@ -3882,7 +3948,7 @@ EOD;
             } else if ($thumb_folder && !$resource['is_dir'] &&
                 time() < $time + C\PAGE_TIMEOUT/2) {
                 $resource['has_thumb'] =
-                    $this->makeThumbStripExif($name, $folder, $thumb_folder);
+                    $this->makeThumbStripExif ($name, $folder, $thumb_folder);
             }
             if ($resource['is_writable'] && ($might_have_animated_thumb &&
                 !$resource['has_animated_thumb'])
@@ -4078,4 +4144,4 @@ EOD;
         }
         return $bots;
     }
-}
+}
\ No newline at end of file
diff --git a/src/views/elements/ChatfeedElement.php b/src/views/elements/ChatfeedElement.php
new file mode 100644
index 000000000..68c653096
--- /dev/null
+++ b/src/views/elements/ChatfeedElement.php
@@ -0,0 +1,891 @@
+<?php
+/**
+ * SeekQuarry/Yioop --
+ * Open Source Pure PHP Search Engine, Crawler, and Indexer
+ *
+ * Copyright (C) 2009 - 2021  Chris Pollett chris@pollett.org
+ *
+ * LICENSE:
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ * END LICENSE
+ *
+ * @author Chris Pollett chris@pollett.org
+ * @license https://www.gnu.org/licenses/ GPL3
+ * @link https://www.seekquarry.com/
+ * @copyright 2009 - 2021
+ * @filesource
+ */
+namespace seekquarry\yioop\views\elements;
+
+use seekquarry\yioop as B;
+use seekquarry\yioop\configs as C;
+use seekquarry\yioop\library as L;
+use seekquarry\yioop\library\CrawlConstants;
+
+/**
+ * Element responsible for draw the feeds a user is subscribed to
+ *
+ * @author Chris Pollett
+ */
+class ChatfeedElement extends Element implements CrawlConstants
+{
+    /**
+     * Draws the Feeds for the Various Groups a User is a associated with.
+     *
+     * @param array $data feed items should be prepared by the controller
+     *     and stored in the $data['PAGES'] variable.
+     *     makes use of the CSRF token for anti CSRF attacks
+     */
+    public function render($data)
+    {
+        if (empty($data["PAGES"][0])) {?>
+            <div class="chats">
+                <div class="friend-request-warning"
+                    style="margin-bottom:550px;margin-left:18%;">
+                    <?= tl("no_friends_message")?>
+                </div>
+            </div><?php
+            return;
+        }
+        $logged_in = !empty($data["ADMIN"]);
+        $is_status = isset($data['STATUS']);
+        $is_api = !empty($data['API']);
+        ?>
+        <!-- <script>console.log("api: "+$is_api);</script> -->
+        <?php
+        $token_string = ($logged_in) ? C\CSRF_TOKEN . "=".
+            $data[C\CSRF_TOKEN] : "";
+        $base_query = B\feedsUrl("", "", true, $data['CONTROLLER']) .
+            $token_string;
+        $paging_query = $data['PAGING_QUERY'] . $token_string;
+        if (!$is_status && !$is_api) {?>
+            <?php
+            if ($logged_in) {
+                if (isset($data['SUBSCRIBE_LINK'])) {
+                    ?><div class="float-same group-request-add"><?php
+                    if ($data['SUBSCRIBE_LINK'] == C\PUBLIC_JOIN) {
+                        e('[<a href="' . $paging_query . '&amp;arg=addgroup">'.
+                        tl('groupfeed_element_add_group').
+                        '</a>]');
+                    } else if ($data['SUBSCRIBE_LINK'] != C\NO_JOIN) {
+                        e('[<a href="' . $paging_query . '&amp;arg=addgroup">'.
+                        tl('groupfeed_element_request_add').
+                        '</a>]');
+                    }
+                    ?></div>
+                    <?php
+                }
+            }
+            if (!$_SERVER["MOBILE"] &&
+                isset($data["AD_LOCATION"]) &&
+                in_array($data["AD_LOCATION"], ['side', 'both'] ) ) { ?>
+                <div class="side-adscript"><?=$data['SIDE_ADSCRIPT'] ?></div>
+                <?php
+            }
+        }
+        $data['TOTAL_ROWS'] = empty($data['TOTAL_ROWS']) ? 0 :
+            $data['TOTAL_ROWS'];
+        $data['MODE'] = "ungrouped";
+        $this->renderUngroupedView($logged_in, $base_query,
+            $paging_query, $data);
+        if (!$is_api && !$is_status && $logged_in) {
+            $thread_type = intval($data['JUST_THREAD'] ?? 0); ?>
+            <?php
+            $this->renderScripts($data, true);
+        }
+    }
+    /**
+     * Used to draw feed items as a combined thread of all groups
+     *
+     * @param bool $logged_in where or not the session is of a logged in user
+     * @param string $base_query url that serves as the stem for all links
+     *      drawn in view
+     * @param string $paging_query base_query concatenated with limit and num
+     * @param array &$data fields used to draw the queue
+     * @return array $page last feed item processed
+     */
+    public function renderUngroupedView($logged_in, $base_query, $paging_query,
+        &$data)
+    {
+        $is_api = !empty($data['API']);
+        $is_status = !empty($data['STATUS']);
+        $open_in_tabs = $data['OPEN_IN_TABS'];
+        $time = time();
+        $can_comment = [C\GROUP_READ_COMMENT, C\GROUP_READ_WRITE,
+            C\GROUP_READ_WIKI];
+        $start_thread = [C\GROUP_READ_WRITE, C\GROUP_READ_WIKI];
+        if (!isset($data['GROUP_STATUS']) ||
+            $data['GROUP_STATUS'] != C\ACTIVE_STATUS) {
+            $can_comment = [];
+            $start_thread = [];
+        }
+        $token_string = ($logged_in) ? C\CSRF_TOKEN . "=".
+            $data[C\CSRF_TOKEN] : "";
+        $no_follow = ($token_string) ? " rel='nofollow' " : "";
+        $page = [];
+        $member_access = (!empty($data['WIKI_MEMBER_ACCESS'])) ?
+            $data['WIKI_MEMBER_ACCESS'] : (
+            (empty($data['PAGES'][0]["MEMBER_ACCESS"])) ?
+            C\NOT_MEMBER_STATUS : $data['PAGES'][0]["MEMBER_ACCESS"]);
+        $parent_id = (!empty($data['WIKI_PARENT_ID'])) ?
+            $data['WIKI_PARENT_ID'] : (
+            (empty($data['PAGES'][0]["PARENT_ID"])) ?
+            -1 : $data['PAGES'][0]["PARENT_ID"]);
+        $group_id = (!empty($data['WIKI_GROUP_ID'])) ?
+            $data['WIKI_GROUP_ID'] : (
+            (empty($data['PAGES'][0]["GROUP_ID"])) ?
+            -1 : $data['PAGES'][0]["GROUP_ID"]);
+        $is_thread = !empty($data['JUST_THREAD']);
+        $is_group = !empty($data['JUST_GROUP_ID']);
+        $is_user = !empty($data['JUST_USER_ID']);
+        $is_page_with_comments = ($data['ELEMENT'] == 'wiki');
+        $is_all_feed = !$is_thread && !$is_group && !$is_page_with_comments &&
+            !$is_user;
+        if ($is_all_feed && !$is_api && !$is_status) {?>
+            <h2 class='feed-heading'><?=
+            tl('groupfeed_element_combined_discussions') ?></h2><?php
+        }
+        if (!$is_api && !$is_status &&
+            in_array($member_access, $can_comment)) {
+            if ($is_group && in_array($member_access, $start_thread)) {
+                $this->drawStartThreadForm($data['JUST_GROUP_ID'], $data);
+            } else if ($is_page_with_comments) {
+                $data['page_type'] = 'page_and_feedback';
+                $this->drawCommentForm($parent_id, $group_id, $data);
+            }
+        }
+        if (!$is_api && !$is_status && !empty($data['NO_POSTS_YET'])) {
+            if (isset($data['NO_POSTS_START_THREAD'])) {
+                //no read case where no posts yet
+                $this->drawStartThreadForm($data['JUST_GROUP_ID'], $data);
+            }
+            if ($is_thread && !$is_page_with_comments) {
+                $this->drawCommentForm($parent_id, $group_id, $data);
+            }
+        }
+        if (!$is_api && !$is_status) {?>
+            <div id="results-container" data-time="<?=time() ?>"><?php
+            if ($data['LIMIT'] > 0 && !$is_page_with_comments) {
+                $this->view->helper("pagination")->singleButtonPagination(
+                    $paging_query, $data['LIMIT'], $data['RESULTS_PER_PAGE'],
+                    $data['TOTAL_ROWS'], false, $logged_in, true);
+            }
+        }
+        if (isset($data['NO_POSTS_IN_THREAD']) && $data['JUST_THREAD'] >= 0) {
+            ?>
+            <div class="button-group-result red medium-font" ><?=
+            tl('groupfeed_element_thread_no_exist') ?></div>
+            <?php
+        }
+        $first_page = !$is_page_with_comments && $data['LIMIT'] == 0;
+        $old_pubdate = -1;
+        $now = time();
+        ?> <div style="display:inline-block;width:100%;">
+        <div id="user-card-container" class="user-card-container">
+        <?php
+            $is_thread = false;
+            $this->ungroupedViewHelper($logged_in, $data, 0, $now,
+            $old_pubdate, $time, $is_thread, $start_thread,
+            $can_comment, $is_group, $first_page, $no_follow,
+            $token_string, $open_in_tabs);
+        ?></div>
+        <div id="user-chats-container" class="user-chats-container">
+        <?php
+            if (isset($data['GROUP_ID']) && !isset($data['JUST_THREAD_ID'])) {
+                $is_group = false;
+                $this->ungroupedViewHelper($logged_in, $data, 1, $now,
+                $old_pubdate, $time, $is_thread, $start_thread,
+                $can_comment, $is_group, $first_page, $no_follow,
+                $token_string, $open_in_tabs);
+                $is_thread = true;
+                if (!$is_api && !$is_status) {
+                    if ($is_all_feed) {
+                        $paging_query .= "&amp;v=ungrouped";
+                    }
+                    $this->view->helper("pagination")->singleButtonPagination(
+                        $paging_query, $data['LIMIT'], $data['RESULTS_PER_PAGE'],
+                        $data['TOTAL_ROWS'], false, $logged_in);?>
+                    </div><?php
+                }
+                if (!$is_api && !$is_status && !empty($data['PAGES'][1])) {
+                    if ($is_thread && $logged_in && !$is_status &&
+                        !$is_page_with_comments && isset($data['GROUP_STATUS'])
+                            && $data['GROUP_STATUS'] == C\ACTIVE_STATUS) {
+                        $this->drawCommentForm($data['PAGES'][1][0]['PARENT_ID'],
+                            $data["CHATS_ID"], $data);
+                    }
+                }
+            } else { ?>
+               <script>
+                    document.getElementById("user-card-container").style.height =
+                        (window.screen.height * 0.55)+ "px";
+                    document.getElementById("user-chats-container").style.height =
+                        (window.screen.height * 0.55)+ "px";
+                    document.getElementById("results-container").style.overflowY =
+                        "hidden";
+               </script>
+            <?php
+            }?>
+        </div>
+        <?php
+        if (!$is_api) {?>
+            </div><?php
+        }
+    }
+    public function ungroupedViewHelper($logged_in, &$data, $page_value, $now,
+                        $old_pubdate, $time, $is_thread, $start_thread,
+                        $can_comment, $is_group, $first_page, $no_follow,
+                        $token_string, $open_in_tabs)
+    {
+        if ($page_value == 1) {
+            $data['PAGES'][$page_value] = array_reverse($data['PAGES'][$page_value]);
+        }
+        $cnt = 0;
+        if (empty($data['PAGES'][$page_value])) { ?>
+            <div class="chats">
+                <div id="friend-check"class="friend-request-warning"
+                    style="margin-right:20%"><?= tl("not_friends_yet") ?>
+                </div>
+            </div>
+            <script>
+                document.getElementById("user-card-container").style.height =
+                    (window.screen.height * 0.55)+ "px";
+                document.getElementById("user-chats-container").style.height =
+                    (window.screen.height * 0.55)+ "px";
+                document.getElementById("results-container").style.overflowY =
+                    "hidden";
+           </script>
+           <?php
+        } else {
+            $old_description = "";
+            foreach ($data['PAGES'][$page_value] as $page) {
+                $pub_date = $page['PUBDATE'];
+                $pub_date_diff = abs($page['PUBDATE'] - $old_pubdate);
+                $pub_date_age = $now - $page['PUBDATE'];
+                $pub_data_change = ($pub_date_age < C\ONE_HOUR &&
+                    $pub_date_diff > 5 * C\ONE_MINUTE) || ($pub_date_age < C\ONE_DAY
+                    && $pub_date_diff > C\ONE_HOUR) || ($pub_date_diff > C\ONE_DAY);
+                $old_pubdate = ($pub_data_change) ? $pub_date : $old_pubdate;
+                $pub_date = $this->view->helper("feeds")->getPubdateString(
+                    $time, $pub_date, !$is_thread);
+                $edit_date = false;
+                if (isset($page['EDIT_DATE']) && $page['EDIT_DATE'] &&
+                    $page['EDIT_DATE'] != $page['PUBDATE']) {
+                    $edit_date = $this->view->helper("feeds")->getPubdateString(
+                        $time, $page['EDIT_DATE'], !$is_thread);
+                }
+                $edit_list = ($page['ID'] == $page['PARENT_ID']) ?
+                    $start_thread : $can_comment;
+                if (in_array($page["MEMBER_ACCESS"], $edit_list) &&
+                    !$is_group && isset($_SESSION['USER_ID']) &&
+                    (($page['USER_ID'] != "" &&
+                    $page['USER_ID'] == $_SESSION['USER_ID']) ||
+                    $_SESSION['USER_ID'] == C\ROOT_ID || (!empty($page['OWNER_ID'])
+                    && $_SESSION['USER_ID'] == $page['OWNER_ID'])) &&
+                    isset($page['TYPE']) && $page['TYPE'] != C\WIKI_GROUP_ITEM) {
+                }
+                $thread_url = $this->formatHref(B\feedsUrl('group',
+                    $data['CHATS_ID'] . "$" . $page['PARENT_ID'], true,
+                    $data['CONTROLLER']) . $token_string);
+                if ((!$is_thread || $first_page) && $page_value != 1) {
+                    $cnt += 1;
+                ?>
+                <div class="user-card" onclick='userCardClick(<?=$page["USER_ID"]?>,
+                    <?= $data["CHATS_ID"] ?> ,<?= $page["PARENT_ID"] ?>,
+                    "<?= $thread_url ?>", this, <?= $page["ID"] ?>)'
+                        <?php if ($cnt == 1 && isset($data['JUST_THREAD'])) { ?>
+                        style="background-color:beige;";
+                    <?php } ?>>
+                <div id='result-<?= $page['ID'] ?>' >
+                    <div class="user-card-icon">
+                        <img class="small-feed-user-icon user-card-icon-img"
+                            src="<?=$page['USER_ICON'] ?>"
+                            alt="<?=tl('groupfeed_element_usericon') ?>"/>
+                    </div>
+                    <div class="user-card-name">
+                        <span><?= $page[self::TITLE] ?></span>
+                    </div>
+                    <div><hr class="user-card-sep"/></div>
+                    </div>
+                <div id='<?= $page["ID"] ?>'></div>
+                </div>
+                    <?php
+                    $first_page = false;
+                } else { ?>
+                    <div id="hidden-title<?=$page['ID']?>" class="none"><?=
+                        $page[self::TITLE] ?></div><?php
+                }
+                if (!$is_group) {
+                    $description = $page[self::DESCRIPTION] ?? "";
+                    if (!empty($description)) {
+                        if (!str_contains($page["s"],"--")) {
+                            $margin_left = "0%";
+                        } else {
+                            $margin_left = "50%";
+                        }?>
+                        <div class="box" style="width:40%;
+                            margin-left:<?= $margin_left?>;">
+                            <div class="description" id='description<?=$page['ID']?>'>
+                            <?php
+                                e($description);
+                                if ($edit_date) {
+                                    e("(<b>". tl('groupfeed_element_edited',
+                                        $edit_date) . "</b>)");
+                                }?>
+                            </div>
+                            <div class='chat-thread-date' ><?=$pub_date?>
+                            </div>
+                        </div><?php
+                    }
+                }
+                ?>
+                <script>
+                    var previousCard = null;
+                    document.getElementById('user-card-container').style.height =
+                            (0.87 * document.getElementById('body-container').
+                                offsetHeight) +
+                            (0.1 * document.getElementById('body-container').
+                                offsetHeight)
+                            + "px";
+                    document.getElementById("results-container").style.
+                        overflowX = "hidden";
+                    function userCardClick(user_id, group_id, thread_id, thread_url,
+                        current_card, page_id) {
+                        console.log("thread-url: "+thread_url);
+                        getChatThreads(null, thread_url,
+                            function(text) {
+                                document.body.parentNode.innerHTML= text;
+                                if (previousCard != null) {
+                                        previousCard.classList.remove("user-card-selected");
+                                    }
+                                let childrenNodes = document.getElementById("result-"
+                                    +page_id).parentNode.parentNode.querySelectorAll('*');
+                                for (var i = 0, len = childrenNodes.length; i < len; i++) {
+                                    if (childrenNodes[i].style.backgroundColor == "beige") {
+                                        document.getElementById(childrenNodes[i+1]["id"])
+                                            .parentNode.style.backgroundColor = "";
+                                        break;
+                                    }
+                                };
+                                document.getElementById("result-"+page_id).
+                                    parentNode.style.backgroundColor = "beige";
+                                let warnDiv = document.getElementById("friend-check");
+                                if (!warnDiv) {
+                                    document.getElementById('user-card-container').
+                                    style.height = (0.87 * document.
+                                    getElementById('body-container').offsetHeight)
+                                    + "px";
+                                } else {
+                                    document.getElementById("user-card-container").
+                                        style.height = (window.screen.height * 0.55)
+                                        + "px";
+                                    document.getElementById("user-chats-container").
+                                        style.height = (window.screen.height * 0.55)
+                                        + "px";
+                                    document.getElementById("results-container").
+                                        style.overflowY = "hidden";
+                                }
+                                document.getElementById("results-container").
+                                    style.overflowX = "hidden";
+                                let resDiv = document.getElementById("results-container");
+                                resDiv.scrollTop = resDiv.scrollHeight;
+                                previousCard = current_card;
+                            });
+                    }
+                    function getChatThreads(tag, url)
+                    {
+                        var request = makeRequest();
+                        if (request) {
+                            let self = this;
+                            let success_callback = (typeof arguments[2] == 'undefined') ?
+                                null : arguments[2];
+                            let fail_callback = (typeof arguments[3] == 'undefined') ?
+                                null : arguments[3];
+                            request.onreadystatechange = function()
+                            {
+                                if (self.request.readyState == 4) {
+                                    if ( self.request.responseText != "") {
+                                        if (tag != null) {
+                                            tag.innerHTML = self.request.responseText;
+                                        }
+                                        if (success_callback) {
+                                            success_callback(self.request.responseText);
+                                        }
+                                    } else {
+                                        if (fail_callback) {
+                                            fail_callback(self.request.responseText);
+                                        }
+                                    }
+                                }
+                            }
+                            request.open("GET", url, true);
+                            request.send();
+                        }
+                    }
+                    function makeRequest() {
+                        try {
+                            request = new XMLHttpRequest();
+                        } catch (e) {
+                            try {
+                                request = new ActiveXObject('MSXML2.XMLHTTP');
+                            } catch (e) {
+                                try {
+                                request = new ActiveXObject('Microsoft.XMLHTTP');
+                                } catch (e) {
+                                return false;
+                                }
+                            }
+                        }
+                        return request;
+                    }
+                    function enterKeyPressed(event) {
+                        if (event.keyCode == 13) {
+                            document.getElementById("commentForm").submit();
+                        }
+                    }
+                </script>
+                <?php
+            } //end foreach
+        }
+    }
+
+    /**
+     * Used to draw the form to start a new thread in a group
+     * @param int $group_id of group to draw form forr
+     * @param array $data containing other field needed to draw the form
+     */
+    private function drawStartThreadForm($group_id, $data)
+    {
+        $just_fields = ["LIMIT" => "limit", "RESULTS_PER_PAGE" => "num",
+            "JUST_GROUP_ID" => "just_group_id", 'MODE' => 'v'];
+        $hidden_form = "\n";
+        foreach ($just_fields as $field => $form_field) {
+            if (isset($data[$field])) {
+                $hidden_form .= "<input type=\"hidden\" " .
+                    "name=\"$form_field\" value=\"{$data[$field]}\" ".
+                    "/>\n";
+            }
+        }
+        ?>
+        <?php
+    }
+    /**
+     * Used to draw the add comment form to add a comment to an
+     * existing thread
+     *
+     * @param int $thread_id of thread to draw form for
+     * @param int $group_id of group to draw form for
+     * @param array $data containing other field needed to draw the form
+     */
+    private function drawCommentForm($thread_id, $group_id, $data)
+    {
+        $just_fields = ["LIMIT" => "limit", "RESULTS_PER_PAGE" => "num",
+            "JUST_THREAD" => 'just_thread', 'page_type' => 'page_type',
+            "PAGE_NAME" => 'page_name', 'MODE' => 'v'
+        ];
+        $hidden_form = "\n";
+        foreach ($just_fields as $field => $form_field) {
+            if (isset($data[$field])) {
+                $hidden_form .= "<input type=\"hidden\" ".
+                    "name=\"$form_field\" value=\"{$data[$field]}\" />\n";
+            }
+        } ?>
+        <div style="margin-left:35%;width:50%;">
+        <noscript>
+        <h2><label for="comment-add-comment" ><b><?=
+            tl('groupfeed_element_comment') ?></b></label></h2>
+        </noscript>
+        <div id="add-comment" >
+        <form  id="commentForm" method="post" action="<?=C\SHORT_BASE_URL?>"><?= $hidden_form ?>
+        <input type="hidden" name="c" value="<?=$data['CONTROLLER'] ?>" />
+        <input type="hidden" name="a" value="groupFeeds" />
+        <input type="hidden" name="arg" value="addcomment" />
+        <input type="hidden" name="parent_id" value="<?=$thread_id; ?>" />
+        <input type="hidden" name="group_id" value="<?= $group_id?>" />
+        <input type="hidden" name="<?= C\CSRF_TOKEN ?>"
+            value="<?= $data[C\CSRF_TOKEN] ?>" />
+        <!-- <script>
+        document.write('<input type="file" id="file-add-comment" ' +
+            'name="file_add-comment" class="none" multiple="multiple" />' +
+            '<a id="file-add-comment" href="javascript:elt(\'file-add-comment\').click()" ' +
+            'style="text-decoration:none">📎</a>');
+        </script> -->
+        <div>
+        <input type="file" id="file-add-comment"
+            name="file_add-comment" class="none" multiple="multiple" />
+        <a id="file-add-comment" href="javascript:elt('file-add-comment').click()"
+            style="text-decoration:none;margin-bottom:50px;">📎</a>
+        <textarea style="width: 80%;" class="short-text-area comment-area"
+            id="comment-add-comment" name="description"
+            data-buttons="all,!wikibtn-search,!wikibtn-heading,!wikibtn-slide"
+            onkeypress="enterKeyPressed(event);">
+        </textarea>
+        <button type="submit"
+            style="width:25px;height:25px;border-radius:50%;margin-bottom:50px;"
+            >⮞</button>
+        </div>
+        </div>
+        </form>
+        </div>
+        <script>
+        if (typeof yioop_post_scripts !== 'object' ) {
+            yioop_post_scripts = {};
+        }
+        yioop_post_scripts['comment-add-comment'] = function()
+        {
+            var comment_id = 'comment-add-comment';
+            initializeFileHandler(comment_id, "file-add-comment",
+                <?= min(L\metricToInt(ini_get('upload_max_filesize')),
+                L\metricToInt(ini_get('post_max_size')))
+                ?>, "textarea", null, true);
+            setDisplay('add-comment', true);
+        }
+        </script>
+        </div>
+        <?php
+    }
+    /**
+     * Used to slightly clean up hypertext links before drawing them
+     * (get rid of empty queries, avoid double encoding)
+     *
+     * @param string $url to clean up
+     * @return string cleaned url
+     */
+    private function formatHref($url)
+    {
+        return rtrim(html_entity_decode($url), '?');
+    }
+    /**
+     * Used to render the dropdown for paths within the top group feed
+     * drop down
+     *
+     * @param array $data set up in controller and SocialComponent with
+     *      data fields view and this element are supposed to render
+     * @param array $feed_array (url => path) options
+     * @param string $aux_url url of current group wiki in the case of a group
+     *      feed. Url of all groups in the case of user feed.
+     * @param string $groups_url link to the all feeds feed for a given user
+     * @param string $group_name name of current groupfeed
+     * @param string $render_type if "user" then prints feed info appropriate
+     *      for a single use, if "just_group_and_thread" doesn't print group
+     *      or user specific info, otherwise defaults to current
+     *      group specific info
+     * @param bool $as_list if should render as an unordered-list rather than
+     *      a dropdown
+     */
+    public function renderPath($data, $feed_array, $aux_url,
+        $groups_url, $group_name, $render_type = "", $as_list = false)
+    {
+        $options = [];
+        $selected_url = "";
+        if ($render_type == "just_group_and_thread") {
+            $options = [tl('groupfeed_element_feedplaces') => ""];
+            $options[$groups_url . "&amp;v=ungrouped"] =
+                tl('groupfeed_element_combined_discussions');
+            $options[$groups_url] = tl('groupfeed_element_mygroups');
+            $selected_url = ($data['VIEW_MODE'] == 'ungrouped') ?
+                $groups_url . "&amp;v=ungrouped" : $groups_url;
+        } else  if ($render_type == "user") {
+            $options = [tl('groupfeed_element_userplaces') => ""];
+            foreach ($feed_array as $url => $name) {
+                $selected_url = $url;
+                break;
+            }
+            $options = array_merge($options, $feed_array);
+            $options[$aux_url . "&amp;v=ungrouped"] =
+                tl('groupfeed_element_combined_discussions');
+            $options[$aux_url] = tl('groupfeed_element_mygroups');
+        } else {
+            $options = [tl('groupfeed_element_group', $group_name) => ""];
+            foreach ($feed_array as $url => $name) {
+                $selected_url = $url;
+                break;
+            }
+            $options = array_merge($options, $feed_array);
+            if ($aux_url) {
+                $options[$aux_url] = tl('groupfeed_element_group_wiki2');
+            }
+            $options[tl('groupfeed_element_group_places')] = "";
+            $options[$groups_url . "&amp;v=ungrouped"] =
+                tl('groupfeed_element_combined_discussions');
+            $options[$groups_url] = tl('groupfeed_element_mygroups');
+        }
+        if (!empty($data['RECENT_THREADS'])) {
+            $token_string = C\CSRF_TOKEN . "=". $data[C\CSRF_TOKEN];
+            $options[tl('groupfeed_element_recent_threads')] = "";
+            foreach ($data['RECENT_THREADS'] as $thread_name => $url) {
+                $options[$url . $token_string] = $thread_name;
+            }
+        }
+        if (!empty($data['RECENT_GROUPS'])) {
+            $token_string = C\CSRF_TOKEN . "=" . $data[C\CSRF_TOKEN];
+            $add_options[tl('groupfeed_element_recent_groups')] = "";
+            $found_new = false;
+            $options[tl('groupfeed_element_recent_groups')] = "";
+            foreach ($data['RECENT_GROUPS'] as $group_name => $url) {
+                $out_token = (strstr($url, C\CSRF_TOKEN) === false) ?
+                    $token_string : "";
+                if (!empty($out_token) && (strstr($url, "?") === false)) {
+                    $url .= "?";
+                }
+                if (empty($options[$url . $out_token])) {
+                    $add_options[$url . $out_token] =
+                        $group_name ;
+                    $found_new = true;
+                }
+            }
+            if ($found_new) {
+                $options[$url . $token_string] = $group_name;
+            }
+        }
+        $this->view->helper('options')->renderLinkDropDown('feed-path',
+            $options, $selected_url, $selected_url, $as_list);
+    }
+    /**
+     * Used to render the Javascript that appears at the non-status updating
+     * portion of the footer of this element.
+     *
+     * @param array $data contains arguments needs to draw urls correctly.
+     */
+    public function renderScripts($data, $with_status_update = false)
+    {
+        $data['TOTAL_ROWS'] = empty($data['TOTAL_ROWS']) ? 0 :
+            $data['TOTAL_ROWS'];
+        if ($data['LIMIT'] + $data['RESULTS_PER_PAGE'] == $data['TOTAL_ROWS']) {
+            $data['LIMIT'] += $data['RESULTS_PER_PAGE'] - 1;
+        }
+        $paging_query = $data['PAGING_QUERY'];
+        $token_string = (!empty($data['ADMIN'])) ? C\CSRF_TOKEN."=".
+            $data[C\CSRF_TOKEN] : "";
+        $limit_hidden = "";
+        $delim = "";
+        if (isset($data['LIMIT'])) {
+            $paging_query .= "limit=".$data['LIMIT'];
+            $delim = "&";
+        }
+        $num_hidden = "";
+        if (isset($data['RESULTS_PER_PAGE'])) {
+            $paging_query .= "{$delim}num=".$data['RESULTS_PER_PAGE'];
+            $delim = "&";
+        }
+        $just_fields = ["LIMIT" => "limit", "RESULTS_PER_PAGE" => "num",
+            "JUST_THREAD" => 'just_thread', "JUST_USER_ID" => "just_user_id",
+            "JUST_GROUP_ID" => "just_group_id", 'page_type' => 'page_type',
+            "PAGE_NAME" => 'page_name', 'MODE' => 'v'];
+        $hidden_form = "\n";
+        foreach ($just_fields as $field => $form_field) {
+            if (isset($data[$field])) {
+                $hidden_form .= "'<input type=\"hidden\" ".
+                    "name=\"$form_field\" value=\"{$data[$field]}\" />' +\n";
+            }
+        }
+        $this->view->helper("fileupload")->setupFileUploadParams();
+        $hide_title = "";
+        if (!empty($data['DISCUSS_THREAD'])) {
+            $hide_title = ' class="none" ';
+        }
+        ?>
+        <script><?php
+            $clear = ($_SERVER["MOBILE"]) ? " clear" : "";
+            $drag_above_text = tl('groupfeed_element_drag_textarea');
+            $click_link_text = tl('groupfeed_element_click_textarea');
+        ?>
+        if (typeof feed_update_id === 'undefined') {
+            let feed_update_id = null;
+        }
+        function commentForm(id, parent_id, group_id)
+        {
+            tmp = '<div class="post<?= $clear ?>"></div>';
+            start_elt = elt(id).innerHTML.substr(0, tmp.length);
+            if (start_elt != tmp) {
+                elt(id).innerHTML =
+                    tmp +
+                    '<form method="post" action="<?=C\SHORT_BASE_URL?>">' +
+                    <?= $hidden_form ?>
+                    '<input type="hidden" name="c" value="<?=
+                        $data['CONTROLLER'] ?>" />' +
+                    '<input type="hidden" name="a" value="groupFeeds" />' +
+                    '<input type="hidden" name="arg" value="addcomment" />' +
+                    '<input type="hidden" name="parent_id" value="' +
+                        parent_id + '" />' +
+                    '<input type="hidden" name="group_id" value="' +
+                        group_id + '" />' +
+                    '<input type="hidden" name="<?= C\CSRF_TOKEN ?>" '+
+                    'value="<?= $data[C\CSRF_TOKEN] ?>" />' +
+                    '<h2><b><label for="comment-'+ id +'" ><?=
+                        tl("groupfeed_element_comment")
+                    ?></label></b></h2>'+
+                    '<textarea class="short-text-area" '+
+                    'id="comment-'+ id +'" name="description" '+
+                    'data-buttons="all,!wikibtn-search,!wikibtn-heading,'+
+                    '!wikibtn-slide" '+
+                    '></textarea>' +
+                    '<div class="upload-gray-box center black">' +
+                    '<input type="file" id="file-' + id + '" name="file_' + id +
+                    '"  class="none" multiple="multiple" />' +
+                    '<?= $drag_above_text ?>' +
+                    '<a href="javascript:elt(\'file-' + id + '\').click()">'+
+                    '<?= $click_link_text ?></a></div>' +
+                    '<button class="button-box float-opposite" ' +
+                    'type="submit"><?= tl("groupfeed_element_save") ?>'+
+                    '</button><div>&nbsp;<br /><br /></div>' +
+                    '</form>';
+                let comment_id = 'comment-' + id;
+                initializeFileHandler(comment_id , "file-" + id,
+                    <?= min(L\metricToInt(ini_get('upload_max_filesize')),
+                    L\metricToInt(ini_get('post_max_size')))
+                    ?>, "textarea", null, true);
+                editorize(comment_id);
+                elt(comment_id).focus();
+            } else {
+                elt(id).innerHTML = "";
+            }
+        }
+        function updatePostForm(id)
+        {
+            if (typeof feed_update_id !== 'undefined' && feed_update_id) {
+                clearInterval(feed_update_id);
+            }
+            let title_elt = elt('title' + id);
+            let title = null;
+            let title_disabled = "";
+
+            if (title_elt) {
+                title = elt('title' + id).innerHTML;
+                if (title.substr(0, 2) == "--") {
+                    title_disabled = "disabled='disabled'";
+                }
+            }
+            let description = elt('old-description'+id).innerHTML;
+            let tmp = '<div class="post<?= $clear ?>"></div>';
+            start_elt = elt(id).innerHTML.substr(0, tmp.length)
+            if (start_elt != tmp) {
+                setDisplay('result-' + id, false);
+                tmp +=
+                    '<form method="post"  action="<?=C\SHORT_BASE_URL?>">' +
+                    <?= $hidden_form ?>
+                    '<input type="hidden" name="c" value="<?=
+                        $data['CONTROLLER'] ?>" />' +
+                    '<input type="hidden" name="a" value="groupFeeds" />' +
+                    '<input type="hidden" name="arg" value="updatepost" />' +
+                    '<input type="hidden" name="post_id" value="' +
+                        id + '" />' +
+                    '<input type="hidden" name="<?= C\CSRF_TOKEN ?>" '+
+                    'value="<?= $data[C\CSRF_TOKEN] ?>" />';
+                    if (title) {
+                        tmp += '<h2><b><?=
+                            tl("groupfeed_element_edit_post")
+                        ?></b></h2><p <?=$hide_title
+                        ?>><b><label for="title-'+ id +'" ><?=
+                            tl("groupfeed_element_subject")
+                        ?></label></b></p>' +
+                        '<p <?= $hide_title
+                        ?>><input type="text" name="title" id="title-'+
+                        id + '" value="'+title+'" '+
+                        ' ' + title_disabled + ' maxlength="<?= C\TITLE_LEN
+                        ?>" class="wide-field"/></p>';
+                    } else {
+                        let hidden_title = elt('hidden-title' + id);
+                        if (hidden_title) {
+                            tmp += '<input type="hidden" name="title" '+
+                                'value="' + hidden_title.innerHtml + '" />';
+                        }
+                    }
+                    tmp += '<p><b><label for="description-'+ id +'" ><?=
+                        tl("groupfeed_element_post")
+                    ?></label></b></p>' +
+                    '<textarea class="short-text-area" '+
+                    'id="description-'+ id +'" name="description" '+
+                    'data-buttons="all,!wikibtn-search,!wikibtn-heading,' +
+                    '!wikibtn-slide" >' + description + '</textarea>'+
+                    '<div class="upload-gray-box center black">' +
+                    '<input type="file" id="file-' + id + '" name="file_' + id +
+                    '"  class="none" multiple="multiple" />' +
+                    '<?= $drag_above_text?>' +
+                    '<a href="javascript:elt(\'file-' + id + '\').click()">'+
+                    '<?=$click_link_text ?></a></div>' +
+                    '<button class="button-box float-opposite" ' +
+                    'type="submit"><?= tl("groupfeed_element_save")
+                    ?></button>' +
+                    '<div><br /><br /></div>'+
+                    '</form>';
+                elt(id).innerHTML = tmp;
+                let description_id = 'description-' + id;
+                initializeFileHandler(description_id , "file-" + id,
+                    <?= min(L\metricToInt(ini_get('upload_max_filesize')),
+                    L\metricToInt(ini_get('post_max_size')))
+                    ?>, "textarea", null, true);
+                editorize(description_id);
+            } else {
+                elt(id).innerHTML = "";
+                setDisplay('result-' + id, true);
+                doUpdate();
+            }
+        }<?php
+        if ($with_status_update) { ?>
+            function feedStatusUpdate()
+            {
+                let start_url = "<?=html_entity_decode($paging_query) .
+                    $delim . $token_string . '&arg=status&feed_time=' ?>";
+                let results_container_obj = elt('results-container');
+                let feed_time =
+                    parseInt(results_container_obj.getAttribute('data-time'));
+                if (results_container_obj.lastElementChild) {
+                    let tmp_time =
+                        results_container_obj.lastElementChild.getAttribute(
+                        'data-time');
+                    if (tmp_time) {
+                        feed_time = parseInt(tmp_time);
+                    }
+                }
+                getPage(null, start_url + feed_time,
+                    function(text) {
+                    elt('results-container').style.backgroundColor = "#EEE";
+                    let tmp_container = document.createElement("div");
+                    tmp_container.innerHTML = text;
+                    elt('results-container').appendChild(
+                        tmp_container.lastElementChild);
+                    setTimeout("resetBackground()", 0.5 * sec);
+                });
+            }
+            function clearUpdate()
+            {
+                 clearInterval(feed_update_id);
+                 elt('results-container').innerHTML= "<h2 class='red'><?=
+                    tl('groupfeed_element_no_longer_update')?></h2>";
+            }
+            function resetBackground()
+            {
+                 elt('results-container').style.backgroundColor = "#FFF";
+            }
+            function doUpdate()
+            {
+                var sec = 1000;
+                var minute = 60 * sec;
+                feed_update_time = 15;
+                feed_update_id = setInterval("feedStatusUpdate()",
+                    feed_update_time * sec);
+                setTimeout("clearUpdate()", 20 * minute + sec);
+            }<?php
+        } else {?>
+            function doUpdate()
+            {
+            }<?php
+        }?>
+        </script>
+        <?php
+    }
+}
\ No newline at end of file
diff --git a/src/views/elements/GroupfeedElement.php b/src/views/elements/GroupfeedElement.php
index 030ab68d3..71dad10be 100644
--- a/src/views/elements/GroupfeedElement.php
+++ b/src/views/elements/GroupfeedElement.php
@@ -402,11 +402,41 @@ class GroupfeedElement extends Element implements CrawlConstants
             <div id='result-<?= $page['ID'] ?>' >
             <div class="float-same center" >
             <img class="<?= $feed_user_icon?>" src="<?=$page['USER_ICON'] ?>"
-                alt="<?=tl('groupfeed_element_usericon') ?>"/><br />
-            <a class="feed-user-link echo-link" <?= $no_follow ?>
-                href="<?= $this->formatHref(B\feedsUrl("user", $page['USER_ID'],
-                    true, $data['CONTROLLER']) . $token_string);
-                ?>" ><?=$page['USER_NAME'] ?></a>
+                alt="<?=tl('groupfeed_element_usericon') ?>"/><br /><?php
+                if (isset($page['USER_NAME']) &&
+                    $data['USERNAME'] != $page['USER_NAME'] &&
+                    !empty($page['USER_NAME'])) {
+                    if (isset($data['TO_CONNECT']) &&
+                        in_array($page['USER_ID'], $data['TO_CONNECT'])) {
+                        $this->view->helper('options')->renderLinkDropDown('uid',
+                            array("#" => $page['USER_NAME'],
+                        $this->formatHref(B\feedsUrl("user", $page['USER_ID'], true,
+                            $data['CONTROLLER']) . $token_string) =>
+                                tl("groupfeed_public_posts"),
+                        $this->formatHref(B\feedsUrl('group', $data['CHATS_ID'],
+                        true, $data['CONTROLLER']) . $token_string) =>
+                            tl("groupfeed_chats")), "","");
+                    } else {
+                        $this->view->helper('options')->renderLinkDropDown('uid',
+                        array("#" => $page['USER_NAME'],
+                        $this->formatHref(B\feedsUrl("user", $page['USER_ID'], true,
+                        $data['CONTROLLER']) . $token_string) =>
+                            tl("groupfeed_public_posts"),
+                        $this->formatHref(B\feedsUrl('group', $page['GROUP_ID'] . "$"
+                            . tl("groupfeed_connect") . "$" . $page['USER_ID'],
+                        true, $data['CONTROLLER']) . $token_string) =>
+                            tl("groupfeed_connect")), "","");
+                    }
+                } elseif (!empty($page['USER_NAME'])) {
+                    $this->view->helper('options')->renderLinkDropDown('uid',
+                    array("" => $page['USER_NAME'],
+                    $this->formatHref(B\feedsUrl("user", $page['USER_ID'], true,
+                    $data['CONTROLLER']) . $token_string) => "Public Posts",
+                    $this->formatHref(B\feedsUrl('group', $data['CHATS_ID'],
+                    true, $data['CONTROLLER']) . $token_string) =>
+                        tl("groupfeed_chats")), "","");
+                }
+            ?>
             </div>
             <div class="<?=$feed_item_body ?>" <?=$feed_item_body_first
              ?> ><?php
@@ -995,4 +1025,4 @@ class GroupfeedElement extends Element implements CrawlConstants
         </script>
         <?php
     }
-}
+}
\ No newline at end of file
-- 
2.29.2.windows.3

