/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk

« back to all changes in this revision

Viewing changes to CodeViewer/codeviewerfunctions.php

  • Committer: Gustav Hatvigsson
  • Date: 2013-05-30 12:08:07 UTC
  • mfrom: (129 lenasys_b)
  • mto: This revision was merged to the branch mainline in revision 131.
  • Revision ID: gustav.hartvigsson@gmail.com-20130530120807-q2mad1xrq003ss2n
mergedĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php
2
 
/* function menulayout
3
 
 * Takes 6 arguments and outputs a HTML navigation menu
4
 
* $forwardLink = link to "next page", i.e. "nextPage.html"
5
 
* $backwardLink = link to "previous page", i.e. "previousPage.html"
6
 
* $downloadLink = link to download source file, on download button, i.e. "sourceFile.txt"
7
 
* headingLink = link in heading, i.e. "sourceFile.txt"
8
 
* fileContent = file containing info in the left panel, i.e. "panelContent.txt"
9
 
*/
10
 
function menulayout($forwardLink, $backwardLink, $downloadLink, $heading, $headingLink, $fileContent) {
11
 
        if($backwardLink != "") {
12
 
                $backwardButton = "<a href='".$backwardLink."'><img src='../media/codeviewer/CodeViewerLeftbutton.png'></a>";
13
 
        } else {
14
 
                $backwardButton = "<img src='../media/codeviewer/CodeViewerLeftbuttonGrayed.png'>";
15
 
        }
16
 
 
17
 
        if($forwardLink != "") {
18
 
                $forwardButton = "<a href='".$forwardLink."'><img src='../media/codeviewer/CodeViewerRightbutton.png'></a>";
19
 
        } else {
20
 
                $forwardButton = "<img src='../media/codeviewer/CodeViewerLeftbuttonGrayed.png'>";
21
 
        }
22
 
 
23
 
        if($downloadLink != "") {
24
 
                $downloadButton = "<a href='".$downloadLink."'><img src='../media/codeviewer/CodeViewerDownloadbutton.png'></a>";
25
 
        } else {
26
 
                $downloadButton = "<img src='../media/codeviewer/CodeViewerLeftbuttonGrayed.png'>";
27
 
        }
28
 
 
29
 
        echo '<body onload="resize();" onresize="resize();">
30
 
                        <div class="Topmenu">
31
 
                                <table style="width:100%;height:100%;border:solid 1px;">
32
 
                                        <tr>
33
 
                                                <td class="buttonstyle">
34
 
                                                        '. $backwardButton .'
35
 
                                                </td>
36
 
                                                <td class="buttonstyle">
37
 
                                                        '. $forwardButton .'
38
 
                                                </td>
39
 
                                                <td class="buttonstyle">
40
 
                                                        <a href="../Lindex.html"><img src="../media/codeviewer/CodeViewerRightbutton.png"></a>
41
 
                                                </td>
42
 
                                                <td class="verticalaligntext">
43
 
                                                        <a href="'. $headingLink .'" style="text-decoration: none">'. $heading .'</a>
44
 
                                                </td>
45
 
                                                <td class="buttonstyle">
46
 
                                                        '. $downloadButton .'
47
 
                                                </td>
48
 
                                        </tr>
49
 
                                </table>
50
 
                        </div>
51
 
                        <div id="bottom" class="restContainer">
52
 
                                <div style="float: left;">
53
 
                                        <div id="panel" class="panel" onmousemove="resizepanel(event)" onmousedown="mdpanel(event)" onmouseup="mupanel(event)">';
54
 
                                                include($fileContent);
55
 
                                echo '</div>
56
 
                                </div>
57
 
                        <div class="codecontent">';
58
 
}
59
 
 
60
 
/* function menulayoutend
61
 
 * Outputs ending tags in HTML
62
 
*/
63
 
function menulayoutEnd() {
64
 
        echo '</div>
65
 
                </div>
66
 
                <div style="clear: both;">
67
 
                </div>
68
 
        </body>';
69
 
}
70
 
 
71
 
/* function showfile
72
 
 * Outputs html with syntax highlighting.
73
 
* Takes 4 arguments_
74
 
* interestingRows: array containing arrays, each with 3 set values -- start line number, end line number, comment
75
 
* keywords: array containing keywords
76
 
* highlight: array containing arrays, each with two values - string to highlight, and HTML class to apply to highlight */
77
 
function showfile($interestingRows, $keywords, $highlight, $fileName) {
78
 
        echo "<pre>";
79
 
        $handle = @fopen($fileName, "r");
80
 
        if ($handle) {
81
 
 
82
 
                $lineNumber = 1;
83
 
                $commentKind = 0;
84
 
                $commentOn = 0;
85
 
 
86
 
                while (($buffer = fgets($handle, 4096)) !== false) {
87
 
                        $buffer = str_replace("\n", "", $buffer);
88
 
                        $buffer = str_replace("\r", "", $buffer);
89
 
                        $buffer = str_pad($buffer, 150, " ", STR_PAD_RIGHT);
90
 
                        $buffer = str_replace("&", "&amp;", $buffer);
91
 
                        $buffer = str_replace("<", "&lt;", $buffer);
92
 
                        $buffer = str_replace(">", "&gt;", $buffer);
93
 
                        $buffer = str_replace("\t", "&nbsp;", $buffer);
94
 
 
95
 
                        $interesting = 0;
96
 
                        $startspan = 0;
97
 
                        foreach($interestingRows as $row) {
98
 
                                if($lineNumber >= $row[0] && $lineNumber <= $row[1]) {
99
 
                                        $interesting = true;
100
 
                                }
101
 
                        }
102
 
 
103
 
                        foreach($keywords as $keyword) {
104
 
                                if($interesting) {
105
 
                                        $buffer = str_replace($keyword,"<span class='keywordinteresting'>".$keyword."</span>", $buffer);
106
 
                                } else {
107
 
                                        $buffer = str_replace($keyword,"<span class='keyword'>".$keyword."</span>", $buffer);
108
 
                                }
109
 
                        }
110
 
 
111
 
                        // Detect comments - 0 == No comment 1 == Line comment 2 == Start Comment 3 == End Comment
112
 
                        $commentKind = 0;
113
 
                        $commentPos = strpos($buffer,"/*");
114
 
 
115
 
                        if($commentPos >= 0) {
116
 
                                $subby = substr($buffer, $commentPos+2, 1);
117
 
                        } else {
118
 
                                $subby = "Foo";
119
 
                        }
120
 
 
121
 
                        if($commentPos && $subby != '"') {
122
 
                                $commentKind = 2;
123
 
                                $commentOn = 1;
124
 
                        }
125
 
 
126
 
                        $commentPos = strpos($buffer, "*/");
127
 
 
128
 
                        if($commentPos) {
129
 
                                $commentKind = 3;
130
 
                                $commentOn = 0;
131
 
                        }
132
 
 
133
 
                        $commentPos=strpos($buffer, "//");
134
 
 
135
 
                        if($commentPos) {
136
 
                                $commentKind = 1;
137
 
                                $commentOn = 0;
138
 
                        }
139
 
 
140
 
                        foreach($highlight as $highlightkeyword) {
141
 
                                $foundpos = strpos($buffer, $highlightkeyword[0]);
142
 
 
143
 
                                // If line comment and keyword before comment marker
144
 
                                if(($foundpos <= $commentPos && ($commentKind == 1 || $commentKind == 2)) || ($commentKind == 0) || ($foundpos > $commentPos && $commentKind == 3)) {
145
 
                                        if(!($commentKind == 0 && $commentOn == 1)) {
146
 
                                                $buffer = str_replace($highlightkeyword[0], "<span class='".$highlightkeyword[1]."'>".$highlightkeyword[0]."</span>", $buffer);
147
 
                                        }
148
 
                                }
149
 
 
150
 
                        }
151
 
 
152
 
                        // echo $commentKind.$commentOn;
153
 
                        if($commentKind > 0) {
154
 
                                if($commentKind == 1) {
155
 
                                        $buffer = str_replace("//","<span class='commented'>//", $buffer);
156
 
                                        $buffer .= "</span>";
157
 
                                }
158
 
                                if($commentKind == 2) {
159
 
                                        $buffer=str_replace("/*","<span class='commented'>/*", $buffer);
160
 
                                }
161
 
                                if($commentKind == 3) {
162
 
                                        $buffer=str_replace("*/","*/</span>", $buffer);
163
 
                                }
164
 
                        }
165
 
 
166
 
                        $linenostr = $lineNumber;
167
 
                        $linenostr = str_pad($linenostr, 3, " ", STR_PAD_RIGHT);
168
 
 
169
 
                        if($interesting) {
170
 
                                echo "<span class='interesting'>";
171
 
                                echo "<span class='linenointeresting'>".$linenostr."</span>&nbsp;";
172
 
                                $startspan = 1;
173
 
                        } else {
174
 
                                echo "<span class='lineno'>".$linenostr."</span>&nbsp;";
175
 
                        }
176
 
 
177
 
                        echo $buffer;
178
 
 
179
 
                        if($startspan) {
180
 
                                echo "</span>";
181
 
                        }
182
 
 
183
 
                        $lineNumber++;
184
 
                        echo "<br>";
185
 
                }
186
 
                if (!feof($handle)) {
187
 
                        echo "Error: unexpected fgets() fail\n";
188
 
                }
189
 
                fclose($handle);
190
 
        }
191
 
        echo "</pre>";
192
 
}
193
 
?>
 
 
b'\\ No newline at end of file'