aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Nordfeldth <mmn@hethane.se>2014-11-07 15:47:10 +0100
committerMikael Nordfeldth <mmn@hethane.se>2014-11-07 15:53:35 +0100
commit68143ff916b07e8188d1a8ff6cba3ad31c34a2ad (patch)
treee4a5ad1d593dc1ac91fe00b498c023d9f3c73e98
parentfaae9d069abd09b28646e2100a289dd27b618c94 (diff)
downloadgnu-social-68143ff916b07e8188d1a8ff6cba3ad31c34a2ad.tar
gnu-social-68143ff916b07e8188d1a8ff6cba3ad31c34a2ad.zip
DirectMessage moved into a plugin, not done yet
We still have to move some API calls into the new plugin.
-rw-r--r--classes/Profile.php12
-rw-r--r--db/core.php1
-rw-r--r--lib/accountprofileblock.php11
-rw-r--r--lib/personalgroupnav.php13
-rw-r--r--lib/router.php21
-rw-r--r--plugins/DirectMessage/DirectMessagePlugin.php116
-rw-r--r--plugins/DirectMessage/actions/apidirectmessage.php (renamed from actions/apidirectmessage.php)0
-rw-r--r--plugins/DirectMessage/actions/apidirectmessagenew.php (renamed from actions/apidirectmessagenew.php)0
-rw-r--r--plugins/DirectMessage/actions/inbox.php (renamed from actions/inbox.php)0
-rw-r--r--plugins/DirectMessage/actions/newmessage.php (renamed from actions/newmessage.php)0
-rw-r--r--plugins/DirectMessage/actions/outbox.php (renamed from actions/outbox.php)0
-rw-r--r--plugins/DirectMessage/actions/showmessage.php (renamed from actions/showmessage.php)0
-rw-r--r--plugins/DirectMessage/classes/Message.php (renamed from classes/Message.php)0
-rw-r--r--plugins/DirectMessage/lib/mailbox.php (renamed from lib/mailbox.php)0
-rw-r--r--plugins/DirectMessage/lib/mailboxmenu.php (renamed from lib/mailboxmenu.php)0
-rw-r--r--plugins/DirectMessage/lib/messageform.php (renamed from lib/messageform.php)0
-rw-r--r--plugins/DirectMessage/lib/messagelist.php (renamed from lib/messagelist.php)0
-rw-r--r--plugins/DirectMessage/lib/messagelistitem.php (renamed from lib/messagelistitem.php)0
18 files changed, 116 insertions, 58 deletions
diff --git a/classes/Profile.php b/classes/Profile.php
index a03f53cc7d..00a457a5c9 100644
--- a/classes/Profile.php
+++ b/classes/Profile.php
@@ -861,7 +861,6 @@ class Profile extends Managed_DataObject
{
$this->_deleteNotices();
$this->_deleteSubscriptions();
- $this->_deleteMessages();
$this->_deleteTags();
$this->_deleteBlocks();
$this->_deleteAttentions();
@@ -937,17 +936,6 @@ class Profile extends Managed_DataObject
$self->delete();
}
- function _deleteMessages()
- {
- $msg = new Message();
- $msg->from_profile = $this->id;
- $msg->delete();
-
- $msg = new Message();
- $msg->to_profile = $this->id;
- $msg->delete();
- }
-
function _deleteTags()
{
$tag = new Profile_tag();
diff --git a/db/core.php b/db/core.php
index c0aed1d3db..ec3fe7f736 100644
--- a/db/core.php
+++ b/db/core.php
@@ -55,7 +55,6 @@ $classes = array('Schema_version',
'Foreign_link',
'Foreign_subscription',
'Invitation',
- 'Message',
'Profile_prefs',
'Profile_tag',
'Profile_list',
diff --git a/lib/accountprofileblock.php b/lib/accountprofileblock.php
index 76e2edb7ce..fe11a0fc15 100644
--- a/lib/accountprofileblock.php
+++ b/lib/accountprofileblock.php
@@ -171,17 +171,6 @@ class AccountProfileBlock extends ProfileBlock
$this->out->elementEnd('li');
if ($this->profile->isLocal() && $cur->mutuallySubscribed($this->profile)) {
-
- // message
-
- $this->out->elementStart('li', 'entity_send-a-message');
- $this->out->element('a', array('href' => common_local_url('newmessage', array('to' => $this->user->id)),
- // TRANS: Link title for link on user profile.
- 'title' => _('Send a direct message to this user.')),
- // TRANS: Link text for link on user profile.
- _m('BUTTON','Message'));
- $this->out->elementEnd('li');
-
// nudge
if ($this->user->email && $this->user->emailnotifynudge) {
diff --git a/lib/personalgroupnav.php b/lib/personalgroupnav.php
index 8c413c6ab9..06bd2474bb 100644
--- a/lib/personalgroupnav.php
+++ b/lib/personalgroupnav.php
@@ -96,19 +96,6 @@ class PersonalGroupNav extends Menu
sprintf(_('Replies to %s'), $name),
$mine && $action =='replies', 'nav_timeline_replies');
-
- if ($scoped instanceof Profile && $scoped->id == $target->id &&
- !common_config('singleuser', 'enabled')) {
-
- $this->out->menuItem(common_local_url('inbox', array('nickname' =>
- $nickname)),
- // TRANS: Menu item in personal group navigation menu.
- _m('MENU','Messages'),
- // TRANS: Menu item title in personal group navigation menu.
- _('Your incoming messages'),
- $mine && $action =='inbox');
- }
-
Event::handle('EndPersonalGroupNav', array($this, $target, $scoped));
}
$this->out->elementEnd('ul');
diff --git a/lib/router.php b/lib/router.php
index 54683e986e..8260cb3e2e 100644
--- a/lib/router.php
+++ b/lib/router.php
@@ -249,12 +249,6 @@ class Router
array('action' => 'conversation'),
array('id' => '[0-9]+'));
- $m->connect('message/new', array('action' => 'newmessage'));
- $m->connect('message/new?to=:to', array('action' => 'newmessage'), array('to' => Nickname::DISPLAY_FMT));
- $m->connect('message/:message',
- array('action' => 'showmessage'),
- array('message' => '[0-9]+'));
-
$m->connect('user/:id',
array('action' => 'userbyid'),
array('id' => '[0-9]+'));
@@ -507,21 +501,6 @@ class Router
'screen_name' => Nickname::DISPLAY_FMT,
'format' => '(xml|json)'));
- // direct messages
-
- $m->connect('api/direct_messages.:format',
- array('action' => 'ApiDirectMessage',
- 'format' => '(xml|json|rss|atom)'));
-
- $m->connect('api/direct_messages/sent.:format',
- array('action' => 'ApiDirectMessage',
- 'format' => '(xml|json|rss|atom)',
- 'sent' => true));
-
- $m->connect('api/direct_messages/new.:format',
- array('action' => 'ApiDirectMessageNew',
- 'format' => '(xml|json)'));
-
// friendships
$m->connect('api/friendships/show.:format',
diff --git a/plugins/DirectMessage/DirectMessagePlugin.php b/plugins/DirectMessage/DirectMessagePlugin.php
new file mode 100644
index 0000000000..1e717833ad
--- /dev/null
+++ b/plugins/DirectMessage/DirectMessagePlugin.php
@@ -0,0 +1,116 @@
+<?php
+/*
+ * GNU Social - a federating social network
+ * Copyright (C) 2014, Free Software Foundation, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+if (!defined('GNUSOCIAL')) { exit(1); }
+
+/**
+ * @maintainer Mikael Nordfeldth <mmn@hethane.se>
+ */
+class DirectMessagePlugin extends Plugin
+{
+ public function onCheckSchema()
+ {
+ $schema = Schema::get();
+ $schema->ensureTable('message', Message::schemaDef());
+ return true;
+ }
+
+ public function onRouterInitialized(URLMapper $m)
+ {
+ // web front-end actions
+ $m->connect('message/new', array('action' => 'newmessage'));
+ $m->connect('message/new?to=:to', array('action' => 'newmessage'), array('to' => Nickname::DISPLAY_FMT));
+ $m->connect('message/:message',
+ array('action' => 'showmessage'),
+ array('message' => '[0-9]+'));
+
+ // direct messages
+ $m->connect('api/direct_messages.:format',
+ array('action' => 'ApiDirectMessage',
+ 'format' => '(xml|json|rss|atom)'));
+ $m->connect('api/direct_messages/sent.:format',
+ array('action' => 'ApiDirectMessage',
+ 'format' => '(xml|json|rss|atom)',
+ 'sent' => true));
+ $m->connect('api/direct_messages/new.:format',
+ array('action' => 'ApiDirectMessageNew',
+ 'format' => '(xml|json)'));
+
+ return true;
+ }
+
+ public function onEndPersonalGroupNav(Menu $menu, Profile $target, Profile $scoped=null)
+ {
+ if ($scoped instanceof Profile && $scoped->id == $target->id
+ && !common_config('singleuser', 'enabled')) {
+
+ $menu->out->menuItem(common_local_url('inbox', array('nickname' =>
+ $target->getNickname())),
+ // TRANS: Menu item in personal group navigation menu.
+ _m('MENU','Messages'),
+ // TRANS: Menu item title in personal group navigation menu.
+ _('Your incoming messages'),
+ $scoped->id === $target->id && $menu->actionName =='inbox');
+ }
+ }
+
+ public function onEndProfilePageActionsElements(HTMLOutputter $out, Profile $profile)
+ {
+ $scoped = Profile::current();
+ if (!$scoped instanceof Profile) {
+ return true;
+ }
+
+ if ($profile->isLocal() && $scoped->mutuallySubscribed($profile)) {
+ $out->elementStart('li', 'entity_send-a-message');
+ $out->element('a', array('href' => common_local_url('newmessage', array('to' => $profile->id)),
+ // TRANS: Link title for link on user profile.
+ 'title' => _('Send a direct message to this user.')),
+ // TRANS: Link text for link on user profile.
+ _m('BUTTON','Message'));
+ $out->elementEnd('li');
+ }
+ return true;
+ }
+
+ public function onProfileDeleteRelated(Profile $profile, &$related)
+ {
+ $msg = new Message();
+ $msg->from_profile = $profile->id;
+ $msg->delete();
+
+ $msg = new Message();
+ $msg->to_profile = $profile->id;
+ $msg->delete();
+ return true;
+ }
+
+ public function onPluginVersion(array &$versions)
+ {
+ $versions[] = array('name' => 'Direct Message',
+ 'version' => GNUSOCIAL_VERSION,
+ 'author' => 'Mikael Nordfeldth',
+ 'homepage' => 'http://gnu.io/',
+ 'rawdescription' =>
+ // TRANS: Plugin description.
+ _m('Direct Message to other local users (broken out of core).'));
+
+ return true;
+ }
+}
diff --git a/actions/apidirectmessage.php b/plugins/DirectMessage/actions/apidirectmessage.php
index e971a7d4ee..e971a7d4ee 100644
--- a/actions/apidirectmessage.php
+++ b/plugins/DirectMessage/actions/apidirectmessage.php
diff --git a/actions/apidirectmessagenew.php b/plugins/DirectMessage/actions/apidirectmessagenew.php
index 653fa3a9ed..653fa3a9ed 100644
--- a/actions/apidirectmessagenew.php
+++ b/plugins/DirectMessage/actions/apidirectmessagenew.php
diff --git a/actions/inbox.php b/plugins/DirectMessage/actions/inbox.php
index e9aa34317d..e9aa34317d 100644
--- a/actions/inbox.php
+++ b/plugins/DirectMessage/actions/inbox.php
diff --git a/actions/newmessage.php b/plugins/DirectMessage/actions/newmessage.php
index 428a55762c..428a55762c 100644
--- a/actions/newmessage.php
+++ b/plugins/DirectMessage/actions/newmessage.php
diff --git a/actions/outbox.php b/plugins/DirectMessage/actions/outbox.php
index 6d10c8119f..6d10c8119f 100644
--- a/actions/outbox.php
+++ b/plugins/DirectMessage/actions/outbox.php
diff --git a/actions/showmessage.php b/plugins/DirectMessage/actions/showmessage.php
index 86fbee8b73..86fbee8b73 100644
--- a/actions/showmessage.php
+++ b/plugins/DirectMessage/actions/showmessage.php
diff --git a/classes/Message.php b/plugins/DirectMessage/classes/Message.php
index 9c79862e5c..9c79862e5c 100644
--- a/classes/Message.php
+++ b/plugins/DirectMessage/classes/Message.php
diff --git a/lib/mailbox.php b/plugins/DirectMessage/lib/mailbox.php
index 3c7281e985..3c7281e985 100644
--- a/lib/mailbox.php
+++ b/plugins/DirectMessage/lib/mailbox.php
diff --git a/lib/mailboxmenu.php b/plugins/DirectMessage/lib/mailboxmenu.php
index 49e7dce21a..49e7dce21a 100644
--- a/lib/mailboxmenu.php
+++ b/plugins/DirectMessage/lib/mailboxmenu.php
diff --git a/lib/messageform.php b/plugins/DirectMessage/lib/messageform.php
index acd30e3b38..acd30e3b38 100644
--- a/lib/messageform.php
+++ b/plugins/DirectMessage/lib/messageform.php
diff --git a/lib/messagelist.php b/plugins/DirectMessage/lib/messagelist.php
index 0185977285..0185977285 100644
--- a/lib/messagelist.php
+++ b/plugins/DirectMessage/lib/messagelist.php
diff --git a/lib/messagelistitem.php b/plugins/DirectMessage/lib/messagelistitem.php
index c9f4c6042b..c9f4c6042b 100644
--- a/lib/messagelistitem.php
+++ b/plugins/DirectMessage/lib/messagelistitem.php