コード例 #1
0
ファイル: page.php プロジェクト: nemein/openpsa
 private function read_page($page, $path)
 {
     $page_path = "{$path}{$page->name}";
     if (!file_exists($page_path)) {
         mkdir($page_path);
     }
     $filenames = array();
     $foldernames = array();
     $pageelement_qb = midcom_db_pageelement::new_query_builder();
     $pageelement_qb->add_constraint('page', '=', $page->id);
     $pageelements = $pageelement_qb->execute();
     foreach ($pageelements as $pageelement) {
         file_put_contents("{$page_path}/{$pageelement->name}.php", $pageelement->value);
         $filenames[] = "{$pageelement->name}.php";
     }
     $dir_qb = midcom_db_page::new_query_builder();
     $dir_qb->add_constraint('up', '=', $page->id);
     $dirs = $dir_qb->execute();
     foreach ($dirs as $dir) {
         $this->read_page($dir, "{$page_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
ファイル: page.php プロジェクト: nemein/openpsa
 private function delete_missing_files($filenames, $page_id)
 {
     if (!$this->delete_missing) {
         return;
     }
     $qb = midcom_db_pageelement::new_query_builder();
     $qb->add_constraint('up', '=', $page_id);
     if (!empty($filenames)) {
         $qb->add_constraint('name', 'NOT IN', $filenames);
     }
     $files = $qb->execute();
     foreach ($files as $file) {
         $file->delete();
     }
 }