diff --git a/config.php b/config.php index 5f3a281..73b077b 100644 --- a/config.php +++ b/config.php @@ -1,12 +1,36 @@ - 'png', + 'image/jpg' => 'jpg', + 'image/jpeg' => 'jpg', + 'image/jpe' => 'jpg', + 'image/gif' => 'gif', + 'image/bmp' => 'bmp', + 'image/tiff' => 'tiff' +); +$GLOBAL['document'] = array( + 'application/vnd.oasis.opendocument.text' => 'odt', + 'application/vnd.oasis.opendocument.spreadsheet' => 'ods', + 'application/pdf' => 'pdf', + 'application/msword' => 'doc', + 'application/rtf' => 'rtf', + 'application/vnd.ms-excel' => 'xls', + 'application/vnd.ms-powerpoint' => 'ppt' +); +$GLOBAL['archive'] = array( + 'application/zip' => 'zip', + 'application/x-rar-compressed' => 'rar', + 'application/x-msdownload' => 'exe', + 'application/x-msdownload' => 'msi' +); ?> \ No newline at end of file diff --git a/config_page.php b/config_page.php index 0d31f8d..9fc115d 100644 --- a/config_page.php +++ b/config_page.php @@ -134,6 +134,7 @@ if(file_exists('user_config.php')){ } unset($GLOBAL['private_data_folder']); unset($GLOBAL['public_data_folder']); +unset($GLOBAL['image'],$GLOBAL['document'],$GLOBAL['archive']); $GLOBAL['default_data_folder']=basename($GLOBAL['default_data_folder']); $message=''; diff --git a/design/icons/AUTHORS b/design/icons/AUTHORS new file mode 100644 index 0000000..bb7475c --- /dev/null +++ b/design/icons/AUTHORS @@ -0,0 +1,5 @@ +Faenza is designed and developed by Matthieu James . + +Faenza icons are all licensed under the GPL. + +Thanks to Holger Seelig and clemyeats for their help for having some text preview inside icons in Nautilus. diff --git a/design/icons/bmp.png b/design/icons/bmp.png new file mode 120000 index 0000000..6776957 --- /dev/null +++ b/design/icons/bmp.png @@ -0,0 +1 @@ +png.png \ No newline at end of file diff --git a/design/icons/doc.png b/design/icons/doc.png new file mode 120000 index 0000000..4e8d7a3 --- /dev/null +++ b/design/icons/doc.png @@ -0,0 +1 @@ +odt.png \ No newline at end of file diff --git a/design/icons/exe.png b/design/icons/exe.png new file mode 100644 index 0000000..169b32d Binary files /dev/null and b/design/icons/exe.png differ diff --git a/design/icons/gif.png b/design/icons/gif.png new file mode 120000 index 0000000..6776957 --- /dev/null +++ b/design/icons/gif.png @@ -0,0 +1 @@ +png.png \ No newline at end of file diff --git a/design/icons/html.png b/design/icons/html.png new file mode 100644 index 0000000..2f94a78 Binary files /dev/null and b/design/icons/html.png differ diff --git a/design/icons/jpg.png b/design/icons/jpg.png new file mode 120000 index 0000000..6776957 --- /dev/null +++ b/design/icons/jpg.png @@ -0,0 +1 @@ +png.png \ No newline at end of file diff --git a/design/icons/msi.png b/design/icons/msi.png new file mode 120000 index 0000000..7524067 --- /dev/null +++ b/design/icons/msi.png @@ -0,0 +1 @@ +exe.png \ No newline at end of file diff --git a/design/icons/odp.png b/design/icons/odp.png new file mode 100644 index 0000000..76a1e84 Binary files /dev/null and b/design/icons/odp.png differ diff --git a/design/icons/ods.png b/design/icons/ods.png new file mode 100644 index 0000000..ebaee9e Binary files /dev/null and b/design/icons/ods.png differ diff --git a/design/icons/odt.png b/design/icons/odt.png new file mode 100644 index 0000000..5732f9b Binary files /dev/null and b/design/icons/odt.png differ diff --git a/design/icons/pdf.png b/design/icons/pdf.png new file mode 100644 index 0000000..7408d8d Binary files /dev/null and b/design/icons/pdf.png differ diff --git a/design/icons/png.png b/design/icons/png.png new file mode 100644 index 0000000..add1c59 Binary files /dev/null and b/design/icons/png.png differ diff --git a/design/icons/rar.png b/design/icons/rar.png new file mode 120000 index 0000000..23f88a6 --- /dev/null +++ b/design/icons/rar.png @@ -0,0 +1 @@ +zip.png \ No newline at end of file diff --git a/design/icons/rtf.png b/design/icons/rtf.png new file mode 100644 index 0000000..1d48677 Binary files /dev/null and b/design/icons/rtf.png differ diff --git a/design/icons/tiff.png b/design/icons/tiff.png new file mode 120000 index 0000000..6776957 --- /dev/null +++ b/design/icons/tiff.png @@ -0,0 +1 @@ +png.png \ No newline at end of file diff --git a/design/icons/xls.png b/design/icons/xls.png new file mode 120000 index 0000000..dc9cad1 --- /dev/null +++ b/design/icons/xls.png @@ -0,0 +1 @@ +ods.png \ No newline at end of file diff --git a/design/icons/zip.png b/design/icons/zip.png new file mode 100644 index 0000000..99ae6fc Binary files /dev/null and b/design/icons/zip.png differ diff --git a/index.php b/index.php index c0a9436..93098fa 100644 --- a/index.php +++ b/index.php @@ -232,13 +232,25 @@ if (!$GLOBAL['public']){ // private else { $GLOBAL['target_folder'] = $GLOBAL['default_data_folder'].'/'.$new_folder; } - - /*GESTION DU PDF ICI*/ - if (strtolower(substr($_GET['q'],-4))=='.pdf'){ - $title=basename($_GET['q']); - file_put_contents($GLOBAL['target_folder'].'/'.$title,$GLOBAL['main_page_data']); - file_put_contents($GLOBAL['target_folder'].'/index.php',''); - }else{ + $urlInfo =pathinfo($GLOBAL['url']); + $title = $urlInfo['filename']; + $finfo = new finfo(FILEINFO_MIME_TYPE); + $mineType = $finfo->buffer($GLOBAL['main_page_data']); + if(array_key_exists($mineType, $GLOBAL['image'])){ + $ext = $GLOBAL['image'][$mineType]; + file_put_contents($GLOBAL['target_folder'].'/'.$title.'.'.$ext, $GLOBAL['main_page_data']); + file_put_contents($GLOBAL['target_folder'].'/index.php',''.$title.'Save image from '.$GLOBAL['url'].''); + } elseif(array_key_exists($mineType, $GLOBAL['document'])){ + $ext = $GLOBAL['document'][$mineType]; + $title=basename($_GET['q']); + file_put_contents($GLOBAL['target_folder'].'/'.$title,$GLOBAL['main_page_data']); + file_put_contents($GLOBAL['target_folder'].'/index.php',''); + } elseif(array_key_exists($mineType, $GLOBAL['archive'])){ + $ext = $GLOBAL['archive'][$mineType]; + $title=basename($_GET['q']); + file_put_contents($GLOBAL['target_folder'].'/'.$title,$GLOBAL['main_page_data']); + file_put_contents($GLOBAL['target_folder'].'/index.php',''); + }else{ $liste_css = array(); @@ -374,12 +386,14 @@ if (!$GLOBAL['public']){ // private $n++; $count = count($liste_css); } + $mineType = ''; } - // enregistre un fichier d’informations concernant la page (date, url, titre) + // enregistre un fichier d’informations concernant la page (date, url, titre, extension du fichier) $info = ''; $info .= 'URL="'.$GLOBAL['url'].'"'."\n"; $info .= 'TITLE="'.$title.'"'."\n"; $info .= 'DATE="'.time().'"'."\n"; + $info .= 'TYPE="'.$ext.'"'."\n"; file_put_contents($GLOBAL['target_folder'].'/'.'index.ini', $info); /*$GLOBAL['done']['d'] = 'ajout'; $GLOBAL['done']['lien'] = $GLOBAL['target_folder'].'/'; */ @@ -795,6 +809,36 @@ function rand_new_name($name) { return 'f_'.str_shuffle('abcd').mt_rand(100, 999).'--'.preg_replace('#[^\w.]#', '_', substr($name, 15)).'.'.pathinfo($name, PATHINFO_EXTENSION); } +function returnLocalFavicon($path,$fileType){ + $favicon = glob($path.'*favicon.*'); + if(empty($favicon)){ + if(file_exists('design/icons/'.$fileType.'.png')){ + return 'design/icons/'.$fileType.'.png'; + } else { + return 'design/icons/html.png'; + } + } else { + return $favicon[0]; + } +} + +/** + * Améliore la sortie print + * + * @author Tatane http://www.tatane.info/index.php/print_rn + * @author http://www.blog.cactuscrew.com/77-print_rn.html + * @param $data (array) tableau à examiner + * @param $name (string) nom a affiché + * @return false affiche les clef valeur du tableau $data + */ +function n_print($data, $name = '') { + $aBackTrace = debug_backtrace(); + echo '

', $name, '

'; + echo '
'; + echo '', basename($aBackTrace[0]['file']), ' ligne => ', $aBackTrace[0]['line'], ''; + echo '
',           htmlentities(print_r($data, 1)), '
'; + echo '

'; +} if ($GLOBAL['done']['d'] !== FALSE) { switch($GLOBAL['done']['d']) { @@ -890,9 +934,7 @@ if ($GLOBAL['done']['d'] !== FALSE) { if (is_dir($GLOBAL['public_data_folder'].'/'.$liste_pages[$i]) and ($liste_pages[$i] != '.') and ($liste_pages[$i] != '..')) { // each folder should contain such a file "index.ini". $ini_file = $GLOBAL['public_data_folder'].'/'.$liste_pages[$i].'/index.ini'; - $favicon = glob($GLOBAL['public_data_folder'].'/'.$liste_pages[$i].'/*favicon.*'); - $favicon = (isset($favicon[0])) ? $favicon[0] : ''; if ( is_file($ini_file) and is_readable($ini_file) ) { $infos = parse_ini_file($ini_file); } else { @@ -903,7 +945,7 @@ if ($GLOBAL['done']['d'] !== FALSE) { } else { $titre = 'titre'; $url = '#'; $date = 'date inconnue'; } - + $favicon = returnLocalFavicon($GLOBAL['public_data_folder'].'/'.$liste_pages[$i].'/',$infos['TYPE']); $tags=$taglinks=''; if (isset($GLOBAL['tag_array']['public'][$liste_pages[$i]])){$tags=$GLOBAL['tag_array']['public'][$liste_pages[$i]];$taglinks=tag2links($GLOBAL['tag_array']['public'][$liste_pages[$i]]);} echo "\t".'
  • '; @@ -940,8 +982,6 @@ if ($GLOBAL['done']['d'] !== FALSE) { if (is_dir($GLOBAL['private_data_folder'].'/'.$liste_pages[$i]) and ($liste_pages[$i] != '.') and ($liste_pages[$i] != '..')) { // each folder should contain such a file "index.ini". $ini_file = $GLOBAL['private_data_folder'].'/'.$liste_pages[$i].'/index.ini'; - $favicon=glob($GLOBAL['private_data_folder'].'/'.$liste_pages[$i].'/*favicon.*'); - $favicon = (isset($favicon[0])) ? $favicon[0] : ''; if ( is_file($ini_file) and is_readable($ini_file) ) { $infos = parse_ini_file($ini_file); } else { @@ -952,6 +992,7 @@ if ($GLOBAL['done']['d'] !== FALSE) { } else { $titre = 'titre'; $url = '#'; $date = 'date inconnue'; } + $favicon = returnLocalFavicon($GLOBAL['public_data_folder'].'/'.$liste_pages[$i].'/',$infos['TYPE']); $tags=$taglinks=''; if (isset($GLOBAL['tag_array']['private'][$liste_pages[$i]])){$tags=$GLOBAL['tag_array']['private'][$liste_pages[$i]];$taglinks=tag2links($GLOBAL['tag_array']['private'][$liste_pages[$i]]);}