X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=jappixmini%2Fjappixmini.php;h=08d821128db7c34d3ce0507d2db4c40566ebf593;hb=f29c45572dbad772b07611204b84e943b5808021;hp=d09427e758c8797ae91b88a44809efaac47cc6e8;hpb=6846c0658b4f20e27c062f9e11f86a98f681a3cd;p=friendica-addons.git diff --git a/jappixmini/jappixmini.php b/jappixmini/jappixmini.php index d09427e7..08d82112 100644 --- a/jappixmini/jappixmini.php +++ b/jappixmini/jappixmini.php @@ -1,14 +1,19 @@ * */ +// +// Copyright 2012 "Leberwurscht" +// +// This file is dual-licensed under the MIT license (see MIT.txt) and the AGPL license (see jappix/COPYING). +// + /* Problem: @@ -80,7 +85,11 @@ if (!$info_text) set_config("jappixmini", "infotext", ); $bosh_proxy = get_config("jappixmini", "bosh_proxy"); -if ($bosh_proxy==="") set_config("jappixmini", "bosh_proxy", 1); +if ($bosh_proxy==="") set_config("jappixmini", "bosh_proxy", "1"); + +// set addon version so that safe updates are possible later +$addon_version = get_config("jappixmini", "version"); +if ($addon_version==="") set_config("jappixmini", "version", "1"); } @@ -99,29 +108,8 @@ unregister_hook('about_hook', 'addon/jappixmini/jappixmini.php', 'jappixmini_dow function jappixmini_plugin_admin(&$a, &$o) { // display instructions and warnings on addon settings page for admin - if (!file_exists("addon/jappixmini/jappix")) { - $o .= '

You need to install the Jappix application (see README).

'; - } - else if (file_exists("addon/jappixmini/jappix/index.php")) { - // try to delete automatically - try { - unlink("addon/jappixmini/jappix/index.php"); - } - catch (Exception $e) {} - - // warn admin if this is not possible - if (file_exists("addon/jappixmini/jappix/index.php")) - $o .= '

You must delete addon/jappixmini/jappix/index.php (see README).

'; - else { - info("Deleted addon/jappixmini/jappix/index.php automatically."); - $o .= '

Jappix is installed.

'; - } - } - else if (!file_exists("addon/jappixmini/jappix.zip")) { - $o .= '

The source archive jappix.zip does not exist. This is probably a violation of the Jappix License (see README).

'; - } - else { - $o .= '

Jappix is installed.

'; + if (!file_exists("addon/jappixmini.tgz")) { + $o .= '

The source archive jappixmini.tgz does not exist. This is probably a violation of the Jappix License (AGPL).

'; } // warn if cron job has not yet been executed @@ -134,6 +122,22 @@ function jappixmini_plugin_admin(&$a, &$o) { $o .= ''; $o .= '
'; + // bosh address + $bosh_address = get_config("jappixmini", "bosh_address"); + $o .= '


'; + $o .= '

'; + + // default server address + $default_server = get_config("jappixmini", "default_server"); + $o .= '


'; + $o .= '

'; + + // default user name to friendica nickname + $default_user = intval(get_config("jappixmini", "default_user")); + $default_user = intval($default_user) ? ' checked="checked"' : ''; + $o .= ''; + $o .= '
'; + // info text field $info_text = get_config("jappixmini", "infotext"); $o .= '


'; @@ -149,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); } } @@ -159,8 +169,6 @@ function jappixmini_init(&$a) { // module page where other Friendica sites can submit Jabber addresses to and also can query Jabber addresses // of local users - if (!file_exists("addon/jappixmini/jappix")) killme(); - $dfrn_id = $_REQUEST["dfrn_id"]; if (!$dfrn_id) killme(); @@ -233,10 +241,15 @@ function jappixmini_init(&$a) { function jappixmini_settings(&$a, &$s) { // addon settings for a user - if (!file_exists("addon/jappixmini/jappix")) return; - $activate = get_pconfig(local_user(),'jappixmini','activate'); $activate = intval($activate) ? ' checked="checked"' : ''; + $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); @@ -253,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", "
", $info_text); @@ -275,49 +294,58 @@ function jappixmini_settings(&$a, &$s) { $a->page['htmlhead'] .= ''."\r\n"; } - $s .= '

'; + $s .= ''; + $s .= '

'.t('Jappix Mini').'

'; + $s .= '
'; + $s .= ''; @@ -360,8 +388,6 @@ function jappixmini_settings(&$a, &$s) { function jappixmini_settings_post(&$a,&$b) { // save addon settings for a user - if (!file_exists("addon/jappixmini/jappix")) return; - if(! local_user()) return; $uid = local_user(); @@ -397,6 +423,7 @@ function jappixmini_settings_post(&$a,&$b) { set_pconfig($uid,'jappixmini','autosubscribe',intval($b['jappixmini-autosubscribe'])); set_pconfig($uid,'jappixmini','autoapprove',intval($b['jappixmini-autoapprove'])); set_pconfig($uid,'jappixmini','activate',intval($b['jappixmini-activate'])); + set_pconfig($uid,'jappixmini','dontinsertchat',intval($b['jappixmini-dont-insertchat'])); set_pconfig($uid,'jappixmini','encrypt',$encrypt); info( 'Jappix Mini settings saved.' ); @@ -410,11 +437,14 @@ function jappixmini_settings_post(&$a,&$b) { function jappixmini_script(&$a,&$s) { // adds the script to the page header which starts Jappix Mini - if (!file_exists("addon/jappixmini/jappix")) return; if(! local_user()) return; + if ($_GET["mode"] == "minimal") + return; + $activate = get_pconfig(local_user(),'jappixmini','activate'); - if (!$activate) return; + $dontinsertchat = get_pconfig(local_user(), 'jappixmini','dontinsertchat'); + if (!$activate or $dontinsertchat) return; $a->page['htmlhead'] .= ''."\r\n"; $a->page['htmlhead'] .= ''."\r\n"; @@ -454,11 +484,12 @@ function jappixmini_script(&$a,&$s) { $key = $row['k']; $pos = strpos($key, ":"); $dfrn_id = substr($key, $pos+1); - $r = q("SELECT `name` FROM `contact` WHERE `uid`=$uid AND `dfrn-id`='%s' OR `issued-id`='%s'", + $r = q("SELECT `name` FROM `contact` WHERE `uid`=$uid AND (`dfrn-id`='%s' OR `issued-id`='%s')", dbesc($dfrn_id), dbesc($dfrn_id) ); - $name = $r[0]["name"]; + if (count($r)) + $name = $r[0]["name"]; $value = $row['v']; $pos = strpos($value, ":"); @@ -474,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'] .= ""; @@ -488,8 +524,6 @@ function jappixmini_script(&$a,&$s) { function jappixmini_login(&$a, &$o) { // create client secret on login to be able to encrypt jabber passwords - if (!file_exists("addon/jappixmini/jappix")) return; - // for setDB and str_sha1, needed by jappixmini_addon_set_client_secret $a->page['htmlhead'] .= ''."\r\n"; @@ -505,12 +539,13 @@ function jappixmini_cron(&$a, $d) { set_config("jappixmini", "last_cron_execution", $d); - if (!file_exists("addon/jappixmini/jappix")) return; - // go through list of users with jabber enabled $users = q("SELECT `uid` FROM `pconfig` WHERE `cat`='jappixmini' AND (`k`='autosubscribe' OR `k`='autoapprove') AND `v`='1'"); logger("jappixmini: Update list of contacts' jabber accounts for ".count($users)." users."); + if(! count($users)) + return; + foreach ($users as $row) { $uid = $row["uid"]; @@ -600,9 +635,7 @@ function jappixmini_cron(&$a, $d) { function jappixmini_download_source(&$a,&$b) { // Jappix Mini source download link on About page - if (!file_exists("addon/jappixmini/jappix")) return; - $b .= '

Jappix Mini

'; - $b .= '

This site uses Jappix Mini by the Jappix authors, which is distributed under the terms of the GNU Affero General Public License.

'; - $b .= '

You can download the source code.

'; + $b .= '

This site uses the jappixmini addon, which includes Jappix Mini by the Jappix authors and is distributed under the terms of the GNU Affero General Public License.

'; + $b .= '

You can download the source code of the addon. The rest of Friendica is distributed under compatible licenses and can be retrieved from https://github.com/friendica/friendica and https://github.com/friendica/friendica-addons

'; }