/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 Hartvigsson
  • Date: 2013-04-12 19:13:58 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20130412191358-lvnmll48cw7idkzk
added:
* COPYING - licensing information
* COPYRIGHT_HEADER - the header that should be in every file related to
  the project.
* README - Information about the project.
* lgpl-3.0 - The license that is used by this project.

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'