From 6b16fa9b322ae12a54c66ba5160cc7547d6e7667 Mon Sep 17 00:00:00 2001 From: Sem Date: Wed, 9 Nov 2011 01:35:57 +0100 Subject: Videolist on groups and edit/delete functionalities. --- actions/videolist/delete.php | 62 ++++++++++-------- pages/videolist/edit.php | 75 ++++++++++++---------- start.php | 4 +- views/default/object/videolist_item.php | 7 +- views/default/videolist/group_module.php | 43 +++++++++++++ views/default/videolist/groupprofile_videolist.php | 47 -------------- 6 files changed, 123 insertions(+), 115 deletions(-) create mode 100644 views/default/videolist/group_module.php delete mode 100644 views/default/videolist/groupprofile_videolist.php diff --git a/actions/videolist/delete.php b/actions/videolist/delete.php index 221109ec4..191d7546c 100644 --- a/actions/videolist/delete.php +++ b/actions/videolist/delete.php @@ -1,33 +1,39 @@ - * @copyright Prateek Choudhary - */ -// Make sure we're logged in (send us to the front page if not) -gatekeeper(); +* Elgg videolist item delete +* +* @package ElggVideolist +*/ -// Get input data -$guid = (int) get_input('video'); +$guid = (int) get_input('guid'); -// Make sure we actually have permission to edit -$video = get_entity($guid); -if ($video->getSubtype() == "videolist" && $video->canEdit()) { - // Get owning user - $owner = get_entity($video->getOwner()); +$videolist_item = get_entity($guid); +if (!$videolist_item->guid) { + register_error(elgg_echo("videolist:deletefailed")); + forward('videolist/all'); +} - // Delete it! - $rowsaffected = $video->delete(); - if ($rowsaffected > 0) { - // Success message - system_message(elgg_echo("videos:deleted")); - } else { - register_error(elgg_echo("videos:notdeleted")); - } - // Forward to the main video list page - forward($_SERVER['HTTP_REFERER']); -} \ No newline at end of file +if (!$videolist_item->canEdit()) { + register_error(elgg_echo("videolist:deletefailed")); + forward($videolist_item->getURL()); +} + +$container = $videolist_item->getContainerEntity(); +$url = $videolist_item->getURL(); + +if (!$videolist_item->delete()) { + register_error(elgg_echo("videolist:deletefailed")); +} else { + system_message(elgg_echo("videolist:deleted")); +} + +// we can't come back to video url because it's deleted +if($url != REFERER) { + forward(REFERER); +} + +if (elgg_instanceof($container, 'group')) { + forward("videolist/group/$container->guid/all"); +} else { + forward("videolist/owner/$container->username"); +} diff --git a/pages/videolist/edit.php b/pages/videolist/edit.php index cc06dd9c4..5ca1e4b64 100644 --- a/pages/videolist/edit.php +++ b/pages/videolist/edit.php @@ -1,43 +1,48 @@ container_guid; - if (!empty($container_guid)) - if ($page_owner = get_entity($container_guid)) { - set_page_owner($container_guid->guid); - } - if (empty($page_owner)) { - $page_owner = $_SESSION['user']; - set_page_owner($_SESSION['guid']); - } - } - - if ($video_file->canEdit()) { - // set up breadcrumbs - elgg_push_breadcrumb(elgg_echo('videolist:all'), elgg_get_site_url()."videolist/all.php"); - elgg_push_breadcrumb(sprintf(elgg_echo("videolist:user"),$page_owner->name), elgg_get_site_url()."videolist/".$page_owner->username); - elgg_push_breadcrumb(sprintf(elgg_echo("videolist:edit"))); - - $area1 = elgg_view('navigation/breadcrumbs'); - $area1 .= elgg_view_title($title = elgg_echo('videolist:edit')); - $area2 = elgg_view("forms/edit",array('entity' => $video_file)); - $body = elgg_view_layout('one_column_with_sidebar', $area1.$area2, $area3); - page_draw(elgg_echo("videolist:edit"), $body); - } -} else { +$guid = (int) get_input('guid'); +$videolist_item = get_entity($guid); +if (!$videolist_item) { + forward(); +} +if (!$videolist_item->canEdit()) { forward(); } -?> +$title = elgg_echo('videolist:edit'); +$container = get_entity($videolist_item->getContainerGUID()); + +elgg_push_breadcrumb(elgg_echo('videolist'), "videolist/all"); +if(elgg_instanceof($container, 'user')){ + elgg_push_breadcrumb($container->name, "videolist/owner/$container->username/"); +} else { + elgg_push_breadcrumb($container->name, "videolist/group/$container->guid/"); +} +elgg_push_breadcrumb($videolist_item->title, $videolist_item->getURL()); +elgg_push_breadcrumb($title); + +elgg_set_page_owner_guid($container->guid); + +$form_vars = array(); +$body_vars = array('guid' => $guid); + +foreach(array_keys(elgg_get_config('videolist')) as $variable) { + $body_vars[$variable] = $videolist_item->$variable; +} + +$content = elgg_view_form('videolist/edit', $form_vars, $body_vars); + +$body = elgg_view_layout('content', array( + 'content' => $content, + 'title' => $title, + 'filter' => '', +)); + +echo elgg_view_page($title, $body); diff --git a/start.php b/start.php index 2c21bec83..f0fe8253c 100644 --- a/start.php +++ b/start.php @@ -37,8 +37,8 @@ function videolist_init() { 'access_id' => 'access', )); - //extend this plugin for groups - elgg_extend_view('groups/tool_latest','videolist/groupprofile_videolist'); + // extend group main page + elgg_extend_view('groups/tool_latest', 'videolist/group_module'); if (is_callable('register_notification_object')) { register_notification_object('object', 'videolist', elgg_echo('videolist:new')); diff --git a/views/default/object/videolist_item.php b/views/default/object/videolist_item.php index f2543dd19..63f3e6334 100644 --- a/views/default/object/videolist_item.php +++ b/views/default/object/videolist_item.php @@ -22,7 +22,7 @@ $base_type = substr($mime, 0, strpos($mime,'/')); $body = elgg_view('output/longtext', array('value' => $entity->description)); $owner_link = elgg_view('output/url', array( - 'href' => "file/owner/$owner->username", + 'href' => "videolist/owner/$owner->username", 'text' => $owner->name, )); $author_text = elgg_echo('byline', array($owner_link)); @@ -38,7 +38,7 @@ $comments_count = $entity->countComments(); if ($comments_count != 0) { $text = elgg_echo("comments") . " ($comments_count)"; $comments_link = elgg_view('output/url', array( - 'href' => $entity->getURL() . '#file-comments', + 'href' => $entity->getURL() . '#videolist-item-comments', 'text' => $text, )); } else { @@ -47,7 +47,7 @@ if ($comments_count != 0) { $metadata = elgg_view_menu('entity', array( 'entity' => $vars['entity'], - 'handler' => 'file', + 'handler' => 'videolist', 'sort_by' => 'priority', 'class' => 'elgg-menu-hz', )); @@ -57,6 +57,7 @@ $subtitle = "$author_text $date $categories $comments_link"; // do not show the metadata and controls in widget view if (elgg_in_context('widgets')) { $metadata = ''; + $excerpt = ''; } if ($full && !elgg_in_context('gallery')) { diff --git a/views/default/videolist/group_module.php b/views/default/videolist/group_module.php new file mode 100644 index 000000000..0e0a1ab63 --- /dev/null +++ b/views/default/videolist/group_module.php @@ -0,0 +1,43 @@ +videolist_enable == "no") { + return true; +} + +$all_link = elgg_view('output/url', array( + 'href' => "videolist/group/$group->guid/all", + 'text' => elgg_echo('link:view:all'), +)); + +elgg_push_context('widgets'); +$options = array( + 'type' => 'object', + 'subtype' => 'videolist_item', + 'container_guid' => elgg_get_page_owner_guid(), + 'limit' => 6, + 'full_view' => false, + 'pagination' => false, +); +$content = elgg_list_entities($options); +elgg_pop_context(); + +if (!$content) { + $content = '

' . elgg_echo('videolist:none') . '

'; +} + +$new_link = elgg_view('output/url', array( + 'href' => "videolist/add/$group->guid", + 'text' => elgg_echo('videolist:add'), +)); + +echo elgg_view('groups/profile/module', array( + 'title' => elgg_echo('videolist:group'), + 'content' => $content, + 'all_link' => $all_link, + 'add_link' => $new_link, +)); diff --git a/views/default/videolist/groupprofile_videolist.php b/views/default/videolist/groupprofile_videolist.php deleted file mode 100644 index 33a22ab68..000000000 --- a/views/default/videolist/groupprofile_videolist.php +++ /dev/null @@ -1,47 +0,0 @@ - - * @copyright Prateek Choudhary - */ - -?> -
-username; ?>"> -

- -num_display; -if (!$number) - $number = 5; - -//get the user's files -$videos = elgg_get_entities(array('types' => 'object', 'subtypes' => 'videolist', 'container_guids' => page_owner(), 'limit' => $number)); - -//if there are some files, go get them -if ($videos) { - foreach($videos as $f){ - $mime = $f->mimetype; - $owner = get_entity($f->getOwner()); - $numcomments = elgg_count_comments($f); - echo "
"; - echo ""; - echo "
"; - echo "

guid}\">" . $f->title ."

username}\">{$owner->name} "; - echo friendly_time($f->time_created) . "

"; - echo "
"; - - } - -} else { - $upload_video = $vars['url'] . "videolist/browse/" . page_owner_entity()->username; - echo "

" . elgg_echo("videolist:add") . "

"; -} -echo "
"; -?> -- cgit v1.2.3