From 0e2470998936872dca00f7819408933a1e72b4b7 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Sun, 27 Sep 2015 22:51:11 +0200 Subject: [PATCH] Profile/Peopletag file splitting for autoload --- actions/showprofiletag.php | 26 +---- lib/framework.php | 1 + lib/peopletag.php | 20 ++++ lib/peopletaglist.php | 206 +-------------------------------- lib/peopletaglistitem.php | 228 +++++++++++++++++++++++++++++++++++++ 5 files changed, 251 insertions(+), 230 deletions(-) create mode 100644 lib/peopletag.php create mode 100644 lib/peopletaglistitem.php diff --git a/actions/showprofiletag.php b/actions/showprofiletag.php index 6ba0c18f90..09085ebf1a 100644 --- a/actions/showprofiletag.php +++ b/actions/showprofiletag.php @@ -22,14 +22,7 @@ * @link http://status.net */ -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -require_once INSTALLDIR.'/lib/profileminilist.php'; -require_once INSTALLDIR.'/lib/peopletaglist.php'; -require_once INSTALLDIR.'/lib/noticelist.php'; -require_once INSTALLDIR.'/lib/feedlist.php'; +if (!defined('GNUSOCIAL')) { exit(1); } class ShowprofiletagAction extends Action { @@ -356,20 +349,3 @@ class ShowprofiletagAction extends Action $this->elementEnd('div'); } } - -class Peopletag extends PeopletagListItem -{ - protected $avatarSize = AVATAR_PROFILE_SIZE; - - function showStart() - { - $mode = $this->peopletag->private ? 'private' : 'public'; - $this->out->elementStart('div', array('class' => 'h-entry peopletag peopletag-profile mode-'.$mode, - 'id' => 'peopletag-' . $this->peopletag->id)); - } - - function showEnd() - { - $this->out->elementEnd('div'); - } -} diff --git a/lib/framework.php b/lib/framework.php index d749d23bdf..954e29597f 100644 --- a/lib/framework.php +++ b/lib/framework.php @@ -38,6 +38,7 @@ define('PROFILES_PER_PAGE', 20); define('MESSAGES_PER_PAGE', 20); define('GROUPS_PER_PAGE', 20); define('APPS_PER_PAGE', 20); +define('PEOPLETAGS_PER_PAGE', 20); define('GROUPS_PER_MINILIST', 8); define('PROFILES_PER_MINILIST', 8); diff --git a/lib/peopletag.php b/lib/peopletag.php new file mode 100644 index 0000000000..4440beb959 --- /dev/null +++ b/lib/peopletag.php @@ -0,0 +1,20 @@ +peopletag->private ? 'private' : 'public'; + $this->out->elementStart('div', array('class' => 'h-entry peopletag peopletag-profile mode-'.$mode, + 'id' => 'peopletag-' . $this->peopletag->id)); + } + + function showEnd() + { + $this->out->elementEnd('div'); + } +} diff --git a/lib/peopletaglist.php b/lib/peopletaglist.php index b2f2dcca46..3040d41d0a 100644 --- a/lib/peopletaglist.php +++ b/lib/peopletaglist.php @@ -27,13 +27,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -require_once INSTALLDIR.'/lib/widget.php'; - -define('PEOPLETAGS_PER_PAGE', 20); +if (!defined('GNUSOCIAL')) { exit(1); } /** * Widget to show a list of peopletags @@ -88,201 +82,3 @@ class PeopletagList extends Widget $ptag->show(); } } - -class PeopletagListItem extends Widget -{ - var $peopletag = null; - var $current = null; - var $profile = null; - - /** - * constructor - * - * Also initializes the owner attribute. - * - * @param Notice $notice The notice we'll display - */ - function __construct($peopletag, $current, $out=null) - { - parent::__construct($out); - $this->peopletag = $peopletag; - $this->current = $current; - $this->profile = Profile::getKV('id', $this->peopletag->tagger); - } - - /** - * recipe function for displaying a single peopletag. - * - * This uses all the other methods to correctly display a notice. Override - * it or one of the others to fine-tune the output. - * - * @return void - */ - function url() - { - return $this->peopletag->homeUrl(); - } - - function show() - { - if (empty($this->peopletag)) { - common_log(LOG_WARNING, "Trying to show missing peopletag; skipping."); - return; - } - - if (Event::handle('StartShowPeopletagItem', array($this))) { - $this->showStart(); - $this->showPeopletag(); - $this->showStats(); - $this->showEnd(); - Event::handle('EndShowPeopletagItem', array($this)); - } - } - - function showStart() - { - $mode = ($this->peopletag->private) ? 'private' : 'public'; - $this->out->elementStart('li', array('class' => 'h-entry peopletag mode-' . $mode, - 'id' => 'peopletag-' . $this->peopletag->id)); - } - - function showEnd() - { - $this->out->elementEnd('li'); - } - - function showPeopletag() - { - $this->showCreator(); - $this->showTag(); - $this->showPrivacy(); - $this->showUpdated(); - $this->showActions(); - $this->showDescription(); - } - - function showStats() - { - $this->out->elementStart('div', 'entry-summary entity_statistics'); - $this->out->elementStart('span', 'tagged-count'); - $this->out->element('a', - array('href' => common_local_url('peopletagged', - array('tagger' => $this->profile->nickname, - 'tag' => $this->peopletag->tag))), - // TRANS: Link description for link to list of users tagged with a tag (so part of a list). - _('Listed')); - $this->out->raw($this->peopletag->taggedCount()); - $this->out->elementEnd('span'); - - $this->out->elementStart('span', 'subscriber-count'); - $this->out->element('a', - array('href' => common_local_url('peopletagsubscribers', - array('tagger' => $this->profile->nickname, - 'tag' => $this->peopletag->tag))), - // TRANS: Link description for link to list of users subscribed to a tag. - _('Subscribers')); - $this->out->raw($this->peopletag->subscriberCount()); - $this->out->elementEnd('span'); - $this->out->elementEnd('div'); - } - - function showOwnerOptions() - { - $this->out->elementStart('li', 'entity_edit'); - $this->out->element('a', array('href' => - common_local_url('editpeopletag', array('tagger' => $this->profile->nickname, - 'tag' => $this->peopletag->tag)), - // TRANS: Title for link to edit list settings. - 'title' => _('Edit list settings.')), - // TRANS: Text for link to edit list settings. - _('Edit')); - $this->out->elementEnd('li'); - } - - function showSubscribeForm() - { - $this->out->elementStart('li'); - - if (Event::handle('StartSubscribePeopletagForm', array($this->out, $this->peopletag))) { - if ($this->current) { - if ($this->peopletag->hasSubscriber($this->current->id)) { - $form = new UnsubscribePeopletagForm($this->out, $this->peopletag); - $form->show(); - } else { - $form = new SubscribePeopletagForm($this->out, $this->peopletag); - $form->show(); - } - } - Event::handle('EndSubscribePeopletagForm', array($this->out, $this->peopletag)); - } - - $this->out->elementEnd('li'); - } - - function showCreator() - { - $attrs = array(); - $attrs['href'] = $this->profile->profileurl; - $attrs['class'] = 'h-card p-author nickname p-name'; - $attrs['rel'] = 'contact'; - $attrs['title'] = $this->profile->getFancyName(); - - $this->out->elementStart('a', $attrs); - $this->showAvatar($this->profile); - $this->out->text($this->profile->getNickname()); - $this->out->elementEnd('a'); - } - - function showUpdated() - { - if (!empty($this->peopletag->modified)) { - $this->out->element('abbr', - array('title' => common_date_w3dtf($this->peopletag->modified), - 'class' => 'updated'), - common_date_string($this->peopletag->modified)); - } - } - - function showPrivacy() - { - if ($this->peopletag->private) { - $this->out->elementStart('a', - array('href' => common_local_url('peopletagsbyuser', - array('nickname' => $this->profile->nickname, 'private' => 1)))); - // TRANS: Privacy mode text in list list item for private list. - $this->out->element('span', 'privacy_mode', _m('MODE','Private')); - $this->out->elementEnd('a'); - } - } - - function showTag() - { - $this->out->elementStart('span', 'entry-title tag'); - $this->out->element('a', - array('rel' => 'bookmark', - 'href' => $this->url()), - htmlspecialchars($this->peopletag->tag)); - $this->out->elementEnd('span'); - } - - function showActions() - { - $this->out->elementStart('div', 'entity_actions'); - $this->out->elementStart('ul'); - - if (!$this->peopletag->private) { - $this->showSubscribeForm(); - } - - if (!empty($this->current) && $this->profile->id == $this->current->id) { - $this->showOwnerOptions(); - } - $this->out->elementEnd('ul'); - $this->out->elementEnd('div'); - } - - function showDescription() - { - $this->out->element('div', 'e-content description', $this->peopletag->description); - } -} diff --git a/lib/peopletaglistitem.php b/lib/peopletaglistitem.php new file mode 100644 index 0000000000..75ce60662c --- /dev/null +++ b/lib/peopletaglistitem.php @@ -0,0 +1,228 @@ +. + * + * @category Public + * @package StatusNet + * @author Shashi Gowda + * @copyright 2008-2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('GNUSOCIAL')) { exit(1); } + +class PeopletagListItem extends Widget +{ + var $peopletag = null; + var $current = null; + var $profile = null; + + /** + * constructor + * + * Also initializes the owner attribute. + * + * @param Notice $notice The notice we'll display + */ + function __construct($peopletag, $current, $out=null) + { + parent::__construct($out); + $this->peopletag = $peopletag; + $this->current = $current; + $this->profile = Profile::getKV('id', $this->peopletag->tagger); + } + + /** + * recipe function for displaying a single peopletag. + * + * This uses all the other methods to correctly display a notice. Override + * it or one of the others to fine-tune the output. + * + * @return void + */ + function url() + { + return $this->peopletag->homeUrl(); + } + + function show() + { + if (empty($this->peopletag)) { + common_log(LOG_WARNING, "Trying to show missing peopletag; skipping."); + return; + } + + if (Event::handle('StartShowPeopletagItem', array($this))) { + $this->showStart(); + $this->showPeopletag(); + $this->showStats(); + $this->showEnd(); + Event::handle('EndShowPeopletagItem', array($this)); + } + } + + function showStart() + { + $mode = ($this->peopletag->private) ? 'private' : 'public'; + $this->out->elementStart('li', array('class' => 'h-entry peopletag mode-' . $mode, + 'id' => 'peopletag-' . $this->peopletag->id)); + } + + function showEnd() + { + $this->out->elementEnd('li'); + } + + function showPeopletag() + { + $this->showCreator(); + $this->showTag(); + $this->showPrivacy(); + $this->showUpdated(); + $this->showActions(); + $this->showDescription(); + } + + function showStats() + { + $this->out->elementStart('div', 'entry-summary entity_statistics'); + $this->out->elementStart('span', 'tagged-count'); + $this->out->element('a', + array('href' => common_local_url('peopletagged', + array('tagger' => $this->profile->nickname, + 'tag' => $this->peopletag->tag))), + // TRANS: Link description for link to list of users tagged with a tag (so part of a list). + _('Listed')); + $this->out->raw($this->peopletag->taggedCount()); + $this->out->elementEnd('span'); + + $this->out->elementStart('span', 'subscriber-count'); + $this->out->element('a', + array('href' => common_local_url('peopletagsubscribers', + array('tagger' => $this->profile->nickname, + 'tag' => $this->peopletag->tag))), + // TRANS: Link description for link to list of users subscribed to a tag. + _('Subscribers')); + $this->out->raw($this->peopletag->subscriberCount()); + $this->out->elementEnd('span'); + $this->out->elementEnd('div'); + } + + function showOwnerOptions() + { + $this->out->elementStart('li', 'entity_edit'); + $this->out->element('a', array('href' => + common_local_url('editpeopletag', array('tagger' => $this->profile->nickname, + 'tag' => $this->peopletag->tag)), + // TRANS: Title for link to edit list settings. + 'title' => _('Edit list settings.')), + // TRANS: Text for link to edit list settings. + _('Edit')); + $this->out->elementEnd('li'); + } + + function showSubscribeForm() + { + $this->out->elementStart('li'); + + if (Event::handle('StartSubscribePeopletagForm', array($this->out, $this->peopletag))) { + if ($this->current) { + if ($this->peopletag->hasSubscriber($this->current->id)) { + $form = new UnsubscribePeopletagForm($this->out, $this->peopletag); + $form->show(); + } else { + $form = new SubscribePeopletagForm($this->out, $this->peopletag); + $form->show(); + } + } + Event::handle('EndSubscribePeopletagForm', array($this->out, $this->peopletag)); + } + + $this->out->elementEnd('li'); + } + + function showCreator() + { + $attrs = array(); + $attrs['href'] = $this->profile->profileurl; + $attrs['class'] = 'h-card p-author nickname p-name'; + $attrs['rel'] = 'contact'; + $attrs['title'] = $this->profile->getFancyName(); + + $this->out->elementStart('a', $attrs); + $this->showAvatar($this->profile); + $this->out->text($this->profile->getNickname()); + $this->out->elementEnd('a'); + } + + function showUpdated() + { + if (!empty($this->peopletag->modified)) { + $this->out->element('abbr', + array('title' => common_date_w3dtf($this->peopletag->modified), + 'class' => 'updated'), + common_date_string($this->peopletag->modified)); + } + } + + function showPrivacy() + { + if ($this->peopletag->private) { + $this->out->elementStart('a', + array('href' => common_local_url('peopletagsbyuser', + array('nickname' => $this->profile->nickname, 'private' => 1)))); + // TRANS: Privacy mode text in list list item for private list. + $this->out->element('span', 'privacy_mode', _m('MODE','Private')); + $this->out->elementEnd('a'); + } + } + + function showTag() + { + $this->out->elementStart('span', 'entry-title tag'); + $this->out->element('a', + array('rel' => 'bookmark', + 'href' => $this->url()), + htmlspecialchars($this->peopletag->tag)); + $this->out->elementEnd('span'); + } + + function showActions() + { + $this->out->elementStart('div', 'entity_actions'); + $this->out->elementStart('ul'); + + if (!$this->peopletag->private) { + $this->showSubscribeForm(); + } + + if (!empty($this->current) && $this->profile->id == $this->current->id) { + $this->showOwnerOptions(); + } + $this->out->elementEnd('ul'); + $this->out->elementEnd('div'); + } + + function showDescription() + { + $this->out->element('div', 'e-content description', $this->peopletag->description); + } +} -- 2.39.2