]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/section.php
No more needed (for this fix) but maybe later. So I always only comment them out.
[quix0rs-gnu-social.git] / lib / section.php
index d64095a3eb2be146633dd0e8022485075cb8cc66..9154bd3e664602540794152294992fc849366cd8 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Laconica, the distributed open-source microblogging tool
+ * StatusNet, the distributed open-source microblogging tool
  *
  * Base class for sections (sidebar widgets)
  *
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  * @category  Widget
- * @package   Laconica
- * @author    Evan Prodromou <evan@controlyourself.ca>
- * @copyright 2009 Control Yourself, Inc.
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://laconi.ca/
+ * @link      http://status.net/
  */
 
-if (!defined('LACONICA')) {
-    exit(1);
-}
-
-require_once INSTALLDIR.'/lib/widget.php';
+if (!defined('GNUSOCIAL') && !defined('STATUSNET')) { exit(1); }
 
 /**
  * Base class for sections
@@ -40,13 +36,12 @@ require_once INSTALLDIR.'/lib/widget.php';
  * group, or site.
  *
  * @category Widget
- * @package  Laconica
- * @author   Evan Prodromou <evan@controlyourself.ca>
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://laconi.ca/
+ * @link     http://status.net/
  */
-
-class Section extends Widget
+abstract class Section extends Widget
 {
     /**
      * Show the form
@@ -56,42 +51,62 @@ class Section extends Widget
      * @return void
      * @see Widget::show()
      */
-
     function show()
     {
         $this->out->elementStart('div',
                                  array('id' => $this->divId(),
                                        'class' => 'section'));
 
-        $this->out->element('h2', null,
-                            $this->title());
+        $this->showTitle();
 
         $have_more = $this->showContent();
 
         if ($have_more) {
-            $this->elementStart('p');
-            $this->element('a', array('href' => $this->moreUrl(),
-                                      'class' => 'more'),
-                           $this->moreTitle());
-            $this->elementEnd('p');
+            $this->showMore();
         }
 
-        $this->elementEnd('div');
+        $this->out->elementEnd('div');
+    }
+
+    function showTitle()
+    {
+        $link = $this->link();
+        if (!empty($link)) {
+            $this->out->elementStart('h2');
+            $this->out->element('a', array('href' => $link), $this->title());
+            $this->out->elementEnd('h2');
+        } else {
+            $this->out->element('h2', null,
+                                $this->title());
+        }
     }
 
-    function divId()
+    function showMore()
     {
-        return 'generic_section';
+        $this->out->elementStart('p');
+        $this->out->element('a', array('href' => $this->moreUrl(),
+                                       'class' => 'more'),
+                            $this->moreTitle());
+        $this->out->elementEnd('p');
     }
 
+    abstract public function divId();
+
     function title()
     {
+        // TRANS: Default title for section/sidebar widget.
         return _('Untitled section');
     }
 
+    function link()
+    {
+        return null;
+    }
+
     function showContent()
     {
         $this->out->element('p', null,
+                            // TRANS: Default content for section/sidebar widget.
                             _('(None)'));
         return false;
     }
@@ -103,6 +118,7 @@ class Section extends Widget
 
     function moreTitle()
     {
-        return null;
+        // TRANS: Default "More..." title for section/sidebar widget.
+        return _('More...');
     }
 }