From abf3fcae3f90b4c52e40d3ef8bb11f92c7a03d1c Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 19 Dec 2010 01:44:33 +0000 Subject: rough widget profile plugin git-svn-id: http://code.elgg.org/elgg/trunk@7676 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/tabbed_profile/actions/addcomment.php | 47 +++ mod/tabbed_profile/actions/deletecomment.php | 29 ++ mod/tabbed_profile/graphics/defaultlarge.gif | Bin 0 -> 2924 bytes mod/tabbed_profile/graphics/defaultmaster.gif | Bin 0 -> 43 bytes mod/tabbed_profile/graphics/defaultmedium.gif | Bin 0 -> 2855 bytes mod/tabbed_profile/graphics/defaultsmall.gif | Bin 0 -> 1027 bytes mod/tabbed_profile/graphics/defaulttiny.gif | Bin 0 -> 745 bytes mod/tabbed_profile/graphics/defaulttopbar.gif | Bin 0 -> 599 bytes mod/tabbed_profile/graphics/drag_handle.png | Bin 0 -> 594 bytes mod/tabbed_profile/graphics/speech_bubble_tail.gif | Bin 0 -> 274 bytes mod/tabbed_profile/graphics/twitter16px.png | Bin 0 -> 724 bytes mod/tabbed_profile/icon.php | 54 +++ mod/tabbed_profile/icondirect.php | 71 ++++ mod/tabbed_profile/languages/en.php | 125 ++++++ mod/tabbed_profile/manifest.xml | 14 + mod/tabbed_profile/start.php | 138 +++++++ .../views/default/icon/user/default/large.php | 3 + .../views/default/icon/user/default/master.php | 3 + .../views/default/icon/user/default/medium.php | 3 + .../views/default/icon/user/default/small.php | 3 + .../views/default/icon/user/default/tiny.php | 3 + .../views/default/icon/user/default/topbar.php | 3 + .../views/default/profile/admin_menu.php | 42 ++ .../default/profile/commentwall/commentwall.php | 18 + .../profile/commentwall/commentwall_content.php | 32 ++ .../default/profile/commentwall/commentwalladd.php | 18 + .../views/default/profile/content_wrapper.php | 13 + mod/tabbed_profile/views/default/profile/css.php | 458 +++++++++++++++++++++ .../views/default/profile/hoverover.php | 16 + mod/tabbed_profile/views/default/profile/icon.php | 111 +++++ .../views/default/profile/javascript.php | 137 ++++++ .../views/default/profile/listing.php | 49 +++ .../views/default/profile/menu/adminlinks.php | 28 ++ .../views/default/profile/menu/friendlinks.php | 23 ++ .../views/default/profile/menu/links.php | 9 + .../views/default/profile/metatags.php | 14 + .../views/default/profile/ownerblock.php | 136 ++++++ .../views/default/profile/sidebar.php | 13 + .../views/default/profile/tab_navigation.php | 68 +++ .../views/default/profile/tabs/activity.php | 32 ++ .../views/default/profile/tabs/commentwall.php | 13 + .../views/default/profile/tabs/details.php | 41 ++ .../views/default/profile/tabs/friends.php | 12 + .../views/default/profile/tabs/groups.php | 11 + .../views/default/profile/tabs/twitter.php | 17 + 45 files changed, 1807 insertions(+) create mode 100644 mod/tabbed_profile/actions/addcomment.php create mode 100644 mod/tabbed_profile/actions/deletecomment.php create mode 100644 mod/tabbed_profile/graphics/defaultlarge.gif create mode 100644 mod/tabbed_profile/graphics/defaultmaster.gif create mode 100644 mod/tabbed_profile/graphics/defaultmedium.gif create mode 100644 mod/tabbed_profile/graphics/defaultsmall.gif create mode 100644 mod/tabbed_profile/graphics/defaulttiny.gif create mode 100644 mod/tabbed_profile/graphics/defaulttopbar.gif create mode 100644 mod/tabbed_profile/graphics/drag_handle.png create mode 100644 mod/tabbed_profile/graphics/speech_bubble_tail.gif create mode 100644 mod/tabbed_profile/graphics/twitter16px.png create mode 100644 mod/tabbed_profile/icon.php create mode 100644 mod/tabbed_profile/icondirect.php create mode 100644 mod/tabbed_profile/languages/en.php create mode 100644 mod/tabbed_profile/manifest.xml create mode 100644 mod/tabbed_profile/start.php create mode 100644 mod/tabbed_profile/views/default/icon/user/default/large.php create mode 100644 mod/tabbed_profile/views/default/icon/user/default/master.php create mode 100644 mod/tabbed_profile/views/default/icon/user/default/medium.php create mode 100644 mod/tabbed_profile/views/default/icon/user/default/small.php create mode 100644 mod/tabbed_profile/views/default/icon/user/default/tiny.php create mode 100644 mod/tabbed_profile/views/default/icon/user/default/topbar.php create mode 100755 mod/tabbed_profile/views/default/profile/admin_menu.php create mode 100644 mod/tabbed_profile/views/default/profile/commentwall/commentwall.php create mode 100644 mod/tabbed_profile/views/default/profile/commentwall/commentwall_content.php create mode 100644 mod/tabbed_profile/views/default/profile/commentwall/commentwalladd.php create mode 100644 mod/tabbed_profile/views/default/profile/content_wrapper.php create mode 100644 mod/tabbed_profile/views/default/profile/css.php create mode 100644 mod/tabbed_profile/views/default/profile/hoverover.php create mode 100644 mod/tabbed_profile/views/default/profile/icon.php create mode 100644 mod/tabbed_profile/views/default/profile/javascript.php create mode 100644 mod/tabbed_profile/views/default/profile/listing.php create mode 100644 mod/tabbed_profile/views/default/profile/menu/adminlinks.php create mode 100644 mod/tabbed_profile/views/default/profile/menu/friendlinks.php create mode 100644 mod/tabbed_profile/views/default/profile/menu/links.php create mode 100644 mod/tabbed_profile/views/default/profile/metatags.php create mode 100755 mod/tabbed_profile/views/default/profile/ownerblock.php create mode 100644 mod/tabbed_profile/views/default/profile/sidebar.php create mode 100755 mod/tabbed_profile/views/default/profile/tab_navigation.php create mode 100755 mod/tabbed_profile/views/default/profile/tabs/activity.php create mode 100644 mod/tabbed_profile/views/default/profile/tabs/commentwall.php create mode 100755 mod/tabbed_profile/views/default/profile/tabs/details.php create mode 100755 mod/tabbed_profile/views/default/profile/tabs/friends.php create mode 100644 mod/tabbed_profile/views/default/profile/tabs/groups.php create mode 100755 mod/tabbed_profile/views/default/profile/tabs/twitter.php (limited to 'mod/tabbed_profile') diff --git a/mod/tabbed_profile/actions/addcomment.php b/mod/tabbed_profile/actions/addcomment.php new file mode 100644 index 000000000..07f72ef8e --- /dev/null +++ b/mod/tabbed_profile/actions/addcomment.php @@ -0,0 +1,47 @@ +annotate('commentwall',$message_content,$user->access_id, get_loggedin_userid())) { + + global $CONFIG; + + if ($user->getGUID() != get_loggedin_userid()) + notify_user($user->getGUID(), get_loggedin_userid(), elgg_echo('profile:comment:subject'), + elgg_echo('profile:comment:body', array( + get_loggedin_user()->name, + $message_content, + elgg_get_site_url() . "pg/profile/" . $user->username, + get_loggedin_user()->name, + get_loggedin_user()->getURL() + )) + ); + + system_message(elgg_echo("profile:commentwall:posted")); + // add to river + add_to_river('river/object/profile/commentwall/create','commentwall',get_loggedin_userid(),$user->guid); + + } else { + register_error(elgg_echo("profile:commentwall:failure")); + } + +} else { + register_error(elgg_echo("profile:commentwall:blank")); +} + +// Forward back to the messageboard +forward(REFERER); \ No newline at end of file diff --git a/mod/tabbed_profile/actions/deletecomment.php b/mod/tabbed_profile/actions/deletecomment.php new file mode 100644 index 000000000..233d53069 --- /dev/null +++ b/mod/tabbed_profile/actions/deletecomment.php @@ -0,0 +1,29 @@ +entity_guid); + //check to make sure the current user can actually edit the commentwall + if ($message->canEdit()) { + //delete the comment + $message->delete(); + //display message + system_message(elgg_echo("profile:commentwall:deleted")); + forward(REFERER); + } + +} else { + system_message(elgg_echo("profile:commentwall:notdeleted")); +} + +forward(REFERER); \ No newline at end of file diff --git a/mod/tabbed_profile/graphics/defaultlarge.gif b/mod/tabbed_profile/graphics/defaultlarge.gif new file mode 100644 index 000000000..6ea3bd4cd Binary files /dev/null and b/mod/tabbed_profile/graphics/defaultlarge.gif differ diff --git a/mod/tabbed_profile/graphics/defaultmaster.gif b/mod/tabbed_profile/graphics/defaultmaster.gif new file mode 100644 index 000000000..5bfd67a2d Binary files /dev/null and b/mod/tabbed_profile/graphics/defaultmaster.gif differ diff --git a/mod/tabbed_profile/graphics/defaultmedium.gif b/mod/tabbed_profile/graphics/defaultmedium.gif new file mode 100644 index 000000000..c6b2e6a6d Binary files /dev/null and b/mod/tabbed_profile/graphics/defaultmedium.gif differ diff --git a/mod/tabbed_profile/graphics/defaultsmall.gif b/mod/tabbed_profile/graphics/defaultsmall.gif new file mode 100644 index 000000000..661d72f04 Binary files /dev/null and b/mod/tabbed_profile/graphics/defaultsmall.gif differ diff --git a/mod/tabbed_profile/graphics/defaulttiny.gif b/mod/tabbed_profile/graphics/defaulttiny.gif new file mode 100644 index 000000000..1775346bc Binary files /dev/null and b/mod/tabbed_profile/graphics/defaulttiny.gif differ diff --git a/mod/tabbed_profile/graphics/defaulttopbar.gif b/mod/tabbed_profile/graphics/defaulttopbar.gif new file mode 100644 index 000000000..c3616aeb5 Binary files /dev/null and b/mod/tabbed_profile/graphics/defaulttopbar.gif differ diff --git a/mod/tabbed_profile/graphics/drag_handle.png b/mod/tabbed_profile/graphics/drag_handle.png new file mode 100644 index 000000000..2e9bc42be Binary files /dev/null and b/mod/tabbed_profile/graphics/drag_handle.png differ diff --git a/mod/tabbed_profile/graphics/speech_bubble_tail.gif b/mod/tabbed_profile/graphics/speech_bubble_tail.gif new file mode 100644 index 000000000..31d1bc90d Binary files /dev/null and b/mod/tabbed_profile/graphics/speech_bubble_tail.gif differ diff --git a/mod/tabbed_profile/graphics/twitter16px.png b/mod/tabbed_profile/graphics/twitter16px.png new file mode 100644 index 000000000..de51c6953 Binary files /dev/null and b/mod/tabbed_profile/graphics/twitter16px.png differ diff --git a/mod/tabbed_profile/icon.php b/mod/tabbed_profile/icon.php new file mode 100644 index 000000000..48ccc16c2 --- /dev/null +++ b/mod/tabbed_profile/icon.php @@ -0,0 +1,54 @@ +owner_guid = $user->getGUID(); +$filehandler->setFilename("profile/" . $user->getGUID() . $size . ".jpg"); + +$success = false; +if ($filehandler->open("read")) { + if ($contents = $filehandler->read($filehandler->size())) { + $success = true; + } +} + +if (!$success) { + global $CONFIG; + $path = elgg_view('icon/user/default/'.$size); + header("Location: {$path}"); + exit; +} + +header("Content-type: image/jpeg"); +header('Expires: ' . date('r',time() + 864000)); +header("Pragma: public"); +header("Cache-Control: public"); +header("Content-Length: " . strlen($contents)); + +$splitString = str_split($contents, 1024); + +foreach($splitString as $chunk) { + echo $chunk; +} \ No newline at end of file diff --git a/mod/tabbed_profile/icondirect.php b/mod/tabbed_profile/icondirect.php new file mode 100644 index 000000000..fe4726d1a --- /dev/null +++ b/mod/tabbed_profile/icondirect.php @@ -0,0 +1,71 @@ +dbhost,$CONFIG->dbuser,$CONFIG->dbpass, true); +if ($mysql_dblink) { + if (@mysql_select_db($CONFIG->dbname,$mysql_dblink)) { + + // get dataroot and simplecache_enabled in one select for efficiency + if ($result = mysql_query("select name, value from {$CONFIG->dbprefix}datalists where name in ('dataroot','simplecache_enabled')",$mysql_dblink)) { + $simplecache_enabled = true; + $row = mysql_fetch_object($result); + while ($row) { + if ($row->name == 'dataroot') { + $dataroot = $row->value; + } else if ($row->name == 'simplecache_enabled') { + $simplecache_enabled = $row->value; + } + $row = mysql_fetch_object($result); + } + } + + @mysql_close($mysql_dblink); + + // if the simplecache is enabled, we get icon directly + if ($simplecache_enabled) { + + // first try to read icon directly + $user_path = date('Y/m/d/', $joindate) . $guid; + $filename = "$dataroot$user_path/profile/{$guid}{$size}.jpg"; + $contents = @file_get_contents($filename); + if (!empty($contents)) { + header("Content-type: image/jpeg"); + header('Expires: ' . date('r',time() + 864000)); + header("Pragma: public"); + header("Cache-Control: public"); + header("Content-Length: " . strlen($contents)); + $splitString = str_split($contents, 1024); + foreach($splitString as $chunk) { + echo $chunk; + } + exit; + } + } + } + +} + +// simplecache is not turned on or something went wrong so load engine and try that way +require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); +$user = get_entity($guid); +set_input('username', $user->username); +require_once(dirname(__FILE__).'/icon.php'); diff --git a/mod/tabbed_profile/languages/en.php b/mod/tabbed_profile/languages/en.php new file mode 100644 index 000000000..6017a590c --- /dev/null +++ b/mod/tabbed_profile/languages/en.php @@ -0,0 +1,125 @@ + "Profile", + 'profile:edit:default' => 'Profile fields', + 'profile:preview' => 'Preview', + +/** + * Profile menu items and titles + */ + + 'profile:yours' => "My profile", + 'profile:user' => "%s's profile", + + 'profile:edit' => "Edit profile", + 'profile:profilepictureinstructions' => "Your avatar is the image that's displayed on your profile page.
You can change it as often as you'd like. (File formats accepted: GIF, JPG or PNG)", + 'profile:icon' => "Avatar", + 'profile:createicon' => "Create your avatar", + 'profile:currentavatar' => "Current avatar", + 'profile:createicon:header' => "Profile picture", + 'profile:profilepicturecroppingtool' => "Avatar cropping tool", + 'profile:createicon:instructions' => "Click and drag a square below to match how you want your avatar cropped. A preview will appear in the box on the right. When you are happy with the preview, click 'Create your avatar'. This cropped version will be used throughout the site as your avatar. ", + + 'profile:editdetails' => "Edit profile", + 'profile:editicon' => "Edit avatar", + + 'profile:aboutme' => "About me", + 'profile:description' => "About me", + 'profile:briefdescription' => "Brief description", + 'profile:location' => "Location", + 'profile:skills' => "Skills", + 'profile:interests' => "Interests", + 'profile:contactemail' => "Contact email", + 'profile:phone' => "Telephone", + 'profile:mobile' => "Mobile phone", + 'profile:website' => "Website", + + 'profile:banned' => 'This user account has been suspended.', + 'profile:deleteduser' => 'Deleted user', + + 'profile:river:update' => "%s updated their profile", + 'profile:river:iconupdate' => "%s updated their profile icon", + + 'profile:label' => "Profile label", + 'profile:type' => "Profile type", + 'profile:twitter' => "Twitter username", + 'twitter:visit' => "Visit this Twitter account", + 'profile:editdefault:fail' => 'Default profile could not be saved', + 'profile:editdefault:success' => 'Item successfully added to default profile', + + + 'profile:editdefault:delete:fail' => 'Removed default profile item field failed', + 'profile:editdefault:delete:success' => 'Default profile item deleted!', + + 'profile:defaultprofile:reset' => 'Default system profile reset', + + 'profile:resetdefault' => 'Reset default profile', + 'profile:explainchangefields' => 'You can replace the existing profile fields with your own using the form below.

Give the new profile field a label, for example, \'Favorite team\', then select the field type (eg. text, url, tags), and click the \'Add\' button. To re-order the fields drag on the handle next to the field label. To edit a field label - click on the label\'s text to make it editable.
At any time you can revert back to the default profile set up, but you will loose any information already entered into custom fields on profile pages.', + + +/** + * Profile status messages + */ + + 'profile:saved' => "Your profile was successfully saved.", + 'profile:icon:uploaded' => "Your profile picture was successfully uploaded.", + +/** + * Profile comment wall + **/ + 'profile:commentwall:add' => "Add to the wall", + 'profile:commentwall' => "Comment Wall", + 'profile:commentwall:posted' => "You successfully posted on the comment wall.", + 'profile:commentwall:deleted' => "You successfully deleted the message.", + 'profile:commentwall:blank' => "Sorry; you need to actually put something in the message area before we can save it.", + 'profile:commentwall:notfound' => "Sorry; we could not find the specified item.", + 'profile:commentwall:notdeleted' => "Sorry; we could not delete this message.", + 'profile:commentwall:none' => "No comment wall posts found.", + 'profile:commentwall:somethingwentwrong' => "Something went wrong when trying to save your message, make sure you actually wrote a message.", + 'profile:commentwall:failure' => "An unexpected error occurred when adding your message. Please try again.", + +/** + * Email messages commentwall + */ + + 'profile:comment:subject' => 'You have a new message on your comment wall!', + 'profile:comment:body' => "You have a new message on your comment wall from %s. It reads: + + +%s + + +To view your message board comments, click here: + + %s + +To view %s's profile, click here: + + %s + +You cannot reply to this email.", + +/** + * Profile error messages + */ + + 'profile:no_friends' => 'This person hasn\'t added any friends yet!', + 'profile:no_groups' => 'This user has not joined any groups yet.', + 'profile:noaccess' => "You do not have permission to edit this profile.", + 'profile:notfound' => "Sorry, we could not find the specified profile.", + 'profile:icon:notfound' => "Sorry, there was a problem uploading your profile picture.", + 'profile:icon:noaccess' => 'You cannot change this profile icon', + 'profile:field_too_long' => 'Cannot save your profile information because the "%s" section is too long.', + +); + +add_translation('en', $english); \ No newline at end of file diff --git a/mod/tabbed_profile/manifest.xml b/mod/tabbed_profile/manifest.xml new file mode 100644 index 000000000..a1307f24d --- /dev/null +++ b/mod/tabbed_profile/manifest.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/mod/tabbed_profile/start.php b/mod/tabbed_profile/start.php new file mode 100644 index 000000000..08b2ed5bd --- /dev/null +++ b/mod/tabbed_profile/start.php @@ -0,0 +1,138 @@ +pluginspath . "tabbed_profile/actions/addcomment.php"); + elgg_register_action("profile/deletecomment", $CONFIG->pluginspath . "tabbed_profile/actions/deletecomment.php"); + + elgg_register_event_handler('profileupdate', 'all', 'object_notifications'); + + // allow ECML in parts of the profile + elgg_register_plugin_hook_handler('get_views', 'ecml', 'profile_ecml_views_hook'); +} + +/** + * Profile page handler + * + * @param array $page Array of page elements, forwarded by the page handling mechanism + */ +function profile_page_handler($page) { + global $CONFIG; + + if (isset($page[0])) { + $username = $page[0]; + $user = get_user_by_username($username); + elgg_set_page_owner_guid($user->guid); + } + + // short circuit if invalid or banned username + if (!$user || ($user->isBanned() && !isadminloggedin())) { + register_error(elgg_echo('profile:notfound')); + forward(); + } + + $action = NULL; + if (isset($page[1])) { + $action = $page[1]; + } + + switch ($action) { + case 'edit': + // use for the core profile edit page + require $CONFIG->path . 'pages/profile/edit.php'; + return; + break; + + default: + if (isset($page[1])) { + $section = $page[1]; + } else { + $section = 'activity'; + } + $content = profile_get_user_profile_html($user, $section); + $content = elgg_view_layout('one_column', array('content' => $content)); + break; + } + + echo elgg_view_page($title, $content); +} + +/** + * Returns the html for a user profile. + * + * @param string $username The username of the profile to display + * @param string $section Which section is currently selected. + * + * @todo - This should really use a plugin hook to get the list of plugin tabs + * + * @return mixed FALSE or html for the profile. + */ +function profile_get_user_profile_html($user, $section = 'activity') { + $body = elgg_view('profile/tab_navigation', array('section' => $section, 'entity' => $user)); + $view_options = array('entity' => $user); + + $content = elgg_view("profile/tabs/$section", $view_options); + + $body .= elgg_view('profile/content_wrapper', array('content' => $content)); + + $body .= elgg_view('profile/sidebar', array('section' => $section)); + return $body; +} + +/** + * Profile URL generator for $user->getUrl(); + * + * @param ElggUser $user + * @return string User URL + */ +function profile_url($user) { + return elgg_get_site_url() . "pg/profile/" . $user->username; +} + +/** + * Parse ECML on parts of the profile + * + * @param unknown_type $hook + * @param unknown_type $entity_type + * @param unknown_type $return_value + * @param unknown_type $params + */ +function profile_ecml_views_hook($hook, $entity_type, $return_value, $params) { + $return_value['profile/profile_content'] = elgg_echo('profile'); + + return $return_value; +} diff --git a/mod/tabbed_profile/views/default/icon/user/default/large.php b/mod/tabbed_profile/views/default/icon/user/default/large.php new file mode 100644 index 000000000..ac28f8e9a --- /dev/null +++ b/mod/tabbed_profile/views/default/icon/user/default/large.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/icon/user/default/master.php b/mod/tabbed_profile/views/default/icon/user/default/master.php new file mode 100644 index 000000000..129b0d375 --- /dev/null +++ b/mod/tabbed_profile/views/default/icon/user/default/master.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/icon/user/default/medium.php b/mod/tabbed_profile/views/default/icon/user/default/medium.php new file mode 100644 index 000000000..8815a65bc --- /dev/null +++ b/mod/tabbed_profile/views/default/icon/user/default/medium.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/icon/user/default/small.php b/mod/tabbed_profile/views/default/icon/user/default/small.php new file mode 100644 index 000000000..895aa15cc --- /dev/null +++ b/mod/tabbed_profile/views/default/icon/user/default/small.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/icon/user/default/tiny.php b/mod/tabbed_profile/views/default/icon/user/default/tiny.php new file mode 100644 index 000000000..866c61533 --- /dev/null +++ b/mod/tabbed_profile/views/default/icon/user/default/tiny.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/icon/user/default/topbar.php b/mod/tabbed_profile/views/default/icon/user/default/topbar.php new file mode 100644 index 000000000..0ff3dbaaa --- /dev/null +++ b/mod/tabbed_profile/views/default/icon/user/default/topbar.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/profile/admin_menu.php b/mod/tabbed_profile/views/default/profile/admin_menu.php new file mode 100755 index 000000000..99ed3a4f5 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/admin_menu.php @@ -0,0 +1,42 @@ + + + diff --git a/mod/tabbed_profile/views/default/profile/commentwall/commentwall.php b/mod/tabbed_profile/views/default/profile/commentwall/commentwall.php new file mode 100644 index 000000000..56670dcf0 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/commentwall/commentwall.php @@ -0,0 +1,18 @@ +"; + +// If there is any content to view, view it +if (is_array($vars['annotation']) && sizeof($vars['annotation']) > 0) { + //loop through all annotations and display + foreach($vars['annotation'] as $content) { + echo elgg_view("profile/commentwall/commentwall_content", array('annotation' => $content)); + } +} else { + echo "

" . elgg_echo("profile:commentwall:none") . "

"; +} +//close the wrapper div +echo ""; \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/profile/commentwall/commentwall_content.php b/mod/tabbed_profile/views/default/profile/commentwall/commentwall_content.php new file mode 100644 index 000000000..a0785b565 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/commentwall/commentwall_content.php @@ -0,0 +1,32 @@ + +
+ +
+ get_entity($vars['annotation']->owner_guid), 'size' => 'tiny')); + ?> +
+ +
+ canEdit()) { + echo ""; + } //end of can edit if statement + ?> + +

+ owner_guid)->name . " " . elgg_view_friendly_time($vars['annotation']->time_created); ?> +

+ + parse_urls($vars['annotation']->value))); ?> +
+
diff --git a/mod/tabbed_profile/views/default/profile/commentwall/commentwalladd.php b/mod/tabbed_profile/views/default/profile/commentwall/commentwalladd.php new file mode 100644 index 000000000..dcb520ea1 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/commentwall/commentwalladd.php @@ -0,0 +1,18 @@ + +
+
+ +
+ + + + + + + +
+
diff --git a/mod/tabbed_profile/views/default/profile/content_wrapper.php b/mod/tabbed_profile/views/default/profile/content_wrapper.php new file mode 100644 index 000000000..4fb43e7c9 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/content_wrapper.php @@ -0,0 +1,13 @@ + +
+ +
\ No newline at end of file diff --git a/mod/tabbed_profile/views/default/profile/css.php b/mod/tabbed_profile/views/default/profile/css.php new file mode 100644 index 000000000..812daf16d --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/css.php @@ -0,0 +1,458 @@ + +/* *************************************** + main layout blocks +*************************************** */ +#profile_content { + float:right; + width:700px; + position: relative; +} +#profile_sidebar { + width:230px; + float:left; +} +.elgg-horizontal-tabbed-nav.profile { + margin-top:0px; + margin-bottom:25px; + position:relative; +} +.elgg-horizontal-tabbed-nav.profile .profile_name { + display:block; + width:265px; + position:absolute; +} +.elgg-horizontal-tabbed-nav.profile .profile_name h2 { + margin:0; + padding:0; + border:none; +} +.elgg-horizontal-tabbed-nav.profile ul { + margin-left:260px; +} + +/* *************************************** + default avatar icons +*************************************** */ +.usericon { + position:relative; +} +.usericon.tiny, +img.tiny { + width:25px; + height:25px; + /* remove the border-radius if you don't want rounded avatars in supported browsers */ + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -moz-background-clip: border; + + -o-background-size: 25px; + -webkit-background-size: 25px; + -khtml-background-size: 25px; + -moz-background-size: 25px; +} +.usericon.small, +img.small { + width:40px; + height:40px; + /* remove the border-radius if you don't want rounded avatars in supported browsers */ + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -moz-background-clip: border; + + -o-background-size: 40px; + -webkit-background-size: 40px; + -khtml-background-size: 40px; + -moz-background-size: 40px; +} +img.large { + width:200px; + height:200px; +} +img.medium { + width:100px; + height:100px; +} + +/* *************************************** + ownerblock in sidebar +*************************************** */ +#profile_sidebar #owner_block { + background-color: #eeeeee; + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + padding:15px; + min-height:270px; +} +#elgg-sidebar #owner_block { + background-color: white; + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + padding:5px; + margin-bottom:10px; +} +#owner_block .owner_block_icon { + float:left; + padding:0; + margin:0; +} +#owner_block .owner_block_icon.large { + width:200px; + height:200px; + overflow: hidden; + float:none; +} +#owner_block .owner_block_contents { + margin-left: 50px; +} +#elgg-sidebar #owner_block .owner_block_contents { + margin-left: 34px; +} +#owner_block .owner_block_contents h3 { + margin-top:-4px; + border-bottom:none; + margin-bottom:0; + padding-bottom:0; +} +#owner_block .owner_block_contents p.profile_info { + margin:0; + padding:0; + color: #666666; +} +#owner_block .owner_block_contents p.profile_info.briefdescription { + font-size: 90%; + line-height:1.2em; + font-style: italic; +} +#owner_block .owner_block_contents p.profile_info.location { + font-size: 90%; +} +#owner_block .profile_actions { + margin-top:10px; +} +#owner_block .profile_actions a.action-button { + margin-bottom:4px; + display: table; +} +/* ownerblock links to owners tools */ +#owner_block .owners_content_links { + border-top:1px dotted #cccccc; + margin-top:4px; + padding-top:2px; +} +#owner_block .owners_content_links ul { + margin:0; + padding:0; +} +#owner_block .owners_content_links ul li { + display:block; + float:left; + width:95px; + font-size: 90%; +} +/* profile pages - ownerblock links to owners tools */ +.owner_block_links { + margin-top:5px; +} +.owner_block_links ul { + margin:0; + padding:0; + list-style: none; +} +.owner_block_links ul li.selected a { + background: #4690D6; + color:white; +} +.owner_block_links ul li a { + display:block; + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + background-color:white; + margin:3px 0 5px 0; + padding:2px 4px 2px 8px; +} +.owner_block_links ul li a:hover { + background:#0054A7; + color:white; + text-decoration:none; +} + + +/* *************************************** + admin menu in sidebar +*************************************** */ +.owner_block_links .admin_menu_options { + display: none; +} +.owner_block_links ul.admin_menu { + background-color:white; + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + cursor:pointer; +} +.owner_block_links ul.admin_menu li a { + background-color: white; + color:red; + margin-bottom:0; +} +.owner_block_links ul.admin_menu li a:hover { + color:black; +} +.owner_block_links ul.admin_menu li ul.admin_menu_options li a { + color:red; + background-color:white; + display:block; + margin:0px; + padding:2px 4px 2px 13px; +} +.owner_block_links ul.admin_menu li ul.admin_menu_options li a:hover { + color:black; + background:none; + text-decoration: underline; +} + + +/* *************************************** + full profile info panel +*************************************** */ +#profile_content .odd { + background-color:#f4f4f4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + margin:0 0 7px 0; + padding:2px 4px 2px 4px; +} +#profile_content .even { + background-color:#f4f4f4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + margin:0 0 7px 0; + padding:2px 4px 2px 4px; +} +#profile_content .aboutme_title { + background-color:#f4f4f4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + margin:0 0 0px 0; + padding:2px 4px 2px 4px; +} +#profile_content .aboutme_contents { + padding:2px 0 0 3px; +} + + +/* *************************************** + friends panel within profile +*************************************** */ +#profile_content .entity-listing .entity-listing-info { + width:664px; +} + + +/* *************************************** + commentwall within profile +*************************************** */ +#comment_wall_add textarea { + width:685px; +} +#comment_wall_add #postit { + float:right; +} + + +/* *************************************** + twitter panel within profile +*************************************** */ +ul#twitter_update_list { + padding-left:0; +} +ul#twitter_update_list li { + background-image: url(mod/profile/graphics/speech_bubble_tail.gif); + background-position:right bottom; + background-repeat: no-repeat; + list-style-image:none; + list-style-position:outside; + list-style-type:none; + margin:0 0 5px 0; + padding:0; + overflow-x: hidden; +} +ul#twitter_update_list li span { + color:#666666; + background:#ececec; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + padding:3px 5px 4px 5px; + display:block; +} +ul#twitter_update_list li a { + display:block; + margin:-2px 0 0 4px; +} +ul#twitter_update_list li span a { + display:inline !important; +} +p.visit_twitter a { + background:url(mod/profile/graphics/twitter16px.png) left no-repeat; + padding:0 0 0 20px; + margin:0; +} +.visit_twitter { + padding:5px 0; + margin:0 0 0 0; + border-top:1px solid #dedede; +} + +/* *************************************** + banned user +*************************************** */ +/* banned user full profile panel */ +#profile_content .banned_user { + border:2px solid red; + padding:4px 8px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; +} +/* banned user in friends lists */ +.entity-listing-info p.entity-title.user.banned { + text-decoration: line-through; +} +.entity-listing-info p.entity-title.user.banned a { + color:red; +} + + +/* *************************************** + admin area - custom profile fields +*************************************** */ +.default_profile_reset { + border-top: 1px solid #dedede; + margin-top:30px; +} +.default_profile_reset .action-button { + float:right; +} +/* field re-order */ +#sortable_profile_fields { + list-style: none; + padding:0; + margin:0; + border-top:1px solid #cccccc; +} +#sortable_profile_fields li { + padding:5px 0 5px 0; + border-bottom:1px solid #cccccc; +} +#sortable_profile_fields li img.handle { + margin-right: 7px; + cursor: move; +} +#sortable_profile_fields .ui-sortable-helper { + background: #eeeeee; + color:#333333; + padding: 5px 0 5px 0; + margin: 0; + width:100%; +} + + +/* *************************************** + avatar drop-down menu +*************************************** */ +.avatar_menu_button { + width:15px; + height:15px; + position:absolute; + cursor:pointer; + display:none; + right:0; + bottom:0; +} +.avatar_menu_arrow { + background: url(_graphics/elgg_sprites.png) no-repeat -150px top; + width:15px; + height:15px; +} +.avatar_menu_arrow_on { + background: url(_graphics/elgg_sprites.png) no-repeat -150px -16px; + width:15px; + height:15px; +} +.avatar_menu_arrow_hover { + background: url(_graphics/elgg_sprites.png) no-repeat -150px -32px; + width:15px; + height:15px; +} +/* user avatar submenu options */ +.usericon .sub_menu { + display:none; + position:absolute; + padding:0; + margin:0; + border-top:solid 1px #E5E5E5; + border-left:solid 1px #E5E5E5; + border-right:solid 1px #999999; + border-bottom:solid 1px #999999; + width:164px; + background:#FFFFFF; + text-align:left; + -webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); + -moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); + font-size:14px; +} +div.usericon a.icon img { + z-index:10; +} +.usericon .sub_menu a:link, +.usericon .sub_menu a:visited, +.usericon .sub_menu a:hover { + display:block; + font-weight: normal; +} +.usericon .sub_menu a:hover { + background:#cccccc; + text-decoration:none; +} +.usericon .sub_menu .displayname { + padding:0 !important; + margin:0 !important; + border-bottom:solid 1px #dddddd !important; + font-size:14px !important; +} +.usericon .sub_menu .displayname a { + padding:3px 3px 3px 8px; + font-size:14px; + font-weight: bold; +} +.usericon .sub_menu .displayname a .username { + display:block; + font-weight: normal; + font-size:12px; + text-align: left; + margin:0; +} +.sub_menu ul.sub_menu_list { + list-style: none; + margin-bottom:0; + padding-left:0; +} +.usericon .sub_menu a { + padding:2px 3px 2px 8px; + font-size:12px; +} +/* admin menu options in avatar submenu */ +.user_menu_admin { + border-top:solid 1px #dddddd; +} +.usericon .sub_menu li.user_menu_admin a { + color:red; +} +.usericon .sub_menu li.user_menu_admin a:hover { + color:white; + background:red; +} diff --git a/mod/tabbed_profile/views/default/profile/hoverover.php b/mod/tabbed_profile/views/default/profile/hoverover.php new file mode 100644 index 000000000..172ef5d3d --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/hoverover.php @@ -0,0 +1,16 @@ + +
  • + name; ?> +
  • + \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/profile/icon.php b/mod/tabbed_profile/views/default/profile/icon.php new file mode 100644 index 000000000..71b25fe6c --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/icon.php @@ -0,0 +1,111 @@ +name, ENT_QUOTES, 'UTF-8'); + $username = $vars['entity']->username; + + if ($icontime = $vars['entity']->icontime) { + $icontime = "{$icontime}"; + } else { + $icontime = "default"; + } + + // Get size + if (!in_array($vars['size'],array('small','medium','large','tiny','master','topbar'))) { + $vars['size'] = 'medium'; + } + + // Get any align and js + if (!empty($vars['align'])) { + $align = " align=\"{$vars['align']}\" "; + } else { + $align = ''; + } + + // Override + if (isset($vars['override']) && $vars['override'] == true) { + $override = true; + } else { + $override = false; + } + // profile avatar drop-down menu + if (!$override) { + ?> +
    +
    + + isBanned())) { + ?> + alt="name, ENT_QUOTES, 'UTF-8'); ?>" title="name, ENT_QUOTES, 'UTF-8'); ?>" style="background: url(getIcon($vars['size']); ?>) no-repeat;" class="" /> + getIcon($vars['size'])); ?>" border="0" alt="name, ENT_QUOTES, 'UTF-8'); ?>" title="name, ENT_QUOTES, 'UTF-8'); ?>" /> + */ + + if (!$override) { + ?> +
    + + +var submenuLayer = 1000; + +function setup_avatar_menu(parent) { + if (!parent) { + parent = document; + } + + // avatar image menu link + $(parent).find("div.usericon img").mouseover(function() { + // find nested avatar_menu_button and show + $(this.parentNode.parentNode).children(".avatar_menu_button").show(); + $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow"); + //$(this.parentNode.parentNode).css("z-index", submenuLayer); + }) + .mouseout(function() { + if($(this).parent().parent().find("div.sub_menu").css('display')!="block") { + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover"); + $(this.parentNode.parentNode).children(".avatar_menu_button").hide(); + } + else { + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover"); + $(this.parentNode.parentNode).children(".avatar_menu_button").show(); + $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow"); + } + }); + + + // avatar contextual menu + $(".avatar_menu_button img").click(function(e) { + + var submenu = $(this).parent().parent().find("div.sub_menu"); + + // close submenu if arrow is clicked & menu already open + if(submenu.css('display') == "block") { + //submenu.hide(); + } + else { + // get avatar dimensions + var avatar = $(this).parent().parent().parent().find("div.usericon"); + //alert( "avatarWidth: " + avatar.width() + ", avatarHeight: " + avatar.height() ); + + // move submenu position so it aligns with arrow graphic + if (e.pageX < 840) { // popup menu to left of arrow if we're at edge of page + submenu.css("top",(avatar.height()) + "px") + .css("left",(avatar.width()-15) + "px") + .fadeIn('normal'); + } + else { + submenu.css("top",(avatar.height()) + "px") + .css("left",(avatar.width()-166) + "px") + .fadeIn('normal'); + } + + // force z-index - workaround for IE z-index bug + avatar.css("z-index", submenuLayer); + avatar.find("a.icon img").css("z-index", submenuLayer); + submenu.css("z-index", submenuLayer+1); + + submenuLayer++; + + // change arrow to 'on' state + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on"); + } + + // hide any other open submenus and reset arrows + $("div.sub_menu:visible").not(submenu).hide(); + $(".avatar_menu_button").removeClass("avatar_menu_arrow"); + $(".avatar_menu_button").removeClass("avatar_menu_arrow_on"); + $(".avatar_menu_button").removeClass("avatar_menu_arrow_hover"); + $(".avatar_menu_button").hide(); + $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").show(); + //alert("submenuLayer = " +submenu.css("z-index")); + }) + // hover arrow each time mouseover enters arrow graphic (eg. when menu is already shown) + .mouseover(function() { + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_hover"); + }) + // if menu not shown revert arrow, else show 'menu open' arrow + .mouseout(function() { + if($(this).parent().parent().find("div.sub_menu").css('display')!="block"){ + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow"); + } + else { + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); + $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on"); + } + }); + + // hide avatar menu if click occurs outside of menu + // and hide arrow button + $(document).click(function(event) { + var target = $(event.target); + if (target.parents(".usericon").length == 0) { + $(".usericon div.sub_menu").fadeOut(); + $(".avatar_menu_button").removeClass("avatar_menu_arrow"); + $(".avatar_menu_button").removeClass("avatar_menu_arrow_on"); + $(".avatar_menu_button").removeClass("avatar_menu_arrow_hover"); + $(".avatar_menu_button").hide(); + } + }); + + +} + +$(document).ready(function() { + + setup_avatar_menu(); + +}); diff --git a/mod/tabbed_profile/views/default/profile/listing.php b/mod/tabbed_profile/views/default/profile/listing.php new file mode 100644 index 000000000..0622264b8 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/listing.php @@ -0,0 +1,49 @@ + $vars['entity'], + 'size' => 'tiny', + ) +); + +$banned = $vars['entity']->isBanned(); + +// Simple XFN +$rel_type = ""; +if (get_loggedin_userid() == $vars['entity']->guid) { + $rel_type = 'me'; +} elseif (check_entity_relationship(get_loggedin_userid(), 'friend', $vars['entity']->guid)) { + $rel_type = 'friend'; +} + +if ($rel_type) { + $rel = "rel=\"$rel_type\""; +} + +if (!$banned) { + $info .= "

    getUrl() . "\" $rel>" . $vars['entity']->name . "

    "; + $location = $vars['entity']->location; + if (!empty($location)) { + $info .= "

    " . elgg_echo("profile:location") . ": " . elgg_view("output/tags",array('value' => $vars['entity']->location)) . "

    "; + } + //create a view that a status plugin could extend - in the default case, this is the wire + $info .= elgg_view("profile/status", array("entity" => $vars['entity'])); +}else{ + $info .= "

    "; + if (isadminloggedin()) + $info .= "getUrl() . "\">"; + $info .= $vars['entity']->name; + if (isadminloggedin()) + $info .= ""; + $info .= "

    "; +} + +echo elgg_view_listing($icon, $info); diff --git a/mod/tabbed_profile/views/default/profile/menu/adminlinks.php b/mod/tabbed_profile/views/default/profile/menu/adminlinks.php new file mode 100644 index 000000000..39807764a --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/menu/adminlinks.php @@ -0,0 +1,28 @@ +guid){ +?> + +isBanned()) { + echo elgg_view('output/confirmlink', array('text' => elgg_echo("ban"), 'href' => "action/admin/user/ban?guid={$vars['entity']->guid}")); + } else { + echo elgg_view('output/confirmlink', array('text' => elgg_echo("unban"), 'href' => "action/admin/user/unban?guid={$vars['entity']->guid}")); + } + echo elgg_view('output/confirmlink', array('text' => elgg_echo("delete"), 'href' => "action/admin/user/delete?guid={$vars['entity']->guid}")); + echo elgg_view('output/confirmlink', array('text' => elgg_echo("resetpassword"), 'href' => "action/admin/user/resetpassword?guid={$vars['entity']->guid}")); + if (!$vars['entity']->isAdmin()) { + echo elgg_view('output/confirmlink', array('text' => elgg_echo("makeadmin"), 'href' => "action/admin/user/makeadmin?guid={$vars['entity']->guid}")); + } else { + echo elgg_view('output/confirmlink', array('text' => elgg_echo("removeadmin"), 'href' => "action/admin/user/removeadmin?guid={$vars['entity']->guid}")); + } + } + } diff --git a/mod/tabbed_profile/views/default/profile/menu/friendlinks.php b/mod/tabbed_profile/views/default/profile/menu/friendlinks.php new file mode 100644 index 000000000..ed13edb8b --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/menu/friendlinks.php @@ -0,0 +1,23 @@ +isFriend()) { + echo elgg_view('output/confirmlink', array( + 'href' => "action/friends/remove?friend={$vars['entity']->getGUID()}", + 'text' => elgg_echo('friend:remove'), + 'class' => 'remove_friend' + )); +} else { + echo elgg_view('output/confirmlink', array( + 'href' => "action/friends/add?friend={$vars['entity']->getGUID()}", + 'text' => elgg_echo('friend:add'), + 'class' => 'add_friend' + )); +} \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/profile/menu/links.php b/mod/tabbed_profile/views/default/profile/menu/links.php new file mode 100644 index 000000000..4233d7ec5 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/menu/links.php @@ -0,0 +1,9 @@ + diff --git a/mod/tabbed_profile/views/default/profile/metatags.php b/mod/tabbed_profile/views/default/profile/metatags.php new file mode 100644 index 000000000..1197a2e0a --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/metatags.php @@ -0,0 +1,14 @@ + + +container_guid); + } else { + $user = get_entity($vars['entity']->guid); + } +} else { + $user = elgg_get_page_owner(); +} +if (!$user) { + // no user so we quit view + echo elgg_echo('viewfailure', array(__FILE__)); + return TRUE; +} + +$more_info = ''; + +$location = elgg_view("output/tags",array('value' => $user->location)); +$section = $vars['section']; +if ($section == 'details') { + $icon = elgg_view("profile/icon",array('entity' => $user, 'size' => 'large', 'override' => 'true')); + $icon_class = "large"; +} else { + $icon = elgg_view("profile/icon",array('entity' => $user, 'size' => 'small')); + $more_info = "
    "; + $more_info .= "

    {$user->name}

    "; + $more_info .= "

    {$user->briefdescription}

    "; + $more_info .= "

    {$location}

    "; + $more_info .= "
    "; +} +$profile_actions = ""; +if (isloggedin() && (get_loggedin_userid() == elgg_get_page_owner_guid())) { + $profile_actions = "
    "; + $profile_actions .= "". elgg_echo('profile:edit') .""; + $profile_actions .= "". elgg_echo('avatar:edit') .""; + $profile_actions .= "
    "; +} else { + $profile_actions = "
    "; + if (isloggedin()) { + if (get_loggedin_userid() != $user->getGUID()) { + if ($user->isFriend()) { + $url = elgg_get_site_url()."action/friends/remove?friend={$user->getGUID()}"; + $url = elgg_add_action_tokens_to_url($url); + $profile_actions .= "" . elgg_echo('friend:remove') . ""; + } else { + $url = elgg_get_site_url()."action/friends/add?friend={$user->getGUID()}"; + $url = elgg_add_action_tokens_to_url($url); + $profile_actions .= "" . elgg_echo('friend:add') . ""; + } + } + } + if (is_plugin_enabled('messages') && isloggedin()) { + $profile_actions .= "guid}\" class='action-button'>". elgg_echo('messages:send') .""; + } + $profile_actions .= "
    "; +} + +$username = $user->username; +$email = $user->email; +$phone = $user->phone; + + +//if admin display admin links +if (isadminloggedin()) { + $admin_links = elgg_view('profile/admin_menu'); +} else { + $admin_links = ''; +} + + +//check tools are enabled - hard-coded for phase1 +// @todo - provide a view to extend for profile pages ownerblock tool-links +if(is_plugin_enabled('blog')){ + $blog_link = "
  • Blog
  • "; +}else{ + $blog_link = ""; +} +if(is_plugin_enabled('bookmarks')){ + $bookmark_link = "
  • Bookmarks
  • "; +}else{ + $bookmark_link = ""; +} +if(is_plugin_enabled('document')){ + $docs_link = "
  • Documents
  • "; +}else{ + $docs_link = ""; +} +if(is_plugin_enabled('feeds')){ + $feeds_link = "
  • Feeds
  • "; +}else{ + $feeds_link = ""; +} +if(is_plugin_enabled('tidypics')){ + $tidypics_link = "
  • Photos
  • "; +}else{ + $tidypics_link = ""; +} +if(is_plugin_enabled('videolist')){ + $video_link = "
  • Videos
  • "; +}else{ + $video_link = ""; +} + +//contruct the display +$display = << +
    + {$icon} +
    + {$more_info} + {$profile_actions} + + + {$admin_links} + + +EOT; + +echo $display; diff --git a/mod/tabbed_profile/views/default/profile/sidebar.php b/mod/tabbed_profile/views/default/profile/sidebar.php new file mode 100644 index 000000000..525a2da81 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/sidebar.php @@ -0,0 +1,13 @@ + +
    + $section)); +?> +
    \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/profile/tab_navigation.php b/mod/tabbed_profile/views/default/profile/tab_navigation.php new file mode 100755 index 000000000..ca0873ebd --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/tab_navigation.php @@ -0,0 +1,68 @@ +getURL()}/"; + +//select section +switch($section){ + case 'friends': + $friends = 'class="selected"'; + break; + + case 'details': + $details = 'class="selected"'; + break; + case 'groups': + $groups = 'class="selected"'; + break; + case 'twitter': + $twitter = 'class="selected"'; + break; + + case 'commentwall': + $commentwall = 'class="selected"'; + break; + case 'activity': + default: + $activity = 'class="selected"'; + break; +} +?> +
    +

    name; ?>

    +
      +
    • >
    • +
    • >
    • +
    • >
    • +
    • >
    • +
    • >
    • + twitter){ + ?> +
    • >Twitter
    • + $user)); + ?> +
    +
    \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/profile/tabs/activity.php b/mod/tabbed_profile/views/default/profile/tabs/activity.php new file mode 100755 index 000000000..ccd2a3915 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/tabs/activity.php @@ -0,0 +1,32 @@ + $vars['entity'])); +} + +if (is_plugin_enabled('conversations')) { + // users last status msg, if they posted one + echo elgg_view("profile/status", array("entity" => $vars['entity'])); +} + +if (is_plugin_enabled('riverdashboard')) { + //select the correct river + if (get_plugin_setting('activitytype', 'riverdashboard') == 'classic') { + echo elgg_view_river_items($vars['entity']->getGuid(), 0, '', '', '', '', $limit,0,0,false,true); + } else { + echo elgg_view_river_items($vars['entity']->getGuid(), 0, '', '', '', '', $limit,0,0,false,false); + echo elgg_view('riverdashboard/js'); + } +} else { + // @todo this should not be here. + echo "Riverdashboard not loaded"; +} \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/profile/tabs/commentwall.php b/mod/tabbed_profile/views/default/profile/tabs/commentwall.php new file mode 100644 index 000000000..bf54bd7e7 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/tabs/commentwall.php @@ -0,0 +1,13 @@ +getAnnotations('commentwall', 200, 0, 'desc'); + +if (isloggedin()) { + echo elgg_view("profile/commentwall/commentwalladd"); +} + +echo elgg_view("profile/commentwall/commentwall", array('annotation' => $comments)); diff --git a/mod/tabbed_profile/views/default/profile/tabs/details.php b/mod/tabbed_profile/views/default/profile/tabs/details.php new file mode 100755 index 000000000..27b0f943b --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/tabs/details.php @@ -0,0 +1,41 @@ +profile) && sizeof($vars['config']->profile) > 0) { + foreach($vars['config']->profile as $shortname => $valtype) { + if ($shortname != "description") { + $value = $vars['entity']->$shortname; + if (!empty($value)) { + //This function controls the alternating class + $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even'; + ?> +

    + : + $vars['entity']->$shortname)); + ?> +

    + isBanned()) { + echo "
    "; + echo elgg_echo('profile:banned'); + echo "
    "; + } else { + if ($vars['entity']->description) { + echo "

    " . elgg_echo("profile:aboutme") . "

    "; + echo "
    " . elgg_view('output/longtext', array('value' => $vars['entity']->description)) . "
    "; + } + } +} diff --git a/mod/tabbed_profile/views/default/profile/tabs/friends.php b/mod/tabbed_profile/views/default/profile/tabs/friends.php new file mode 100755 index 000000000..9195629e5 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/tabs/friends.php @@ -0,0 +1,12 @@ +getGUID(), FALSE, 'user', '', 0, 10, FALSE); + +if(!$friends) { + $friends = '

    ' . elgg_echo('profile:no_friends') . '

    '; +} + +echo $friends; \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/profile/tabs/groups.php b/mod/tabbed_profile/views/default/profile/tabs/groups.php new file mode 100644 index 000000000..323bb61f1 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/tabs/groups.php @@ -0,0 +1,11 @@ +getGUID(),false,'group','',0, $limit,false, false); + +if(!$groups) { + $groups = '

    ' . elgg_echo('profile:no_groups') . '

    '; +} + +echo $groups; \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/profile/tabs/twitter.php b/mod/tabbed_profile/views/default/profile/tabs/twitter.php new file mode 100755 index 000000000..06a0551d4 --- /dev/null +++ b/mod/tabbed_profile/views/default/profile/tabs/twitter.php @@ -0,0 +1,17 @@ +twitter; + +// if the twitter username is empty, then do not show +if($twitter_username){ +?> + +

    + + + +