Exemple #1
0
 public function read_style($style, $path)
 {
     $style_path = "{$path}{$style->name}";
     if (!file_exists($style_path)) {
         mkdir($style_path);
     }
     $filenames = array();
     $foldernames = array();
     $element_qb = midcom_db_element::new_query_builder();
     $element_qb->add_constraint('style', '=', $style->id);
     $elements = $element_qb->execute();
     foreach ($elements as $element) {
         file_put_contents("{$style_path}/{$element->name}.php", $element->value);
         $filenames[] = "{$element->name}.php";
     }
     $style_qb = midcom_db_style::new_query_builder();
     $style_qb->add_constraint('up', '=', $style->id);
     $styles = $style_qb->execute();
     foreach ($styles as $style) {
         $this->read_style($style, "{$style_path}/");
         $foldernames[] = $style->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);
     }
 }
Exemple #2
0
 private function delete_missing_files($filenames, $style_id)
 {
     if (!$this->delete_missing) {
         return;
     }
     $qb = midcom_db_element::new_query_builder();
     $qb->add_constraint('style', '=', $style_id);
     if (!empty($filenames)) {
         $qb->add_constraint('name', 'NOT IN', $filenames);
     }
     $files = $qb->execute();
     foreach ($files as $file) {
         $file->delete();
     }
 }