mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-10-31 12:21:36 +01:00 
			
		
		
		
	
		
			
	
	
		
			62 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			62 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | ;; $Id$ | ||
|  | ;; | ||
|  | ;; This file is part of the Modular DocBook Stylesheet distribution. | ||
|  | ;; See ../README or http://nwalsh.com/docbook/dsssl/ | ||
|  | ;; | ||
|  | 
 | ||
|  | (define (pi-value component piname) | ||
|  |   ;; Returns the value of the (?piname value) PI (if one exists) | ||
|  |   ;; as a child of component, otherwise returns #f | ||
|  |   ;; | ||
|  |   (let loop ((nl (select-by-class (children component) 'pi))) | ||
|  |     (if (node-list-empty? nl) | ||
|  | 	#f | ||
|  | 	(let ((pidata (node-property 'system-data (node-list-first nl)))) | ||
|  | 	  (if (and (> (string-length pidata) (string-length piname)) | ||
|  | 		   (equal? piname | ||
|  | 			   (substring pidata 0 (string-length piname)))) | ||
|  | 	      (substring pidata | ||
|  | 			 (+ (string-length piname) 1) | ||
|  | 			 (string-length pidata)) | ||
|  | 	      (loop (node-list-rest nl))))))) | ||
|  | 
 | ||
|  | (define (inherited-pi-value component piname) | ||
|  |   (let loop ((value #f) (nd component)) | ||
|  |     (if (or value (node-list-empty? nd)) | ||
|  | 	value | ||
|  | 	(loop (pi-value nd piname) (parent nd))))) | ||
|  | 
 | ||
|  | (define (dbhtml-findvalue pi-field-list name) | ||
|  |   ;; pi-field-list is '(pitarget name1 value1 name2 value2 ...) | ||
|  |   (let loop ((slist (cdr pi-field-list))) | ||
|  |     (if (null? slist) | ||
|  | 	#f | ||
|  | 	(if (string=? (car slist) name) | ||
|  | 	    (car (cdr slist)) | ||
|  | 	    (loop (cdr (cdr slist))))))) | ||
|  | 
 | ||
|  | (define (dbhtml-value component name) | ||
|  |   ;; Returns the value of "name='value'" in the <?dbhtml ...> PI | ||
|  |   (let loop ((nl (select-by-class (children component) 'pi))) | ||
|  |     (if (node-list-empty? nl) | ||
|  | 	#f | ||
|  | 	(let* ((pidata (node-property 'system-data (node-list-first nl))) | ||
|  | 	       (pilist (if (and (> (string-length pidata) 7) | ||
|  | 				(string=? (substring pidata 0 7) "dbhtml ")) | ||
|  | 			   (parse-starttag-pi pidata) | ||
|  | 			   '())) | ||
|  | 	       (value  (if (null? pilist) #f (dbhtml-findvalue pilist name)))) | ||
|  | 	  (if value | ||
|  | 	      value | ||
|  | 	      (loop (node-list-rest nl))))))) | ||
|  | 
 | ||
|  | (define (inherited-dbhtml-value component name) | ||
|  |   (let loop ((value #f) (nd component)) | ||
|  |     (if (or value (node-list-empty? nd)) | ||
|  | 	value | ||
|  | 	(loop (dbhtml-value nd name) (parent nd))))) | ||
|  | 
 | ||
|  | ;; EOF dbpi.dsl | ||
|  | 
 | ||
|  | 
 |