]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
section control over their notice lists + HTML id stuff
authorMikael Nordfeldth <mmn@hethane.se>
Fri, 9 Jan 2015 14:46:35 +0000 (15:46 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Fri, 9 Jan 2015 14:46:35 +0000 (15:46 +0100)
lib/attachmentnoticesection.php
lib/invitebuttonsection.php
lib/noticelist.php
lib/noticelistitem.php
lib/noticesection.php
lib/profilesection.php
lib/section.php
plugins/Favorite/lib/popularnoticesection.php

index b59568749c8360bc44f10f932cf442e88fedb069..7a22bd0e9d271cb626d26e3af734bebff3c1d941 100644 (file)
@@ -70,6 +70,6 @@ class AttachmentNoticeSection extends NoticeSection
 
     function divId()
     {
-        return 'popular_notices';
+        return 'attachment_section';
     }
 }
index 3d385f02a59d215163993b33b6d3d1f3dd24c6b9..57e204cf861cfc1b6c2af3ba0ebe4087739f9fd6 100644 (file)
@@ -64,6 +64,11 @@ class InviteButtonSection extends Section
         return false;
     }
 
+    function divId()
+    {
+        return 'invite_button';
+    }
+
     function showContent()
     {
         $this->out->element(
index 6a430d210bbc9e53b63f56c5ebebc273e04a9cde..c9d43c097a20437de1aa5e4dfeedc5fc6aef51bc 100644 (file)
@@ -55,6 +55,7 @@ class NoticeList extends Widget
 
     protected $addressees = true;
     protected $attachments = true;
+    protected $id_prefix = null;
     protected $maxchars = 0;
     protected $options = true;
     protected $show_n = NOTICES_PER_PAGE;
@@ -81,7 +82,12 @@ class NoticeList extends Widget
                 $this->$key = (bool)$prefs[$key];
             }
         }
-
+        // string preferences
+        foreach(array('id_prefix') as $key) {
+            if (array_key_exists($key, $prefs)) {
+                $this->$key = $prefs[$key];
+            }
+        }
     }
 
     /**
@@ -134,6 +140,7 @@ class NoticeList extends Widget
     {
         $prefs = array('addressees' => $this->addressees,
                        'attachments' => $this->attachments,
+                       'id_prefix' => $this->id_prefix,
                        'maxchars' => $this->maxchars,
                        'options' => $this->options);
         return new NoticeListItem($notice, $this->out, $prefs);
index be55c522c8b4543ab832457b5961bae668c419cf..4a50f548cb00fc0de53e48416d6817d842fbfa58 100644 (file)
@@ -60,6 +60,7 @@ class NoticeListItem extends Widget
 
     protected $addressees = true;
     protected $attachments = true;
+    protected $id_prefix = null;
     protected $options = true;
     protected $maxchars = 0;   // if <= 0 it means use full posts
 
@@ -99,6 +100,12 @@ class NoticeListItem extends Widget
                 $this->$key = (bool)$prefs[$key];
             }
         }
+        // string preferences
+        foreach(array('id_prefix') as $key) {
+            if (array_key_exists($key, $prefs)) {
+                $this->$key = $prefs[$key];
+            }
+        }
     }
 
     /**
@@ -211,8 +218,9 @@ class NoticeListItem extends Widget
             if (!empty($this->notice->source)) {
                 $class .= ' notice-source-'.$this->notice->source;
             }
+            $id_prefix = (strlen($this->id_prefix) ? $this->id_prefix . '-' : '');
             $this->out->elementStart('li', array('class' => $class,
-                                                 'id' => 'notice-' . $id));
+                                                 'id' => "${id_prefix}notice-${id}"));
             Event::handle('EndOpenNoticeListItemElement', array($this));
         }
     }
index 2c52d66a5913c3b2cfe23b9b6d7eeae9e8e3c7a2..ba30c982e4988926154c35d644891d4330c03d09 100644 (file)
@@ -46,14 +46,26 @@ define('NOTICES_PER_SECTION', 6);
  * @link     http://status.net/
  */
 
-class NoticeSection extends Section
+abstract class NoticeSection extends Section
 {
+    protected $addressees = false;
+    protected $attachments = false;
+    protected $maxchars = 140;
+    protected $options = false;
+    protected $show_n = NOTICES_PER_SECTION;
+
     function showContent()
     {
-        // args: notice object, html outputter, preference array for list and items
-        $list = new SectionNoticeList($this->getNotices(), $this->out);
+        $prefs = array();
+        foreach (array('addressees', 'attachments', 'maxchars', 'options', 'show_n') as $key) {
+            $prefs[$key] = $this->$key;
+        }
+        $prefs['id_prefix'] = $this->divId();
+
+        // args: notice object, html outputter, preference array for notice lists and their items
+        $list = new NoticeList($this->getNotices(), $this->out, $prefs);
         $total = $list->show(); // returns total amount of notices available
-        return ($total > NOTICES_PER_SECTION);  // do we have more to show?
+        return ($total > $this->show_n);  // do we have more to show?
     }
 
     function getNotices()
index ea50f5283ff9015b4807fafd297c396850f686b3..53002912bc7341b8f62001abb83b51b0ccc37066 100644 (file)
@@ -46,7 +46,7 @@ define('PROFILES_PER_SECTION', 6);
  * @link     http://status.net/
  */
 
-class ProfileSection extends Section
+abstract class ProfileSection extends Section
 {
     function showContent()
     {
index 2d8d6f3673f50233ec266a964f22ea8a27297f45..9154bd3e664602540794152294992fc849366cd8 100644 (file)
  * @link      http://status.net/
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) {
-    exit(1);
-}
-
-require_once INSTALLDIR.'/lib/widget.php';
+if (!defined('GNUSOCIAL') && !defined('STATUSNET')) { exit(1); }
 
 /**
  * Base class for sections
@@ -45,7 +41,7 @@ require_once INSTALLDIR.'/lib/widget.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-class Section extends Widget
+abstract class Section extends Widget
 {
     /**
      * Show the form
@@ -94,10 +90,7 @@ class Section extends Widget
         $this->out->elementEnd('p');
     }
 
-    function divId()
-    {
-        return 'generic_section';
-    }
+    abstract public function divId();
 
     function title()
     {
index 2000d302d48fa95b12b46dcea5d48d60758fe244..648d7a877adf88a6768f0f684e4ee50afdf2c150 100644 (file)
@@ -47,7 +47,7 @@ class PopularNoticeSection extends NoticeSection
 {
     protected $viewer;
 
-    function __construct($out, $viewer)
+    function __construct($out, Profile $viewer=null)
     {
         parent::__construct($out);
         $this->viewer = $viewer;
@@ -67,7 +67,7 @@ class PopularNoticeSection extends NoticeSection
 
     function divId()
     {
-        return 'popular_notices';
+        return 'popular_section';
     }
 
     function moreUrl()