]> git.mxchange.org Git - friendica-addons.git/blobdiff - jappixmini/jappixmini.php
RU translation of cal addon THX pztrn
[friendica-addons.git] / jappixmini / jappixmini.php
index 69c58e94c8930dede7471d822a07d754cb2ff365..44b69a4e5843bcd43a2b26ef17a8dd2822474159 100644 (file)
@@ -122,6 +122,22 @@ function jappixmini_plugin_admin(&$a, &$o) {
        $o .= '<label for="jappixmini-proxy">Activate BOSH proxy</label>';
        $o .= ' <input id="jappixmini-proxy" type="checkbox" name="jappixmini-proxy" value="1"'.$bosh_proxy.' /><br />';
 
+       // bosh address
+       $bosh_address = get_config("jappixmini", "bosh_address");
+       $o .= '<p><label for="jappixmini-address">Adress of the default BOSH proxy. If enabled it overrides the user settings:</label><br />';
+        $o .= '<input id="jappixmini-address" type="text" name="jappixmini-address" value="'.$bosh_address.'" /></p>';
+
+       // default server address
+       $default_server = get_config("jappixmini", "default_server");
+       $o .= '<p><label for="jappixmini-server">Adress of the default jabber server:</label><br />';
+        $o .= '<input id="jappixmini-server" type="text" name="jappixmini-server" value="'.$default_server.'" /></p>';
+
+       // default user name to friendica nickname
+       $default_user = intval(get_config("jappixmini", "default_user"));
+       $default_user = intval($default_user) ? ' checked="checked"' : '';
+       $o .= '<label for="jappixmini-user">Set the default username to the nickname:</label>';
+       $o .= ' <input id="jappixmini-user" type="checkbox" name="jappixmini-defaultuser" value="1"'.$default_user.' /><br />';
+
        // info text field
        $info_text = get_config("jappixmini", "infotext");
        $o .= '<p><label for="jappixmini-infotext">Info text to help users with configuration (important if you want to provide your own BOSH host!):</label><br />';
@@ -137,8 +153,14 @@ function jappixmini_plugin_admin_post(&$a) {
        if ($submit) {
                $info_text = $_REQUEST['jappixmini-infotext'];
                $bosh_proxy = intval($_REQUEST['jappixmini-proxy']);
+               $default_user = intval($_REQUEST['jappixmini-defaultuser']);
+               $bosh_address = $_REQUEST['jappixmini-address'];
+               $default_server = $_REQUEST['jappixmini-server'];
                set_config("jappixmini", "infotext", $info_text);
                set_config("jappixmini", "bosh_proxy", $bosh_proxy);
+               set_config("jappixmini", "bosh_address", $bosh_address);
+               set_config("jappixmini", "default_server", $default_server);
+               set_config("jappixmini", "default_user", $default_user);
        }
 }
 
@@ -224,6 +246,11 @@ function jappixmini_settings(&$a, &$s) {
     $dontinsertchat = get_pconfig(local_user(),'jappixmini','dontinsertchat');
     $insertchat = !(intval($dontinsertchat) ? ' checked="checked"' : '');
 
+    $defaultbosh = get_config("jappixmini", "bosh_address");
+
+    if ($defaultbosh != "")
+       set_pconfig(local_user(),'jappixmini','bosh', $defaultbosh);
+
     $username = get_pconfig(local_user(),'jappixmini','username');
     $username = htmlentities($username);
     $server = get_pconfig(local_user(),'jappixmini','server');
@@ -239,6 +266,12 @@ function jappixmini_settings(&$a, &$s) {
     $encrypt_checked = $encrypt ? ' checked="checked"' : '';
     $encrypt_disabled = $encrypt ? '' : ' disabled="disabled"';
 
+    if ($server == "")
+       $server = get_config("jappixmini", "default_server");
+
+    if (($username == "") and get_config("jappixmini", "default_user"))
+       $username = $a->user["nickname"];
+
     $info_text = get_config("jappixmini", "infotext");
     $info_text = htmlentities($info_text);
     $info_text = str_replace("\n", "<br />", $info_text);
@@ -261,10 +294,14 @@ function jappixmini_settings(&$a, &$s) {
         $a->page['htmlhead'] .= '<script type="text/javascript" src="' . $a->get_baseurl() . '/addon/jappixmini/lib.js"></script>'."\r\n";
     }
 
-    $s .= '<div class="settings-block">';
+    $s .= '<span id="settings_jappixmini_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_jappixmini_expanded\'); openClose(\'settings_jappixmini_inflated\');">';
+    $s .= '<h3>'.t('Jappix Mini').'</h3>';
+    $s .= '</span>';
+    $s .= '<div id="settings_jappixmini_expanded" class="settings-block" style="display: none;">';
+    $s .= '<span class="fakelink" onclick="openClose(\'settings_jappixmini_expanded\'); openClose(\'settings_jappixmini_inflated\');">';
+    $s .= '<h3>'.t('Jappix Mini').'</h3>';
+    $s .= '</span>';
 
-    $s .= '<h3>'.t('Jappix Mini addon settings').'</h3>';
-    $s .= '<div>';
     $s .= '<label for="jappixmini-activate">'.t('Activate addon').'</label>';
     $s .= ' <input id="jappixmini-activate" type="checkbox" name="jappixmini-activate" value="1"'.$activate.' />';
     $s .= '<br />';
@@ -278,9 +315,12 @@ function jappixmini_settings(&$a, &$s) {
     $s .= ' <input id="jappixmini-server" type="text" name="jappixmini-server" value="'.$server.'" />';
     $s .= '<br />';
 
-    $s .= '<label for="jappixmini-bosh">'.t('Jabber BOSH host').'</label>';
-    $s .= ' <input id="jappixmini-bosh" type="text" name="jappixmini-bosh" value="'.$bosh.'" />';
-    $s .= '<br />';
+    if ($defaultbosh == "") {
+       $s .= '<label for="jappixmini-bosh">'.t('Jabber BOSH host').'</label>';
+       $s .= ' <input id="jappixmini-bosh" type="text" name="jappixmini-bosh" value="'.$bosh.'" />';
+       $s .= '<br />';
+    }
+
 
     $s .= '<label for="jappixmini-password">'.t('Jabber password').'</label>';
     $s .= ' <input type="hidden" id="jappixmini-password" name="jappixmini-encrypted-password" value="'.$password.'" />';
@@ -304,9 +344,8 @@ function jappixmini_settings(&$a, &$s) {
     $s .= '<br />';
     if ($info_text) $s .= '<br />Configuration help:<p style="margin-left:2em;">'.$info_text.'</p>';
     $s .= '<br />Status:<p style="margin-left:2em;">Addon knows '.$address_cnt.' Jabber addresses of '.$contact_cnt.' Friendica contacts (takes some time, usually 10 minutes, to update).</p>';
-    $s .= '<input type="submit" name="jappixmini-submit" value="' . t('Submit') . '" />';
+    $s .= '<input type="submit" name="jappixmini-submit" value="' . t('Save Settings') . '" />';
     $s .= ' <input type="button" value="'.t('Add contact').'" onclick="jappixmini_addon_subscribe();" />';
-    $s .= '</div>';
 
     $s .= '</div>';
 
@@ -400,6 +439,9 @@ function jappixmini_script(&$a,&$s) {
 
     if(! local_user()) return;
 
+    if ($_GET["mode"] == "minimal")
+       return;
+
     $activate = get_pconfig(local_user(),'jappixmini','activate');
     $dontinsertchat = get_pconfig(local_user(), 'jappixmini','dontinsertchat');
     if (!$activate or $dontinsertchat) return;
@@ -446,7 +488,8 @@ function jappixmini_script(&$a,&$s) {
                dbesc($dfrn_id),
                dbesc($dfrn_id)
        );
-       $name = $r[0]["name"];
+       if (count($r))
+               $name = $r[0]["name"];
 
         $value = $row['v'];
         $pos = strpos($value, ":");
@@ -462,11 +505,16 @@ function jappixmini_script(&$a,&$s) {
     // get nickname
     $r = q("SELECT `username` FROM `user` WHERE `uid`=$uid");
     $nickname = json_encode($r[0]["username"]);
+    $groupchats = get_config('jappixmini','groupchats');
+    //if $groupchats has no value jappix_addon_start will produce a syntax error
+    if(empty($groupchats)){
+       $groupchats = "{}";
+    }
 
     // add javascript to start Jappix Mini
     $a->page['htmlhead'] .= "<script type=\"text/javascript\">
         jQuery(document).ready(function() {
-           jappixmini_addon_start('$server', '$username', '$proxy', '$bosh', $encrypt, '$password', $nickname, $contacts_json, '$contacts_hash', $autoapprove, $autosubscribe);
+           jappixmini_addon_start('$server', '$username', '$proxy', '$bosh', $encrypt, '$password', $nickname, $contacts_json, '$contacts_hash', $autoapprove, $autosubscribe, $groupchats);
         });
     </script>";
 
@@ -502,7 +550,8 @@ function jappixmini_cron(&$a, $d) {
                $uid = $row["uid"];
 
                // for each user, go through list of contacts
-               $contacts = q("SELECT * FROM `contact` WHERE `uid`=%d AND ((LENGTH(`dfrn-id`) AND LENGTH(`pubkey`)) OR (LENGTH(`issued-id`) AND LENGTH(`prvkey`)))", intval($uid));
+               $contacts = q("SELECT * FROM `contact` WHERE `uid`=%d AND ((LENGTH(`dfrn-id`) AND LENGTH(`pubkey`)) OR (LENGTH(`issued-id`) AND LENGTH(`prvkey`))) AND `network` = '%s'",
+                       intval($uid), dbesc(NETWORK_DFRN));
                foreach ($contacts as $contact_row) {
                        $request = $contact_row["request"];
                        if (!$request) continue;