]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/profileblock.php
Merge commit 'refs/merge-requests/41' of https://gitorious.org/social/mainline into...
[quix0rs-gnu-social.git] / lib / profileblock.php
index 3e8e929821256fa7314af3a388adc263f1afc89e..65c4fa99d2c51ac980eae7ef32079478c7fd014f 100644 (file)
@@ -4,7 +4,7 @@
  * Copyright (C) 2011, StatusNet, Inc.
  *
  * Superclass for profile blocks
- * 
+ *
  * PHP version 5
  *
  * This program is free software: you can redistribute it and/or modify
@@ -47,63 +47,110 @@ if (!defined('STATUSNET')) {
 
 abstract class ProfileBlock extends Widget
 {
-    abstract function avatar();
+    protected $avatarSize = AVATAR_PROFILE_SIZE;
+
     abstract function name();
     abstract function url();
-    abstract function canEdit();
-    abstract function editUrl();
-    abstract function editText();
     abstract function location();
     abstract function homepage();
     abstract function description();
 
     function show()
     {
-        $this->out->elementStart('div', 'profile_block');
-
-        $this->out->element('img', array('src' => $this->avatar(),
-                                         'class' => 'profile_block_avatar',
-                                         'alt' => $this->name(),
-                                         'width' => AVATAR_PROFILE_SIZE,
-                                         'height' => AVATAR_PROFILE_SIZE));
-
-        if ($this->canEdit()) {
-            $this->out->element('a', array('href' => $this->editUrl()),
-                                $this->editText());
-        }
+        $this->showActions();
+        $this->showAvatar($this->profile);
+        $this->showName();
+        $this->showLocation();
+        $this->showHomepage();
+        $this->showOtherProfiles();
+        $this->showDescription();
+        $this->showTags();
+    }
 
+    function showName()
+    {
         $name = $this->name();
 
         if (!empty($name)) {
+            $this->out->elementStart('p', 'profile_block_name');
             $url = $this->url();
             if (!empty($url)) {
                 $this->out->element('a', array('href' => $url),
                                     $name);
             } else {
-                $this->out->element('span', 'profile_block_name', $name);
+                $this->out->text($name);
             }
+            $this->out->elementEnd('p');
+        }
+    }
+
+    function showDescription()
+    {
+        $description = $this->description();
+
+        if (!empty($description)) {
+            $this->out->element(
+                'p',
+                'profile_block_description',
+                $description
+            );
         }
+    }
 
+    function showLocation()
+    {
         $location = $this->location();
 
         if (!empty($location)) {
-            $this->out->element('span', 'profile_block_location', $location);
+            $this->out->element('p', 'profile_block_location', $location);
         }
+    }
 
+    function showHomepage()
+    {
         $homepage = $this->homepage();
 
         if (!empty($homepage)) {
-            $this->out->element('a', 'profile_block_homepage', $homepage);
+            $this->out->element('a',
+                                array('href' => $homepage,
+                                      'rel' => 'me',
+                                      'class' => 'profile_block_homepage'),
+                                $homepage);
         }
+    }
 
-        $description = $this->description();
+    function showOtherProfiles()
+    {
+        $otherProfiles = $this->otherProfiles();
 
-        if (!empty($description)) {
-            $this->out->element('p',
-                                'profile_block_description',
-                                $description);
+        if (!empty($otherProfiles)) {
+
+            $this->out->elementStart('ul',
+                                     array('class' => 'profile_block_otherprofile_list'));
+
+            foreach ($otherProfiles as $otherProfile) {
+                $this->out->elementStart('li');
+                $this->out->elementStart('a',
+                                         array('href' => $otherProfile['href'],
+                                               'rel' => 'me',
+                                               'class' => 'profile_block_otherprofile',
+                                               'title' => $otherProfile['text']));
+                $this->out->element('img',
+                                    array('src' => $otherProfile['image'],
+                                          'class' => 'profile_block_otherprofile_icon'));
+                $this->out->elementEnd('a');
+                $this->out->elementEnd('li');
+            }
+
+            $this->out->elementEnd('ul');
         }
+    }
 
-        $this->out->elementEnd('div');
+    function showTags()
+    {
+    }
+
+    function showActions()
+    {
     }
 }