loadRequiredFields($array);
$location_fields = $this->loadLocationFields($array);
$date_fields = $this->loadDateForm('', '/', TRUE);
$option_fields = $this->loadOptionFields($array);
if ($array == NULL)
$array = $_POST;
if (is_array($_FILES))
$array = array_merge($array, $_FILES);
//Mergin Array
$upload_fields = array_merge($required_fields, $location_fields, $option_fields);
//Adding Custom Upload Fields
if (count($this->custom_upload_fields) > 0 && $is_upload)
$upload_fields = array_merge($upload_fields, $this->custom_upload_fields);
//Adding Custom Form Fields
if (count($this->custom_form_fields) > 0)
$upload_fields = array_merge($upload_fields, $this->custom_form_fields);
validate_cb_form($upload_fields, $array);
}
function ValidateUploadForm() {
return validate_video_upload_form();
}
function UploadProcess($array = NULL) {
return $this->submit_upload($array);
}
function submit_upload($array = NULL) {
global $eh, $Cbucket, $db, $userquery;
if (!$array)
$array = $_POST;
$this->validate_video_upload_form($array, TRUE);
if (empty($eh->error_list)) {
$required_fields = $this->loadRequiredFields($array);
$location_fields = $this->loadLocationFields($array);
$option_fields = $this->loadOptionFields($array);
$upload_fields = array_merge($required_fields, $location_fields, $option_fields);
//Adding Custom Upload Fields
if (count($this->custom_upload_fields) > 0)
$upload_fields = array_merge($upload_fields, $this->custom_upload_fields);
//Adding Custom Form Fields
if (count($this->custom_form_fields) > 0)
$upload_fields = array_merge($upload_fields, $this->custom_form_fields);
$userid = userid();
if (!userid() && has_access('allow_video_upload', true, false)) {
$userid = $userquery->get_anonymous_user();
//$userid = $user['userid'];
} elseif (userid() && !has_access('allow_video_upload', true, true))
return false;
if (is_array($_FILES))
$array = array_merge($array, $_FILES);
foreach ($upload_fields as $field) {
$name = formObj::rmBrackets($field['name']);
$val = $array[$name];
if ($field['use_func_val'])
$val = $field['validate_function']($val);
if (!empty($field['db_field']))
$query_field[] = $field['db_field'];
if (is_array($val)) {
$new_val = '';
foreach ($val as $v) {
$new_val .= "#" . $v . "# ";
}
$val = $new_val;
}
if (!$field['clean_func'] || (!apply_func($field['clean_func'], $val) && !is_array($field['clean_func'])))
$val = mysql_clean($val);
else
$val = apply_func($field['clean_func'], sql_free($val));
if (empty($val) && !empty($field['default_value']))
$val = $field['default_value'];
if (!empty($field['db_field']))
$query_val[] = $val;
}
//Adding Video Code
$query_field[] = "file_name";
$file_name = mysql_clean($array['file_name']);
$query_val[] = $file_name;
//ADding Video Key
$query_field[] = "videokey";
$query_val[] = $this->video_keygen();
//Userid
$query_field[] = "userid";
if (!$array['userid'])
$query_val[] = $userid;
else
$query_val[] = $array['userid'];
//Upload Ip
$query_field[] = "uploader_ip";
$query_val[] = $_SERVER['REMOTE_ADDR'];
$activation = ACTIVATION;
//Setting Activation Option
if ($activation == 0) {
$active = 'yes';
} else {
$active = 'no';
}
$query_field[] = "active";
$query_val[] = $active;
$query_field[] = "date_added";
$query_val[] = now();
$query_field[] = 'file_directory';
$query_val[] = $array['file_directory'];
/*$query = "INSERT INTO " . tbl("video") . " (";
$total_fields = count($query_field);
//Adding Fields to query
$i = 0;
foreach ($query_field as $qfield) {
$i++;
$query .= $qfield;
if ($i < $total_fields)
$query .= ',';
}
$query .= ") VALUES (";
$i = 0;
//Adding Fields Values to query
foreach ($query_val as $qval) {
$i++;
$query .= "'$qval'";
if ($i < $total_fields)
$query .= ',';
}
//Finalzing Query
$query .= ")";
*/
$the_fields = array();
$total_fields = count($query_field);
for($i=0;$i<$total_fields;$i++)
{
$the_fields[$query_field[$i]] = $query_val[$i];
}
//exit($query);
if (!userid() && !has_access('allow_video_upload', false, false)) {
e(lang("you_not_logged_in"));
//exit();
} else {
$insert_id = file_name_exists($file_name);
if (!$insert_id) {
//$db->Execute($query);
$insert_id = db_insert(tbl('video'), $the_fields);
//loggin Upload
$log_array = array
(
'success' => 'yes',
'action_obj_id' => $insert_id,
'userid' => $userid,
'details' => "uploaded a video");
insert_log('upload_video', $log_array);
$db->update(tbl("users"), array("total_videos"), array("|f|total_videos+1"), " userid='" . $userid . "'");
}
}
}
//Adding Video Feed
//addFeed(array('action' => 'upload_video', 'object_id' => $insert_id, 'object' => 'video'));
return $insert_id;
}
/**
* Function used to get available name for video thumb
* @param FILE_Name
*/
function get_available_file_num($file_name, $big = false) {
//Starting from 1
$code = 1;
if ($big)
$big = "big-";
while (1) {
$path = THUMBS_DIR . '/' . $file_name . '-' . $big . $code . '.';
if (!file_exists($path . 'jpg') && !file_exists($path . 'png') && !file_exists($path . 'gif'))
break;
else
$code = $code + 1;
}
return $code;
}
function upload_thumb($file_name, $file_array, $key = 0) {
global $imgObj, $LANG;
$file = $file_array;
if (!empty($file['name'][$key])) {
$file_num = $this->get_available_file_num($file_name);
$ext = getExt($file['name'][$key]);
if ($imgObj->ValidateImage($file['tmp_name'][$key], $ext)) {
$file_path = THUMBS_DIR . '/' . $file_name . '-' . $file_num . '.' . $ext;
$big_file_path = THUMBS_DIR . '/' . $file_name . '-big-' . $file_num . '.' . $ext;
move_uploaded_file($file['tmp_name'][$key], $file_path);
$imgObj->CreateThumb($file_path, $big_file_path, config('big_thumb_width'), $ext, config('big_thumb_height'), false);
$imgObj->CreateThumb($file_path, $file_path, THUMB_WIDTH, $ext, THUMB_HEIGHT, false);
e(lang('upload_vid_thumb_msg'), 'm');
}
}
}
/**
* Function used to upload big thumb
* @param FILE_NAME
* @param $_FILES array name
*/
function upload_big_thumb($file_name, $file_array) {
global $imgObj, $LANG;
$file = $file_array;
$ext = getExt($file['name']);
$bigThumbWidth = config('big_thumb_width');
$bigThumbHeight = config('big_thumb_height');
if ($imgObj->ValidateImage($file['tmp_name'], $ext)) {
$path = THUMBS_DIR . '/' . $file_name . '-big.' . $ext;
move_uploaded_file($file['tmp_name'], $path);
$imgObj->CreateThumb($path, $path, $bigThumbWidth, $ext, $bigThumbHeight, false);
e(lang('Video big thumb uploaded'), 'm');
}
}
/**
* Function used to upload video thumbs
* @param FILE_NAME
* @param $_FILES array name
*/
function upload_thumbs($file_name, $file_array) {
global $LANG;
if (count($file_array[name]) > 1) {
for ($i = 0; $i < count($file_array['name']); $i++) {
$this->upload_thumb($file_name, $file_array, $i);
}
e(lang('upload_vid_thumbs_msg'), 'm');
} else {
$file = $file_array;
$this->upload_thumb($file_name, $file);
}
}
function UploadThumb($flv, $thumbid) {
$file = $_FILES["upload_thumb_$thumbid"]['tmp_name'];
$ext = GetExt($_FILES["upload_thumb_$thumbid"]['name']);
if (!empty($file) && $ext == 'jpg') {
$image = new ResizeImage();
if ($image->ValidateImage($file, $ext)) {
$thumb = BASEDIR . '/files/thumbs/' . GetThumb($flv, $thumbid);
move_uploaded_file($file, $thumb);
$image->CreateThumb($thumb, $thumb, THUMB_WIDTH, $ext, THUMB_HEIGHT, false);
return true;
} else {
return false;
}
} else {
return false;
}
}
/**
* FUNCTION USED TO LOAD UPLOAD FORM REQUIRED FIELDS
* title [Text Field]
* description [Text Area]
* tags [Text Field]
* categories [Check Box]
*/
function loadRequiredFields($default = NULL) {
global $LANG;
if ($default == NULL)
$default = $_POST;
$title = $default['title'];
$desc = $default['description'];
if (is_array($default['category']))
$cat_array = array($default['category']);
else {
preg_match_all('/#([0-9]+)#/', $default['category'], $m);
$cat_array = array($m[1]);
}
$tags = $default['tags'];
$uploadFormRequiredFieldsArray = array
(
/**
* this function will create initial array for fields
* this will tell
* array(
* title [text that will represents the field]
* type [type of field, either radio button, textfield or text area]
* name [name of the fields, input NAME attribute]
* id [id of the fields, input ID attribute]
* value [value of the fields, input VALUE attribute]
* id [name of the fields, input NAME attribute]
* size
* class
* label
* extra_params
* hint_1 [hint before field]
* hint_2 [hint after field]
* anchor_before [before after field]
* anchor_after [anchor after field]
* )
*/
'title' => array('title' => lang('vdo_title'),
'type' => 'textfield',
'name' => 'title',
'id' => 'title',
'value' => cleanForm($title),
'size' => '45',
'db_field' => 'title',
'required' => 'yes',
'min_length' => config("video_min_title"),
'max_length' => config("video_max_title")
),
'desc' => array('title' => lang('vdo_desc'),
'type' => 'textarea',
'name' => 'description',
'id' => 'desc',
'value' => cleanForm($desc),
'size' => '35',
'extra_params' => ' rows="4"',
'db_field' => 'description',
'required' => 'no',
'anchor_after' => 'after_desc_compose_box',
),
'cat' => array('title' => lang('vdo_cat'),
'type' => 'checkbox',
'name' => 'category[]',
'id' => 'category',
'value' => array('category', $cat_array),
'hint_1' => sprintf(lang('vdo_cat_msg'), ALLOWED_VDO_CATS),
'db_field' => 'category',
'required' => 'yes',
'validate_function' => 'validate_vid_category',
'invalid_err' => lang('vdo_cat_err3'),
'display_function' => 'convert_to_categories'
),
'tags' => array('title' => lang('tag_title'),
'type' => 'textfield',
'name' => 'tags',
'id' => 'tags',
'value' => cleanForm(genTags($tags)),
'hint_1' => '',
'hint_2' => lang('vdo_tags_msg'),
'db_field' => 'tags',
'required' => 'yes',
'validate_function' => 'genTags'
),
);
//Setting Anchors
$uploadFormRequiredFieldsArray['desc']['anchor_before'] = 'before_desc_compose_box';
//Setting Sizes
return $uploadFormRequiredFieldsArray;
}
/**
* FUNCTION USED TO LOAD FORM OPTION FIELDS
* broadacast [Radio Button]
* embedding [Radio Button]
* rating [Radio Button]
* comments [Radio Button]
* comments rating [Radio Button]
*/
function loadOptionFields($default = NULL) {
global $LANG, $uploadFormOptionFieldsArray;
if ($default == NULL)
$default = $_POST;
$broadcast = $default['broadcast'] ? $default['broadcast'] : 'public';
$comments = $default['allow_comments'] ? $default['allow_comments'] : 'yes';
$comment_voting = $default['comment_voting'] ? $default['comment_voting'] : 'yes';
$rating = $default['allow_rating'] ? $default['allow_rating'] : 'yes';
$embedding = $default['allow_embedding'] ? $default['allow_embedding'] : 'yes';
//Checking weather to enabled or disable password field
$video_pass_disable = 'disabled="disabled" ';
$video_user_disable = 'disabled="disabled" ';
if ($broadcast == 'unlisted')
$video_pass_disable = "";
elseif ($broadcast == 'private')
$video_user_disable = '';
$uploadFormOptionFieldsArray = array
(
'broadcast' => array('title' => lang('vdo_br_opt'),
'type' => 'radiobutton',
'name' => 'broadcast',
'id' => 'broadcast',
'value' => array('public' => lang('vdo_br_opt1'), 'private' => lang('vdo_br_opt2')
, 'unlisted' => lang('vdo_broadcast_unlisted'), 'logged' => lang("logged_users_only")),
'checked' => $broadcast,
'db_field' => 'broadcast',
'required' => 'no',
'validate_function' => 'yes_or_no',
'display_function' => 'display_sharing_opt',
'default_value' => 'public',
'extra_tags' =>
' onClick="
$(\'#video_password\').attr(\'disabled\',\'disabled\');
$(\'#video_users\').attr(\'disabled\',\'disabled\');
if($(this).val()==\'unlisted\')
$(\'#video_password\').attr(\'disabled\',\'\')
else if($(this).val()==\'private\')
$(\'#video_users\').attr(\'disabled\',\'\')
" '
),
'video_password' => array
('title' => lang('video_password'),
'type' => 'password',
'name' => 'video_password',
'id' => 'video_password',
'value' => $default['video_password'],
'db_field' => 'video_password',
'required' => 'no',
'extra_tags' => " $video_pass_disable ",
'hint_2' => lang('set_video_password')
),
'video_users' => array('title' => lang('video_users'),
'type' => 'textarea',
'name' => 'video_users',
'id' => 'video_users',
'value' => $default['video_users'],
'db_field' => 'video_users',
'required' => 'no',
'extra_tags' => " $video_user_disable ",
'hint_2' => lang('specify_video_users'),
'validate_function' => 'video_users',
'use_func_val' => true
),
'comments' => array('title' => lang('comments'),
'type' => 'radiobutton',
'name' => 'allow_comments',
'id' => 'comments',
'value' => array('yes' => lang('vdo_allow_comm'), 'no' => lang('vdo_dallow_comm')),
'checked' => $comments,
'db_field' => 'allow_comments',
'required' => 'no',
'validate_function' => 'yes_or_no',
'display_function' => 'display_sharing_opt',
'default_value' => 'yes',
),
'commentsvote' => array('title' => lang('vdo_comm_vote'),
'type' => 'radiobutton',
'name' => 'comment_voting',
'id' => 'comment_voting',
'value' => array('yes' => lang('vdo_allow_comm') . ' Voting', 'no' => lang('vdo_dallow_comm') . ' Voting'),
'checked' => $comment_voting,
'db_field' => 'comment_voting',
'required' => 'no',
'validate_function' => 'yes_or_no',
'display_function' => 'display_sharing_opt',
'default_value' => 'yes',
),
'rating' => array('title' => lang('ratings'),
'type' => 'radiobutton',
'name' => 'allow_rating',
'id' => 'rating',
'value' => array('yes' => lang('vdo_allow_rating'), 'no' => lang('vdo_dallow_ratig')),
'checked' => $rating,
'db_field' => 'allow_rating',
'required' => 'no',
'validate_function' => 'yes_or_no',
'display_function' => 'display_sharing_opt',
'default_value' => 'yes',
),
'embedding' => array('title' => lang('vdo_embedding'),
'type' => 'radiobutton',
'name' => 'allow_embedding',
'id' => 'embedding',
'value' => array('yes' => lang('vdo_embed_opt1'), 'no' => lang('vdo_embed_opt2')),
'checked' => $embedding,
'db_field' => 'allow_embedding',
'required' => 'no',
'validate_function' => 'yes_or_no',
'display_function' => 'display_sharing_opt',
'default_value' => 'yes',
),
);
return $uploadFormOptionFieldsArray;
}
/**
* FUNCTION USED TO LOAD DATE AND LOCATION OPTION OF UPLOAD FORM
* - day - month - year
* - country
* - city
*/
function loadLocationFields($default = NULL) {
global $LANG, $LocationFieldsArray, $CBucket;
if ($default == NULL)
$default = $_POST;
$dcountry = $default['country'];
$location = $default['location'];
$date_recorded = $default['datecreated'];
$date_recorded = $date_recorded ? date(config("date_format"), strtotime($date_recorded)) : date(config("date_format"), time());
$country_array = array("");
$country_array = @array_merge($country_array, ClipBucket::get_countries());
$LocationFieldsArray = array
(
'country' => array('title' => lang('country'),
'type' => 'dropdown',
'name' => 'country',
'id' => 'country',
'value' => $country_array,
'checked' => $dcountry,
'db_field' => 'country',
'required' => 'no',
'default_value' => '',
),
'location' => array('title' => lang('location'),
'type' => 'textfield',
'name' => 'location',
'id' => 'location',
'value' => $location,
'hint_2' => lang('vdo_add_eg'),
'db_field' => 'location',
'required' => 'no',
'default_value' => '',
),
'date_recorded' => array(
'title' => 'Date Recorded',
'type' => 'textfield',
'name' => 'datecreated',
'id' => 'datecreated',
'class' => 'date_field',
'anchor_after' => 'date_picker',
'value' => $date_recorded,
'db_field' => 'datecreated',
'required' => 'no',
'default_value' => '',
'use_func_val' => true,
'validate_function' => 'datecreated',
'hint_2' => config("date_format"),
)
);
return $LocationFieldsArray;
}
/**
* FUNCTION USED TO DISPLAY DATE FORM
*/
function loadDateForm($date = NULL, $sep = '/', $bg_process = FALSE) {
global $LANG, $formObj;
$month_array = array('' => '--');
$day_array = array('' => '--');
$year_array = array('' => '----');
for ($i = 1; $i < 13; $i++)
$month_array[$i] = $i;
for ($i = 1; $i < 32; $i++)
$day_array[$i] = $i;
for ($i = date("Y", time()); $i > 1900; $i--)
$year_array[$i] = $i;
if ($date['value'] == NULL) {
$d_month = $_POST['month'];
$d_day = $_POST['day'];
$d_year = $_POST['year'];
} else {
$d_month = date("m", strtotime($date));
$d_day = date("d", strtotime($date));
$d_year = date("Y", strtotime($date));
}
if (!$bg_process) {
echo $formObj->createField('dropdown', 'month', '', $month_array, NULL, NULL, NULL, NULL, $d_month);
echo $sep;
echo $formObj->createField('dropdown', 'day', '', $day_array, NULL, NULL, NULL, NULL, $d_day);
echo $sep;
echo $formObj->createField('dropdown', 'year', '', $year_array, NULL, NULL, NULL, NULL, $d_year);
echo lang('vdo_for_date');
}
}
/**
* Function used to load upload form fields
* it will load all the values that are submited in the upload form
* after validation
*/
function load_post_fields() {
$required_fields = $this->loadRequiredFields($array);
$location_fields = $this->loadLocationFields($array);
$option_fields = $this->loadOptionFields($array);
$upload_fields = array_merge($required_fields, $location_fields, $option_fields);
if (count($this->custom_form_fields) > 0)
$upload_fields = array_merge($upload_fields, $this->custom_form_fields);
foreach ($upload_fields as $field) {
$name = formObj::rmBrackets($field['name']);
$val = $_POST[$name];
if (!is_array($val)) {
$val = cleanForm($_POST[$name]);
echo '';
} else {
$loop = count($val);
for ($i = 0; $i < $loop; $i++) {
$val = $_POST[$name][$i];
$val = cleanForm($_POST[$name][$i]);
echo '';
}
}
}
}
/**
* Function used to add files in conversion queue
*/
function add_conversion_queue($file, $file_dir) {
global $Cbucket, $db;
$tmp_ext = $Cbucket->temp_exts;
$count = 1;
while (1) {
$exists = 'no';
foreach ($tmp_ext as $exts) {
if (file_exists(TEMP_DIR . '/' . getName($file) . '.' . $exts)) {
$exists = 'yes';
break;
}
}
if ($exists != 'yes')
break;
$new_file = getName($file) . '-' . $count . '.' . strtolower(getExt($file));
rename(TEMP_DIR . '/' . $file, TEMP_DIR . '/' . $new_file);
$file = $new_file;
$count++;
if ($count > 50)
break;
}
//Checking file existsi or not
if (file_exists(TEMP_DIR . '/' . $file)) {
$ext = mysql_clean(strtolower(getExt($file)));
$name = mysql_clean(getName($file));
//Get Temp Ext
$tmp_ext = mysql_clean($tmp_ext[rand(0, count($tmp_ext) - 1)]);
//Creating New File Name
$new_file = $name . '.' . $tmp_ext;
//Renaming File for security purpose
if (!file_exists(TEMP_DIR . '/' . $file) || !$name)
return false;
rename(TEMP_DIR . '/' . $file, TEMP_DIR . '/' . $new_file);
//Adding Details to database
$db->Execute("INSERT INTO " . tbl("conversion_queue") . "
(queue_name,queue_ext,queue_tmp_ext,date_added,file_directory)
VALUES ('" . $name . "','" . $ext . "','" . $tmp_ext . "','" . NOW() . "','" . $file_dir . "') ");
return $db->insert_id;
}else {
return false;
}
}
/**
* Video Key Gen
* * it is use to generate video key
*/
function video_keygen() {
global $db;
$char_list = "ABDGHKMNORSUXWY";
$char_list .= "123456789";
$char_list .= "qwdvbnmkpouyt";
while (1) {
$vkey = '';
srand((double) microtime() * 1000000);
for ($i = 0; $i < 12; $i++) {
$vkey .= substr($char_list, (rand() % (strlen($char_list))), 1);
}
if (!vkey_exists($vkey))
break;
}
return $vkey;
}
/**
* Function used to load upload form
*/
function load_upload_options() {
global $Cbucket, $Smarty;
$opt_list = $Cbucket->upload_opt_list;
foreach ($opt_list as $opt) {
$Smarty->register_function($opt['load_func'], $opt['load_func']);
}
return $opt_list;
}
/**
* Function used to perform some actions , after video is upload
* @param Videoid
*/
function do_after_video_upload($vid) {
foreach ($this->actions_after_video_upload as $funcs) {
if (function_exists($funcs))
$funcs($vid);
}
}
/**
* Function used to load custom upload fields
*/
function load_custom_upload_fields($data, $ck_display_admin = FALSE, $ck_display_user = FALSE) {
$array = $this->custom_upload_fields;
foreach ($array as $key => $fields) {
$ok = 'yes';
if ($ck_display_admin) {
if ($fields['display_admin'] == 'no_display')
$ok = 'no';
}
if ($ok == 'yes') {
if (!$fields['value'])
$fields['value'] = $data[$fields['db_field']];
$new_array[$key] = $fields;
}
}
return $new_array;
}
/**
* Function used to load custom form fields
*/
function load_custom_form_fields($data, $group_based = false) {
if (!$group_based) {
$array = $this->custom_form_fields;
foreach ($array as $key => $fields) {
if ($data[$fields['db_field']])
$value = $data[$fields['db_field']];
elseif ($data[$fields['name']])
$value = $data[$fields['name']];
if ($fields['type'] == 'radiobutton' ||
$fields['type'] == 'checkbox' ||
$fields['type'] == 'dropdown')
$fields['checked'] = $value;
else
$fields['value'] = $value;
$new_array[$key] = $fields;
}
return $new_array;
}else {
return $array = $this->custom_form_fields_groups;
}
}
/**
* function used to upload user avatar and or background
*/
function upload_user_file($type = 'a', $file, $uid) {
global $db, $userquery, $cbphoto, $imgObj;
$avatar_dir = BASEDIR . '/images/avatars/';
$bg_dir = BASEDIR . '/images/backgrounds/';
if ($userquery->user_exists($uid)) {
switch ($type) {
case 'a':
case 'avatar': {
if ($file['size'] / 1024 > config('max_profile_pic_size'))
e(sprintf(lang('file_size_exceeds'), config('max_profile_pic_size')));
elseif (file_exists($file['tmp_name'])) {
$ext = getext($file['name']);
$file_name = $uid . '.' . $ext;
$file_path = $avatar_dir . $file_name;
if (move_uploaded_file($file['tmp_name'], $file_path)) {
if (!$imgObj->ValidateImage($file_path, $ext)) {
e(lang("Invalid file type"));
@unlink($file_path);
} else {
$small_size = $avatar_dir . $uid . '-small.' . $ext;
$cbphoto->CreateThumb($file_path, $file_path, $ext, AVATAR_SIZE, AVATAR_SIZE);
$cbphoto->CreateThumb($file_path, $small_size, $ext, AVATAR_SMALL_SIZE, AVATAR_SMALL_SIZE);
}
} else {
e(lang("class_error_occured"));
}
}
}
break;
case 'b':
case 'bg':
case 'background': {
if ($file['size'] / 1024 > config('max_bg_size'))
e(sprintf(lang('file_size_exceeds'), config('max_bg_size')));
elseif (file_exists($file['tmp_name'])) {
$ext = getext($file['name']);
$file_name = $uid . '.' . $ext;
$file_path = $bg_dir . $file_name;
if (move_uploaded_file($file['tmp_name'], $file_path)) {
if (!$imgObj->ValidateImage($file_path, $ext)) {
e(lang("Invalid file type"));
@unlink($file_path);
} else {
$imgObj->CreateThumb($file_path, $file_path, BG_SIZE, $ext);
}
} else {
e(lang("An error occured While Uploading File!"));
}
}
}
break;
}
return $file_name;
}else
e(lang('user_doesnt_exist'));
}
/**
* Function used to upload website logo
* @param logo_file
* @return $file_name.'.'.$ext;
*/
function upload_website_logo($file) {
global $imgObj, $LANG;
if (!empty($file['name'])) {
//$file_num = $this->get_available_file_num($file_name);
$ext = getExt($file['name']);
$file_name = 'plaery-logo';
if ($imgObj->ValidateImage($file['tmp_name'], $ext)) {
$file_path = BASEDIR . '/images/' . $file_name . '.' . $ext;
if (file_exists($file_path))
if (!unlink($file_path)) {
e("Unable to remove '$file_path' , please chmod it to 0777");
return false;
}
move_uploaded_file($file['tmp_name'], $file_path);
//$imgObj->CreateThumb($file_path,$file_path,200,$ext,200,false);
e("Logo has been uploaded", 'm');
return $file_name . '.' . $ext;
}else
e("Invalid Image file");
}
return false;
}
/**
* load_video_fields
*
* @param $input default values for all videos
* @return array of video fields
*
* Function used to load Video fields
* in clipbucket v2.5 , video fields are loaded in form of groups arrays
* each group has it name and fields wrapped in array
* and that array will be part of video fields
*/
function load_video_fields($input) {
$fields = array
(
array
(
'group_name' => lang('required_fields'),
'group_id' => 'required_fields',
'fields' => $this->loadRequiredFields($input),
),
array
(
'group_name' => lang('vdo_share_opt'),
'group_id' => 'sharing_fields',
'fields' => $this->loadOptionFields($input),
),
array
(
'group_name' => lang('date_recorded_location'),
'group_id' => 'date_location_fields',
'fields' => $this->loadLocationFields($input),
)
);
//Adding Custom Fields
$custom_fields = $this->load_custom_form_fields($input, false);
if ($custom_fields) {
$more_fields_group =
array
(
'group_name' => lang('more_fields'),
'group_id' => 'custom_fields',
'fields' => $custom_fields,
);
}
//Adding Custom Fields With Groups
$custom_fields_with_group = $this->load_custom_form_fields($input, true);
//Finaling putting them together in their main array called $fields
if ($custom_fields_with_group) {
$custFieldGroups = $custom_fields_with_group;
foreach ($custFieldGroups as $gKey => $fieldGroup) {
foreach ($fieldGroup['fields'] as $mainKey => $nField) {
$updatedNewFields[$mainKey] = $nField;
if ($input[$nField['db_field']])
$value = $input[$nField['db_field']];
elseif ($input[$nField['name']])
$value = $input[$nField['name']];
if ($nField['type'] == 'radiobutton' ||
$nField['type'] == 'checkbox' ||
$nField['type'] == 'dropdown')
$updatedNewFields[$mainKey]['checked'] = $value;
else
$updatedNewFields[$mainKey]['value'] = $value;
}
$fieldGroup['fields'] = $updatedNewFields;
$group_id = $fieldGroup['group_id'];
foreach ($fields as $key => $field) {
if ($field['group_id'] == $group_id) {
$inputFields = $field['fields'];
//Setting field values
$newFields = $fieldGroup['fields'];
$mergeField = array_merge($inputFields, $newFields);
//Finally Updating array
$newGroupArray =
array
(
'group_name' => $field['group_name'],
'group_id' => $field['group_id'],
'fields' => $mergeField,
);
$fields[$key] = $newGroupArray;
$matched = true;
break;
}else
$matched = false;
}
if (!$matched)
$fields[] = $fieldGroup;
}
}
if ($more_fields_group)
$fields[] = $more_fields_group;
return $fields;
}
function isTime($time) {
preg_match("/(([0-9]?[0-9]{1}):)?([0-5]{1}[0-9]{1}):([0-5]{1}[0-9]{1})/", $time, $match);
if (!empty($match[0]))
return ($match[0]);
else
return false;
}
function time_to_sec($time) {
if (!$this->isTime($time))
e(lang("Format of time is not right."));
else {
$hours = substr($time, 0, -6);
$minutes = substr($time, -5, 2);
$seconds = substr($time, -2);
return $hours * 3600 + $minutes * 60 + $seconds;
}
}
/**
* Get files from conversion queue..
*
* @return ARRAY
*/
function get_queued_files() {
global $db;
$results = $db->select(tbl("conversion_queue"), "*", " conversion='p' OR conversion='no' ", NULL, " conversion_counts ASC ");
if ($db->num_rows > 0) {
$new_results = array();
//Get video files...we can do this by LEFT JOIN but want a child array for this.
foreach ($results as $result) {
$result['files'] = $this->get_video_files(array('queue_id' => $result['queue_id']));
$new_results[] = $result;
}
return $new_results;
}else
return false;
}
/**
* Get queue details from database
*
* get_queue_details
*
* @param INT queue_id
* @return ARRAY queue details with video files
*/
function get_queue_details($qid) {
global $db;
$results = $db->select(tbl('conversion_queue'), '*', "queue_id='$qid'");
if ($db->num_rows > 0) {
$result = $results[0];
$result['files'] = $this->get_video_files(array('queue_id' => $qid));
return $result;
}else
return false;
}
/**
* Get video files from database table
* this will fetch data from cb_video_files as per given conditions
*
* @param ARRAY $array a set of conditions
* @return ARRAY $output list of files
*/
function get_video_files($array) {
global $db;
$array = apply_filters($array, 'get_video_files');
$cond = "";
if ($array['limit'])
$limit = $array['limit'];
else
$limit = NULL;
if ($array['order'])
$order = $array['order'];
else
$order = ' file_id ASC ';
if ($array['queue_id'])
$cond = cond(" queue_id = '" . $array['queue_id'] . "' ");
if ($array['file_name'])
$cond = cond(" file_name = '" . $array['file_name'] . "' ");
$cond = apply_filters($cond, 'get_video_files_cond');
$results = $db->select(tbl('video_files'), '*', $cond, $limit, $order);
if ($db->num_rows > 0) {
$output = $results;
}else
$output = 0;
$output = apply_filters($output, 'get_video_files_output');
return $output;
}
/**
* Count number of conversion beein proccessed
*
* conversions_count
*/
function conversion_count() {
global $db;
$count = $db->count(tbl('video_files'), 'file_id', "status='p'");
return $count;
}
/**
* Update queue status..
*
* @param STRING status
* @param STRING message
*/
function update_queue_status($qid, $status, $message = NULL, $increment = false) {
global $db;
if (is_array($qid)) {
$queue = $qid;
$qid = $queue['queue_id'];
} else {
//$queue = $this->get_queue_details($qid);
}
$queue = $this->get_queue_details($qid);
//Messages Array
$messages = $queue['messages'];
$messages = json_decode($messages, true);
$messages[] = $message;
$messages = '|no_mc|' . json_encode($messages);
$fields = array('conversion', 'status', 'messages', 'conversion_counts', 'time_completed');
$tbl = tbl('conversion_queue');
$conv_count = $queue['conversion_counts'];
if ($increment) {
$conv_count = $conv_count + 1;
}
switch ($status) {
case "u": {
$db->update($tbl, $fields, array('p', 'u', $messages, $conv_count, time()), "queue_id='$qid'");
}
break;
case "s": {
$db->update($tbl, $fields, array('yes', 's', $messages, $conv_count, time()), "queue_id='$qid'");
}
break;
case "f": {
$db->update($tbl, $fields, array('yes', 'f', $messages, $conv_count, time()), "queue_id='$qid'");
}
break;
}
}
/**
* Add video file
*
* @param INT queue_id
* @param ARRAY video_info
* @param INT profile_id
*/
function add_video_file($qid, $vid_info, $status = 'p', $profile_id = NULL, $log_file = NULL) {
global $db, $cbvid;
if ($profile_id)
$profile = $cbvid->get_video_profile($profile_id);
if (is_array($qid)) {
$queue = $qid;
$qid = $queue['queue_id'];
} else {
$queue = $this->get_queue_details($qid);
}
$fields = array();
$values = array();
$is_original = 'no';
if (!$profile_id) {
$is_original = 'yes';
$file_ext = $queue['queue_ext'];
}else
$file_ext = $profile['ext'];
$directory = create_dated_folder(NULL, $queue['date_added']);
$original_source = $queue['queue_name'] . '.' . $queue['queue_ext'];
$vid_info = '|no_mc|' . json_encode($vid_info);
$file_name = $queue['queue_name'];
$vid_file = $this->video_file_exists($file_name, $qid, $profile_id, $file_ext);
if ($vid_file)
return $vid_file['file_id'];
$fields = array('queue_id', 'file_name', 'file_directory',
'original_source', 'is_original', 'file_ext',
'output_results', 'status', 'profile_id', 'date_added', 'log_file');
$values = array($qid, $file_name, $directory, $original_source,
$is_original, $file_ext, $vid_info, $status, $profile_id, now(), $log_file);
if (!$profile_id) {
$fields[] = 'date_completed';
$values[] = now();
}
$db->insert(tbl('video_files'), $fields, $values);
return $db->insert_id();
}
/**
* update video file info
*
* @param INT profile_id
* @param ARRAY $file_fileds
* @param ARRAY $file_values
*/
function update_video_file($fid, $values) {
global $db;
db_update(tbl('video_files'),$values,"file_id='$fid' ");
//$db->update(tbl('video_files'), $flds, $vals, "file_id='$fid' ");
}
/**
* video file exists
*
* @param file_name
* @param Queue_id
* @param ext
*/
function video_file_exists($filename, $queueid = NULL, $profile_id = NULL, $ext = NULL) {
global $db;
$var = " ";
if ($filename)
$var = cond("file_name='$filename'", "AND", $var);
if ($queueid)
$var = cond("queue_id='$queueid'", "AND", $var);
if ($ext)
$var = cond("file_ext='$ext'", "AND", $var);
if ($profile_id)
$var = cond("profile_id='$profile_id'", "AND", $var);
$results = $db->select(tbl('video_files'), "*", $var);
if ($db->num_rows > 0)
return $results[0];
else
return false;
}
/**
* deactivate a queue
*/
function deactivate_queue($filename)
{
db_update(tbl('conversion_queue'),array(
'active' => 'no'
)," queue_name='$filename' ");
}
}
?>