5 require_once
"./Services/Object/classes/class.ilObject.php";
19 public static $num_unit = array(
"px",
"em",
"ex",
"%",
"pt",
"pc",
"in",
"mm",
"cm");
25 "values" => array(
"xx-small",
"x-small",
"small",
"medium",
"large",
"x-large",
"xx-large",
"smaller",
"larger"),
26 "input" =>
"fontsize",
28 "font-family" => array(
32 "font-style" => array(
33 "values" => array(
"italic",
"oblique",
"normal"),
36 "font-weight" => array(
37 "values" => array(
"bold",
"normal",
"bolder",
"lighter"),
40 "font-variant" => array(
41 "values" => array(
"small-caps",
"normal"),
44 "word-spacing" => array(
46 "input" =>
"numeric_no_perc",
48 "letter-spacing" => array(
50 "input" =>
"numeric_no_perc",
52 "text-decoration" => array(
53 "values" => array(
"underline",
"overline",
"line-through",
"blink",
"none"),
56 "text-transform" => array(
57 "values" => array(
"capitalize",
"uppercase",
"lowercase",
"none"),
64 "text-indent" => array(
68 "line-height" => array(
72 "vertical-align" => array(
73 "values" => array(
"top",
"middle",
"bottom",
"baseline",
"sub",
"super",
74 "text-top",
"text-bottom"),
77 "text-align" => array(
78 "values" => array(
"left",
"center",
"right",
"justify"),
81 "white-space" => array(
82 "values" => array(
"normal",
"pre",
"nowrap"),
87 "input" =>
"trbl_numeric",
88 "subpar" => array(
"margin",
"margin-top",
"margin-right",
89 "margin-bottom",
"margin-left"),
90 "group" =>
"margin_and_padding"),
93 "input" =>
"trbl_numeric",
94 "subpar" => array(
"padding",
"padding-top",
"padding-right",
95 "padding-bottom",
"padding-left"),
96 "group" =>
"margin_and_padding"),
97 "border-width" => array(
98 "values" => array(
"thin",
"medium",
"thick"),
99 "input" =>
"border_width",
100 "subpar" => array(
"border-width",
"border-top-width",
"border-right-width",
101 "border-bottom-width",
"border-left-width"),
102 "group" =>
"border"),
103 "border-color" => array(
105 "input" =>
"trbl_color",
106 "subpar" => array(
"border-color",
"border-top-color",
"border-right-color",
107 "border-bottom-color",
"border-left-color"),
108 "group" =>
"border"),
109 "border-style" => array(
110 "values" => array(
"none",
"hidden",
"dotted",
"dashed",
"solid",
"double",
111 "groove",
"ridge",
"inset",
"outset"),
112 "input" =>
"border_style",
113 "subpar" => array(
"border-style",
"border-top-style",
"border-right-style",
114 "border-bottom-style",
"border-left-style"),
115 "group" =>
"border"),
117 "background-color" => array(
120 "group" =>
"background"),
121 "background-image" => array(
123 "input" =>
"background_image",
124 "group" =>
"background"),
125 "background-repeat" => array(
126 "values" => array(
"repeat",
"repeat-x",
"repeat-y",
"no-repeat"),
128 "group" =>
"background"),
129 "background-attachment" => array(
130 "values" => array(
"fixed",
"scroll"),
132 "group" =>
"background"),
133 "background-position" => array(
134 "values" => array(
"horizontal" => array(
"left",
"center",
"right"),
135 "vertical" => array(
"top",
"center",
"bottom")),
136 "input" =>
"background_position",
137 "group" =>
"background"),
140 "values" => array(
"absolute",
"fixed",
"relative",
"static"),
142 "group" =>
"positioning"),
145 "input" =>
"numeric",
146 "group" =>
"positioning"),
149 "input" =>
"numeric",
150 "group" =>
"positioning"),
153 "input" =>
"numeric",
154 "group" =>
"positioning"),
157 "input" =>
"numeric",
158 "group" =>
"positioning"),
161 "input" =>
"numeric",
162 "group" =>
"positioning"),
165 "input" =>
"numeric",
166 "group" =>
"positioning"),
167 "min-height" => array(
169 "input" =>
"numeric",
170 "group" =>
"positioning"),
172 "values" => array(
"left",
"right",
"none"),
174 "group" =>
"positioning"),
176 "values" => array(
"visible",
"hidden",
"scroll",
"auto"),
178 "group" =>
"positioning"),
182 "input" =>
"percentage",
183 "group" =>
"special"),
185 "values" => array(
"auto",
"default",
"crosshair",
"pointer",
"move",
186 "n-resize",
"ne-resize",
"e-resize",
"se-resize",
"s-resize",
"sw-resize",
187 "w-resize",
"nw-resize",
"text",
"wait",
"help"),
189 "group" =>
"special"),
191 "values" => array (
"both",
"left",
"right",
"none"),
193 "group" =>
"special"),
195 "list-style-type.ol" => array(
196 "values" => array (
"decimal",
"lower-roman",
"upper-roman",
197 "lower-alpha",
"upper-alpha",
"lower-greek",
"hebrew",
198 "decimal-leading-zero",
"cjk-ideographic",
"hiragana",
199 "katakana",
"hiragana-iroha",
"katakana-iroha",
"none"),
202 "list-style-type.ul" => array(
203 "values" => array (
"disc",
"circle",
"square",
207 "list-style-image.ul" => array(
209 "input" =>
"background_image",
211 "list-style-position.ol" => array(
212 "values" => array (
"inside",
"outside"),
215 "list-style-position.ul" => array(
216 "values" => array (
"inside",
"outside"),
220 "border-collapse" => array(
221 "values" => array (
"collapse",
"separate"),
225 "caption-side" => array(
226 "values" => array (
"top",
"bottom",
"left",
"right"),
235 array(
"ol" => array(
"ol"),
"ul" => array(
"ul"),
236 "table" => array(
"table"),
"positioning" => array(
"h1",
"h2",
"h3",
"div",
"img",
"table",
"a"));
240 "text_block" => array(
"text_block",
"heading1",
"heading2",
"heading3"),
241 "text_inline" => array(
"text_inline"),
242 "section" => array(
"section"),
243 "link" => array(
"link"),
244 "table" => array(
"table",
"table_cell",
"table_caption"),
245 "list" => array(
"list_o",
"list_u",
"list_item"),
246 "flist" => array(
"flist_cont",
"flist_head",
"flist",
"flist_li",
"flist_a"),
247 "media" => array(
"media_cont",
"media_caption",
"iim",
"marker"),
248 "tabs" => array(
"va_cntr",
"va_icntr",
"va_ihead",
"va_icont",
249 "ha_cntr",
"ha_icntr",
"ha_ihead",
"ha_icont"),
250 "question" => array(
"question",
"qtitle",
"qanswer",
"qinput",
"qlinput",
"qsubmit",
"qfeedr",
"qfeedw",
251 "qimg",
"qordul",
"qordli",
"qimgd",
"qetitem",
"qetcorr",
"qover"),
252 "page" => array(
"page_frame",
"page_cont",
"page_title",
"page_fn",
253 "page_tnav",
"page_bnav",
"page_lnav",
"page_rnav",
"page_lnavlink",
"page_rnavlink",
254 "page_lnavimage",
"page_rnavimage"),
255 "glo" => array(
"glo_overlay",
"glo_ovtitle",
"glo_ovclink",
"glo_ovuglink",
"glo_ovuglistlink"),
256 "sco" => array(
"sco_title",
"sco_keyw",
"sco_desc",
"sco_desct",
"sco_obj",
"sco_objt",
"sco_fmess"),
257 "rte" => array(
"rte_menu",
"rte_mlink",
"rte_tree",
"rte_node",
"rte_tlink",
"rte_status",
258 "rte_tul",
"rte_tli",
"rte_texp",
"rte_tclink",
"rte_drag")
263 "text_block",
"section",
"media_cont",
"table",
"table_cell",
"flist_li",
"table_caption",
265 "va_cntr",
"va_icntr",
"va_ihead",
"va_icont",
266 "ha_cntr",
"ha_icntr",
"ha_ihead",
"ha_icont" 271 "table",
"table_cell" 276 "text_block" =>
"div",
280 "text_inline" =>
"span",
284 "table_cell" =>
"td",
285 "table_caption" =>
"caption",
286 "media_cont" =>
"table",
287 "media_caption" =>
"div",
290 "glo_overlay" =>
"div",
291 "glo_ovtitle" =>
"h1",
292 "glo_ovclink" =>
"a",
293 "glo_ovuglink" =>
"a",
294 "glo_ovuglistlink" =>
"a",
295 "sco_title" =>
"div",
299 "sco_desct" =>
"div",
301 "sco_fmess" =>
"div",
308 "rte_status" =>
"div",
316 "flist_cont" =>
"div",
317 "flist_head" =>
"div",
331 "qlinput" =>
"textarea",
332 "qsubmit" =>
"input",
336 "page_frame" =>
"div",
337 "page_cont" =>
"div",
340 "page_tnav" =>
"div",
341 "page_bnav" =>
"div",
342 "page_lnav" =>
"div",
343 "page_rnav" =>
"div",
344 "page_lnavlink" =>
"a",
345 "page_rnavlink" =>
"a",
346 "page_lnavimage" =>
"img",
347 "page_rnavimage" =>
"img",
348 "page_title" =>
"h1",
361 array (
"a" => array(
"hover"),
"div" => array(
"hover"),
"img" => array(
"hover"));
365 array(
"type" =>
"text_block",
"class" =>
"Standard"),
366 array(
"type" =>
"text_block",
"class" =>
"List"),
367 array(
"type" =>
"text_block",
"class" =>
"TableContent"),
368 array(
"type" =>
"heading1",
"class" =>
"Headline1"),
369 array(
"type" =>
"heading2",
"class" =>
"Headline2"),
370 array(
"type" =>
"heading3",
"class" =>
"Headline3"),
371 array(
"type" =>
"text_inline",
"class" =>
"Comment"),
372 array(
"type" =>
"text_inline",
"class" =>
"Emph"),
373 array(
"type" =>
"text_inline",
"class" =>
"Quotation"),
374 array(
"type" =>
"text_inline",
"class" =>
"Strong"),
375 array(
"type" =>
"text_inline",
"class" =>
"Accent"),
376 array(
"type" =>
"text_inline",
"class" =>
"Important"),
377 array(
"type" =>
"link",
"class" =>
"IntLink"),
378 array(
"type" =>
"link",
"class" =>
"ExtLink"),
379 array(
"type" =>
"link",
"class" =>
"FootnoteLink"),
380 array(
"type" =>
"link",
"class" =>
"FileLink"),
381 array(
"type" =>
"link",
"class" =>
"GlossaryLink"),
382 array(
"type" =>
"media_cont",
"class" =>
"MediaContainer"),
383 array(
"type" =>
"table",
"class" =>
"StandardTable"),
384 array(
"type" =>
"media_caption",
"class" =>
"MediaCaption"),
385 array(
"type" =>
"iim",
"class" =>
"ContentPopup"),
386 array(
"type" =>
"marker",
"class" =>
"Marker"),
387 array(
"type" =>
"page_frame",
"class" =>
"PageFrame"),
388 array(
"type" =>
"page_cont",
"class" =>
"PageContainer"),
389 array(
"type" =>
"page",
"class" =>
"Page"),
390 array(
"type" =>
"page_tnav",
"class" =>
"TopNavigation"),
391 array(
"type" =>
"page_bnav",
"class" =>
"BottomNavigation"),
392 array(
"type" =>
"page_lnav",
"class" =>
"LeftNavigation"),
393 array(
"type" =>
"page_rnav",
"class" =>
"RightNavigation"),
394 array(
"type" =>
"page_lnavlink",
"class" =>
"LeftNavigationLink"),
395 array(
"type" =>
"page_rnavlink",
"class" =>
"RightNavigationLink"),
396 array(
"type" =>
"page_lnavimage",
"class" =>
"LeftNavigationImage"),
397 array(
"type" =>
"page_rnavimage",
"class" =>
"RightNavigationImage"),
398 array(
"type" =>
"page_fn",
"class" =>
"Footnote"),
399 array(
"type" =>
"page_title",
"class" =>
"PageTitle"),
400 array(
"type" =>
"glo_overlay",
"class" =>
"GlossaryOverlay"),
401 array(
"type" =>
"glo_ovtitle",
"class" =>
"GlossaryOvTitle"),
402 array(
"type" =>
"glo_ovclink",
"class" =>
"GlossaryOvCloseLink"),
403 array(
"type" =>
"glo_ovuglink",
"class" =>
"GlossaryOvUnitGloLink"),
404 array(
"type" =>
"glo_ovuglistlink",
"class" =>
"GlossaryOvUGListLink"),
405 array(
"type" =>
"sco_title",
"class" =>
"Title"),
406 array(
"type" =>
"sco_desc",
"class" =>
"Description"),
407 array(
"type" =>
"sco_desct",
"class" =>
"DescriptionTop"),
408 array(
"type" =>
"sco_keyw",
"class" =>
"Keywords"),
409 array(
"type" =>
"sco_obj",
"class" =>
"Objective"),
410 array(
"type" =>
"sco_objt",
"class" =>
"ObjectiveTop"),
411 array(
"type" =>
"sco_fmess",
"class" =>
"FinalMessage"),
412 array(
"type" =>
"rte_menu",
"class" =>
"RTEMenu"),
413 array(
"type" =>
"rte_menu",
"class" =>
"RTELogo"),
414 array(
"type" =>
"rte_menu",
"class" =>
"RTELinkBar"),
415 array(
"type" =>
"rte_mlink",
"class" =>
"RTELink"),
416 array(
"type" =>
"rte_mlink",
"class" =>
"RTELinkDisabled"),
417 array(
"type" =>
"rte_tree",
"class" =>
"RTETree"),
418 array(
"type" =>
"rte_node",
"class" =>
"RTECourse"),
419 array(
"type" =>
"rte_node",
"class" =>
"RTEChapter"),
420 array(
"type" =>
"rte_node",
"class" =>
"RTESco"),
421 array(
"type" =>
"rte_node",
"class" =>
"RTEAsset"),
422 array(
"type" =>
"rte_node",
"class" =>
"RTECourseDisabled"),
423 array(
"type" =>
"rte_node",
"class" =>
"RTEChapterDisabled"),
424 array(
"type" =>
"rte_node",
"class" =>
"RTEScoDisabled"),
425 array(
"type" =>
"rte_node",
"class" =>
"RTEAssetDisabled"),
426 array(
"type" =>
"rte_status",
"class" =>
"RTEAsset"),
427 array(
"type" =>
"rte_status",
"class" =>
"RTECompleted"),
428 array(
"type" =>
"rte_status",
"class" =>
"RTENotAttempted"),
429 array(
"type" =>
"rte_status",
"class" =>
"RTERunning"),
430 array(
"type" =>
"rte_status",
"class" =>
"RTEIncomplete"),
431 array(
"type" =>
"rte_status",
"class" =>
"RTEPassed"),
432 array(
"type" =>
"rte_status",
"class" =>
"RTEFailed"),
433 array(
"type" =>
"rte_status",
"class" =>
"RTEBrowsed"),
434 array(
"type" =>
"rte_tlink",
"class" =>
"RTETreeLink"),
435 array(
"type" =>
"rte_tlink",
"class" =>
"RTETreeLinkDisabled"),
436 array(
"type" =>
"rte_tlink",
"class" =>
"RTETreeCurrent"),
437 array(
"type" =>
"rte_tul",
"class" =>
"RTETreeList"),
438 array(
"type" =>
"rte_tli",
"class" =>
"RTETreeItem"),
439 array(
"type" =>
"rte_texp",
"class" =>
"RTETreeExpanded"),
440 array(
"type" =>
"rte_texp",
"class" =>
"RTETreeCollapsed"),
441 array(
"type" =>
"rte_tree",
"class" =>
"RTETreeControl"),
442 array(
"type" =>
"rte_tclink",
"class" =>
"RTETreeControlLink"),
443 array(
"type" =>
"rte_drag",
"class" =>
"RTEDragBar"),
444 array(
"type" =>
"list_o",
"class" =>
"NumberedList"),
445 array(
"type" =>
"list_u",
"class" =>
"BulletedList"),
446 array(
"type" =>
"list_item",
"class" =>
"StandardListItem"),
447 array(
"type" =>
"question",
"class" =>
"Standard"),
448 array(
"type" =>
"question",
"class" =>
"SingleChoice"),
449 array(
"type" =>
"question",
"class" =>
"MultipleChoice"),
450 array(
"type" =>
"question",
"class" =>
"TextQuestion"),
451 array(
"type" =>
"question",
"class" =>
"OrderingQuestion"),
452 array(
"type" =>
"question",
"class" =>
"MatchingQuestion"),
453 array(
"type" =>
"question",
"class" =>
"ImagemapQuestion"),
454 array(
"type" =>
"question",
"class" =>
"ErrorText"),
455 array(
"type" =>
"question",
"class" =>
"TextSubset"),
456 array(
"type" =>
"question",
"class" =>
"ClozeTest"),
457 array(
"type" =>
"qtitle",
"class" =>
"Title"),
458 array(
"type" =>
"qanswer",
"class" =>
"Answer"),
459 array(
"type" =>
"qimg",
"class" =>
"QuestionImage"),
460 array(
"type" =>
"qimgd",
"class" =>
"ImageDetailsLink"),
461 array(
"type" =>
"qordul",
"class" =>
"OrderList"),
462 array(
"type" =>
"qordli",
"class" =>
"OrderListItem"),
463 array(
"type" =>
"qordul",
"class" =>
"OrderListHorizontal"),
464 array(
"type" =>
"qordli",
"class" =>
"OrderListItemHorizontal"),
465 array(
"type" =>
"qetitem",
"class" =>
"ErrorTextItem"),
466 array(
"type" =>
"qetitem",
"class" =>
"ErrorTextSelected"),
467 array(
"type" =>
"qetcorr",
"class" =>
"ErrorTextCorrected"),
468 array(
"type" =>
"qinput",
"class" =>
"TextInput"),
469 array(
"type" =>
"qlinput",
"class" =>
"LongTextInput"),
470 array(
"type" =>
"qsubmit",
"class" =>
"Submit"),
471 array(
"type" =>
"qfeedr",
"class" =>
"FeedbackRight"),
472 array(
"type" =>
"qfeedw",
"class" =>
"FeedbackWrong"),
473 array(
"type" =>
"qover",
"class" =>
"Correct"),
474 array(
"type" =>
"qover",
"class" =>
"Inorrect"),
475 array(
"type" =>
"qover",
"class" =>
"StatusMessage"),
476 array(
"type" =>
"qover",
"class" =>
"WrongAnswersMessage"),
477 array(
"type" =>
"flist_cont",
"class" =>
"FileListContainer"),
478 array(
"type" =>
"flist_head",
"class" =>
"FileListHeading"),
479 array(
"type" =>
"flist",
"class" =>
"FileList"),
480 array(
"type" =>
"flist_li",
"class" =>
"FileListItem"),
481 array(
"type" =>
"flist_a",
"class" =>
"FileListItemLink")
487 "caption" =>
"table_caption",
488 "row_head" =>
"table_cell",
489 "row_foot" =>
"table_cell",
490 "col_head" =>
"table_cell",
491 "col_foot" =>
"table_cell",
492 "odd_row" =>
"table_cell",
493 "even_row" =>
"table_cell",
494 "odd_col" =>
"table_cell",
495 "even_col" =>
"table_cell"),
496 "vaccordion" => array(
497 "va_cntr" =>
"va_cntr",
498 "va_icntr" =>
"va_icntr",
499 "va_ihead" =>
"va_ihead",
500 "va_icont" =>
"va_icont" 502 "haccordion" => array(
503 "ha_cntr" =>
"ha_cntr",
504 "ha_icntr" =>
"ha_icntr",
505 "ha_ihead" =>
"ha_ihead",
506 "ha_icont" =>
"ha_icont" 524 $this->style = array();
525 if($a_call_by_reference)
527 $this->
ilias->raiseError(
"Can't instantiate style object via reference id.",$this->
ilias->error_obj->FATAL);
530 parent::ilObject($a_id,
false);
538 $this->
ilias->raiseError(
"Operation ilObjStyleSheet::setRefId() not allowed.",$this->
ilias->error_obj->FATAL);
555 $this->
ilias->raiseError(
"Operation ilObjStyleSheet::putInTree() not allowed.",$this->
ilias->error_obj->FATAL);
563 $this->
ilias->raiseError(
"Operation ilObjStyleSheet::createReference() not allowed.",$this->
ilias->error_obj->FATAL);
571 $this->up_to_date = $a_up_to_date;
579 return $this->up_to_date;
587 $this->scope = $a_scope;
605 $q =
"UPDATE style_data SET uptodate = ".
606 $ilDB->quote((
int) $a_up_to_date,
"integer").
607 " WHERE id = ".$ilDB->quote($a_id,
"integer");
608 $ilDB->manipulate($q);
618 $q =
"SELECT uptodate FROM style_data ".
619 " WHERE id = ".$ilDB->quote($a_id,
"integer");
620 $res = $ilDB->query($q);
621 $sty = $ilDB->fetchAssoc(
$res);
623 return (
boolean) $sty[
"uptodate"];
633 $q =
"UPDATE style_data SET standard = ".
634 $ilDB->quote((
int) $a_std,
"integer").
635 " WHERE id = ".$ilDB->quote($a_id,
"integer");
636 $ilDB->manipulate($q);
646 $q =
"UPDATE style_data SET category = ".
647 $ilDB->quote((
int) $a_scope,
"integer").
648 " WHERE id = ".$ilDB->quote($a_id,
"integer");
649 $ilDB->manipulate($q);
659 $q =
"SELECT * FROM style_data ".
660 " WHERE id = ".$ilDB->quote($a_id,
"integer");
661 $res = $ilDB->query($q);
662 $sty = $ilDB->fetchAssoc(
$res);
664 return (
boolean) $sty[
"standard"];
674 $q =
"UPDATE style_data SET active = ".
675 $ilDB->quote((
int) $a_active,
"integer").
676 " WHERE id = ".$ilDB->quote($a_id,
"integer");
677 $ilDB->manipulate($q);
687 $q =
"SELECT * FROM style_data ".
688 " WHERE id = ".$ilDB->quote($a_id,
"integer");
689 $res = $ilDB->query($q);
690 $sty = $ilDB->fetchAssoc(
$res);
692 return (
boolean) $sty[
"active"];
699 $a_include_deactivated =
false, $a_scope = 0)
701 global $ilDB,
$ilias, $tree;
703 $default_style = $ilias->getSetting(
"default_content_style_id");
706 if (!$a_include_deactivated)
708 $and_str =
" AND active = 1";
711 $q =
"SELECT * FROM style_data ".
712 " WHERE standard = 1".$and_str;
713 $res = $ilDB->query($q);
715 while($sty = $ilDB->fetchAssoc(
$res))
717 if (!$a_exclude_default_style || $default_style != $sty[
"id"])
720 if ($a_scope > 0 && $sty[
"category"] > 0)
722 if ($tree->isInTree($sty[
"category"]) &&
723 $tree->isInTree($a_scope))
725 $path = $tree->getPathId($a_scope);
726 if (!in_array($sty[
"category"],
$path))
746 global $ilAccess, $ilDB;
748 $clonable_styles = array();
750 $q =
"SELECT * FROM style_data";
751 $style_set = $ilDB->query($q);
752 while($style_rec = $ilDB->fetchAssoc($style_set))
755 if ($style_rec[
"standard"] == 1)
757 if ($style_rec[
"active"] == 1)
764 include_once(
"./Modules/LearningModule/classes/class.ilObjContentObject.php");
766 foreach($obj_ids as
$id)
771 if ($ilAccess->checkAccess(
"write",
"", $ref_id))
780 $clonable_styles[$style_rec[
"id"]] =
784 return $clonable_styles;
792 $this->meta_data =& $a_meta_data;
802 if (!is_object(self::$basic_style_dom))
804 self::$basic_style_dom =
new DOMDocument();
805 self::$basic_style_dom->load(self::$basic_style_file);
808 return self::$basic_style_dom;
816 return $this->meta_data;
822 function create($a_from_style = 0, $a_import_mode =
false)
828 if ($a_from_style == 0)
845 $q =
"SELECT * FROM style_parameter WHERE style_id = ".
846 $ilDB->quote($a_from_style,
"integer");
847 $par_set = $ilDB->query($q);
848 while($par_rec = $ilDB->fetchAssoc($par_set))
850 $def[] = array(
"tag" => $par_rec[
"tag"],
"class" => $par_rec[
"class"],
851 "parameter" => $par_rec[
"parameter"],
"value" => $par_rec[
"value"],
852 "type" => $par_rec[
"type"]);
857 $q =
"SELECT * FROM style_char WHERE style_id = ".
858 $ilDB->quote($a_from_style,
"integer");
859 $par_set = $ilDB->query($q);
860 while($par_rec = $ilDB->fetchAssoc($par_set))
862 $chars[] = array(
"type" => $par_rec[
"type"],
"characteristic" => $par_rec[
"characteristic"]);
866 foreach ($def as $sty)
868 $id = $ilDB->nextId(
"style_parameter");
869 $q =
"INSERT INTO style_parameter (id, style_id, tag, class, parameter, value, type) VALUES ".
871 $ilDB->quote(
$id,
"integer").
",".
872 $ilDB->quote($this->
getId(),
"integer").
",".
873 $ilDB->quote($sty[
"tag"],
"text").
",".
874 $ilDB->quote($sty[
"class"],
"text").
",".
875 $ilDB->quote($sty[
"parameter"],
"text").
",".
876 $ilDB->quote($sty[
"value"],
"text").
",".
877 $ilDB->quote($sty[
"type"],
"text").
")";
878 $ilDB->manipulate($q);
882 foreach ($chars as $char)
884 $q =
"INSERT INTO style_char (style_id, type, characteristic) VALUES ".
885 "(".$ilDB->quote($this->
getId(),
"integer").
",".
886 $ilDB->quote($char[
"type"],
"text").
",".
887 $ilDB->quote($char[
"characteristic"],
"text").
")";
888 $ilDB->manipulate($q);
892 $q =
"INSERT INTO style_data (id, uptodate, category) VALUES ".
893 "(".$ilDB->quote($this->
getId(),
"integer").
", 0,".
894 $ilDB->quote((
int) $this->
getScope(),
"integer").
")";
895 $ilDB->manipulate($q);
904 $colors = $from_style->getColors();
905 foreach ($colors as $c)
907 $this->
addColor($c[
"name"], $c[
"code"]);
912 foreach ($tcts as $tct => $v)
917 $this->
addTemplate($tct, $t[
"name"], $t[
"classes"]);
939 if (empty(
$core_styles[$a_type.
".".$a_tag.
".".$a_class]))
942 $st = $ilDB->manipulateF(
943 "DELETE FROM style_char WHERE style_id = %s AND type = %s AND characteristic = %s",
944 array(
"integer",
"text",
"text"),
945 array($this->
getId(), $a_type, $a_class));
948 $st = $ilDB->manipulateF(
"DELETE FROM style_parameter WHERE style_id = %s AND tag = %s AND type = %s AND class = %s",
949 array(
"integer",
"text",
"text",
"text"),
950 array($this->
getId(), $a_tag, $a_type, $a_class));
964 $set = $ilDB->queryF(
965 "SELECT style_id FROM style_char WHERE style_id = %s AND characteristic = %s AND type = %s",
966 array(
"integer",
"text",
"text"),
967 array($this->
getId(), $a_char, $a_style_type));
968 if ($rec = $ilDB->fetchAssoc($set))
983 $ilDB->manipulateF(
"INSERT INTO style_char (style_id, type, characteristic, hide)".
984 " VALUES (%s,%s,%s,%s) ",
985 array(
"integer",
"text",
"text",
"integer"),
986 array($this->
getId(), $a_type, $a_char, $a_hidden));
999 $a_from_type, $a_from_char, $a_to_char)
1011 $pars = $from_style->getParametersOfClass($a_from_type, $a_from_char);
1014 foreach ($pars as $p => $v)
1016 if (substr($v, 0, 1) ==
"!")
1018 $colors[] = substr($v, 1);
1021 $a_to_char, $p, $v, $a_from_type);
1025 foreach ($colors as $c)
1029 $this->
addColor($c, $from_style->getColorCodeForName($c));
1043 $chars = $this->chars;
1045 if (is_array($this->chars_by_type[$a_type]))
1047 $chars = $this->chars_by_type[$a_type];
1052 foreach ($chars as $k => $char)
1054 if ($a_type ==
"" && $this->hidden_chars[$char[
"type"].
":".$char[
"class"]])
1058 else if ($this->hidden_chars[$a_type.
":".$char])
1073 $this->chars = $a_chars;
1084 $ilDB->manipulate(
"UPDATE style_char SET ".
1085 " hide = ".$ilDB->quote((
int) $a_hide,
"integer").
1086 " WHERE style_id = ".$ilDB->quote($this->
getId(),
"integer").
" AND ".
1087 " type = ".$ilDB->quote($a_type,
"text").
" AND ".
1088 " characteristic = ".$ilDB->quote($a_char,
"text")
1099 $set = $ilDB->query(
"SELECT hide FROM style_char ".
1100 " WHERE style_id = ".$ilDB->quote($this->getId(),
"integer").
" AND ".
1101 " type = ".$ilDB->quote($a_type,
"text").
" AND ".
1102 " characteristic = ".$ilDB->quote($a_char,
"text")
1104 $rec = $ilDB->fetchAssoc($set);
1106 return $rec[
"hide"];
1119 $lng->loadLanguageModule(
"style");
1122 $new_obj->setTitle($this->
getTitle().
" (".$lng->txt(
"sty_acopy").
")");
1123 $new_obj->setType($this->
getType());
1125 $new_obj->create($this->
getId());
1127 $new_obj->writeStyleSetting(
"disable_auto_margins",
1130 return $new_obj->getId();
1153 $tag = explode(
".", $a_tag);
1154 $value = $avail_params[$a_par][0];
1155 $id = $ilDB->nextId(
"style_parameter");
1156 $q =
"INSERT INTO style_parameter (id,style_id, type, tag, class, parameter, value) VALUES ".
1158 $ilDB->quote(
$id,
"integer").
",".
1159 $ilDB->quote($this->
getId(),
"integer").
",".
1160 $ilDB->quote($a_type,
"text").
",".
1161 $ilDB->quote($tag[0],
"text").
",".
1162 $ilDB->quote($tag[1],
"text").
",".
1163 $ilDB->quote($a_par,
"text").
",".
1164 $ilDB->quote($value,
"text").
")";
1165 $ilDB->manipulate($q);
1189 if(!is_writable($sty_data_dir))
1191 $ilErr->raiseError(
"Style data directory (".$sty_data_dir
1192 .
") not writeable.", $ilErr->FATAL);
1195 $style_dir = $sty_data_dir.
"/sty_".$a_style_id;
1197 if(!@is_dir($style_dir))
1199 $ilErr->raiseError(
"Creation of style directory failed (".
1200 $style_dir.
").",$ilErr->FATAL);
1204 $im_dir = $style_dir.
"/images";
1206 if(!@is_dir($im_dir))
1208 $ilErr->raiseError(
"Creation of Import Directory failed (".
1209 $im_dir.
").", $ilErr->FATAL);
1213 $thumb_dir = $style_dir.
"/images/thumbnails";
1215 if(!@is_dir($thumb_dir))
1217 $ilErr->raiseError(
"Creation of Import Directory failed (".
1218 $thumb_dir.
").", $ilErr->FATAL);
1258 foreach($entries as $entry)
1260 if (substr($entry[
"entry"],0,1) ==
".")
1264 if ($entry[
"type"] !=
"dir")
1310 $q =
"DELETE FROM style_parameter WHERE id = ".
1311 $ilDB->quote($a_id,
"integer");
1327 $q =
"DELETE FROM style_parameter WHERE ".
1328 " style_id = ".$ilDB->quote($this->
getId(),
"integer").
" AND ".
1329 " tag = ".$ilDB->quote($a_tag,
"text").
" AND ".
1330 " class = ".$ilDB->quote($a_class,
"text").
" AND ".
1331 " ".$ilDB->equals(
"type", $a_type,
"text",
true).
" AND ".
1332 " parameter = ".$ilDB->quote($a_par,
"text");
1334 $ilDB->manipulate($q);
1349 $q =
"DELETE FROM style_parameter WHERE ".
1350 " style_id = ".$ilDB->quote($this->
getId(),
"integer").
" AND ".
1351 " class = ".$ilDB->quote($a_class,
"text").
" AND ".
1352 " ".$ilDB->equals(
"type", $a_type,
"text",
true);
1354 $ilDB->manipulate($q);
1369 $def_style = $this->
ilias->getSetting(
"default_content_style_id");
1370 if ($def_style == $this->
getId())
1372 $this->
ilias->deleteSetting(
"default_content_style_id");
1376 $fixed_style = $this->
ilias->getSetting(
"fixed_content_style_id");
1377 if ($fixed_style == $this->
getId())
1379 $this->
ilias->deleteSetting(
"fixed_content_style_id");
1383 $q =
"DELETE FROM style_parameter WHERE style_id = ".
1384 $ilDB->quote($this->
getId(),
"integer");
1385 $ilDB->manipulate($q);
1389 if (is_file($css_file_name))
1391 unlink($css_file_name);
1395 include_once(
"./Modules/LearningModule/classes/class.ilObjContentObject.php");
1399 $q =
"DELETE FROM style_data WHERE id = ".
1400 $ilDB->quote($this->
getId(),
"integer");
1401 $ilDB->manipulate($q);
1415 $q =
"SELECT * FROM style_parameter WHERE style_id = ".
1416 $ilDB->quote($this->
getId(),
"integer").
" ORDER BY tag, class, type ";
1417 $style_set = $ilDB->query($q);
1421 $this->style = array();
1422 while($style_rec = $ilDB->fetchAssoc($style_set))
1424 if ($style_rec[
"tag"] != $ctag || $style_rec[
"class"] != $cclass
1425 || $style_rec[
"type"] != $ctype)
1430 $this->style[] = $tag;
1434 $ctag = $style_rec[
"tag"];
1435 $cclass = $style_rec[
"class"];
1436 $ctype = $style_rec[
"type"];
1437 $tag[] = $style_rec;
1438 $this->style_class[$ctype][$cclass][$style_rec[
"parameter"]] = $style_rec[
"value"];
1442 $this->style[] = $tag;
1445 $q =
"SELECT * FROM style_data WHERE id = ".
1446 $ilDB->quote($this->
getId(),
"integer");
1447 $res = $ilDB->query($q);
1448 $sty = $ilDB->fetchAssoc(
$res);
1453 $this->chars = array();
1454 $this->chars_by_type = array();
1455 $q =
"SELECT * FROM style_char WHERE style_id = ".
1456 $ilDB->quote($this->
getId(),
"integer").
1457 " ORDER BY type ASC, characteristic ASC";
1458 $par_set = $ilDB->query($q);
1459 while($par_rec = $ilDB->fetchAssoc($par_set))
1461 $this->chars[] = array(
"type" => $par_rec[
"type"],
"class" => $par_rec[
"characteristic"],
"hide" => $par_rec[
"hide"]);
1462 $this->chars_by_type[$par_rec[
"type"]][] = $par_rec[
"characteristic"];
1463 if ($par_rec[
"hide"])
1465 $this->hidden_chars[$par_rec[
"type"].
":".$par_rec[
"characteristic"]] =
true;
1477 if ($a_target_file ==
"")
1483 $css_file_name = $a_target_file;
1485 $css_file = fopen($css_file_name,
"w");
1487 $page_background =
"";
1489 foreach ($style as $tag)
1491 fwrite ($css_file, $tag[0][
"tag"].
".ilc_".$tag[0][
"type"].
"_".$tag[0][
"class"].
"\n");
1492 if ($tag[0][
"tag"] ==
"td")
1494 fwrite ($css_file,
",th".
".ilc_".$tag[0][
"type"].
"_".$tag[0][
"class"].
"\n");
1496 if (in_array($tag[0][
"tag"], array(
"h1",
"h2",
"h3")))
1498 fwrite ($css_file,
",div.ilc_text_block_".$tag[0][
"class"].
"\n");
1499 fwrite ($css_file,
",body.ilc_text_block_".$tag[0][
"class"].
"\n");
1501 if ($tag[0][
"type"] ==
"text_block")
1503 fwrite ($css_file,
",body.ilc_text_block_".$tag[0][
"class"].
"\n");
1505 fwrite ($css_file,
"{\n");
1508 $t_border = array();
1510 foreach($tag as $par)
1512 $cur_par = $par[
"parameter"];
1513 $cur_val = $par[
"value"];
1516 if (is_int(strpos($cur_par,
"color")) && substr(trim($cur_val), 0, 1) ==
"!")
1521 if ($tag[0][
"type"] ==
"table" && is_int(strpos($par[
"parameter"],
"border")))
1523 $t_border[$cur_par] = $cur_val;
1526 if (in_array($cur_par, array(
"background-image",
"list-style-image")))
1528 if (is_int(strpos($cur_val,
"/")))
1530 $cur_val =
"url(".$cur_val.
")";
1534 if ($a_image_dir ==
"")
1536 $cur_val =
"url(../sty/sty_".$this->getId().
"/images/".$cur_val.
")";
1540 $cur_val =
"url(".$a_image_dir.
"/".$cur_val.
")";
1545 if ($cur_par ==
"opacity")
1547 $cur_val = ((int) $cur_val) / 100;
1550 fwrite ($css_file,
"\t".$cur_par.
": ".$cur_val.
";\n");
1553 if ($cur_par ==
"min-height")
1555 fwrite ($css_file,
"\t".
"height".
": ".
"auto !important".
";\n");
1556 fwrite ($css_file,
"\t".
"height".
": ".$cur_val.
";\n");
1560 if ($cur_par ==
"opacity")
1562 fwrite ($css_file,
"\t".
'-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity='.($cur_val * 100).
')"'.
";\n");
1563 fwrite ($css_file,
"\t".
'filter: alpha(opacity='.($cur_val * 100).
')'.
";\n");
1564 fwrite ($css_file,
"\t".
'-moz-opacity: '.$cur_val.
";\n");
1568 if ($tag[0][
"tag"] ==
"div" && $tag[0][
"class"] ==
"Page" 1569 && $cur_par ==
"background-color")
1571 $page_background = $cur_val;
1574 fwrite ($css_file,
"}\n");
1575 fwrite ($css_file,
"\n");
1595 if ($page_background !=
"")
1597 fwrite ($css_file,
"td.ilc_Page\n");
1598 fwrite ($css_file,
"{\n");
1599 fwrite ($css_file,
"\t".
"background-color: ".$page_background.
";\n");
1600 fwrite ($css_file,
"}\n");
1619 $fixed_style = $ilSetting->get(
"fixed_content_style_id");
1620 if ($fixed_style > 0)
1622 $a_style_id = $fixed_style;
1626 if ($a_style_id <= 0)
1628 $a_style_id = $ilSetting->get(
"default_content_style_id");
1647 if (is_array($this->style_class[$a_type][$a_class]))
1649 return $this->style_class[$a_type][$a_class];
1663 $rand = rand(1,999999);
1667 $fixed_style = $ilias->getSetting(
"fixed_content_style_id");
1668 if ($fixed_style > 0)
1670 $a_style_id = $fixed_style;
1674 if ($a_style_id <= 0)
1676 $a_style_id = $ilias->getSetting(
"default_content_style_id");
1685 $style->writeCSSFile();
1689 "/css/style_".$a_style_id.
".css?dummy=$rand";
1693 return "./Services/COPage/css/content.css";
1704 return "./Services/COPage/css/print_content.css";
1714 return "./Services/COPage/css/syntaxhighlight.css";
1724 return "./Services/COPage/css/placeholder.css";
1735 $q =
"UPDATE style_data ".
1736 "SET category = ".$ilDB->quote((
int) $this->
getScope(),
"integer").
1737 " WHERE id = ".$ilDB->quote($this->
getId(),
"integer");
1738 $ilDB->manipulate($q);
1751 $q =
"UPDATE style_parameter SET VALUE = ".
1752 $ilDB->quote($a_value,
"text").
" WHERE id = ".
1753 $ilDB->quote($a_id,
"integer");
1754 $style_set = $ilDB->manipulate($q);
1770 $q =
"SELECT * FROM style_parameter WHERE ".
1771 " style_id = ".$ilDB->quote($style_id,
"integer").
" AND ".
1772 " tag = ".$ilDB->quote($a_tag,
"text").
" AND ".
1773 " class = ".$ilDB->quote($a_class,
"text").
" AND ".
1774 " ".$ilDB->equals(
"type", $a_type,
"text",
true).
" AND ".
1775 " parameter = ".$ilDB->quote($a_par,
"text");
1777 $set = $ilDB->query($q);
1779 if ($rec = $set->fetchRow())
1781 $q =
"UPDATE style_parameter SET ".
1782 " value = ".$ilDB->quote($a_val,
"text").
" WHERE ".
1783 " style_id = ".$ilDB->quote($style_id,
"integer").
" AND ".
1784 " tag = ".$ilDB->quote($a_tag,
"text").
" AND ".
1785 " class = ".$ilDB->quote($a_class,
"text").
" AND ".
1786 " ".$ilDB->equals(
"type", $a_type,
"text",
true).
" AND ".
1787 " parameter = ".$ilDB->quote($a_par,
"text");
1789 $ilDB->manipulate($q);
1793 $id = $ilDB->nextId(
"style_parameter");
1794 $q =
"INSERT INTO style_parameter (id, value, style_id, tag, class, type, parameter) VALUES ".
1796 $ilDB->quote(
$id,
"integer").
",".
1797 $ilDB->quote($a_val,
"text").
",".
1798 " ".$ilDB->quote($this->
getId(),
"integer").
",".
1799 " ".$ilDB->quote($a_tag,
"text").
",".
1800 " ".$ilDB->quote($a_class,
"text").
",".
1801 " ".$ilDB->quote($a_type,
"text").
",".
1802 " ".$ilDB->quote($a_par,
"text").
")";
1804 $ilDB->manipulate($q);
1822 $this->style = $a_style;
1834 return str_replace(
"&",
"&", $a_str);
1842 $xml.=
"<StyleSheet>\n";
1845 $xml.=
"<Title>".$this->handleXmlString($this->
getTitle()).
"</Title>";
1846 $xml.=
"<Description>".$this->handleXmlString($this->
getDescription()).
"</Description>\n";
1849 foreach($this->chars as $char)
1851 $xml.=
"<Style Tag=\"".ilObjStyleSheet::_determineTag($char[
"type"]).
1852 "\" Type=\"".$char[
"type"].
"\" Class=\"".$char[
"class"].
"\">\n";
1853 foreach($this->style as $style)
1855 if ($style[0][
"type"] == $char[
"type"] && $style[0][
"class"] == $char[
"class"])
1857 foreach($style as $tag)
1859 $xml.=
"<StyleParameter Name=\"".$tag[
"parameter"].
"\" Value=\"".$tag[
"value"].
"\"/>\n";
1863 $xml.=
"</Style>\n";
1869 $xml.=
"<StyleColor Name=\"".$color[
"name"].
"\" Code=\"".$color[
"code"].
"\"/>\n";
1874 foreach ($tcts as $tct => $v)
1880 $xml.=
"<StyleTemplate Type=\"".$tct.
"\" Name=\"".$t[
"name"].
"\">\n";
1881 foreach ($t[
"classes"] as $ct => $c)
1885 $xml.=
"<StyleTemplateClass ClassType=\"".$ct.
"\" Class=\"".$c.
"\"/>\n";
1888 $xml.=
"</StyleTemplate>\n";
1893 $xml.=
"</StyleSheet>";
1906 if(!is_writable($sty_data_dir))
1908 $this->
ilias->raiseError(
"Style data directory (".$sty_data_dir
1909 .
") not writeable.",$this->
ilias->error_obj->FATAL);
1912 $style_dir = $sty_data_dir.
"/sty_".$this->
getId();
1914 if(!@is_dir($style_dir))
1916 $this->
ilias->raiseError(
"Creation of style directory failed (".
1917 $style_dir.
").",$this->ilias->error_obj->FATAL);
1921 $ex_dir = $style_dir.
"/export";
1923 if(!@is_dir($ex_dir))
1925 $this->
ilias->raiseError(
"Creation of Import Directory failed (".
1926 $ex_dir.
").",$this->ilias->error_obj->FATAL);
1938 $style_dir = $sty_data_dir.
"/sty_".$this->
getId();
1940 $ex_dir = $style_dir.
"/export";
1942 if (is_dir($ex_dir))
1957 if(!is_writable($ex_sub_dir))
1959 $this->
ilias->raiseError(
"Style data directory (".$ex_sub_dir
1960 .
") not writeable.",$this->
ilias->error_obj->FATAL);
1962 $ex_sub_images_dir = $ex_sub_dir.
"/images";
1964 if(!is_writable($ex_sub_images_dir))
1966 $this->
ilias->raiseError(
"Style data directory (".$ex_sub_images_dir
1967 .
") not writeable.",$this->
ilias->error_obj->FATAL);
1976 $this->export_sub_dir = $a_dir;
1984 if ($this->export_sub_dir ==
"")
1986 return "sty_".$this->getId();
1990 return $this->export_sub_dir;
2004 $this->
exportXML($ex_dir.
"/".$this->getExportSubDir());
2007 $ex_dir.
"/".$this->getExportSubDir().
"/images");
2008 if (is_file($ex_dir.
"/".$this->getExportSubDir().
".zip"))
2010 unlink($ex_dir.
"/".$this->getExportSubDir().
".zip");
2023 $file = $a_dir.
"/style.xml";
2026 if (!($fp = @fopen(
$file,
"w")))
2028 die (
"<b>Error</b>: Could not open \"".
$file.
"\" for writing".
2029 " in <b>".__FILE__.
"</b> on line <b>".__LINE__.
"</b><br />");
2036 fwrite($fp, $this->
getXML());
2050 if(!is_writable($sty_data_dir))
2052 $this->
ilias->raiseError(
"Style data directory (".$sty_data_dir
2053 .
") not writeable.",$this->
ilias->error_obj->FATAL);
2056 $style_dir = $sty_data_dir.
"/sty_".$this->
getId();
2058 if(!@is_dir($style_dir))
2060 $this->
ilias->raiseError(
"Creation of style directory failed (".
2061 $style_dir.
").",$this->ilias->error_obj->FATAL);
2065 $im_dir = $style_dir.
"/import";
2067 if(!@is_dir($im_dir))
2069 $this->
ilias->raiseError(
"Creation of Import Directory failed (".
2070 $im_dir.
").",$this->ilias->error_obj->FATAL);
2079 function import($a_file)
2086 if (is_array($a_file))
2089 $a_file[
"name"], $im_dir.
"/".$a_file[
"name"]);
2090 $file_name = $a_file[
"name"];
2094 $pi = pathinfo($a_file);
2095 $file_name = $pi[
"basename"];
2096 copy($a_file, $im_dir.
"/".$file_name);
2098 $file = pathinfo($file_name);
2101 if (strtolower(
$file[
"extension"] ==
"zip"))
2104 $subdir = basename(
$file[
"basename"],
".".
$file[
"extension"]);
2105 if (!is_dir($im_dir.
"/".$subdir))
2109 $xml_file = $im_dir.
"/".$subdir.
"/style.xml";
2113 $xml_file = $im_dir.
"/".$file_name;
2122 if (is_dir($im_dir.
"/".$subdir.
"/images"))
2125 $this->getImagesDirectory());
2140 $this->is_3_10_skin =
false;
2142 if (!$a_skip_parent_create)
2146 include_once(
"./Services/Style/classes/class.ilStyleImportParser.php");
2148 $importParser->startParsing();
2151 foreach ($this->style as $style)
2153 foreach($style as $tag)
2155 $id = $ilDB->nextId(
"style_parameter");
2158 if (in_array($tag[
"class"], array(
"PageFrame",
"PageContainer")) &&
2159 $tag[
"tag"] ==
"table")
2161 $tag[
"tag"] =
"div";
2162 if ($tag[
"parameter"] ==
"width" && $tag[
"value"] ==
"100%")
2168 $q =
"INSERT INTO style_parameter (id,style_id, tag, class, parameter, type, value) VALUES ".
2170 $ilDB->quote(
$id,
"integer").
",".
2171 $ilDB->quote($this->
getId(),
"integer").
",".
2172 $ilDB->quote($tag[
"tag"],
"text").
",".
2173 $ilDB->quote($tag[
"class"],
"text").
",".
2174 $ilDB->quote($tag[
"parameter"],
"text").
",".
2175 $ilDB->quote($tag[
"type"],
"text").
",".
2176 $ilDB->quote($tag[
"value"],
"text").
")";
2178 $ilDB->manipulate($q);
2183 $this->is_3_10_skin =
true;
2184 if (is_array($this->chars))
2186 foreach ($this->chars as $char)
2188 if ($char[
"type"] !=
"")
2190 $s = substr($char[
"class"], strlen($char[
"class"]) - 6);
2193 $q =
"INSERT INTO style_char (style_id, type, characteristic) VALUES ".
2194 "(".$ilDB->quote($this->
getId(),
"integer").
",".
2195 $ilDB->quote($char[
"type"],
"text").
",".
2196 $ilDB->quote($char[
"class"],
"text").
")";
2197 $ilDB->manipulate($q);
2198 $this->is_3_10_skin =
false;
2205 $q =
"INSERT INTO style_data (id, uptodate) VALUES ".
2206 "(".$ilDB->quote($this->
getId(),
"integer").
", 0)";
2207 $ilDB->manipulate($q);
2212 if ($this->is_3_10_skin)
2226 foreach (self::$parameter as
$parameter => $props)
2235 $input = self::$parameter[$par][
"input"];
2241 $subpar = self::$parameter[$par][
"subpar"];
2249 return self::$parameter;
2252 foreach (self::$parameter as $k => $v)
2254 if (is_array(self::$filtered_groups[$v[
"group"]]) &&
2255 !in_array($a_tag, self::$filtered_groups[$v[
"group"]]))
2266 return self::$filtered_groups;
2271 if ($a_no_percentage)
2273 return self::$num_unit_no_perc;
2275 return self::$num_unit;
2280 return self::$parameter[$par][
"values"];
2290 return self::$style_super_types;
2295 return in_array($a_type, self::$expandable_types);
2300 return in_array($a_type, self::$hideable_types);
2305 foreach (self::$style_super_types as $s =>
$t)
2307 if (in_array($a_type,
$t))
2323 $c_styles = array();
2324 foreach (self::$core_styles as $cstyle)
2327 = array(
"type" => $cstyle[
"type"],
2329 "class" => $cstyle[
"class"]);
2339 if ($a_template_type ==
"")
2341 return self::$templates;
2344 return self::$templates[$a_template_type];
2350 return self::$pseudo_classes[$tag];
2355 return self::$templates[
$t][$k];
2360 return self::$assigned_tags[$a_type];
2369 foreach(self::$parameter as $p => $v)
2371 $pars[$p] = $v[
"values"];
2383 $styles = array(array(
"id" => $a_id));
2394 if ($a_styles ==
"")
2400 $styles = $a_styles;
2406 $core_images = array();
2407 $core_dir = self::$basic_style_image_dir;
2408 if (is_dir($core_dir))
2410 $dir = opendir($core_dir);
2411 while(
$file = readdir($dir))
2413 if (substr(
$file, 0, 1) !=
"." && is_file($core_dir.
"/".
$file))
2415 $core_images[] =
$file;
2420 foreach ($styles as $style)
2427 $set = $ilDB->queryF(
"SELECT * FROM style_char WHERE style_id = %s ".
2428 "AND type = %s AND characteristic = %s",
2429 array(
"integer",
"text",
"text"),
2430 array(
$id, $cs[
"type"], $cs[
"class"]));
2433 if (!($rec = $ilDB->fetchAssoc($set)))
2436 "INSERT INTO style_char (style_id, type, characteristic) ".
2437 " VALUES (%s,%s,%s) ",
2438 array(
"integer",
"text",
"text"),
2439 array(
$id, $cs[
"type"], $cs[
"class"]));
2441 $xpath =
new DOMXPath($bdom);
2442 $par_nodes = $xpath->query(
"/StyleSheet/Style[@Tag = '".$cs[
"tag"].
"' and @Type='".
2443 $cs[
"type"].
"' and @Class='".$cs[
"class"].
"']/StyleParameter");
2444 foreach ($par_nodes as $par_node)
2447 $set = $ilDB->queryF(
"SELECT * FROM style_parameter WHERE style_id = %s ".
2448 "AND type = %s AND class = %s AND tag = %s AND parameter = %s",
2449 array(
"integer",
"text",
"text",
"text",
"text"),
2450 array(
$id, $cs[
"type"], $cs[
"class"],
2451 $cs[
"tag"], $par_node->getAttribute(
"Name")));
2454 if (!($rec = $ilDB->fetchAssoc($set)))
2456 $spid = $ilDB->nextId(
"style_parameter");
2457 $st = $ilDB->manipulateF(
"INSERT INTO style_parameter (id, style_id, type, class, tag, parameter, value) ".
2458 " VALUES (%s,%s,%s,%s,%s,%s,%s)",
2459 array(
"integer",
"integer",
"text",
"text",
"text",
"text",
"text"),
2460 array($spid,
$id, $cs[
"type"], $cs[
"class"], $cs[
"tag"],
2461 $par_node->getAttribute(
"Name"), $par_node->getAttribute(
"Value")));
2470 reset($core_images);
2471 foreach($core_images as $cim)
2473 if (!is_file($imdir.
"/".$cim))
2475 copy($core_dir.
"/".$cim, $imdir.
"/".$cim);
2500 $st = $ilDB->prepareManip(
"UPDATE style_char SET type = ? WHERE characteristic = ?".
2501 " AND style_id = ? ", array(
"text",
"text",
"integer"));
2502 $ilDB->execute($st, array(
"media_cont",
"Media", $this->
getId()));
2503 $ilDB->execute($st, array(
"media_caption",
"MediaCaption", $this->
getId()));
2504 $ilDB->execute($st, array(
"page_fn",
"Footnote", $this->
getId()));
2505 $ilDB->execute($st, array(
"page_nav",
"LMNavigation", $this->
getId()));
2506 $ilDB->execute($st, array(
"page_title",
"PageTitle", $this->
getId()));
2507 $ilDB->execute($st, array(
"page_cont",
"Page", $this->
getId()));
2510 $st = $ilDB->prepareManip(
"UPDATE style_parameter SET type = ? WHERE class = ?".
2511 " AND style_id = ? ", array(
"text",
"text",
"integer"));
2512 $ilDB->execute($st, array(
"media_cont",
"Media", $this->
getId()));
2513 $ilDB->execute($st, array(
"media_caption",
"MediaCaption", $this->
getId()));
2514 $ilDB->execute($st, array(
"page_fn",
"Footnote", $this->
getId()));
2515 $ilDB->execute($st, array(
"page_nav",
"LMNavigation", $this->
getId()));
2516 $ilDB->execute($st, array(
"page_title",
"PageTitle", $this->
getId()));
2517 $ilDB->execute($st, array(
"table",
"Page", $this->
getId()));
2519 $st = $ilDB->prepareManip(
"UPDATE style_parameter SET tag = ? WHERE class = ?".
2520 " AND style_id = ? ", array(
"text",
"text",
"integer"));
2521 $ilDB->execute($st, array(
"div",
"MediaCaption", $this->
getId()));
2524 $st = $ilDB->prepareManip(
"UPDATE style_char SET characteristic = ? WHERE characteristic = ?".
2525 " AND style_id = ? ", array(
"text",
"text",
"integer"));
2526 $ilDB->execute($st, array(
"MediaContainer",
"Media", $this->
getId()));
2527 $ilDB->execute($st, array(
"PageContainer",
"Page", $this->
getId()));
2530 $st = $ilDB->prepareManip(
"UPDATE style_parameter SET class = ? WHERE class = ?".
2531 " AND style_id = ? ", array(
"text",
"text",
"integer"));
2532 $ilDB->execute($st, array(
"MediaContainer",
"Media", $this->
getId()));
2533 $ilDB->execute($st, array(
"PageContainer",
"Page", $this->
getId()));
2536 $st = $ilDB->prepareManip(
"DELETE FROM style_char WHERE type = ?".
2537 " AND style_id = ? ", array(
"text",
"integer"));
2538 $ilDB->execute($st, array(
"page_cont", $this->
getId()));
2539 $st = $ilDB->prepareManip(
"DELETE FROM style_parameter WHERE type = ?".
2540 " AND style_id = ? ", array(
"text",
"integer"));
2541 $ilDB->execute($st, array(
"page_cont", $this->
getId()));
2558 $add_str =
" AND style_id = ".$ilDB->quote($a_id,
"integer");
2561 $set = $ilDB->query($q =
"SELECT DISTINCT style_id, tag, class FROM style_parameter WHERE ".
2562 $ilDB->equals(
"type",
"",
"text",
true).
" ".$add_str);
2564 while ($rec = $ilDB->fetchAssoc($set))
2568 switch ($rec[
"tag"])
2572 if (in_array($rec[
"class"], array(
"Headline3",
"Headline1",
2573 "Headline2",
"TableContent",
"List",
"Standard",
"Remark",
2574 "Additional",
"Mnemonic",
"Citation",
"Example")))
2576 $types[] =
"text_block";
2578 if (in_array($rec[
"class"], array(
"Block",
"Remark",
2579 "Additional",
"Mnemonic",
"Example",
"Excursus",
"Special")))
2581 $types[] =
"section";
2583 if (in_array($rec[
"class"], array(
"Page",
"Footnote",
"PageTitle",
"LMNavigation")))
2590 $types[] =
"table_cell";
2594 if (in_array($rec[
"class"], array(
"ExtLink",
"IntLink",
"FootnoteLink")))
2601 $types[] =
"text_inline";
2610 foreach ($types as
$t)
2613 $set4 = $ilDB->queryF(
"SELECT * FROM style_char ".
2614 " WHERE style_id = %s AND type = %s AND characteristic = %s",
2615 array(
"integer",
"text",
"text"),
2616 array($rec[
"style_id"], $t, $rec[
"class"]));
2617 if ($rec4 = $ilDB->fetchAssoc($set4))
2624 $ilDB->manipulateF(
"INSERT INTO style_char ".
2625 " (style_id, type, characteristic) VALUES ".
2627 array(
"integer",
"text",
"text"),
2628 array($rec[
"style_id"], $t, $rec[
"class"]));
2633 if ($rec[
"type"] ==
"")
2635 if (count($types) > 0)
2637 $ilDB->manipulateF(
"UPDATE style_parameter SET type = %s ".
2638 " WHERE style_id = %s AND class = %s AND ".$ilDB->equals(
"type",
"",
"text",
true),
2639 array(
"text",
"integer",
"text"),
2640 array($types[0], $rec[
"style_id"], $rec[
"class"]));
2644 if ($types[0] ==
"link")
2646 $ilDB->manipulateF(
"UPDATE style_parameter SET type = %s ".
2647 " WHERE style_id = %s AND (class = %s OR class = %s) AND ".$ilDB->equals(
"type",
"",
"text",
true),
2648 array(
"text",
"integer",
"text",
"text"),
2649 array($types[0], $rec[
"style_id"], $rec[
"class"].
":visited",
2650 $rec[
"class"].
":hover"));
2654 if (count($types) == 2)
2658 $set2 = $ilDB->queryF(
"SELECT * FROM style_parameter ".
2659 " WHERE style_id = %s AND class = %s AND type = %s",
2660 array(
"integer",
"text",
"text"),
2661 array($rec[
"style_id"], $rec[
"class"], $types[0]));
2662 while ($rec2 = $ilDB->fetchAssoc($set2))
2665 $set3 = $ilDB->queryF(
"SELECT * FROM style_parameter ".
2666 " WHERE style_id = %s AND tag = %s AND class = %s AND type = %s AND parameter = %s",
2667 array(
"integer",
"text",
"text",
"text",
"text"),
2668 array($rec[
"style_id"], $rec[
"tag"], $rec[
"class"], $types[1], $rec[
"parameter"]));
2669 if ($rec3 = $ilDB->fetchAssoc($set3))
2675 $nid = $ilDB->nextId(
"style_parameter");
2676 $ilDB->manipulateF(
"INSERT INTO style_parameter ".
2677 " (id, style_id, tag, class, parameter, value, type) VALUES ".
2678 " (%s, %s,%s,%s,%s,%s,%s) ",
2679 array(
"integer",
"integer",
"text",
"text",
"text",
"text",
"text"),
2680 array($nid, $rec2[
"style_id"], $rec2[
"tag"], $rec2[
"class"],
2681 $rec2[
"parameter"], $rec2[
"value"], $types[1]));
2696 $classes = array(
"Example",
"Additional",
"Citation",
"Mnemonic",
"Remark");
2697 $pars = array(
"margin-top",
"margin-bottom");
2699 foreach ($classes as $curr_class)
2701 foreach ($pars as $curr_par)
2703 $res2 = $ilDB->queryF(
"SELECT id FROM style_parameter WHERE style_id = %s".
2704 " AND tag = %s AND class= %s AND parameter = %s",
2705 array(
"integer",
"text",
"text",
"text"),
2706 array($a_id,
"p", $curr_class, $curr_par));
2707 if ($row2 = $ilDB->fetchAssoc($res2))
2709 $ilDB->manipulateF(
"UPDATE style_parameter SET value= %s WHERE id = %s",
2710 array(
"text",
"integer"),
2711 array(
"10px", $row2[
"id"]));
2715 $nid = $ilDB->nextId(
"style_parameter");
2716 $ilDB->manipulateF(
"INSERT INTO style_parameter ".
2717 "(id, style_id, tag, class, parameter,value) VALUES (%s,%s,%s,%s,%s,%s)",
2718 array(
"integer",
"integer",
"text",
"text",
"text",
"text"),
2719 array($nid, $a_id,
"div", $curr_class, $curr_par,
"10px"));
2724 $ilDB->manipulateF(
"UPDATE style_parameter SET tag = %s WHERE tag = %s and style_id = %s",
2725 array(
"text",
"text",
"integer"),
2726 array(
"div",
"p", $a_id));
2738 $set = $ilDB->query(
"SELECT * FROM style_color WHERE ".
2739 "style_id = ".$ilDB->quote($this->getId(),
"integer").
" ".
2740 "ORDER BY color_name");
2743 while ($rec = $ilDB->fetchAssoc($set))
2746 "name" => $rec[
"color_name"],
2747 "code" => $rec[
"color_code"]
2761 $ilDB->manipulate(
"INSERT INTO style_color (style_id, color_name, color_code)".
2763 $ilDB->quote($this->getId(),
"integer").
",".
2764 $ilDB->quote($a_name,
"text").
",".
2765 $ilDB->quote($a_code,
"text").
2778 $ilDB->manipulate(
"UPDATE style_color SET ".
2779 "color_name = ".$ilDB->quote($a_new_name,
"text").
", ".
2780 "color_code = ".$ilDB->quote($a_code,
"text").
2781 " WHERE style_id = ".$ilDB->quote($this->
getId(),
"integer").
2782 " AND color_name = ".$ilDB->quote($a_name,
"text"));
2786 if ($a_name != $a_new_name)
2788 $set = $ilDB->query(
"SELECT * FROM style_parameter ".
2789 " WHERE style_id = ".$ilDB->quote($this->getId(),
"integer").
2791 " parameter = ".$ilDB->quote(
"background-color",
"text").
" OR ".
2792 " parameter = ".$ilDB->quote(
"color",
"text").
" OR ".
2793 " parameter = ".$ilDB->quote(
"border-color",
"text").
" OR ".
2794 " parameter = ".$ilDB->quote(
"border-top-color",
"text").
" OR ".
2795 " parameter = ".$ilDB->quote(
"border-bottom-color",
"text").
" OR ".
2796 " parameter = ".$ilDB->quote(
"border-left-color",
"text").
" OR ".
2797 " parameter = ".$ilDB->quote(
"border-right-color",
"text").
2799 while ($rec = $ilDB->fetchAssoc($set))
2801 if ($rec[
"value"] ==
"!".$a_name ||
2802 is_int(strpos($rec[
"value"],
"!".$a_name.
"(")))
2806 $rec[
"parameter"], str_replace($a_name, $a_new_name, $rec[
"value"]), $rec[
"type"]);
2819 $ilDB->manipulate(
"DELETE FROM style_color WHERE ".
2820 " style_id = ".$ilDB->quote($this->getId(),
"integer").
" AND ".
2821 " color_name = ".$ilDB->quote($a_name,
"text"));
2831 $set = $ilDB->query(
"SELECT * FROM style_color WHERE ".
2832 "style_id = ".$ilDB->quote($this->getId(),
"integer").
" AND ".
2833 "color_name = ".$ilDB->quote($a_color_name,
"text"));
2834 if ($rec = $ilDB->fetchAssoc($set))
2848 $pos = strpos($a_name,
"(");
2851 $a_i = substr($a_name, $pos + 1);
2852 $a_i = str_replace(
")",
"", $a_i);
2853 $a_name = substr($a_name, 0, $pos);
2856 $set = $ilDB->query(
"SELECT color_code FROM style_color WHERE ".
2857 " style_id = ".$ilDB->quote($this->getId(),
"integer").
" AND ".
2858 " color_name = ".$ilDB->quote($a_name,
"text"));
2859 if ($rec = $ilDB->fetchAssoc($set))
2863 return "#".$rec[
"color_code"];
2867 return "#".ilObjStyleSheet::_getColorFlavor($rec[
"color_code"],
2883 $hls[
"l"] = $hls[
"l"] + ((255 - $hls[
"l"]) * ($a_i / 100));
2887 $hls[
"l"] = $hls[
"l"] - (($hls[
"l"]) * (-$a_i / 100));
2892 foreach ($rgb as $k => $v)
2894 $rgb[$k] = str_pad(dechex($v), 2,
"0", STR_PAD_LEFT);
2897 return $rgb[
"r"].$rgb[
"g"].$rgb[
"b"];
2905 $r[
"r"] = substr($a_rgb, 0, 2);
2906 $r[
"g"] = substr($a_rgb, 2, 2);
2907 $r[
"b"] = substr($a_rgb, 4, 2);
2911 $r[
"r"] = (int) hexdec(
$r[
"r"]);
2912 $r[
"g"] = (int) hexdec(
$r[
"g"]);
2913 $r[
"b"] = (int) hexdec(
$r[
"b"]);
2924 $r = $a_rgb[
"r"] / 255;
2925 $g = $a_rgb[
"g"] / 255;
2926 $b = $a_rgb[
"b"] / 255;
2929 $max = max(
$r,$g,$b);
2930 $min = min(
$r,$g,$b);
2933 $l = ($max + $min) / 2;
2944 $s = ($max - $min) / ($max + $min);
2948 $s = ($max - $min) / (2.0 - $max - $min);
2953 $h = ($g - $b) / ($max - $min);
2955 else if ($g == $max)
2957 $h = 2.0 + ($b -
$r) / ($max - $min);
2959 else if ($b == $max)
2961 $h = 4.0 + (
$r - $g) / ($max - $min);
2965 $hls[
"h"] = round(($h / 6) * 255);
2966 $hls[
"l"] = round($l * 255);
2967 $hls[
"s"] = round($s * 255);
2977 $h = $a_hls[
"h"] / 255;
2978 $l = $a_hls[
"l"] / 255;
2979 $s = $a_hls[
"s"] / 255;
2981 $rgb[
"r"] = $rgb[
"g"] = $rgb[
"b"] = 0;
2986 $rgb[
"r"] = $rgb[
"g"] = $rgb[
"b"] = $l;
2993 $temp2 = $l * (1.0 + $s);
2997 $temp2 = $l + $s - $l * $s;
3000 $temp1 = 2.0 * $l - $temp2;
3003 # For each of R, G, B, compute another temporary value, temp3, as follows: 3004 foreach ($rgb as $k => $v)
3009 $temp3 = $h + 1.0 / 3.0;
3017 $temp3 = $h - 1.0/3.0;
3022 $temp3 = $temp3 + 1.0;
3026 $temp3 = $temp3 - 1.0;
3029 if (6.0 * $temp3 < 1)
3031 $rgb[$k] = $temp1 + ($temp2 - $temp1) * 6.0 * $temp3;
3033 else if (2.0 * $temp3 < 1)
3037 else if (3.0 * $temp3 < 2)
3039 $rgb[$k] = $temp1 + ($temp2 - $temp1) * ((2.0/3.0) - $temp3) * 6.0;
3048 $rgb[
"r"] = round($rgb[
"r"] * 255);
3049 $rgb[
"g"] = round($rgb[
"g"] * 255);
3050 $rgb[
"b"] = round($rgb[
"b"] * 255);
3066 $set = $ilDB->query(
"SELECT * FROM style_template WHERE ".
3067 "style_id = ".$ilDB->quote($this->getId(),
"integer").
" AND ".
3068 "temp_type = ".$ilDB->quote($a_type,
"text").
" ".
3072 while ($rec = $ilDB->fetchAssoc($set))
3087 $set = $ilDB->query(
"SELECT * FROM style_template_class WHERE ".
3088 "template_id = ".$ilDB->quote($a_tid,
"integer"));
3091 while ($rec = $ilDB->fetchAssoc($set))
3093 $key = $rec[
"class_type"];
3094 $class[$key] = $rec[
"class"];
3108 $tid = $ilDB->nextId(
"style_template");
3109 $ilDB->manipulate($q =
"INSERT INTO style_template ".
3110 "(id, style_id, name, temp_type)".
3112 $ilDB->quote($tid,
"integer").
",".
3113 $ilDB->quote($this->
getId(),
"integer").
",".
3114 $ilDB->quote($a_name,
"text").
",".
3115 $ilDB->quote($a_type,
"text").
3118 foreach ($a_classes as
$t => $c)
3120 $ilDB->manipulate($q =
"INSERT INTO style_template_class ".
3121 "(template_id, class_type, class)".
3123 $ilDB->quote($tid,
"integer").
",".
3124 $ilDB->quote(
$t,
"text").
",".
3125 $ilDB->quote($c,
"text").
3129 include_once(
"./Services/Style/classes/class.ilObjStyleSheetGUI.php");
3143 $ilDB->manipulate(
"UPDATE style_template SET ".
3144 "name = ".$ilDB->quote($a_name,
"text").
3145 " WHERE id = ".$ilDB->quote($a_t_id,
"integer"));
3147 $ilDB->manipulate(
"DELETE FROM style_template_class WHERE ".
3148 "template_id = ".$ilDB->quote($a_t_id,
"integer")
3150 foreach ($a_classes as
$t => $c)
3152 $ilDB->manipulate($q =
"INSERT INTO style_template_class ".
3153 "(template_id, class_type, class)".
3155 $ilDB->quote($a_t_id,
"integer").
",".
3156 $ilDB->quote(
$t,
"text").
",".
3157 $ilDB->quote($c,
"text").
3170 $set = $ilDB->query(
"SELECT * FROM style_template WHERE ".
3171 "style_id = ".$ilDB->quote($this->getId(),
"integer").
" AND ".
3172 "name = ".$ilDB->quote($a_template_name,
"text"));
3173 if ($rec = $ilDB->fetchAssoc($set))
3187 $set = $ilDB->query(
"SELECT * FROM style_template WHERE ".
3188 "style_id = ".$ilDB->quote($this->getId(),
"integer").
" ".
3189 " AND id = ".$ilDB->quote($a_t_id,
"integer"));
3191 if ($rec = $ilDB->fetchAssoc($set))
3208 $set = $ilDB->query(
"SELECT name FROM style_template WHERE ".
3209 " id = ".$ilDB->quote($a_t_id,
"integer"));
3211 if ($rec = $ilDB->fetchAssoc($set))
3213 return $rec[
"name"];
3226 $tag =
"<StyleTemplates>";
3228 $ttypes = array(
"table",
"vaccordion",
"haccordion");
3230 foreach ($ttypes as $ttype)
3249 $tag.=
'<StyleTemplate Name="'.$t[
"name"].
'">';
3251 foreach ($atts as
$type => $t)
3253 if ($c[
$type] !=
"")
3255 $tag.=
'<StyleClass Type="'.$type.
'" Value="'.$c[
$type].
'" />';
3259 $tag.=
"</StyleTemplate>";
3263 $tag.=
"</StyleTemplates>";
3275 $a_preview_html = str_replace(
' width=""',
"", $a_preview_html);
3276 $a_preview_html = str_replace(
' valign="top"',
"", $a_preview_html);
3277 $a_preview_html = str_replace(
'<div class="ilc_text_block_TableContent">',
"<div>", $a_preview_html);
3280 if (strlen($a_preview_html) > 4000)
3283 $a_preview_html =
"";
3285 $ilDB->manipulate(
"UPDATE style_template SET ".
3286 "preview = ".$ilDB->quote($a_preview_html,
"text").
3287 " WHERE id = ".$ilDB->quote($a_t_id,
"integer"));
3297 $set = $ilDB->query(
"SELECT preview FROM style_template ".
3298 " WHERE id = ".$ilDB->quote($a_t_id,
"integer"));
3299 if ($rec = $ilDB->fetchAssoc($set))
3301 return $rec[
"preview"];
3314 $set = $ilDB->query(
"SELECT id FROM style_template ".
3315 " WHERE style_id = ".$ilDB->quote($a_style_id,
"integer").
3316 " AND name = ".$ilDB->quote($a_name,
"text"));
3317 if ($rec = $ilDB->fetchAssoc($set))
3332 $ilDB->manipulate(
"DELETE FROM style_template WHERE ".
3333 " style_id = ".$ilDB->quote($this->getId(),
"integer").
" AND ".
3334 " id = ".$ilDB->quote($a_t_id,
"integer"));
3336 $ilDB->manipulate(
"DELETE FROM style_template_class WHERE ".
3337 "template_id = ".$ilDB->quote($a_t_id,
"integer")
3349 $ilDB->manipulate(
"DELETE FROM style_setting WHERE ".
3350 " style_id = ".$ilDB->quote($this->getId(),
"integer").
3351 " AND name = ".$ilDB->quote($a_name,
"text")
3354 $ilDB->manipulate(
"INSERT INTO style_setting ".
3355 "(style_id, name, value) VALUES (".
3356 $ilDB->quote($this->getId(),
"integer").
",".
3357 $ilDB->quote($a_name,
"text").
",".
3358 $ilDB->quote($a_value,
"text").
3369 $set = $ilDB->query(
"SELECT value FROM style_setting ".
3370 " WHERE style_id = ".$ilDB->quote($this->getId(),
"integer").
3371 " AND name = ".$ilDB->quote($a_name,
"text")
3373 $rec = $ilDB->fetchAssoc($set);
3375 return $rec[
"value"];
3385 $ilDB->replace(
"style_usage", array(
3386 "obj_id" => array(
"integer", (
int) $a_obj_id)),
3388 "style_id" => array(
"integer", (
int) $a_style_id))
3399 $set = $ilDB->query(
"SELECT style_id FROM style_usage ".
3400 " WHERE obj_id = ".$ilDB->quote($a_obj_id,
"integer")
3402 $rec = $ilDB->fetchAssoc($set);
3406 return (
int) $rec[
"style_id"];
static _lookupTemplateIdByName($a_style_id, $a_name)
Lookup table template preview.
_getTemplatePreview($a_style, $a_type, $a_t_id, $a_small_mode=false)
Get table template preview.
getXML()
get xml representation of style object
static _explodeRGB($a_rgb, $as_dec=false)
Explode an RGB string into an array.
replaceStylePar($a_tag, $a_class, $a_par, $a_val, $a_type)
Set style parameter per tag/class/parameter.
static _getTemplateClassTypes($a_template_type="")
Get template class types.
getHideStatus($a_type, $a_char)
Get characteristic hide status.
removeColor($a_name)
Remove a color.
characteristicExists($a_char, $a_style_type)
Check whether characteristic exists.
exportXML($a_dir)
export style xml file to directory
static _HLSToRGB($a_hls)
HLS to RGB (both arrays, 0..255)
do_3_10_Migration()
Migrates 3.10 style to 3.11 style.
setCharacteristics($a_chars)
Set characteristics.
getColors()
Get colors of style.
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.
_lookupActive($a_id)
Lookup active flag.
read()
read style properties
static _determineTag($a_type)
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
_writeStandard($a_id, $a_std)
Write standard flag.
deleteParameter($a_id)
delete style parameter
addTemplate($a_type, $a_name, $a_classes)
Add table template.
_writeScope($a_id, $a_scope)
Write scope.
static $style_super_types
putInTree()
Put in tree (show error message, since styles do not use ref ids)
do_3_9_Migration($a_id)
Migrate old 3.9 styles.
getRefId()
Get ref id (show error message, since styles do not use ref ids)
getPlaceHolderStylePath()
get placeholder style path (for Page Layouts)
Class ilObject Basic functions for all objects.
copyImagesToDir($a_target)
Copy images to directory.
setExportSubDir($a_dir)
Set local directory, that will be included within the zip file.
deleteImage($a_file)
Delete an image.
lookupStyleSetting($a_name)
Lookup style setting.
setScope($a_scope)
Set scope.
addParameter($a_tag, $a_par, $a_type)
write style parameter to db
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file
_lookupContObjIdByStyleId($a_style_id)
lookup style sheet ID
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory
static _getStyleSuperTypeForType($a_type)
writeTemplatePreview($a_t_id, $a_preview_html)
Write table template preview.
static _lookupTitle($a_id)
lookup object title
deleteStyleParOfChar($a_type, $a_class)
Delete style parameters of characteristic.
_lookupUpToDate($a_id)
Looup up to date.
writeCSSFile($a_target_file="", $a_image_dir="")
write css file to webspace directory
static _getStyleSuperTypes()
static lookupObjectStyle($a_obj_id)
Lookup object style.
& getMetaData()
get meta data object
getSyntaxStylePath()
get syntax style path
createExportSubDirectory()
Create export directory.
static _getAllReferences($a_id)
get all reference ids of object
lookupTemplateName($a_t_id)
Lookup table template name for template ID.
do_3_10_CharMigration($a_id="")
This is more or less a copy of Services/Migration/DBUpdate_1385/classes ilStyleMigration->addMissingS...
getThumbnailsDirectory()
Get thumbnails directory.
handleXmlString($a_str)
Handle xml strin.
static writeStyleUsage($a_obj_id, $a_style_id)
Write style usage.
addColor($a_name, $a_code)
Add color.
getTemplate($a_t_id)
Get template.
_replaceStylePar($style_id, $a_tag, $a_class, $a_par, $a_val, $a_type)
_getClonableContentStyles()
Get all clonable styles (active standard styles and individual learning module styles with write perm...
static _getBasicStyleDom()
Get basic style dom.
getImagesDirectory()
Get images directory.
templateExists($a_template_name)
Check whether template exists.
static resizeImage($a_from, $a_to, $a_width, $a_height, $a_constrain_prop=false)
resize image
getCharacteristics($a_type="", $a_no_hidden=false)
Get characteristics.
static _addMissingStyleClassesToAllStyles($a_styles="")
Add missing style classes to all styles.
getId()
get object id public
static _isExpandable($a_type)
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
writeStyleSetting($a_name, $a_value)
Write Style Setting.
static _getFilteredGroups()
ilObjStyleSheet($a_id=0, $a_call_by_reference=false)
Constructor public.
getTemplateXML()
Get table template xml.
static _getCoreStyles()
Get core styles.
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
_deleteStyleAssignments($a_style_id)
delete all style references to style
getTitle()
get object title public
uploadImage($a_file)
Upload image.
getDescription()
get object description
_getStandardStyles($a_exclude_default_style=false, $a_include_deactivated=false, $a_scope=0)
Get standard styles.
redirection script todo: (a better solution should control the processing via a xml file) ...
setUpToDate($a_up_to_date=true)
Set style up to date (false + update will trigger css generation next time)
copyCharacteristic($a_from_style_id, $a_from_type, $a_from_char, $a_to_char)
Copy characteristic.
deleteStylePar($a_tag, $a_class, $a_par, $a_type)
Delete style parameter by tag/class/parameter.
saveHideStatus($a_type, $a_char, $a_hide)
Save characteristic hide status.
setStyle($a_style)
set styles
static $basic_style_image_dir
static zip($a_dir, $a_file, $compress_content=false)
zips given directory/file into given zip.file
getType()
get object type public
getStyleParameterGroups()
Get grouped parameter.
static _lookupType($a_id, $a_reference=false)
lookup object type
getContentPrintStyle()
get content print style
export()
Create export file.
getTemplates($a_type)
Get table templates of style.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
_writeActive($a_id, $a_active)
Write active flag.
static _getColorFlavor($a_rgb, $a_i)
Get color flavor.
determineTemplateStyleClassType($t, $k)
updateColor($a_name, $a_new_name, $a_code)
Update color.
static _createImagesDirectory($a_style_id)
Create images directory <data_dir>/sty/sty_<id>/images.
createExportDirectory()
Create export directory.
getStyle()
todo: bad style! should return array of objects, not multi-dim-arrays
updateStyleParameter($a_id, $a_value)
update style parameter per id
_writeUpToDate($a_id, $a_up_to_date)
Write up to date.
static _addMissingStyleClassesToStyle($a_id)
Add missing style classes to all styles.
createReference()
Create a reference (show error message, since styles do not use ref ids)
static _getImagesDirectory($a_style_id)
Get images directory.
addCharacteristic($a_type, $a_char, $a_hidden=false)
Add characteristic.
static _RGBToHLS($a_rgb)
RGB to HLS (both arrays, 0..255)
_lookupStandard($a_id)
Lookup standard flag.
getTemplateClasses($a_tid)
Get template classes.
static _getStyleParameterValues($par)
static getDataDir()
get data directory (outside webspace)
getParametersOfClass($a_type, $a_class)
Get parameters of class.
colorExists($a_color_name)
Check whether color exists.
deleteCharacteristic($a_type, $a_tag, $a_class)
Delete Characteristic.
static _getStyleParameterNumericUnits($a_no_percentage=false)
getContentStylePath($a_style_id)
get content style path
create($a_from_style=0, $a_import_mode=false)
Create a new style.
getExportSubDir()
The local directory, that will be included within the zip file.
createImportDirectory()
Create import directory.
getColorCodeForName($a_name)
Remove a color.
updateTemplate($a_t_id, $a_name, $a_classes)
Update table template.
static _getStyleParameters($a_tag="")
removeTemplate($a_t_id)
Remove table template.
setRefId()
Set ref id (show error message, since styles do not use ref ids)
static _isHideable($a_type)
assignMetaData(&$a_meta_data)
assign meta data object
cleanExportDirectory()
Clear export directory.
getImages()
Get images of style.
createFromXMLFile($a_file, $a_skip_parent_create=false)
create style from xml file
static _getStyleParameterInputType($par)
_getObjectsDataForType($a_type, $a_omit_trash=false)
get all objects of a certain type
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static getWebspaceDir($mode="filesystem")
get webspace directory
static _getStyleParameterSubPar($par)
createImagesDirectory()
Create images directory <data_dir>/sty/sty_<id>/images.
ilClone()
clone style sheet (note: styles have no ref ids and return an object id)
static getAvailableParameters()
Get available parameters.
lookupTemplatePreview($a_t_id)
Lookup table template preview.
getUpToDate()
Get up to date.