source: Dev/branches/rest-dojo-ui/client/util/docscripts/cheat.php @ 256

Last change on this file since 256 was 256, checked in by hendrikvanantwerpen, 13 years ago

Reworked project structure based on REST interaction and Dojo library. As
soon as this is stable, the old jQueryUI branch can be removed (it's
kept for reference).

File size: 3.7 KB
Line 
1<?php
2       
3        // for this to work, the file api.html needs to be writable locally. pass a "?build" to
4        // this url to trigger the generation. otherwise, work live from here. No JS ends up
5        // in the output. api.css gets inlined in the output, making cheat.html standalone.
6       
7        $head = '<!DOCTYPE html>
8        <html>
9                <head>
10                        <title>API Overview - Dojo Toolkit</title>
11               
12                ';
13
14        $foot = '</body></html>';
15
16        if(!empty($_POST['body'])){
17               
18                $head .= "<style type='text/css'>" . file_get_contents("cheat/cheat.css") ."</style></head><body>";
19                $page = $head . $_POST['body'] . $foot;
20                       
21                if(is_writable("./cheat.html")){
22                        file_put_contents("./cheat.html", stripslashes($page));
23                }else{
24                        header("HTTP", true, 500);
25                        print "Unwritable File: cheat.html";
26                }
27                die;
28        }
29       
30        print $head;
31       
32?>
33
34                <link rel="stylesheet" href="cheat/cheat.css">
35
36                <script type="text/javascript" src="../../dojo/dojo.js"></script>
37
38                <script type="text/javascript">         
39                        dojo.require("util.docscripts.cheat.lib");
40                        dojo.ready(function(){
41                               
42                                // a list of things to ignore in the dojo namespace (either useless, or handled specially)
43                                var ap = util.docscripts.cheat.lib;
44
45                                if(ap.hasTag("excludePlugd")){
46                                        ap.ignore.push(
47                                                // skip plugd api's for Dojo Base
48                                                "pub", "sub", "unique", "first", "last", "end", "show", "hide", "toggle",
49                                                "conflict", "animate", "wrap", "appendTo", "append", "hoverClass", "hover",
50                                                "qw","generateId"
51                                        );
52                                }
53
54                                // core Dojo stuff:
55                                if(!ap.hasTag("excludeDojo")){
56                                        ap.addIn("dojo");
57                                        ap.addIn("dojo.NodeList.prototype");
58                                        ap.addIn("dojo.fx", ap.getUl("Effects"));
59                                        ap.addIn("dojo.Animation.prototype", ap.getUl("Effects"));
60                                }
61                               
62                                if(!ap.hasTag("excludeKeys")){
63                                        var ul = ap.getUl("Key-Constants");
64                                        dojo.place("<li class='dblspan'>(dojo.keys.*)</li>", ul, "first");
65                                        ap.addIn("dojo.keys", ul);
66                                }
67
68                                ap.addIn({
69                                        "djConfig": dojo.mixin({},{
70                                                        parseOnLoad:false,
71                                                        requires:[]
72                                                },dojo.config),
73                                        "toString":function(){ return "djConfig" }
74                                }, ap.getUl("djConfig"));
75
76                                // fun quick way to pseudo-doc a tag
77//                              ap.addIn({
78//                                      "args":{
79//                                              "load":function(data, ioArgs){},
80//                                              "error":function(error){},
81//                                              "handle":function(dataOrError){},
82//                                              url:"", timeout: ""
83//                                      },
84//                                      "toString":function(){
85//                                              // this is to trick the thing into introversion
86//                                              return "args"
87//                                      }
88//                              }, ap.getUl("Ajax"))
89
90                                if(ap.hasTag("includeColor")){
91                                        ap.addIn("dojo.Color.prototype", ap.getUl("Colors"));
92                                }
93
94                                var finish = function(){
95                                        ap.sortFields("container");
96                                        ap.buildNav();
97                                        ap.hasTag("build") && ap.save();
98                                       
99                                }
100
101                                if(ap.hasTag("includeDijit")){
102                                        dojo.require("dijit.dijit");
103                                        dojo.addOnLoad(function(){
104
105                                                ap.addIn("dijit._Widget.prototype", null, "dijit");
106                                                ap.addIn("dijit", null, "dijit");
107                                                ap.addIn("dijit._Templated.prototype", null, "dijit");
108                                                ap.addIn("dijit.WidgetSet.prototype", ap.getUl("Widget-Access"));
109                                                ap.addIn("dijit.popup", ap.getUl("Widget-Control"));
110                                                finish();
111                                        });
112                                       
113                                }else{
114                                        finish();
115                                }
116                               
117                                dojo.connect(dojo.global, "onkeypress", function(e){
118                                        if(e.keyCode == dojo.keys.ESCAPE && e.ctrlKey){
119                                                ap.save();
120                                        }
121                                });
122                               
123                                dojo.byId("version").innerHTML = dojo.version;
124                               
125                        });
126                </script>
127       
128        <body>
129                <fieldset id="top"><div>
130                        <legend>Dojo API CheatSheet</legend>
131                                <ul id="nav">
132                                        <li><a href="#top">Top</a></li>
133                                </ul>
134                                <div id="key">
135                                        <fieldset>
136                                                <legend>var</legend>
137                                                <ul>
138                                                        <li>d = dojo,</li>
139                                                        <li>$ = d.query,</li>
140                                                        <li>dk = d.keys</li>
141                                                </ul>
142                                        </fieldset>
143                                </div>
144                        </div>
145                </fieldset>
146                <div id="container"></div>
147                <span id="version"></span>
148        </body>
149</html>
Note: See TracBrowser for help on using the repository browser.