From 6d9f390ba806a5a3a3f6c8c698d99b751c085ea3 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Wed, 6 Jan 2016 01:30:12 +0100 Subject: [PATCH] Separating classes into files and stronger typing --- actions/subscriptions.php | 68 ----------------------------------- lib/subscriptionlist.php | 41 --------------------- lib/subscriptionlistitem.php | 44 +++++++++++++++++++++++ lib/subscriptionslist.php | 13 +++++++ lib/subscriptionslistitem.php | 61 +++++++++++++++++++++++++++++++ 5 files changed, 118 insertions(+), 109 deletions(-) create mode 100644 lib/subscriptionlistitem.php create mode 100644 lib/subscriptionslist.php create mode 100644 lib/subscriptionslistitem.php diff --git a/actions/subscriptions.php b/actions/subscriptions.php index b5734b3747..6e9e163d33 100644 --- a/actions/subscriptions.php +++ b/actions/subscriptions.php @@ -154,71 +154,3 @@ class SubscriptionsAction extends GalleryAction $this->target->getNickname()))); } } - -// XXX SubscriptionsList and SubscriptionList are dangerously close - -class SubscriptionsList extends SubscriptionList -{ - function newListItem($profile) - { - return new SubscriptionsListItem($profile, $this->owner, $this->action); - } -} - -class SubscriptionsListItem extends SubscriptionListItem -{ - function showOwnerControls() - { - $sub = Subscription::pkeyGet(array('subscriber' => $this->owner->id, - 'subscribed' => $this->profile->id)); - if (!$sub) { - return; - } - - $transports = array(); - Event::handle('GetImTransports', array(&$transports)); - if (!$transports && !common_config('sms', 'enabled')) { - return; - } - - $this->out->elementStart('form', array('id' => 'subedit-' . $this->profile->id, - 'method' => 'post', - 'class' => 'form_subscription_edit', - 'action' => common_local_url('subedit'))); - $this->out->hidden('token', common_session_token()); - $this->out->hidden('profile', $this->profile->id); - if ($transports) { - $attrs = array('name' => 'jabber', - 'type' => 'checkbox', - 'class' => 'checkbox', - 'id' => 'jabber-'.$this->profile->id); - if ($sub->jabber) { - $attrs['checked'] = 'checked'; - } - - $this->out->element('input', $attrs); - // TRANS: Checkbox label for enabling IM messages for a profile in a subscriptions list. - $this->out->element('label', array('for' => 'jabber-'.$this->profile->id), _m('LABEL','IM')); - } else { - $this->out->hidden('jabber', $sub->jabber); - } - if (common_config('sms', 'enabled')) { - $attrs = array('name' => 'sms', - 'type' => 'checkbox', - 'class' => 'checkbox', - 'id' => 'sms-'.$this->profile->id); - if ($sub->sms) { - $attrs['checked'] = 'checked'; - } - - $this->out->element('input', $attrs); - // TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. - $this->out->element('label', array('for' => 'sms-'.$this->profile->id), _('SMS')); - } else { - $this->out->hidden('sms', $sub->sms); - } - // TRANS: Save button for settings for a profile in a subscriptions list. - $this->out->submit('save', _m('BUTTON','Save')); - $this->out->elementEnd('form'); - } -} diff --git a/lib/subscriptionlist.php b/lib/subscriptionlist.php index aad1f1230b..cc12d7efe3 100644 --- a/lib/subscriptionlist.php +++ b/lib/subscriptionlist.php @@ -56,44 +56,3 @@ class SubscriptionList extends ProfileList return new SubscriptionListItem($profile, $this->owner, $this->action); } } - -class SubscriptionListItem extends ProfileListItem -{ - /** Owner of this list */ - var $owner = null; - - function __construct($profile, $owner, $action) - { - parent::__construct($profile, $action); - - $this->owner = $owner; - } - - function showProfile() - { - $this->startProfile(); - $this->showAvatar($this->profile); - $this->showNickname(); - $this->showFullName(); - $this->showLocation(); - $this->showHomepage(); - $this->showBio(); - // Relevant portion! - $this->showTags(); - if ($this->isOwn()) { - $this->showOwnerControls(); - } - $this->endProfile(); - } - - function showOwnerControls() - { - // pass - } - - function isOwn() - { - $user = common_current_user(); - return (!empty($user) && ($this->owner->id == $user->id)); - } -} diff --git a/lib/subscriptionlistitem.php b/lib/subscriptionlistitem.php new file mode 100644 index 0000000000..e5f832af1e --- /dev/null +++ b/lib/subscriptionlistitem.php @@ -0,0 +1,44 @@ +owner = $owner; + } + + function showProfile() + { + $this->startProfile(); + $this->showAvatar($this->profile); + $this->showNickname(); + $this->showFullName(); + $this->showLocation(); + $this->showHomepage(); + $this->showBio(); + // Relevant portion! + $this->showTags(); + if ($this->isOwn()) { + $this->showOwnerControls(); + } + $this->endProfile(); + } + + function showOwnerControls() + { + // pass + } + + function isOwn() + { + $user = common_current_user(); + return (!empty($user) && ($this->owner->id == $user->id)); + } +} diff --git a/lib/subscriptionslist.php b/lib/subscriptionslist.php new file mode 100644 index 0000000000..46de52be75 --- /dev/null +++ b/lib/subscriptionslist.php @@ -0,0 +1,13 @@ +owner, $this->action); + } +} diff --git a/lib/subscriptionslistitem.php b/lib/subscriptionslistitem.php new file mode 100644 index 0000000000..584b7314d6 --- /dev/null +++ b/lib/subscriptionslistitem.php @@ -0,0 +1,61 @@ + $this->owner->id, + 'subscribed' => $this->profile->id)); + if (!$sub) { + return; + } + + $transports = array(); + Event::handle('GetImTransports', array(&$transports)); + if (!$transports && !common_config('sms', 'enabled')) { + return; + } + + $this->out->elementStart('form', array('id' => 'subedit-' . $this->profile->id, + 'method' => 'post', + 'class' => 'form_subscription_edit', + 'action' => common_local_url('subedit'))); + $this->out->hidden('token', common_session_token()); + $this->out->hidden('profile', $this->profile->id); + if ($transports) { + $attrs = array('name' => 'jabber', + 'type' => 'checkbox', + 'class' => 'checkbox', + 'id' => 'jabber-'.$this->profile->id); + if ($sub->jabber) { + $attrs['checked'] = 'checked'; + } + + $this->out->element('input', $attrs); + // TRANS: Checkbox label for enabling IM messages for a profile in a subscriptions list. + $this->out->element('label', array('for' => 'jabber-'.$this->profile->id), _m('LABEL','IM')); + } else { + $this->out->hidden('jabber', $sub->jabber); + } + if (common_config('sms', 'enabled')) { + $attrs = array('name' => 'sms', + 'type' => 'checkbox', + 'class' => 'checkbox', + 'id' => 'sms-'.$this->profile->id); + if ($sub->sms) { + $attrs['checked'] = 'checked'; + } + + $this->out->element('input', $attrs); + // TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. + $this->out->element('label', array('for' => 'sms-'.$this->profile->id), _('SMS')); + } else { + $this->out->hidden('sms', $sub->sms); + } + // TRANS: Save button for settings for a profile in a subscriptions list. + $this->out->submit('save', _m('BUTTON','Save')); + $this->out->elementEnd('form'); + } +}