3 * GNU Social - a federating social network
4 * Copyright (C) 2014, Free Software Foundation, Inc.
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Affero General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
16 * You should have received a copy of the GNU Affero General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 if (!defined('GNUSOCIAL')) { exit(1); }
24 * @maintainer Mikael Nordfeldth <mmn@hethane.se>
26 abstract class ActivityVerbHandlerPlugin extends ActivityHandlerPlugin
28 public function onActivityVerbTitle(ManagedAction $action, $verb, Notice $target, Profile $scoped, &$title)
30 if (!$this->isMyVerb($verb)) {
34 $title = $this->getActionTitle($action, $verb, $target, $scoped);
37 abstract protected function getActionTitle(ManagedAction $action, $verb, Notice $target, Profile $scoped);
39 public function onActivityVerbShowContent(ManagedAction $action, $verb, Notice $target, Profile $scoped)
41 if (!$this->isMyVerb($verb)) {
45 return $this->showActionContent($action, $verb, $target, $scoped);
47 protected function showActionContent(ManagedAction $action, $verb, Notice $target, Profile $scoped)
49 if (!GNUsocial::isAjax()) {
50 $nl = new NoticeListItem($target, $action, array('options'=>false, 'attachments'=>false,
51 'item_tag'=>'div', 'id_prefix'=>'fave'));
55 $form = $this->getActivityForm($action, $verb, $target, $scoped);
61 public function onActivityVerbDoPreparation(ManagedAction $action, $verb, Notice $target, Profile $scoped)
63 if (!$this->isMyVerb($verb)) {
67 return $this->doActionPreparation($action, $verb, $target, $scoped);
69 abstract protected function doActionPreparation(ManagedAction $action, $verb, Notice $target, Profile $scoped);
71 public function onActivityVerbDoPost(ManagedAction $action, $verb, Notice $target, Profile $scoped)
73 if (!$this->isMyVerb($verb)) {
77 return $this->doActionPost($action, $verb, $target, $scoped);
79 abstract protected function doActionPost(ManagedAction $action, $verb, Notice $target, Profile $scoped);
81 abstract protected function getActivityForm(ManagedAction $action, $verb, Notice $target, Profile $scoped);