aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
authorMichael Vogel <icarus@dabo.de>2012-04-14 13:15:25 +0200
committerMichael Vogel <icarus@dabo.de>2012-04-14 13:15:25 +0200
commit4e220ec391514fbdeaa7d64abfd1752a9b44bbaa (patch)
tree1cb3cb621221e948be9e0e91916aac0dd6fccb0e /mod
parent572678fef95816deaa1ecafe5cbcfb8cc65963c9 (diff)
parent0d869ceb65badbd4d80dd0d5cf2d631bca7f5b9e (diff)
downloadvolse-hubzilla-4e220ec391514fbdeaa7d64abfd1752a9b44bbaa.tar.gz
volse-hubzilla-4e220ec391514fbdeaa7d64abfd1752a9b44bbaa.tar.bz2
volse-hubzilla-4e220ec391514fbdeaa7d64abfd1752a9b44bbaa.zip
Merge commit 'upstream/master'
Diffstat (limited to 'mod')
-rw-r--r--mod/admin.php46
-rw-r--r--mod/directory.php2
-rw-r--r--mod/nogroup.php65
-rw-r--r--mod/notifications.php4
-rw-r--r--mod/profiles.php102
-rw-r--r--mod/settings.php14
6 files changed, 218 insertions, 15 deletions
diff --git a/mod/admin.php b/mod/admin.php
index 961002786..7386dc5a3 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -40,6 +40,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;
@@ -129,7 +143,13 @@ function admin_content(&$a) {
} else {
$o = admin_page_summary($a);
}
- return $o;
+
+ if(is_ajax()) {
+ echo $o;
+ killme();
+ } else {
+ return $o;
+ }
}
@@ -362,7 +382,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.")),
@@ -768,14 +788,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))
@@ -793,10 +821,10 @@ 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
));
@@ -805,7 +833,7 @@ function admin_page_themes(&$a){
/**
- * List plugins
+ * List themes
*/
$xthemes = array();
diff --git a/mod/directory.php b/mod/directory.php
index 7f18bd026..367438845 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/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/notifications.php b/mod/notifications.php
index 690a99562..b28b1478d 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/profiles.php b/mod/profiles.php
index eef58bb06..7a33a03e4 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)
@@ -134,6 +136,27 @@ function profiles_post(&$a) {
$hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0);
+
+
+ $changes = array();
+ if($is_default) {
+ if($marital != $orig[0]['marital']) $changes[] = '&hearts; ' . t('Marital Status');
+ if($withchanged) $changes[] = '&hearts; ' . 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',
@@ -195,7 +218,7 @@ function profiles_post(&$a) {
dbesc($education),
intval($hide_friends),
intval($a->argv[1]),
- intval($_SESSION['uid'])
+ intval(local_user())
);
if($r)
@@ -222,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) {
diff --git a/mod/settings.php b/mod/settings.php
index 2dd9fb9a6..721468437 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -346,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;
@@ -428,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",
@@ -790,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']))
@@ -878,6 +887,8 @@ function settings_content(&$a) {
));
+
+
$invisible = (((! $profile['publish']) && (! $profile['net-publish']))
? true : false);
@@ -958,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, ''),