diff options
author | Sem <sembrestels@riseup.net> | 2011-11-03 22:18:13 +0100 |
---|---|---|
committer | Sem <sembrestels@riseup.net> | 2011-11-03 22:18:13 +0100 |
commit | fc7921d05953d3de3130f9d49b7d73ec4c466b34 (patch) | |
tree | dcd6972df015852d455709b4b9111500a2c1602d /views/default/forms/videolist/add.php | |
parent | 4df99e6a3803f735d6cfa35d66e0b52c3b946255 (diff) | |
download | elgg-fc7921d05953d3de3130f9d49b7d73ec4c466b34.tar.gz elgg-fc7921d05953d3de3130f9d49b7d73ec4c466b34.tar.bz2 |
Upgraded "add video" page.
Diffstat (limited to 'views/default/forms/videolist/add.php')
-rw-r--r-- | views/default/forms/videolist/add.php | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/views/default/forms/videolist/add.php b/views/default/forms/videolist/add.php new file mode 100644 index 000000000..2ee5d9c2e --- /dev/null +++ b/views/default/forms/videolist/add.php @@ -0,0 +1,163 @@ +<?php + +/** + * Elgg Video Plugin + * This plugin allows users to create a library of youtube/vimeo/metacafe videos + * @file - the add user interface + * @package Elgg + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Prateek Choudhary <synapticfield@gmail.com> + * @copyright Prateek Choudhary + */ +// Make sure we're logged in (send us to the front page if not) +gatekeeper(); +$page_owner = page_owner_entity(); +$error = array( + 'no-video' => 1 + ); +$error_msg = array( + 'no-video' => "Please enter a valid video url" + ); + +$container_guid = get_input("container_guid"); +set_page_owner($container_guid); + +$confirm_action = get_input('video_action'); +$guid = get_input('guid'); +if(page_owner_entity() instanceof ElggGroup){ + //if in a group, set the access level to default to the group + $access_id = page_owner_entity()->group_acl; +}else{ + $access_id = get_default_access(get_loggedin_user()); +} +//if it is a group, pull out the group access view +if(page_owner_entity() instanceof ElggGroup){ + $options = group_access_options(page_owner_entity()); +}else{ + $options = ''; +} +$title_videourl = get_input('title_videourl'); +$Pagecontainer = get_input('page'); +$get_addvideourl = get_input('add_videourl'); +$timestamp = time(); +$token = generate_action_token(time()); +if (!empty($get_addvideourl) && ($Pagecontainer == "youtube")) { + $title_add_videourl = "http://www.youtube.com/watch?v=".$get_addvideourl; +} else if(!empty($get_addvideourl) && ($Pagecontainer == "metacafe")) { + $title_add_videourl = "http://www.metacafe.com/api/item/".$get_addvideourl; +} else if(!empty($get_addvideourl) && ($Pagecontainer == "vimeo")) { + $title_add_videourl = "http://vimeo.com/".$get_addvideourl; +} else { + $title_add_videourl = ""; +} + +$tags = get_input('videolisttags'); + +function video_youtube_parse_url($url) { + if (!preg_match('/(http:\/\/)([a-zA-Z]{2,3}\.)(youtube\.com\/)(.*)/', $url, $matches)) { + return false; + } + + $domain = $matches[2] . $matches[3]; + $path = $matches[4]; + + if (!preg_match('/^(watch\?v=)([a-zA-Z0-9_-]*)(&.*)?$/',$path, $matches)) { + return false; + } + + $hash = $matches[2]; + return $domain . 'v/' . $hash; +} + +function video_vimeo_parse_url($url) { + if (!preg_match('/(http:\/\/)([a-zA-Z]{2,3}\.)(vimeo\.com\/)(.*)/', $url, $matches)) { + return false; + } + + $domain = $matches[2] . $matches[3]; + $path = $matches[4]; + + $hash = $matches[2]; + + return $domain . '/' . $hash; +} + +function video_metacafe_parse_url($url) { + if (!preg_match('/(http:\/\/)([a-zA-Z]{2,3}\.)(metacafe\.com\/)(.*)/', $url, $matches)) { + return false; + } + + $domain = $matches[2] . $matches[3]; + $path = $matches[4]; + + $hash = $matches[2]; + + return $domain . '/' . $hash; +} + +if(isset($confirm_action) && ($confirm_action == 'add_video')) { + if(isset($title_videourl) && ($title_videourl != '')) { + if($Pagecontainer != "youtube" || $Pagecontainer != "vimeo" || $Pagecontainer != "metacafe"){ + if(preg_match("/youtube/i", $title_videourl)) { + $Pagecontainer = "youtube"; + } + + if(preg_match("/vimeo/i", $title_videourl)) { + $Pagecontainer = "vimeo"; + } + + if(preg_match("/metacafe/i", $title_videourl)) { + $Pagecontainer = "metacafe"; + } + } + if($Pagecontainer == "youtube") { + $is_valid_video = video_youtube_parse_url($title_videourl); + } else if($Pagecontainer == "vimeo") { + $is_valid_video = video_vimeo_parse_url($title_videourl); + $is_valid_video = $get_addvideourl; + } else if($Pagecontainer == "metacafe"){ + $is_valid_video = video_metacafe_parse_url($title_videourl); + $is_valid_video = $get_addvideourl; + } + + if($is_valid_video) { + $error['no-video'] = 1; + $_SESSION['candidate_profile_video'] = $is_valid_video; + $_SESSION['candidate_profile_video_access_id'] = $access_id; + $_SESSION['videolisttags'] = $tags; + $_SESSION['Pagecontainer'] = $Pagecontainer; + $_SESSION['container_guid'] = $container_guid; + $url = "action/videolist/add?__elgg_ts={$timestamp}&__elgg_token={$token}"; + forward($url); + } + else + $error['no-video'] = 0; + } + else { + $error['no-video'] = 0; + } +} + +$body = '<form action="'.$_SERVER['php_self'].'" method="post" id="add_video_form">'; +$body .= elgg_view('input/hidden',array('internalname'=>'video_action', 'value'=>'add_video')); +$body .= elgg_view('input/hidden',array('internalname'=>'guid', 'value'=>$vars['guid'])); + + +$body .= '<p><label>'.elgg_echo("videolist:title_videourl").'<br />'; +$body .= elgg_view("input/text",array('internalname' => 'title_videourl','value'=>$title_add_videourl)); +if($error['no-video'] == 0) { + $body .= '<div class="videolist_error">'.$error_msg['no-video'].'</div>'; +} +$body .= '</label></p>'; + +$body .= '<p><label>'.elgg_echo('videolist:tags'); +$body .= elgg_view('input/tags', array('internalname' => 'videolisttags', 'value' => $tags)); +$body .= '</label></p>'; + +$body .= '<p><label>'.elgg_echo("videolist:title_access").'<br />'; +$body .= elgg_view('input/access',array('internalname'=>'access_id', 'value' => $access_id, 'options' => $options)); +$body .= '</label></p>'; +$body .= elgg_view('input/submit', array('internalname'=>'submit','value'=>elgg_echo('videolist:submit'))); +$body .= '</form>'; + +print $body; |