ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilSystemStyleHTMLExport.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2011 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
12 {
13  private $exp_dir = "";
14  private $images = array();
15 
21  function __construct($a_exp_dir)
22  {
23  $this->exp_dir = $a_exp_dir;
24  $this->style_dir = $a_exp_dir."/style";
25  $this->style_img_dir = $a_exp_dir."/style/images";
26  $this->img_dir = $a_exp_dir."/images";
27  $this->img_browser_dir = $a_exp_dir."/images/browser";
28 
29  // add standard images
30  $this->addImage("enlarge.png");
31  $this->addImage("browser/blank.png", "/browser/plus.png");
32  $this->addImage("browser/blank.png", "/browser/minus.png");
33  $this->addImage("browser/blank.png", "/browser/blank.png");
34  $this->addImage("spacer.png");
35  $this->addImage("icon_st.png");
36  $this->addImage("icon_st_s.png");
37  $this->addImage("icon_pg.png");
38  $this->addImage("icon_pg_s.png");
39  $this->addImage("icon_lm.png");
40  $this->addImage("icon_lm_s.png");
41  $this->addImage("nav_arr_L.png");
42  $this->addImage("nav_arr_R.png");
43  $this->addImage("browser/forceexp.png");
44  $this->addImage("download.png");
45  }
46 
50  function createDirectories()
51  {
52  ilUtil::makeDir($this->style_dir);
53  ilUtil::makeDir($this->style_img_dir);
54  ilUtil::makeDir($this->img_dir);
55  ilUtil::makeDir($this->img_browser_dir);
56  }
57 
64  function addImage($a_file, $a_exp_file_name = "")
65  {
66  $this->images[] = array("file" => $a_file,
67  "exp_file_name" => $a_file);
68  }
69 
76  function export()
77  {
78  global $ilUser;
79 
80  $this->createDirectories();
81 
82  // export system style sheet
83  $location_stylesheet = ilUtil::getStyleSheetLocation("filesystem");
84  $style_name = $ilUser->prefs["style"].".css";
85  copy($location_stylesheet, $this->style_dir."/".$style_name);
86  $fh = fopen($location_stylesheet, "r");
87  $css = fread($fh, filesize($location_stylesheet));
88  preg_match_all("/url\(([^\)]*)\)/",$css,$files);
89  foreach (array_unique($files[1]) as $fileref)
90  {
91  $fileref = dirname($location_stylesheet)."/".$fileref;
92  if (is_file($fileref))
93  {
94  copy($fileref, $this->style_img_dir."/".basename($fileref));
95  }
96  }
97  fclose($fh);
98 
99  // export (icon) images
100  foreach ($this->images as $im)
101  {
102  $from = $to = $im["file"];
103  if ($im["exp_file_name"] != "")
104  {
105  $to = $im["exp_file_name"];
106  }
107  copy(ilUtil::getImagePath($from, false, "filesystem"),
108  $this->img_dir."/".$to);
109  }
110  }
111 
112 }
113 
114 ?>