/* **************************************************************************
* hiddenfiles.php
***************************************************************************/
/* **************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
if (PHPmyBrowser!="ok")
{
echo "Hacking attempt!";
exit;
}
/**
* le tableau $HiddenFiles :
* Fichiers/Répertoires qu'on veut masquer, on masque les fichiers du programme PHPmyBrowser !
* Les chemins des fichiers sont en fonction du répertoire d'installation de PHPexplorer
* on ne peut pas mettre un ../repertoire, mais on peut mettre n'importe quel fichier
* du répertoire de PHPexplorer ou d'un sous répertoire
* à moins que je trouve une solution d'ici là ;-)
* INSENSIBLE A LA CASSE, écrivez en majuscule ou minuscule, peu importe...
*
* the array $HiddenFiles :
* it contains files/folders you want to hide. You may want to hide PHPmyBrowser folder
* CASE INSENSITIVE !
*
* {diskroot}/xxx
* hide a folder/file from the disk root
* cache une fichier ou un répertoire depuis la racine
* example : /WINNT => {diskroot}/WINNT
*
* {alldir}/xxx
* hide folder/file in ALL directories
* cache le répertoire/fichier xxx dans chaque répertoire
* example : .htaccess => {alldir}/.htaccess
* @todo DOCUMENTATION
* @package PHPmyBrowser
*/
//Par défaut :
//$HiddenFiles=array(
// 'index.php',
// $PHPmyBrowserFolder,
// $PHPmyBrowserCustom
// );
//determinate the $PHP_SELF file name... by default it's index.php but if you change into
//browse.php or other... ;-)
$arr = explode('/', $_SERVER['PHP_SELF']);
$HiddenFiles = array(
//PHPmyBrowser script
'index.php', //main file / fichier principal
//si vous le renommez n'oubliez pas de changer ici
//if you rename it, do not forget to change it here
$PHPmyBrowserFolder, //directory/répertoire => css/images/add-ons
'{alldir}/'.$PHPmyBrowserCustom,
'{alldir}/'.$COMMENT_file,
//PHP scripts
'{prog_php}',
//Websites
'{alldir}/.htaccess', //.htaccess files
'{alldir}/.htpasswd',
//Unix
'/etc/passwd',
//Windows specific
'{diskroot}/pagefile.sys', //Windows memory cache file
'{diskroot}/system volume information/', //Windows directory i don't know what it does lol
'{diskroot}/recycled/', //Windows Recycled Bin
'{diskroot}/recycler/', //sometimes (often?) windows bugs and another recycler bin is called recycler
//so I don't know which one is correct ! LOL
'{alldir}/desktop.ini', //Special windows directory (desktop, network, tasks...)
'{alldir}/folder.htt',
//Windows 98 & 2K boot system
'{diskroot}/arcldr.exe',
'{diskroot}/arcsetup.exe',
'{diskroot}/autoexec.bat', //autoexec.*
'{diskroot}/boot.ini',
'{diskroot}/bootfont.bin',
'{diskroot}/config.sys',
'{diskroot}/drvspace.bin',
'{diskroot}/io.sys',
'{diskroot}/iph.ph',
'{diskroot}/msdos.sys',
'{diskroot}/ntdetect.com',
'{diskroot}/ntldr',
//Windows XP thumbnails
'{alldir}/thumbs.db',
//Finder index (?)
'{alldir}/finder.dat',
//CVS system
'{alldir}/CVS/',
'{alldir}/.cvsignore',
//Softwares
'{diskroot}/jfw.cps/', //Jaws
'{alldir}/certify.bvd', //ViGUARD antivirus files
);
if (substr_count(strtolower($_ENV["OS"]), "win") > 0)
{//Add some special files
//http://www.a2001.com/english/down/concon.html
$DOSerror = Array('con','prn','nul','aux','clock$','config$','emmxxxx0','xmsxxxx0','setverxx',
'ifs$hlp$','$ibmadsp','dblbuff$','jkeyb$','biling$','ms$kanji','mscd001','$mmxxxx0','kkcfunc$',
'jkeyb$','$ibmafnt','setver','cd_101','mscd$$$$',
'lpt1','lpt2','lpt3','lpt4','lpt5','lpt6','lpt7','lpt8','lpt9',
'com1','com2','com3','com4','com5','com6','com7','com8','com9');
reset($DOSerror);
while(list($DEkey,$item) = each($DOSerror))
$HiddenFiles[] = '{alldir}/'.$item.'.*';
unset($DOSerror);
}
//
//IMPORTANT NOTE / NOTE IMPORTANTE
//
//I'm note a Linux big boss lol so if you know which file/folder are very critical
//(password, system config...) please tell me : iubito@users.sourceforge.net
//Je suis pas un boss sous linux donc si vous savez quels sont les fichiers critiques
//(mot de passes, config...) dites-le moi par mail : iubito@users.sourceforge.net
?>
/* **************************************************************************
* file.php
***************************************************************************/
/* **************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
/**
* What is an "add-on" ?
*
* Add-ons are small functions called when the engine get the list of files, and when a
* {@link default.php template} print this list.
*
* Some of them do minor tricks, {@link webimage.php} create image thumbnails, others add a javascript
* to call a plug-in in a popup (convert a file for example).
*
* Add-ons are called "on the fly", plug-ins called by a popup, a form, or the parameter action
* in the URL... (in forms this is an hidden field).
*
* How to use/create add-ons ?
*
* file.php is the add-on called for all files. For the moment, this does nothing, but you can write here
* function that will apply to all files, e.g. if admin : delete, rename...
*
* For all add-on (file, images...), you can write two functions :
*
addon_XXX_init
*
addon_XXX_display
* ...where XXX stands for :
* - a type (audio, prog_php...), see {@link types.php} ;
* - an extension (mp3, txt, doc...) ;
* - file (apply to all listed files) ;
* - folder (apply to all listed folders).
*
* In addon_xxx_init, you can change the displayed name, type, size or date.
* Example : in {@link types.php}, I said that .mus, .mut and .box are {@link
* http://www.myriad-online.com Myriad} files, for these files
* I use {@link myriad.php}, and I want to display a more detailed type for
* each extension, because ".mus" is music, ".box" is jukebox, ".myt" is video tutorial...
* In {@link addon_myriad_init}, a simple switch test the extension, and I modify the displayed type.
*
* The second function addon_xxx_display is more used. It's called when template
* call print_addon() (in {@link functions.php}).
* In this function, we can have image thumbnail generation, a link to get a converted format
* from a word file... and everything you can create :-)
*
* If you write add-on functions, you must know the following things :
*
*
you'll have to read/write in some arrays called :
*
$tabName : array for file names ;
*
$tabTyp : array for file types ;
*
$tabSize : array for file sizes ;
*
$tabDate : array for file dates ;
*
the functions have one parameter int $idx.
*
you have never to call directly these functions, PHPmyBrowser will do the calls for you ;-)
*
if you want, you can create other functions in the PHP file, and you call these functions
* in addon_xxx_init/display (e.g. {@link addon_webimage_display} call several functions for thumbnails
* creation).
*
*
* Examples of code...
* - you want to know file size :
* if ($tabSize[$idx] < 10*1024)
* {
* //your file is less than 10 KB
* }
* else
* {
* //your file is larger
* }
* - you want to change the displayed type :
* $tabTyp[$idx] = 'what you want here';
*
* @author Sylvain Machefert
* @copyright Copyright (C) 2004, Sylvain Machefert
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @package Add-Ons-File
*/
if (PHPmyBrowser!="ok")
{
echo 'Hacking attempt! Qu\'est-ce que tu fous ici ?';
exit;
}
?>
/* **************************************************************************
* webimage.php
***************************************************************************/
/* **************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
/**
* This add-on handle displayable images (JPEG, GIF, PNG...) and show thumbnails when
* possible.
*
* If image format is supported, the GD library resize it to create a thumbnail in
* thumbnails folder.
* To increase speed, if a thumbnail already exists and have same size than wanted size (see (@link
* config.php}), it's not created again.
* A click on the reduced image open a popup with full size image.
* If image size is lower than limits you configure, it'll be simply displayed.
*
* The limits are image height, width and filesize.
*
* If image format isn't supported or you set {@link $IMG_displayThumbnail} to false,
* an icon will allow you to see image in a popup.
*
* In {@link config.php}, look at all these variables :
* - {@link $ADDON_allowDirectPreview}
* - {@link $IMG_displayThumbnail}
* - {@link $IMG_maxHeight}
* - {@link $IMG_maxWidth}
* - {@link $IMG_maxSize}
*
* The thumbnails are created if a thumbnails exist in custom folder or in main engine folder
* (see {@link index.php}). Under linux, check folder permissions. If thumbnails is unwriteable,
* they are not generated !
*
* @author Sylvain Machefert
* @copyright Copyright (C) 2004, Sylvain Machefert
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @package Add-Ons-File
*
* @todo Thumbnails : manage PNG transparency when no 100% transparent. Seems to be very hard with GD.
*/
if (PHPmyBrowser!="ok")
{
echo 'Hacking attempt! Qu\'est-ce que tu fous ici ?';
exit;
}
// && in_array($tabIcon[$d], array('gif','jpg','jpe','jpeg','jif','jfif','png','bmp'))
$thumbsDir = '';
if (is_dir($PHPmyBrowserCustom.'thumbnails/')
&& is_writeable($PHPmyBrowserCustom.'thumbnails/'))
$thumbsDir = $PHPmyBrowserCustom.'thumbnails/';
else
$thumbsDir = $PHPmyBrowserFolder.'thumbnails/';
/**
* handle image, resize or display or add javascript code to open full-size image in popup.
* @param int Index
* @return string
* @access private
*/
function addon_webimage_display($idx)
{
global $ADDON_allowDirectPreview, $tabSize, $tabName, $PHPmyBrowserCustom, $PHPmyBrowserFolder,
$IMG_displayThumbnail, $IMG_maxHeight, $IMG_maxWidth, $IMG_maxSize,
$curr, $currRelatif, $lang, $thumbsDir;
if ($ADDON_allowDirectPreview)
{
$wThumb = false;
$a = '';
$DoNotDisplayImage = false;
if ($tabSize[$idx] > ($IMG_maxSize * 1024))
{
$DoNotDisplayImage = true;
}
$imgsize = @getimagesize($curr.$tabName[$idx]);
if (($imgsize[IMG_HEIGHT] > $IMG_maxHeight) || ($imgsize[IMG_WIDTH] > $IMG_maxWidth))
{
$DoNotDisplayImage = true;
}
if (!$DoNotDisplayImage)
{
$img = $currRelatif.str_replace('%2F','/', str_replace('+','%20',
urlencode($tabName[$idx]) ));
return '';
}
else
{
if ($IMG_displayThumbnail
&& isGDSupported($tabName[$idx])
&& is_writeable($thumbsDir)
&& ($IMG_maxHeight > 0)
&& ($IMG_maxWidth > 0)
&& ($IMG_maxSize > 0)
)
{//Create thumbnails
//If not loaded GD disable thumbnails
$wThumb = (extension_loaded('gd') || extension_loaded('gd2'));
}
if ($wThumb) //Si c'est possible de faire des miniatures, if thumbnail is possible
$a = webimage_redim($tabName[$idx]);
else
//Si pas de miniature, if no thumbnail
$a .= 'src="'.choose_right_file('images/view_image.gif').'"';
return "";
}
}
}
/**
* Resize an image...
* @access private
*/
function webimage_redim($filename)
{
global $curr, $IMG_maxWidth, $IMG_maxHeight, $thumbsDir;
$img_dest_file = str_replace(array('/',' ','\'','"','(',')','@','{','}','[',']','&','$','!','§',
',','%','~','#','`',':','\\')
,'_', $curr.$filename);
$size = getimagesize(imageresize($curr.$filename,
$thumbsDir.$img_dest_file,
$IMG_maxWidth, $IMG_maxHeight));
$img_dest = $thumbsDir . str_replace('+','%20', urlencode($img_dest_file));
return ((isIE() && (extension($img_dest)=='png'))
?'src="'.choose_right_file('images/blank.gif').'" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''.$img_dest.'\', sizingMethod=\'scale\');'
:'src="'.$img_dest.'"')
.' width="'.$size[IMG_WIDTH].'" height="'.$size[IMG_HEIGHT].'" ';
}
/**
* @access private
*/
function isIE()
{
global $_SERVER;
$agt = strtolower($_SERVER['HTTP_USER_AGENT']);
return (
ereg('msie', $agt)
&& !ereg('opera', $agt)
&& !ereg('webtv', $agt)
&& !ereg('mac', $agt)
);
}
?>
PHPmyBrowser:: Les Comptes Rendus