summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-01-19 00:31:42 -0500
committerEvan Prodromou <evan@status.net>2010-01-19 00:31:42 -0500
commit01dc77c2fd783f8b7ff796ca06013804971c8f5e (patch)
tree4874bddd23ac870d8ea9bfff5c4d0479ef67bbad
parent1f6bbc189012cb3a1d61be92bbc1d4ec6156afac (diff)
parentc7f14cd7774d21e16aa6b020da71f318c648e3f0 (diff)
Merge branch 'master' into 0.9.x
-rw-r--r--EVENTS.txt6
-rw-r--r--README6
-rw-r--r--classes/Notice.php24
-rw-r--r--lib/action.php56
-rw-r--r--lib/default.php4
-rw-r--r--plugins/MemcachePlugin.php4
6 files changed, 77 insertions, 23 deletions
diff --git a/EVENTS.txt b/EVENTS.txt
index e6400244e..6e6afa070 100644
--- a/EVENTS.txt
+++ b/EVENTS.txt
@@ -687,3 +687,9 @@ StartLeaveGroup: when a user is leaving a group
EndLeaveGroup: when a user has left a group
- $group: the group being left
- $user: the user leaving
+
+StartShowContentLicense: Showing the default license for content
+- $action: the current action
+
+EndShowContentLicense: Showing the default license for content
+- $action: the current action
diff --git a/README b/README
index 7457215a1..386b3264a 100644
--- a/README
+++ b/README
@@ -1035,6 +1035,12 @@ Creative Commons Attribution 3.0 license, which is probably the right
choice for any public site. Note that some other servers will not
accept notices if you apply a stricter license than this.
+type: one of 'cc' (for Creative Commons licenses), 'allrightsreserved'
+ (default copyright), or 'private' (for private and confidential
+ information).
+owner: for 'allrightsreserved' or 'private', an assigned copyright
+ holder (for example, an employer for a private site). If
+ not specified, will be attributed to 'contributors'.
url: URL of the license, used for links.
title: Title for the license, like 'Creative Commons Attribution 3.0'.
image: A button shown on each page for the license.
diff --git a/classes/Notice.php b/classes/Notice.php
index a43ce867b..38b10db04 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -826,6 +826,10 @@ class Notice extends Memcached_DataObject
return $ids;
}
+ /**
+ * @param $groups array of Group *objects*
+ * @param $recipients array of profile *ids*
+ */
function whoGets($groups=null, $recipients=null)
{
$c = self::memcache();
@@ -925,6 +929,9 @@ class Notice extends Memcached_DataObject
return $ids;
}
+ /**
+ * @return array of Group objects
+ */
function saveGroups()
{
// Don't save groups for repeats
@@ -1117,11 +1124,22 @@ class Notice extends Memcached_DataObject
return $ids;
}
+ /**
+ * Same calculation as saveGroups but without the saving
+ * @fixme merge the functions
+ * @return array of Group objects
+ */
function getGroups()
{
+ // Don't save groups for repeats
+
+ if (!empty($this->repeat_of)) {
+ return array();
+ }
+
// XXX: cache me
- $ids = array();
+ $groups = array();
$gi = new Group_inbox();
@@ -1132,13 +1150,13 @@ class Notice extends Memcached_DataObject
if ($gi->find()) {
while ($gi->fetch()) {
- $ids[] = $gi->group_id;
+ $groups[] = clone($gi);
}
}
$gi->free();
- return $ids;
+ return $groups;
}
function asAtomEntry($namespace=false, $source=false)
diff --git a/lib/action.php b/lib/action.php
index a521bcb50..171bea17c 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -791,23 +791,45 @@ class Action extends HTMLOutputter // lawsuit
*/
function showContentLicense()
{
- $this->element('dt', array('id' => 'site_content_license'), _('Site content license'));
- $this->elementStart('dd', array('id' => 'site_content_license_cc'));
- $this->elementStart('p');
- $this->element('img', array('id' => 'license_cc',
- 'src' => common_config('license', 'image'),
- 'alt' => common_config('license', 'title'),
- 'width' => '80',
- 'height' => '15'));
- //TODO: This is dirty: i18n
- $this->text(_('All '.common_config('site', 'name').' content and data are available under the '));
- $this->element('a', array('class' => 'license',
- 'rel' => 'external license',
- 'href' => common_config('license', 'url')),
- common_config('license', 'title'));
- $this->text(_('license.'));
- $this->elementEnd('p');
- $this->elementEnd('dd');
+ if (Event::handle('StartShowContentLicense', array($this))) {
+ $this->element('dt', array('id' => 'site_content_license'), _('Site content license'));
+ $this->elementStart('dd', array('id' => 'site_content_license_cc'));
+
+ switch (common_config('license', 'type')) {
+ case 'private':
+ $this->element('p', null, sprintf(_('Content and data of %1$s are private and confidential.'),
+ common_config('site', 'name')));
+ // fall through
+ case 'allrightsreserved':
+ if (common_config('license', 'owner')) {
+ $this->element('p', null, sprintf(_('Content and data copyright by %1$s. All rights reserved.'),
+ common_config('license', 'owner')));
+ } else {
+ $this->element('p', null, _('Content and data copyright by contributors. All rights reserved.'));
+ }
+ break;
+ case 'cc': // fall through
+ default:
+ $this->elementStart('p');
+ $this->element('img', array('id' => 'license_cc',
+ 'src' => common_config('license', 'image'),
+ 'alt' => common_config('license', 'title'),
+ 'width' => '80',
+ 'height' => '15'));
+ //TODO: This is dirty: i18n
+ $this->text(_('All '.common_config('site', 'name').' content and data are available under the '));
+ $this->element('a', array('class' => 'license',
+ 'rel' => 'external license',
+ 'href' => common_config('license', 'url')),
+ common_config('license', 'title'));
+ $this->text(_('license.'));
+ $this->elementEnd('p');
+ break;
+ }
+
+ $this->elementEnd('dd');
+ Event::handle('EndShowContentLicense', array($this));
+ }
}
/**
diff --git a/lib/default.php b/lib/default.php
index 82578fea8..1c3c5e7ff 100644
--- a/lib/default.php
+++ b/lib/default.php
@@ -83,7 +83,9 @@ $default =
'softlimit' => '90%', // total size or % of memory_limit at which to restart queue threads gracefully
),
'license' =>
- array('url' => 'http://creativecommons.org/licenses/by/3.0/',
+ array('type' => 'cc', # can be 'cc', 'allrightsreserved', 'private'
+ 'owner' => null, # can be name of content owner e.g. for enterprise
+ 'url' => 'http://creativecommons.org/licenses/by/3.0/',
'title' => 'Creative Commons Attribution 3.0',
'image' => 'http://i.creativecommons.org/l/by/3.0/80x15.png'),
'mail' =>
diff --git a/plugins/MemcachePlugin.php b/plugins/MemcachePlugin.php
index 5214ab9c8..8c8b8da6d 100644
--- a/plugins/MemcachePlugin.php
+++ b/plugins/MemcachePlugin.php
@@ -170,8 +170,8 @@ class MemcachePlugin extends Plugin
$servers = array($this->servers);
}
foreach ($servers as $server) {
- if (strpos($server, ':') !== false) {
- list($host, $port) = explode(':', $server);
+ if (strpos($server, ';') !== false) {
+ list($host, $port) = explode(';', $server);
} else {
$host = $server;
$port = 11211;