method rename documentation in bbn\Ide\Actions
function($data)
{
(strpos($data['path'], '../') === false) &&
bbn\Str::checkFilename($data['name']) ){
$directories = new Directories($this->db);
$dirs = $directories->dirs();
if ( isset($dirs[$data['dir']]) ){
$cfg =& $dirs[$data['dir']];
$path = $data['path'];
if ( $this->isMvc($cfg) ){
$type = is_dir($cfg['files']['Controller']['fpath'].$path) ? 'dir' : 'file';
}
else {
$type = is_dir($cfg['root_path'].$path) ? 'dir' : 'file';
}
$dir = X::dirname($path).'/';
if ( $dir === './' ){
$dir = '';
}
$name = bbn\Str::fileExt($path, 1)[0];
$src_file = $dir.$name;
$dest_file = $dir.$data['name'];
$todo = [];
if ( $this->isMvc($cfg) ){
foreach ( $cfg['files'] as $f ){
if ( $f != 'CTRL' ){
$src = $f['fpath'].$src_file;
$dest = X::dirname($src).'/'.$data['name'];
if ( $type === 'file' ){
$src .= '.'.$f['ext'];
$dest .= '.'.$f['ext'];
}
$is_dir = ($type === 'dir') && is_dir($src);
$is_file = ($type === 'dir') || $is_dir ? false : is_file($src);
if ( $is_dir || $is_file ){
if ( file_exists($dest) ){
return $this->error("Un fichier du meme nom existe déjà $dest");
}
else{
$todo[$src] = $dest;
}
}
}
}
}
else {
$dest_file= $dir.bbn\Str::fileExt($data['name'], 1)[0];
$ext = bbn\Str::fileExt($data['path']);
$src = $cfg['root_path'].$src_file.($type === 'file' ? '.'.$ext : '');
$dest = X::dirname($src).'/'.bbn\Str::fileExt($data['name'], 1)[0].($type === 'file' ? '.'.$ext : '');
$is_dir = ($type === 'dir') && is_dir($src);
$is_file = ($type === 'dir') || $is_dir ? false : is_file($src);
if ( $is_dir || $is_file ){
if ( file_exists($dest) ){
return $this->error("Un fichier du meme nom existe déjà $dest");
}
else{
$todo[$src] = $dest;
}
}
}
foreach ( $todo as $src => $dest ){
if ( !rename($src, $dest) ){
return $this->error("Impossible de déplacer le fichier $src");
}
}
if ( isset($_SESSION[BBN_APP_NAME]['ide']['list']) ){
$sess = [
'dir' => $data['dir'],
'file' => $data['path']
];
if ( \in_array($sess, $_SESSION[BBN_APP_NAME]['ide']['list']) ){
unset($_SESSION[BBN_APP_NAME]['ide']['list'][array_search($sess, $_SESSION[BBN_APP_NAME]['ide']['list'])]);
array_push($_SESSION[BBN_APP_NAME]['ide']['list'], [
'dir' => $data['dir'],
'file' => $dest_file.( empty($ext) ? '.php' : '.'.$ext )
]);
}
}
return [
'new_file' => $dest_file,
'new_file_ext' => empty($ext) ? '' : $ext
];
}
}
return $this->error();
}
BBN is a suite of PHP and JS libraries and VueJS components - all open-source! bbn.io, build applications, the quick way
This website uses cookies to ensure you get the best experience on our website.
© 2011-2025
BBN Solutions