Support adding fields on the fly
[disclosr.git] / common.inc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?php
 
function createAgencyDesignDoc() {
    global $db;
    $obj = new stdClass();
    $obj->_id = "_design/" . urlencode("app");
    $obj->language = "javascript";
    $obj->views->byABN->map = "function(doc) {   emit(doc.abn, doc); };";
    $obj->views->byName->map = "function(doc) {   emit(doc.name, doc); };";
    $obj->views->getActive->map = 'function(doc) { if (doc.status == "active") {  emit(doc._id, doc); } };';
    $obj->views->getSuspended->map = 'function(doc) { if (doc.status == "suspended") {  emit(doc._id, doc); } };';
    $obj->views->getScrapeRequired->map = "function(doc) {   emit(doc.abn, doc); };";
$obj->views->showNamesABNs->map = "function(doc) {   emit(doc._id, {name: doc.name, abn: doc.abn}); };";
    // allow safe updates (even if slightly slower due to extra: rev-detection check).
    return $db->save($obj, true);
}
 
require (realpath(dirname(__FILE__) . '/couchdb/settee/src/settee.php'));
 
$server = new SetteeServer('http://127.0.0.1:5984');
 
function setteErrorHandler($e) {
    echo $e->getMessage() . "<br>" . PHP_EOL;
}
 
function include_header() {
    ?>
    <!DOCTYPE html>
 
    <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
    <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
    <!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
    <!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
    <!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->
        <head>
            <meta charset="utf-8" />
 
            <!-- Set the viewport width to device width for mobile -->
            <meta name="viewport" content="width=device-width" />
 
            <title>Disclosr</title>
 
            <!-- Included CSS Files -->
            <link rel="stylesheet" href="stylesheets/foundation.css">
            <link rel="stylesheet" href="stylesheets/app.css">
 
            <!--[if lt IE 9]>
                    <link rel="stylesheet" href="stylesheets/ie.css">
            <![endif]-->
 
 
            <!-- IE Fix for HTML5 Tags -->
            <!--[if lt IE 9]>
                    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
            <![endif]-->
 
        </head>
        <body>
 
            <!-- navBar -->
            <div id="navbar" class="container">
                <div class="row">
                    <div class="four columns">
                        <h1><a href="/">Disclosr</a></h1>
                    </div>
                    <div class="eight columns hide-on-phones">
                        <strong class="right">
                            <a href="../grid.php">Features</a>
                            <a href="../case-soapbox.php">Case Studies</a>
                            <a href="index.php">Documentation</a>
                            <a href="http://github.com/navb/foundation">Github</a>
                            <a href="../files/foundation-download-2.1.4.zip" class="small blue nice button src-download">Download</a>
 
                        </strong>
                    </div>
                </div>
            </div>
            <!-- /navBar -->
 
            <!-- container -->
            <div class="container">
            <?php }
 
            function include_footer() { ?>
            </div>
            <!-- container -->
 
 
 
 
            <!-- Included JS Files -->
            <script src="javascripts/foundation.js"></script>
            <script src="javascripts/app.js"></script>
            <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
 
        </body>
    </html>
 
<?php } 
 
 # Convert a stdClass to an Array. http://www.php.net/manual/en/language.types.object.php#102735
        function object_to_array(stdClass $Class){
            # Typecast to (array) automatically converts stdClass -> array.
            $Class = (array)$Class;
            
            # Iterate through the former properties looking for any stdClass properties.
            # Recursively apply (array).
            foreach($Class as $key => $value){
                if(is_object($value)&&get_class($value)==='stdClass'){
                    $Class[$key] = object_to_array($value);
                }
            }
            return $Class;
        }
        
        # Convert an Array to stdClass. http://www.php.net/manual/en/language.types.object.php#102735
       function array_to_object(array $array){
            # Iterate through our array looking for array values.
            # If found recurvisely call itself.
            foreach($array as $key => $value){
                if(is_array($value)){
                    $array[$key] = array_to_object($value);
                }
            }
            
            # Typecast to (object) will automatically convert array -> stdClass
            return (object)$array;
        }
        
        
        ?>