File: D:/HostingSpaces/SBogers10/deensekroon.komma-mediadesign.nl/wwwroot/admin/php/media.php
<?php
/*
media.php
Mike Ontwerpt 2012
www.mikeontwerpt.nl
*/
//initialize Media Library
function initMedia(){
//set folderstring
if(!isset($_SESSION['folder-string'])) $_SESSION['folder-string'] = 'root';
if(defined('URL_SUB')){
if(substr(URL_SUB,0,4) == 'root') $_SESSION['folder-string'] = URL_SUB;
}
else{
$_SESSION['folder-string'] = 'root';
}
/* D I S P A T C H E R */
$output = '';
if(isset($_POST['back'])){
$output .= showDashboard();
}
else if(isset($_POST['sbm-add-folder'])){
//VALIDATE ADD FOLDER
$output .= validateAddFolder();
}
else if(isset($_POST['sbm-rename-folder'])){
//VALIDATE RENAME FOLDER
$output .= validateRenameFolder();
}
else if(isset($_POST['sbm-rename-file'])){
//VALIDATE RENAME FILE
$output .= validateRenameFile();
}
else if(isset($_POST['sbm-add-media'])){
//VALIDATE ADD MEDIA
$output .= dispatchAddMedia();
}
else if(isset($_POST['sbm-delete-selected'])){
$output .= deleteSelected();
}
else if(isset($_POST['show-delete-selected'])){
$output .= showFormDeleteSelected();
}
else if(isset($_POST['move-selected'])){
$output .= moveSelected();
}
else if(defined('URL_SUB')){
$subpage = URL_SUB;
switch($subpage){
case 'add-folder':
$output .= showFormAddFolder();
break;
case 'add-media':
$output .= showFormAddMedia();
break;
case 'rename':
$output .= showFormRenameFolder();
break;
case 'rename-file':
$output .= showFormRenameFile();
break;
default:
$output .= showDashboard();
}
}
else{
//show home / dashboard
$output .= showDashboard();
}
return $output;
}
function showDashboard(){
/* access the global sql object */
global $mysqli;
/* language */
$siteLabels = getLanguage();
$output = '';
/* title */
$output .= '<h1>'.$siteLabels['medialib-title'].'</h1>';
/* folder structure - where am i */
$output .= showFolderStructure();
//start with form for checkboxes
$output .= '<form action="" name="chkForm" method="post">';
/* buttons */
$output .= '<div class="submenu">';
//buttons
$output .= '<a href="/admin/media/add-media/" class="btn184 proceed">'.$siteLabels['medialib-addmedia'].'</a>';
$output .= '<a href="/admin/media/add-folder/" class="btn184">'.$siteLabels['medialib-addfolder'].'</a>';
$output .= '<input type="submit" name="show-delete-selected" value="'.$siteLabels['medialib-deleteselected'].'" class="btn184"/>';
$currentString = $_SESSION['folder-string'];
##################### move ############################
$query = 'SELECT DISTINCT f.id, f.title, f.folderstring
FROM media_folders AS f, content_status AS s
WHERE f.id = s.itemId
AND s.linkname = "media_folders"
AND s.active = "1"
AND f.folderstring LIKE "'.$currentString.'%"
AND f.folderstring != "'.$currentString.'"
ORDER BY f.title';
if(!$result = $mysqli->query($query)){
//handle errors
$errors[] = $siteLabels['fm-somethingwentwrong'];
displayErrors($errors);
}
else{
//display folders
$i = 0;
$moveArr = array();
while($record = $result->fetch_assoc()){
$folderId = $record['id'];
$title = fromDatabase($record['title']);
$folderstring = $record['folderstring'];
$temp = explode('_',$_SESSION['folder-string']);
$currentLevel = count($temp); //level where we are
$temp2 = explode('_',$folderstring);
$thisLevel = count($temp2); // level of folder
if($thisLevel == ($currentLevel+1)){
$moveArr[$i]['val'] = $folderstring;
$moveArr[$i]['label'] = $title;
$i++;
}
}
$temp = explode('_',$_SESSION['folder-string']);
$currentLevel = count($temp); //level where we are
$up = '';
foreach($temp as $key => $value){
if($key != (count($temp)-1)){
$up .= $value.'_';
}
}
$up = substr($up,0,-1);
}
$output .= '<div class="move-column">';
$output .= '<select name="move-to">';
$output .= '<option value="no-move">'.$siteLabels['medialib-move-to-folder'].'</value>';
if($currentLevel != 1) $output .= '<option value="'.$up.'">..'.$siteLabels['medialib-move-up'] .'..</value>';
foreach($moveArr as $key => $value){
$output .= '<option value="'.$value['val'].'" ';
$output .= '>'.$value['label'].'</option>';
}
$output .= '</select>';
$output .= '</div>';
#######################################################
$output .= '<input type="submit" name="move-selected" value="move" class="btn184"/>';
$output .= '<div class="clear"></div>';
$output .= '</div>';
/* content */
$output .= '<input type="checkbox" name="checkCtrl" value="checkAll" onClick="check_all(this);" /><em>'.$siteLabels['form-checkall'].'</em><br /><br />';
#1 DISPLAY FOLDERS
//always show one row
$output .= '<div class="medialib-thumb-row">';
$query = 'SELECT DISTINCT f.id, f.title, f.folderstring
FROM media_folders AS f, content_status AS s
WHERE f.id = s.itemId
AND s.linkname = "media_folders"
AND s.active = "1"
AND f.folderstring LIKE "'.$currentString.'%"
AND f.folderstring != "'.$currentString.'"
ORDER BY f.title';
if(!$result = $mysqli->query($query)){
//handle errors
$errors[] = $siteLabels['fm-somethingwentwrong'];
displayErrors($errors);
}
else{
//display folders
$colcount = 0;
while($record = $result->fetch_assoc()){
$folderId = $record['id'];
$title = fromDatabase($record['title']);
$folderstring = $record['folderstring'];
//only display when we are on the right level
$temp = explode('_',$_SESSION['folder-string']);
$currentLevel = count($temp); //level where we are
$temp2 = explode('_',$folderstring);
$thisLevel = count($temp2); // level of folder
if($thisLevel == ($currentLevel+1)){
//display
$output .= '<div class="medialib-thumb-holder">';
$output .= '<a href="/admin/media/'.$folderstring.'/">';
$output .= '<span class="medialib-thumb-folder"></span>';
$output .= '<span class="medialib-thumb-title">';
$output .= $title;
$output .= '</span>';
$output .= '</a>';
$output .= '<div class="medialib-thumb-actions">';
$output .= '<input type="checkbox" name="option[]" id="option" value="folder-'.$folderId.'" /> ';
$output .= '<a href="/admin/media/rename/'.$folderId.'/">rename</a>';
$output .= '</div>';
$output .= '</div>';
$colcount++;
if($colcount == 10){
$output .= '<div class="clear"></div>';
$output .= '</div>';
$output .= '<div class="medialib-thumb-row">';
$colcount = 0;
}
}
}
}
#2 DISPLAY FILES
$query = 'SELECT DISTINCT f.id, f.type, f.title, f.cp_thumb
FROM media_files AS f, content_status AS s
WHERE f.id = s.itemId
AND s.linkname = "media_files"
AND s.active = "1"
AND f.folderstring = "'.$currentString.'"
ORDER BY f.title';
if(!$result = $mysqli->query($query)){
//handle errors
$errors[] = $siteLabels['fm-somethingwentwrong'];
displayErrors($errors);
}
else{
while($record = $result->fetch_assoc()){
$fileId = $record['id'];
$type = $record['type'];
$title = fromDatabase($record['title']);
$thumb = '/images/uploads/thumb/'.$record['cp_thumb'];
//display files
$output .= '<div class="medialib-thumb-holder">';
if($type == 2) $output .= '<span class="medialib-thumb-vimeo">';
if($type == 3) $output .= '<span class="medialib-thumb-youtube">';
if($type == 1) $output .= '<span class="medialib-thumb-image">';
if($type == 1) $output .= '<img src="'.$thumb.'" alt="'.$title.'" />';
$output .= '</span>';
$output .= '<span class="medialib-thumb-title">';
$output .= $title;
$output .= '</span>';
$output .= '<div class="medialib-thumb-actions">';
$output .= '<input type="checkbox" name="option[]" id="option" value="file-'.$fileId.'" /> ';
$output .= '<a href="/admin/media/rename-file/'.$fileId.'/">rename</a>';
$output .= '</div>';
$output .= '</div>';
$colcount++;
if($colcount == 10){
$output .= '<div class="clear"></div>';
$output .= '</div>';
$output .= '<div class="medialib-thumb-row">';
$colcount = 0;
}
}
}
$output .= '<div class="clear"></div>';
$output .= '</div>';
//end first row
//end form for checkboxes
$output .= '</form>';
return $output;
}
function showFolderStructure(){
/* access the global sql object */
global $mysqli;
$output = '';
/* folder structure - where am i */
$output .= '<div id="folder-structure-holder">';
#1 always start with media
$output .= '<a href="/admin/media/root/">';
if($_SESSION['folder-string'] == 'root'){
//if isset sub media is not active
$output .= '<span class="small-active-folder"></span>';
}
else{
//if !isset sub media is active
$output .= '<span class="small-folder"></span>';
}
$output .= 'media';
$output .= '</a>';
#2 get the rest
//explode string
$folders = explode('_',$_SESSION['folder-string']);
$foldersUrl = explode('_',$_SESSION['folder-string']);
//folders[0] == root
if(count($folders) > 1){
foreach($folders as $key => $linkname){
//get title of each folder
$query = 'SELECT title
FROM media_folders
WHERE folderstring LIKE "%'.$linkname.'" LIMIT 1';
if(!$result = $mysqli->query($query)){
//handle errors
$errors[] = $siteLabels['fm-somethingwentwrong'];
displayErrors($errors);
}
else{
//get info
$record = $result->fetch_assoc();
$title = fromDatabase($record['title']);
//display folders
if($key != 0){ //0 = 'root'
//folder
$output .= ' › ';
//for loop for the link
$output .= '<a href="/admin/media/';
$url = 'root_';
for($i=1;$i<=$key;$i++){
$url .= $folders[$i].'_';
}
//substract last _
$url = substr($url,0,(strlen($url)-1));
$output .= $url.'/';
$output .= '">';
//folder
$key == (count($folders)-1) ? $output .= '<span class="small-active-folder"></span>' : $output .= '<span class="small-folder"></span>';
$output .= $title;
$output .= '</a>';
}
}
}
}
$output .= '</div>';
return $output;
}
/* A D D F O L D E R */
function showFormAddFolder(){
/* language */
$siteLabels = getLanguage();
$output = '';
/* title */
$output .= '<h1>'.$siteLabels['medialib-title'].' › '.$siteLabels['medialib-formaddfolder-h1'].'</h1>';
/* folder structure - where am i */
$output .= showFolderStructure();
/*form */
$output .= '<form action="" method="post">';
$output .= '<div class="single-column">';
//folder title
$output .= $siteLabels['medialib-formaddfolder-title'].' *<br />';
$output .= '<input type="text" name="folder-title" value="" class="txt" />';
$output .= '<input type="submit" name="sbm-add-folder" value="'.$siteLabels['medialib-formaddfolder-sbmbtn'].'" class="btn176 proceed"/>';
$output .= '<input type="submit" name="back" value="'.$siteLabels['form-cancel'].'" class="btn176"/>';
//info
$output .= '<table>';
$output .= '<tr>';
//required
$output .= '<td class="short">*</td><td class="long"><em>'.$siteLabels['form-required'].'</em></td>';
$output .= '</tr>';
$output .= '<table>';
$output .= '</div>';
$output .= '</form>';
return $output;
}
function validateAddFolder(){
//access the global sql object
global $mysqli;
/* language */
$siteLabels = getLanguage();
/* ******************* */
/* validate add folder */
#1 get input
#2 empty input ?
#3 create folder string
#4 folder string unique?
#5 add to database
#6 return to dashboard
/* ******************* */
#1 get input
$title = $_POST['folder-title'];
#2 empty input ?
if(empty($title)){
//feedback fill in required fields
$errors[] = $siteLabels['fm-emptyonefield'];
}
#3 create folder string
$linkname = linkname($title);
$currentString = $_SESSION['folder-string'];
$newString = $currentString.'_'.$linkname;
#4 folder string unqique?
$query = 'SELECT folderstring FROM media_folders WHERE folderstring = "'.$newString.'" LIMIT 1';
if($result = $mysqli->query($query)){
//feedback folder string exists
if($result->num_rows > 0){
$errors[] = $siteLabels['fm-folderstringexists'];
}
}
else{
$errors[] = $siteLabels['fm-somethingwentwrong'];
}
// VALID ?
if(isset($errors)){
displayErrors($errors);
return showFormAddFolder();
}
else{
#5 add to database
$dbTitle = inDatabase($title);
$query = 'INSERT INTO media_folders ( title, folderstring, timest) VALUES("'.$dbTitle.'","'.$newString.'",'.time().')';
if($result = $mysqli->query($query)){
#6 add status
$insertId = $mysqli->insert_id;
$query = 'INSERT INTO content_status ( linkname, itemId, active, timest) VALUES("media_folders","'.$insertId.'","1",'.time().')';
if($result = $mysqli->query($query)){
#7 return to dashboard
//succes msg
$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">√</span>'.$siteLabels['fm-addfoldersucces'].'</span>';
return showDashboard();
}
else{
$errors[] = $siteLabels['fm-somethingwentwrong'];
displayErrors($errors);
return showFormAddFolder();
}
}
else{
$errors[] = $siteLabels['fm-somethingwentwrong'];
displayErrors($errors);
return showFormAddFolder();
}
}
}
/* R E N A M E F O L D E R */
function showFormRenameFolder(){
//access the global sql object
global $mysqli;
/* language */
$siteLabels = getLanguage();
$output = '';
/* title */
$output .= '<h1>'.$siteLabels['medialib-title'].' › '.$siteLabels['medialib-formrenamefolder-h1'].'</h1>';
/* folder structure - where am i */
$output .= showFolderStructure();
//GET INFO
$folderId = URL_SUB2;
$query = 'SELECT title
FROM media_folders
WHERE id = '.$folderId.' LIMIT 1';
if(!$result = $mysqli->query($query)){
//handle errors
$errors[] = $siteLabels['fm-somethingwentwrong'];
displayErrors($errors);
}
else{
$record = $result->fetch_assoc();
$currentTitle = $record['title'];
/*form */
$output .= '<form action="" method="post">';
$output .= '<div class="single-column">';
//folder title
$output .= $siteLabels['medialib-formaddfolder-title'].' *<br />';
$output .= '<input type="text" name="folder-title" value="'.$currentTitle.'" class="txt" />';
$output .= '<input type="hidden" name="old-title" value="'.$currentTitle.'" />';
$output .= '<input type="hidden" name="folder-id" value="'.$folderId.'" />';
$output .= '<input type="submit" name="sbm-rename-folder" value="'.$siteLabels['medialib-formrenamefolder-sbmbtn'].'" class="btn176 proceed"/>';
$output .= '<input type="submit" name="back" value="'.$siteLabels['form-cancel'].'" class="btn176"/>';
//info
$output .= '<table>';
$output .= '<tr>';
//required
$output .= '<td class="short">*</td><td class="long"><em>'.$siteLabels['form-required'].'</em></td>';
$output .= '</tr>';
$output .= '<table>';
$output .= '</div>';
$output .= '</form>';
return $output;
}
}
function validateRenameFolder(){
//access the global sql object
global $mysqli;
/* language */
$siteLabels = getLanguage();
/* ******************* */
/* validate rename folder */
#1 get input
#2 empty input ?
#3 create folder string
#4 folder string unique?
#5 update database
// - title
// - folderstrings
// - folderstrings media
#6 return to dashboard
/* ******************* */
#1 get input
$title = $_POST['folder-title'];
$oldTitle = $_POST['old-title'];
$folderId = $_POST['folder-id'];
#2 empty input ?
if(empty($title)){
//feedback fill in required fields
$errors[] = $siteLabels['fm-emptyonefield'];
}
#3 create folder string
$linkname = linkname($title);
$currentString = $_SESSION['folder-string'];
$newString = $currentString.'_'.$linkname;
#4 folder string unqique?
$query = 'SELECT folderstring FROM media_folders WHERE folderstring = "'.$newString.'" AND ID != '.$folderId.' LIMIT 1';
if($result = $mysqli->query($query)){
//feedback folder string exists
if($result->num_rows > 0){
$errors[] = $siteLabels['fm-folderstringexists'];
}
}
else{
$errors[] = $siteLabels['fm-somethingwentwrong'];
}
// VALID ?
if(isset($errors)){
displayErrors($errors);
return showFormRenameFolder();
}
else{
#GET STRINGS TO UPDATE
$oldLinkname = linkname($oldTitle);
$searchStr = $currentString.'_'.$oldLinkname;
$query = 'SELECT id, folderstring FROM media_folders WHERE folderstring LIKE "'.$searchStr.'%"';
if($result = $mysqli->query($query)){
#PREPARE QUERIES WITH MYSQLi ( FOLDER TABLE )
while($record = $result->fetch_assoc()){
$thisId = $record['id'];
$thisString = $record['folderstring'];
//update strings
$replacedString = str_replace($searchStr,$newString,$thisString);
//DEFINE Queries
$updateQueries[] = 'UPDATE media_folders SET folderstring = "'.$replacedString.'" WHERE id="'.$thisId.'" LIMIT 1';
}
#PREPARE QUERIES WITH MYSQLi ( FILES TABLE )
$query = 'SELECT id, folderstring FROM media_files WHERE folderstring LIKE "'.$searchStr.'%"';
if($result = $mysqli->query($query)){
while($record = $result->fetch_assoc()){
$thisId = $record['id'];
$thisString = $record['folderstring'];
//update strings
$replacedString = str_replace($searchStr,$newString,$thisString);
//DEFINE Queries
$updateQueries[] = 'UPDATE media_files SET folderstring = "'.$replacedString.'" WHERE id="'.$thisId.'" LIMIT 1';
}
}
#UPDATE TITLE
$dbTitle = inDatabase($title);
$updateQueries[] = 'UPDATE media_folders SET title = "'.$dbTitle.'" WHERE id="'.$folderId.'" LIMIT 1';
// Set autocommit to FALSE
$mysqli->autocommit(FALSE);
foreach($updateQueries as $updatequery)
{
if(!$mysqli->query($updatequery))
{
$errors[] = $siteLabels['fm-somethingwentwrong'];
}
}
// ROLLBACK of COMMIT
if(isset($errors))
{
$mysqli->rollback();
displayErrors($errors);
return showFormRenameFolder();
}
else
{
$mysqli->commit();
return showDashboard();
}
}
else{
$errors[] = $siteLabels['fm-somethingwentwrong'];
displayErrors($errors);
return showFormRenameFolder();
}
}
}
/* R E N A M E F I L E */
function showFormRenameFile(){
//access the global sql object
global $mysqli;
/* language */
$siteLabels = getLanguage();
$output = '';
/* title */
$output .= '<h1>'.$siteLabels['medialib-title'].' › '.$siteLabels['medialib-formrenamefile-h1'].'</h1>';
/* folder structure - where am i */
$output .= showFolderStructure();
//GET INFO
$fileId = URL_SUB2;
$query = 'SELECT title
FROM media_files
WHERE id = '.$fileId.' LIMIT 1';
if(!$result = $mysqli->query($query)){
//handle errors
$errors[] = $siteLabels['fm-somethingwentwrong'];
displayErrors($errors);
}
else{
$record = $result->fetch_assoc();
$currentTitle = $record['title'];
/*form */
$output .= '<form action="" method="post">';
$output .= '<div class="single-column">';
//folder title
$output .= $siteLabels['form-title'].' *<br />';
$output .= '<input type="text" name="file-title" value="'.$currentTitle.'" class="txt" />';
$output .= '<input type="hidden" name="old-title" value="'.$currentTitle.'" />';
$output .= '<input type="hidden" name="file-id" value="'.$fileId.'" />';
$output .= '<input type="submit" name="sbm-rename-file" value="'.$siteLabels['medialib-formrenamefile-sbmbtn'].'" class="btn176 proceed"/>';
$output .= '<input type="submit" name="back" value="'.$siteLabels['form-cancel'].'" class="btn176"/>';
//info
$output .= '<table>';
$output .= '<tr>';
//required
$output .= '<td class="short">*</td><td class="long"><em>'.$siteLabels['form-required'].'</em></td>';
$output .= '</tr>';
$output .= '<table>';
$output .= '</div>';
$output .= '</form>';
return $output;
}
}
function validateRenameFile(){
//access the global sql object
global $mysqli;
/* language */
$siteLabels = getLanguage();
#1 get input
$title = $_POST['file-title'];
$oldTitle = $_POST['old-title'];
$fileId = $_POST['file-id'];
#2 empty input ?
if(empty($title)){
//feedback fill in required fields
$errors[] = $siteLabels['fm-emptyonefield'];
}
if(isset($errors)){
displayErrors($errors);
return showFormRenameFolder();
}
else{
#UPDATE TITLE
$dbTitle = inDatabase($title);
$query = 'UPDATE media_files SET title = "'.$dbTitle.'" WHERE id="'.$fileId.'" LIMIT 1';
if(!$result = $mysqli->query($query)){
//handle errors
$errors[] = $siteLabels['fm-somethingwentwrong'];
displayErrors($errors);
}
else{
$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">√</span>'.$siteLabels['fm-succesrenamedfile'].'</span>';
return showDashboard();
}
}
}
/* A D D M E D I A */
function showFormAddMedia(){
/* language */
$siteLabels = getLanguage();
$output = '';
/* title */
$output .= '<h1>'.$siteLabels['medialib-title'].' › '.$siteLabels['medialib-formaddmedia-h1'].'</h1>';
/* folder structure - where am i */
$output .= showFolderStructure();
/*form */
$output .= '<form action="" method="post" enctype="multipart/form-data">';
$output .= '<div class="single-column">';
/*
select media type:
Use Javascript to change the form layout
*/
$output .= '<div class="single-column-row">';
$output .= $siteLabels['medialib-selecttype-title'].' *<br />';
$output .= '</div>';
$currentType = 1;
if(isset($_SESSION['media-data']['type'])) $currentType = $_SESSION['media-data']['type'];
$output .= '<select name="media-type" onChange="changeAddMediaForm(this.options[selectedIndex].value);">';
//image
$output .= '<option value="1" ';
if($currentType == 1){ $output .= 'selected'; }
$output .= '>'.$siteLabels['medialib-mediatype-image'].'</option>';
//vimeo
$output .= '<option value="2" ';
if($currentType == 2){ $output .= 'selected'; }
$output .= '>'.$siteLabels['medialib-mediatype-vimeo'].'</option>';
//youtube
$output .= '<option value="3" ';
if($currentType == 3){ $output .= 'selected'; }
$output .= '>'.$siteLabels['medialib-mediatype-youtube'].'</option>';
$output .= '</select>';
$output .= '</div>';
$output .= '<div class="quadruple-column">';
/* all media-forms are loaded in addmedia-form-loader */
/**** START FORM LOADER ****/
$output .= '<div id="addmedia-form-loader">';
$output .= '<script type="text/javascript">changeAddMediaForm("'.$currentType.'");</script>';
$output .= '</div>';
/**** END FORM LOADER ****/
$output .= '<div class="double-column-row">';
$output .= '<input type="submit" name="sbm-add-media" value="'.$siteLabels['medialib-formaddmedia-sbmbtn'].'" class="btn176 proceed" onclick="showLoading();" />';
$output .= '<input type="submit" name="back" value="'.$siteLabels['form-cancel'].'" class="btn176"/>';
$output .= '</div>';
$output .= '<div class="clear"></div>';
//info
$output .= '<table>';
$output .= '<tr>';
//required
$output .= '<td class="short">*</td><td class="long"><em>'.$siteLabels['form-required'].'</em></td>';
$output .= '</tr>';
$output .= '<table>';
$output .= '</div>';
$output .= '<div class="clear">';
$output .= '</form>';
return $output;
}
/* V A L I D A T E M E D I A */
function dispatchAddMedia(){
/* ******************* */
/* dispatch add media */
#1 get type
#2 switch type
/* ******************* */
#1 get type
$type = $_SESSION['media-data']['type'] = $_POST['media-type'];
#2 switch type
switch($type){
case 1 :
return validateImages();
break;
case 2 :
case 3 :
return validateVideos();
break;
}
}
function validateImages(){
//access the global sql object
global $mysqli;
/* language */
$siteLabels = getLanguage();
$succesCount = 0;
$failCount = 0;
$fileFails = 0;
foreach ($_FILES['images']['name'] as $key => $value) {
#if both empty -> do nothing
$title = $_POST['titles'][$key];
$fails[$key] = 0;
if(!empty($value) || !empty($title)){
#image-1 empty value?
if(empty($value) || empty($title)){
$errors[] = str_replace('[file]',$value,$siteLabels['fm-medialib-empty']);
$fails[$key]++;
}
#image-2 file-size ok?
$file_size = $_FILES['images']['size'][$key];
$limit_size = 1000000;
//when the file isn't to big
if($file_size > $limit_size){
$displaysize = '1mb';
$err = str_replace('[file]',$value,$siteLabels['fm-medialib-toobig']);
$err = str_replace('[maxfilesize]',$displaysize,$err);
$errors[] = $err;
$fails[$key]++;
}
#image-3 extention ok?
$fileExtArr = explode('.', $value);
//the last part of this array is the extention
$fileExt = strtolower($fileExtArr[count($fileExtArr) - 1]);
if($fileExt != 'jpg' && $fileExt != 'png' && $fileExt != 'gif' && $fileExt != 'jpeg'){
$errors[] = str_replace('[file]',$value,$siteLabels['fm-medialib-extention']);
$fails[$key]++;
}
#image-4 VALID? -> create shortcode / name / path / images
if(isset($errors))
{
//FAIL!
}
else
{
//valid!
# valid 1 -> Create shortcode
$shortCode = $key.time();
# valid 2 -> Create file name with client name init (for SEO)
$query = 'SELECT name FROM shop_config LIMIT 1';
if($result = $mysqli->query($query)){
$record = $result->fetch_assoc();
$shopName = $record['name'];
}
else{ $shopName = ''; }
$shopName = linkname($shopName);
$linkname = linkname($title);
$fileName = $shopName.'_'.$linkname.'_'.$shortCode.'.'.$fileExt;
$fileThumbName = $shopName.'_'.$linkname.'_'.$shortCode.'_thumb.'.$fileExt;
# valid 3 -> Create path
$dirpath = '/images/uploads/';
$thumbdirpath = '/images/uploads/thumb/';
//if(!file_exists($_SERVER['DOCUMENT_ROOT'] . $dirpath)){ mkdir($_SERVER['DOCUMENT_ROOT'] . $dirpath, 0777);}
//if(!file_exists($_SERVER['DOCUMENT_ROOT'] . $thumbdirpath)){ mkdir($_SERVER['DOCUMENT_ROOT'] . $thumbdirpath, 0777);}
$path = $dirpath.$fileName;
$thumbpath = $thumbdirpath.$fileThumbName;
# valid 4 -> need crop ?
$croptype = $_POST['croptype'.$key];
switch($croptype){
case 'product' :
//need extra filename
$fileName2 = $shopName.'_'.$linkname.'2_'.$shortCode.'.'.$fileExt;
$fileName3 = $shopName.'_'.$linkname.'_small_'.$shortCode.'.'.$fileExt;
if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName, '800', '800')){ $errors[] = str_replace('[file]',$value.' (file1)',$siteLabels['fm-medialib-fileuploaderr']); }
if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName2, '312', '312')){ $errors[] = str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']); }
if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName3, '240', '268')){ $errors[] = str_replace('[file]',$value.' (file3)',$siteLabels['fm-medialib-fileuploaderr']); }
/*
if(!empty($_FILES['hoverimages']['name'][$key])){
//$fileHoverName = $shopName.'_'.$linkname.'_'.$shortCode.'_hover.'.$fileExt;
$fileHoverName2 = $shopName.'_'.$linkname.'_'.$shortCode.'_fullhover.'.$fileExt;
$fileHoverName3 = $shopName.'_'.$linkname.'_'.$shortCode.'_smallhover.'.$fileExt;
//if(!createImage($_FILES['hoverimages']['tmp_name'][$key], $dirpath.$fileHoverName, '312', '312')){ $errors[] = str_replace('[file]',$value.' (hoverfile)',$siteLabels['fm-medialib-fileuploaderr']); }
if(!createImage($_FILES['hoverimages']['tmp_name'][$key], $dirpath.$fileHoverName2, '800', '800')){ $errors[] = str_replace('[file]',$value.' (hoverfile2)',$siteLabels['fm-medialib-fileuploaderr']); }
if(!createImage($_FILES['hoverimages']['tmp_name'][$key], $dirpath.$fileHoverName3, '144', '160')){ $errors[] = str_replace('[file]',$value.' (hoverfile3)',$siteLabels['fm-medialib-fileuploaderr']); }
}*/
break;
case 'sfeer' :
//need extra filename
$fileName2 = $shopName.'_'.$linkname.'2_'.$shortCode.'.'.$fileExt;
$fileName3 = $shopName.'_'.$linkname.'_small_'.$shortCode.'.'.$fileExt;
if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName, '700', '1000')){ $errors[] = str_replace('[file]',$value.' (file1)',$siteLabels['fm-medialib-fileuploaderr']); }
if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName2, '350', '500')){ $errors[] = str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']); }
if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName3, '240', '268')){ $errors[] = str_replace('[file]',$value.' (file3)',$siteLabels['fm-medialib-fileuploaderr']); }
break;
case 'blog' :
//need extra filename
$fileName2 = $shopName.'_'.$linkname.'2_'.$shortCode.'.'.$fileExt;
if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName, '1000', '800')){ $errors[] = str_replace('[file]',$value.' (file1)',$siteLabels['fm-medialib-fileuploaderr']); }
if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName2, '622', '')){ $errors[] = str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']); }
break;
default:
$fileName2 = $shopName.'_'.$linkname.'2_'.$shortCode.'.'.$fileExt;
$fileName3 = $shopName.'_'.$linkname.'_small_'.$shortCode.'.'.$fileExt;
if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName, '', '')){ $errors[] = str_replace('[file]',$value.' (file1)',$siteLabels['fm-medialib-fileuploaderr']); }
if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName2, '', '')){ $errors[] = str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']); }
if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName3, '240', '268')){ $errors[] = str_replace('[file]',$value.' (file3)',$siteLabels['fm-medialib-fileuploaderr']); }
}
//create thumb for control panel
if(!createImage($_FILES['images']['tmp_name'][$key], $thumbpath, '88', '88')){ $errors[] = str_replace('[file]',$value.' (thumb)',$siteLabels['fm-medialib-fileuploaderr']); }
//did something go wrong while file uploading
if(isset($errors))
{
//FAIL!!
$fails[$key]++;
}
else
{
#WRITE INTO DATABASE
//if!isset extra filenames create variables
if(!isset($fileName2)) $fileName2 = NULL;
if(!isset($fileName3)) $fileName3 = NULL;
$dbTitle = inDatabase($title);
$folderstring = $_SESSION['folder-string'];
$insertquery = 'INSERT INTO media_files( type, title, shortcode, folderstring, path, cp_thumb, filename_medium, filename_small, timest)
VALUES("1","'.$dbTitle.'", "'.$shortCode.'","'.$folderstring.'","'.$fileName.'", "'.$fileThumbName.'","'.$fileName2.'","'.$fileName3.'",'.time().')';
if(!$insertresult = $mysqli->query($insertquery)){
$errors[] = 'something went wrong'.$mysqli->error;
//FAIL!!
$fails[$key]++;
}
else{
#add status
$insertId = $mysqli->insert_id;
$query = 'INSERT INTO content_status ( linkname, itemId, active, timest) VALUES("media_files","'.$insertId.'","1",'.time().')';
if($result = $mysqli->query($query)){
$succesCount++;
}
}
}
}
$failCount += $fails[$key];
if($failCount > 0) $fileFails++;
} // end if both empty
}//end for each
//FEEDBACK TO THE USER:
if($succesCount > 0){
$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">√</span>'.$succesCount.' files uploaded succesfully!</span>';
}
if($failCount > 0){
$fmmsg = '<span class="fm-err fm-global">';
$fmmsg .= '<span class="fm-err-x">×</span>Sorry, '.$fileFails.' file(s) were/was not uploaded, '.$failCount.' error(s) occured..';
$fmmsg .= '<ul class="error-list">';
foreach($errors as $key => $msg){
$fmmsg .= '<li>'.$msg.'</li>';
}
$fmmsg .= '</ul>';
$fmmsg .= '</span>';
if($succesCount > 0){
$_SESSION['feed-msg'] .= $fmmsg;
}
else{
$_SESSION['feed-msg'] = $fmmsg;
}
}
return showDashboard();
}
function validateVideos(){
//access the global sql object
global $mysqli;
/* language */
$siteLabels = getLanguage();
if($_POST['media-type'] == 2) $link = $_SESSION['media-data']['link'] = $_POST['vimeoLink'];
if($_POST['media-type'] == 3) $link = $_SESSION['media-data']['link'] = $_POST['youtubeLink'];
$title = $_SESSION['media-data']['title'] = $_POST['title'];
#1 Empty files ?
if(empty($title) || empty($link)){
//error
$errors[] = $siteLabels['fm-emptyrequiredfields'];
}
if(isset($errors))
{
displayErrors($errors);
return showFormAddMedia();
}
else{
#Update database
# valid 1 -> Create shortcode
$shortCode = '0'.time();
$dbTitle = inDatabase($title);
$folderstring = $_SESSION['folder-string'];
$type = $_POST['media-type'];
$insertquery = 'INSERT INTO media_files( type, title, shortcode, folderstring, timest, path)
VALUES("'.$type.'","'.$dbTitle.'", "'.$shortCode.'","'.$folderstring.'","'.$link.'",'.time().')';
if(!$insertresult = $mysqli->query($insertquery)){
$errors[] = 'something went wrong';
displayErrors($errors);
return showFormAddMedia();
}
else{
#add status
$insertId = $mysqli->insert_id;
$query = 'INSERT INTO content_status ( linkname, itemId, active, timest) VALUES("media_files","'.$insertId.'","1",'.time().')';
if($result = $mysqli->query($query)){
unset($_SESSION['media-data']);
return showDashboard();
}
}
}
}
/* D E L E T E S E L E C T E D */
function showFormDeleteSelected(){
//if any box is checked
if(isset($_POST['option'])){
//access the global sql object
global $mysqli;
/* language */
$siteLabels = getLanguage();
$output = '';
/* title */
$output .= '<h1>'.$siteLabels['medialib-title'].' › '.$siteLabels['medialib-deleteselected'].'</h1>';
/* get checkd */
foreach($_POST['option'] as $key => $itemId){
if(isset($itemId)){
$temp = explode('-',$itemId);
$temp[0] == 'folder' ? $folders[] = $temp[1] :$files[] = $temp[1] ;
}
}
/* display question */
$output .= $siteLabels['areyousure-deleteselected'];
$output .= '<br /><br />';
$output .= '<div class="medialib-thumb-row">';
$colcount = 0;
/* display folders */
if(isset($folders)){
foreach($folders as $key => $folderId){
//get info
$query = 'SELECT DISTINCT id, title
FROM media_folders
WHERE id = '.$folderId.'
ORDER BY title';
if(!$result = $mysqli->query($query)){
$errors[] = 'something went wrong';
}
else{
$record = $result->fetch_assoc();
$title = fromDatabase($record['title']);
//display folders
$output .= '<div class="medialib-thumb-holder">';
$output .= '<span class="medialib-thumb-folder"></span>';
$output .= '<span class="medialib-thumb-title">';
$output .= $title;
$output .= '</span>';
$output .= '</div>';
$colcount++;
if($colcount == 10){
$output .= '</div>';
$output .= '<div class="medialib-thumb-row">';
$colcount = 0;
}
}
}
}
/* display files */
if(isset($files)){
foreach($files as $key => $fileId){
//get info
$query = 'SELECT DISTINCT id, type, title, cp_thumb
FROM media_files
WHERE id = '.$fileId.'
ORDER BY title';
if(!$result = $mysqli->query($query)){
$errors[] = 'something went wrong';
}
else{
$record = $result->fetch_assoc();
$title = fromDatabase($record['title']);
$type = $record['type'];
$thumb = '/images/uploads/thumb/'.$record['cp_thumb'];
//display folders
$output .= '<div class="medialib-thumb-holder">';
if($type == 2) $output .= '<span class="medialib-thumb-vimeo">';
if($type == 3) $output .= '<span class="medialib-thumb-youtube">';
if($type == 1) $output .= '<span class="medialib-thumb-image">';
if($type == 1) $output .= '<img src="'.$thumb.'" alt="'.$title.'" />';
$output .= '</span>';
$output .= '<span class="medialib-thumb-title">';
$output .= $title;
$output .= '</span>';
$output .= '</div>';
$colcount++;
if($colcount == 10){
$output .= '</div>';
$output .= '<div class="medialib-thumb-row">';
$colcount = 0;
}
}
}
}
$output .= '</div>';
$output .= '<div class="clear"></div>';
$output .= '<br /><br />';
$output .= '<div class="submenu">';
$output .= '<form action="" name="deleteselected" method="post" enctype="multipart/form-data">';
//store ud's
if(isset($files)) {
foreach($files as $key => $fileId){
$output .= '<input type="hidden" name="files[]" value="'.$fileId.'" />';
}
}
if(isset($folders)) {
foreach($folders as $key => $folderId){
$output .= '<input type="hidden" name="folders[]" value="'.$folderId.'" />';
}
}
$output .= '<input type="submit" name="sbm-delete-selected" value="'.$siteLabels['form-yes'].'" class="btn176"/>';
$output .= '<input type="submit" name="back" value="'.$siteLabels['form-no'].'" class="btn176 proceed"/>';
$output .- '</form>';
$output .= '</div>';
return $output;
}
else{
echo 'nothing happened';
//do nothing
}
}
function deleteSelected(){
//access the global sql object
global $mysqli;
/* language */
$siteLabels = getLanguage();
#BUILD QUERIES
if(isset($_POST['folders'])) $folders = $_POST['folders'];
if(isset($_POST['files'])) $files = $_POST['files'];
if(isset($folders)){
foreach($folders as $key => $folderId){
$updateQueries[] = 'UPDATE content_status SET active = "0" WHERE linkname = "media_folders" AND itemId="'.$folderId.'" LIMIT 1';
}
}
if(isset($files)){
foreach($files as $key => $fileId){
$updateQueries[] = 'UPDATE content_status SET active = "0" WHERE linkname = "media_files" AND itemId="'.$fileId.'" LIMIT 1';
}
}
// Set autocommit to FALSE
$mysqli->autocommit(FALSE);
foreach($updateQueries as $updatequery)
{
if(!$mysqli->query($updatequery))
{
$errors[] = $siteLabels['fm-somethingwentwrong'];
}
}
// ROLLBACK of COMMIT
if(isset($errors))
{
$mysqli->rollback();
displayErrors($errors);
return showDashboard();
}
else
{
$mysqli->commit();
$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">√</span>'.$siteLabels['fm-succesmovedtotrash'].'</span>';
return showDashboard();
}
}
function moveSelected(){
global $mysqli;
if(isset($_POST['option'])){
$moveto = $_POST['move-to'];
if($moveto != 'no-move'){
foreach($_POST['option'] as $key => $itemId){
$temp = explode('-',$itemId);
$itemId = $temp[1];
$mysqli->query('UPDATE media_files SET folderstring = "'.$moveto.'" WHERE id = '.$itemId.' LIMIT 1');
}
}
}
header('location: ./');
}
?>