/** * @param array $dest * @param $element * @param $classString * @param $inlineStyle */ public function getODTProperties(&$dest, $element, $classString, $inlineStyle) { // Get properties for our class/element from imported CSS $this->import->getPropertiesForElement($dest, $element, $classString, $this->config->getParam('media_sel')); // Interpret and add values from style to our properties $this->_processCSSStyle($dest, $inlineStyle); // Adjust values for ODT foreach ($dest as $property => $value) { $dest[$property] = $this->adjustValueForODT($property, $value, 14); } }
/** * Test some more wrap CSS. * Part 4. */ public function test_wrap_css_part2() { $properties = array(); $css_code = '@media screen { /*____________ help ____________*/ .dokuwiki .wrap_help { background-color: #dcc2ef; } .dokuwiki .wrap__dark.wrap_help { background-color: #3c1757; } .dokuwiki div.wrap_help { background-image: url(images/note/48/help.png); } .dokuwiki span.wrap_help { background-image: url(images/note/16/help.png); } } @media print { /* boxes and notes with icons ********************************************************************/ .dokuwiki div.wrap_box, .dokuwiki div.wrap_danger, .dokuwiki div.wrap_warning, .dokuwiki div.wrap_caution, .dokuwiki div.wrap_notice, .dokuwiki div.wrap_safety, .dokuwiki div.wrap_info, .dokuwiki div.wrap_important, .dokuwiki div.wrap_alert, .dokuwiki div.wrap_tip, .dokuwiki div.wrap_help, .dokuwiki div.wrap_todo, .dokuwiki div.wrap_download { border: 2px solid #999; padding: 1em 1em .5em; margin-bottom: 1.5em; } .dokuwiki span.wrap_box, .dokuwiki span.wrap_danger, .dokuwiki span.wrap_warning, .dokuwiki span.wrap_caution, .dokuwiki span.wrap_notice, .dokuwiki span.wrap_safety, .dokuwiki span.wrap_info, .dokuwiki span.wrap_important, .dokuwiki span.wrap_alert, .dokuwiki span.wrap_tip, .dokuwiki span.wrap_help, .dokuwiki span.wrap_todo, .dokuwiki span.wrap_download { border: 1px solid #999; padding: 0 .3em; } }'; $import = new helper_plugin_odt_cssimport(); $import->importFromString($css_code); $import->getPropertiesForElement($properties, 'span', 'dokuwiki wrap_help', 'print'); // For debugging: this will write the parsed/imported CSS in the file // _test/data/tmp/odt_parsed.css $handle = fopen('./data/tmp/odt_parsed.css', 'w'); fwrite($handle, $import->rulesToString()); fclose($handle); // We shouldn't get any properties $this->assertEquals(25, count($properties)); $this->assertEquals('1px solid #999', $properties['border']); $this->assertEquals('1px solid #999', $properties['border-left']); $this->assertEquals('1px solid #999', $properties['border-right']); $this->assertEquals('1px solid #999', $properties['border-top']); $this->assertEquals('1px solid #999', $properties['border-bottom']); $this->assertEquals('1px', $properties['border-width']); $this->assertEquals('1px', $properties['border-left-width']); $this->assertEquals('1px', $properties['border-right-width']); $this->assertEquals('1px', $properties['border-top-width']); $this->assertEquals('1px', $properties['border-bottom-width']); $this->assertEquals('solid', $properties['border-style']); $this->assertEquals('solid', $properties['border-left-style']); $this->assertEquals('solid', $properties['border-right-style']); $this->assertEquals('solid', $properties['border-top-style']); $this->assertEquals('solid', $properties['border-bottom-style']); $this->assertEquals('#999', $properties['border-color']); $this->assertEquals('#999', $properties['border-left-color']); $this->assertEquals('#999', $properties['border-right-color']); $this->assertEquals('#999', $properties['border-top-color']); $this->assertEquals('#999', $properties['border-bottom-color']); $this->assertEquals('0 .3em', $properties['padding']); $this->assertEquals('0', $properties['padding-top']); $this->assertEquals('.3em', $properties['padding-right']); $this->assertEquals('.3em', $properties['padding-left']); $this->assertEquals('0', $properties['padding-bottom']); }