コード例 #1
0
ファイル: snippet.php プロジェクト: nemein/openpsa
 private function read_snippetdir($snippetdir, $path)
 {
     $snippetdir_path = "{$path}{$snippetdir->name}";
     if (!file_exists($snippetdir_path)) {
         mkdir($snippetdir_path);
     }
     $filenames = array();
     $foldernames = array();
     $snippet_qb = midcom_db_snippet::new_query_builder();
     $snippet_qb->add_constraint('up', '=', $snippetdir->id);
     $snippets = $snippet_qb->execute();
     foreach ($snippets as $snippet) {
         file_put_contents("{$snippetdir_path}/{$snippet->name}.php", $snippet->code);
         $filenames[] = "{$snippet->name}.php";
         if (!empty($snippet->doc)) {
             file_put_contents("{$snippetdir_path}/{$snippet->name}.txt", $snippet->doc);
             $filenames[] = "{$snippet->name}.txt";
         }
     }
     $dir_qb = midcom_db_snippetdir::new_query_builder();
     $dir_qb->add_constraint('up', '=', $snippetdir->id);
     $dirs = $dir_qb->execute();
     foreach ($dirs as $dir) {
         $this->read_snippetdir($dir, "{$snippetdir_path}/");
         $foldernames[] = $dir->name;
     }
     if ($this->delete_missing) {
         // Then delete files and folders that are in DB but not in the importing folder
         $this->delete_missing_folders($foldernames, $style_path);
         $this->delete_missing_files($filenames, $style_path);
     }
 }
コード例 #2
0
ファイル: snippet.php プロジェクト: nemein/openpsa
 private function delete_missing_files($filenames, $snippetdir_id)
 {
     if (!$this->delete_missing) {
         return;
     }
     $qb = midcom_db_snippet::new_query_builder();
     $qb->add_constraint('up', '=', $snippetdir_id);
     if (!empty($filenames)) {
         $qb->add_constraint('name', 'NOT IN', $filenames);
     }
     $files = $qb->execute();
     foreach ($files as $file) {
         $file->delete();
     }
 }