]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/profileaction.php
better calculation for end date in notice sitemaps
[quix0rs-gnu-social.git] / lib / profileaction.php
index 8b0c3b87e2dad57153ef82a31efa9c21592ddf6b..82e0224af2182141780eb744797eaf0d600cc33b 100644 (file)
@@ -28,7 +28,7 @@
  * @link      http://status.net/
  */
 
-if (!defined('STATUSNET')) {
+if (!defined('STATUSNET') && !defined('LACONICA')) {
     exit(1);
 }
 
@@ -105,28 +105,30 @@ class ProfileAction extends OwnerDesignAction
 
         $this->elementStart('div', array('id' => 'entity_subscriptions',
                                          'class' => 'section'));
+        if (Event::handle('StartShowSubscriptionsMiniList', array($this))) {
+            $this->element('h2', null, _('Subscriptions'));
 
-        $this->element('h2', null, _('Subscriptions'));
+            $cnt = 0;
 
-        $cnt = 0;
+            if (!empty($profile)) {
+                $pml = new ProfileMiniList($profile, $this);
+                $cnt = $pml->show();
+                if ($cnt == 0) {
+                    $this->element('p', null, _('(None)'));
+                }
+            }
 
-        if (!empty($profile)) {
-            $pml = new ProfileMiniList($profile, $this);
-            $cnt = $pml->show();
-            if ($cnt == 0) {
-                $this->element('p', null, _('(None)'));
+            if ($cnt > PROFILES_PER_MINILIST) {
+                $this->elementStart('p');
+                $this->element('a', array('href' => common_local_url('subscriptions',
+                                                                     array('nickname' => $this->profile->nickname)),
+                                          'class' => 'more'),
+                               _('All subscriptions'));
+                $this->elementEnd('p');
             }
-        }
 
-        if ($cnt > PROFILES_PER_MINILIST) {
-            $this->elementStart('p');
-            $this->element('a', array('href' => common_local_url('subscriptions',
-                                                                 array('nickname' => $this->profile->nickname)),
-                                      'class' => 'more'),
-                           _('All subscriptions'));
-            $this->elementEnd('p');
+            Event::handle('EndShowSubscriptionsMiniList', array($this));
         }
-
         $this->elementEnd('div');
     }
 
@@ -137,25 +139,30 @@ class ProfileAction extends OwnerDesignAction
         $this->elementStart('div', array('id' => 'entity_subscribers',
                                          'class' => 'section'));
 
-        $this->element('h2', null, _('Subscribers'));
+        if (Event::handle('StartShowSubscribersMiniList', array($this))) {
+
+            $this->element('h2', null, _('Subscribers'));
 
-        $cnt = 0;
+            $cnt = 0;
 
-        if (!empty($profile)) {
-            $pml = new ProfileMiniList($profile, $this);
-            $cnt = $pml->show();
-            if ($cnt == 0) {
-                $this->element('p', null, _('(None)'));
+            if (!empty($profile)) {
+                $sml = new SubscribersMiniList($profile, $this);
+                $cnt = $sml->show();
+                if ($cnt == 0) {
+                    $this->element('p', null, _('(None)'));
+                }
+            }
+
+            if ($cnt > PROFILES_PER_MINILIST) {
+                $this->elementStart('p');
+                $this->element('a', array('href' => common_local_url('subscribers',
+                                                                     array('nickname' => $this->profile->nickname)),
+                                          'class' => 'more'),
+                               _('All subscribers'));
+                $this->elementEnd('p');
             }
-        }
 
-        if ($cnt > PROFILES_PER_MINILIST) {
-            $this->elementStart('p');
-            $this->element('a', array('href' => common_local_url('subscribers',
-                                                                 array('nickname' => $this->profile->nickname)),
-                                      'class' => 'more'),
-                           _('All subscribers'));
-            $this->elementEnd('p');
+            Event::handle('EndShowSubscribersMiniList', array($this));
         }
 
         $this->elementEnd('div');
@@ -166,6 +173,7 @@ class ProfileAction extends OwnerDesignAction
         $subs_count   = $this->profile->subscriptionCount();
         $subbed_count = $this->profile->subscriberCount();
         $notice_count = $this->profile->noticeCount();
+        $group_count  = $this->user->getGroups()->N;
 
         $this->elementStart('div', array('id' => 'entity_statistics',
                                          'class' => 'section'));
@@ -202,6 +210,15 @@ class ProfileAction extends OwnerDesignAction
         $this->element('dd', 'subscribers', $subbed_count);
         $this->elementEnd('dl');
 
+        $this->elementStart('dl', 'entity_groups');
+        $this->elementStart('dt');
+        $this->element('a', array('href' => common_local_url('usergroups',
+                                                             array('nickname' => $this->profile->nickname))),
+                       _('Groups'));
+        $this->elementEnd('dt');
+        $this->element('dd', 'groups', $group_count);
+        $this->elementEnd('dl');
+
         $this->elementStart('dl', 'entity_notices');
         $this->element('dt', null, _('Notices'));
         $this->element('dd', null, $notice_count);
@@ -216,27 +233,49 @@ class ProfileAction extends OwnerDesignAction
 
         $this->elementStart('div', array('id' => 'entity_groups',
                                          'class' => 'section'));
+        if (Event::handle('StartShowGroupsMiniList', array($this))) {
+            $this->element('h2', null, _('Groups'));
+
+            if ($groups) {
+                $gml = new GroupMiniList($groups, $this->user, $this);
+                $cnt = $gml->show();
+                if ($cnt == 0) {
+                    $this->element('p', null, _('(None)'));
+                }
+            }
 
-        $this->element('h2', null, _('Groups'));
-
-        if ($groups) {
-            $gml = new GroupMiniList($groups, $this->user, $this);
-            $cnt = $gml->show();
-            if ($cnt == 0) {
-                $this->element('p', null, _('(None)'));
+            if ($cnt > GROUPS_PER_MINILIST) {
+                $this->elementStart('p');
+                $this->element('a', array('href' => common_local_url('usergroups',
+                                                                     array('nickname' => $this->profile->nickname)),
+                                          'class' => 'more'),
+                               _('All groups'));
+                $this->elementEnd('p');
             }
-        }
 
-        if ($cnt > GROUPS_PER_MINILIST) {
-            $this->elementStart('p');
-            $this->element('a', array('href' => common_local_url('usergroups',
-                                                                 array('nickname' => $this->profile->nickname)),
-                                      'class' => 'more'),
-                           _('All groups'));
-            $this->elementEnd('p');
+            Event::handle('EndShowGroupsMiniList', array($this));
         }
+            $this->elementEnd('div');
+    }
+}
 
-        $this->elementEnd('div');
+class SubscribersMiniList extends ProfileMiniList
+{
+    function newListItem($profile)
+    {
+        return new SubscribersMiniListItem($profile, $this->action);
+    }
+}
+
+class SubscribersMiniListItem extends ProfileMiniListItem
+{
+    function linkAttributes()
+    {
+        $aAttrs = parent::linkAttributes();
+        if (common_config('nofollow', 'subscribers')) {
+            $aAttrs['rel'] .= ' nofollow';
+        }
+        return $aAttrs;
     }
 }