1<?php 2// $Header: /cvsroot/html2ps/css.content.inc.php,v 1.8 2007/03/15 18:37:30 Konstantin Exp $ 3 4require_once(HTML2PS_DIR.'value.content.php'); 5 6/** 7 * Handles 'content' CSS property ( 8 * 9 * 'content' 10 * Value: normal | [ <string> | <uri> | <counter> | 11 * attr(<identifier>) | open-quote | close-quote | no-open-quote | 12 * no-close-quote ]+ | inherit 13 * Initial: normal 14 * Applies to: :before and :after pseudo-elements 15 * Inherited: no 16 * Percentages: N/A 17 * Media: all 18 * Computed value: for URI values, the absolute URI; for attr() 19 * values, the resulting string; otherwise as specified 20 * 21 * This property is used with the :before and :after pseudo-elements 22 * to generate content in a document. Values have the following 23 * meanings: 24 * 25 * normal 26 * The pseudo-element is not generated. 27 * <string> 28 * Text content (see the section on strings). 29 * <uri> 30 * The value is a URI that designates an external resource. If a 31 * user agent cannot support the resource because of the media 32 * types it supports, it must ignore the resource. 33 * <counter> 34 * Counters may be specified with two different functions: 35 * 'counter()' or 'counters()'. The former has two forms: 36 * 'counter(name)' or 'counter(name, style)'. The generated text is 37 * the value of the named counter at this point in the formatting 38 * structure; it is formatted in the indicated style ('decimal' by 39 * default). The latter function also has two forms: 40 * 'counters(name, string)' or 'counters(name, string, style)'. The 41 * generated text is the value of all counters with the given name 42 * at this point in the formatting structure, separated by the 43 * specified string. The counters are rendered in the indicated 44 * style ('decimal' by default). See the section on automatic 45 * counters and numbering for more information. 46 * open-quote and close-quote 47 * These values are replaced by the appropriate string from the 48 * 'quotes' property. 49 * no-open-quote and no-close-quote 50 * Same as 'none', but increments (decrements) the level of nesting 51 * for quotes. 52 * attr(X) 53 * This function returns as a string the value of attribute X for 54 * the subject of the selector. The string is not parsed by the CSS 55 * processor. If the subject of the selector doesn't have an 56 * attribute X, an empty string is returned. The case-sensitivity 57 * of attribute names depends on the document language. Note. In 58 * CSS 2.1, it is not possible to refer to attribute values for 59 * other elements than the subject of the selector. 60 */ 61class CSSContent extends CSSPropertyHandler { 62 function CSSContent() { 63 $this->CSSPropertyHandler(false, false); 64 } 65 66 function &default_value() { 67 $data =& new ValueContent(); 68 return $data; 69 } 70 71 // CSS 2.1 p 12.2: 72 // Value: [ <string> | <uri> | <counter> | attr(X) | open-quote | close-quote | no-open-quote | no-close-quote ]+ | inherit 73 // 74 // TODO: process values other than <string> 75 // 76 function &parse($value) { 77 if ($value == 'inherit') { 78 return CSS_PROPERTY_INHERIT; 79 }; 80 81 $value_obj =& ValueContent::parse($value); 82 return $value_obj; 83 } 84 85 function get_property_code() { 86 return CSS_CONTENT; 87 } 88 89 function get_property_name() { 90 return 'content'; 91 } 92} 93 94CSS::register_css_property(new CSSContent); 95 96?>