23 array(
'left',
'right',
'center',
'justify'),
false);
26 $this->info[
'border-bottom-style'] =
27 $this->info[
'border-right-style'] =
28 $this->info[
'border-left-style'] =
30 array(
'none',
'hidden',
'dotted',
'dashed',
'solid',
'double',
31 'groove',
'ridge',
'inset',
'outset'),
false);
36 array(
'none',
'left',
'right',
'both'),
false);
38 array(
'none',
'left',
'right'),
false);
40 array(
'normal',
'italic',
'oblique'),
false);
42 array(
'normal',
'small-caps'),
false);
52 array(
'inside',
'outside'),
false);
54 array(
'disc',
'circle',
'square',
'decimal',
'lower-roman',
55 'upper-roman',
'lower-alpha',
'upper-alpha',
'none'),
false);
56 $this->info[
'list-style-image'] = $uri_or_none;
61 array(
'capitalize',
'uppercase',
'lowercase',
'none'),
false);
64 $this->info[
'background-image'] = $uri_or_none;
66 array(
'repeat',
'repeat-x',
'repeat-y',
'no-repeat')
69 array(
'scroll',
'fixed')
74 $this->info[
'border-top-color'] =
75 $this->info[
'border-bottom-color'] =
76 $this->info[
'border-left-color'] =
77 $this->info[
'border-right-color'] =
88 $this->info[
'border-top-width'] =
89 $this->info[
'border-bottom-width'] =
90 $this->info[
'border-left-width'] =
110 'small',
'medium',
'large',
'x-large',
'xx-large',
111 'larger',
'smaller')),
124 $this->info[
'margin-top'] =
125 $this->info[
'margin-bottom'] =
126 $this->info[
'margin-left'] =
137 $this->info[
'padding-top'] =
138 $this->info[
'padding-bottom'] =
139 $this->info[
'padding-left'] =
157 $max =
$config->get(
'CSS.MaxImgLength');
159 $this->info[
'width'] =
160 $this->info[
'height'] =
179 array(
'normal',
'bold',
'bolder',
'lighter',
'100',
'200',
'300',
180 '400',
'500',
'600',
'700',
'800',
'900'),
false);
187 $this->info[
'border'] =
188 $this->info[
'border-bottom'] =
189 $this->info[
'border-top'] =
190 $this->info[
'border-left'] =
194 'collapse',
'separate'));
204 'top',
'text-top',
'middle',
'bottom',
'text-bottom')),
214 if (
$config->get(
'CSS.Proprietary')) {
218 if (
$config->get(
'CSS.AllowTricky')) {
222 if (
$config->get(
'CSS.Trusted')) {
226 $allow_important =
$config->get(
'CSS.AllowImportant');
228 foreach ($this->info as $k => $v) {
256 'inline',
'block',
'list-item',
'run-in',
'compact',
257 'marker',
'table',
'inline-table',
'table-row-group',
258 'table-header-group',
'table-footer-group',
'table-row',
259 'table-column-group',
'table-column',
'table-cell',
'table-caption',
'none'
262 'visible',
'hidden',
'collapse'
269 'static',
'relative',
'absolute',
'fixed'
272 $this->info[
'left'] =
273 $this->info[
'right'] =
294 $support =
"(for information on implementing this, see the ".
296 $allowed_properties =
$config->get(
'CSS.AllowedProperties');
297 if ($allowed_properties !== null) {
298 foreach ($this->info as $name =>
$d) {
299 if(!isset($allowed_properties[$name])) unset($this->info[$name]);
300 unset($allowed_properties[$name]);
303 foreach ($allowed_properties as $name =>
$d) {
305 $name = htmlspecialchars($name);
306 trigger_error(
"Style attribute '$name' is not supported $support", E_USER_WARNING);
310 $forbidden_properties =
$config->get(
'CSS.ForbiddenProperties');
311 if ($forbidden_properties !== null) {
312 foreach ($this->info as $name =>
$d) {
313 if (isset($forbidden_properties[$name])) {
314 unset($this->info[$name]);