Donc tout simplement comme sa pour FilmsController.php ?
// on move ! avec symlink !
symlink($tmp_path, $move);
chmod($move, 0777);
array_push($files_array, $file);
} else {
$this->Flash->warning(__('Ceci n\'est pas un film!'));
}
}
$this->set('files_up', $files_array);
}
$upload = '';
$this->set('upload_dir', $path);
$this->set(compact('upload'));
$this->set('_serialize', ['upload']);
}
public function uploadUser()
{
$this->loadModel('Folders');
$this->loadModel('Rmwords');
// on récupère les variables issues des autres controleurs
$rm_start = explode(',', $this->Rmwords->findByEnd('0')->first()['words']);
$rm_end = explode(',', $this->Rmwords->findByEnd('1')->first()['words']);
// on récupère les variables issues des autres controleurs
$settings = $this->Folders->findByType('Film_user')->first();
$filetype = $settings['filetype'];
if ($settings) {
$path = $settings['path'];
} else {
$path = false;
$this->Flash->warning(__('Veuillez configurer un dossier d\'upload pour les films.'));
}
if ($this->request->is('post')) {
$files = $this->request->data;
$files_array = array();
foreach ($files['file'] as $file) {
$year = findYear($file['name']);
$ext = findExt($file['name'], $filetype);
// Traitement avec les mots clés
$name = rm_words($file['name'], $rm_end, $rm_start);
$move = movePathModerate($path, $name, $year, $ext);
$tmp_path = $file['tmp_name'];
$filetype = $settings['filetype'];
$ext = findExt($file['name'], $filetype);
if($ext != false){
$file_move = new File ($move, true, 0777);
// on move ! avec symlink !
symlink($tmp_path, $move);
chmod($move, 0777);
array_push($files_array, $file);
} else {
$this->Flash->warning(__('Ceci n\'est pas un film!'));
}
}
$this->set('files_up', $files_array);
}
$upload = '';
$this->set('upload_dir', $path);
$this->set(compact('upload'));
$this->set('_serialize', ['upload']);
}
// Pages visibles uniquement par les users (non identifiés)
public function indexUser($view='grid', $genre='')
{
if ($view == 'grid') {
$this->paginate = ['limit' => 16, 'order' => ['Films.created' => 'desc']];
} else {
if ($view == 'first') {
$this->paginate = ['limit' => 16, 'order' => ['Films.created' => 'desc']];
}else {
$this->paginate = ['limit' => 5, 'order' => ['Films.created' => 'desc']];
}
}
if(null != $this->request->query('search') || null != $this->request->query('year')){
$year = $this->request->query('year');
$search = $this->request->query('search');
$this->set('films', $this->paginate($this->Films->find()->where([1,'AND' => [ 'OR' => ['titre_film LIKE' => '%'.$search.'%','real_film LIKE' => '%'.$search.'%','acteur_film LIKE' => '%'.$search.'%'],'annee_film LIKE' => '%'.$year.'%']])));
$this->set('_serialize', ['films']);
$this->set('search', $search);
$this->set('year', $year);
} else {
$this->set('films', $this->paginate($this->Films->find()->where(['genre_film LIKE' => '%'.$genre.'%'])));
$this->set('_serialize', ['films']);
}
$this->set('view', $view);
$this->set('genre', $genre);
$annees = $this->Films->find()->select(['annee_film'])->distinct('annee_film')->order(['annee_film' => 'DESC']);
$years = array();
foreach ($annees as $annee) {
$year = substr($annee['annee_film'],0,4);
if (!in_array($year, $years)) {
array_push($years,$year);
}
}
$this->set('annees', $years);
}
//Renommage auto des fichiers et classement !
public function symlinkFile($file='')
{
$file = str_replace('-dot-', '.', $file);
$file = str_replace('-slash-', '/', $file);
$this->loadModel('Folders');
// on récupère les variables issues des autres controleurs
$settings = $this->Folders->findByType('Films')->first();
$path = $settings['path'];
if(null != $this->request->query('symlink')){
$new_file = $this->request->query('symlink');
$file = $path.'/'.$file;
$new_file = $path.'/'.$new_file;
// On créé le fichier avant > permet de créer les dossiers 20XX
new File ($new_file, true, 0777);
// on move ! avec symlink !
if(symlink($file, $new_file)){
chmod($new_file, 0777);
$this->Flash->success(__('Le fichier a été renommé.'));
return $this->redirect(['action' => 'import']);
}
}
$this->set('file', $file);
}