16 "text_block" =>
"div",
17 "text_inline" =>
"span",
22 "media_cont" =>
"table",
23 "media_caption" =>
"div",
31 "flist_cont" =>
"div",
32 "flist_head" =>
"div",
42 "page_frame" =>
"table",
43 "page_cont" =>
"table",
49 "page_lnavlink" =>
"a",
50 "page_rnavlink" =>
"a",
51 "page_lnavimage" =>
"img",
52 "page_rnavimage" =>
"img",
58 array(
"type" =>
"text_block",
"class" =>
"Standard"),
59 array(
"type" =>
"text_block",
"class" =>
"List"),
60 array(
"type" =>
"text_block",
"class" =>
"TableContent"),
61 array(
"type" =>
"text_block",
"class" =>
"Headline1"),
62 array(
"type" =>
"text_block",
"class" =>
"Headline2"),
63 array(
"type" =>
"text_block",
"class" =>
"Headline3"),
64 array(
"type" =>
"text_inline",
"class" =>
"Comment"),
65 array(
"type" =>
"text_inline",
"class" =>
"Emph"),
66 array(
"type" =>
"text_inline",
"class" =>
"Quotation"),
67 array(
"type" =>
"text_inline",
"class" =>
"Strong"),
68 array(
"type" =>
"link",
"class" =>
"IntLink"),
69 array(
"type" =>
"link",
"class" =>
"ExtLink"),
70 array(
"type" =>
"link",
"class" =>
"FootnoteLink"),
71 array(
"type" =>
"media_cont",
"class" =>
"MediaContainer"),
72 array(
"type" =>
"table",
"class" =>
"StandardTable"),
73 array(
"type" =>
"media_caption",
"class" =>
"MediaCaption"),
74 array(
"type" =>
"page_frame",
"class" =>
"PageFrame"),
75 array(
"type" =>
"page_cont",
"class" =>
"PageContainer"),
76 array(
"type" =>
"page_tnav",
"class" =>
"TopNavigation"),
77 array(
"type" =>
"page_bnav",
"class" =>
"BottomNavigation"),
78 array(
"type" =>
"page_lnav",
"class" =>
"LeftNavigation"),
79 array(
"type" =>
"page_rnav",
"class" =>
"RightNavigation"),
80 array(
"type" =>
"page_lnavlink",
"class" =>
"LeftNavigationLink"),
81 array(
"type" =>
"page_rnavlink",
"class" =>
"RightNavigationLink"),
82 array(
"type" =>
"page_lnavimage",
"class" =>
"LeftNavigationImage"),
83 array(
"type" =>
"page_rnavimage",
"class" =>
"RightNavigationImage"),
84 array(
"type" =>
"page_fn",
"class" =>
"Footnote"),
85 array(
"type" =>
"page_title",
"class" =>
"PageTitle"),
86 array(
"type" =>
"sco_title",
"class" =>
"Title"),
87 array(
"type" =>
"sco_desc",
"class" =>
"Description"),
88 array(
"type" =>
"sco_keyw",
"class" =>
"Keywords"),
89 array(
"type" =>
"sco_obj",
"class" =>
"Objective"),
90 array(
"type" =>
"list_o",
"class" =>
"NumberedList"),
91 array(
"type" =>
"list_u",
"class" =>
"BulletedList"),
92 array(
"type" =>
"list_item",
"class" =>
"StandardListItem"),
93 array(
"type" =>
"question",
"class" =>
"Standard"),
94 array(
"type" =>
"question",
"class" =>
"SingleChoice"),
95 array(
"type" =>
"question",
"class" =>
"MultipleChoice"),
96 array(
"type" =>
"question",
"class" =>
"TextQuestion"),
97 array(
"type" =>
"question",
"class" =>
"OrderingQuestion"),
98 array(
"type" =>
"question",
"class" =>
"MatchingQuestion"),
99 array(
"type" =>
"question",
"class" =>
"ImagemapQuestion"),
100 array(
"type" =>
"question",
"class" =>
"ClozeTest"),
101 array(
"type" =>
"qtitle",
"class" =>
"Title"),
102 array(
"type" =>
"qanswer",
"class" =>
"Answer"),
103 array(
"type" =>
"qinput",
"class" =>
"Input"),
104 array(
"type" =>
"qsubmit",
"class" =>
"Submit"),
105 array(
"type" =>
"qfeedr",
"class" =>
"FeedbackRight"),
106 array(
"type" =>
"qfeedw",
"class" =>
"FeedbackWrong"),
107 array(
"type" =>
"flist_cont",
"class" =>
"FileListContainer"),
108 array(
"type" =>
"flist_head",
"class" =>
"FileListHeading"),
109 array(
"type" =>
"flist",
"class" =>
"FileList"),
110 array(
"type" =>
"flist_li",
"class" =>
"FileListItem")
114 protected static $basic_style_file =
"./Services/Migration/DBUpdate_1385/basic_style/style.xml";
127 $add_str =
" AND style_id = " . $ilDB->quote($a_id,
"integer");
130 $set = $ilDB->query($q =
"SELECT DISTINCT style_id, tag, class FROM style_parameter WHERE " .
131 $ilDB->equals(
"type",
"",
"text",
true) .
" " . $add_str);
133 while ($rec = $ilDB->fetchAssoc($set)) {
136 switch ($rec[
"tag"]) {
139 if (in_array($rec[
"class"],
array(
"Headline3",
"Headline1",
140 "Headline2",
"TableContent",
"List",
"Standard",
"Remark",
141 "Additional",
"Mnemonic",
"Citation",
"Example"))) {
142 $types[] =
"text_block";
144 if (in_array($rec[
"class"],
array(
"Block",
"Remark",
145 "Additional",
"Mnemonic",
"Example",
"Excursus",
"Special"))) {
146 $types[] =
"section";
148 if (in_array($rec[
"class"],
array(
"Page",
"Footnote",
"PageTitle",
"LMNavigation"))) {
154 $types[] =
"table_cell";
158 if (in_array($rec[
"class"],
array(
"ExtLink",
"IntLink",
"FootnoteLink"))) {
164 $types[] =
"text_inline";
177 foreach ($types as
$t) {
179 $set4 = $ilDB->queryF(
180 "SELECT * FROM style_char " .
181 " WHERE style_id = %s AND type = %s AND characteristic = %s",
182 array(
"integer",
"text",
"text"),
183 array($rec[
"style_id"], $t, $rec[
"class"])
185 if ($rec4 = $ilDB->fetchAssoc($set4)) {
190 "INSERT INTO style_char " .
191 " (style_id, type, characteristic) VALUES " .
193 array(
"integer",
"text",
"text"),
194 array($rec[
"style_id"], $t, $rec[
"class"])
200 if ($rec[
"type"] ==
"") {
201 if (count($types) > 0) {
203 "UPDATE style_parameter SET type = %s " .
204 " WHERE style_id = %s AND class = %s AND " . $ilDB->equals(
"type",
"",
"text",
true),
205 array(
"text",
"integer",
"text"),
206 array($types[0], $rec[
"style_id"], $rec[
"class"])
210 if ($types[0] ==
"link") {
212 "UPDATE style_parameter SET type = %s " .
213 " WHERE style_id = %s AND (class = %s OR class = %s) AND " . $ilDB->equals(
"type",
"",
"text",
true),
214 array(
"text",
"integer",
"text",
"text"),
215 array($types[0], $rec[
"style_id"], $rec[
"class"] .
":visited",
216 $rec[
"class"] .
":hover")
223 if (count($types) == 2) {
226 $set2 = $ilDB->queryF(
227 "SELECT * FROM style_parameter " .
228 " WHERE style_id = %s AND class = %s AND type = %s",
229 array(
"integer",
"text",
"text"),
230 array($rec[
"style_id"], $rec[
"class"], $types[0])
232 while ($rec2 = $ilDB->fetchAssoc($set2)) {
234 $set3 = $ilDB->queryF(
235 "SELECT * FROM style_parameter " .
236 " WHERE style_id = %s AND tag = %s AND class = %s AND type = %s AND parameter = %s",
237 array(
"integer",
"text",
"text",
"text",
"text"),
238 array($rec[
"style_id"], $rec[
"tag"], $rec[
"class"], $types[1], $rec[
"parameter"])
240 if ($rec3 = $ilDB->fetchAssoc($set3)) {
244 "INSERT INTO style_parameter " .
245 " (style_id, tag, class, parameter, value, type) VALUES " .
246 " (%s,%s,%s,%s,%s,%s) ",
247 array(
"integer",
"text",
"text",
"text",
"text",
"text"),
248 array($rec2[
"style_id"], $rec2[
"tag"], $rec2[
"class"],
249 $rec2[
"parameter"], $rec2[
"value"], $types[1])
264 foreach (self::$core_styles as $cstyle) {
266 =
array(
"type" => $cstyle[
"type"],
268 "class" => $cstyle[
"class"]);
275 return self::$assigned_tags[
$a_type];
285 if (!is_object(self::$basic_style_dom)) {
287 self::$basic_style_dom->load(self::$basic_style_file);
290 return self::$basic_style_dom;
301 $sty_data_dir = CLIENT_WEB_DIR .
"/sty";
303 if (!is_writable($sty_data_dir)) {
304 $ilErr->raiseError(
"Style data directory (" . $sty_data_dir
305 .
") not writeable.", $ilErr->FATAL);
308 $style_dir = $sty_data_dir .
"/sty_" . $a_style_id;
310 if (!@is_dir($style_dir)) {
311 $ilErr->raiseError(
"Creation of style directory failed (" .
312 $style_dir .
").", $ilErr->FATAL);
316 $im_dir = $style_dir .
"/images";
318 if (!@is_dir($im_dir)) {
319 $ilErr->raiseError(
"Creation of Import Directory failed (" .
320 $im_dir .
").", $ilErr->FATAL);
324 $thumb_dir = $style_dir .
"/images/thumbnails";
326 if (!@is_dir($thumb_dir)) {
327 $ilErr->raiseError(
"Creation of Import Directory failed (" .
328 $thumb_dir .
").", $ilErr->FATAL);
337 return CLIENT_WEB_DIR .
"/sty/sty_" . $a_style_id .
352 $core_images =
array();
353 $core_dir = self::$basic_style_image_dir;
354 if (is_dir($core_dir)) {
355 $dir = opendir($core_dir);
356 while (
$file = readdir($dir)) {
357 if (substr(
$file, 0, 1) !=
"." && is_file($core_dir .
"/" .
$file)) {
358 $core_images[] =
$file;
364 $sets = $ilDB->query(
"SELECT * FROM object_data WHERE type = 'sty'");
366 while ($recs = $ilDB->fetchAssoc(
$sets)) {
367 $id = $recs[
"obj_id"];
371 $set = $ilDB->queryF(
372 "SELECT * FROM style_char WHERE style_id = %s " .
373 "AND type = %s AND characteristic = %s",
374 array(
"integer",
"text",
"text"),
375 array(
$id, $cs[
"type"], $cs[
"class"])
379 if (!($rec = $ilDB->fetchAssoc($set))) {
381 "INSERT INTO style_char (style_id, type, characteristic) " .
382 " VALUES (%s,%s,%s) ",
383 array(
"integer",
"text",
"text"),
384 array(
$id, $cs[
"type"], $cs[
"class"])
388 $par_nodes = $xpath->query(
"/StyleSheet/Style[@Tag = '" . $cs[
"tag"] .
"' and @Type='" .
389 $cs[
"type"] .
"' and @Class='" . $cs[
"class"] .
"']/StyleParameter");
390 foreach ($par_nodes as $par_node) {
392 $set = $ilDB->queryF(
393 "SELECT * FROM style_parameter WHERE style_id = %s " .
394 "AND type = %s AND class = %s AND tag = %s AND parameter = %s",
395 array(
"integer",
"text",
"text",
"text",
"text"),
396 array(
$id, $cs[
"type"], $cs[
"class"],
397 $cs[
"tag"], $par_node->getAttribute(
"Name"))
401 if (!($rec = $ilDB->fetchAssoc($set))) {
403 "INSERT INTO style_parameter (style_id, type, class, tag, parameter, value) " .
404 " VALUES (%s,%s,%s,%s,%s,%s)",
405 array(
"integer",
"text",
"text",
"text",
"text",
"text"),
406 array(
$id, $cs[
"type"], $cs[
"class"], $cs[
"tag"],
407 $par_node->getAttribute(
"Name"), $par_node->getAttribute(
"Value"))
418 foreach ($core_images as $cim) {
419 if (!is_file($imdir .
"/" . $cim)) {
420 copy($core_dir .
"/" . $cim, $imdir .
"/" . $cim);
static $basic_style_image_dir
static _determineTag($a_type)
static _getCoreStyles()
Get core styles.
if(!array_key_exists('StateId', $_REQUEST)) $id
addMissingStyleCharacteristics($a_id="")
Add missing style characteristics to styles.
static _addMissingStyleClassesToAllStyles()
Add missing style classes to all styles.
static _getBasicStyleDom()
Get basic style dom.
Style Migration Class (->3.11)
static _getImagesDirectory($a_style_id)
Get images directory.
static _createImagesDirectory($a_style_id)
Create images directory <data_dir>/sty/sty_<id>/images.
Create styles array
The data for the language used.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file