From 2850bfb915fa5dc28d290910cba1c97b0c7e3b50 Mon Sep 17 00:00:00 2001 From: Russell McLoughlin Date: Wed, 1 Jun 2011 11:25:31 -0700 Subject: Modified upload code so that it uses php's built in file copy function rather than reading the entire uploaded file into memory from the temporary upload directory and then saving it to elgg's data dir. --- mod/file/actions/file/upload.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mod/file/actions/file/upload.php b/mod/file/actions/file/upload.php index e04203f67..fe93661f2 100644 --- a/mod/file/actions/file/upload.php +++ b/mod/file/actions/file/upload.php @@ -106,9 +106,7 @@ if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) { $file->originalfilename = $_FILES['upload']['name']; $file->simpletype = file_get_simple_type($_FILES['upload']['type']); - $file->open("write"); - $file->write(get_uploaded_file('upload')); - $file->close(); + move_uploaded_file($_FILES['upload']['tmp_name'], $file->getFilenameOnFilestore()); $guid = $file->save(); -- cgit v1.2.3 From 5ce0b61f361809949f88fcd6566eebc3abb2c8df Mon Sep 17 00:00:00 2001 From: Russell McLoughlin Date: Wed, 1 Jun 2011 13:16:39 -0700 Subject: Modified upload script to guarentee that the directory under elgg data is created or exists. Removed strange chunking code with builtin php function --- mod/file/actions/file/upload.php | 3 +++ mod/file/download.php | 9 ++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/mod/file/actions/file/upload.php b/mod/file/actions/file/upload.php index fe93661f2..9581698be 100644 --- a/mod/file/actions/file/upload.php +++ b/mod/file/actions/file/upload.php @@ -106,6 +106,9 @@ if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) { $file->originalfilename = $_FILES['upload']['name']; $file->simpletype = file_get_simple_type($_FILES['upload']['type']); + // Open the file to guarentee the directory exists + $file->open("write"); + $file->close(); move_uploaded_file($_FILES['upload']['tmp_name'], $file->getFilenameOnFilestore()); $guid = $file->save(); diff --git a/mod/file/download.php b/mod/file/download.php index a386d490f..8e0287a1e 100644 --- a/mod/file/download.php +++ b/mod/file/download.php @@ -33,8 +33,7 @@ if (strpos($mime, "image/") !== false) { header("Content-Disposition: attachment; filename=\"$filename\""); } -$contents = $file->grabFile(); -$splitString = str_split($contents, 8192); -foreach ($splitString as $chunk) { - echo $chunk; -} +ob_clean(); +flush(); +readfile($file->getFilenameOnFilestore()); +exit; -- cgit v1.2.3 From d9485cb8e8982c668d7aa374f80ad2fa4c93753d Mon Sep 17 00:00:00 2001 From: Russell McLoughlin Date: Thu, 2 Jun 2011 15:54:16 -0700 Subject: fixed embarrassing spelling mistake. --- mod/file/actions/file/upload.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/file/actions/file/upload.php b/mod/file/actions/file/upload.php index 9581698be..518d59891 100644 --- a/mod/file/actions/file/upload.php +++ b/mod/file/actions/file/upload.php @@ -106,7 +106,7 @@ if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) { $file->originalfilename = $_FILES['upload']['name']; $file->simpletype = file_get_simple_type($_FILES['upload']['type']); - // Open the file to guarentee the directory exists + // Open the file to guarantee the directory exists $file->open("write"); $file->close(); move_uploaded_file($_FILES['upload']['tmp_name'], $file->getFilenameOnFilestore()); -- cgit v1.2.3 From 1fd8bd6e296e2b1fc960fde1dd204b6c4e3e8aec Mon Sep 17 00:00:00 2001 From: Evan Winslow Date: Wed, 8 Jun 2011 02:31:30 -0700 Subject: River revamp for 1.8 --- engine/lib/views.php | 2 +- languages/en.php | 4 +- mod/blog/languages/en.php | 5 +- .../views/default/river/object/blog/create.php | 30 ++---------- mod/bookmarks/languages/en.php | 4 +- .../default/river/object/bookmarks/create.php | 31 ++---------- mod/file/languages/en.php | 4 +- .../views/default/river/object/file/create.php | 30 ++---------- mod/groups/languages/en.php | 8 ++-- .../river/annotation/group_topic_post/reply.php | 25 ++-------- mod/groups/views/default/river/group/create.php | 20 ++------ .../river/object/groupforumtopic/create.php | 32 ++----------- .../default/river/relationship/member/create.php | 14 ++---- .../default/river/annotation/likes/create.php | 22 ++------- mod/messageboard/languages/en.php | 5 +- .../default/river/object/messageboard/create.php | 21 ++------- mod/pages/languages/en.php | 13 +++-- .../views/default/river/object/page/create.php | 30 ++---------- mod/thewire/languages/en.php | 2 +- .../views/default/river/object/thewire/create.php | 20 ++------ vendors/markdown/License.text | 0 vendors/markdown/PHP Markdown Extra Readme.text | 0 vendors/markdown/markdown.php | 0 .../river/annotation/generic_comment/create.php | 27 ++--------- views/default/river/elements/body.php | 55 +++++++++++++++------- views/default/river/elements/summary.php | 36 ++++++++++++++ views/default/river/item.php | 10 ++-- views/default/river/relationship/friend/create.php | 16 ++----- 28 files changed, 154 insertions(+), 312 deletions(-) mode change 100755 => 100644 vendors/markdown/License.text mode change 100755 => 100644 vendors/markdown/PHP Markdown Extra Readme.text mode change 100755 => 100644 vendors/markdown/markdown.php create mode 100644 views/default/river/elements/summary.php diff --git a/engine/lib/views.php b/engine/lib/views.php index 45b2c35f8..4911171c8 100644 --- a/engine/lib/views.php +++ b/engine/lib/views.php @@ -1203,7 +1203,7 @@ function elgg_view_river_item($item, array $vars = array()) { $vars['item'] = $item; - return elgg_view('river/item', $vars); + return elgg_view($item->getView(), $vars); } /** diff --git a/languages/en.php b/languages/en.php index 46ac19a34..cbe229c26 100644 --- a/languages/en.php +++ b/languages/en.php @@ -344,7 +344,7 @@ $english = array( 'friends:collections:members' => "Collection members", 'friends:collections:edit' => "Edit collection", - 'friends:river:add' => "is now a friend with %s", + 'river:friend:user:default' => "%s is now a friend with %s", 'friendspicker:chararray' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', @@ -410,7 +410,7 @@ $english = array( 'river:posted:generic' => '%s posted', 'riveritem:single:user' => 'a user', 'riveritem:plural:user' => 'some users', - 'river:ingroup' => 'to the group %s', + 'river:ingroup' => 'in the group %s', 'river:none' => 'No activity', 'river:widget:title' => "Activity", diff --git a/mod/blog/languages/en.php b/mod/blog/languages/en.php index b626085d7..460c407d9 100644 --- a/mod/blog/languages/en.php +++ b/mod/blog/languages/en.php @@ -53,8 +53,9 @@ $english = array( 'blog:error:revision_not_found' => 'Cannot find this revision.', // river - 'blog:river:create' => 'published a blog post', - 'river:commented:object:blog' => 'the blog', + + 'river:create:object:blog' => '%s published a blog post %s', + 'river:comment:object:blog' => '%s commented on the blog %s', // widget 'blog:widget:description' => 'Display your latest blog posts', diff --git a/mod/blog/views/default/river/object/blog/create.php b/mod/blog/views/default/river/object/blog/create.php index bd2405d42..613cbb165 100644 --- a/mod/blog/views/default/river/object/blog/create.php +++ b/mod/blog/views/default/river/object/blog/create.php @@ -7,29 +7,7 @@ $object = $vars['item']->getObjectEntity(); $excerpt = strip_tags($object->excerpt); $excerpt = elgg_get_excerpt($excerpt); -$params = array( - 'href' => $object->getURL(), - 'text' => $object->title, -); -$link = elgg_view('output/url', $params); - -$group_string = ''; -$container = $object->getContainerEntity(); -if ($container instanceof ElggGroup) { - $params = array( - 'href' => $container->getURL(), - 'text' => $container->name, - ); - $group_link = elgg_view('output/url', $params); - $group_string = elgg_echo('river:ingroup', array($group_link)); -} - -echo elgg_echo('blog:river:create'); - -echo " $link $group_string"; - -if ($excerpt) { - echo '
'; - echo $excerpt; - echo '
'; -} +echo elgg_view('river/item', array( + 'item' => $vars['item'], + 'message' => $excerpt, +)); \ No newline at end of file diff --git a/mod/bookmarks/languages/en.php b/mod/bookmarks/languages/en.php index 42865f8cf..1d32a0344 100644 --- a/mod/bookmarks/languages/en.php +++ b/mod/bookmarks/languages/en.php @@ -35,10 +35,10 @@ $english = array( 'bookmarks:visit' => "Visit resource", 'bookmarks:recent' => "Recent bookmarks", - 'bookmarks:river:created' => 'bookmarked %s', + 'river:create:object:bookmarks' => '%s bookmarked %s', + 'river:comment:object:bookmarks' => '%s commented on a bookmark %s', 'bookmarks:river:annotate' => 'a comment on this bookmark', 'bookmarks:river:item' => 'an item', - 'river:commented:object:bookmarks' => 'a bookmark', 'item:object:bookmarks' => 'Bookmarks', diff --git a/mod/bookmarks/views/default/river/object/bookmarks/create.php b/mod/bookmarks/views/default/river/object/bookmarks/create.php index 743efdb22..984d109be 100644 --- a/mod/bookmarks/views/default/river/object/bookmarks/create.php +++ b/mod/bookmarks/views/default/river/object/bookmarks/create.php @@ -8,29 +8,8 @@ $object = $vars['item']->getObjectEntity(); $excerpt = elgg_get_excerpt($object->description); -$params = array( - 'href' => $object->getURL(), - 'text' => $object->title, -); -$link = elgg_view('output/url', $params); - -$group_string = ''; -$container = $object->getContainerEntity(); -if ($container instanceof ElggGroup) { - $params = array( - 'href' => $container->getURL(), - 'text' => $container->name, - ); - $group_link = elgg_view('output/url', $params); - $group_string = elgg_echo('river:ingroup', array($group_link)); -} - -$link = elgg_echo('bookmarks:river:created', array($link)); - -echo " $link $group_string"; - -if ($excerpt) { - echo '
'; - echo $excerpt; - echo '
'; -} +echo elgg_view('river/item', array( + 'item' => $vars['item'], + 'message' => $excerpt, + 'attachments' => elgg_view('output/url', array('href' => $object->address)), +)); diff --git a/mod/file/languages/en.php b/mod/file/languages/en.php index 7ced3f112..1db32afcb 100644 --- a/mod/file/languages/en.php +++ b/mod/file/languages/en.php @@ -73,8 +73,8 @@ $english = array( 'file:display:number' => "Number of files to display", - 'file:river:create' => 'uploaded the file', - 'river:commented:object:file' => 'the file', + 'river:create:object:file' => '%s uploaded the file %s', + 'river:comment:object:file' => '%s commented on the file %s', 'item:object:file' => 'Files', diff --git a/mod/file/views/default/river/object/file/create.php b/mod/file/views/default/river/object/file/create.php index 620d1d18c..dad629120 100644 --- a/mod/file/views/default/river/object/file/create.php +++ b/mod/file/views/default/river/object/file/create.php @@ -7,29 +7,7 @@ $object = $vars['item']->getObjectEntity(); $excerpt = strip_tags($object->description); $excerpt = elgg_get_excerpt($excerpt); -$params = array( - 'href' => $object->getURL(), - 'text' => $object->title, -); -$link = elgg_view('output/url', $params); - -$group_string = ''; -$container = $object->getContainerEntity(); -if ($container instanceof ElggGroup) { - $params = array( - 'href' => $container->getURL(), - 'text' => $container->name, - ); - $group_link = elgg_view('output/url', $params); - $group_string = elgg_echo('river:ingroup', array($group_link)); -} - -echo elgg_echo('file:river:create'); - -echo " $link $group_string"; - -if ($excerpt) { - echo '
'; - echo $excerpt; - echo '
'; -} +echo elgg_view('river/item', array( + 'item' => $vars['item'], + 'message' => $excerpt, +)); \ No newline at end of file diff --git a/mod/groups/languages/en.php b/mod/groups/languages/en.php index 63a6df3a9..1afd42e86 100644 --- a/mod/groups/languages/en.php +++ b/mod/groups/languages/en.php @@ -210,10 +210,10 @@ or click below to view the group's join requests: Forum river items */ - 'groups:river:create' => 'created the group', - 'groups:river:join' => 'joined the group', - 'forumtopic:river:create' => 'added a new discussion topic', - 'groups:river:reply' => 'replied on the discussion topic', + 'river:create:group:default' => '%s created the group %s', + 'river:join:group:default' => '%s joined the group %s', + 'river:create:object:groupforumtopic' => '%s added a new discussion topic %s', + 'river:reply:object:groupforumtopic' => '%s replied on the discussion topic %s', 'groups:nowidgets' => 'No widgets have been defined for this group.', diff --git a/mod/groups/views/default/river/annotation/group_topic_post/reply.php b/mod/groups/views/default/river/annotation/group_topic_post/reply.php index 1999c8dd9..cc94fbd43 100644 --- a/mod/groups/views/default/river/annotation/group_topic_post/reply.php +++ b/mod/groups/views/default/river/annotation/group_topic_post/reply.php @@ -4,24 +4,9 @@ */ $object = $vars['item']->getObjectEntity(); $reply = $vars['item']->getAnnotation(); +$excerpt = elgg_get_excerpt($reply->value); -$url = $object->getURL(); -$title = $object->title; -$params = array( - 'href' => $object->getURL(), - 'text' => $title, -); -$object_link = elgg_view('output/url', $params); - -$type = $object->getType(); -$subtype = $object->getSubtype(); - -echo elgg_echo('groups:river:reply') . ' '; -echo $object_link; - -if ($reply) { - $excerpt = elgg_get_excerpt($reply->value); - echo '
'; - echo $excerpt; - echo '
'; -} +echo elgg_view('river/item', array( + 'item' => $vars['item'], + 'message' => $excerpt, +)); \ No newline at end of file diff --git a/mod/groups/views/default/river/group/create.php b/mod/groups/views/default/river/group/create.php index a70f8b51d..cacb5ad3f 100644 --- a/mod/groups/views/default/river/group/create.php +++ b/mod/groups/views/default/river/group/create.php @@ -7,19 +7,7 @@ $object = $vars['item']->getObjectEntity(); $excerpt = strip_tags($object->description); $excerpt = elgg_get_excerpt($excerpt); -$params = array( - 'href' => $object->getURL(), - 'text' => $object->name, -); -$link = elgg_view('output/url', $params); - - -echo elgg_echo('groups:river:create'); - -echo " $link"; - -if ($excerpt) { - echo '
'; - echo $excerpt; - echo '
'; -} +echo elgg_view('river/item', array( + 'item' => $vars['item'], + 'message' => $excerpt, +)); \ No newline at end of file diff --git a/mod/groups/views/default/river/object/groupforumtopic/create.php b/mod/groups/views/default/river/object/groupforumtopic/create.php index 466196921..cca44e523 100644 --- a/mod/groups/views/default/river/object/groupforumtopic/create.php +++ b/mod/groups/views/default/river/object/groupforumtopic/create.php @@ -7,34 +7,12 @@ $object = $vars['item']->getObjectEntity(); $excerpt = strip_tags($object->description); $excerpt = elgg_get_excerpt($excerpt); -$params = array( - 'href' => $object->getURL(), - 'text' => $object->title, -); -$link = elgg_view('output/url', $params); +echo elgg_view('river/item', array( + 'item' => $vars['item'], + 'message' => $excerpt, +)); -$group_string = ''; -$container = $object->getContainerEntity(); -if ($container instanceof ElggGroup) { - $params = array( - 'href' => $container->getURL(), - 'text' => $container->name, - ); - $group_link = elgg_view('output/url', $params); - $group_string = elgg_echo('river:ingroup', array($group_link)); -} - -echo elgg_echo('forumtopic:river:create'); - -echo " $link $group_string"; - -if ($excerpt) { - echo '
'; - echo $excerpt; - echo '
'; -} - -if (elgg_is_logged_in() && $container->canWriteToContainer()) { +if (elgg_is_logged_in() && $object->canAnnotate(0, 'group_topic_post')) { // inline comment form $form_vars = array('id' => "groups-reply-{$object->getGUID()}", 'class' => 'hidden'); $body_vars = array('entity' => $object, 'inline' => true); diff --git a/mod/groups/views/default/river/relationship/member/create.php b/mod/groups/views/default/river/relationship/member/create.php index 060826649..d1c4c3ed3 100644 --- a/mod/groups/views/default/river/relationship/member/create.php +++ b/mod/groups/views/default/river/relationship/member/create.php @@ -3,14 +3,6 @@ * Group join river view. */ -$object = $vars['item']->getObjectEntity(); - -$params = array( - 'href' => $object->getURL(), - 'text' => $object->name, -); -$link = elgg_view('output/url', $params); - -echo elgg_echo('groups:river:join'); - -echo " $link"; +echo elgg_view('river/item', array( + 'item' => $vars['item'], +)); diff --git a/mod/likes/views/default/river/annotation/likes/create.php b/mod/likes/views/default/river/annotation/likes/create.php index 463fe5049..0160bcc0b 100644 --- a/mod/likes/views/default/river/annotation/likes/create.php +++ b/mod/likes/views/default/river/annotation/likes/create.php @@ -5,22 +5,6 @@ * @todo not finished */ -$object = $vars['item']->getObjectEntity(); -$comment = $vars['item']->getAnnotation(); - -$url = $object->getURL(); -$title = $object->title; -if (!$title) { - $title = elgg_echo('untitled'); -} -$params = array( - 'href' => $object->getURL(), - 'text' => $title, -); -$object_link = elgg_view('output/url', $params); - -$type = $object->getType(); -$subtype = $object->getSubtype(); - -$type_string = elgg_echo("river:commented:$type:$subtype"); -echo elgg_echo('river:likes', array($type_string, $object_link)); +echo elgg_view('river/item', array( + 'item' => $vars['item'], +)); diff --git a/mod/messageboard/languages/en.php b/mod/messageboard/languages/en.php index d8ccbdeee..9027eb650 100644 --- a/mod/messageboard/languages/en.php +++ b/mod/messageboard/languages/en.php @@ -26,10 +26,7 @@ $english = array( /** * Message board widget river */ - 'messageboard:river:added' => "posted on", - 'messageboard:river:user' => "%s's", - 'messageboard:river:messageboard' => "message board", - + 'river:messageboard:user:default' => "%s posted on %s's message board", /** * Status messages diff --git a/mod/messageboard/views/default/river/object/messageboard/create.php b/mod/messageboard/views/default/river/object/messageboard/create.php index 0268930bf..975598805 100644 --- a/mod/messageboard/views/default/river/object/messageboard/create.php +++ b/mod/messageboard/views/default/river/object/messageboard/create.php @@ -3,22 +3,9 @@ * Messageboard river view */ -$performed_by = $vars['item']->getSubjectEntity(); -$performed_on = $vars['item']->getObjectEntity(); +$messageboard = $vars['item']->getAnnotation(); -$comment = $vars['item']->getAnnotation(); - -$link = elgg_view('output/url', array( - 'href' => $performed_on->getURL(), - 'text' => elgg_echo('messageboard:river:user', array($performed_on->name)), +echo elgg_view('river/item', array( + 'item' => $vars['item'], + 'message' => $messageboard->value, )); - -echo elgg_echo("messageboard:river:added"); -echo " $link "; -echo elgg_echo("messageboard:river:messageboard"); - -if ($comment) { - echo '
'; - echo elgg_get_excerpt($comment->value); - echo '
'; -} diff --git a/mod/pages/languages/en.php b/mod/pages/languages/en.php index f590afb9c..1c6d0318c 100644 --- a/mod/pages/languages/en.php +++ b/mod/pages/languages/en.php @@ -38,13 +38,12 @@ $english = array( * River **/ - 'pages:river:create' => 'created the page', - 'pages:river:created' => "%s wrote", - 'pages:river:updated' => "%s updated", - 'pages:river:posted' => "%s posted", - 'pages:river:update' => "a page titled", - 'river:commented:object:page' => 'the page', - 'river:commented:object:page_top' => 'the page', + 'river:create:object:page' => '%s created a page %s', + 'river:create:object:page_top' => '%s created a page %s', + 'river:update:object:page' => '%s updated a page %s', + 'river:update:object:page_top' => '%s updated a page %s', + 'river:comment:object:page' => '%s commented on a page titled %s', + 'river:comment:object:page_top' => '%s commented on a page titled %s', /** * Form fields diff --git a/mod/pages/views/default/river/object/page/create.php b/mod/pages/views/default/river/object/page/create.php index 032046063..ca15ddea7 100644 --- a/mod/pages/views/default/river/object/page/create.php +++ b/mod/pages/views/default/river/object/page/create.php @@ -7,29 +7,7 @@ $object = $vars['item']->getObjectEntity(); $excerpt = strip_tags($object->description); $excerpt = elgg_get_excerpt($excerpt); -$params = array( - 'href' => $object->getURL(), - 'text' => $object->title, -); -$link = elgg_view('output/url', $params); - -$group_string = ''; -$container = $object->getContainerEntity(); -if ($container instanceof ElggGroup) { - $params = array( - 'href' => $container->getURL(), - 'text' => $container->name, - ); - $group_link = elgg_view('output/url', $params); - $group_string = elgg_echo('river:ingroup', array($group_link)); -} - -echo elgg_echo('pages:river:create'); - -echo " $link $group_string"; - -if ($excerpt) { - echo '
'; - echo $excerpt; - echo '
'; -} +echo elgg_view('river/item', array( + 'item' => $vars['item'], + 'message' => $excerpt, +)); \ No newline at end of file diff --git a/mod/thewire/languages/en.php b/mod/thewire/languages/en.php index b55fb11d0..07f821e87 100644 --- a/mod/thewire/languages/en.php +++ b/mod/thewire/languages/en.php @@ -29,7 +29,7 @@ $english = array( /** * The wire river */ - 'thewire:river:create' => "posted to the wire", + 'river:create:object:thewire' => "%s posted to the wire", /** * Wire widget diff --git a/mod/thewire/views/default/river/object/thewire/create.php b/mod/thewire/views/default/river/object/thewire/create.php index d4dac38ee..2e9cfd83b 100644 --- a/mod/thewire/views/default/river/object/thewire/create.php +++ b/mod/thewire/views/default/river/object/thewire/create.php @@ -7,18 +7,8 @@ $object = $vars['item']->getObjectEntity(); $excerpt = strip_tags($object->description); $excerpt = thewire_filter($excerpt); -$params = array( - 'href' => $object->getURL(), - 'text' => $object->title, -); -$link = elgg_view('output/url', $params); - -echo elgg_echo('thewire:river:create'); - -echo " $link"; - -if ($excerpt) { - echo '
'; - echo $excerpt; - echo '
'; -} +echo elgg_view('river/item', array( + 'item' => $vars['item'], + 'message' => $excerpt, + 'summary' => false, +)); \ No newline at end of file diff --git a/vendors/markdown/License.text b/vendors/markdown/License.text old mode 100755 new mode 100644 diff --git a/vendors/markdown/PHP Markdown Extra Readme.text b/vendors/markdown/PHP Markdown Extra Readme.text old mode 100755 new mode 100644 diff --git a/vendors/markdown/markdown.php b/vendors/markdown/markdown.php old mode 100755 new mode 100644 diff --git a/views/default/river/annotation/generic_comment/create.php b/views/default/river/annotation/generic_comment/create.php index aabb6a9c6..d3db68e41 100644 --- a/views/default/river/annotation/generic_comment/create.php +++ b/views/default/river/annotation/generic_comment/create.php @@ -5,26 +5,7 @@ $object = $vars['item']->getObjectEntity(); $comment = $vars['item']->getAnnotation(); -$url = $object->getURL(); -$title = $object->title; -if (!$title) { - $title = elgg_echo('untitled'); -} -$params = array( - 'href' => $object->getURL(), - 'text' => $title, -); -$object_link = elgg_view('output/url', $params); - -$type = $object->getType(); -$subtype = $object->getSubtype(); - -$type_string = elgg_echo("river:commented:$type:$subtype"); -echo elgg_echo('river:generic_comment', array($type_string, $object_link)); - -if ($comment) { - $excerpt = elgg_get_excerpt($comment->value); - echo '
'; - echo $excerpt; - echo '
'; -} +echo elgg_view('river/item', array( + 'item' => $vars['item'], + 'message' => elgg_get_excerpt($comment->value), +)); diff --git a/views/default/river/elements/body.php b/views/default/river/elements/body.php index f9ecbc03c..a76cae909 100644 --- a/views/default/river/elements/body.php +++ b/views/default/river/elements/body.php @@ -6,28 +6,49 @@ */ $item = $vars['item']; -$subject = $item->getSubjectEntity(); + +$menu = elgg_view_menu('river', array('item' => $item, 'sort_by' => 'priority')); // river item header -$params = array( - 'href' => $subject->getURL(), - 'text' => $subject->name, -); -$subject_link = elgg_view('output/url', $params); $timestamp = elgg_get_friendly_time($item->getPostedTime()); -$header = elgg_view_menu('river', array('item' => $item, 'sort_by' => 'priority')); -$header .= "$subject_link $timestamp"; +$summary = elgg_extract('summary', $vars, elgg_view('river/elements/summary', array('item' => $vars['item']))); +if ($summary === false) { + $subject = $item->getSubjectEntity(); + $summary = elgg_view('output/url', array( + 'href' => $subject->getURL(), + 'text' => $subject->name, + 'class' => 'elgg-river-subject', + )); +} + +$message = elgg_extract('message', $vars, false); +if ($message !== false) { + $message = "
$message
"; +} -// body -$body = elgg_view($item->getView(), array('item' => $item)); +$attachments = elgg_extract('attachments', $vars, false); +if ($attachments !== false) { + $attachments = "
$attachments
"; +} -// footer $footer = elgg_view('river/elements/footer', $vars); -echo elgg_view('page/components/module', array( - 'header' => $header, - 'body' => $body, - 'footer' => $footer, - 'class' => 'mbn', -)); \ No newline at end of file +$group_string = ''; +$object = $item->getObjectEntity(); +$container = $object->getContainerEntity(); +if ($container instanceof ElggGroup && $container->guid != elgg_get_page_owner_guid()) { + $group_link = elgg_view('output/url', array( + 'href' => $container->getURL(), + 'text' => $container->name, + )); + $group_string = elgg_echo('river:ingroup', array($group_link)); +} + +echo <<$summary $group_string $timestamp +$message +$attachments +$footer +RIVER; diff --git a/views/default/river/elements/summary.php b/views/default/river/elements/summary.php new file mode 100644 index 000000000..eee8754e2 --- /dev/null +++ b/views/default/river/elements/summary.php @@ -0,0 +1,36 @@ +getSubjectEntity(); +$object = $item->getObjectEntity(); +$target = $object->getContainerEntity(); + +$subject_link = elgg_view('output/url', array( + 'href' => $subject->getURL(), + 'text' => $subject->name, + 'class' => 'elgg-river-subject', +)); + +$object_link = elgg_view('output/url', array( + 'href' => $object->getURL(), + 'text' => $object->title ? $object->title : $object->name, + 'class' => 'elgg-river-object', +)); + +$action = $item->action_type; +$type = $item->type; +$subtype = $item->subtype ? $item->subtype : 'default'; + +$container = $object->getContainerEntity(); +if ($container instanceof ElggGroup) { + $params = array( + 'href' => $container->getURL(), + 'text' => $container->name, + ); + $group_link = elgg_view('output/url', $params); + $group_string = elgg_echo('river:ingroup', array($group_link)); +} + + +echo elgg_echo("river:$action:$type:$subtype", array($subject_link, $object_link)); \ No newline at end of file diff --git a/views/default/river/item.php b/views/default/river/item.php index bf7c80b03..94622e272 100644 --- a/views/default/river/item.php +++ b/views/default/river/item.php @@ -7,10 +7,8 @@ $item = $vars['item']; -$vars = array( - 'image' => elgg_view('river/elements/image', array('item' => $item)), - 'body' => elgg_view('river/elements/body', array('item' => $item)), +echo elgg_view('page/components/image_block', array( + 'image' => elgg_view('river/elements/image', $vars), + 'body' => elgg_view('river/elements/body', $vars), 'class' => 'elgg-river-item', -); - -echo elgg_view('page/components/image_block', $vars); +)); diff --git a/views/default/river/relationship/friend/create.php b/views/default/river/relationship/friend/create.php index 14dab4451..f3f4a9b14 100644 --- a/views/default/river/relationship/friend/create.php +++ b/views/default/river/relationship/friend/create.php @@ -5,18 +5,10 @@ $subject = $vars['item']->getSubjectEntity(); $object = $vars['item']->getObjectEntity(); -$params = array( - 'href' => $object->getURL(), - 'text' => $object->name, -); -$object_link = elgg_view('output/url', $params); $subject_icon = elgg_view_entity_icon($subject, 'tiny'); $object_icon = elgg_view_entity_icon($object, 'tiny'); -echo elgg_echo("friends:river:add", array($object_link)); - -echo '
'; -echo $subject_icon; -echo elgg_view_icon('arrow-right', true); -echo $object_icon; -echo '
'; +echo elgg_view('river/item', array( + 'item' => $vars['item'], + 'attachments' => $subject_icon . elgg_view_icon('arrow-right', true) . $object_icon, +)); -- cgit v1.2.3 From 797f3ab42d2f9cbd1c2150d0f491696d4874b404 Mon Sep 17 00:00:00 2001 From: Ravindra Nath Kakarla Date: Mon, 13 Jun 2011 21:22:02 +0530 Subject: textarea has to be jQuery object --- mod/thewire/views/default/js/thewire.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mod/thewire/views/default/js/thewire.php b/mod/thewire/views/default/js/thewire.php index 1eda90bee..d9bf6d10e 100644 --- a/mod/thewire/views/default/js/thewire.php +++ b/mod/thewire/views/default/js/thewire.php @@ -30,7 +30,7 @@ elgg.thewire.init = function() { */ elgg.thewire.textCounter = function(textarea, status, limit) { - var remaining_chars = limit - textarea.value.length; + var remaining_chars = limit - $(textarea).val().length; status.html(remaining_chars); if (remaining_chars < 0) { @@ -83,4 +83,4 @@ elgg.thewire.viewPrevious = function(event) { event.preventDefault(); } -elgg.register_hook_handler('init', 'system', elgg.thewire.init); \ No newline at end of file +elgg.register_hook_handler('init', 'system', elgg.thewire.init); -- cgit v1.2.3 From 6547efb9ae89c1477930c69ac2dbe73350673a66 Mon Sep 17 00:00:00 2001 From: Jeff Tilson Date: Mon, 13 Jun 2011 14:38:46 -0400 Subject: Added 'remove from group' link to the user hover menu (only appears when the page owner is a group) --- mod/groups/actions/groups/membership/remove.php | 31 ++++++++++++++++++ mod/groups/languages/en.php | 3 ++ mod/groups/start.php | 42 +++++++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 mod/groups/actions/groups/membership/remove.php diff --git a/mod/groups/actions/groups/membership/remove.php b/mod/groups/actions/groups/membership/remove.php new file mode 100644 index 000000000..6f0698371 --- /dev/null +++ b/mod/groups/actions/groups/membership/remove.php @@ -0,0 +1,31 @@ +guid); + +if (($user instanceof ElggUser) && ($group instanceof ElggGroup) && $group->canEdit()) { + // Don't allow removeing group owner + if ($group->getOwnerGUID() != $user->getGUID()) { + if ($group->leave($user)) { + system_message(elgg_echo("groups:removed")); + } else { + register_error(elgg_echo("groups:cantremove")); + } + } else { + register_error(elgg_echo("groups:cantremove")); + } +} else { + register_error(elgg_echo("groups:cantremove")); +} + +forward(REFERER); diff --git a/mod/groups/languages/en.php b/mod/groups/languages/en.php index 63a6df3a9..a4d9863ca 100644 --- a/mod/groups/languages/en.php +++ b/mod/groups/languages/en.php @@ -166,6 +166,9 @@ $english = array( 'groups:notitle' => 'Groups must have a title', 'groups:cantjoin' => 'Can not join group', 'groups:cantleave' => 'Could not leave group', + 'groups:removeuser' => 'Remove from group', + 'groups:cantremove' => 'Cannot remove user from group', + 'groups:removed' => 'User successfully removed from group', 'groups:addedtogroup' => 'Successfully added the user to the group', 'groups:joinrequestnotmade' => 'Could not request to join group', 'groups:joinrequestmade' => 'Requested to join group', diff --git a/mod/groups/start.php b/mod/groups/start.php index 73bdd08a9..9a375e89d 100644 --- a/mod/groups/start.php +++ b/mod/groups/start.php @@ -44,6 +44,7 @@ function groups_init() { elgg_register_action("groups/invite", "$action_base/invite.php"); elgg_register_action("groups/join", "$action_base/join.php"); elgg_register_action("groups/leave", "$action_base/leave.php"); + elgg_register_action("groups/remove", "$action_base/remove.php"); elgg_register_action("groups/killrequest", "$action_base/delete_request.php"); elgg_register_action("groups/killinvitation", "$action_base/delete_invite.php"); elgg_register_action("groups/addtogroup", "$action_base/add.php"); @@ -60,6 +61,9 @@ function groups_init() { // group entity menu elgg_register_plugin_hook_handler('register', 'menu:entity', 'groups_entity_menu_setup'); + + // group user hover menu + elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'groups_user_entity_menu_setup'); //extend some views elgg_extend_view('css/elgg', 'groups/css'); @@ -366,6 +370,44 @@ function groups_entity_menu_setup($hook, $type, $return, $params) { return $return; } +/** + * Add a remove user link to user hover menu when the page owner is a group + */ +function groups_user_entity_menu_setup($hook, $type, $return, $params) { + if (elgg_is_logged_in()) { + $group = elgg_get_page_owner_entity(); + + // Check for valid group + if (!elgg_instanceof($group, 'group')) { + return $return; + } + + $entity = $params['entity']; + + // Make sure we have a user and that user is a member of the group + if (!elgg_instanceof($entity, 'user') || !$group->isMember($entity)) { + return $return; + } + + // Add remove link if we can edit the group, and if we're not trying to remove the group owner + if ($group->canEdit() && $group->getOwnerGUID() != $entity->guid) { + $remove = elgg_view('output/confirmlink', array( + 'href' => "action/groups/remove?user_guid={$entity->guid}&group_guid={$group->guid}", + 'text' => elgg_echo('groups:removeuser'), + )); + + $options = array( + 'name' => 'removeuser', + 'text' => $remove, + 'priority' => 999, + ); + $return[] = ElggMenuItem::factory($options); + } + } + + return $return; +} + /** * Groups created so create an access list for it */ -- cgit v1.2.3 From dea90f2e6af72473e24e5e67b154754faf84513e Mon Sep 17 00:00:00 2001 From: Evan Winslow Date: Mon, 13 Jun 2011 19:47:17 -0700 Subject: elgg-river-message and elgg-river-attachments now get the old elgg-river-content styling --- views/default/css/elements/components.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/views/default/css/elements/components.php b/views/default/css/elements/components.php index 0fcbe3619..4b0034dd3 100644 --- a/views/default/css/elements/components.php +++ b/views/default/css/elements/components.php @@ -161,12 +161,15 @@ font-style: italic; line-height: 1.2em; } + +.elgg-river-attachments, +.elgg-river-message, .elgg-river-content { - border-left: 1px solid #CCC; - font-size: 85%; - line-height: 1.5em; - margin: 8px 0 5px 0; - padding-left: 5px; + border-left: 1px solid #CCC; + font-size: 85%; + line-height: 1.5em; + margin: 8px 0 5px 0; + padding-left: 5px; } -- cgit v1.2.3 From b766230d132bedf68ec3c63f72538fefa54c62e2 Mon Sep 17 00:00:00 2001 From: Evan Winslow Date: Mon, 13 Jun 2011 22:23:09 -0700 Subject: Renamed river footer to a more semantic "responses". Fixed discussion to work inline again with this new layout. --- mod/groups/start.php | 3 +- .../river/object/groupforumtopic/create.php | 7 --- views/default/river/elements/body.php | 4 +- views/default/river/elements/footer.php | 52 ---------------------- views/default/river/elements/responses.php | 52 ++++++++++++++++++++++ 5 files changed, 56 insertions(+), 62 deletions(-) delete mode 100644 views/default/river/elements/footer.php create mode 100644 views/default/river/elements/responses.php diff --git a/mod/groups/start.php b/mod/groups/start.php index 73bdd08a9..5aaba017c 100644 --- a/mod/groups/start.php +++ b/mod/groups/start.php @@ -621,7 +621,8 @@ function discussion_init() { // commenting not allowed on discussion topics (use a different annotation) elgg_register_plugin_hook_handler('permissions_check:comment', 'object', 'discussion_comment_override'); - + elgg_extend_view('river/elements/responses', 'discussion/river'); + $action_base = elgg_get_plugins_path() . 'groups/actions/discussion'; elgg_register_action('discussion/save', "$action_base/save.php"); elgg_register_action('discussion/delete', "$action_base/delete.php"); diff --git a/mod/groups/views/default/river/object/groupforumtopic/create.php b/mod/groups/views/default/river/object/groupforumtopic/create.php index cca44e523..f92e54a5c 100644 --- a/mod/groups/views/default/river/object/groupforumtopic/create.php +++ b/mod/groups/views/default/river/object/groupforumtopic/create.php @@ -11,10 +11,3 @@ echo elgg_view('river/item', array( 'item' => $vars['item'], 'message' => $excerpt, )); - -if (elgg_is_logged_in() && $object->canAnnotate(0, 'group_topic_post')) { - // inline comment form - $form_vars = array('id' => "groups-reply-{$object->getGUID()}", 'class' => 'hidden'); - $body_vars = array('entity' => $object, 'inline' => true); - echo elgg_view_form('discussion/reply/save', $form_vars, $body_vars); -} diff --git a/views/default/river/elements/body.php b/views/default/river/elements/body.php index a76cae909..080c04644 100644 --- a/views/default/river/elements/body.php +++ b/views/default/river/elements/body.php @@ -32,7 +32,7 @@ if ($attachments !== false) { $attachments = "
$attachments
"; } -$footer = elgg_view('river/elements/footer', $vars); +$responses = elgg_view('river/elements/responses', $vars); $group_string = ''; $object = $item->getObjectEntity(); @@ -50,5 +50,5 @@ $menu
$summary $group_string $timestamp
$message $attachments -$footer +$responses RIVER; diff --git a/views/default/river/elements/footer.php b/views/default/river/elements/footer.php deleted file mode 100644 index f1e79f131..000000000 --- a/views/default/river/elements/footer.php +++ /dev/null @@ -1,52 +0,0 @@ -getObjectEntity(); - -// annotations do not have comments -if ($item->annotation_id != 0 || !$object) { - return true; -} - -$comment_count = $object->countComments(); - -$options = array( - 'guid' => $object->getGUID(), - 'annotation_name' => 'generic_comment', - 'limit' => 3, - 'order_by' => 'n_table.time_created desc' -); -$comments = elgg_get_annotations($options); - -if ($comments) { - // why is this reversing it? because we're asking for the 3 latest - // comments by sorting desc and limiting by 3, but we want to display - // these comments with the latest at the bottom. - $comments = array_reverse($comments); - -?> - - - 'elgg-river-comments')); - - if ($comment_count > count($comments)) { - $num_more_comments = $comment_count - count($comments); - $url = $object->getURL(); - $params = array( - 'href' => $url, - 'text' => elgg_echo('river:comments:more', array($num_more_comments)), - ); - $link = elgg_view('output/url', $params); - echo "
$link
"; - } -} - -// inline comment form -$form_vars = array('id' => "comments-add-{$object->getGUID()}", 'class' => 'hidden'); -$body_vars = array('entity' => $object, 'inline' => true); -echo elgg_view_form('comments/add', $form_vars, $body_vars); diff --git a/views/default/river/elements/responses.php b/views/default/river/elements/responses.php new file mode 100644 index 000000000..f1e79f131 --- /dev/null +++ b/views/default/river/elements/responses.php @@ -0,0 +1,52 @@ +getObjectEntity(); + +// annotations do not have comments +if ($item->annotation_id != 0 || !$object) { + return true; +} + +$comment_count = $object->countComments(); + +$options = array( + 'guid' => $object->getGUID(), + 'annotation_name' => 'generic_comment', + 'limit' => 3, + 'order_by' => 'n_table.time_created desc' +); +$comments = elgg_get_annotations($options); + +if ($comments) { + // why is this reversing it? because we're asking for the 3 latest + // comments by sorting desc and limiting by 3, but we want to display + // these comments with the latest at the bottom. + $comments = array_reverse($comments); + +?> + + + 'elgg-river-comments')); + + if ($comment_count > count($comments)) { + $num_more_comments = $comment_count - count($comments); + $url = $object->getURL(); + $params = array( + 'href' => $url, + 'text' => elgg_echo('river:comments:more', array($num_more_comments)), + ); + $link = elgg_view('output/url', $params); + echo "
$link
"; + } +} + +// inline comment form +$form_vars = array('id' => "comments-add-{$object->getGUID()}", 'class' => 'hidden'); +$body_vars = array('entity' => $object, 'inline' => true); +echo elgg_view_form('comments/add', $form_vars, $body_vars); -- cgit v1.2.3 From cf85a49c7e74133feaec7d52d8f289d22b59a56c Mon Sep 17 00:00:00 2001 From: Evan Winslow Date: Mon, 13 Jun 2011 22:31:48 -0700 Subject: Using tabs, not spaces for indentation --- views/default/css/elements/components.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/views/default/css/elements/components.php b/views/default/css/elements/components.php index 4b0034dd3..203f6d257 100644 --- a/views/default/css/elements/components.php +++ b/views/default/css/elements/components.php @@ -165,11 +165,11 @@ .elgg-river-attachments, .elgg-river-message, .elgg-river-content { - border-left: 1px solid #CCC; - font-size: 85%; - line-height: 1.5em; - margin: 8px 0 5px 0; - padding-left: 5px; + border-left: 1px solid #CCC; + font-size: 85%; + line-height: 1.5em; + margin: 8px 0 5px 0; + padding-left: 5px; } -- cgit v1.2.3 From 755187045527c5c15ea3b9e70fe7a451d7796585 Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 18 Jun 2011 17:56:44 -0400 Subject: using the new lightbox and hacking away at the complicated embed/embed view --- mod/embed/start.php | 7 +++- mod/embed/views/default/embed/css.php | 61 +++++++++++++++++++++++++++++++ mod/embed/views/default/embed/embed.php | 38 ++----------------- mod/embed/views/default/embed/tabs.php | 40 ++++++++++++++++++++ views/default/css/elements/navigation.php | 4 +- 5 files changed, 112 insertions(+), 38 deletions(-) create mode 100644 mod/embed/views/default/embed/tabs.php diff --git a/mod/embed/start.php b/mod/embed/start.php index f6f49a53f..ce6c6ec11 100644 --- a/mod/embed/start.php +++ b/mod/embed/start.php @@ -36,10 +36,13 @@ function embed_longtext_menu($hook, $type, $items, $vars) { 'name' => 'embed', 'href' => "embed?{$active_section}internal_id={$vars['id']}", 'text' => elgg_echo('media:insert'), - 'rel' => 'facebox', - 'link_class' => 'elgg-longtext-control', + 'rel' => 'lightbox', + 'link_class' => 'elgg-longtext-control elgg-lightbox', 'priority' => 1, )); + + elgg_load_js('lightbox'); + elgg_load_css('lightbox'); return $items; } diff --git a/mod/embed/views/default/embed/css.php b/mod/embed/views/default/embed/css.php index 44491846b..c20116bf2 100644 --- a/mod/embed/views/default/embed/css.php +++ b/mod/embed/views/default/embed/css.php @@ -5,6 +5,67 @@ * @package embed */ ?> +.embed-wrapper { + width: 730px; + min-height: 400px; + padding: 5px; +} +.embed-wrapper h2 { + color: #333333; + margin-bottom: 10px; +} + +/* *************************************** + EMBED TABBED PAGE NAVIGATION +*************************************** */ +.embed-wrapper .elgg-tabs a:hover { + color: #666; +} + +/*************** + Form +******************/ +/* input field classes */ +.embed-wrapper .elgg-input-text, +.embed-wrapper .elgg-input-tags { + font: 120% Arial, Helvetica, sans-serif; + padding: 5px; + border: 1px solid #ccc; + color:#666; + background-color: white; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.embed-wrapper .elgg-input-text:focus, +.embed-wrapper .elgg-input-tags:focus { + border: solid 1px #4690d6; + background: #e4ecf5; + color:#333; +} +.embed-wrapper .elgg-input-file { + background-color: white; +} +.embed-wrapper p { + color:#333; +} +.embed-wrapper p.entity-title { + color:#666; +} +.embed-wrapper .elgg-image-block:hover { + background-color: #eee; +} +.embed-wrapper label { + color:#333; +} + + + #facebox { position: absolute; diff --git a/mod/embed/views/default/embed/embed.php b/mod/embed/views/default/embed/embed.php index eeeb1d244..f09d76a4b 100644 --- a/mod/embed/views/default/embed/embed.php +++ b/mod/embed/views/default/embed/embed.php @@ -17,41 +17,11 @@ $internal_id = elgg_extract('internal_id', $vars); if (!$sections) { $content = elgg_echo('embed:no_sections'); } else { - $offset = max(0, get_input('offset', 0)); - $limit = get_input('limit', 10); - $content = elgg_view_title(elgg_echo('embed:media')); - //$content .= elgg_echo('embed:instructions'); + $content .= elgg_view('embed/tabs', $vars); - // prepare tabbed menu - $tabs = array(); - foreach ($sections as $section_id => $section_info) { - $tab = array( - 'title' => $section_info['name'], - 'url' => '#', - 'url_class' => 'embed_section', - 'url_id' => $section_id, - ); - - if ($section_id == $active_section) { - $tab['selected'] = TRUE; - } - $tabs[] = $tab; - } - - // make sure upload is always the last tab - if ($upload_sections) { - $tabs[] = array( - 'title' => elgg_echo('embed:upload'), - 'url' => '#', - 'url_class' => 'embed_section', - 'url_id' => 'upload', - 'selected' => ($active_section == 'upload') - ); - } - - $tabs_html = elgg_view('navigation/tabs', array('tabs' => $tabs)); - $content .= $tabs_html; + $offset = max(0, get_input('offset', 0)); + $limit = get_input('limit', 10); // build the items and layout. if ($active_section == 'upload' || array_key_exists($active_section, $sections)) { @@ -121,7 +91,7 @@ if (!$sections) { } } -echo $content; +echo '
' . $content . '
'; ?> diff --git a/mod/embed/views/default/embed/tabs.php b/mod/embed/views/default/embed/tabs.php new file mode 100644 index 000000000..a148ece9f --- /dev/null +++ b/mod/embed/views/default/embed/tabs.php @@ -0,0 +1,40 @@ + $section_info) { + $tab = array( + 'title' => $section_info['name'], + 'url' => '#', + 'url_class' => 'embed_section', + 'url_id' => $section_id, + ); + + if ($section_id == $active_section) { + $tab['selected'] = TRUE; + } + $tabs[] = $tab; +} + +// make sure upload is always the last tab +if ($upload_sections) { + $tabs[] = array( + 'title' => elgg_echo('embed:upload'), + 'url' => '#', + 'url_class' => 'embed_section', + 'url_id' => 'upload', + 'selected' => ($active_section == 'upload') + ); +} + +echo elgg_view('navigation/tabs', array('tabs' => $tabs)); diff --git a/views/default/css/elements/navigation.php b/views/default/css/elements/navigation.php index d930d3a89..99de0867b 100644 --- a/views/default/css/elements/navigation.php +++ b/views/default/css/elements/navigation.php @@ -160,7 +160,7 @@ SITE MENU *************************************** */ .elgg-menu-site { - z-index: 7000; + z-index: 1; } .elgg-menu-site > li > a { @@ -208,7 +208,7 @@ position: relative; left: -1px; width: 100%; - z-index: 7000; + z-index: 1; min-width: 150px; border: 1px solid #999; border-top: 0; -- cgit v1.2.3 From d462b57edfeab81bd90a5d0321ea3d1fcbbddff3 Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 18 Jun 2011 21:30:01 -0400 Subject: rewrote the insert javascript as an intermediate step. I'm sure I completely broke ECML integration and uploading files. --- mod/embed/start.php | 18 ++++-- mod/embed/views/default/embed/css.php | 24 ++++---- mod/embed/views/default/embed/embed.php | 93 +++++++---------------------- mod/embed/views/default/js/embed/embed.php | 39 ++++++++++++ mod/embed/views/default/js/embed/inline.php | 26 ++++++++ 5 files changed, 112 insertions(+), 88 deletions(-) create mode 100644 mod/embed/views/default/js/embed/embed.php create mode 100644 mod/embed/views/default/js/embed/inline.php diff --git a/mod/embed/start.php b/mod/embed/start.php index ce6c6ec11..3b6e58ce1 100644 --- a/mod/embed/start.php +++ b/mod/embed/start.php @@ -13,17 +13,24 @@ elgg_register_event_handler('init', 'system', 'embed_init'); */ function embed_init() { elgg_extend_view('css/elgg', 'embed/css'); - elgg_extend_view('js/elgg', 'embed/js'); - elgg_extend_view('js/elgg', 'embed/lightbox_init'); elgg_register_plugin_hook_handler('register', 'menu:longtext', 'embed_longtext_menu'); // Page handler for the modal media embed elgg_register_page_handler('embed', 'embed_page_handler'); - elgg_register_js('elgg.embed', 'mod/embed/js/embed.js', 'footer'); + elgg_register_js('elgg.embed', 'js/embed/embed.js', 'footer'); } +/** + * Add the embed menu item to the long text menu + * + * @param string $hook + * @param string $type + * @param array $items + * @param array $vars + * @return array + */ function embed_longtext_menu($hook, $type, $items, $vars) { // yeah this is naughty. embed and ecml might want to merge. if (elgg_is_active_plugin('ecml')) { @@ -37,12 +44,13 @@ function embed_longtext_menu($hook, $type, $items, $vars) { 'href' => "embed?{$active_section}internal_id={$vars['id']}", 'text' => elgg_echo('media:insert'), 'rel' => 'lightbox', - 'link_class' => 'elgg-longtext-control elgg-lightbox', - 'priority' => 1, + 'link_class' => "elgg-longtext-control elgg-lightbox embed-control embed-control-{$vars['id']}", + 'priority' => 10, )); elgg_load_js('lightbox'); elgg_load_css('lightbox'); + elgg_load_js('elgg.embed'); return $items; } diff --git a/mod/embed/views/default/embed/css.php b/mod/embed/views/default/embed/css.php index c20116bf2..1ce994cfe 100644 --- a/mod/embed/views/default/embed/css.php +++ b/mod/embed/views/default/embed/css.php @@ -8,12 +8,15 @@ .embed-wrapper { width: 730px; min-height: 400px; - padding: 5px; + margin: 5px; } .embed-wrapper h2 { color: #333333; margin-bottom: 10px; } +.embed-wrapper .elgg-list-item { + cursor: pointer; +} /* *************************************** EMBED TABBED PAGE NAVIGATION @@ -22,6 +25,15 @@ color: #666; } +.embed-wrapper p { + color: #333; +} +.embed-wrapper .elgg-image-block:hover { + background-color: #eee; +} + /*************** Form ******************/ @@ -51,15 +63,7 @@ .embed-wrapper .elgg-input-file { background-color: white; } -.embed-wrapper p { - color:#333; -} -.embed-wrapper p.entity-title { - color:#666; -} -.embed-wrapper .elgg-image-block:hover { - background-color: #eee; -} + .embed-wrapper label { color:#333; } diff --git a/mod/embed/views/default/embed/embed.php b/mod/embed/views/default/embed/embed.php index f09d76a4b..9f0ac730f 100644 --- a/mod/embed/views/default/embed/embed.php +++ b/mod/embed/views/default/embed/embed.php @@ -29,8 +29,6 @@ if (!$sections) { $layout = isset($section_info['layout']) ? $section_info['layout'] : 'list'; $params = array( - //'type' => $type, - //'subtype' => $subtype, 'offset' => $offset, 'limit' => $limit, 'section' => $active_section, @@ -43,10 +41,13 @@ if (!$sections) { if ($section_content = elgg_view("embed/$active_section/content", $params)) { // handles its own pagination $content .= $section_content; - } elseif ($embed_info = elgg_trigger_plugin_hook('embed_get_items', $active_section, $params, array('items' => array(), 'count' => 0))) { - // check if we have an override for this section type. - $view = "embed/$active_section/item/$layout"; + } else { + // see if anyone has any items to display for the active section + $result = array('items' => array(), 'count' => 0); + $embed_info = elgg_trigger_plugin_hook('embed_get_items', $active_section, $params, $result); + // do we use default view or has someone defined "embed/$active_section/item/$layout" + $view = "embed/$active_section/item/$layout"; if (!elgg_view_exists($view)) { $view = "embed/item/$layout"; } @@ -54,37 +55,16 @@ if (!$sections) { if (!isset($embed_info['items']) || !is_array($embed_info['items']) || !count($embed_info['items'])) { $content .= elgg_echo('embed:no_section_content'); } else { - // pull out some common tests - // embed requires ECML, but until we have plugin deps working - // we need to explicitly check and use a fallback. - if ($ecml_enabled = elgg_is_active_plugin('ecml')){ - $ecml_valid_keyword = ecml_is_valid_keyword($active_section); - } else { - $ecml_valid_keyword = FALSE; - } - - $items_content = '
    '; - foreach ($embed_info['items'] as $item) { - $item_params = array( - 'section' => $active_section, - 'item' => $item, - 'ecml_enabled' => $ecml_enabled, - 'ecml_keyword' => ($ecml_valid_keyword) ? $active_section : 'entity', - 'icon_size' => elgg_extract('icon_size', $section_info, 'tiny'), - ); - - $items_content .= '
  • ' . elgg_view($view, $item_params) . '
  • '; - } - $items_content .= '
'; - - $params['content'] = $items_content; - $params['count'] = $embed_info['count']; - - $content .= elgg_view('navigation/pagination', $params); - $content .= elgg_view("embed/layouts/$layout", $params); + elgg_push_context('widgets'); + $content .= elgg_view_entity_list($embed_info['items'], array( + 'full_view' => false, + )); + elgg_pop_context(); + + $js = elgg_view('js/embed/inline', array( + 'items' => $embed_info['items'], + )); } - } else { - $content .= elgg_echo('embed:no_section_content'); } } else { $content .= elgg_echo('embed:invalid_section'); @@ -92,42 +72,9 @@ if (!$sections) { } echo '
' . $content . '
'; -?> - - - +if (isset($js)) { + echo ''; +} diff --git a/mod/embed/views/default/js/embed/embed.php b/mod/embed/views/default/js/embed/embed.php new file mode 100644 index 000000000..78ad125ef --- /dev/null +++ b/mod/embed/views/default/js/embed/embed.php @@ -0,0 +1,39 @@ +elgg.provide('elgg.embed'); + +elgg.embed.init = function() { + + // inserts the embed content into the textarea + $(".embed-wrapper .elgg-list-item").live('click', elgg.embed.insert); + + // caches the current textarea id + $(".embed-control").live('click', function() { + var classes = $(this).attr('class'); + var class = classes.split(/[, ]+/).pop(); + var textAreaId = class.substr(class.indexOf('embed-control-') + "embed-control-".length); + elgg.embed.textAreaId = textAreaId; + }); +} + +/** + * Inserts data attached to an embed list item in textarea + * + * @todo generalize lightbox closing and wysiwyg refreshing + * + * @param {Object} event + * @return void + */ +elgg.embed.insert = function(event) { + + var textAreaId = elgg.embed.textAreaId; + + var content = $(this).data('embed_code'); + $('#' + textAreaId).val($('#' + textAreaId).val() + ' ' + content + ' '); + + + + $.fancybox.close(); + + event.preventDefault(); +} + +elgg.register_hook_handler('init', 'system', elgg.embed.init); diff --git a/mod/embed/views/default/js/embed/inline.php b/mod/embed/views/default/js/embed/inline.php new file mode 100644 index 000000000..0672a68f8 --- /dev/null +++ b/mod/embed/views/default/js/embed/inline.php @@ -0,0 +1,26 @@ +name) ? $item->name : $item->title; + // don't let it be too long + $title = elgg_get_excerpt($title); + + $icon = "getIcon($icon_size)}\" />" . htmlspecialchars($title, ENT_QUOTES, 'UTF-8', false); + + $embed_code = elgg_view('output/url', array( + 'href' => $item->getURL(), + 'title' => $title, + 'text' => $icon, + 'encode_text' => false, + )); + $embed_code = json_encode($embed_code); + + echo "$('#elgg-object-{$item->getGUID()}').data('embed_code', $embed_code);"; +} \ No newline at end of file -- cgit v1.2.3 From aeb88b95d16ff1da7e2ce8fadde0eab1f4653d8b Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 18 Jun 2011 21:54:58 -0400 Subject: rewrote pagination for embed file listing --- mod/embed/views/default/embed/addcontentjs.php | 3 ++- mod/embed/views/default/embed/embed.php | 8 +++++++- mod/embed/views/default/js/embed/embed.php | 14 ++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/mod/embed/views/default/embed/addcontentjs.php b/mod/embed/views/default/embed/addcontentjs.php index 18d2927fd..ffed211f5 100644 --- a/mod/embed/views/default/embed/addcontentjs.php +++ b/mod/embed/views/default/embed/addcontentjs.php @@ -3,4 +3,5 @@ * Blank for compatibility. * @deprecated 1.8 */ -?> \ No newline at end of file + +elgg_deprecated_notice("The view 'embed/addcontentjs' has been deprecated.", 1.8); diff --git a/mod/embed/views/default/embed/embed.php b/mod/embed/views/default/embed/embed.php index 9f0ac730f..77ce03699 100644 --- a/mod/embed/views/default/embed/embed.php +++ b/mod/embed/views/default/embed/embed.php @@ -21,7 +21,7 @@ if (!$sections) { $content .= elgg_view('embed/tabs', $vars); $offset = max(0, get_input('offset', 0)); - $limit = get_input('limit', 10); + $limit = get_input('limit', 5); // build the items and layout. if ($active_section == 'upload' || array_key_exists($active_section, $sections)) { @@ -55,9 +55,15 @@ if (!$sections) { if (!isset($embed_info['items']) || !is_array($embed_info['items']) || !count($embed_info['items'])) { $content .= elgg_echo('embed:no_section_content'); } else { + elgg_push_context('widgets'); $content .= elgg_view_entity_list($embed_info['items'], array( 'full_view' => false, + 'count' => $embed_info['count'], + 'pagination' => true, + 'position' => 'before', + 'offset' => $offset, + 'limit' => $limit, )); elgg_pop_context(); diff --git a/mod/embed/views/default/js/embed/embed.php b/mod/embed/views/default/js/embed/embed.php index 78ad125ef..b709af05e 100644 --- a/mod/embed/views/default/js/embed/embed.php +++ b/mod/embed/views/default/js/embed/embed.php @@ -12,6 +12,9 @@ elgg.embed.init = function() { var textAreaId = class.substr(class.indexOf('embed-control-') + "embed-control-".length); elgg.embed.textAreaId = textAreaId; }); + + // special pagination helper for lightbox + $('.embed-wrapper .elgg-pagination a').live('click', elgg.embed.pagination); } /** @@ -36,4 +39,15 @@ elgg.embed.insert = function(event) { event.preventDefault(); } +/** + * Loads the next chunk of content within the lightbox + * + * @param {Object} event + * @return void + */ +elgg.embed.pagination = function(event) { + $('.embed-wrapper').parent().load($(this).attr('href')); + event.preventDefault(); +} + elgg.register_hook_handler('init', 'system', elgg.embed.init); -- cgit v1.2.3 From 780d9cb45f90158fdb843c41c8c1203ebdb06a3f Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 18 Jun 2011 22:06:40 -0400 Subject: added back tab switching --- mod/embed/start.php | 8 +------- mod/embed/views/default/embed/tabs.php | 4 ++-- mod/embed/views/default/js/embed/embed.php | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/mod/embed/start.php b/mod/embed/start.php index 3b6e58ce1..e6fc5551b 100644 --- a/mod/embed/start.php +++ b/mod/embed/start.php @@ -32,16 +32,10 @@ function embed_init() { * @return array */ function embed_longtext_menu($hook, $type, $items, $vars) { - // yeah this is naughty. embed and ecml might want to merge. - if (elgg_is_active_plugin('ecml')) { - $active_section = 'active_section=web_services&'; - } else { - $active_section = ''; - } $items[] = ElggMenuItem::factory(array( 'name' => 'embed', - 'href' => "embed?{$active_section}internal_id={$vars['id']}", + 'href' => "embed", 'text' => elgg_echo('media:insert'), 'rel' => 'lightbox', 'link_class' => "elgg-longtext-control elgg-lightbox embed-control embed-control-{$vars['id']}", diff --git a/mod/embed/views/default/embed/tabs.php b/mod/embed/views/default/embed/tabs.php index a148ece9f..3f377fee5 100644 --- a/mod/embed/views/default/embed/tabs.php +++ b/mod/embed/views/default/embed/tabs.php @@ -16,7 +16,7 @@ foreach ($sections as $section_id => $section_info) { $tab = array( 'title' => $section_info['name'], 'url' => '#', - 'url_class' => 'embed_section', + 'url_class' => 'embed-section', 'url_id' => $section_id, ); @@ -31,7 +31,7 @@ if ($upload_sections) { $tabs[] = array( 'title' => elgg_echo('embed:upload'), 'url' => '#', - 'url_class' => 'embed_section', + 'url_class' => 'embed-section', 'url_id' => 'upload', 'selected' => ($active_section == 'upload') ); diff --git a/mod/embed/views/default/js/embed/embed.php b/mod/embed/views/default/js/embed/embed.php index b709af05e..3b398af3a 100644 --- a/mod/embed/views/default/js/embed/embed.php +++ b/mod/embed/views/default/js/embed/embed.php @@ -15,6 +15,8 @@ elgg.embed.init = function() { // special pagination helper for lightbox $('.embed-wrapper .elgg-pagination a').live('click', elgg.embed.pagination); + + $('.embed-section').live('click', elgg.embed.loadTab); } /** @@ -50,4 +52,17 @@ elgg.embed.pagination = function(event) { event.preventDefault(); } +/** + * Loads an embed tab + * + * @param {Object} event + * @return void + */ +elgg.embed.loadTab = function(event) { + var section = $(this).attr('id'); + var url = elgg.config.wwwroot + 'embed/embed?active_section=' + section; + $('.embed-wrapper').parent().load(url); + event.preventDefault(); +} + elgg.register_hook_handler('init', 'system', elgg.embed.init); -- cgit v1.2.3 From 1f6b5cc6ac57ead98bbaa6c85323a69b6128629e Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 18 Jun 2011 22:14:42 -0400 Subject: fixed issue with embedding a file in an embedded file --- mod/embed/start.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mod/embed/start.php b/mod/embed/start.php index e6fc5551b..f6f1acc57 100644 --- a/mod/embed/start.php +++ b/mod/embed/start.php @@ -32,6 +32,10 @@ function embed_init() { * @return array */ function embed_longtext_menu($hook, $type, $items, $vars) { + + if (elgg_get_context() == 'embed') { + return $items; + } $items[] = ElggMenuItem::factory(array( 'name' => 'embed', -- cgit v1.2.3 From 1c0234e0caebff139f707505ae353392ef3b7372 Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Sun, 19 Jun 2011 08:37:04 -0400 Subject: Fixes #3581 checks that the owner of a friends widget is a user --- views/default/widgets/friends/content.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/views/default/widgets/friends/content.php b/views/default/widgets/friends/content.php index 4c5ef5b4a..ec842a252 100644 --- a/views/default/widgets/friends/content.php +++ b/views/default/widgets/friends/content.php @@ -13,12 +13,12 @@ $num = (int) $vars['entity']->num_display; // get the correct size $size = $vars['entity']->icon_size; -$html = $owner->listFriends('', $num, array( - 'size' => $size, - 'gallery' => true, -)); -if ($html) { - echo $html; -} else { - +if (elgg_instanceof($owner, 'user')) { + $html = $owner->listFriends('', $num, array( + 'size' => $size, + 'gallery' => true, + )); + if ($html) { + echo $html; + } } -- cgit v1.2.3 From d631164572a0d4da18a3c9d98638c884329fdd31 Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 19 Jun 2011 13:35:15 -0400 Subject: need a default container for files if form included from outside file plugin (like the embed plugin) --- mod/file/views/default/forms/file/upload.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mod/file/views/default/forms/file/upload.php b/mod/file/views/default/forms/file/upload.php index 001e66674..aadc449fd 100644 --- a/mod/file/views/default/forms/file/upload.php +++ b/mod/file/views/default/forms/file/upload.php @@ -11,6 +11,9 @@ $desc = elgg_extract('description', $vars, ''); $tags = elgg_extract('tags', $vars, ''); $access_id = elgg_extract('access_id', $vars, ACCESS_DEFAULT); $container_guid = elgg_extract('container_guid', $vars); +if (!$container_guid) { + $container_guid = elgg_get_logged_in_user_guid(); +} $guid = elgg_extract('guid', $vars, null); $ajax = elgg_extract('ajax', $vars, FALSE); -- cgit v1.2.3 From a49829a99d00f3bb5b77c6b7903a9a09c52c9ff1 Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 19 Jun 2011 13:47:01 -0400 Subject: need the system messages to be above the lightbox overlay at 1000 z-index --- views/default/css/elements/layout.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/default/css/elements/layout.php b/views/default/css/elements/layout.php index a5854f8c1..4d87b8824 100644 --- a/views/default/css/elements/layout.php +++ b/views/default/css/elements/layout.php @@ -53,7 +53,7 @@ top: 24px; right: 20px; max-width: 500px; - z-index: 1000; + z-index: 2000; } .elgg-system-messages li { margin-top: 10px; -- cgit v1.2.3 From 0afdb10ff1d079e623685a91c59bac4802aa0069 Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 19 Jun 2011 15:02:57 -0400 Subject: removed the special ajax/embed code from the file plugin --- mod/file/actions/file/upload.php | 53 ++++++---------------------- mod/file/views/default/file/embed_upload.php | 8 ----- mod/file/views/default/forms/file/upload.php | 6 ---- 3 files changed, 10 insertions(+), 57 deletions(-) delete mode 100644 mod/file/views/default/file/embed_upload.php diff --git a/mod/file/actions/file/upload.php b/mod/file/actions/file/upload.php index 5d5c28bee..b17fb6298 100644 --- a/mod/file/actions/file/upload.php +++ b/mod/file/actions/file/upload.php @@ -13,8 +13,6 @@ $container_guid = (int) get_input('container_guid', 0); $guid = (int) get_input('file_guid'); $tags = get_input("tags"); -$ajax = get_input('ajax', FALSE); - if ($container_guid == 0) { $container_guid = elgg_get_logged_in_user_guid(); } @@ -33,17 +31,8 @@ if ($new_file) { if (empty($_FILES['upload']['name'])) { $error = elgg_echo('file:nofile'); - - if ($ajax) { - echo json_encode(array( - 'status' => 'error', - 'message' => $error - )); - exit; - } else { - register_error($error); - forward(REFERER); - } + register_error($error); + forward(REFERER); } $file = new FilePluginFile(); @@ -158,44 +147,22 @@ elgg_clear_sticky_form('file'); // handle results differently for new files and file updates -// ajax is only for new files from embed right now. if ($new_file) { if ($guid) { $message = elgg_echo("file:saved"); - if ($ajax) { - echo json_encode(array( - 'status' => 'success', - 'message' => $message - )); - exit; - - } else { - system_message($message); - add_to_river('river/object/file/create', 'create', elgg_get_logged_in_user_guid(), $file->guid); - } + system_message($message); + add_to_river('river/object/file/create', 'create', elgg_get_logged_in_user_guid(), $file->guid); } else { // failed to save file object - nothing we can do about this $error = elgg_echo("file:uploadfailed"); - - if ($ajax) { - echo json_encode(array( - 'status' => 'error', - 'message' => $error - )); - exit; - - } else { - register_error($error); - } + register_error($error); } - if (!$ajax) { - $container = get_entity($container_guid); - if (elgg_instanceof($container, 'group')) { - forward("file/group/$container->guid/all"); - } else { - forward("file/owner/$container->username"); - } + $container = get_entity($container_guid); + if (elgg_instanceof($container, 'group')) { + forward("file/group/$container->guid/all"); + } else { + forward("file/owner/$container->username"); } } else { diff --git a/mod/file/views/default/file/embed_upload.php b/mod/file/views/default/file/embed_upload.php deleted file mode 100644 index e5076b052..000000000 --- a/mod/file/views/default/file/embed_upload.php +++ /dev/null @@ -1,8 +0,0 @@ - 'file_embed_upload'), array('ajax' => TRUE)); - - diff --git a/mod/file/views/default/forms/file/upload.php b/mod/file/views/default/forms/file/upload.php index aadc449fd..da764c3d8 100644 --- a/mod/file/views/default/forms/file/upload.php +++ b/mod/file/views/default/forms/file/upload.php @@ -15,7 +15,6 @@ if (!$container_guid) { $container_guid = elgg_get_logged_in_user_guid(); } $guid = elgg_extract('guid', $vars, null); -$ajax = elgg_extract('ajax', $vars, FALSE); if ($guid) { $file_label = elgg_echo("file:replace"); @@ -57,11 +56,6 @@ if ($categories) { echo elgg_view('input/hidden', array('name' => 'container_guid', 'value' => $container_guid)); -//@todo this should not be necessary in 1.8... -- ajax actions can be auto-detected -if ($ajax) { - echo elgg_view('input/hidden', array('name' => 'ajax', 'value' => 1)); -} - if ($guid) { echo elgg_view('input/hidden', array('name' => 'file_guid', 'value' => $guid)); } -- cgit v1.2.3 From 6e05a5d7486ede1c8408144b823b895c6282f270 Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 19 Jun 2011 15:03:30 -0400 Subject: added another way for an action to be detected as an Ajax action: set the request variable X-Requested-With = XMLHttpRequest. This is because files cannot be uploaded with XMLHttpRequest --- engine/lib/actions.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/engine/lib/actions.php b/engine/lib/actions.php index ff598916f..017653aa8 100644 --- a/engine/lib/actions.php +++ b/engine/lib/actions.php @@ -384,7 +384,8 @@ function actions_init() { */ function elgg_is_xhr() { return isset($_SERVER['HTTP_X_REQUESTED_WITH']) - && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'; + && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' || + get_input('X-Requested-With') === 'XMLHttpRequest'; } /** @@ -448,6 +449,9 @@ function ajax_forward_hook($hook, $type, $reason, $params) { header("Content-type: application/json"); echo json_encode($params); exit; + } else { + echo json_encode('not ajax'); + exit; } } -- cgit v1.2.3 From dfa2fc4e66463ea385dd90674585fb8e3514ba68 Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 19 Jun 2011 15:08:02 -0400 Subject: File uploads working now. It is hard coded to only work with file plugin. --- mod/embed/views/default/embed/upload/content.php | 19 +++++++----- mod/embed/views/default/js/embed/embed.php | 39 ++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 7 deletions(-) diff --git a/mod/embed/views/default/embed/upload/content.php b/mod/embed/views/default/embed/upload/content.php index b7bcc76a0..24fce8112 100644 --- a/mod/embed/views/default/embed/upload/content.php +++ b/mod/embed/views/default/embed/upload/content.php @@ -19,16 +19,21 @@ if ($upload_sections) { 'value' => $active_section )); - echo "
"; - echo "

" . elgg_echo('embed:upload_type') . "$input

"; - + // hack this in for now as we clean up this mess + $form_vars = array( + 'enctype' => 'multipart/form-data', + 'class' => 'elgg-form', + ); + $upload_content = elgg_view_form('file/upload', $form_vars); +/* if (!$upload_content = elgg_view($upload_sections[$active_section]['view'])) { $upload_content = elgg_echo('embed:no_upload_content'); } - - echo $upload_content . "
"; - - elgg_load_js('elgg.embed'); +*/ + echo "
" . elgg_echo('embed:upload_type') . "$input
"; + echo "
"; + echo $upload_content; + echo "
"; } else { echo elgg_echo('embed:no_upload_sections'); diff --git a/mod/embed/views/default/js/embed/embed.php b/mod/embed/views/default/js/embed/embed.php index 3b398af3a..39d400715 100644 --- a/mod/embed/views/default/js/embed/embed.php +++ b/mod/embed/views/default/js/embed/embed.php @@ -17,6 +17,8 @@ elgg.embed.init = function() { $('.embed-wrapper .elgg-pagination a').live('click', elgg.embed.pagination); $('.embed-section').live('click', elgg.embed.loadTab); + + $('.embed-upload .elgg-form').live('submit', elgg.embed.submit); } /** @@ -41,6 +43,43 @@ elgg.embed.insert = function(event) { event.preventDefault(); } +/** + * Submit an upload form through Ajax + * + * Requires the jQuery Form Plugin. Because files cannot be uploaded with + * XMLHttpRequest, the plugin uses an invisible iframe. This results in the + * the X-Requested-With header not being set. To work around this, we are + * sending the header as a POST variable and Elgg's code checks for it in + * elgg_is_xhr(). + * + * @param {Object} event + * @return bool + */ +elgg.embed.submit = function(event) { + + $(this).ajaxSubmit({ + dataType : 'json', + data : { 'X-Requested-With' : 'XMLHttpRequest'}, + success : function(response) { + if (response) { + if (response.system_messages) { + elgg.register_error(response.system_messages.error); + elgg.system_message(response.system_messages.success); + } + if (response.status >= 0) { + // @todo - really this should forward to what the registered defined + // For example, forward to images tab if an image was uploaded + var url = elgg.config.wwwroot + 'embed/embed?active_section=file'; + $('.embed-wrapper').parent().load(url); + } + } + } + }); + + // this is bubbling up the DOM and causing a submission so return false + return false; +} + /** * Loads the next chunk of content within the lightbox * -- cgit v1.2.3 From 48f628e2901b4ddda87399aada6d7272ee6172dc Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 19 Jun 2011 20:13:43 -0400 Subject: moved the download button for files to the action menu (which probably needs to be a menu) --- mod/file/pages/file/view.php | 8 +++++++- mod/file/views/default/object/file.php | 8 -------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/mod/file/pages/file/view.php b/mod/file/pages/file/view.php index daa2a400e..45e112d4d 100644 --- a/mod/file/pages/file/view.php +++ b/mod/file/pages/file/view.php @@ -25,11 +25,17 @@ elgg_push_breadcrumb($title); $content = elgg_view_entity($file, true); $content .= elgg_view_comments($file); +$download = elgg_view('output/url', array( + 'href' => "mod/file/download.php?file_guid=$file->guid", + 'text' => elgg_echo("file:download"), + 'class' => 'elgg-button elgg-button-action float-alt', +)); + $body = elgg_view_layout('content', array( 'content' => $content, 'title' => $title, 'filter' => '', - 'header' => '', + 'buttons' => $download, )); echo elgg_view_page($title, $body); diff --git a/mod/file/views/default/object/file.php b/mod/file/views/default/object/file.php index 93a21c8e6..c6ac2a429 100644 --- a/mod/file/views/default/object/file.php +++ b/mod/file/views/default/object/file.php @@ -67,12 +67,6 @@ if ($full && !elgg_in_context('gallery')) { $extra = elgg_view("file/specialcontent/$base_type/default", $vars); } - $download = elgg_view('output/url', array( - 'href' => "mod/file/download.php?file_guid=$file->guid", - 'text' => elgg_echo("file:download"), - 'class' => 'elgg-button elgg-button-action', - )); - $header = elgg_view_title($file->title); $params = array( @@ -87,12 +81,10 @@ if ($full && !elgg_in_context('gallery')) { $file_info = elgg_view_image_block($file_icon, $list_body); echo << $body $extra -

$download

HTML; -- cgit v1.2.3 From 79075fb578b1ba9834594c867530be43bc886101 Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 19 Jun 2011 20:18:03 -0400 Subject: we "upload" new files and "save" old ones --- mod/file/views/default/forms/file/upload.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mod/file/views/default/forms/file/upload.php b/mod/file/views/default/forms/file/upload.php index 001e66674..b8a7a1668 100644 --- a/mod/file/views/default/forms/file/upload.php +++ b/mod/file/views/default/forms/file/upload.php @@ -16,8 +16,10 @@ $ajax = elgg_extract('ajax', $vars, FALSE); if ($guid) { $file_label = elgg_echo("file:replace"); + $submit_label = elgg_echo('save'); } else { $file_label = elgg_echo("file:file"); + $submit_label = elgg_echo('upload'); } ?> @@ -63,7 +65,7 @@ if ($guid) { echo elgg_view('input/hidden', array('name' => 'file_guid', 'value' => $guid)); } -echo elgg_view('input/submit', array('value' => elgg_echo("save"))); +echo elgg_view('input/submit', array('value' => $submit_label)); ?> -- cgit v1.2.3 From eb62ef75732c950ca31868a8d1240be98c95134d Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 19 Jun 2011 20:25:19 -0400 Subject: fixed typo in edit profile fields instructions --- languages/en.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/languages/en.php b/languages/en.php index dcba9abc3..2e76ee2e7 100644 --- a/languages/en.php +++ b/languages/en.php @@ -383,7 +383,7 @@ $english = array( '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. \n\n 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. \n\n 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:explainchangefields' => "You can replace the existing profile fields with your own using the form below. \n\n 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. \n\n At any time you can revert back to the default profile set up, but you will lose any information already entered into custom fields on profile pages.", 'profile:editdefault:success' => 'Item successfully added to default profile', 'profile:editdefault:fail' => 'Default profile could not be saved', -- cgit v1.2.3 From 8edfc55bc7ee99955b3c82a59312df8c9d840bb7 Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 19 Jun 2011 22:42:55 -0400 Subject: fixed the wire's previous ajax - the link class for the menu was lost in the conversion from plain class to link_class --- mod/thewire/start.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/thewire/start.php b/mod/thewire/start.php index 0e6bd7794..2d66c475c 100644 --- a/mod/thewire/start.php +++ b/mod/thewire/start.php @@ -401,7 +401,7 @@ function thewire_setup_entity_menu_items($hook, $type, $value, $params) { 'text' => elgg_echo('thewire:previous'), 'href' => "thewire/previous/$entity->guid", 'priority' => 160, - 'class' => 'thewire-previous', + 'link_class' => 'thewire-previous', 'title' => elgg_echo('thewire:previous:help'), ); $value[] = ElggMenuItem::factory($options); -- cgit v1.2.3 From 02840336736e2b827c1c073246785bde260222f6 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Mon, 20 Jun 2011 15:24:53 +0200 Subject: Add setHref() method to ElggMenuItem class. Fixes #3486. --- engine/classes/ElggMenuItem.php | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/engine/classes/ElggMenuItem.php b/engine/classes/ElggMenuItem.php index 157ed9ceb..d76518be2 100644 --- a/engine/classes/ElggMenuItem.php +++ b/engine/classes/ElggMenuItem.php @@ -132,7 +132,7 @@ class ElggMenuItem { $item->setItemClass($options['item_class']); unset($options['item_class']); } - + foreach ($options as $key => $value) { $item->$key = $value; } @@ -163,6 +163,15 @@ class ElggMenuItem { return $this->text; } + /** + * Set the URL of the menu item + * + * @return void + */ + public function setHref($href) { + $this->href = $href; + } + /** * Get the URL of the menu item * @@ -465,7 +474,7 @@ class ElggMenuItem { * @params array $vars Options to pass to output/url if a link * * @return string - * + * * @todo View code in a model. How do we feel about that? */ public function getContent(array $vars = array()) { @@ -475,7 +484,7 @@ class ElggMenuItem { } $vars['text'] = $this->text; - + if ($this->href) { $vars['href'] = $this->href; } @@ -483,15 +492,15 @@ class ElggMenuItem { if ($this->linkClass) { $vars['class'] = $this->getLinkClass(); } - + if ($this->rel) { $vars['rel'] = $this->rel; } - + if ($this->title) { $vars['title'] = $this->title; } - + if ($this->is_action) { $vars['is_action'] = $this->is_action; } -- cgit v1.2.3 From c26b3f7cc82f935f0fb5c1e12e63fc2719886397 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Mon, 20 Jun 2011 22:03:50 +0200 Subject: Add setText() method to ElggMenuItem class. Fixes #3546. --- engine/classes/ElggMenuItem.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/engine/classes/ElggMenuItem.php b/engine/classes/ElggMenuItem.php index 157ed9ceb..caab2223d 100644 --- a/engine/classes/ElggMenuItem.php +++ b/engine/classes/ElggMenuItem.php @@ -153,6 +153,15 @@ class ElggMenuItem { public function getName() { return $this->name; } + + /** + * Set the display text of the menu + * + * @return string + */ + public function setText($text) { + $this->text = $text; + } /** * Get the display text of the menu -- cgit v1.2.3 From 5240a01d98d7c8b99c9d9c3f820de9c598ec5849 Mon Sep 17 00:00:00 2001 From: cash Date: Mon, 20 Jun 2011 21:09:10 -0400 Subject: removed debug code --- engine/lib/actions.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/engine/lib/actions.php b/engine/lib/actions.php index 017653aa8..4ccffd267 100644 --- a/engine/lib/actions.php +++ b/engine/lib/actions.php @@ -449,9 +449,6 @@ function ajax_forward_hook($hook, $type, $reason, $params) { header("Content-type: application/json"); echo json_encode($params); exit; - } else { - echo json_encode('not ajax'); - exit; } } -- cgit v1.2.3 From 7f1df879c1e083575baa890edd07f7f2f1469f67 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Tue, 21 Jun 2011 01:00:49 -0700 Subject: Fix dumb typos from last commit. --- engine/classes/ElggMenuItem.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/engine/classes/ElggMenuItem.php b/engine/classes/ElggMenuItem.php index caab2223d..10146899e 100644 --- a/engine/classes/ElggMenuItem.php +++ b/engine/classes/ElggMenuItem.php @@ -155,16 +155,16 @@ class ElggMenuItem { } /** - * Set the display text of the menu + * Set the display text of the menu item * - * @return string + * @return void */ public function setText($text) { $this->text = $text; } /** - * Get the display text of the menu + * Get the display text of the menu item * * @return string */ -- cgit v1.2.3 From a76b2261206e097f091bf75ff679f2f33c55232b Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Tue, 21 Jun 2011 11:36:05 -0700 Subject: Add param description to PHPDoc comments of setText() function. --- engine/classes/ElggMenuItem.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/engine/classes/ElggMenuItem.php b/engine/classes/ElggMenuItem.php index 10146899e..47d1e8374 100644 --- a/engine/classes/ElggMenuItem.php +++ b/engine/classes/ElggMenuItem.php @@ -157,6 +157,8 @@ class ElggMenuItem { /** * Set the display text of the menu item * + * @param string $text The display text + * * @return void */ public function setText($text) { -- cgit v1.2.3 From 49853b53578ea3254543020e553b29a7a33ab0af Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Wed, 22 Jun 2011 07:44:10 -0400 Subject: Fixes #3598 sanitizing the $name variable --- mod/members/pages/members/search.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mod/members/pages/members/search.php b/mod/members/pages/members/search.php index 39b54990e..94127768a 100644 --- a/mod/members/pages/members/search.php +++ b/mod/members/pages/members/search.php @@ -19,16 +19,16 @@ if ($vars['search_type'] == 'tag') { $users = $results['entities']; $content = elgg_view_entity_list($users, $count, $offset, $limit, false, false, true); } else { - $name = get_input('name'); + $name = sanitize_string(get_input('name')); $title = elgg_echo('members:title:searchname', array($name)); - global $CONFIG; + $db_prefix = elgg_get_config('dbprefix'); $params = array( 'type' => 'user', 'full_view' => false, - 'joins' => array("join {$CONFIG->dbprefix}users_entity u on e.guid=u.guid"), - 'wheres' => array("(u.name like \"%{$name}%\" or u.username like \"%{$name}%\")"), + 'joins' => array("JOIN {$db_prefix}users_entity u ON e.guid=u.guid"), + 'wheres' => array("(u.name LIKE \"%{$name}%\" OR u.username LIKE \"%{$name}%\")"), ); $content .= elgg_list_entities($params); } -- cgit v1.2.3 From 58e020e604e7e4f897a9025e73d9afb1ddba62ff Mon Sep 17 00:00:00 2001 From: cash Date: Wed, 22 Jun 2011 20:28:53 -0400 Subject: added @username in the reply text for a wire post --- mod/thewire/languages/en.php | 2 +- mod/thewire/views/default/thewire/reply.php | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mod/thewire/languages/en.php b/mod/thewire/languages/en.php index 1b9d71c56..9b2b480ae 100644 --- a/mod/thewire/languages/en.php +++ b/mod/thewire/languages/en.php @@ -13,7 +13,7 @@ $english = array( 'thewire:user' => "%s's wire posts", 'thewire:friends' => "Friends' wire posts", 'thewire:reply' => "Reply", - 'thewire:replying' => "Replying to %s who wrote", + 'thewire:replying' => "Replying to %s (@%s) who wrote", 'thewire:thread' => "Thread", 'thewire:charleft' => "characters remaining", 'thewire:tags' => "Wire posts tagged with '%s'", diff --git a/mod/thewire/views/default/thewire/reply.php b/mod/thewire/views/default/thewire/reply.php index 3794e1454..341b691b1 100644 --- a/mod/thewire/views/default/thewire/reply.php +++ b/mod/thewire/views/default/thewire/reply.php @@ -5,7 +5,10 @@ $post = $vars['post']; $poster = $post->getOwnerEntity(); - +$poster_details = array( + htmlspecialchars($poster->name, ENT_QUOTES, 'UTF-8'), + htmlspecialchars($poster->username, ENT_QUOTES, 'UTF-8'), +); ?> -name)); ?>: +: description; \ No newline at end of file -- cgit v1.2.3 From 17d053eb735d7e3830704db644301db2d8c91d1c Mon Sep 17 00:00:00 2001 From: cash Date: Wed, 22 Jun 2011 22:05:28 -0400 Subject: backward compatibility of the admin page shell was broken when we reorganized the page view directory --- views/default/page/default.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/default/page/default.php b/views/default/page/default.php index 9effce1ec..0e27cda52 100644 --- a/views/default/page/default.php +++ b/views/default/page/default.php @@ -17,7 +17,7 @@ if (elgg_get_context() == 'admin') { elgg_deprecated_notice("admin plugins should route through 'admin'.", 1.8); elgg_admin_add_plugin_settings_menu(); elgg_unregister_css('elgg'); - echo elgg_view('page/shells/admin', $vars); + echo elgg_view('page/admin', $vars); return true; } -- cgit v1.2.3 From cc44695b9cff1caeb54934cb9d695750e208d44b Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Thu, 23 Jun 2011 06:37:24 -0400 Subject: Fixes #3603 fixes display of @username in twitter widget - thanks to ManUtopiK --- mod/twitter/views/default/twitter/css.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/twitter/views/default/twitter/css.php b/mod/twitter/views/default/twitter/css.php index cb58e8fb1..eb0cda98a 100644 --- a/mod/twitter/views/default/twitter/css.php +++ b/mod/twitter/views/default/twitter/css.php @@ -54,7 +54,7 @@ p.twitter_username .input-text { padding:2px; margin:0 0 5px 0; } -#twitter_widget li a { +#twitter_widget li > a { display:block; margin:0 0 0 4px; } -- cgit v1.2.3 From e4fca34f791e3cfa9a872d7cb6faa197d2019e03 Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Thu, 23 Jun 2011 06:59:27 -0400 Subject: Fixes #3471 moved helpers to end of css/elgg --- views/default/css/elgg.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/views/default/css/elgg.php b/views/default/css/elgg.php index 675af860d..4960e6ade 100644 --- a/views/default/css/elgg.php +++ b/views/default/css/elgg.php @@ -26,13 +26,12 @@ if ($old_css_view != elgg_get_config('viewpath')) { Base CSS * CSS reset * core - * helpers + * helpers (moved to end to have a higher priority) * grid *******************************************************************************/ echo elgg_view('css/elements/reset', $vars); echo elgg_view('css/elements/core', $vars); -echo elgg_view('css/elements/helpers', $vars); echo elgg_view('css/elements/grid', $vars); @@ -61,5 +60,9 @@ echo elgg_view('css/elements/layout', $vars); echo elgg_view('css/elements/misc', $vars); +// included last to have higher priority +echo elgg_view('css/elements/helpers', $vars); + + // in case plugins are still extending the old 'css' view, display it echo elgg_view('css', $vars); -- cgit v1.2.3 From 5ef15a8b5d5016b8521bf538cc1487f0987b390e Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Thu, 23 Jun 2011 07:01:54 -0400 Subject: Fixes #3599 spacing of dashboard blurb fixed --- mod/dashboard/start.php | 2 ++ mod/dashboard/views/default/dashboard/blurb.php | 2 +- mod/dashboard/views/default/dashboard/css.php | 10 ++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 mod/dashboard/views/default/dashboard/css.php diff --git a/mod/dashboard/start.php b/mod/dashboard/start.php index 4fa048b3d..9de1ee4af 100644 --- a/mod/dashboard/start.php +++ b/mod/dashboard/start.php @@ -8,6 +8,8 @@ elgg_register_event_handler('init', 'system', 'dashboard_init'); function dashboard_init() { elgg_register_page_handler('dashboard', 'dashboard_page_handler'); + elgg_extend_view('css/elgg', 'dashboard/css'); + elgg_register_menu_item('topbar', array( 'name' => 'dashboard', 'href' => 'dashboard', diff --git a/mod/dashboard/views/default/dashboard/blurb.php b/mod/dashboard/views/default/dashboard/blurb.php index 202be1dc5..9293e513a 100644 --- a/mod/dashboard/views/default/dashboard/blurb.php +++ b/mod/dashboard/views/default/dashboard/blurb.php @@ -9,7 +9,7 @@ 'dashboard-info', - 'class' => 'elgg-inner elgg-border-plain pam mhs mbl mtn', + 'class' => 'elgg-inner pam mhs mtn', 'value' => elgg_echo("dashboard:nowidgets"), )); diff --git a/mod/dashboard/views/default/dashboard/css.php b/mod/dashboard/views/default/dashboard/css.php new file mode 100644 index 000000000..f49293293 --- /dev/null +++ b/mod/dashboard/views/default/dashboard/css.php @@ -0,0 +1,10 @@ + + +#dashboard-info { + border: 2px solid #dedede; + margin-bottom: 15px; +} -- cgit v1.2.3 From 1dd0a7fe4b14fff8f2643b5d72fc44dfcdfe0c1f Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Thu, 23 Jun 2011 07:42:49 -0400 Subject: Refs #1867 let group owner know what user they just removed --- mod/groups/actions/groups/membership/remove.php | 4 ++-- mod/groups/languages/en.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mod/groups/actions/groups/membership/remove.php b/mod/groups/actions/groups/membership/remove.php index 6f0698371..650d35286 100644 --- a/mod/groups/actions/groups/membership/remove.php +++ b/mod/groups/actions/groups/membership/remove.php @@ -14,10 +14,10 @@ $group = get_entity($group_guid); elgg_set_page_owner_guid($group->guid); if (($user instanceof ElggUser) && ($group instanceof ElggGroup) && $group->canEdit()) { - // Don't allow removeing group owner + // Don't allow removing group owner if ($group->getOwnerGUID() != $user->getGUID()) { if ($group->leave($user)) { - system_message(elgg_echo("groups:removed")); + system_message(elgg_echo("groups:removed", array($user->name))); } else { register_error(elgg_echo("groups:cantremove")); } diff --git a/mod/groups/languages/en.php b/mod/groups/languages/en.php index a4d9863ca..f2895db88 100644 --- a/mod/groups/languages/en.php +++ b/mod/groups/languages/en.php @@ -168,7 +168,7 @@ $english = array( 'groups:cantleave' => 'Could not leave group', 'groups:removeuser' => 'Remove from group', 'groups:cantremove' => 'Cannot remove user from group', - 'groups:removed' => 'User successfully removed from group', + 'groups:removed' => 'Successfully removed %s from group', 'groups:addedtogroup' => 'Successfully added the user to the group', 'groups:joinrequestnotmade' => 'Could not request to join group', 'groups:joinrequestmade' => 'Requested to join group', -- cgit v1.2.3 From d583d9c1380aab7e9e4df9d2466c3db41fb3cbee Mon Sep 17 00:00:00 2001 From: cash Date: Thu, 23 Jun 2011 20:51:46 -0400 Subject: added a css class so that we can limit the width of text instruction areas in admin area --- views/default/css/admin.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/views/default/css/admin.php b/views/default/css/admin.php index a4d413781..a56c7b214 100644 --- a/views/default/css/admin.php +++ b/views/default/css/admin.php @@ -1102,6 +1102,10 @@ a.elgg-widget-collapsed:before { ADMIN MISC *************************************** */ +.elgg-instructs { + max-width: 600px; +} + .manifest_file { background-color:#eee; -- cgit v1.2.3 From 32d1925d66bc65478d547ca3ed0e8d3e11bfcf2e Mon Sep 17 00:00:00 2001 From: cash Date: Thu, 23 Jun 2011 20:52:42 -0400 Subject: added instructions back to twitter api plugin settings --- mod/twitter_api/views/default/settings/twitter_api/edit.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mod/twitter_api/views/default/settings/twitter_api/edit.php b/mod/twitter_api/views/default/settings/twitter_api/edit.php index 9deac3989..467637147 100644 --- a/mod/twitter_api/views/default/settings/twitter_api/edit.php +++ b/mod/twitter_api/views/default/settings/twitter_api/edit.php @@ -1,7 +1,10 @@

$instructions

$insert_view
$consumer_key_string $consumer_key_view
$consumer_secret_string $consumer_secret_view
-- cgit v1.2.3 From 42e02f03c306717002aac0d36f0e2b48bf369fed Mon Sep 17 00:00:00 2001 From: cash Date: Thu, 23 Jun 2011 21:15:37 -0400 Subject: cleaned up the twitter api plugin settings so instructions are correct. Need to verify that login works. --- mod/twitter_api/languages/en.php | 2 +- mod/twitter_api/start.php | 3 ++- mod/twitter_api/views/default/settings/twitter_api/edit.php | 11 ++++------- mod/twitter_api/views/default/twitter_api/css.php | 7 ++++--- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/mod/twitter_api/languages/en.php b/mod/twitter_api/languages/en.php index 940a49d9b..3a422b043 100644 --- a/mod/twitter_api/languages/en.php +++ b/mod/twitter_api/languages/en.php @@ -11,7 +11,7 @@ $english = array( 'twitter_api:consumer_key' => 'Consumer Key', 'twitter_api:consumer_secret' => 'Consumer Secret', - 'twitter_api:settings:instructions' => 'You must obtain a consumer key and secret from Twitter. Most of the fields are self explanatory, the one piece of data you will need is the callback url which takes the form http://[yoursite]/action/twitterlogin/return - [yoursite] is the url of your Elgg network.', + 'twitter_api:settings:instructions' => 'You must obtain a consumer key and secret from Twitter. Fill out the new app application. Select "Browser" as the application type and "Read & Write" for the access type. The callback url is %stwitter_api/authorize', 'twitter_api:usersettings:description' => "Link your %s account with Twitter.", 'twitter_api:usersettings:request' => "You must first authorize %s to access your Twitter account.", diff --git a/mod/twitter_api/start.php b/mod/twitter_api/start.php index 8a49db719..ce0054eed 100644 --- a/mod/twitter_api/start.php +++ b/mod/twitter_api/start.php @@ -19,7 +19,8 @@ function twitter_api_init() { // extend site views elgg_extend_view('metatags', 'twitter_api/metatags'); - elgg_extend_view('css', 'twitter_api/css'); + elgg_extend_view('css/elgg', 'twitter_api/css'); + elgg_extend_view('css/admin', 'twitter_api/css'); // sign on with twitter if (twitter_api_allow_sign_on_with_twitter()) { diff --git a/mod/twitter_api/views/default/settings/twitter_api/edit.php b/mod/twitter_api/views/default/settings/twitter_api/edit.php index 467637147..4e52a5c9d 100644 --- a/mod/twitter_api/views/default/settings/twitter_api/edit.php +++ b/mod/twitter_api/views/default/settings/twitter_api/edit.php @@ -3,9 +3,7 @@ * Twitter API plugin settings */ -$instructions = elgg_echo('twitter_api:settings:instructions'); - -$insert_view = elgg_view('twittersettings/extend'); +$instructions = elgg_echo('twitter_api:settings:instructions', array(elgg_get_site_url())); $consumer_key_string = elgg_echo('twitter_api:consumer_key'); $consumer_key_view = elgg_view('input/text', array( @@ -18,7 +16,7 @@ $consumer_secret_string = elgg_echo('twitter_api:consumer_secret'); $consumer_secret_view = elgg_view('input/text', array( 'name' => 'params[consumer_secret]', 'value' => $vars['entity']->consumer_secret, - 'class' => 'text_input', + 'class' => 'text_input twitter-secret', )); $sign_on_with_twitter_string = elgg_echo('twitter_api:login'); @@ -43,9 +41,8 @@ $new_users_with_twitter_view = elgg_view('input/dropdown', array( $settings = <<<__HTML

$instructions

-
$insert_view
-
$consumer_key_string $consumer_key_view
-
$consumer_secret_string $consumer_secret_view
+

$consumer_key_view
+

$consumer_secret_view
$sign_on_with_twitter_string $sign_on_with_twitter_view
$new_users_with_twitter $new_users_with_twitter_view
__HTML; diff --git a/mod/twitter_api/views/default/twitter_api/css.php b/mod/twitter_api/views/default/twitter_api/css.php index 140ce6a52..04bbed668 100644 --- a/mod/twitter_api/views/default/twitter_api/css.php +++ b/mod/twitter_api/views/default/twitter_api/css.php @@ -4,9 +4,10 @@ */ ?> -#twitter_api_site_settings .text_input { - width: 350px; -} #login_with_twitter { padding: 10px 0 0 0; } + +.twitter-secret { + width: 400px; +} \ No newline at end of file -- cgit v1.2.3 From 5e02fd697fd15ae857aa0c2969fd9ea92043a55a Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Fri, 24 Jun 2011 07:21:33 -0400 Subject: fixed the previous commit for the conflict --- languages/en.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/languages/en.php b/languages/en.php index 7649bcbc3..e7806be27 100644 --- a/languages/en.php +++ b/languages/en.php @@ -403,8 +403,7 @@ $english = array( * River */ 'river' => "River", - 'river:relationship:friend' => 'is now friends with', - 'friends:river:add' => "is now a friend with %s", + 'river:friend:user:default' => "%s is now a friend with %s", 'profile:river:iconupdate' => 'updated their profile icon', 'river:noaccess' => 'You do not have permission to view this item.', 'river:posted:generic' => '%s posted', -- cgit v1.2.3 From fb0a9d896b9a0bd1193c63badad6a1990afc0109 Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Fri, 24 Jun 2011 07:52:27 -0400 Subject: fixed group forum discussion inline replies for activity page --- mod/groups/views/default/river/object/groupforumtopic/create.php | 9 +++++++++ views/default/river/elements/body.php | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/mod/groups/views/default/river/object/groupforumtopic/create.php b/mod/groups/views/default/river/object/groupforumtopic/create.php index f92e54a5c..80e7b09aa 100644 --- a/mod/groups/views/default/river/object/groupforumtopic/create.php +++ b/mod/groups/views/default/river/object/groupforumtopic/create.php @@ -7,7 +7,16 @@ $object = $vars['item']->getObjectEntity(); $excerpt = strip_tags($object->description); $excerpt = elgg_get_excerpt($excerpt); +$responses = ''; +if (elgg_is_logged_in() && $object->canAnnotate(0, 'group_topic_post')) { + // inline comment form + $form_vars = array('id' => "groups-reply-{$object->getGUID()}", 'class' => 'hidden'); + $body_vars = array('entity' => $object, 'inline' => true); + $responses = elgg_view_form('discussion/reply/save', $form_vars, $body_vars); +} + echo elgg_view('river/item', array( 'item' => $vars['item'], 'message' => $excerpt, + 'responses' => $responses, )); diff --git a/views/default/river/elements/body.php b/views/default/river/elements/body.php index 080c04644..7eebb0c99 100644 --- a/views/default/river/elements/body.php +++ b/views/default/river/elements/body.php @@ -32,7 +32,13 @@ if ($attachments !== false) { $attachments = "
$attachments
"; } -$responses = elgg_view('river/elements/responses', $vars); +$responses = elgg_extract('responses', $vars, false); +if ($responses === false) { + $responses = elgg_view('river/elements/responses', $vars); +} +if ($responses) { + $responses = "
$responses
"; +} $group_string = ''; $object = $item->getObjectEntity(); -- cgit v1.2.3 From e29500440b1848f192bc56a1bad89eac69408e7b Mon Sep 17 00:00:00 2001 From: benbro Date: Mon, 20 Jun 2011 08:43:09 +0300 Subject: added find_active_users hook --- engine/lib/statistics.php | 2 +- engine/lib/users.php | 34 ++++++++++++++++++++-------------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/engine/lib/statistics.php b/engine/lib/statistics.php index cd2b7a6a1..1232c6128 100644 --- a/engine/lib/statistics.php +++ b/engine/lib/statistics.php @@ -96,7 +96,7 @@ function get_number_users($show_deactivated = false) { */ function get_online_users() { $offset = get_input('offset', 0); - $count = count(find_active_users(600, 9999)); + $count = find_active_users(600, 10, $offset, true); $objects = find_active_users(600, 10, $offset); if ($objects) { diff --git a/engine/lib/users.php b/engine/lib/users.php index 59bfa1259..e7e1a57f0 100644 --- a/engine/lib/users.php +++ b/engine/lib/users.php @@ -625,31 +625,37 @@ function get_user_by_email($email) { /** * A function that returns a maximum of $limit users who have done something within the last - * $seconds seconds. + * $seconds seconds or the total count of active users. * * @param int $seconds Number of seconds (default 600 = 10min) * @param int $limit Limit, default 10. - * @param int $offset Offset, defualt 0. + * @param int $offset Offset, default 0. + * @param bool $count Count, default false. * * @return mixed */ -function find_active_users($seconds = 600, $limit = 10, $offset = 0) { - global $CONFIG; - +function find_active_users($seconds = 600, $limit = 10, $offset = 0, $count = false) { $seconds = (int)$seconds; $limit = (int)$limit; $offset = (int)$offset; + $params = array('seconds' => $seconds, 'limit' => $limit, 'offset' => $offset, 'count' => $count); + $data = elgg_trigger_plugin_hook('find_active_users', 'system', $params, NULL); + if (!$data) { + global $CONFIG; - $time = time() - $seconds; - - $access = get_access_sql_suffix("e"); - - $query = "SELECT distinct e.* from {$CONFIG->dbprefix}entities e - join {$CONFIG->dbprefix}users_entity u on e.guid = u.guid - where u.last_action >= {$time} and $access - order by u.last_action desc limit {$offset}, {$limit}"; + $time = time() - $seconds; - return get_data($query, "entity_row_to_elggstar"); + $data = elgg_get_entities(array( + 'type' => 'user', + 'limit' => $limit, + 'offset' => $offset, + 'count' => $count, + 'joins' => array("join {$CONFIG->dbprefix}users_entity u on e.guid = u.guid"), + 'wheres' => array("u.last_action >= {$time}"), + 'order_by' => "u.last_action desc" + )); + } + return $data; } /** -- cgit v1.2.3 From 870063759d4f820a841da2a1cf5953d71e7f9f42 Mon Sep 17 00:00:00 2001 From: cash Date: Fri, 24 Jun 2011 14:55:05 -0400 Subject: twitter @anywhere was causing problems - pages were not loading and js errors --- mod/twitter_api/start.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/twitter_api/start.php b/mod/twitter_api/start.php index ce0054eed..bdd01bca5 100644 --- a/mod/twitter_api/start.php +++ b/mod/twitter_api/start.php @@ -18,7 +18,7 @@ function twitter_api_init() { elgg_load_library('twitter_api'); // extend site views - elgg_extend_view('metatags', 'twitter_api/metatags'); + //elgg_extend_view('metatags', 'twitter_api/metatags'); elgg_extend_view('css/elgg', 'twitter_api/css'); elgg_extend_view('css/admin', 'twitter_api/css'); -- cgit v1.2.3 From f44e7b8a6bad84423cf0e3dae700675c037d2d51 Mon Sep 17 00:00:00 2001 From: cash Date: Fri, 24 Jun 2011 14:55:59 -0400 Subject: fixes the authorization to post so that it does not include login --- mod/twitter_api/lib/twitter_api.php | 7 +++---- mod/twitter_api/views/default/usersettings/twitter_api/edit.php | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/mod/twitter_api/lib/twitter_api.php b/mod/twitter_api/lib/twitter_api.php index 0621c2b13..145b37114 100644 --- a/mod/twitter_api/lib/twitter_api.php +++ b/mod/twitter_api/lib/twitter_api.php @@ -243,7 +243,6 @@ function twitter_api_authorize() { ), 'limit' => 0 ); - $users = elgg_get_entities_from_plugin_user_settings($options); if ($users) { @@ -281,11 +280,11 @@ function twitter_api_revoke() { } /** - * Returns the url to authorize a user. + * Gets the url to authorize a user. * * @param string $callback The callback URL */ -function twitter_api_get_authorize_url($callback = NULL) { +function twitter_api_get_authorize_url($callback = NULL, $login = true) { global $SESSION; elgg_load_library('twitter_oauth'); @@ -302,7 +301,7 @@ function twitter_api_get_authorize_url($callback = NULL) { 'oauth_token_secret' => $token['oauth_token_secret'], ); - return $twitter->getAuthorizeURL($token['oauth_token']); + return $twitter->getAuthorizeURL($token['oauth_token'], $login); } /** diff --git a/mod/twitter_api/views/default/usersettings/twitter_api/edit.php b/mod/twitter_api/views/default/usersettings/twitter_api/edit.php index 77dd5cc5d..0898087ca 100644 --- a/mod/twitter_api/views/default/usersettings/twitter_api/edit.php +++ b/mod/twitter_api/views/default/usersettings/twitter_api/edit.php @@ -1,6 +1,6 @@ ' . elgg_echo('twitter_api:usersettings:description', array($site_nam if (!$access_key || !$access_secret) { // send user off to validate account - $request_link = twitter_api_get_authorize_url(); + $request_link = twitter_api_get_authorize_url(null, false); echo '
' . elgg_echo('twitter_api:usersettings:request', array($request_link, $site_name)) . '
'; } else { $url = elgg_get_site_url() . "twitter_api/revoke"; -- cgit v1.2.3 From 5dccec8307cc0a1a4fde99209de42dd6ff13fd25 Mon Sep 17 00:00:00 2001 From: cash Date: Fri, 24 Jun 2011 15:43:07 -0400 Subject: fixed the post to twitter capability - was not loading the twitter oauth class --- mod/twitter_api/lib/twitter_api.php | 5 ---- mod/twitter_api/start.php | 56 +++++++++++++++++-------------------- 2 files changed, 25 insertions(+), 36 deletions(-) diff --git a/mod/twitter_api/lib/twitter_api.php b/mod/twitter_api/lib/twitter_api.php index 145b37114..18855862e 100644 --- a/mod/twitter_api/lib/twitter_api.php +++ b/mod/twitter_api/lib/twitter_api.php @@ -81,9 +81,6 @@ function twitter_api_login() { forward(); } else { - // need Twitter account credentials - elgg_load_library('twitter_oauth'); - $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api'); $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api'); $api = new TwitterOAuth($consumer_key, $consumer_secret, $token['oauth_token'], $token['oauth_token_secret']); @@ -286,7 +283,6 @@ function twitter_api_revoke() { */ function twitter_api_get_authorize_url($callback = NULL, $login = true) { global $SESSION; - elgg_load_library('twitter_oauth'); $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api'); $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api'); @@ -311,7 +307,6 @@ function twitter_api_get_authorize_url($callback = NULL, $login = true) { */ function twitter_api_get_access_token($oauth_verifier = FALSE) { global $SESSION; - elgg_load_library('twitter_oauth'); $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api'); $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api'); diff --git a/mod/twitter_api/start.php b/mod/twitter_api/start.php index bdd01bca5..0c71104b5 100644 --- a/mod/twitter_api/start.php +++ b/mod/twitter_api/start.php @@ -12,9 +12,8 @@ function twitter_api_init() { // require libraries $base = elgg_get_plugins_path() . 'twitter_api'; - elgg_register_library('twitter_oauth', "$base/vendors/twitteroauth/twitterOAuth.php"); + elgg_register_class('TwitterOAuth', "$base/vendors/twitteroauth/twitterOAuth.php"); elgg_register_library('twitter_api', "$base/lib/twitter_api.php"); - elgg_load_library('twitter_api'); // extend site views @@ -35,14 +34,14 @@ function twitter_api_init() { // register Walled Garden public pages elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'twitter_api_public_pages'); - // allow plugin authors to hook into this service - elgg_register_plugin_hook_handler('tweet', 'twitter_service', 'twitter_api_tweet'); + // push status messages to twitter + elgg_register_plugin_hook_handler('status', 'user', 'twitter_api_tweet'); } /** * Handles old pg/twitterservice/ handler * - * @param array$page + * @param array $page */ function twitter_api_pagehandler_deprecated($page) { $url = elgg_get_site_url() . 'pg/twitter_api/authorize'; @@ -56,7 +55,7 @@ function twitter_api_pagehandler_deprecated($page) { /** * Serves pages for twitter. * - * @param array$page + * @param array $page */ function twitter_api_pagehandler($page) { if (!isset($page[0])) { @@ -83,53 +82,48 @@ function twitter_api_pagehandler($page) { } /** - * Push a tweet to twitter. + * Push a status update to twitter. * - * @param unknown_type $hook - * @param unknown_type $entity_type - * @param unknown_type $returnvalue - * @param unknown_type $params + * @param string $hook + * @param string $type + * @param null $returnvalue + * @param array $params */ -function twitter_api_tweet($hook, $entity_type, $returnvalue, $params) { - static $plugins; - if (!$plugins) { - $plugins = elgg_trigger_plugin_hook('plugin_list', 'twitter_service', NULL, array()); - } +function twitter_api_tweet($hook, $type, $returnvalue, $params) { - // ensure valid plugin - if (!in_array($params['plugin'], $plugins)) { - return NULL; + if (!elgg_instanceof($params['user'])) { + return; } + // @todo - allow admin to select origins? + // check admin settings $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api'); $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api'); if (!($consumer_key && $consumer_secret)) { - return NULL; + return; } // check user settings - $user_id = elgg_get_logged_in_user_guid(); + $user_id = $params['user']->getGUID(); $access_key = elgg_get_plugin_user_setting('access_key', $user_id, 'twitter_api'); $access_secret = elgg_get_plugin_user_setting('access_secret', $user_id, 'twitter_api'); if (!($access_key && $access_secret)) { - return NULL; + return; } // send tweet $api = new TwitterOAuth($consumer_key, $consumer_secret, $access_key, $access_secret); $response = $api->post('statuses/update', array('status' => $params['message'])); - - return TRUE; } /** - * Return tweets for a user. + * Get tweets for a user. * - * @param int $user_id The Elgg user GUID + * @param int $user_id The Elgg user GUID * @param array $options */ -function twitter_api_fetch_tweets($user_guid, $options=array()) { +function twitter_api_fetch_tweets($user_guid, $options = array()) { // check admin settings $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api'); $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api'); @@ -152,10 +146,10 @@ function twitter_api_fetch_tweets($user_guid, $options=array()) { /** * Register as public pages for walled garden. * - * @param unknown_type $hook - * @param unknown_type $type - * @param unknown_type $return_value - * @param unknown_type $params + * @param string $hook + * @param string $type + * @param array $return_value + * @param array $params */ function twitter_api_public_pages($hook, $type, $return_value, $params) { $return_value[] = 'twitter_api/forward'; -- cgit v1.2.3 From 6eadb6791d33236aa30eb2a130dda0b2e7bd64e1 Mon Sep 17 00:00:00 2001 From: cash Date: Fri, 24 Jun 2011 15:44:09 -0400 Subject: Fixes #3204 adds hook trigger so that wire sends out status updates --- mod/thewire/start.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mod/thewire/start.php b/mod/thewire/start.php index 2d66c475c..9d3993b6f 100644 --- a/mod/thewire/start.php +++ b/mod/thewire/start.php @@ -278,6 +278,16 @@ function thewire_save_post($text, $userid, $access_id, $parent_guid = 0, $method if ($guid) { add_to_river('river/object/thewire/create', 'create', $post->owner_guid, $post->guid); + + // let other plugins know we are setting a user status + $params = array( + 'entity' => $post, + 'user' => $post->getOwnerEntity(), + 'message' => $post->description, + 'url' => $post->getURL(), + 'origin' => 'thewire', + ); + elgg_trigger_plugin_hook('status', 'user', $params); } return $guid; -- cgit v1.2.3 From 5d44386e762c5fbdf2866f174bd82788c09615ee Mon Sep 17 00:00:00 2001 From: cash Date: Fri, 24 Jun 2011 16:30:44 -0400 Subject: Fixes #2958 cleaned up user login for twitter --- .../graphics/sign-in-with-twitter-d.png | Bin 0 -> 3306 bytes .../graphics/sign-in-with-twitter-l.png | Bin 0 -> 3062 bytes mod/twitter_api/lib/twitter_api.php | 121 +++++++++++---------- .../views/default/twitter_api/login.php | 4 +- 4 files changed, 65 insertions(+), 60 deletions(-) create mode 100644 mod/twitter_api/graphics/sign-in-with-twitter-d.png create mode 100644 mod/twitter_api/graphics/sign-in-with-twitter-l.png diff --git a/mod/twitter_api/graphics/sign-in-with-twitter-d.png b/mod/twitter_api/graphics/sign-in-with-twitter-d.png new file mode 100644 index 000000000..b49a0ba59 Binary files /dev/null and b/mod/twitter_api/graphics/sign-in-with-twitter-d.png differ diff --git a/mod/twitter_api/graphics/sign-in-with-twitter-l.png b/mod/twitter_api/graphics/sign-in-with-twitter-l.png new file mode 100644 index 000000000..834d43cfd Binary files /dev/null and b/mod/twitter_api/graphics/sign-in-with-twitter-l.png differ diff --git a/mod/twitter_api/lib/twitter_api.php b/mod/twitter_api/lib/twitter_api.php index 18855862e..81aef38fb 100644 --- a/mod/twitter_api/lib/twitter_api.php +++ b/mod/twitter_api/lib/twitter_api.php @@ -24,9 +24,9 @@ function twitter_api_allow_sign_on_with_twitter() { } /** - * Forwards + * Forwards the user to twitter to authenticate * - * @todo what is this? + * This includes the login URL as the callback */ function twitter_api_forward() { // sanity check @@ -41,7 +41,18 @@ function twitter_api_forward() { } /** - * Log in a user with twitter. + * Log in a user referred from Twitter's OAuth API + * + * If the user has already linked their account with Twitter, it is a seamless + * login. If this is a first time login (or a user from deprecated twitter login + * plugin), we create a new account (update the account). + * + * If a plugin wants to be notified when someone logs in with twitter or a new + * twitter user signs up, register for the standard login or create user events + * and check for 'twitter_api' context. + * + * The user has to be redirected from Twitter for this to work. It depends on + * the Twitter OAuth data. */ function twitter_api_login() { @@ -64,29 +75,26 @@ function twitter_api_login() { 'access_key' => $token['oauth_token'], 'access_secret' => $token['oauth_token_secret'], ), - 'limit' => 0 + 'limit' => 0, ); $users = elgg_get_entities_from_plugin_user_settings($options); if ($users) { if (count($users) == 1 && login($users[0])) { - system_message(elgg_echo('twitter_api:login:success')); - - // trigger login hook - elgg_trigger_plugin_hook('login', 'twitter_api', array('user' => $users[0])); + system_message(elgg_echo('twitter_api:login:success')); } else { - system_message(elgg_echo('twitter_api:login:error')); + register_error(elgg_echo('twitter_api:login:error')); } - - forward(); + + forward(elgg_get_site_url()); } else { $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api'); $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api'); $api = new TwitterOAuth($consumer_key, $consumer_secret, $token['oauth_token'], $token['oauth_token_secret']); $twitter = $api->get('account/verify_credentials'); - // backward compatibility for stalled-development Twitter Login plugin + // backward compatibility for deprecated Twitter Login plugin $user = FALSE; if ($twitter_user = get_user_by_username($token['screen_name'])) { if (($screen_name = $twitter_user->twitter_screen_name) && ($screen_name == $token['screen_name'])) { @@ -98,47 +106,9 @@ function twitter_api_login() { // create new user if (!$user) { - // check new registration allowed - if (!twitter_api_allow_new_users_with_twitter()) { - register_error(elgg_echo('registerdisabled')); - forward(); - } - - // trigger a hook for plugin authors to intercept - if (!elgg_trigger_plugin_hook('new_twitter_user', 'twitter_service', array('account' => $twitter), TRUE)) { - // halt execution - register_error(elgg_echo('twitter_api:login:error')); - forward(); - } - - // Elgg-ify Twitter credentials - $username = $twitter->screen_name; - while (get_user_by_username($username)) { - $username = $twitter->screen_name . '_' . rand(1000, 9999); - } - - $password = generate_random_cleartext_password(); - $name = $twitter->name; - - $user = new ElggUser(); - $user->username = $username; - $user->name = $name; - $user->access_id = ACCESS_PUBLIC; - $user->salt = generate_random_cleartext_password(); - $user->password = generate_user_password($user, $password); - $user->owner_guid = 0; - $user->container_guid = 0; - - if (!$user->save()) { - register_error(elgg_echo('registerbad')); - forward(); - } - - // @todo require email address? - + $user = twitter_api_create_user($twitter); $site_name = elgg_get_site_entity()->name; system_message(elgg_echo('twitter_api:login:email', array($site_name))); - $forward = "settings/user/{$user->username}"; } @@ -153,9 +123,6 @@ function twitter_api_login() { // login new user if (login($user)) { system_message(elgg_echo('twitter_api:login:success')); - - // trigger login hook for new user - elgg_trigger_plugin_hook('first_login', 'twitter_api', array('user' => $user)); } else { system_message(elgg_echo('twitter_api:login:error')); } @@ -168,11 +135,51 @@ function twitter_api_login() { forward(); } +/** + * Create a new user from Twitter information + * + * @param object $twitter Twitter OAuth response + * @return ElggUser + */ +function twitter_api_create_user($twitter) { + // check new registration allowed + if (!twitter_api_allow_new_users_with_twitter()) { + register_error(elgg_echo('registerdisabled')); + forward(); + } + + // Elgg-ify Twitter credentials + $username = $twitter->screen_name; + while (get_user_by_username($username)) { + // @todo I guess we just hope this is good enough + $username = $twitter->screen_name . '_' . rand(1000, 9999); + } + + $password = generate_random_cleartext_password(); + $name = $twitter->name; + + $user = new ElggUser(); + $user->username = $username; + $user->name = $name; + $user->access_id = ACCESS_PUBLIC; + $user->salt = generate_random_cleartext_password(); + $user->password = generate_user_password($user, $password); + $user->owner_guid = 0; + $user->container_guid = 0; + + if (!$user->save()) { + register_error(elgg_echo('registerbad')); + forward(); + } + + return $user; +} + /** * Pull in the latest avatar from twitter. * - * @param unknown_type $user - * @param unknown_type $file_location + * @param ElggUser $user + * @param string $file_location */ function twitter_api_update_user_avatar($user, $file_location) { // twitter's images have a few suffixes: @@ -210,8 +217,6 @@ function twitter_api_update_user_avatar($user, $file_location) { // update user's icontime $user->icontime = time(); - - return TRUE; } /** diff --git a/mod/twitter_api/views/default/twitter_api/login.php b/mod/twitter_api/views/default/twitter_api/login.php index d0aca87ac..17bd76d56 100644 --- a/mod/twitter_api/views/default/twitter_api/login.php +++ b/mod/twitter_api/views/default/twitter_api/login.php @@ -1,10 +1,10 @@ -- cgit v1.2.3 From 43e2672f65d12a36d75ad9257a936dc93a2108f3 Mon Sep 17 00:00:00 2001 From: cash Date: Fri, 24 Jun 2011 19:55:58 -0400 Subject: cleaned up the list/gallery css classes to use standard class naming - minor modifications only --- engine/lib/views.php | 4 ++-- mod/search/views/default/search/list.php | 4 ++-- views/default/css/admin.php | 2 +- views/default/css/elements/components.php | 4 ++-- views/default/object/elements/summary.php | 2 +- views/default/page/components/gallery.php | 31 ++++++++++++++++++++++++++++--- views/default/page/components/list.php | 6 +++--- 7 files changed, 39 insertions(+), 14 deletions(-) diff --git a/engine/lib/views.php b/engine/lib/views.php index 4911171c8..df69593f9 100644 --- a/engine/lib/views.php +++ b/engine/lib/views.php @@ -969,7 +969,7 @@ $list_type_toggle = true, $pagination = true) { // new function $defaults = array( 'items' => $entities, - 'list_class' => 'elgg-entity-list', + 'list_class' => 'elgg-list-entity', 'full_view' => true, 'pagination' => true, 'gallery' => false, @@ -992,7 +992,7 @@ $list_type_toggle = true, $pagination = true) { 'pagination' => $pagination, 'gallery' => false, 'list_type_toggle' => $list_type_toggle, - 'list_class' => 'elgg-entity-list', + 'list_class' => 'elgg-list-entity', ); } diff --git a/mod/search/views/default/search/list.php b/mod/search/views/default/search/list.php index c5afaaa86..11860c094 100644 --- a/mod/search/views/default/search/list.php +++ b/mod/search/views/default/search/list.php @@ -82,7 +82,7 @@ $more = ($more_check > 0) ? $more_check : 0; if ($more) { $title_key = ($more == 1) ? 'comment' : 'comments'; $more_str = elgg_echo('search:more', array($count, $type_str)); - $more_link = "
  • $more_str
  • "; + $more_link = "
  • $more_str
  • "; } else { $more_link = ''; } @@ -98,7 +98,7 @@ if ($view) { $body .= '
      '; foreach ($entities as $entity) { $id = "elgg-{$entity->getType()}-{$entity->getGUID()}"; - $body .= "
    • "; + $body .= "
    • "; $body .= elgg_view($view, array( 'entity' => $entity, 'params' => $vars['params'], diff --git a/views/default/css/admin.php b/views/default/css/admin.php index a56c7b214..d7c154438 100644 --- a/views/default/css/admin.php +++ b/views/default/css/admin.php @@ -383,7 +383,7 @@ table.mceLayout { margin-left: 5px; } -.elgg-list-item { +.elgg-item { margin: 3px; } .elgg-menu-metadata { diff --git a/views/default/css/elements/components.php b/views/default/css/elements/components.php index 203f6d257..594694e60 100644 --- a/views/default/css/elements/components.php +++ b/views/default/css/elements/components.php @@ -47,10 +47,10 @@ border-bottom: 1px dotted #CCCCCC; } -.elgg-list-item .elgg-subtext { +.elgg-item .elgg-subtext { margin-bottom: 5px; } -.elgg-list-content { +.elgg-item .elgg-content { margin: 10px 5px; } diff --git a/views/default/object/elements/summary.php b/views/default/object/elements/summary.php index d3a6ea862..9206ada66 100644 --- a/views/default/object/elements/summary.php +++ b/views/default/object/elements/summary.php @@ -49,5 +49,5 @@ echo "

      $title_link

      "; echo "
      $subtitle
      "; echo $tags; if ($content) { - echo "
      $content
      "; + echo "
      $content
      "; } diff --git a/views/default/page/components/gallery.php b/views/default/page/components/gallery.php index e86b9f885..f03eb1109 100644 --- a/views/default/page/components/gallery.php +++ b/views/default/page/components/gallery.php @@ -2,7 +2,17 @@ /** * Gallery view * - * @uses $vars['items'] + * Implemented as an unorder list + * + * @uses $vars['items'] Array of ElggEntity or ElggAnnotation objects + * @uses $vars['offset'] Index of the first list item in complete list + * @uses $vars['limit'] Number of items per page + * @uses $vars['count'] Number of items in the complete list + * @uses $vars['pagination'] Show pagination? (default: true) + * @uses $vars['position'] Position of the pagination: before, after, or both + * @uses $vars['full_view'] Show the full view of the items (default: false) + * @uses $vars['gallery_class'] Additional CSS class for the
        element + * @uses $vars['item_class'] Additional CSS class for the
      • elements */ $items = $vars['items']; @@ -19,6 +29,16 @@ $pagination = elgg_extract('pagination', $vars, true); $offset_key = elgg_extract('offset_key', $vars, 'offset'); $position = elgg_extract('position', $vars, 'after'); +$gallery_class = 'elgg-gallery'; +if (isset($vars['gallery_class'])) { + $gallery_class = "$gallery_class {$vars['gallery_class']}"; +} + +$item_class = 'elgg-item'; +if (isset($vars['item_class'])) { + $item_class = "$item_class {$vars['item_class']}"; +} + if ($pagination && $count) { $nav .= elgg_view('navigation/pagination', array( 'offset' => $offset, @@ -33,10 +53,15 @@ if ($position == 'before' || $position == 'both') { } ?> -