diff options
author | Thomas Willingham <founder@kakste.com> | 2012-04-24 02:18:51 +0100 |
---|---|---|
committer | Thomas Willingham <founder@kakste.com> | 2012-04-24 02:18:51 +0100 |
commit | 8a80ea24d1d8039be6dc532c9db23c60e71eb467 (patch) | |
tree | 7f94f8d1e2336bbb7e69a327a003b6880f0610c0 /mod | |
parent | c4f4715a541ad89dfd348f14c4e25a83006e74e7 (diff) | |
parent | af7abcea2715824cbd6460a7323c8bb64bd5b829 (diff) | |
download | volse-hubzilla-8a80ea24d1d8039be6dc532c9db23c60e71eb467.tar.gz volse-hubzilla-8a80ea24d1d8039be6dc532c9db23c60e71eb467.tar.bz2 volse-hubzilla-8a80ea24d1d8039be6dc532c9db23c60e71eb467.zip |
Merge remote-tracking branch 'upstream/master'
Merge upstream
Diffstat (limited to 'mod')
-rw-r--r--[-rwxr-xr-x] | mod/acl.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/admin.php | 215 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/allfriends.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/amcd.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/api.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/apps.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/attach.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/cb.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/common.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/community.php | 8 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/contactgroup.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/contacts.php | 12 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/crepair.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/dfrn_notify.php | 59 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/dfrn_poll.php | 8 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/dfrn_request.php | 113 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/directory.php | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/dirfind.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/display.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/editpost.php | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/events.php | 8 | ||||
-rw-r--r-- | mod/fbrowser.php | 99 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/filer.php | 3 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/follow.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/friendica.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/friendika.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/fsuggest.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/group.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/hcard.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/help.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/home.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/hostxrd.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/install.php | 11 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/invite.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/item.php | 39 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/like.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/localtime.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/lockview.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/login.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/lostpass.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/manage.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/match.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/message.php | 3 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/modexp.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/msearch.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/network.php | 8 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/newmember.php | 4 | ||||
-rw-r--r-- | mod/nogroup.php | 65 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/notes.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/notice.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/notifications.php | 4 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/oembed.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/oexchange.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/openid.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/opensearch.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/parse_url.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/photo.php | 29 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/photos.php | 1 | ||||
-rw-r--r-- | mod/ping.php | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/poco.php | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/post.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/probe.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/profile.php | 25 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/profile_photo.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/profiles.php | 140 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/profperm.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/pubsub.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/qsearch.php | 0 | ||||
-rw-r--r-- | mod/randprof.php | 10 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/receive.php | 7 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/redir.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/register.php | 16 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/regmod.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/removeme.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/rsd_xml.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/salmon.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/search.php | 14 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/session.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/settings.php | 114 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/share.php | 16 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/smilies.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/starred.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/suggest.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/tagger.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/tagrm.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/uexport.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/update_community.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/update_network.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/update_notes.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/update_profile.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/viewcontacts.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/viewsrc.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/wall_attach.php | 12 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/wall_upload.php | 42 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/webfinger.php | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | mod/xrd.php | 0 |
96 files changed, 837 insertions, 256 deletions
diff --git a/mod/acl.php b/mod/acl.php index fe353d1eb..fe353d1eb 100755..100644 --- a/mod/acl.php +++ b/mod/acl.php diff --git a/mod/admin.php b/mod/admin.php index 53b5ee354..cdc45c8e3 100755..100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -4,7 +4,11 @@ * Friendica admin */ require_once("include/remoteupdate.php"); - + + +/** + * @param App $a + */ function admin_post(&$a){ @@ -40,6 +44,20 @@ function admin_post(&$a){ goaway($a->get_baseurl(true) . '/admin/plugins/' . $a->argv[2] ); return; // NOTREACHED break; + case 'themes': + $theme = $a->argv[2]; + if (is_file("view/theme/$theme/config.php")){ + require_once("view/theme/$theme/config.php"); + if (function_exists("theme_admin_post")){ + theme_admin_post($a); + } + } + info(t('Theme settings updated.')); + if(is_ajax()) return; + + goaway($a->get_baseurl(true) . '/admin/themes/' . $theme ); + return; + break; case 'logs': admin_page_logs_post($a); break; @@ -53,6 +71,10 @@ function admin_post(&$a){ return; // NOTREACHED } +/** + * @param App $a + * @return string + */ function admin_content(&$a) { if(!is_site_admin()) { @@ -60,7 +82,7 @@ function admin_content(&$a) { } if(x($_SESSION,'submanage') && intval($_SESSION['submanage'])) - return; + return ""; /** * Side bar links @@ -129,12 +151,21 @@ function admin_content(&$a) { } else { $o = admin_page_summary($a); } - return $o; + + if(is_ajax()) { + echo $o; + killme(); + return ''; + } else { + return $o; + } } /** * Admin Summary Page + * @param App $a + * @return string */ function admin_page_summary(&$a) { $r = q("SELECT `page-flags`, COUNT(uid) as `count` FROM `user` GROUP BY `page-flags`"); @@ -168,13 +199,15 @@ function admin_page_summary(&$a) { /** * Admin Site Page + * @param App $a */ function admin_page_site_post(&$a){ if (!x($_POST,"page_site")){ return; } - + check_form_security_token_redirectOnErr('/admin/site', 'admin_site'); + $sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : ''); $banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false); $language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : ''); @@ -194,7 +227,6 @@ function admin_page_site_post(&$a){ $global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : ''); $no_multi_reg = ((x($_POST,'no_multi_reg')) ? True : False); $no_openid = !((x($_POST,'no_openid')) ? True : False); - $no_gravatar = !((x($_POST,'no_gravatar')) ? True : False); $no_regfullname = !((x($_POST,'no_regfullname')) ? True : False); $no_utf = !((x($_POST,'no_utf')) ? True : False); $no_community_page = !((x($_POST,'no_community_page')) ? True : False); @@ -204,10 +236,52 @@ function admin_page_site_post(&$a){ $proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : ''); $timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60); $dfrn_only = ((x($_POST,'dfrn_only')) ? True : False); - $ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False); + $ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False); $diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False); $ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0); + if($ssl_policy != intval(get_config('system','ssl_policy'))) { + if($ssl_policy == SSL_POLICY_FULL) { + q("update `contact` set + `url` = replace(`url` , 'http:' , 'https:'), + `photo` = replace(`photo` , 'http:' , 'https:'), + `thumb` = replace(`thumb` , 'http:' , 'https:'), + `micro` = replace(`micro` , 'http:' , 'https:'), + `request` = replace(`request`, 'http:' , 'https:'), + `notify` = replace(`notify` , 'http:' , 'https:'), + `poll` = replace(`poll` , 'http:' , 'https:'), + `confirm` = replace(`confirm`, 'http:' , 'https:'), + `poco` = replace(`poco` , 'http:' , 'https:') + where `self` = 1" + ); + q("update `profile` set + `photo` = replace(`photo` , 'http:' , 'https:'), + `thumb` = replace(`thumb` , 'http:' , 'https:') + where 1 " + ); + } + elseif($ssl_policy == SSL_POLICY_SELFSIGN) { + q("update `contact` set + `url` = replace(`url` , 'https:' , 'http:'), + `photo` = replace(`photo` , 'https:' , 'http:'), + `thumb` = replace(`thumb` , 'https:' , 'http:'), + `micro` = replace(`micro` , 'https:' , 'http:'), + `request` = replace(`request`, 'https:' , 'http:'), + `notify` = replace(`notify` , 'https:' , 'http:'), + `poll` = replace(`poll` , 'https:' , 'http:'), + `confirm` = replace(`confirm`, 'https:' , 'http:'), + `poco` = replace(`poco` , 'https:' , 'http:') + where `self` = 1" + ); + q("update `profile` set + `photo` = replace(`photo` , 'https:' , 'http:'), + `thumb` = replace(`thumb` , 'https:' , 'http:') + where 1 " + ); + } + } + set_config('system','ssl_policy',$ssl_policy); + set_config('config','sitename',$sitename); if ($banner==""){ // don't know why, but del_config doesn't work... @@ -218,7 +292,6 @@ function admin_page_site_post(&$a){ } else { set_config('system','banner', $banner); } - set_config('system','ssl_policy',$ssl_policy); set_config('system','language', $language); set_config('system','theme', $theme); set_config('system','maximagesize', $maximagesize); @@ -239,10 +312,9 @@ function admin_page_site_post(&$a){ } else { set_config('system','directory_submit_url', $global_directory); } - set_config('system','directory_search_url', $global_search_url); + set_config('system','block_extended_register', $no_multi_reg); set_config('system','no_openid', $no_openid); - set_config('system','no_gravatar', $no_gravatar); set_config('system','no_regfullname', $no_regfullname); set_config('system','no_community_page', $no_community_page); set_config('system','no_utf', $no_utf); @@ -259,7 +331,11 @@ function admin_page_site_post(&$a){ return; // NOTREACHED } - + +/** + * @param App $a + * @return string + */ function admin_page_site(&$a) { /* Installed langs */ @@ -324,7 +400,7 @@ function admin_page_site(&$a) { '$sitename' => array('sitename', t("Site name"), htmlentities($a->config['sitename'], ENT_QUOTES), ""), '$banner' => array('banner', t("Banner/Logo"), $banner, ""), '$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices), - '$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles"), $theme_choices), + '$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"), $theme_choices), '$ssl_policy' => array('ssl_policy', t("SSL link policy"), (string) intval(get_config('system','ssl_policy')), t("Determines whether generated links should be forced to use SSL"), $ssl_choices), '$maximagesize' => array('maximagesize', t("Maximum image size"), get_config('system','maximagesize'), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")), @@ -339,7 +415,6 @@ function admin_page_site(&$a) { '$no_multi_reg' => array('no_multi_reg', t("Block multiple registrations"), get_config('system','block_extended_register'), t("Disallow users to register additional accounts for use as pages.")), '$no_openid' => array('no_openid', t("OpenID support"), !get_config('system','no_openid'), t("OpenID support for registration and logins.")), - '$no_gravatar' => array('no_gravatar', t("Gravatar support"), !get_config('system','no_gravatar'), t("Search new user's photo on Gravatar.")), '$no_regfullname' => array('no_regfullname', t("Fullname check"), !get_config('system','no_regfullname'), t("Force users to register with a space between firstname and lastname in Full name, as an antispam measure")), '$no_utf' => array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), t("Use PHP UTF8 regular expressions")), '$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), t("Display a Community page showing all recent public postings on this site.")), @@ -351,6 +426,7 @@ function admin_page_site(&$a) { '$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""), '$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")), + '$form_security_token' => get_form_security_token("admin_site"), )); @@ -359,11 +435,15 @@ function admin_page_site(&$a) { /** * Users admin page + * + * @param App $a */ function admin_page_users_post(&$a){ $pending = ( x($_POST, 'pending') ? $_POST['pending'] : Array() ); $users = ( x($_POST, 'user') ? $_POST['user'] : Array() ); - + + check_form_security_token_redirectOnErr('/admin/users', 'admin_users'); + if (x($_POST,'page_users_block')){ foreach($users as $uid){ q("UPDATE `user` SET `blocked`=1-`blocked` WHERE `uid`=%s", @@ -395,7 +475,11 @@ function admin_page_users_post(&$a){ goaway($a->get_baseurl(true) . '/admin/users' ); return; // NOTREACHED } - + +/** + * @param App $a + * @return string + */ function admin_page_users(&$a){ if ($a->argc>2) { $uid = $a->argv[3]; @@ -403,10 +487,11 @@ function admin_page_users(&$a){ if (count($user)==0){ notice( 'User not found' . EOL); goaway($a->get_baseurl(true) . '/admin/users' ); - return; // NOTREACHED + return ''; // NOTREACHED } switch($a->argv[2]){ case "delete":{ + check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't'); // delete user require_once("include/Contact.php"); user_remove($uid); @@ -414,6 +499,7 @@ function admin_page_users(&$a){ notice( sprintf(t("User '%s' deleted"), $user[0]['username']) . EOL); }; break; case "block":{ + check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't'); q("UPDATE `user` SET `blocked`=%d WHERE `uid`=%s", intval( 1-$user[0]['blocked'] ), intval( $uid ) @@ -422,7 +508,7 @@ function admin_page_users(&$a){ }; break; } goaway($a->get_baseurl(true) . '/admin/users' ); - return; // NOTREACHED + return ''; // NOTREACHED } @@ -498,6 +584,7 @@ function admin_page_users(&$a){ '$confirm_delete_multi' => t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'), '$confirm_delete' => t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'), + '$form_security_token' => get_form_security_token("admin_users"), // values // '$baseurl' => $a->get_baseurl(true), @@ -510,10 +597,12 @@ function admin_page_users(&$a){ } -/* +/** * Plugins admin page + * + * @param App $a + * @return string */ - function admin_page_plugins(&$a){ /** @@ -523,10 +612,12 @@ function admin_page_plugins(&$a){ $plugin = $a->argv[2]; if (!is_file("addon/$plugin/$plugin.php")){ notice( t("Item not found.") ); - return; + return ''; } if (x($_GET,"a") && $_GET['a']=="t"){ + check_form_security_token_redirectOnErr('/admin/plugins', 'admin_themes', 't'); + // Toggle plugin status $idx = array_search($plugin, $a->plugins); if ($idx !== false){ @@ -540,7 +631,7 @@ function admin_page_plugins(&$a){ } set_config("system","addon", implode(", ",$a->plugins)); goaway($a->get_baseurl(true) . '/admin/plugins' ); - return; // NOTREACHED + return ''; // NOTREACHED } // display plugin details require_once('library/markdown.php'); @@ -584,7 +675,9 @@ function admin_page_plugins(&$a){ '$admin_form' => $admin_form, '$function' => 'plugins', '$screenshot' => '', - '$readme' => $readme + '$readme' => $readme, + + '$form_security_token' => get_form_security_token("admin_themes"), )); } @@ -613,10 +706,16 @@ function admin_page_plugins(&$a){ '$submit' => t('Submit'), '$baseurl' => $a->get_baseurl(true), '$function' => 'plugins', - '$plugins' => $plugins + '$plugins' => $plugins, + '$form_security_token' => get_form_security_token("admin_themes"), )); } +/** + * @param array $themes + * @param string $th + * @param int $result + */ function toggle_theme(&$themes,$th,&$result) { for($x = 0; $x < count($themes); $x ++) { if($themes[$x]['name'] === $th) { @@ -632,6 +731,11 @@ function toggle_theme(&$themes,$th,&$result) { } } +/** + * @param array $themes + * @param string $th + * @return int + */ function theme_status($themes,$th) { for($x = 0; $x < count($themes); $x ++) { if($themes[$x]['name'] === $th) { @@ -645,9 +749,12 @@ function theme_status($themes,$th) { } return 0; } - +/** + * @param array $themes + * @return string + */ function rebuild_theme_table($themes) { $o = ''; if(count($themes)) { @@ -663,10 +770,12 @@ function rebuild_theme_table($themes) { } -/* +/** * Themes admin page + * + * @param App $a + * @return string */ - function admin_page_themes(&$a){ $allowed_themes_str = get_config('system','allowed_themes'); @@ -683,7 +792,7 @@ function admin_page_themes(&$a){ foreach($files as $file) { $f = basename($file); $is_experimental = intval(file_exists($file . '/experimental')); - $is_unsupported = 1-(intval(file_exists($file . '/unsupported'))); + $is_supported = 1-(intval(file_exists($file . '/unsupported'))); // Is not used yet $is_allowed = intval(in_array($f,$allowed_themes)); $themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed); } @@ -691,7 +800,7 @@ function admin_page_themes(&$a){ if(! count($themes)) { notice( t('No themes found.')); - return; + return ''; } /** @@ -702,10 +811,11 @@ function admin_page_themes(&$a){ $theme = $a->argv[2]; if(! is_dir("view/theme/$theme")){ notice( t("Item not found.") ); - return; + return ''; } if (x($_GET,"a") && $_GET['a']=="t"){ + check_form_security_token_redirectOnErr('/admin/themes', 'admin_themes', 't'); // Toggle theme status @@ -718,7 +828,7 @@ function admin_page_themes(&$a){ set_config('system','allowed_themes',$s); goaway($a->get_baseurl(true) . '/admin/themes' ); - return; // NOTREACHED + return ''; // NOTREACHED } // display theme details @@ -731,14 +841,22 @@ function admin_page_themes(&$a){ } $readme=Null; - if (is_file("view/$theme/README.md")){ - $readme = file_get_contents("view/$theme/README.md"); + if (is_file("view/theme/$theme/README.md")){ + $readme = file_get_contents("view/theme/$theme/README.md"); $readme = Markdown($readme); - } else if (is_file("view/$theme/README")){ - $readme = "<pre>". file_get_contents("view/$theme/README") ."</pre>"; + } else if (is_file("view/theme/$theme/README")){ + $readme = "<pre>". file_get_contents("view/theme/$theme/README") ."</pre>"; } $admin_form=""; + if (is_file("view/theme/$theme/config.php")){ + require_once("view/theme/$theme/config.php"); + if(function_exists("theme_admin")){ + $admin_form = theme_admin($a); + } + + } + $screenshot = array( get_theme_screenshot($theme), t('Screenshot')); if(! stristr($screenshot[0],$theme)) @@ -756,19 +874,21 @@ function admin_page_themes(&$a){ '$status' => $status, '$action' => $action, '$info' => get_theme_info($theme), - '$function' => 'themes', + '$function' => 'themes', '$admin_form' => $admin_form, '$str_author' => t('Author: '), - '$str_maintainer' => t('Maintainer: '), + '$str_maintainer' => t('Maintainer: '), '$screenshot' => $screenshot, - '$readme' => $readme + '$readme' => $readme, + + '$form_security_token' => get_form_security_token("admin_themes"), )); } /** - * List plugins + * List themes */ $xthemes = array(); @@ -787,17 +907,21 @@ function admin_page_themes(&$a){ '$function' => 'themes', '$plugins' => $xthemes, '$experimental' => t('[Experimental]'), - '$unsupported' => t('[Unsupported]') + '$unsupported' => t('[Unsupported]'), + '$form_security_token' => get_form_security_token("admin_themes"), )); } /** * Logs admin page + * + * @param App $a */ function admin_page_logs_post(&$a) { if (x($_POST,"page_logs")) { + check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs'); $logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : ''); $debugging = ((x($_POST,'debugging')) ? true : false); @@ -814,7 +938,11 @@ function admin_page_logs_post(&$a) { goaway($a->get_baseurl(true) . '/admin/logs' ); return; // NOTREACHED } - + +/** + * @param App $a + * @return string + */ function admin_page_logs(&$a){ $log_choices = Array( @@ -872,9 +1000,14 @@ readable."); '$debugging' => array('debugging', t("Debugging"),get_config('system','debugging'), ""), '$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your Friendica top-level directory.")), '$loglevel' => array('loglevel', t("Log level"), get_config('system','loglevel'), "", $log_choices), + + '$form_security_token' => get_form_security_token("admin_logs"), )); } +/** + * @param App $a + */ function admin_page_remoteupdate_post(&$a) { // this function should be called via ajax post if(!is_site_admin()) { @@ -893,6 +1026,10 @@ function admin_page_remoteupdate_post(&$a) { killme(); } +/** + * @param App $a + * @return string + */ function admin_page_remoteupdate(&$a) { if(!is_site_admin()) { return login(false); diff --git a/mod/allfriends.php b/mod/allfriends.php index f675b8e29..f675b8e29 100755..100644 --- a/mod/allfriends.php +++ b/mod/allfriends.php diff --git a/mod/amcd.php b/mod/amcd.php index a2a1327e6..a2a1327e6 100755..100644 --- a/mod/amcd.php +++ b/mod/amcd.php diff --git a/mod/api.php b/mod/api.php index ad75e6620..ad75e6620 100755..100644 --- a/mod/api.php +++ b/mod/api.php diff --git a/mod/apps.php b/mod/apps.php index 8049b45fb..8049b45fb 100755..100644 --- a/mod/apps.php +++ b/mod/apps.php diff --git a/mod/attach.php b/mod/attach.php index ae6540201..ae6540201 100755..100644 --- a/mod/attach.php +++ b/mod/attach.php diff --git a/mod/cb.php b/mod/cb.php index 6375d2398..6375d2398 100755..100644 --- a/mod/cb.php +++ b/mod/cb.php diff --git a/mod/common.php b/mod/common.php index 852388c14..852388c14 100755..100644 --- a/mod/common.php +++ b/mod/common.php diff --git a/mod/community.php b/mod/community.php index f8cc3305b..bfe5a3089 100755..100644 --- a/mod/community.php +++ b/mod/community.php @@ -45,13 +45,13 @@ function community_content(&$a, $update = 0) { // OR your own posts if you are a logged in member - $r = q("SELECT COUNT(*) AS `total` + $r = q("SELECT distinct(`item`.`uri`) AS `total` FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid` WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0 AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0 - AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 " + AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 group by `item`.`uri` " ); if(count($r)) @@ -62,7 +62,7 @@ function community_content(&$a, $update = 0) { return $o; } - $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, + $r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`, @@ -73,7 +73,7 @@ function community_content(&$a, $update = 0) { AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0 - AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 + AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 group by `item`.`uri` ORDER BY `received` DESC LIMIT %d, %d ", intval($a->pager['start']), intval($a->pager['itemspage']) diff --git a/mod/contactgroup.php b/mod/contactgroup.php index bf81afe07..bf81afe07 100755..100644 --- a/mod/contactgroup.php +++ b/mod/contactgroup.php diff --git a/mod/contacts.php b/mod/contacts.php index 8aa51d00a..9d29d4bd1 100755..100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -85,7 +85,7 @@ function contacts_post(&$a) { if($priority > 5 || $priority < 0) $priority = 0; - $info = escape_tags(trim($_POST['info'])); + $info = fix_mce_lf(escape_tags(trim($_POST['info']))); $r = q("UPDATE `contact` SET `profile-id` = %d, `priority` = %d , `info` = '%s', `hidden` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1", @@ -232,8 +232,14 @@ function contacts_content(&$a) { $contact_id = $a->data['contact']['id']; $contact = $a->data['contact']; - $tpl = get_markup_template('contact_head.tpl'); - $a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl(true))); + $editselect = 'exact'; + if(intval(get_pconfig(local_user(),'system','plaintext'))) + $editselect = 'none'; + + $a->page['htmlhead'] .= replace_macros(get_markup_template('contact_head.tpl'), array( + '$baseurl' => $a->get_baseurl(true), + '$editselect' => $editselect, + )); require_once('include/contact_selectors.php'); diff --git a/mod/crepair.php b/mod/crepair.php index ec963b105..ec963b105 100755..100644 --- a/mod/crepair.php +++ b/mod/crepair.php diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index 8e4ce0671..65d39d5fe 100755..100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -99,65 +99,10 @@ function dfrn_notify_post(&$a) { $importer['forum'] = $page; } - // if contact's ssl policy changed, update our links - - $ssl_changed = false; - - if($ssl_policy == 'self' && strstr($importer['url'],'https:')) { - $ssl_changed = true; - $importer['url'] = str_replace('https:','http:',$importer['url']); - $importer['nurl'] = normalise_link($importer['url']); - $importer['photo'] = str_replace('https:','http:',$importer['photo']); - $importer['thumb'] = str_replace('https:','http:',$importer['thumb']); - $importer['micro'] = str_replace('https:','http:',$importer['micro']); - $importer['request'] = str_replace('https:','http:',$importer['request']); - $importer['notify'] = str_replace('https:','http:',$importer['notify']); - $importer['poll'] = str_replace('https:','http:',$importer['poll']); - $importer['confirm'] = str_replace('https:','http:',$importer['confirm']); - $importer['poco'] = str_replace('https:','http:',$importer['poco']); - } - if($ssl_policy == 'full' && strstr($importer['url'],'http:')) { - $ssl_changed = true; - $importer['url'] = str_replace('http:','https:',$importer['url']); - $importer['nurl'] = normalise_link($importer['url']); - $importer['photo'] = str_replace('http:','https:',$importer['photo']); - $importer['thumb'] = str_replace('http:','https:',$importer['thumb']); - $importer['micro'] = str_replace('http:','https:',$importer['micro']); - $importer['request'] = str_replace('http:','https:',$importer['request']); - $importer['notify'] = str_replace('http:','https:',$importer['notify']); - $importer['poll'] = str_replace('http:','https:',$importer['poll']); - $importer['confirm'] = str_replace('http:','https:',$importer['confirm']); - $importer['poco'] = str_replace('http:','https:',$importer['poco']); - } + // if contact's ssl policy changed, update our links - if($ssl_changed) { - q("update contact set - url = '%s', - nurl = '%s', - photo = '%s', - thumb = '%s', - micro = '%s', - request = '%s', - notify = '%s', - poll = '%s', - confirm = '%s', - poco = '%s' - where id = %d limit 1", - dbesc($importer['url']), - dbesc($importer['nurl']), - dbesc($importer['photo']), - dbesc($importer['thumb']), - dbesc($importer['micro']), - dbesc($importer['request']), - dbesc($importer['notify']), - dbesc($importer['poll']), - dbesc($importer['confirm']), - dbesc($importer['poco']), - intval($importer['id']) - ); - } - + fix_contact_ssl_policy($importer,$ssl_policy); logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']); logger('dfrn_notify: data: ' . $data, LOGGER_DATA); diff --git a/mod/dfrn_poll.php b/mod/dfrn_poll.php index 6030587ce..436727a78 100755..100644 --- a/mod/dfrn_poll.php +++ b/mod/dfrn_poll.php @@ -33,7 +33,7 @@ function dfrn_poll_init(&$a) { $user = ''; if($a->argc > 1) { - $r = q("SELECT `hidewall` FROM `user` WHERE `user`.`nickname` = '%s' LIMIT 1", + $r = q("SELECT `hidewall`,`nickname` FROM `user` WHERE `user`.`nickname` = '%s' LIMIT 1", dbesc($a->argv[1]) ); if((! count($r)) || (count($r) && $r[0]['hidewall'])) @@ -428,11 +428,13 @@ function dfrn_poll_content(&$a) { break; // NOTREACHED } + $nickname = $a->argv[1]; + $r = q("SELECT `contact`.*, `user`.`username`, `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid` WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `user`.`nickname` = '%s' $sql_extra LIMIT 1", - dbesc($a->argv[1]) + dbesc($nickname) ); if(count($r)) { @@ -482,7 +484,7 @@ function dfrn_poll_content(&$a) { )); } - $profile = $r[0]['nickname']; + $profile = ((count($r) && $r[0]['nickname']) ? $r[0]['nickname'] : $nickname); switch($destination_url) { case 'profile': diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index 5881b7b51..74d25adbf 100755..100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -180,7 +180,7 @@ function dfrn_request_post(&$a) { // (ignore reply, nothing we can do it failed) - goaway($dfrn_url); + goaway(zrl($dfrn_url)); return; // NOTREACHED } @@ -261,7 +261,7 @@ function dfrn_request_post(&$a) { WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 AND `contact`.`network` != '%s' AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 30 MINUTE ", - dbesc(NETWORK_MAIL) + dbesc(NETWORK_MAIL2) ); if(count($r)) { foreach($r as $rr) { @@ -286,7 +286,7 @@ function dfrn_request_post(&$a) { WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 AND `contact`.`network` = '%s' AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 3 DAY ", - dbesc(NETWORK_MAIL) + dbesc(NETWORK_MAIL2) ); if(count($r)) { foreach($r as $rr) { @@ -301,6 +301,8 @@ function dfrn_request_post(&$a) { } } + $email_follow = (x($_POST,'email_follow') ? intval($_POST['email_follow']) : 0); + $real_name = (x($_POST,'realname') ? notags(trim($_POST['realname'])) : ''); $url = trim($_POST['dfrn_url']); if(! strlen($url)) { @@ -308,17 +310,108 @@ function dfrn_request_post(&$a) { return; } - // Canonicalise email-style profile locator - $hcard = ''; - $url = webfinger_dfrn($url,$hcard); - if(substr($url,0,5) === 'stat:') { - $network = NETWORK_OSTATUS; - $url = substr($url,5); + if($email_follow) { + + if(! validate_email($url)) { + notice( t('Invalid email address.') . EOL); + return; + } + + $addr = $url; + $name = ($realname) ? $realname : $addr; + $nick = substr($addr,0,strpos($addr,'@')); + $url = 'http://' . substr($addr,strpos($addr,'@') + 1); + $nurl = normalise_url($host); + $poll = 'email ' . random_string(); + $notify = 'smtp ' . random_string(); + $blocked = 1; + $pending = 1; + $network = NETWORK_MAIL2; + $rel = CONTACT_IS_FOLLOWER; + + $mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1); + if(get_config('system','dfrn_only')) + $mail_disabled = 1; + + if(! $mail_disabled) { + $failed = false; + $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1", + intval($uid) + ); + if(! count($r)) { + notice( t('This account has not been configured for email. Request failed.') . EOL); + return; + } + } + + $r = q("insert into contact ( uid, created, addr, name, nick, url, nurl, poll, notify, blocked, pending, network, rel ) + values( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d ) ", + intval($uid), + dbesc(datetime_convert()), + dbesc($addr), + dbesc($name), + dbesc($nick), + dbesc($url), + dbesc($nurl), + dbesc($poll), + dbesc($notify), + intval($blocked), + intval($pending), + dbesc($network), + intval($rel) + ); + + $r = q("select id from contact where poll = '%s' and uid = %d limit 1", + dbesc($poll), + intval($uid) + ); + if(count($r)) { + $contact_id = $r[0]['id']; + + $photo = avatar_img($addr); + + $r = q("UPDATE `contact` SET + `photo` = '%s', + `thumb` = '%s', + `micro` = '%s', + `name-date` = '%s', + `uri-date` = '%s', + `avatar-date` = '%s', + `hidden` = 0, + WHERE `id` = %d LIMIT 1 + ", + dbesc($photos[0]), + dbesc($photos[1]), + dbesc($photos[2]), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + intval($contact_id) + ); + } + + // contact is created. Now send an email verify form to the requestor. + // + + + } + else { - $network = NETWORK_DFRN; + + // Canonicalise email-style profile locator + + $url = webfinger_dfrn($url,$hcard); + + if(substr($url,0,5) === 'stat:') { + $network = NETWORK_OSTATUS; + $url = substr($url,5); + } + else { + $network = NETWORK_DFRN; + } } logger('dfrn_request: url: ' . $url); diff --git a/mod/directory.php b/mod/directory.php index 7f18bd026..367438845 100755..100644 --- a/mod/directory.php +++ b/mod/directory.php @@ -44,7 +44,7 @@ function directory_content(&$a) { $gdirpath = dirname(get_config('system','directory_submit_url')); if(strlen($gdirpath)) { $globaldir = '<ul><li><div id="global-directory-link"><a href="' - . $gdirpath . '">' . t('Global Directory') . '</a></div></li></ul>'; + . zrl($gdirpath,true) . '">' . t('Global Directory') . '</a></div></li></ul>'; } $admin = ''; diff --git a/mod/dirfind.php b/mod/dirfind.php index 34c54dd91..34c54dd91 100755..100644 --- a/mod/dirfind.php +++ b/mod/dirfind.php diff --git a/mod/display.php b/mod/display.php index 81ed174ac..81ed174ac 100755..100644 --- a/mod/display.php +++ b/mod/display.php diff --git a/mod/editpost.php b/mod/editpost.php index 2ddba36aa..4c00201ca 100755..100644 --- a/mod/editpost.php +++ b/mod/editpost.php @@ -115,6 +115,8 @@ function editpost_content(&$a) { '$jotnets' => $jotnets, '$title' => $itm[0]['title'], '$placeholdertitle' => t('Set title'), + '$category' => file_tag_file_to_list($itm[0]['file'], 'category'), + '$placeholdercategory' => t('Categories (comma-separated list)'), '$emtitle' => t('Example: bob@example.com, mary@example.com'), '$lockstate' => $lockstate, '$acl' => '', // populate_acl((($group) ? $group_acl : $a->user), $celeb), diff --git a/mod/events.php b/mod/events.php index 0906d16c2..e66a2dc44 100755..100644 --- a/mod/events.php +++ b/mod/events.php @@ -284,11 +284,11 @@ function events_content(&$a) { if (x($_GET,'id')){ $tpl = get_markup_template("event.tpl"); } else { - if (get_config('experimentals','new_calendar')==1){ +// if (get_config('experimentals','new_calendar')==1){ $tpl = get_markup_template("events-js.tpl"); - } else { - $tpl = get_markup_template("events.tpl"); - } +// } else { +// $tpl = get_markup_template("events.tpl"); +// } } $o = replace_macros($tpl, array( '$baseurl' => $a->get_baseurl(), diff --git a/mod/fbrowser.php b/mod/fbrowser.php new file mode 100644 index 000000000..66ff9252e --- /dev/null +++ b/mod/fbrowser.php @@ -0,0 +1,99 @@ +<?php +/** + * @package Friendica\modules + * @subpackage FileBrowser + * @author Fabio Comuni <fabrixxm@kirgroup.com> + */ + +/** + * @param App $a + */ +function fbrowser_content($a){ + + if (!local_user()) + killme(); + + if ($a->argc==1) + killme(); + + //echo "<pre>"; var_dump($a->argv); killme(); + + switch($a->argv[1]){ + case "image": + $path = array( array($a->get_baseurl()."/fbrowser/image/", t("Photos"))); + $albums = false; + $sql_extra = ""; + $sql_extra2 = " ORDER BY created DESC LIMIT 0, 10"; + + if ($a->argc==2){ + $albums = q("SELECT distinct(`album`) AS `album` FROM `photo` WHERE `uid` = %d ", + intval(local_user()) + ); + // anon functions only from 5.3.0... meglio tardi che mai.. + function folder1($el){return array(bin2hex($el['album']),$el['album']);} + $albums = array_map( "folder1" , $albums); + + } + + $album = ""; + if ($a->argc==3){ + $album = hex2bin($a->argv[2]); + $sql_extra = sprintf("AND `album` = '%s' ",dbesc($album)); + $sql_extra2 = ""; + $path[]=array($a->get_baseurl()."/fbrowser/image/".$a->argv[2]."/", $album); + } + + $r = q("SELECT `resource-id`, `id`, `filename`, min(`scale`) AS `hiq`,max(`scale`) AS `loq`, `desc` + FROM `photo` WHERE `uid` = %d $sql_extra + GROUP BY `resource-id` $sql_extra2", + intval(local_user()) + ); + + + function files1($rr){ global $a; return array( $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['hiq'] . '.jpg', template_escape($rr['filename']), $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['loq'] . '.jpg'); } + $files = array_map("files1", $r); + + $tpl = get_markup_template("filebrowser.tpl"); + echo replace_macros($tpl, array( + '$type' => 'image', + '$baseurl' => $a->get_baseurl(), + '$path' => $path, + '$folders' => $albums, + '$files' =>$files, + )); + + + break; + case "file": + if ($a->argc==2){ + $files = q("SELECT id, filename, filetype FROM `attach` WHERE `uid` = %d ", + intval(local_user()) + ); + + function files2($rr){ global $a; + list($m1,$m2) = explode("/",$rr['filetype']); + $filetype = ( (file_exists("images/icons/$m1.png"))?$m1:"zip"); + return array( $a->get_baseurl() . '/attach/' . $rr['id'], template_escape($rr['filename']), $a->get_baseurl() . '/images/icons/16/' . $filetype . '.png'); + } + $files = array_map("files2", $files); + //echo "<pre>"; var_dump($files); killme(); + + + $tpl = get_markup_template("filebrowser.tpl"); + echo replace_macros($tpl, array( + '$type' => 'file', + '$baseurl' => $a->get_baseurl(), + '$path' => array( array($a->get_baseurl()."/fbrowser/image/", t("Files")) ), + '$folders' => false, + '$files' =>$files, + )); + + } + + break; + } + + + killme(); + +} diff --git a/mod/filer.php b/mod/filer.php index 3cd1bfe22..c0cca9e6d 100755..100644 --- a/mod/filer.php +++ b/mod/filer.php @@ -22,7 +22,8 @@ function filer_content(&$a) { } else { // return filer dialog $filetags = get_pconfig(local_user(),'system','filetags'); - $filetags = explode("][", trim($filetags,"[]")); + $filetags = file_tag_file_to_list($filetags,'file'); + $filetags = explode(",", $filetags); $tpl = get_markup_template("filer_dialog.tpl"); $o = replace_macros($tpl, array( '$field' => array('term', t("Save to Folder:"), '', '', $filetags, t('- select -')), diff --git a/mod/follow.php b/mod/follow.php index ae8cb200c..ae8cb200c 100755..100644 --- a/mod/follow.php +++ b/mod/follow.php diff --git a/mod/friendica.php b/mod/friendica.php index 52a064224..52a064224 100755..100644 --- a/mod/friendica.php +++ b/mod/friendica.php diff --git a/mod/friendika.php b/mod/friendika.php index 1f3df565d..1f3df565d 100755..100644 --- a/mod/friendika.php +++ b/mod/friendika.php diff --git a/mod/fsuggest.php b/mod/fsuggest.php index 9ef8f4c55..9ef8f4c55 100755..100644 --- a/mod/fsuggest.php +++ b/mod/fsuggest.php diff --git a/mod/group.php b/mod/group.php index a282dbccf..a282dbccf 100755..100644 --- a/mod/group.php +++ b/mod/group.php diff --git a/mod/hcard.php b/mod/hcard.php index 6d2d9e2eb..6d2d9e2eb 100755..100644 --- a/mod/hcard.php +++ b/mod/hcard.php diff --git a/mod/help.php b/mod/help.php index af05bd47c..af05bd47c 100755..100644 --- a/mod/help.php +++ b/mod/help.php diff --git a/mod/home.php b/mod/home.php index 0320c1b39..0320c1b39 100755..100644 --- a/mod/home.php +++ b/mod/home.php diff --git a/mod/hostxrd.php b/mod/hostxrd.php index fe61a874c..fe61a874c 100755..100644 --- a/mod/hostxrd.php +++ b/mod/hostxrd.php diff --git a/mod/install.php b/mod/install.php index 003d81c6a..6f5552076 100755..100644 --- a/mod/install.php +++ b/mod/install.php @@ -340,7 +340,7 @@ function check_php(&$phpath, &$checks) { $help .= t('The command line version of PHP on your system does not have "register_argc_argv" enabled.'). EOL; $help .= t('This is required for message delivery to work.'); } - check_add($checks, t('PHP "register_argc_argv"'), $passed, true, $help); + check_add($checks, t('PHP register_argc_argv'), $passed, true, $help); } @@ -380,9 +380,9 @@ function check_funcs(&$checks) { if(function_exists('apache_get_modules')){ if (! in_array('mod_rewrite',apache_get_modules())) { - check_add($ck_funcs, t('Apace mod_rewrite module'), false, true, t('Error: Apache webserver mod-rewrite module is required but not installed.')); + check_add($ck_funcs, t('Apache mod_rewrite module'), false, true, t('Error: Apache webserver mod-rewrite module is required but not installed.')); } else { - check_add($ck_funcs, t('Apace mod_rewrite module'), true, true, ""); + check_add($ck_funcs, t('Apache mod_rewrite module'), true, true, ""); } } if(! function_exists('curl_init')){ @@ -451,7 +451,7 @@ function load_database_rem($v, $i){ function load_database($db) { $str = file_get_contents('database.sql'); - $str = array_reduce(explode("\n", $str),"load_database_rem",""); +// $str = array_reduce(explode("\n", $str),"load_database_rem",""); $arr = explode(';',$str); $errors = false; foreach($arr as $a) { @@ -464,3 +464,6 @@ function load_database($db) { } return $errors; } + + + diff --git a/mod/invite.php b/mod/invite.php index 2dbf93c59..2dbf93c59 100755..100644 --- a/mod/invite.php +++ b/mod/invite.php diff --git a/mod/item.php b/mod/item.php index 24730f53e..642a6758a 100755..100644 --- a/mod/item.php +++ b/mod/item.php @@ -216,8 +216,6 @@ function item_post(&$a) { $emailcc = notags(trim($_REQUEST['emailcc'])); $body = escape_tags(trim($_REQUEST['body'])); - // $categories = TODO - $private = ((strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) ? 1 : 0); if(($parent_item) && @@ -255,14 +253,26 @@ function item_post(&$a) { } } + if(strlen($categories)) { + // get the "fileas" tags for this post + $filedas = file_tag_file_to_list($categories, 'file'); + } + // save old and new categories, so we can determine what needs to be deleted from pconfig + $categories_old = $categories; + $categories = file_tag_list_to_file(trim($_REQUEST['category']), 'category'); + $categories_new = $categories; + if(strlen($filedas)) { + // append the fileas stuff to the new categories list + $categories .= file_tag_list_to_file($filedas, 'file'); + } + // Work around doubled linefeeds in Tinymce 3.5b2 // First figure out if it's a status post that would've been // created using tinymce. Otherwise leave it alone. $plaintext = (local_user() ? intval(get_pconfig(local_user(),'system','plaintext')) : 0); if((! $parent) && (! $api_source) && (! $plaintext)) { - $body = str_replace("\r\n","\n",$body); - $body = str_replace("\n\n","\n",$body); + $body = fix_mce_lf($body); } @@ -340,7 +350,7 @@ function item_post(&$a) { $image_uri = substr($image_uri,0, strpos($image_uri,'-')); if(! strlen($image_uri)) continue; - $srch = '<' . intval($profile_uid) . '>'; + $srch = '<' . intval($contact_record['id']) . '>'; $r = q("SELECT `id` FROM `photo` WHERE `allow_cid` = '%s' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' AND `resource-id` = '%s' AND `uid` = %d LIMIT 1", dbesc($srch), @@ -436,7 +446,7 @@ function item_post(&$a) { if(count($tags)) { foreach($tags as $tag) { - handle_tag($a, $body, $inform, $str_tags, $profile_uid, $tag); + handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag); } } @@ -572,6 +582,9 @@ function item_post(&$a) { intval($profile_uid) ); + // update filetags in pconfig + file_tag_update_pconfig($uid,$categories_old,$categories_new,'category'); + proc_run('php', "include/notifier.php", 'edit_post', "$post_id"); if((x($_REQUEST,'return')) && strlen($return_path)) { logger('return: ' . $return_path); @@ -585,8 +598,8 @@ function item_post(&$a) { $r = q("INSERT INTO `item` (`guid`, `uid`,`type`,`wall`,`gravity`,`contact-id`,`owner-name`,`owner-link`,`owner-avatar`, `author-name`, `author-link`, `author-avatar`, `created`, `edited`, `commented`, `received`, `changed`, `uri`, `thr-parent`, `title`, `body`, `app`, `location`, `coord`, - `tag`, `inform`, `verb`, `postopts`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`, `private`, `pubmail`, `attach`, `bookmark`,`origin`, `moderated` ) - VALUES( '%s', %d, '%s', %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d )", + `tag`, `inform`, `verb`, `postopts`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`, `private`, `pubmail`, `attach`, `bookmark`,`origin`, `moderated`, `file` ) + VALUES( '%s', %d, '%s', %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, '%s' )", dbesc($datarray['guid']), intval($datarray['uid']), dbesc($datarray['type']), @@ -624,8 +637,9 @@ function item_post(&$a) { dbesc($datarray['attach']), intval($datarray['bookmark']), intval($datarray['origin']), - intval($datarray['moderated']) - ); + intval($datarray['moderated']), + dbesc($datarray['file']) + ); $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' LIMIT 1", dbesc($datarray['uri'])); @@ -633,6 +647,9 @@ function item_post(&$a) { $post_id = $r[0]['id']; logger('mod_item: saved item ' . $post_id); + // update filetags in pconfig + file_tag_update_pconfig($uid,$categories_old,$categories_new,'category'); + if($parent) { // This item is the last leaf and gets the comment box, clear any ancestors @@ -742,7 +759,7 @@ function item_post(&$a) { } else { logger('mod_item: unable to retrieve post that was just stored.'); - notify( t('System error. Post not saved.')); + notice( t('System error. Post not saved.') . EOL); goaway($a->get_baseurl() . "/" . $return_path ); // NOTREACHED } diff --git a/mod/like.php b/mod/like.php index 6b97fafb5..6b97fafb5 100755..100644 --- a/mod/like.php +++ b/mod/like.php diff --git a/mod/localtime.php b/mod/localtime.php index c03eae1b0..c03eae1b0 100755..100644 --- a/mod/localtime.php +++ b/mod/localtime.php diff --git a/mod/lockview.php b/mod/lockview.php index 9e64e2608..9e64e2608 100755..100644 --- a/mod/lockview.php +++ b/mod/lockview.php diff --git a/mod/login.php b/mod/login.php index 10b4d3001..10b4d3001 100755..100644 --- a/mod/login.php +++ b/mod/login.php diff --git a/mod/lostpass.php b/mod/lostpass.php index 57e6d6965..57e6d6965 100755..100644 --- a/mod/lostpass.php +++ b/mod/lostpass.php diff --git a/mod/manage.php b/mod/manage.php index 84dfa6917..84dfa6917 100755..100644 --- a/mod/manage.php +++ b/mod/manage.php diff --git a/mod/match.php b/mod/match.php index 926df1dff..926df1dff 100755..100644 --- a/mod/match.php +++ b/mod/match.php diff --git a/mod/message.php b/mod/message.php index 1369fde2e..260f4bb14 100755..100644 --- a/mod/message.php +++ b/mod/message.php @@ -48,8 +48,7 @@ function message_post(&$a) { $plaintext = intval(get_pconfig(local_user(),'system','plaintext')); if(! $plaintext) { - $body = str_replace("\r\n","\n",$body); - $body = str_replace("\n\n","\n",$body); + $body = fix_mce_lf($body); } $ret = send_message($recipient, $body, $subject, $replyto); diff --git a/mod/modexp.php b/mod/modexp.php index bba2c2882..bba2c2882 100755..100644 --- a/mod/modexp.php +++ b/mod/modexp.php diff --git a/mod/msearch.php b/mod/msearch.php index 94def7d89..94def7d89 100755..100644 --- a/mod/msearch.php +++ b/mod/msearch.php diff --git a/mod/network.php b/mod/network.php index d27945a86..b12bd16da 100755..100644 --- a/mod/network.php +++ b/mod/network.php @@ -206,8 +206,12 @@ function network_content(&$a, $update = 0) { ); - $tpl = get_markup_template('common_tabs.tpl'); - $o .= replace_macros($tpl, array('$tabs'=>$tabs)); + + $arr = array('tabs' => $tabs); + call_hooks('network_tabs', $arr); + + $o .= replace_macros(get_markup_template('common_tabs.tpl'), array('$tabs'=> $arr['tabs'])); + // --- end item filter tabs diff --git a/mod/newmember.php b/mod/newmember.php index 683463ecb..a423d11b8 100755..100644 --- a/mod/newmember.php +++ b/mod/newmember.php @@ -13,7 +13,7 @@ function newmember_content(&$a) { $o .= '<ul>'; - $o .= '<li>' . '<a target="newmember" href="/help/guide">' . t('On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, connect to Facebook, make some new connections, and find some groups to join.') . '</a></li>' . EOL; + $o .= '<li>' . '<a target="newmember" href="help/guide">' . t('On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, connect to Facebook, make some new connections, and find some groups to join.') . '</a></li>' . EOL; $o .= '<li>' . '<a target="newmember" href="settings">' . t('On your <em>Settings</em> page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web.') . '</a></li>' . EOL; @@ -48,4 +48,4 @@ function newmember_content(&$a) { $o .= '</div>'; return $o; -}
\ No newline at end of file +} diff --git a/mod/nogroup.php b/mod/nogroup.php new file mode 100644 index 000000000..bd1ec82ed --- /dev/null +++ b/mod/nogroup.php @@ -0,0 +1,65 @@ +<?php + +require_once('include/Contact.php'); +require_once('include/socgraph.php'); +require_once('include/contact_selectors.php'); + +function nogroup_init(&$a) { + + if(! local_user()) + return; + + require_once('include/group.php'); + require_once('include/contact_widgets.php'); + + if(! x($a->page,'aside')) + $a->page['aside'] = ''; + + $a->page['aside'] .= group_side('contacts','group',false,0,$contact_id); +} + + +function nogroup_content(&$a) { + + if(! local_user()) { + notice( t('Permission denied.') . EOL); + return ''; + } + + require_once('include/Contact.php'); + $r = contacts_not_grouped(local_user()); + if(count($r)) { + $a->set_pager_total($r[0]['total']); + } + $r = contacts_not_grouped(local_user(),$a->pager['start'],$a->pager['itemspage']); + if(count($r)) { + foreach($r as $rr) { + + + $contacts[] = array( + 'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']), + 'edit_hover' => t('Edit contact'), + 'photo_menu' => contact_photo_menu($rr), + 'id' => $rr['id'], + 'alt_text' => $alt_text, + 'dir_icon' => $dir_icon, + 'thumb' => $rr['thumb'], + 'name' => $rr['name'], + 'username' => $rr['name'], + 'sparkle' => $sparkle, + 'itemurl' => $rr['url'], + 'url' => $url, + 'network' => network_to_name($rr['network']), + ); + } + } + $tpl = get_markup_template("nogroup-template.tpl"); + $o .= replace_macros($tpl,array( + '$header' => t('Contacts who are not members of a group'), + '$contacts' => $contacts, + '$paginate' => paginate($a), + )); + + return $o; + +} diff --git a/mod/notes.php b/mod/notes.php index e6e2b44fb..e6e2b44fb 100755..100644 --- a/mod/notes.php +++ b/mod/notes.php diff --git a/mod/notice.php b/mod/notice.php index 19cf53189..19cf53189 100755..100644 --- a/mod/notice.php +++ b/mod/notice.php diff --git a/mod/notifications.php b/mod/notifications.php index 690a99562..b28b1478d 100755..100644 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -151,7 +151,7 @@ function notifications_content(&$a) { '$fullname' => $rr['fname'], '$url' => zrl($rr['furl']), '$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''), - '$activity' => array('activity', t('Post a new friend activity'), 1, t('if applicable')), + '$activity' => array('activity', t('Post a new friend activity'), (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0), t('if applicable')), '$knowyou' => $knowyou, '$approve' => t('Approve'), @@ -198,7 +198,7 @@ function notifications_content(&$a) { '$photo' => ((x($rr,'photo')) ? $rr['photo'] : "images/person-175.jpg"), '$fullname' => $rr['name'], '$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''), - '$activity' => array('activity', t('Post a new friend activity'), 1, t('if applicable')), + '$activity' => array('activity', t('Post a new friend activity'), (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0), t('if applicable')), '$url' => zrl($rr['url']), '$knowyou' => $knowyou, '$approve' => t('Approve'), diff --git a/mod/oembed.php b/mod/oembed.php index 236625f68..236625f68 100755..100644 --- a/mod/oembed.php +++ b/mod/oembed.php diff --git a/mod/oexchange.php b/mod/oexchange.php index bbb436e70..bbb436e70 100755..100644 --- a/mod/oexchange.php +++ b/mod/oexchange.php diff --git a/mod/openid.php b/mod/openid.php index e2cea7d85..e2cea7d85 100755..100644 --- a/mod/openid.php +++ b/mod/openid.php diff --git a/mod/opensearch.php b/mod/opensearch.php index ff748d1c5..ff748d1c5 100755..100644 --- a/mod/opensearch.php +++ b/mod/opensearch.php diff --git a/mod/parse_url.php b/mod/parse_url.php index 27dac4d5d..27dac4d5d 100755..100644 --- a/mod/parse_url.php +++ b/mod/parse_url.php diff --git a/mod/photo.php b/mod/photo.php index 3a7025120..1d38fe8e4 100755..100644 --- a/mod/photo.php +++ b/mod/photo.php @@ -4,6 +4,30 @@ require_once('include/security.php'); function photo_init(&$a) { + // To-Do: + // - checking with realpath + // - checking permissions + /* + $cache = get_config('system','itemcache'); + if (($cache != '') and is_dir($cache)) { + $cachefile = $cache."/".$a->argc."-".$a->argv[1]."-".$a->argv[2]."-".$a->argv[3]; + if (file_exists($cachefile)) { + $data = file_get_contents($cachefile); + + if(function_exists('header_remove')) { + header_remove('Pragma'); + header_remove('pragma'); + } + + header("Content-type: image/jpeg"); + header("Expires: " . gmdate("D, d M Y H:i:s", time() + (3600*24)) . " GMT"); + header("Cache-Control: max-age=" . (3600*24)); + echo $data; + killme(); + // NOTREACHED + } + }*/ + switch($a->argc) { case 4: $person = $a->argv[3]; @@ -27,6 +51,7 @@ function photo_init(&$a) { if(isset($type)) { + /** * Profile photos */ @@ -144,6 +169,10 @@ function photo_init(&$a) { } } + // Writing in cachefile + if (isset($cachefile) && $cachefile != '') + file_put_contents($cachefile, $data); + if(function_exists('header_remove')) { header_remove('Pragma'); header_remove('pragma'); diff --git a/mod/photos.php b/mod/photos.php index 2a808cb41..8da94841e 100755..100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -330,7 +330,6 @@ function photos_post(&$a) { // Create item container $title = ''; - $basename = basename($filename); $uri = item_new_uri($a->get_hostname(),$page_owner_uid); $arr = array(); diff --git a/mod/ping.php b/mod/ping.php index e911aaf1f..63aaa0f45 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -134,6 +134,8 @@ function ping_init(&$a) { function xmlize($href, $name, $url, $photo, $date, $seen, $message){ + $data = array('href' => &$href, 'name' => &$name, 'url'=>&$url, 'photo'=>&$photo, 'date'=>&$date, 'seen'=>&$seen, 'messsage'=>&$message); + call_hooks('ping_xmlize', $data); $notsxml = '<note href="%s" name="%s" url="%s" photo="%s" date="%s" seen="%s" >%s</note>'; return sprintf ( $notsxml, xmlify($href), xmlify($name), xmlify($url), xmlify($photo), xmlify($date), xmlify($seen), xmlify($message) diff --git a/mod/poco.php b/mod/poco.php index 79cf820bc..acfa3ffaa 100755..100644 --- a/mod/poco.php +++ b/mod/poco.php @@ -45,6 +45,8 @@ function poco_init(&$a) { if($justme) $sql_extra = " and `contact`.`self` = 1 "; + else + $sql_extra = " and `contact`.`self` = 0 "; if($cid) $sql_extra = sprintf(" and `contact`.`id` = %d ",intval($cid)); diff --git a/mod/post.php b/mod/post.php index 4a7e33b23..4a7e33b23 100755..100644 --- a/mod/post.php +++ b/mod/post.php diff --git a/mod/probe.php b/mod/probe.php index c95db291b..c95db291b 100755..100644 --- a/mod/probe.php +++ b/mod/probe.php diff --git a/mod/profile.php b/mod/profile.php index 782d17d83..de1e27248 100755..100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -2,6 +2,11 @@ function profile_init(&$a) { + require_once('include/contact_widgets.php'); + + if(! x($a->page,'aside')) + $a->page['aside'] = ''; + $blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false); if($a->argc > 1) @@ -9,9 +14,10 @@ function profile_init(&$a) { else { $r = q("select nickname from user where blocked = 0 and account_expired = 0 and verified = 1 order by rand() limit 1"); if(count($r)) { - $which = $r[0]['nickname']; + goaway($a->get_baseurl() . '/profile/' . $r[0]['nickname']); } else { + logger('profile error: mod_profile ' . $a->query_string, LOGGER_DEBUG); notice( t('Requested profile is not available.') . EOL ); $a->error = 404; return; @@ -59,6 +65,13 @@ function profile_init(&$a) { function profile_content(&$a, $update = 0) { + if (x($a->category)) { + $category = $a->category; + } + else { + $category = ((x($_GET,'category')) ? $_GET['category'] : ''); + } + if(get_config('system','block_public') && (! local_user()) && (! remote_user())) { return login(); } @@ -112,8 +125,9 @@ function profile_content(&$a, $update = 0) { return; } - if(! $update) { + + if(x($_GET,'tab')) $tab = notags(trim($_GET['tab'])); @@ -135,6 +149,8 @@ function profile_content(&$a, $update = 0) { $celeb = ((($a->profile['page-flags'] == PAGE_SOAPBOX) || ($a->profile['page-flags'] == PAGE_COMMUNITY)) ? true : false); + $a->page['aside'] .= categories_widget($a->get_baseurl(true) . '/profile/' . $a->profile['nickname'],(x($category) ? xmlify($category) : '')); + if(can_write_wall($a,$a->profile['profile_uid'])) { $x = array( @@ -178,6 +194,10 @@ function profile_content(&$a, $update = 0) { } else { + if(x($category)) { + $sql_extra .= file_tag_file_query('item',$category,'category'); + } + $r = q("SELECT COUNT(*) AS `total` FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0 @@ -204,6 +224,7 @@ function profile_content(&$a, $update = 0) { intval($a->profile['profile_uid']) ); + } $parents_arr = array(); diff --git a/mod/profile_photo.php b/mod/profile_photo.php index ace8dadd4..ace8dadd4 100755..100644 --- a/mod/profile_photo.php +++ b/mod/profile_photo.php diff --git a/mod/profiles.php b/mod/profiles.php index 7b3b6ccc1..7a33a03e4 100755..100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -51,6 +51,7 @@ function profiles_post(&$a) { if($orig[0]['name'] != $name) $namechanged = true; + $pdesc = notags(trim($_POST['pdesc'])); $gender = notags(trim($_POST['gender'])); $address = notags(trim($_POST['address'])); @@ -61,15 +62,16 @@ function profiles_post(&$a) { $pub_keywords = notags(trim($_POST['pub_keywords'])); $prv_keywords = notags(trim($_POST['prv_keywords'])); $marital = notags(trim($_POST['marital'])); - if($marital != $orig[0]['marital']) - $maritalchanged = true; $with = ((x($_POST,'with')) ? notags(trim($_POST['with'])) : ''); // linkify the relationship target if applicable + $withchanged = false; + if(strlen($with)) { if($with != strip_tags($orig[0]['with'])) { + $withchanged = true; $prf = ''; $lookup = $with; if(strpos($lookup,'@') === 0) @@ -121,18 +123,40 @@ function profiles_post(&$a) { $politic = notags(trim($_POST['politic'])); $religion = notags(trim($_POST['religion'])); - $about = escape_tags(trim($_POST['about'])); - $interest = escape_tags(trim($_POST['interest'])); - $contact = escape_tags(trim($_POST['contact'])); - $music = escape_tags(trim($_POST['music'])); - $book = escape_tags(trim($_POST['book'])); - $tv = escape_tags(trim($_POST['tv'])); - $film = escape_tags(trim($_POST['film'])); - $romance = escape_tags(trim($_POST['romance'])); - $work = escape_tags(trim($_POST['work'])); - $education = escape_tags(trim($_POST['education'])); + $about = fix_mce_lf(escape_tags(trim($_POST['about']))); + $interest = fix_mce_lf(escape_tags(trim($_POST['interest']))); + $contact = fix_mce_lf(escape_tags(trim($_POST['contact']))); + $music = fix_mce_lf(escape_tags(trim($_POST['music']))); + $book = fix_mce_lf(escape_tags(trim($_POST['book']))); + $tv = fix_mce_lf(escape_tags(trim($_POST['tv']))); + $film = fix_mce_lf(escape_tags(trim($_POST['film']))); + $romance = fix_mce_lf(escape_tags(trim($_POST['romance']))); + $work = fix_mce_lf(escape_tags(trim($_POST['work']))); + $education = fix_mce_lf(escape_tags(trim($_POST['education']))); + $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0); + + + $changes = array(); + if($is_default) { + if($marital != $orig[0]['marital']) $changes[] = '♥ ' . t('Marital Status'); + if($withchanged) $changes[] = '♥ ' . t('Romantic Partner'); + if($work != $orig[0]['work']) $changes[] = t('Work/Employment'); + if($religion != $orig[0]['religion']) $changes[] = t('Religion'); + if($politic != $orig[0]['politic']) $changes[] = t('Political Views'); + if($gender != $orig[0]['gender']) $changes[] = t('Gender'); + if($sexual != $orig[0]['sexual']) $changes[] = t('Sexual Preference'); + if($homepage != $orig[0]['homepage']) $changes[] = t('Homepage'); + if($interest != $orig[0]['interest']) $changes[] = t('Interests'); + if($address != $orig[0]['address'] || $locality != $orig[0]['locality'] || $region != $orig[0]['region'] + || $country_name != $orig[0]['country_name']) + $changes[] = t('Location'); + + profile_activity($changes); + + } + $r = q("UPDATE `profile` SET `profile-name` = '%s', `name` = '%s', @@ -194,7 +218,7 @@ function profiles_post(&$a) { dbesc($education), intval($hide_friends), intval($a->argv[1]), - intval($_SESSION['uid']) + intval(local_user()) ); if($r) @@ -221,6 +245,79 @@ function profiles_post(&$a) { } +function profile_activity($changed) { + $a = get_app(); + + if(! local_user() || ! is_array($changed) || ! count($changed)) + return; + + if($a->user['hidewall'] || get_config('system','block_public')) + return; + + if(! get_pconfig(local_user(),'system','post_profilechange')) + return; + + require_once('include/items.php'); + + $self = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1", + intval(local_user()) + ); + + if(! count($self)) + return; + + $arr = array(); + $arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), local_user()); + $arr['uid'] = local_user(); + $arr['contact-id'] = $self[0]['id']; + $arr['wall'] = 1; + $arr['type'] = 'wall'; + $arr['gravity'] = 0; + $arr['origin'] = 1; + $arr['author-name'] = $arr['owner-name'] = $self[0]['name']; + $arr['author-link'] = $arr['owner-link'] = $self[0]['url']; + $arr['author-avatar'] = $arr['owner-avatar'] = $self[0]['thumb']; + $arr['verb'] = ACTIVITY_UPDATE; + $arr['object-type'] = ACTIVITY_OBJ_PROFILE; + + $A = '[url=' . $self[0]['url'] . ']' . $self[0]['name'] . '[/url]'; + + + $changes = ''; + $t = count($changed); + $z = 0; + foreach($changed as $ch) { + if(strlen($changes)) { + if ($z == ($t - 1)) + $changes .= ' and '; + else + $changes .= ', '; + } + $z ++; + $changes .= $ch; + } + + $prof = '[url=' . $self[0]['url'] . '?tab=profile' . ']' . t('public profile') . '[/url]'; + + $arr['body'] = sprintf( t('%1$s has an updated %2$s, changing %3$s.'), $A, $prof, $changes); + + $arr['object'] = '<object><type>' . ACTIVITY_OBJ_PROFILE . '</type><title>' . $self[0]['name'] . '</title>' + . '<id>' . $self[0]['url'] . '/' . $self[0]['name'] . '</id>'; + $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $self[0]['url'] . '?tab=profile' . '" />' . "\n"); + $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $self[0]['thumb'] . '" />' . "\n"); + $arr['object'] .= '</link></object>' . "\n"; + $arr['last-child'] = 1; + + $arr['allow_cid'] = $a->user['allow_cid']; + $arr['allow_gid'] = $a->user['allow_gid']; + $arr['deny_cid'] = $a->user['deny_cid']; + $arr['deny_gid'] = $a->user['deny_gid']; + + $i = item_store($arr); + if($i) + proc_run('php',"include/notifier.php","activity","$i"); + +} function profiles_content(&$a) { @@ -361,7 +458,16 @@ function profiles_content(&$a) { require_once('include/profile_selectors.php'); - $tpl = get_markup_template('profed_head.tpl'); + + $editselect = 'textareas'; + if(intval(get_pconfig(local_user(),'system','plaintext'))) + $editselect = 'none'; + + $a->page['htmlhead'] .= replace_macros(get_markup_template('profed_head.tpl'), array( + '$baseurl' => $a->get_baseurl(true), + '$editselect' => $editselect, + )); + $opt_tpl = get_markup_template("profile-hide-friends.tpl"); $hide_friends = replace_macros($opt_tpl,array( @@ -372,10 +478,12 @@ function profiles_content(&$a) { '$no_selected' => (($r[0]['hide-friends'] == 0) ? " checked=\"checked\" " : "") )); - - $a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl(true))); $a->page['htmlhead'] .= "<script type=\"text/javascript\" src=\"js/country.js\" ></script>"; + + + + $f = get_config('system','birthday_input_format'); if(! $f) $f = 'ymd'; diff --git a/mod/profperm.php b/mod/profperm.php index 8d09c429c..8d09c429c 100755..100644 --- a/mod/profperm.php +++ b/mod/profperm.php diff --git a/mod/pubsub.php b/mod/pubsub.php index 93d50ef90..93d50ef90 100755..100644 --- a/mod/pubsub.php +++ b/mod/pubsub.php diff --git a/mod/qsearch.php b/mod/qsearch.php index c35e253b6..c35e253b6 100755..100644 --- a/mod/qsearch.php +++ b/mod/qsearch.php diff --git a/mod/randprof.php b/mod/randprof.php new file mode 100644 index 000000000..6713a81d9 --- /dev/null +++ b/mod/randprof.php @@ -0,0 +1,10 @@ +<?php + + +function randprof_init(&$a) { + require_once('include/Contact.php'); + $x = random_profile(); + if($x) + goaway(zrl($x)); + goaway($a->get_baseurl() . '/profile'); +} diff --git a/mod/receive.php b/mod/receive.php index 950bf0bd3..2bd3cc65b 100755..100644 --- a/mod/receive.php +++ b/mod/receive.php @@ -12,6 +12,13 @@ require_once('include/diaspora.php'); function receive_post(&$a) { + + $enabled = intval(get_config('system','diaspora_enabled')); + if(! $enabled) { + logger('mod-diaspora: disabled'); + http_status_exit(500); + } + $public = false; if(($a->argc == 2) && ($a->argv[1] === 'public')) { diff --git a/mod/redir.php b/mod/redir.php index 9223e5483..9223e5483 100755..100644 --- a/mod/redir.php +++ b/mod/redir.php diff --git a/mod/register.php b/mod/register.php index 630c0a675..b60707d45 100755..100644 --- a/mod/register.php +++ b/mod/register.php @@ -314,17 +314,13 @@ function register_post(&$a) { } - $use_gravatar = ((get_config('system','no_gravatar')) ? false : true); - - // if we have an openid photo use it. - // otherwise unless it is disabled, use gravatar - - if($use_gravatar || strlen($photo)) { + // if we have no OpenID photo try to look up an avatar + if(! strlen($photo)) + $photo = avatar_img($email); + // unless there is no avatar-plugin loaded + if(strlen($photo)) { require_once('include/Photo.php'); - - if(($use_gravatar) && (! strlen($photo))) - $photo = gravatar_img($email); $photo_failure = false; $filename = basename($photo); @@ -333,7 +329,7 @@ function register_post(&$a) { if($img->is_valid()) { $img->scaleImageSquare(175); - + $hash = photo_new_resource(); $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 ); diff --git a/mod/regmod.php b/mod/regmod.php index 21f41eb01..21f41eb01 100755..100644 --- a/mod/regmod.php +++ b/mod/regmod.php diff --git a/mod/removeme.php b/mod/removeme.php index ee88bd76a..ee88bd76a 100755..100644 --- a/mod/removeme.php +++ b/mod/removeme.php diff --git a/mod/rsd_xml.php b/mod/rsd_xml.php index 5bf4663fd..5bf4663fd 100755..100644 --- a/mod/rsd_xml.php +++ b/mod/rsd_xml.php diff --git a/mod/salmon.php b/mod/salmon.php index 6172d17a1..6172d17a1 100755..100644 --- a/mod/salmon.php +++ b/mod/salmon.php diff --git a/mod/search.php b/mod/search.php index 6495fc8e5..4ca7db9bb 100755..100644 --- a/mod/search.php +++ b/mod/search.php @@ -97,27 +97,26 @@ function search_content(&$a) { // OR your own posts if you are a logged in member // No items will be shown if the member has a blocked profile wall. - $r = q("SELECT COUNT(*) AS `total` + $r = q("SELECT distinct(`item`.`uri`) as `total` FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid` WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0 AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0) OR `item`.`uid` = %d ) AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 - AND ( `item`.`body` REGEXP '%s' OR `item`.`tag` REGEXP '%s' )", + AND ( `item`.`body` REGEXP '%s' OR `item`.`tag` REGEXP '%s' ) group by `item`.`uri` ", intval(local_user()), dbesc(preg_quote($search)), dbesc('\\]' . preg_quote($search) . '\\[') ); if(count($r)) - $a->set_pager_total($r[0]['total']); - - if(! $r[0]['total']) { + $a->set_pager_total(count($r)); + if(! count($r)) { info( t('No results.') . EOL); return $o; } - $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, + $r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`, @@ -128,7 +127,8 @@ function search_content(&$a) { AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0 ) OR `item`.`uid` = %d ) AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 - AND ( `item`.`body` REGEXP '%s' OR `item`.`tag` REGEXP '%s' ) + AND ( `item`.`body` REGEXP '%s' OR `item`.`tag` REGEXP '%s' ) + group by `item`.`uri` ORDER BY `received` DESC LIMIT %d , %d ", intval(local_user()), dbesc(preg_quote($search)), diff --git a/mod/session.php b/mod/session.php index 22c855edb..22c855edb 100755..100644 --- a/mod/session.php +++ b/mod/session.php diff --git a/mod/settings.php b/mod/settings.php index 926d1faa5..8c8b3062d 100755..100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -15,10 +15,6 @@ function get_theme_config_file($theme){ } function settings_init(&$a) { - if(local_user()) { - profile_load($a,$a->user['nickname']); - } - // These lines provide the javascript needed by the acl selector $a->page['htmlhead'] .= "<script> var ispublic = '" . t('everybody') . "';" ; @@ -47,6 +43,47 @@ function settings_init(&$a) { EOT; + + $tabs = array( + array( + 'label' => t('Account settings'), + 'url' => $a->get_baseurl(true).'/settings', + 'selected' => (($a->argc == 1)?'active':''), + ), + array( + 'label' => t('Display settings'), + 'url' => $a->get_baseurl(true).'/settings/display', + 'selected' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''), + ), + + array( + 'label' => t('Connector settings'), + 'url' => $a->get_baseurl(true).'/settings/connectors', + 'selected' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''), + ), + array( + 'label' => t('Plugin settings'), + 'url' => $a->get_baseurl(true).'/settings/addon', + 'selected' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''), + ), + array( + 'label' => t('Connected apps'), + 'url' => $a->get_baseurl(true) . '/settings/oauth', + 'selected' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''), + ), + array( + 'label' => t('Export personal data'), + 'url' => $a->get_baseurl(true) . '/uexport', + 'selected' => '' + ) + ); + + $tabtpl = get_markup_template("generic_links_widget.tpl"); + $a->page['aside'] = replace_macros($tabtpl, array( + '$title' => t('Settings'), + '$items' => $tabs, + )); + } @@ -229,7 +266,7 @@ function settings_post(&$a) { if ($theme == $a->user['theme']){ - // call theme_post only if theme has not benn changed + // call theme_post only if theme has not been changed if( ($themeconfigfile = get_theme_config_file($theme)) != null){ require_once($themeconfigfile); theme_post($a); @@ -242,6 +279,7 @@ function settings_post(&$a) { intval(local_user()) ); + call_hooks('display_settings_post', $_POST); goaway($a->get_baseurl(true) . '/settings/display' ); return; // NOTREACHED } @@ -308,6 +346,8 @@ function settings_post(&$a) { $suggestme = ((x($_POST,'suggestme')) ? intval($_POST['suggestme']) : 0); $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0); $hidewall = (($_POST['hidewall'] == 1) ? 1: 0); + $post_newfriend = (($_POST['post_newfriend'] == 1) ? 1: 0); + $post_profilechange = (($_POST['post_profilechange'] == 1) ? 1: 0); $notify = 0; @@ -390,6 +430,8 @@ function settings_post(&$a) { set_pconfig(local_user(),'expire','photos', $expire_photos); set_pconfig(local_user(),'system','suggestme', $suggestme); + set_pconfig(local_user(),'system','post_newfriend', $post_newfriend); + set_pconfig(local_user(),'system','post_profilechange', $post_profilechange); $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `blockwall` = %d, `hidewall` = %d, `blocktags` = %d, `unkmail` = %d, `cntunkmail` = %d WHERE `uid` = %d LIMIT 1", @@ -478,44 +520,7 @@ function settings_content(&$a) { return; } - $tabs = array( - array( - 'label' => t('Account settings'), - 'url' => $a->get_baseurl(true).'/settings', - 'sel' => (($a->argc == 1)?'active':''), - ), - array( - 'label' => t('Display settings'), - 'url' => $a->get_baseurl(true).'/settings/display', - 'sel' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''), - ), - - array( - 'label' => t('Connector settings'), - 'url' => $a->get_baseurl(true).'/settings/connectors', - 'sel' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''), - ), - array( - 'label' => t('Plugin settings'), - 'url' => $a->get_baseurl(true).'/settings/addon', - 'sel' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''), - ), - array( - 'label' => t('Connections'), - 'url' => $a->get_baseurl(true) . '/settings/oauth', - 'sel' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''), - ), - array( - 'label' => t('Export personal data'), - 'url' => $a->get_baseurl(true) . '/uexport', - 'sel' => '' - ) - ); - - $tabtpl = get_markup_template("common_tabs.tpl"); - $tabs = replace_macros($tabtpl, array( - '$tabs' => $tabs, - )); + if(($a->argc > 1) && ($a->argv[1] === 'oauth')) { @@ -523,7 +528,6 @@ function settings_content(&$a) { $tpl = get_markup_template("settings_oauth_edit.tpl"); $o .= replace_macros($tpl, array( '$form_security_token' => get_form_security_token("settings_oauth"), - '$tabs' => $tabs, '$title' => t('Add application'), '$submit' => t('Submit'), '$cancel' => t('Cancel'), @@ -550,7 +554,6 @@ function settings_content(&$a) { $tpl = get_markup_template("settings_oauth_edit.tpl"); $o .= replace_macros($tpl, array( '$form_security_token' => get_form_security_token("settings_oauth"), - '$tabs' => $tabs, '$title' => t('Add application'), '$submit' => t('Update'), '$cancel' => t('Cancel'), @@ -593,7 +596,6 @@ function settings_content(&$a) { '$consumerkey' => t('Client key starts with'), '$noname' => t('No name'), '$remove' => t('Remove authorization'), - '$tabs' => $tabs, '$apps' => $r, )); return $o; @@ -613,7 +615,6 @@ function settings_content(&$a) { $o .= replace_macros($tpl, array( '$form_security_token' => get_form_security_token("settings_addon"), '$title' => t('Plugin Settings'), - '$tabs' => $tabs, '$settings_addons' => $settings_addons )); return $o; @@ -657,7 +658,6 @@ function settings_content(&$a) { '$form_security_token' => get_form_security_token("settings_connectors"), '$title' => t('Connector Settings'), - '$tabs' => $tabs, '$diasp_enabled' => $diasp_enabled, '$ostat_enabled' => $ostat_enabled, @@ -679,6 +679,8 @@ function settings_content(&$a) { '$settings_connectors' => $settings_connectors )); + + call_hooks('display_settings', $o); return $o; } @@ -694,8 +696,8 @@ function settings_content(&$a) { $allowed_themes_raw = explode(',',$allowed_themes_str); $allowed_themes = array(); if(count($allowed_themes_raw)) - foreach($allowed_themes_raw as $x) - if(strlen(trim($x))) + foreach($allowed_themes_raw as $x) + if(strlen(trim($x)) && is_dir("view/theme/$x")) $allowed_themes[] = trim($x); @@ -732,7 +734,6 @@ function settings_content(&$a) { $tpl = get_markup_template("settings_display.tpl"); $o = replace_macros($tpl, array( - '$tabs' => $tabs, '$ptitle' => t('Display Settings'), '$form_security_token' => get_form_security_token("settings_display"), '$submit' => t('Submit'), @@ -793,6 +794,11 @@ function settings_content(&$a) { $suggestme = get_pconfig(local_user(), 'system','suggestme'); $suggestme = (($suggestme===false)? '0': $suggestme); // default if not set: 0 + $post_newfriend = get_pconfig(local_user(), 'system','post_newfriend'); + $post_newfriend = (($post_newfriend===false)? '0': $post_newfriend); // default if not set: 0 + + $post_profilechange = get_pconfig(local_user(), 'system','post_profilechange'); + $post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0 if(! strlen($a->user['timezone'])) @@ -881,6 +887,8 @@ function settings_content(&$a) { )); + + $invisible = (((! $profile['publish']) && (! $profile['net-publish'])) ? true : false); @@ -917,7 +925,6 @@ function settings_content(&$a) { ); $o .= replace_macros($stpl,array( - '$tabs' => $tabs, '$ptitle' => t('Account Settings'), '$submit' => t('Submit'), @@ -962,6 +969,9 @@ function settings_content(&$a) { '$h_not' => t('Notification Settings'), + '$activity_options' => t('By default post a status message when:'), + '$post_newfriend' => array('post_newfriend', t('accepting a friend request'), $post_newfriend, ''), + '$post_profilechange' => array('post_profilechange', t('making an <em>interesting</em> profile change'), $post_profilechange, ''), '$lbl_not' => t('Send a notification email when:'), '$notify1' => array('notify1', t('You receive an introduction'), ($notify & NOTIFY_INTRO), NOTIFY_INTRO, ''), '$notify2' => array('notify2', t('Your introductions are confirmed'), ($notify & NOTIFY_CONFIRM), NOTIFY_CONFIRM, ''), diff --git a/mod/share.php b/mod/share.php index 47bb851a4..6c6098c83 100755..100644 --- a/mod/share.php +++ b/mod/share.php @@ -16,18 +16,18 @@ function share_init(&$a) { $o = ''; - if(local_user() && intval(get_pconfig(local_user(),'system','plaintext'))) { +// if(local_user() && intval(get_pconfig(local_user(),'system','plaintext'))) { $o .= "\xE2\x99\xb2" . ' [url=' . $r[0]['author-link'] . ']' . $r[0]['author-name'] . '[/url]' . "\n"; if($r[0]['title']) $o .= '[b]' . $r[0]['title'] . '[/b]' . "\n"; $o .= $r[0]['body'] . "\n"; - } - else { - $o .= '♲ <a href="' . $r[0]['author-link'] . '">' . $r[0]['author-name'] . '</a><br />'; - if($r[0]['title']) - $o .= '<strong>' . $r[0]['title'] . '</strong><br />'; - $o .= bbcode($r[0]['body'], true) . '<br />'; - } +// } +// else { +// $o .= '♲ <a href="' . $r[0]['author-link'] . '">' . $r[0]['author-name'] . '</a><br />'; +// if($r[0]['title']) +// $o .= '<strong>' . $r[0]['title'] . '</strong><br />'; +// $o .= $r[0]['body'] . "\n"; +// } echo $o; killme(); } diff --git a/mod/smilies.php b/mod/smilies.php index c47f95da7..c47f95da7 100755..100644 --- a/mod/smilies.php +++ b/mod/smilies.php diff --git a/mod/starred.php b/mod/starred.php index 035b81e76..035b81e76 100755..100644 --- a/mod/starred.php +++ b/mod/starred.php diff --git a/mod/suggest.php b/mod/suggest.php index 7a86d53a1..7a86d53a1 100755..100644 --- a/mod/suggest.php +++ b/mod/suggest.php diff --git a/mod/tagger.php b/mod/tagger.php index 3ff5d57aa..3ff5d57aa 100755..100644 --- a/mod/tagger.php +++ b/mod/tagger.php diff --git a/mod/tagrm.php b/mod/tagrm.php index 5041145cc..5041145cc 100755..100644 --- a/mod/tagrm.php +++ b/mod/tagrm.php diff --git a/mod/uexport.php b/mod/uexport.php index e1fb22855..e1fb22855 100755..100644 --- a/mod/uexport.php +++ b/mod/uexport.php diff --git a/mod/update_community.php b/mod/update_community.php index 3dcbce6b1..3dcbce6b1 100755..100644 --- a/mod/update_community.php +++ b/mod/update_community.php diff --git a/mod/update_network.php b/mod/update_network.php index 36de0722a..36de0722a 100755..100644 --- a/mod/update_network.php +++ b/mod/update_network.php diff --git a/mod/update_notes.php b/mod/update_notes.php index 90cc5bc69..90cc5bc69 100755..100644 --- a/mod/update_notes.php +++ b/mod/update_notes.php diff --git a/mod/update_profile.php b/mod/update_profile.php index c4884b30f..c4884b30f 100755..100644 --- a/mod/update_profile.php +++ b/mod/update_profile.php diff --git a/mod/viewcontacts.php b/mod/viewcontacts.php index e7d26b73e..e7d26b73e 100755..100644 --- a/mod/viewcontacts.php +++ b/mod/viewcontacts.php diff --git a/mod/viewsrc.php b/mod/viewsrc.php index 3fa4eaed5..3fa4eaed5 100755..100644 --- a/mod/viewsrc.php +++ b/mod/viewsrc.php diff --git a/mod/wall_attach.php b/mod/wall_attach.php index ecf475291..03d9f5105 100755..100644 --- a/mod/wall_attach.php +++ b/mod/wall_attach.php @@ -7,7 +7,7 @@ function wall_attach_post(&$a) { if($a->argc > 1) { $nick = $a->argv[1]; - $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1", + $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", dbesc($nick) ); if(! count($r)) @@ -21,6 +21,7 @@ function wall_attach_post(&$a) { $visitor = 0; $page_owner_uid = $r[0]['uid']; + $page_owner_cid = $r[0]['id']; $page_owner_nick = $r[0]['nickname']; $community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false); @@ -73,7 +74,7 @@ function wall_attach_post(&$a) { dbesc($filedata), dbesc($created), dbesc($created), - dbesc('<' . $page_owner_uid . '>'), + dbesc('<' . $page_owner_cid . '>'), dbesc(''), dbesc(''), dbesc('') @@ -97,8 +98,13 @@ function wall_attach_post(&$a) { killme(); } - echo '<br /><br />[attachment]' . $r[0]['id'] . '[/attachment]' . '<br />'; + $lf = '<br />'; + if(local_user() && intval(get_pconfig(local_user(),'system','plaintext'))) + $lf = "\n"; + + echo $lf . $lf . '[attachment]' . $r[0]['id'] . '[/attachment]' . $lf; + killme(); // NOTREACHED } diff --git a/mod/wall_upload.php b/mod/wall_upload.php index 64f174a78..fa66561e8 100755..100644 --- a/mod/wall_upload.php +++ b/mod/wall_upload.php @@ -5,21 +5,31 @@ require_once('Photo.php'); function wall_upload_post(&$a) { if($a->argc > 1) { - $nick = $a->argv[1]; - $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1", - dbesc($nick) - ); - if(! count($r)) - return; - + if(! x($_FILES,'media')) { + $nick = $a->argv[1]; + $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", + dbesc($nick) + ); + + if(! count($r)) + return; + } + else { + $user_info = api_get_user($a); + $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", + dbesc($user_info['screen_name']) + ); + } } else return; + $can_post = false; $visitor = 0; $page_owner_uid = $r[0]['uid']; + $default_cid = $r[0]['id']; $page_owner_nick = $r[0]['nickname']; $community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false); @@ -34,6 +44,7 @@ function wall_upload_post(&$a) { if(count($r)) { $can_post = true; $visitor = remote_user(); + $default_cid = $visitor; } } } @@ -43,12 +54,19 @@ function wall_upload_post(&$a) { killme(); } - if(! x($_FILES,'userfile')) + if(! x($_FILES,'userfile') && ! x($_FILES,'media')) killme(); - $src = $_FILES['userfile']['tmp_name']; - $filename = basename($_FILES['userfile']['name']); - $filesize = intval($_FILES['userfile']['size']); + if(x($_FILES,'userfile')) { + $src = $_FILES['userfile']['tmp_name']; + $filename = basename($_FILES['userfile']['name']); + $filesize = intval($_FILES['userfile']['size']); + } + elseif(x($_FILES,'media')) { + $src = $_FILES['media']['tmp_name']; + $filename = basename($_FILES['media']['name']); + $filesize = intval($_FILES['media']['size']); + } $maximagesize = get_config('system','maximagesize'); @@ -76,7 +94,7 @@ function wall_upload_post(&$a) { $smallest = 0; - $defperm = '<' . $page_owner_uid . '>'; + $defperm = '<' . $default_cid . '>'; $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, $defperm); diff --git a/mod/webfinger.php b/mod/webfinger.php index 74bd2c954..74bd2c954 100755..100644 --- a/mod/webfinger.php +++ b/mod/webfinger.php diff --git a/mod/xrd.php b/mod/xrd.php index 2fa6bcd99..2fa6bcd99 100755..100644 --- a/mod/xrd.php +++ b/mod/xrd.php |