/[drupal]/contributions/modules/feed/xsl_mop-up.js
ViewVC logotype

Contents of /contributions/modules/feed/xsl_mop-up.js

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download) (as text)
Sun Oct 15 17:18:32 2006 UTC (3 years, 1 month ago) by thegreenman
Branch: MAIN
CVS Tags: HEAD
Branch point for: DRUPAL-4-7
File MIME type: text/javascript
The Feed module is an attempt to create a module that allows RSS (and other) feeds to be themed using XSLT. The current default template has been based on the BBC templates.

This will overrride the default feed callbacks for node and taxonomy. It also provides a template funtion that can be used to override views_rss feeds.

The XSLT templates are parsed by Drupal to allow them to be modified dynamically.
1 // -*-coding: latin-1;-*-
2 // Time-stamp: "2006-05-17 22:06:46 ADT" sburke@cpan.org
3
4 // A workaround for XSL-to-XHTML systems that don't
5 // implement XSL 'disable-output-escaping="yes"'.
6 //
7 // sburke@cpan.org, Sean M. Burke.
8 // - I hereby release this JavaScript code into the public domain.
9
10 var is_decoding;
11 var DEBUG = 0;
12
13 function complaining (s) { alert(s); return new Error(s,s); }
14
15 if(!( document.getElementById && document.getElementsByName ))
16 throw complaining("Your browser is too old to render this page properly."
17 + " Consider going to getfirefox.com to upgrade.");
18
19 function check_decoding () {
20 var d = document.getElementById('cometestme');
21 if(!d) {
22 throw complaining("Can't find an id='cometestme' element?");
23 } else if(!('textContent' in d)) {
24 // It's a browser with a halfassed DOM implementation (like IE6)
25 // that doesn't implement textContent! Assume that if it's that
26 // dumb, it probably doesn't implement disable-content-encoding.
27
28 } else {
29 var ampy = d.textContent;
30 if(DEBUG > 1) { alert("Got " + ampy); }
31
32 if(ampy == undefined) throw complaining("'cometestme' element has undefined text content?!");
33 if(ampy == '' ) throw complaining("'cometestme' element has empty text content?!" );
34
35 if (ampy == "\x26" ) { is_decoding = true; }
36 else if (ampy == "\x26amp;" ) { is_decoding = false; }
37 else { throw complaining('Insane value: "' + ampy + '"!'); }
38 }
39
40 var msg =
41 (is_decoding == undefined) ? "I can't tell whether the XSL processor supports disable-content-encoding!D"
42 : is_decoding ? "The XSL processor DOES support disable-content-encoding"
43 : "The XSL processor does NOT support disable-content-encoding"
44 ;
45 if(DEBUG) alert(msg);
46 return msg;
47 }
48
49
50 function go_decoding () {
51 check_decoding();
52
53 if(is_decoding) {
54 DEBUG && alert("No work needs doing -- already decoded!");
55 return;
56 }
57
58 var to_decode = document.getElementsByName('decodeme');
59 if(!( to_decode && to_decode.length )) {
60 DEBUG && alert("No work needs doing -- no elements to decode!");
61 return;
62 }
63
64 if(!( ( "innerHTML" in to_decode[0]) && ( "textContent" in to_decode[0]) ))
65 throw complaining( "Your JavaScript version doesn't implement DOM " +
66 "properly enough to show this page correctly. " +
67 "Consider going to getfirefox.com to upgrade.");
68
69 var s;
70 for(var i = to_decode.length - 1; i >= 0; i--) {
71 s = to_decode[i].textContent;
72
73 if(
74 s == undefined ||
75 (s.indexOf('&') == -1 && s.indexOf('<') == -1)
76 ) {
77 // the null or markupless element needs no reworking
78 } else {
79 to_decode[i].innerHTML = s; // that's the magic
80 }
81 }
82
83 return;
84 }
85
86 //End

  ViewVC Help
Powered by ViewVC 1.1.2