Alternc  latest
Alternc logiel libre pour l'hébergement
 All Classes Namespaces Files Functions Variables Pages
m_bro Class Reference

This class manage the file browser of AlternC allow the file and directory management in the user account web folder. More...

Public Member Functions

 m_bro ()
 Constructor. More...
 
 hook_menu ()
 Hook called by the menu class to add menus to the left panel. More...
 
 convertabsolute ($dir, $strip=true)
 Verifie un dossier relatif au dossier de l'utilisateur courant. More...
 
 get_user_root ($login)
 Retourne le chemin complet vers la racine du repertoire de l'utilisateur. More...
 
 get_userid_root ($uid)
 Retourne le chemin complet vers la racine du repertoire de l'utilisateur. More...
 
 filelist ($dir="", $showdirsize=false)
 Retourne un tableau contenant la liste des fichiers du dossier courant. More...
 
 GetPrefs ()
 Retourne un tableau contenant les prfrences de l'utilisateur courant. More...
 
 SetPrefs ($editsizex, $editsizey, $listmode, $showicons, $downfmt, $createfile, $showtype, $editor_font, $editor_size, $golastdir)
 Modifie les prfrences de l'utilisateur courant. More...
 
 icon ($file)
 Retourne le nom du fichier icone associ au fichier donc le nom est $file Note: Les fichiers icones sont mis en cache sur la page courante. More...
 
 mime ($file)
 Retourne le type mime associé au fichier donc le nom est $file Note: Les types mimes sont mis en cache sur la page courante. More...
 
 fsize ($file, $showdirsize=false)
 Retourne la taille du fichier $file si $file est un dossier, retourne la taille de ce dossier et de tous ses sous dossiers. More...
 
 dirsize ($dir)
 Returns the size of a directory, by adding all it's files sizes. More...
 
 CreateDir ($dir, $file)
 Crée le dossier $file dans le dossier (parent) $dir. More...
 
 CreateFile ($dir, $file)
 Crée un fichier vide dans un dossier. More...
 
 DeleteFile ($file_list, $R)
 Efface les fichiers du tableau $file_list dans le dossier $R. More...
 
 RenameFile ($R, $old, $new)
 Renomme les fichier de $old du dossier $R en $new. More...
 
 MoveFile ($d, $old, $new)
 Déplace les fichier de $d du dossier $old vers $new. More...
 
 ChangePermissions ($R, $d, $perm)
 Change les droits d'acces aux fichier de $d du dossier $R en $p. More...
 
 UploadFile ($R)
 Recoit un champ file upload (Global) et le stocke dans le dossier $R Le champ file-upload originel doit s'appeler "userfile" et doit bien être un fichier d'upload. More...
 
 ExtractFile ($file, $dest=null)
 Extract an archive by using GNU and non-GNU tools. More...
 
 CopyFile ($d, $old, $new)
 Copy many files from point A to point B. More...
 
 CopyOneFile ($src, $dest)
 Copy a source to a destination by either copying recursively a directory or by downloading a file with a URL (only http:// is supported) More...
 
 PathList ($path, $action, $justparent=false)
 Affiche le chemin et les liens de la racine au dossier $path Affiche autant de liens HTML (anchor) que le chemin $path contient de niveaux de dossier. More...
 
 content ($R, $file)
 Affiche le contenu d'un fichier pour un champ VALUE de textarea. More...
 
 viewurl ($dir, $name)
 Retourne une url de navigation pour le fichier $name du dossier $dir Les url sont mises en caches. More...
 
 can_edit ($dir, $name)
 
 is_extractable ($name)
 Return a HTML snippet representing an extraction function only if the mimetype of $name is supported. More...
 
 is_sqlfile ($name)
 return true if file is a sql dump (end with .sql or .sql.gz) More...
 
 download_link ($dir, $file)
 
 content_send ($R, $file)
 Echoes the content of the file $file located in directory $R. More...
 
 save ($file, $R, $texte)
 Sauve le fichier $file dans le dossier $R avec pour contenu $texte le contenu est issu d'un textarea, et ne DOIT PAS contenir de \ ajouts automatiquement par addslashes. More...
 
 DownloadZ ($dir="")
 Echo d'un flux .tar.Z contenant tout le contenu du dossier $dir. More...
 
 DownloadTGZ ($dir="")
 Echo d'un flux .tgz contenant tout le contenu du dossier $dir. More...
 
 DownloadTBZ ($dir="")
 Echo d'un flux .tar.bz2 contenant tout le contenu du dossier $dir. More...
 
 DownloadZIP ($dir="")
 Echo d'un flux .ZIP contenant tout le contenu du dossier $dir. More...
 
 _sort_filelist_name ($a, $b)
 Fonction de tri perso utilis par filelist. More...
 
 _delete ($file, $depth=0)
 Efface $file et tous ses sous-dossiers s'il s'agit d'un dossier A UTILISER AVEC PRECAUTION !!! More...
 
 alternc_export_conf ()
 Function d'exportation de configuration appelé par la classe m_export via un hooks Produit en sorti un tableau formatté ( pour le moment) en HTML. More...
 
 alternc_export_data ($dir)
 Function d'exportation des données appelé par la classe m_export via un hooks. More...
 
 getMaxAllowedUploadSize ()
 

Public Attributes

 $l_mode
 How we draw the file in column. More...
 
 $l_tgz
 download mode of a compressed folder More...
 
 $l_icons
 Shall we show icons or just names? More...
 
 $l_createfile
 What do we do after creating a file? More...
 
 $mime_desc = array()
 internal cache More...
 
 $mime_icon = array()
 
 $mime_type = array()
 
 $cacheurl = array()
 
 $l_editor_font = array("Arial, Helvetica, Sans-serif", "Times, Bookman, Serif", "Courier New, Courier, Fixed")
 Font choice in the editor. More...
 
 $l_editor_size = array("18px", "14px", "12px", "10px", "8px", "0.8em", "0.9em", "1em", "1.1em", "1.2em")
 font size in the editor More...
 

Detailed Description

This class manage the file browser of AlternC allow the file and directory management in the user account web folder.

Definition at line 30 of file m_bro.php.

Member Function Documentation

m_bro::_delete (   $file,
  $depth = 0 
)

Efface $file et tous ses sous-dossiers s'il s'agit d'un dossier A UTILISER AVEC PRECAUTION !!!

Parameters
string$fileFichier ou dossier supprimer. private

Definition at line 1126 of file m_bro.php.

References $msg.

Referenced by DeleteFile().

1126  {
1127  global $msg;
1128  // permet d'effacer de nombreux fichiers
1129  @set_time_limit(0);
1130  //chmod($file,0777);
1131  $msg->log("bro", "_delete($file)");
1132  if ($depth>20) {
1133  $msg->log("bro", "CANCELING _delete($file) TOO DEEP");
1134  }
1135  if (is_dir($file)) {
1136  $handle = opendir($file);
1137  if (!$handle) {
1138  rmdir($file); // let's try it anyway...
1139  return; // skip unreacheable folders
1140  }
1141  while (($filename = readdir($handle)) !== false) {
1142  if ($filename != "." && $filename != "..") {
1143  $this->_delete($file . "/" . $filename,$depth+1);
1144  }
1145  }
1146  closedir($handle);
1147  rmdir($file);
1148  } else {
1149  unlink($file);
1150  }
1151  }
_delete($file, $depth=0)
Efface $file et tous ses sous-dossiers s'il s'agit d'un dossier A UTILISER AVEC PRECAUTION !!! ...
Definition: m_bro.php:1126
$msg
Definition: config.php:155
m_bro::_sort_filelist_name (   $a,
  $b 
)

Fonction de tri perso utilis par filelist.

private

Parameters
string$a
string$b
Returns
int

Definition at line 1109 of file m_bro.php.

1109  {
1110  if ($a["type"] && !$b["type"]) {
1111  return 1;
1112  }
1113  if ($b["type"] && !$a["type"]) {
1114  return -1;
1115  }
1116  return $a["name"] > $b["name"];
1117  }
m_bro::alternc_export_conf ( )

Function d'exportation de configuration appelé par la classe m_export via un hooks Produit en sorti un tableau formatté ( pour le moment) en HTML.

Parameters
globalm_mysql $db
globalm_messages $msg
Returns
string

Definition at line 1162 of file m_bro.php.

References $i, $msg, and GetPrefs().

1162  {
1163  global $msg;
1164  $msg->log("bro", "export_conf");
1165  $str = "<table border=\"1\"><caption> Browser </caption>\n";
1166  $str.=" <browser>\n";
1167  $pref = $this->GetPrefs();
1168 
1169  $i = 1;
1170  foreach ($pref as $k => $v) {
1171  if (($i % 2) == 0) {
1172  $str.=" <$k>$v</$k>\n";
1173  }
1174  $i++;
1175  }
1176  $str.=" </browser>\n";
1177 
1178  return $str;
1179  }
GetPrefs()
Retourne un tableau contenant les prfrences de l'utilisateur courant.
Definition: m_bro.php:229
$i
$msg
Definition: config.php:155
m_bro::alternc_export_data (   $dir)

Function d'exportation des données appelé par la classe m_export via un hooks.

Parameters
globalm_mem $mem
globalm_messages $msg
string$dirLe chemin destination du tarball produit
Returns
boolean|null

Definition at line 1190 of file m_bro.php.

References $mem, $msg, and getuserpath().

1190  {
1191  global $mem, $msg;
1192  $msg->log("bro", "export_data");
1193  $dir.="html/";
1194  if (!is_dir($dir)) {
1195  if (!mkdir($dir))
1196  $msg->raise("ERROR", "bro", _("Cannot create the requested directory. Please check the permissions"));
1197  }
1198  $timestamp = date("H:i:s");
1199 
1200  if (exec("/bin/tar cvf - " . escapeshellarg(getuserpath() . "/") . "| gzip -9c > " . escapeshellarg($dir . "/" . $mem->user['login'] . "_html_" . $timestamp . ".tar.gz"))) {
1201  $msg->log("bro", "export_data_succes");
1202  } else {
1203  $msg->log("bro", "export_data_failed");
1204  }
1205  }
getuserpath($user=null)
get the home of the user
Definition: functions.php:329
$msg
Definition: config.php:155
$mem
Definition: bootstrap.php:71
m_bro::can_edit (   $dir,
  $name 
)
Parameters
globalm_mem $mem
globalm_messages $msg
string$dir
string$name
Returns
null|boolean

Definition at line 888 of file m_bro.php.

References $msg, convertabsolute(), and exit.

888  {
889  global $msg;
890  $absolute = "$dir/$name";
891  $absolute = $this->convertabsolute($absolute, false);
892  if (!$absolute) {
893  $msg->raise("ERROR", 'bro', _("File not in authorized directory"));
894  include('foot.php');
895  exit;
896  }
897  $stat=stat($absolute);
898  if (!($stat[2] & 0000200)) return false;
899  $finfo = finfo_open(FILEINFO_MIME_TYPE);
900  $mime = finfo_file($finfo, $absolute);
901  if (substr($mime, 0, 5) == "text/" || $mime == "application/x-empty" || $mime == "inode/x-empty") {
902  return true;
903  }
904  return false;
905  }
$msg
Definition: config.php:155
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
exit
Definition: adm_doadd.php:70
m_bro::ChangePermissions (   $R,
  $d,
  $perm 
)

Change les droits d'acces aux fichier de $d du dossier $R en $p.

Parameters
string$RDossier dans lequel se trouve les fichiers renommer.
string$dlist of files whose permission must be changed
string$permthe permission to change
boolean$verboseShall we 'echo' what we did ?
Returns
boolean TRUE Si les fichiers ont t renomms, FALSE si une erreur s'est produite.

Definition at line 553 of file m_bro.php.

References $d, $i, $msg, $R, convertabsolute(), and ssla().

553  {
554  global $msg, $action;
555  $absolute = $this->convertabsolute($R, false);
556  if (!$absolute) {
557  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
558  return false;
559  }
560  for ($i = 0; $i < count($d); $i++) {
561  $d[$i] = ssla($d[$i]); // strip slashes if needed
562  if (!strpos($d[$i], "/")) { // caractre / interdit dans le nom du fichier
563  $m = fileperms($absolute . "/" . $d[$i]);
564 
565  // pour l'instant on se limite a "write" pour owner, puisque c'est le seul
566  // cas interessant compte tenu de la conf de Apache pour AlternC..
567  if ($perm[$i]['w']) {
568  $m = $m | 0220; // ug+w
569  } else {
570  $m = $m & (~ 0222); // ugo-w
571  }
572  $action->chmod($absolute . "/" . $d[$i], $m);
573  }
574  }
575  // We'd like to *wait* for this to complete, but since this is essentially asynchronous, we can't be sure easily
576  // So we chose to wait a little bit (2 sec) at the end of the loop...
577  sleep(2);
578  return true;
579  }
$R
Definition: bro_editor.php:45
$i
ssla($str)
Strip slashes if needed :
Definition: functions.php:519
$msg
Definition: config.php:155
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
$d
m_bro::content (   $R,
  $file 
)

Affiche le contenu d'un fichier pour un champ VALUE de textarea.

Affiche le contenu du fichier $file dans le dossier $R. Le contenu du fichier est reformat pour pouvoir entrer dans un champs TextArea

Parameters
globalm_messages $msg
string$RDossier dans lequel on cherche le fichier
string$fileFichier dont on souhaite obtenir le contenu.
Returns
string|false TRUE si le fichier a bien été mis sur echo, ou FALSE si une erreur est survenue.

Definition at line 801 of file m_bro.php.

References $msg, $R, and convertabsolute().

801  {
802  global $msg;
803  $absolute = $this->convertabsolute($R, false);
804  if (!strpos($file, "/")) {
805  $absolute.="/" . $file;
806  if (file_exists($absolute)) {
807  $std = str_replace("<", "&lt;", str_replace("&", "&amp;", file_get_contents($absolute)));
808  return $std;
809  } else {
810  $msg->raise("ERROR", "bro", _("Cannot read the requested file. Please check the permissions"));
811  return false;
812  }
813  } else {
814  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
815  return false;
816  }
817  }
$R
Definition: bro_editor.php:45
$msg
Definition: config.php:155
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
m_bro::content_send (   $R,
  $file 
)

Echoes the content of the file $file located in directory $R.

Parameters
globalm_messages $msg
string$R
string$file
Returns
null|false

Definition at line 982 of file m_bro.php.

References $msg, $R, and convertabsolute().

Referenced by download_link().

982  {
983  global $msg;
984  $absolute = $this->convertabsolute($R, false);
985  if (!strpos($file, "/")) {
986  $absolute.="/" . $file;
987  if (file_exists($absolute)) {
988  readfile($absolute);
989  }
990  } else {
991  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
992  return false;
993  }
994  }
$R
Definition: bro_editor.php:45
$msg
Definition: config.php:155
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
m_bro::convertabsolute (   $dir,
  $strip = true 
)

Verifie un dossier relatif au dossier de l'utilisateur courant.

Parameters
string$dir
globalm_mem $mem
string$dirDossier absolu que l'on souhaite vérifier
boolean$strip
Returns
false|string Retourne le nom du dossier vérifié, relatif au dossier de l'utilisateur courant, éventuellement corrigé. ou FALSE si le dossier n'est pas dans le dossier de l'utilisateur.

Definition at line 95 of file m_bro.php.

References $mem, $root, and get_user_root().

Referenced by can_edit(), ChangePermissions(), content(), content_send(), CopyFile(), CreateDir(), CreateFile(), DeleteFile(), DownloadTBZ(), DownloadTGZ(), DownloadZ(), DownloadZIP(), ExtractFile(), filelist(), MoveFile(), PathList(), RenameFile(), save(), and UploadFile().

95  {
96  global $mem;
97  $root = $this->get_user_root($mem->user["login"]);
98  // Sauvegarde du chemin de base.
99  $root_alternc = $root;
100  // Passage du root en chemin rel (diffrent avec un lien)
101  $root = realpath($root);
102  // separer le chemin entre le repertoire et le fichier
103  $file = basename($dir);
104  $dir = dirname($dir);
105  $dir = realpath($root . "/" . $dir);
106  // verifier que le repertoire est dans le home de l'usager
107  if (substr($dir, 0, strlen($root)) != $root) {
108  return false;
109  }
110 
111  // recomposer le chemin
112  $dir = $dir . '/' . $file;
113 
114  # Si on tente de mettre un '..' alors erreur
115  if (preg_match("/\/\.\.\//", $dir) || preg_match("/\/\.\.$/", $dir)) {
116  return false;
117  }
118 
119  if ($strip) {
120  $dir = substr($dir, strlen($root));
121  } else {
122  // si on ne strip pas, il faut enlever le chemin rel
123  // et mettre la racine d'alternc pour viter les
124  // problmes de lien depuis /var /alternc !
125  $dir = $root_alternc . substr($dir, strlen($root));
126  }
127  if (substr($dir, -1) == "/") {
128  return substr($dir, 0, strlen($dir) - 1);
129  } else {
130  return $dir;
131  }
132  }
$root
Definition: bootstrap.php:20
get_user_root($login)
Retourne le chemin complet vers la racine du repertoire de l'utilisateur.
Definition: m_bro.php:143
$mem
Definition: bootstrap.php:71
m_bro::CopyFile (   $d,
  $old,
  $new 
)

Copy many files from point A to point B.

Parameters
globalm_messages $msg
array$dList of files to move
string$old
string$new
Returns
boolean

Definition at line 708 of file m_bro.php.

References $d, $i, $msg, convertabsolute(), CopyOneFile(), and ssla().

708  {
709  global $msg;
710  $old = $this->convertabsolute($old, false);
711  if (!$old) {
712  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
713  return false;
714  }
715  $new = $this->convertabsolute($new, false);
716  if (!$new) {
717  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
718  return false;
719  }
720  if ($old == $new) {
721  $msg->raise("ERROR", "bro", _("You cannot move or copy a file to the same folder"));
722  return false;
723  }
724  for ($i = 0; $i < count($d); $i++) {
725  $d[$i] = ssla($d[$i]); // strip slashes if needed
726  if (!strpos($d[$i], "/") && file_exists($old . "/" . $d[$i]) && !file_exists($new . "/" . $d[$i])) {
727  $this->CopyOneFile($old . "/" . $d[$i], $new);
728  }
729  }
730  return true;
731  }
$i
ssla($str)
Strip slashes if needed :
Definition: functions.php:519
$msg
Definition: config.php:155
CopyOneFile($src, $dest)
Copy a source to a destination by either copying recursively a directory or by downloading a file wit...
Definition: m_bro.php:746
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
$d
m_bro::CopyOneFile (   $src,
  $dest 
)

Copy a source to a destination by either copying recursively a directory or by downloading a file with a URL (only http:// is supported)

Note that we assume that the inputs have been convertabsolute()'d

Parameters
globalm_messages $msg
string$srcPath or URL
string$destAbsolute path inside the users directory
Returns
boolean false on error

Definition at line 746 of file m_bro.php.

References $msg.

Referenced by CopyFile().

746  {
747  global $msg;
748  exec("cp -Rpf " . escapeshellarg($src) . " " . escapeshellarg($dest), $void, $ret);
749  if ($ret) {
750  $msg->raise("ERROR", "bro", "Errors happened while copying the source to destination. cp return value: %d", $ret);
751  return false;
752  }
753  return true;
754  }
$msg
Definition: config.php:155
m_bro::CreateDir (   $dir,
  $file 
)

Crée le dossier $file dans le dossier (parent) $dir.

Parameters
globalm_mysql $db
globalint $cuid
globalm_messages $msg
string$dirDossier dans lequel on veut crer un sous-dossier
string$fileNom du dossier à créer
Returns
boolean TRUE si le dossier a été créé, FALSE si une erreur s'est produite.

Definition at line 394 of file m_bro.php.

References $cuid, $db, $msg, convertabsolute(), and ssla().

394  {
395  global $db, $cuid, $msg;
396  $file = ssla($file);
397  $absolute = $this->convertabsolute($dir . "/" . $file, false);
398  if ($absolute && (!file_exists($absolute))) {
399  if (!mkdir($absolute, 00777, true)) {
400  $msg->raise("ERROR", "bro", _("Cannot create the requested directory. Please check the permissions"));
401  return false;
402  }
403  $db->query("UPDATE browser SET crff=1 WHERE uid= ?;", array($cuid));
404  return true;
405  } else {
406  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
407  return false;
408  }
409  }
global $db
Definition: bootstrap.php:22
ssla($str)
Strip slashes if needed :
Definition: functions.php:519
$msg
Definition: config.php:155
$cuid
Definition: bootstrap.php:43
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
m_bro::CreateFile (   $dir,
  $file 
)

Crée un fichier vide dans un dossier.

Parameters
globalm_mysql $db
globalm_messages $msg
globalint $cuid
string$dirDossier dans lequel on veut crer un sous-dossier
string$fileNom du dossier à créer
Returns
boolean TRUE si le dossier a été créé, FALSE si une erreur s'est produite.

Definition at line 422 of file m_bro.php.

References $cuid, $db, $msg, convertabsolute(), and ssla().

422  {
423  global $db, $msg, $cuid;
424  $file = ssla($file);
425  $absolute = $this->convertabsolute($dir . "/" . $file, false);
426  if (!$absolute || file_exists($absolute)) {
427  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
428  return false;
429  }
430  if (!file_exists($absolute)) {
431  if (!@touch($absolute)) {
432  $msg->raise("ERROR", "bro", _("Cannot create the requested file. Please check the permissions"));
433  return false;
434  }
435  }
436  $db->query("UPDATE browser SET crff=0 WHERE uid= ?;", array($cuid));
437  return true;
438  }
global $db
Definition: bootstrap.php:22
ssla($str)
Strip slashes if needed :
Definition: functions.php:519
$msg
Definition: config.php:155
$cuid
Definition: bootstrap.php:43
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
m_bro::DeleteFile (   $file_list,
  $R 
)

Efface les fichiers du tableau $file_list dans le dossier $R.

Parameters
globalm_messages $msg
globalm_mem $mem
array$file_listListe des fichiers effacer.
string$RDossier dans lequel on efface les fichiers
Returns
boolean TRUE si les fichiers ont t effacs, FALSE si une erreur s'est produite.

Definition at line 450 of file m_bro.php.

References $i, $msg, $R, $root, _delete(), convertabsolute(), getuserpath(), and ssla().

450  {
451  global $msg;
452  $root = realpath(getuserpath());
453  $absolute = $this->convertabsolute($R, false);
454  if (!$absolute && strpos($root, $absolute) === 0 && strlen($absolute) > (strlen($root) + 1)) {
455  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
456  return false;
457  }
458  for ($i = 0; $i < count($file_list); $i++) {
459  $file_list[$i] = ssla($file_list[$i]);
460  if (!strpos($file_list[$i], "/") && file_exists($absolute . "/" . $file_list[$i])) { // Character / forbidden in a FILE name
461  $this->_delete($absolute . "/" . $file_list[$i]);
462  }
463  }
464  return true;
465  }
$R
Definition: bro_editor.php:45
$i
_delete($file, $depth=0)
Efface $file et tous ses sous-dossiers s'il s'agit d'un dossier A UTILISER AVEC PRECAUTION !!! ...
Definition: m_bro.php:1126
getuserpath($user=null)
get the home of the user
Definition: functions.php:329
ssla($str)
Strip slashes if needed :
Definition: functions.php:519
$root
Definition: bootstrap.php:20
$msg
Definition: config.php:155
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
m_bro::dirsize (   $dir)

Returns the size of a directory, by adding all it's files sizes.

Parameters
string$dirThe directory whose size we want to compute
Returns
integer The total size in bytes.

Definition at line 363 of file m_bro.php.

References $totalsize, and elseif.

Referenced by fsize().

363  {
364  $totalsize = 0;
365 
366  if (($handle = opendir($dir))) {
367  while (false !== ($file = readdir($handle))) {
368  $nextpath = $dir . '/' . $file;
369 
370  if ($file != '.' && $file != '..' && !is_link($nextpath)) {
371  if (is_dir($nextpath)) {
372  $totalsize += $this->dirsize($nextpath);
373  } elseif (is_file($nextpath)) {
374  $totalsize += filesize($nextpath);
375  }
376  }
377  }
378  closedir($handle);
379  }
380  return $totalsize;
381  }
$totalsize
Definition: quota_show.php:45
if(empty($site_name)) elseif($piwik->site_add($site_name, $site_urls))
dirsize($dir)
Returns the size of a directory, by adding all it's files sizes.
Definition: m_bro.php:363
m_bro::download_link (   $dir,
  $file 
)
Parameters
globalm_messages $msg
string$dir
string$file

Definition at line 964 of file m_bro.php.

References $msg, and content_send().

964  {
965  global $msg;
966  $msg->log("bro", "download_link");
967  header("Content-Disposition: attachment; filename=$file");
968  header("Content-Type: application/force-download");
969  header("Content-Transfer-Encoding: binary");
970  $this->content_send($dir, $file);
971  }
$msg
Definition: config.php:155
content_send($R, $file)
Echoes the content of the file $file located in directory $R.
Definition: m_bro.php:982
m_bro::DownloadTBZ (   $dir = "")

Echo d'un flux .tar.bz2 contenant tout le contenu du dossier $dir.

Parameters
globaltype $mem
string$dirDossier à dumper, relatif la racine du compte du membre.
Returns
void NE RETOURNE RIEN, et il faut Quitter le script immdiatement aprs

Definition at line 1071 of file m_bro.php.

References $d, $mem, convertabsolute(), and getuserpath().

1071  {
1072  global $mem;
1073  header("Content-Disposition: attachment; filename=" . $mem->user["login"] . ".tar.bz2");
1074  header("Content-Type: application/x-bzip2");
1075  header("Content-Transfer-Encoding: binary");
1076  $d = escapeshellarg("." . $this->convertabsolute($dir, true));
1077  set_time_limit(0);
1078  passthru("/bin/tar -cj -C " . getuserpath() . "/ $d");
1079  }
getuserpath($user=null)
get the home of the user
Definition: functions.php:329
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
$mem
Definition: bootstrap.php:71
$d
m_bro::DownloadTGZ (   $dir = "")

Echo d'un flux .tgz contenant tout le contenu du dossier $dir.

Parameters
globaltype $mem
string$dirDossier à dumper, relatif la racine du compte du membre.
Returns
void NE RETOURNE RIEN, et il faut Quitter le script immdiatement aprs

Definition at line 1053 of file m_bro.php.

References $d, $mem, convertabsolute(), and getuserpath().

1053  {
1054  global $mem;
1055  header("Content-Disposition: attachment; filename=" . $mem->user["login"] . ".tgz");
1056  header("Content-Type: application/x-tgz");
1057  header("Content-Transfer-Encoding: binary");
1058  $d = escapeshellarg("." . $this->convertabsolute($dir, true));
1059  set_time_limit(0);
1060  passthru("/bin/tar -cz -C " . getuserpath() . "/ $d");
1061  }
getuserpath($user=null)
get the home of the user
Definition: functions.php:329
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
$mem
Definition: bootstrap.php:71
$d
m_bro::DownloadZ (   $dir = "")

Echo d'un flux .tar.Z contenant tout le contenu du dossier $dir.

Parameters
globalm_mem $mem
string$dirDossier à dumper, relatif la racine du compte du membre.
Returns
void NE RETOURNE RIEN, et il faut Quitter le script immdiatement aprs

Definition at line 1035 of file m_bro.php.

References $d, $mem, convertabsolute(), and getuserpath().

1035  {
1036  global $mem;
1037  header("Content-Disposition: attachment; filename=" . $mem->user["login"] . ".Z");
1038  header("Content-Type: application/x-Z");
1039  header("Content-Transfer-Encoding: binary");
1040  $d = escapeshellarg("." . $this->convertabsolute($dir, true));
1041  set_time_limit(0);
1042  passthru("/bin/tar -cZ -C " . getuserpath() . "/" . $mem->user["login"] . "/ $d");
1043  }
getuserpath($user=null)
get the home of the user
Definition: functions.php:329
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
$mem
Definition: bootstrap.php:71
$d
m_bro::DownloadZIP (   $dir = "")

Echo d'un flux .ZIP contenant tout le contenu du dossier $dir.

Parameters
globaltype $mem
string$dirDossier à dumper, relatif la racine du compte du membre.
Returns
void NE RETOURNE RIEN, et il faut Quitter le script immdiatement aprs

Definition at line 1089 of file m_bro.php.

References $d, $mem, and convertabsolute().

1089  {
1090  global $mem;
1091  header("Content-Disposition: attachment; filename=" . $mem->user["login"] . ".zip");
1092  header("Content-Type: application/x-zip");
1093  header("Content-Transfer-Encoding: binary");
1094  $d = $this->convertabsolute($dir, false);
1095  set_time_limit(0);
1096  chdir(dirname($d));
1097  passthru("/usr/bin/zip -r - ".escapeshellarg(basename($d)));
1098  }
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
$mem
Definition: bootstrap.php:71
$d
m_bro::ExtractFile (   $file,
  $dest = null 
)

Extract an archive by using GNU and non-GNU tools.

Parameters
globalm_messages $msg
globalint $cuid
globalm_mem $mem
globalm_action $action
string$fileFull or relative path to the archive
string$destPath of the extract destination, the same directory as the archive by default
Returns
integer|null != 0 on error

Definition at line 651 of file m_bro.php.

References $msg, convertabsolute(), and elseif.

651  {
652  global $msg, $action;
653  $file = $this->convertabsolute($file, false);
654  if (is_null($dest)) {
655  $dest = dirname($file);
656  } else {
657  $dest = $this->convertabsolute($dest, false);
658  }
659  if (!$file || !$dest || !is_readable($file)) {
660  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
661  return 1;
662  }
663  $lfile = strtolower($file);
664  if (substr($lfile, -4) == ".tar" || substr($lfile, -8) == ".tar.bz2" || substr($lfile, -7) == ".tar.gz" || substr($lfile, -6) == ".tar.z" || substr($lfile, -4) == ".tgz" || substr($lfile, -4) == ".tbz" || substr($lfile, -5) == ".tbz2" ) {
665  // TODO new version of tar supports `tar xf ...` so there is no
666  // need to specify the compression format
667  echo "<p>" . _("Uncompressing through TAR") . "</p><pre style=\"overflow: scroll; height: 200px\">";
668  $ret = 0;
669  passthru("tar -xvf " . escapeshellarg($file) . " --numeric-owner -C " . escapeshellarg($dest) . " 2>&1", $ret);
670  }
671  elseif (substr($lfile, -4) == ".zip") {
672  echo "<p>" . _("Uncompressing through UNZIP") . "</p><pre style=\"overflow: scroll; height: 200px\">";
673  $cmd = "unzip -o " . escapeshellarg($file) . " -d " . escapeshellarg($dest) . " 2>&1";
674  passthru($cmd, $ret);
675  }
676  elseif (substr($lfile, -3) == ".gz" || substr($lfile, -2) == ".Z") {
677  echo "<p>" . _("Uncompressing through GUNZIP") . "</p><pre style=\"overflow: scroll; height: 200px\">";
678  $cmd = "gunzip " . escapeshellarg($file) . " 2>&1";
679  passthru($cmd, $ret);
680  }
681  elseif (substr($lfile, -3) == ".bz" || substr($lfile, -4) == ".bz2") {
682  echo "<p>" . _("Uncompressing through bunzip2") . "</p><pre style=\"overflow: scroll; height: 200px\">";
683  $cmd = "bunzip2 " . escapeshellarg($file) . " 2>&1";
684  passthru($cmd, $ret);
685  }
686  echo "</pre>";
687 
688  // fix the perms of the extracted archive TODO: does it work??? | note: it was using a wrong variable name !
689  $action->fix_dir($dest);
690 
691  if ($ret) {
692  $msg->raise("ERROR", "bro", _("I cannot find a way to extract the file %s, it is an unsupported compressed format"), $file);
693  return false;
694  }
695  return true;
696  }
$msg
Definition: config.php:155
if(empty($site_name)) elseif($piwik->site_add($site_name, $site_urls))
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
m_bro::filelist (   $dir = "",
  $showdirsize = false 
)

Retourne un tableau contenant la liste des fichiers du dossier courant.

Ce tableau contient tous les paramtres des fichiers du dossier courant sous la forme d'un tableau index de tableaux associatifs comme suit : $a["name"]=nom du fichier / dossier $a["size"]=Taille totale du fichier / dossier + sous-dossier $a["date"]=Date de dernire modification $a["type"]=Type du fichier (1 pour fichier, 0 pour dossier)

Parameters
globalm_mysql $db
globalint $cuid
globalm_messages $msg
string$dirDossier relatif au dossier racine du compte du membre courant
boolean$showdirsize
Returns
array Le tableau contenant les fichiers de $dir, et

Definition at line 189 of file m_bro.php.

References $c, $cuid, $db, $msg, convertabsolute(), and fsize().

189  {
190  global $db, $cuid, $msg;
191  $db->query("UPDATE browser SET lastdir= ? WHERE uid= ?;", array($dir, $cuid));
192  $absolute = $this->convertabsolute($dir, false);
193  if (!$absolute || !file_exists($absolute)) {
194  $msg->raise("ERROR", 'bro', _("This directory does not exist."));
195  return false;
196  }
197  if (!is_readable($absolute)) {
198  $msg->raise("ERROR", 'bro', _("This directory is not readable."));
199  return false;
200  }
201  clearstatcache(true);
202  $c = array();
203  if ($dir = @opendir($absolute)) {
204  while (($file = readdir($dir)) !== false) {
205  if ($file != "." && $file != "..") {
206  $stat=stat($absolute . "/" . $file);
207  $c[] = array("name" => $file, "size" => $this->fsize($absolute . "/" . $file, $showdirsize),
208  "date" => filemtime($absolute . "/" . $file), "type" => (!is_dir($absolute . "/" . $file)),
209  "permissions" => $stat[2] );
210  }
211  }
212  closedir($dir);
213  }
214  usort($c, array("m_bro", "_sort_filelist_name"));
215  return $c;
216  }
global $db
Definition: bootstrap.php:22
$msg
Definition: config.php:155
$cuid
Definition: bootstrap.php:43
fsize($file, $showdirsize=false)
Retourne la taille du fichier $file si $file est un dossier, retourne la taille de ce dossier et de t...
Definition: m_bro.php:344
$c
Definition: bootstrap.php:47
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
m_bro::fsize (   $file,
  $showdirsize = false 
)

Retourne la taille du fichier $file si $file est un dossier, retourne la taille de ce dossier et de tous ses sous dossiers.

Parameters
string$fileFichier dont on souhaite connaitre la taille
boolean$showdirsizeRecursively compute the directory size.
Returns
integer Taille du fichier en octets.
int|string

Definition at line 344 of file m_bro.php.

References dirsize().

Referenced by filelist().

344  {
345  if (is_dir($file)) {
346  if ($showdirsize) {
347  return $this->dirsize($file);
348  } else {
349  return "-";
350  }
351  } else {
352  return filesize($file);
353  }
354  }
dirsize($dir)
Returns the size of a directory, by adding all it's files sizes.
Definition: m_bro.php:363
m_bro::get_user_root (   $login)

Retourne le chemin complet vers la racine du repertoire de l'utilisateur.

Returns the complete path to the root of the user's directory.

Parameters
string$loginUsername
Returns
string Returns the complete path to the root of the user's directory.

Definition at line 143 of file m_bro.php.

References getuserpath().

Referenced by convertabsolute(), and get_userid_root().

143  {
144  return getuserpath();
145  }
getuserpath($user=null)
get the home of the user
Definition: functions.php:329
m_bro::get_userid_root (   $uid)

Retourne le chemin complet vers la racine du repertoire de l'utilisateur.

Returns the complete path to the root of the user's directory.

Todo:
[ML] Comment faire ca correctement? C'est utilise' dans class/m_dom.php quand un utilisateur ajoute un domaine dans son compte et nous devons savoir quel est le chemin complet vers la racine de son compte..
Parameters
globalm_admin $admin
int$uidUser id.
Returns
string Returns the complete path to the root of the user's directory.

Definition at line 160 of file m_bro.php.

References $uid, and get_user_root().

160  {
161  global $admin;
162 
163  $old_enabled = $admin->enabled;
164  $admin->enabled = true;
165  $member = $admin->get($uid);
166  $admin->enabled = $old_enabled;
167 
168  return $this->get_user_root($member['login']);
169  }
$uid
get_user_root($login)
Retourne le chemin complet vers la racine du repertoire de l'utilisateur.
Definition: m_bro.php:143
m_bro::getMaxAllowedUploadSize ( )

Definition at line 1207 of file m_bro.php.

1207  {
1208  return min(ini_get('post_max_size'), ini_get('upload_max_filesize'));
1209  }
m_bro::GetPrefs ( )

Retourne un tableau contenant les prfrences de l'utilisateur courant.

Ce tableau associatif contient les valeurs des champs de la table "browser" pour l'utilisateur courant.

Parameters
globalm_mysql $db
globalint $cuid
Returns
array Tableau des prfrences de l'utilisateur courant.

Definition at line 229 of file m_bro.php.

References $cuid, and $db.

Referenced by alternc_export_conf().

229  {
230  global $db, $cuid;
231  $db->query("SELECT * FROM browser WHERE uid= ?;", array($cuid));
232  if ($db->num_rows() == 0) {
233  $db->query("INSERT INTO browser (editsizex, editsizey, listmode, showicons, downfmt, createfile, showtype, uid, editor_font, editor_size) VALUES (70, 21, 0, 0, 0, 0, 0, ?,'Arial, Helvetica, Sans-serif','12px');", array($cuid));
234  $db->query("SELECT * FROM browser WHERE uid= ?;", array($cuid));
235  }
236  $db->next_record();
237  return $db->Record;
238  }
global $db
Definition: bootstrap.php:22
$cuid
Definition: bootstrap.php:43
m_bro::hook_menu ( )

Hook called by the menu class to add menus to the left panel.

Returns
array

Definition at line 72 of file m_bro.php.

72  {
73  $obj = array(
74  'title' => _("File browser"),
75  'ico' => 'images/folder.png',
76  'link' => 'bro_main.php',
77  'pos' => 40,
78  );
79 
80  return $obj;
81  }
m_bro::icon (   $file)

Retourne le nom du fichier icone associ au fichier donc le nom est $file Note: Les fichiers icones sont mis en cache sur la page courante.

Parameters
globalarray $bro_icon
string$fileFichier dont on souhaite connaitre le fichier icone
Returns
string Fichier icone correspondant.

Definition at line 285 of file m_bro.php.

References $t.

285  {
286  global $bro_icon;
287  if (!strpos($file, ".") && substr($file, 0, 1) != ".") {
288  return "file.png";
289  }
290  $t = explode(".", $file);
291  if (!is_array($t)) {
292  $ext = $t;
293  } else {
294  $ext = $t[count($t) - 1];
295  }
296  // Now seek the extension
297  if (!isset($bro_icon[$ext]) || !$bro_icon[$ext]) {
298  return "file.png";
299  } else {
300  return $bro_icon[$ext] . ".png";
301  }
302  }
foreach($domaines_user as $domaine) $t
m_bro::is_extractable (   $name)

Return a HTML snippet representing an extraction function only if the mimetype of $name is supported.

Parameters
string$name
Returns
boolean

Definition at line 914 of file m_bro.php.

914  {
915  if (($parts = explode(".", $name))) {
916  $ext = array_pop($parts);
917  switch ($ext) {
918  case "gz":
919  case "bz":
920  case "bz2":
921  $ext = array_pop($parts) . $ext;
922  /* FALLTHROUGH */
923  case "tar.gz":
924  case "tar.bz":
925  case "tar.bz2":
926  case "tgz":
927  case "tbz":
928  case "tbz2":
929  case "tar":
930  case "Z":
931  case "zip":
932  return true;
933  }
934  }
935  return false;
936  }
m_bro::is_sqlfile (   $name)

return true if file is a sql dump (end with .sql or .sql.gz)

Parameters
type$dir
type$name
Returns
boolean

Definition at line 946 of file m_bro.php.

946  {
947  if (($parts = explode(".", $name))) {
948  $ext = array_pop($parts);
949  $ext2 = array_pop($parts) . '.' . $ext;
950  if ($ext == 'sql' or $ext2 == 'sql.gz') {
951  return true;
952  }
953  }
954  return false;
955  }
m_bro::m_bro ( )

Constructor.

Definition at line 60 of file m_bro.php.

60  {
61  $this->l_mode = array(0 => _("1 column, detailed"), 1 => _("2 columns, short"), 2 => _("3 columns, short"));
62  $this->l_tgz = array(0 => _("tgz (Linux)"), 1 => _("tar.bz2 (Linux)"), 2 => _("zip (Windows/Dos)"), 3 => _("tar.Z (Unix)"));
63  $this->l_icons = array(0 => _("No"), 1 => _("Yes"));
64  $this->l_createfile = array(0 => _("Go back to the file manager"), 1 => _("Edit the newly created file"));
65  }
m_bro::mime (   $file)

Retourne le type mime associé au fichier donc le nom est $file Note: Les types mimes sont mis en cache sur la page courante.

Le type mime est dtermin d'aprs l'extension du fichier.

Parameters
globalarray $bro_type
string$fileFichier dont on souhaite connaitre le type mime
Returns
string Type mime / Sous type du fichier demand

Definition at line 314 of file m_bro.php.

References $t.

314  {
315  global $bro_type;
316  if (!strpos($file, ".") && substr($file, 0, 1) != ".") {
317  return "File";
318  }
319  $t = explode(".", $file);
320  if (!is_array($t)) {
321  $ext = $t;
322  } else {
323  $ext = $t[count($t) - 1];
324  }
325  // Now seek the extension
326  if (empty($bro_type[$ext])) {
327  return "File";
328  } else {
329  return $bro_type[$ext];
330  }
331  }
foreach($domaines_user as $domaine) $t
m_bro::MoveFile (   $d,
  $old,
  $new 
)

Déplace les fichier de $d du dossier $old vers $new.

Parameters
globalm_messages $msg
array$dListe des fichiers du dossier $old dplacer
string$oldDossier dans lequel se trouve les fichiers dplacer.
string$newDossier vers lequel seront dplacs les fichiers.
Returns
boolean TRUE si les fichiers ont t renomms, FALSE si une erreur s'est produite.

Definition at line 511 of file m_bro.php.

References $d, $i, $msg, convertabsolute(), and ssla().

511  {
512  global $msg;
513  $old = $this->convertabsolute($old, false);
514  if (!$old) {
515  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
516  return false;
517  }
518 
519  if ($new[0] != '/') {
520  $new = $old . '/' . $new;
521  }
522  $new = $this->convertabsolute($new, false);
523 
524  if (!$new) {
525  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
526  return false;
527  }
528  if ($old == $new) {
529  $msg->raise("ERROR", "bro", _("You cannot move or copy a file to the same folder"));
530  return false;
531  }
532  for ($i = 0; $i < count($d); $i++) {
533  $d[$i] = ssla($d[$i]); // strip slashes if needed
534  if (!strpos($d[$i], "/") && file_exists($old . "/" . $d[$i]) && !file_exists($new . "/" . $d[$i])) {
535  if (!rename($old . "/" . $d[$i], $new . "/" . $d[$i])) {
536  $msg->raise("ERROR", "bro", "error renaming $old/$d[$i] -> $new/$d[$i]");
537  }
538  }
539  }
540  return true;
541  }
$i
ssla($str)
Strip slashes if needed :
Definition: functions.php:519
$msg
Definition: config.php:155
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
$d
m_bro::PathList (   $path,
  $action,
  $justparent = false 
)

Affiche le chemin et les liens de la racine au dossier $path Affiche autant de liens HTML (anchor) que le chemin $path contient de niveaux de dossier.

Chaque lien est associ la page web $action laquelle on ajoute le paramtre R=+Le nom du dossier courant.

Parameters
string$pathDossier vers lequel on trace le chemin
string$actionPage web de destination des liens
boolean$justparent
Returns
string Le code HTML ainsi obtenu.

Definition at line 768 of file m_bro.php.

References $c, $i, $R, and convertabsolute().

768  {
769  $path = $this->convertabsolute($path, true);
770  $a = explode("/", $path);
771  if (!is_array($a)) {
772  $a = array($a);
773  }
774  $c = '';
775  $R = '';
776  if ($justparent) {
777  return "<a href=\"$action?R=" . urlencode($a[count($a) - 2] . '/') . "\">&uarr;</a>";
778  }
779  for ($i = 0; $i < count($a); $i++) {
780  if ($a[$i]) {
781  $R.=$a[$i] . "/";
782  $c.="<a href=\"$action?R=" . urlencode($R) . "\">" . $a[$i] . "</a>&nbsp;/&nbsp;";
783  }
784  }
785  return $c;
786  }
$R
Definition: bro_editor.php:45
$i
$c
Definition: bootstrap.php:47
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
m_bro::RenameFile (   $R,
  $old,
  $new 
)

Renomme les fichier de $old du dossier $R en $new.

Parameters
globalm_messages $msg
string$RDossier dans lequel se trouve les fichiers renommer.
array$oldAncien nom des fichiers
array$newNouveau nom des fichiers
Returns
boolean TRUE si les fichiers ont t renomms, FALSE si une erreur s'est produite.

Definition at line 477 of file m_bro.php.

References $i, $msg, $R, convertabsolute(), and ssla().

477  {
478  global $msg;
479  $absolute = $this->convertabsolute($R, false);
480  if (!$absolute) {
481  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
482  return false;
483  }
484  $alea = "." . time() . mt_rand(1000, 9999);
485  for ($i = 0; $i < count($old); $i++) {
486  $old[$i] = ssla($old[$i]); // strip slashes if needed
487  $new[$i] = ssla($new[$i]);
488  if (!strpos($old[$i], "/") && !strpos($new[$i], "/")) { // caractre / interdit dans old ET dans new...
489  @rename($absolute . "/" . $old[$i], $absolute . "/" . $old[$i] . $alea);
490  }
491  }
492  for ($i = 0; $i < count($old); $i++) {
493  if (!strpos($old[$i], "/") && !strpos($new[$i], "/")) { // caractre / interdit dans old ET dans new...
494  @rename($absolute . "/" . $old[$i] . $alea, $absolute . "/" . $new[$i]);
495  }
496  }
497 
498  return true;
499  }
$R
Definition: bro_editor.php:45
$i
ssla($str)
Strip slashes if needed :
Definition: functions.php:519
$msg
Definition: config.php:155
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
m_bro::save (   $file,
  $R,
  $texte 
)

Sauve le fichier $file dans le dossier $R avec pour contenu $texte le contenu est issu d'un textarea, et ne DOIT PAS contenir de \ ajouts automatiquement par addslashes.

Parameters
globalm_messages $msg
string$fileNom du fichier sauver. S'il existe déjà, il sera écrasé sans confirmation.
string$RDossier dans lequel on modifie le fichier
string$texteTexte du fichier à sauver dedans
Returns
false|null TRUE si tout s'est bien pass, FALSE si une erreur s'est produite.

Definition at line 1009 of file m_bro.php.

References $msg, $R, $texte, and convertabsolute().

1009  {
1010  global $msg;
1011  $absolute = $this->convertabsolute($R, false);
1012  if (!strpos($file, "/")) {
1013  $absolute.="/" . $file;
1014  if (file_exists($absolute)) {
1015  if (!file_put_contents($absolute, $texte)) {
1016  $msg->raise("ERROR", "bro", _("Cannot edit the requested file. Please check the permissions"));
1017  return false;
1018  }
1019  }
1020  } else {
1021  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
1022  return false;
1023  }
1024  return true;
1025  }
$R
Definition: bro_editor.php:45
$msg
Definition: config.php:155
$texte
Definition: bro_editor.php:43
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
m_bro::SetPrefs (   $editsizex,
  $editsizey,
  $listmode,
  $showicons,
  $downfmt,
  $createfile,
  $showtype,
  $editor_font,
  $editor_size,
  $golastdir 
)

Modifie les prfrences de l'utilisateur courant.

Parameters
globalm_mysql $db
globalint $cuid
integer$editsizexTaille de l'diteur (nombre de colonnes)
integer$editsizeyTaille de l'diteur (nombre de lignes)
integer$listmodeMode d'affichage de la liste des fichiers
integer$showiconsFaut-il afficher / cacher les icones des fichiers
integer$downfmtDans quel format faut-il tlcharger les dossiers compresss
integer$createfileFaut-il editer/revenir au browser aprs cration d'un fichier
integer$showtypeFaut-il afficher le type mime des fichiers
integer$editor_fontQuelle police faut-il utiliser pour l'diteur
integer$editor_sizeQuelle taille de police faut-il utiliser pour l'diteur
integer$golastdirFaut-il revenir la racine ou au dernier dossier visit ?
Returns
boolean

Definition at line 258 of file m_bro.php.

References $cuid, and $db.

258  {
259  global $db, $cuid;
260  $editsizex = intval($editsizex);
261  $editsizey = intval($editsizey);
262  $listmode = intval($listmode);
263  $showicons = intval($showicons);
264  $showtype = intval($showtype);
265  $downfmt = intval($downfmt);
266  $createfile = intval($createfile);
267  $golastdir = intval($golastdir);
268  $db->query("SELECT * FROM browser WHERE uid= ?;", array(intval($cuid)));
269  if ($db->num_rows() == 0) {
270  $db->query("INSERT INTO browser (editsizex, editsizey, listmode, showicons, downfmt, createfile, showtype, uid, editor_font, editor_size, golastdir) VALUES (70, 21, 0, 0, 0, 0, 0, ?,'Arial, Helvetica, Sans-serif','12px',1);", array(intval($cuid)));
271  }
272  $db->query("UPDATE browser SET editsizex= ?, editsizey= ?, listmode= ?, showicons= ?, downfmt= ?, createfile= ?, showtype= ?, editor_font= ?, editor_size= ?, golastdir= ? WHERE uid= ?;", array($editsizex, $editsizey, $listmode, $showicons, $downfmt, $createfile, $showtype, $editor_font, $editor_size, $golastdir, intval($cuid)));
273  return true;
274  }
global $db
Definition: bootstrap.php:22
$cuid
Definition: bootstrap.php:43
m_bro::UploadFile (   $R)

Recoit un champ file upload (Global) et le stocke dans le dossier $R Le champ file-upload originel doit s'appeler "userfile" et doit bien être un fichier d'upload.

Parameters
globalarray $_FILES
globalm_messages $msg
globalint $cuid
globalm_action $action
string$RDossier dans lequel on upload le fichier
Returns
string The path where the file resides or false if upload failed

Definition at line 595 of file m_bro.php.

References $cuid, $msg, $R, and convertabsolute().

595  {
596  global $_FILES, $msg, $cuid, $action;
597  $absolute = $this->convertabsolute($R, false);
598  if (!$absolute) {
599  $msg->raise("ERROR", "bro", _("File or folder name is incorrect"));
600  return false;
601  }
602  if (!strpos($_FILES['userfile']['name'], "/")) {
603  if ($_FILES['userfile']['error'] == UPLOAD_ERR_OK && is_uploaded_file($_FILES['userfile']['tmp_name'])) {
604  if (!file_exists($absolute . "/" . $_FILES['userfile']['name'])) {
605  @touch($absolute . "/" . $_FILES['userfile']['name']);
606  }
607  if (@move_uploaded_file($_FILES['userfile']['tmp_name'], $absolute . "/" . $_FILES['userfile']['name'])) {
608  $action->fix_file($absolute . "/" . $_FILES['userfile']['name']);
609  return $absolute . "/" . $_FILES['userfile']['name'];
610  } else {
611  $msg->raise("ERROR", "bro", _("Cannot create the requested file. Please check the permissions"));
612  return false;
613  }
614  } else {
615  // there was an error, raise it
616  $msg->log("bro", "uploadfile", "Problem when uploading a file");
617  switch ($_FILES['userfile']['error']) {
618  case UPLOAD_ERR_INI_SIZE:
619  $erstr = _("The uploaded file exceeds the max file size allowed");
620  break;
621  case UPLOAD_ERR_FORM_SIZE:
622  case UPLOAD_ERR_PARTIAL:
623  case UPLOAD_ERR_NO_FILE:
624  case UPLOAD_ERR_NO_TMP_DIR:
625  case UPLOAD_ERR_CANT_WRITE:
626  case UPLOAD_ERR_EXTENSION:
627  default:
628  $erstr = _("Undefined error ") . $_FILES['userfile']['error'];
629  break;
630  }
631  $msg->raise("ERROR", "bro", _("Error during the upload of the file: ") . $erstr);
632  return false;
633  }
634  }
635  return $absolute . "/" . $_FILES['userfile']['name'];
636  }
$R
Definition: bro_editor.php:45
$msg
Definition: config.php:155
$cuid
Definition: bootstrap.php:43
convertabsolute($dir, $strip=true)
Verifie un dossier relatif au dossier de l'utilisateur courant.
Definition: m_bro.php:95
m_bro::viewurl (   $dir,
  $name 
)

Retourne une url de navigation pour le fichier $name du dossier $dir Les url sont mises en caches.

Il se peut qu'aucune url n'existe, ou que celle-ci soit protge par un .htaccess.

Return a browsing url if available. Maintain a url cache (positive AND negative(-) cache)

Parameters
globalm_mysql $db
globalint $cuid
string$dirDossier concerné
string$nameFichier dont on souhaite obtenir une URL
Returns
string URL concerne, ou FALSE si aucune URL n'est disponible pour ce fichier

Definition at line 835 of file m_bro.php.

References $cuid, $db, and ife().

835  {
836  global $db, $cuid;
837  // Is it in cache ?
838  if (substr($dir, 0, 1) == "/") {
839  $dir = substr($dir, 1);
840  }
841  if (substr($dir, -1) == "/") {
842  $dir = substr($dir, 0, -1);
843  }
844  $dir = str_replace("%2F", "/", urlencode($dir));
845  $name = urlencode($name);
846  if (!@$this->cacheurl["d" . $dir]) {
847  // On parcours $dir en remontant les /
848  $end = "";
849  $beg = $dir;
850  $tofind = true;
851  while ($tofind) {
852  $db->query("SELECT sub,domaine FROM sub_domaines WHERE compte= ? AND type=0 AND (valeur= ? or valeur= ?);", array($cuid, "/".$beg."/", "/".$beg));
853  $db->next_record();
854  if ($db->num_rows()) {
855  $tofind = false;
856  $this->cacheurl["d" . $dir] = "http://" . $db->f("sub") . ife($db->f("sub"), ".") . $db->f("domaine") . $end;
857  }
858  if (!$beg && $tofind) {
859  $tofind = false;
860  $this->cacheurl["d" . $dir] = "-";
861  // We did not find it ;(
862  }
863  if (($tt = strrpos($beg, "/")) !== false) {
864  $end = substr($beg, $tt) . $end; //=/topdir$end so $end starts AND ends with /
865  $beg = substr($beg, 0, $tt);
866  } else {
867  $end = "/" . $beg . $end;
868  $beg = "/";
869  }
870  }
871  }
872  if ($this->cacheurl["d" . $dir] && $this->cacheurl["d" . $dir] != "-") {
873  return $this->cacheurl["d" . $dir] . "/" . $name;
874  } else {
875  return false;
876  }
877  }
global $db
Definition: bootstrap.php:22
ife($test, $tr, $fa="")
Definition: functions.php:416
$cuid
Definition: bootstrap.php:43

Member Data Documentation

m_bro::$cacheurl = array()

Definition at line 48 of file m_bro.php.

m_bro::$l_createfile

What do we do after creating a file?

Definition at line 42 of file m_bro.php.

m_bro::$l_editor_font = array("Arial, Helvetica, Sans-serif", "Times, Bookman, Serif", "Courier New, Courier, Fixed")

Font choice in the editor.

Definition at line 51 of file m_bro.php.

m_bro::$l_editor_size = array("18px", "14px", "12px", "10px", "8px", "0.8em", "0.9em", "1em", "1.1em", "1.2em")

font size in the editor

Definition at line 54 of file m_bro.php.

m_bro::$l_icons

Shall we show icons or just names?

Definition at line 39 of file m_bro.php.

m_bro::$l_mode

How we draw the file in column.

Definition at line 33 of file m_bro.php.

m_bro::$l_tgz

download mode of a compressed folder

Definition at line 36 of file m_bro.php.

m_bro::$mime_desc = array()

internal cache

Definition at line 45 of file m_bro.php.

m_bro::$mime_icon = array()

Definition at line 46 of file m_bro.php.

m_bro::$mime_type = array()

Definition at line 47 of file m_bro.php.


The documentation for this class was generated from the following file: