Fix notices discovered for searching and media updating, a=chris

Chris Pollett [2017-02-07 23:Feb:th]
Fix notices discovered for searching and media updating, a=chris
Filename
src/configs/PublicHelpPages.php
src/controllers/components/SystemComponent.php
src/data/default.db
src/examples/QueryCacher.php
src/examples/bot_examples/weather/WeatherBot.php
src/executables/MediaUpdater.php
src/library/PhraseParser.php
src/locale/ar/configure.ini
src/locale/bn/configure.ini
src/locale/de/configure.ini
src/locale/en_US/configure.ini
src/locale/es/configure.ini
src/locale/fa/configure.ini
src/locale/fr_FR/configure.ini
src/locale/he/configure.ini
src/locale/hi/configure.ini
src/locale/in_ID/configure.ini
src/locale/it/configure.ini
src/locale/ja/configure.ini
src/locale/kn/configure.ini
src/locale/ko/configure.ini
src/locale/nl/configure.ini
src/locale/pl/configure.ini
src/locale/pt/configure.ini
src/locale/ru/configure.ini
src/locale/te/configure.ini
src/locale/th/configure.ini
src/locale/tr/configure.ini
src/locale/vi_VN/configure.ini
src/locale/zh_CN/configure.ini
src/models/PhraseModel.php
src/scripts/wiki.js
src/views/elements/ServersettingsElement.php
diff --git a/src/configs/PublicHelpPages.php b/src/configs/PublicHelpPages.php
index 0eaa395ea..d0009e584 100644
--- a/src/configs/PublicHelpPages.php
+++ b/src/configs/PublicHelpPages.php
@@ -690,11 +690,29 @@ EOD;
 $help_pages["en-US"]["Ad_Server"] = <<< EOD
 page_type=standard

+page_alias=
+
 page_border=solid-border

-title=Ad Server
+toc=true
+
+title=Ad+Server
+
+author=
+
+robots=
+
+description=
+
+alternative_path=

-END_HEAD_VARS* The Ad Server field-set is used to control whether, where,
+page_header=
+
+page_footer=
+
+sort=aname
+
+END_HEAD_VARSThe Ad Server field-set is used to control whether, where,
 and what external advertisements should be displayed by this Yioop instance.
 EOD;
 $help_pages["en-US"]["Add_Locale"] = <<< EOD
@@ -855,6 +873,42 @@ exchanges.

 * You should choose which authentication scheme you want before you create many
 users as if you switch everyone will need to get a new password.
+EOD;
+$help_pages["en-US"]["Bot_Configuration"] = <<< EOD
+page_type=standard
+
+page_alias=
+
+page_border=solid-border
+
+toc=true
+
+title=
+
+author=
+
+robots=
+
+description=
+
+alternative_path=
+
+page_header=
+
+page_footer=
+
+sort=aname
+
+END_HEAD_VARSThe Bot Configuration field-set is used to control whether user&#039;s of this Yioop instance can be chat bots.
+&lt;br/&gt;
+
+If enabled under &#039;&#039;&#039;Manage Accounts&#039;&#039;&#039; a Yioop user can declare themselves a chat bot and give a callback url.
+&lt;br/&gt;
+
+Suppose a chat bot user has a name user name, &#039;&#039;user1&#039;&#039;. If that chat bot user belongs to a group, and in an already existing thread, someone posts a follow up comment containing &#039;&#039;user1&#039;&#039;, then that message will be sent in a post field together with a bot_token field to the callback url. The response from the url will then be used in a response to the comment (if any).
+EOD;
+$help_pages["en-US"]["Bot_User"] = <<< EOD
+
 EOD;
 $help_pages["en-US"]["Browse_Groups"] = <<< EOD
 page_type=standard
@@ -2244,3 +2298,4 @@ If you decide to upgrade Yioop at some later date you only have to replace the c
 of Yioop and set the Work Directory path to the value of your pre-upgrade version. For this
 reason the Work Directory should not be a subfolder of the Yioop code folder.
 EOD;
+
diff --git a/src/controllers/components/SystemComponent.php b/src/controllers/components/SystemComponent.php
index 84e9fecb5..c5e556226 100755
--- a/src/controllers/components/SystemComponent.php
+++ b/src/controllers/components/SystemComponent.php
@@ -698,7 +698,6 @@ class SystemComponent extends Component
         setDisplay('smtp-info', (elt('use-php-mail').checked == false));
     };
     setDisplay('smtp-info', {$data['no_mail_php']});
-
     elt('database-system').onchange = function () {
         setDisplay('login-dbms', self.logindbms[elt('database-system').value]);
     };
@@ -800,7 +799,8 @@ EOD;
                         $profile["RECOVERY_MODE"] =
                             $_REQUEST['RECOVERY_MODE'];
                         $change = true;
-                    }                    if ($change) {
+                    }
+                    if ($change) {
                         $profile_model->updateProfile(C\WORK_DIRECTORY,
                             [], $profile);
                         return $parent->redirectWithMessage(
diff --git a/src/data/default.db b/src/data/default.db
index 82ac804b0..2ea581a45 100644
Binary files a/src/data/default.db and b/src/data/default.db differ
diff --git a/src/examples/QueryCacher.php b/src/examples/QueryCacher.php
index a5f5f91ec..644534c37 100644
--- a/src/examples/QueryCacher.php
+++ b/src/examples/QueryCacher.php
@@ -37,7 +37,6 @@ namespace seekquarry\yioop\examples;
 define("YIOOP_URL", "http://localhost/");
 define("TIME_BETWEEN_REQUEST_IN_SECONDS", 5);
 define("QUERY_AGENT_NAME", "QUERY_CACHER");
-
 if (empty($argv[1])) {
     echo <<< EOD
 QUERY_CACHER
@@ -58,7 +57,6 @@ Now running a sequence of queries against the yioop installation at:
 EOD;
     echo YIOOP_URL ."\n\n";
 }
-
 $queries = file($argv[1]);
 $agent = curl_init();
 curl_setopt($agent, CURLOPT_USERAGENT, QUERY_AGENT_NAME);
@@ -73,7 +71,6 @@ curl_setopt($agent, CURLOPT_TIMEOUT, TIME_BETWEEN_REQUEST_IN_SECONDS);
 curl_setopt($agent, CURLOPT_CONNECTTIMEOUT,
     TIME_BETWEEN_REQUEST_IN_SECONDS);
 curl_setopt($agent, CURLOPT_HTTPHEADER, ['Expect:']);
-
 $i = 1;
 foreach ($queries as $query) {
     echo $i . " ". $query;
@@ -82,4 +79,4 @@ foreach ($queries as $query) {
     $i++;
     sleep(TIME_BETWEEN_REQUEST_IN_SECONDS);
 }
-curl_close($agent);
\ No newline at end of file
+curl_close($agent);
diff --git a/src/examples/bot_examples/weather/WeatherBot.php b/src/examples/bot_examples/weather/WeatherBot.php
deleted file mode 100644
index e5337a390..000000000
--- a/src/examples/bot_examples/weather/WeatherBot.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-/**
- *  SeekQuarry/Yioop --
- *  Open Source Pure PHP Search Engine, Crawler, and Indexer
- *
- *  Copyright (C) 2009 - 2017  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 <http://www.gnu.org/licenses/>.
- *
- *  END LICENSE
- *
- * @author Harika Nukala harika.nukala@sjsu.edu
- * @package seek_quarry
- * @subpackage examples
- * @license http://www.gnu.org/licenses/ GPL3
- * @link http://www.seekquarry.com/
- * @copyright 2009 - 2017
- * @filesource
- */
-namespace seekquarry\yioop\examples\weatherbot;
-
-/**
- * This class demonstrates a simple Weather Chat Bot using the Yioop
- * ChatBot APIs for Yioop Discussion Groups.
- * To use this bot:
- * (1) Move this file to some folder of a web server you have access to.
- *     Denote by some_url the url of this folder. If you point your
- *     browser at this folder you should see a message that begins with:
- *     There was a configuration issue with your query.
- * (2) Create a new Yioop User.
- * (3) Under Manage Accounts, click on the lock symbol next to Account Details
- * (4) Check the Bot User check bot, click save.
- * (5) Two form variables should appear: Bot Unique Token and Bot Callback URL.
- *      Fill in a value for Bot Unique Token that matches the value set
- *      for ACCESS_TOKEN in the code within the WeatherBot class.
- *      Fill in some_url (as defined in step (1)) for the value of Bot Callback
- *      URL
- * (6) Add the the user you created in Yioop to the group that you would like
- *     the bot to service. Let the name of this user be user_name.
- * (7) Talk to your bot in yioop in this groups by commenting on an
- *     already existing thread with a message beginning with @user_name.
- */
-class WeatherBot
-{
-    /**
-     * Url of site that this bot gets weather information from
-     */
-    const WEATHER_URL = "http://query.yahooapis.com/v1/public/yql";
-    /**
-     * Token given when setting up the bot in Yioop  for callback requests
-     * This bots checks that a request from a Yioop Intance  sends
-     * a timestamp as well as the hash of this timestamp with the bot_token
-     * and post data and that these match the expected values
-     */
-    const ACCESS_TOKEN = "bot_token";
-    /**
-     * Number of seconds that the passed timestamp can differ from the current
-     * time on the WeatherBot machine.
-     */
-    const TIME_WINDOW = 60;
-    /**
-     * This is the method called to get the WeatherBot to handle an incoming
-     * HTTP request, and echo a weather realted message
-     */
-    function processRequest()
-    {
-        $result = "There was a configuration issue with your query.";
-        if ($this->checkBotToken() && !empty($_REQUEST['post']) &&
-            !empty($_REQUEST['bot_name'])) {
-            $location = filter_var($_REQUEST['post'], \FILTER_SANITIZE_STRING);
-            $location = trim(mb_strtolower($location));
-            $result = $this->getWeather($location);
-            if (empty($result)) {
-                $result = "I failed to find the weather for that location.\n".
-                    "I respond to queries in the format:\n" .
-                    " @{$_REQUEST['bot_name']} some_location";
-            }
-        }
-        echo $result;
-    }
-    /**
-     * This method is used to check a request that it comes from a site
-     * that knows the bot_token in use by this WeatherBot.
-     */
-    function checkBotToken()
-    {
-        if (!empty($_REQUEST['bot_token'])) {
-            $token_parts = explode("*", $_REQUEST['bot_token']);
-            $post = empty($_REQUEST["post"]) ? "" : $_REQUEST["post"];
-            $hash = hash("sha256", self::ACCESS_TOKEN . $token_parts[1].
-                $post);
-            if (isset($token_parts[1]) &&
-                abs(time() - $token_parts[1]) < self::TIME_WINDOW) {
-                // second check avoids timing attacks, works for > php 5.6
-                if ((!function_exists('hash_equals') &&
-                    $hash == $token_parts[0]) ||
-                    hash_equals($hash, $token_parts[0])) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-    /**
-     * Get weather information about a location
-     *
-     * @param string $location the location to get weather updates for
-     * @return string weather information
-     */
-    function getWeather($location)
-    {
-        $yql_query = "select * from weather.forecast where woeid in
-            (select woeid from geo.places(1) where text='" . $location
-            ."')";
-        $url = self::WEATHER_URL . "?q=" .
-            urlencode($yql_query) . "&format=json";
-        $ch = curl_init();
-        curl_setopt($ch, CURLOPT_URL, $url);
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        $data = curl_exec($ch);
-        curl_close($ch);
-        $result = @json_decode($data);
-        $temp = empty($result->query->results->channel->item->condition->temp) ?
-            "" : $result->query->results->channel->item->condition->temp;
-        $text = empty($result->query->results->channel->item->condition->text) ?
-            "" : mb_strtolower(
-            $result->query->results->channel->item->condition->text);
-        if (empty($temp) || empty($text)) {
-            return "";
-        }
-        return "The weather is $temp and $text in $location.";
-    }
-}
-$bot = new WeatherBot();
-$bot->processRequest();
-
diff --git a/src/executables/MediaUpdater.php b/src/executables/MediaUpdater.php
index d76f118ec..155fab5c2 100644
--- a/src/executables/MediaUpdater.php
+++ b/src/executables/MediaUpdater.php
@@ -164,8 +164,10 @@ class MediaUpdater implements CrawlConstants
         while (CrawlDaemon::processHandler()) {
             $start_time = microtime(true);
             $this->getUpdateProperties();
-            foreach ($this->jobs as $job) {
-                $job->run();
+            if (!empty($this->jobs)) {
+                foreach ($this->jobs as $job) {
+                    $job->run();
+                }
             }
             $sleep_time = max(0, ceil(self::MINIMUM_UPDATE_LOOP_TIME -
                     L\changeInMicrotime($start_time)));
diff --git a/src/library/PhraseParser.php b/src/library/PhraseParser.php
index 29c677f1b..ca8b23b5f 100755
--- a/src/library/PhraseParser.php
+++ b/src/library/PhraseParser.php
@@ -158,7 +158,8 @@ class PhraseParser
             return $terms;
         }
         $tokenizer = self::getTokenizer($lang);
-        if (stristr($whole_phrase, $tokenizer::getQuestionMarker())
+        if (method_exists($tokenizer, "getQuestionMarker") &&
+            stristr($whole_phrase, $tokenizer::getQuestionMarker())
             !== false) {
             $terms = [$whole_phrase, $terms[0]];
             return $terms;
diff --git a/src/locale/ar/configure.ini b/src/locale/ar/configure.ini
index 2ccccf021..01d0db2c0 100755
--- a/src/locale/ar/configure.ini
+++ b/src/locale/ar/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/bn/configure.ini b/src/locale/bn/configure.ini
index 6219b8e77..5bdbffe27 100755
--- a/src/locale/bn/configure.ini
+++ b/src/locale/bn/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/de/configure.ini b/src/locale/de/configure.ini
index 479f94119..0d517ddd2 100755
--- a/src/locale/de/configure.ini
+++ b/src/locale/de/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/en_US/configure.ini b/src/locale/en_US/configure.ini
index 93f57cf15..838a78a0a 100644
--- a/src/locale/en_US/configure.ini
+++ b/src/locale/en_US/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = "Import Discussions"
 managegroups_element_group_users = "Members"
 managegroups_element_with_selected = "With Selected"
 managegroups_element_ban = "Ban"
-managegroups_element_unban = "Reinstate"
+managegroups_element_activate = "Activate"
 managegroups_element_name = "Name"
 managegroups_element_join_date = "Join Date"
 managegroups_element_status = "Status"
 managegroups_element_action = "Action"
-managegroups_element_activate = "Activate"
 managegroups_element_filter = "Filter:"
 managegroups_element_invite = "Invite More Users"
 managegroups_element_save = "Save"
@@ -1232,7 +1231,7 @@ searchsources_element_localize = "Localize"
 searchsources_element_deletesubsearch = "Delete"
 ;
 ; SecurityElement.php
-security_element_auth_captcha = "Authentication and Captcha Types"
+security_element_auth_captcha = "Authentication, Captcha, and Recovery Types"
 security_element_authentication_type = "Authentication Type"
 security_element_zero_unavailable = "BC Math nZero Knowledge Authentication Needs OpenSSL or BC Math!"
 security_element_captcha_type = "Captcha Type"
diff --git a/src/locale/es/configure.ini b/src/locale/es/configure.ini
index 023a0dea1..d7c8719b3 100755
--- a/src/locale/es/configure.ini
+++ b/src/locale/es/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/fa/configure.ini b/src/locale/fa/configure.ini
index 30e8d3ab8..5a1bb8f55 100755
--- a/src/locale/fa/configure.ini
+++ b/src/locale/fa/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/fr_FR/configure.ini b/src/locale/fr_FR/configure.ini
index b7658885f..14b5152f6 100755
--- a/src/locale/fr_FR/configure.ini
+++ b/src/locale/fr_FR/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/he/configure.ini b/src/locale/he/configure.ini
index 39ef0f480..fe33681c5 100755
--- a/src/locale/he/configure.ini
+++ b/src/locale/he/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/hi/configure.ini b/src/locale/hi/configure.ini
index 99a31e980..5705a688b 100755
--- a/src/locale/hi/configure.ini
+++ b/src/locale/hi/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/in_ID/configure.ini b/src/locale/in_ID/configure.ini
index 263041b09..b621bc9d7 100755
--- a/src/locale/in_ID/configure.ini
+++ b/src/locale/in_ID/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/it/configure.ini b/src/locale/it/configure.ini
index f3a05a2c9..f2fde2081 100755
--- a/src/locale/it/configure.ini
+++ b/src/locale/it/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/ja/configure.ini b/src/locale/ja/configure.ini
index 754495136..7ec1782a7 100755
--- a/src/locale/ja/configure.ini
+++ b/src/locale/ja/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/kn/configure.ini b/src/locale/kn/configure.ini
index af2e03488..5a528961a 100755
--- a/src/locale/kn/configure.ini
+++ b/src/locale/kn/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/ko/configure.ini b/src/locale/ko/configure.ini
index 5fe3f7462..4d69a2e36 100755
--- a/src/locale/ko/configure.ini
+++ b/src/locale/ko/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/nl/configure.ini b/src/locale/nl/configure.ini
index 731caf4c4..c89e14051 100644
--- a/src/locale/nl/configure.ini
+++ b/src/locale/nl/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = "leden"
 managegroups_element_with_selected = ""
 managegroups_element_ban = "ban"
-managegroups_element_unban = "herstellen"
+managegroups_element_activate = "activeren"
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = "activeren"
 managegroups_element_filter = "filter"
 managegroups_element_invite = "Nodigen Meer Gebruikers"
 managegroups_element_save = "Opslaan"
diff --git a/src/locale/pl/configure.ini b/src/locale/pl/configure.ini
index 09f9e71ae..4fed56ad9 100755
--- a/src/locale/pl/configure.ini
+++ b/src/locale/pl/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/pt/configure.ini b/src/locale/pt/configure.ini
index 27841ef1e..56ce3960a 100755
--- a/src/locale/pt/configure.ini
+++ b/src/locale/pt/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/ru/configure.ini b/src/locale/ru/configure.ini
index f6b0232c9..17bd91e8c 100755
--- a/src/locale/ru/configure.ini
+++ b/src/locale/ru/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/te/configure.ini b/src/locale/te/configure.ini
index 0d9abdcc0..c75112090 100644
--- a/src/locale/te/configure.ini
+++ b/src/locale/te/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = "మరిన్నియూజర్స్ ని ఆహ్వానించండి"
 managegroups_element_save = "సేవ్"
diff --git a/src/locale/th/configure.ini b/src/locale/th/configure.ini
index 640c2f1ca..999ac040a 100755
--- a/src/locale/th/configure.ini
+++ b/src/locale/th/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/tr/configure.ini b/src/locale/tr/configure.ini
index 688647692..cc51c4bdf 100755
--- a/src/locale/tr/configure.ini
+++ b/src/locale/tr/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/vi_VN/configure.ini b/src/locale/vi_VN/configure.ini
index 92da1ab14..61c3aaee2 100755
--- a/src/locale/vi_VN/configure.ini
+++ b/src/locale/vi_VN/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/locale/zh_CN/configure.ini b/src/locale/zh_CN/configure.ini
index b0c8ef100..36acc4743 100755
--- a/src/locale/zh_CN/configure.ini
+++ b/src/locale/zh_CN/configure.ini
@@ -937,12 +937,11 @@ managegroups_element_import_discussions = ""
 managegroups_element_group_users = ""
 managegroups_element_with_selected = ""
 managegroups_element_ban = ""
-managegroups_element_unban = ""
+managegroups_element_activate = ""
 managegroups_element_name = ""
 managegroups_element_join_date = ""
 managegroups_element_status = ""
 managegroups_element_action = ""
-managegroups_element_activate = ""
 managegroups_element_filter = ""
 managegroups_element_invite = ""
 managegroups_element_save = ""
diff --git a/src/models/PhraseModel.php b/src/models/PhraseModel.php
index bdb2311d4..71a911ad3 100755
--- a/src/models/PhraseModel.php
+++ b/src/models/PhraseModel.php
@@ -567,7 +567,7 @@ class PhraseModel extends ParallelModel
                 $new_words =
                     PhraseParser::extractPhrases($phrase_part, $locale_tag,
                          $index_name);
-                if (strpos($new_words[0], " ") > 0 &&
+                if (isset($new_words[0]) && strpos($new_words[0], " ") > 0 &&
                     $found_materialized_metas == []) {
                     array_pop($new_words);
                 }
diff --git a/src/scripts/wiki.js b/src/scripts/wiki.js
index 52d8415e6..d29b0f535 100755
--- a/src/scripts/wiki.js
+++ b/src/scripts/wiki.js
@@ -74,7 +74,6 @@ function editorizeAll()
     var text_areas = tag("textarea");
     var len = text_areas.length;
     var ids = new Array();
-
     for (i = 0; i < len; i++)
     {
         if (text_areas[i].id){
@@ -93,7 +92,6 @@ function editorize(id)
      check if the editor div exists.
      */
     var node = elt(id);
-
     if (node === null) {
         /*
          If the div to render wiki_editor is not found, do nothing.
@@ -106,9 +104,7 @@ function editorize(id)
             enableKBShortcuts(id);
         }, true);
     }
-
     var button_string = "";
-
     /*
         Initialize tool bar wiki_buttons object
      */
@@ -158,7 +154,6 @@ function editorize(id)
         editor_toolbar += '<input type="button" class="wikibtn-table" ' +
             ' onclick="addWikiTable(\''+ id +'\');" />';
     }
-
     /*
      check if search was desired and render if was.
      */
@@ -167,14 +162,11 @@ function editorize(id)
             ' class="wikibtn-search-widget" ' +
             ' onclick="addWikiSearch(\''+ id +'\');" />';
     }
-
     editor_toolbar += '</div>';
-
     /*
         Insert the toolbar div before the textarea
      */
     node.insertAdjacentHTML("beforebegin", editor_toolbar);
-
     return;
 }
 /*
diff --git a/src/views/elements/ServersettingsElement.php b/src/views/elements/ServersettingsElement.php
index b5d6eb63c..14e25dacb 100644
--- a/src/views/elements/ServersettingsElement.php
+++ b/src/views/elements/ServersettingsElement.php
@@ -330,7 +330,7 @@ class ServersettingsElement extends Element
                     <legend>
             <?= tl('serversettings_element_bot_configuration') .
             "&nbsp;" . $this->view->helper("helpbutton")->render(
-                "Bot Server", $data[C\CSRF_TOKEN]) ?></legend>
+                "Bot Configuration", $data[C\CSRF_TOKEN]) ?></legend>
                 <div id="ad-register">
                 <legend><label for="bot-configuration"><?=
                 tl('serversettings_element_bot_settings')
@@ -342,7 +342,6 @@ class ServersettingsElement extends Element
                 ?>
             </div>
                 </fieldset>
-
             </div>
             <div class="top-margin center">
             <button class="button-box" type="submit"><?=
ViewGit