| Current Path : /home/echanges/www/components/com_ajaxgallerydropfilesfp/ |
| Current File : /home/echanges/www/components/com_ajaxgallerydropfilesfp/ajaxgallerydropfilesfp.php |
<?php
/*
* Composant AjaxDropFilesFP pour Joomla! 3.x
* Version J3.7F
* Creation date: Mars 2017
* Author: Fabrice4821 - www.gmapfp.org
* Author email: webmaster@gmapfp.org
* License GNU/GPL
*/
defined('_JEXEC') or die;
jimport( 'joomla.filesystem.folder' );
jimport( 'joomla.filesystem.file' );
// Reference global application object
$app = JFactory::getApplication();
$input = $app->input;
// Load language file for module
$lang = JFactory::getLanguage();
$task = $input->get('task', '');
$module_id = $input->getInt('module_id', '');
$file_dir = 'media/mod_galleryfp/galleries/'.$module_id;
$allowed_ext = array('jpeg','jpg','png','gif','tif');
if ($task == 'add') {
$data_info = '';
if(!file_exists(JPATH_ROOT.'/'.$file_dir)){
JFolder::create(JPATH_ROOT.'/'.$file_dir);
$data = '<html><body bgcolor="#FFFFFF"></body></html>';
JFile::write(JPATH_ROOT.'/'.$file_dir.'/index.html', $data);
}
if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){
exit_upload(JText::_('COM_AJAXDROPFILESFP_CTRL_FILES_WRONG_HTTP_RESPONSE'));
}
$existing_files = JFolder::files(JPATH_ROOT.'/'.$file_dir);
if (count($existing_files)> 3+3) exit_upload(JText::_('COM_AJAXDROPFILESFP_TOO_MANY_FILES'));
if(array_key_exists('fpfile',$_FILES) && $_FILES['fpfile']['error'] == 0 ){
$fpfile = $_FILES['fpfile'];
if(!in_array(strtolower(JFile::getExt($fpfile['name'])),$allowed_ext)){
exit_upload(JText::_('COM_AJAXDROPFILESFP_CTRL_FILES_WRONG_FILE_EXTENSION').' : '.strtolower(JFile::getExt($fpfile['name'])));
}
if(!JFile::upload($fpfile['tmp_name'], JPATH_ROOT.'/'.$file_dir.'/'.utf8_decode(urldecode($fpfile['name'])))){
exit_upload(JText::_('COM_AJAXDROPFILESFP_CTRL_FILES_CANT_MOVE_FILE'));
}
jimport('joomla.language.helper');
$langues = JLanguageHelper::createLanguageList('', constant('JPATH_SITE'), true, true);
$json_name = 'json'.rtrim(strtr(base64_encode(urldecode($fpfile['name'])), '+/', '-_'), '=');
$data_info = '<div class="control-group span12" id="'.$json_name.'">';
$data_info .= '<div class="span3 control-group">';
$data_info .= '<label name="files_galleryfp">'.urldecode($fpfile['name']).' </label>';
$data_info .= '<img src="'.JURI::base().$file_dir.'/'.urldecode($fpfile['name']).'" style="height:60px" /><span onclick="jQuery(\'#'.$json_name.'\').addClass(\'alert-danger\');delete_file(\''.urldecode($fpfile['name']).'\');" class="icon-trash"></span>';
$data_info .= '</div>';
$data_info .= '<div class="span9 control-group">';
foreach ($langues as $langue) {
$json_lang = str_replace('-', '_', $langue['value']);
eval('$json_value = @$param_json->'.$json_name.'->'.$json_lang.';');
$data_info .= '<div class="span4 langue">';
$data_info .= $langue['value'].' <textarea name="'.$json_name.'_'.$langue['value'].'" file="'.$json_name.'" lang="'.$json_lang.'" id="'.$json_name.'_'.$langue['value'].'" onChange="update_json_value(this)">'.$json_value.'</textarea>';
$data_info .= '</div>';
}
$data_info .= '</div>';
$data_info .= '</div>';
$json_file = '{"json'.rtrim(strtr(base64_encode(urldecode($fpfile['name'])), '+/', '-_'), '=').'": {'."\n";
$json_name = 'json'.rtrim(strtr(base64_encode(urldecode($fpfile['name'])), '+/', '-_'), '=');
$json_langage = array();
foreach ($langues as $langue) {
$json_lang = str_replace('-', '_', $langue['value']);
eval('$json_value = @$param_json->'.$json_name.'->'.$json_lang.';');
$json_langage[] = '"'.str_replace('-', '_', $langue['value']).'":'.'"'.$json_value.'"';
}
$json_file .= implode(','."\n", $json_langage);
$json_file .= '}}';
$data_info = array('content' => $data_info, 'json_data' => $json_file);
}
exit_upload(true, $data_info);
}
if ($task == 'delete') {
$data = explode(',', $input->getString('data', ''));
if (JFile::delete(JPATH_ROOT.'/'.$file_dir.'/'.utf8_decode($data[0]))) {
$json_name = 'json'.rtrim(strtr(base64_encode($data[0]), '+/', '-_'), '=');
exit_upload(true, $json_name);
} else
exit_upload(false, $json_name);
JFactory::getApplication()->close();
}
function exit_upload($status,$datas='') {
$response = array('response'=>$status,'datas'=>$datas);
echo json_encode($response);
JFactory::getApplication()->close();
}