@@ -13,37 +13,28 @@ public static function render($el)
1313 $ id = $ el ->getAttribute ("id " );
1414 if (!$ id ) $ id = 'content ' ;
1515
16- if (xml_serve::$ pagedef ) {
17- $ src = xml_serve::$ pagedef ->get ("/pagedef/content[@id=' $ id']/@src " );
18- $ type = xml_serve::$ pagedef ->get ("/pagedef/content[@id=' $ id']/@type " );
19- $ name = xml_serve::$ pagedef ->get ("/pagedef/content[@id=' $ id']/@name " );
20- }
21-
22- if ($ src == '' && xml_serve::$ template ) {
23- $ src = xml_serve::$ template ->get ("/pagetemplate/content[@id=' $ id']/@src " );
24- $ type = xml_serve::$ template ->get ("/pagetemplate/content[@id=' $ id']/@type " );
25- $ name = xml_serve::$ template ->get ("/pagetemplate/content[@id=' $ id']/@name " );
26- }
16+ $ merged = xml_file::toDocEl (xml_file::toXml ($ el ));
17+ if (xml_serve::$ settings != null && ($ k = xml_serve::$ settings ->nde ("/site/content[@id=' $ id'] " )))
18+ foreach ($ k ->attributes as $ attr )
19+ $ merged ->setAttribute ($ attr ->localName , $ attr ->nodeValue );
20+ if (xml_serve::$ template != null && ($ k = xml_serve::$ template ->nde ("/pagetemplate/content[@id=' $ id'] " )))
21+ foreach ($ k ->attributes as $ attr )
22+ $ merged ->setAttribute ($ attr ->localName , $ attr ->nodeValue );
23+ if (xml_serve::$ template != null && ($ k = xml_serve::$ pagedef ->nde ("/pagedef/content[@id=' $ id'] " )))
24+ foreach ($ k ->attributes as $ attr )
25+ $ merged ->setAttribute ($ attr ->localName , $ attr ->nodeValue );
2726
28- if ($ src == '' ) {
29- $ src = xml_serve::$ settings ->get ("/site/content[@id=' $ id']/@src " );
30- $ type = xml_serve::$ settings ->get ("/site/content[@id=' $ id']/@type " );
31- $ name = xml_serve::$ settings ->get ("/site/content[@id=' $ id']/@name " );
32- }
33-
34- if ($ src == '' ) {
35- $ src = $ el ->getAttribute ("src " );
36- $ type = $ el ->getAttribute ("type " );
37- $ name = $ el ->getAttribute ("name " );
38- }
27+ $ src = $ merged ->getAttribute ("src " );
28+ $ type = $ merged ->getAttribute ("type " );
29+ $ name = $ merged ->getAttribute ("name " );
3930
4031 if ($ src == "" ) $ src = "$ id.html " ;
4132 if ($ type == "" ) $ type = strrpos ($ src , '. ' ) === false ? '' : substr ($ src , strrpos ($ src , '. ' ) + 1 );
4233 php_logger::debug ("id= $ id " , "src= $ src " , "type= $ type " , "name= $ name " );
4334
4435 if ($ type != 'element ' ) {
4536 $ rTypes = ["template " ];
46- $ rMapps = ["template " => xml_serve::template_name ()];
37+ $ rMapps = ["template " => xml_serve::template_name ()];
4738 if (xml_serve::$ extension ) {
4839 $ rTypes [] = "module " ;
4940 $ rMapps += ["module " => xml_serve::$ extension ];
@@ -68,7 +59,8 @@ public static function render($el)
6859 'indent ' => true ,
6960 'output-xml ' => true ,
7061 'input-xml ' => true ,
71- 'wrap ' => '1000 ' );
62+ 'wrap ' => '1000 '
63+ );
7264 $ tidy = new tidy ();
7365 $ tidy ->parseString ($ cont , $ config , 'utf8 ' );
7466 $ tidy ->cleanRepair ();
@@ -79,9 +71,9 @@ public static function render($el)
7971 $ html = xml_serve::markdownToHtml ($ cont , true );
8072 return xml_serve::xml_content (Slimdown::render ($ html ));
8173 case 'element ' :
82- return xml_file::toDocEl (xml_serve::handle_element ($ name , $ el ));
74+ return xml_file::toDocEl (xml_serve::handle_element ($ name , $ merged ));
8375 default :
84- return xml_serve::xml_content ("<span>!<[CDATA[ " . str_replace ("> " , "> " , $ cont ). "]]></span> " );
76+ return xml_serve::xml_content ("<span>!<[CDATA[ " . str_replace ("> " , "> " , $ cont ) . "]]></span> " );
8577 }
8678
8779 return $ el ;
0 commit comments