Commit 892f74111a5bb66bb0412f5c5b90ff27c92803bb

Authored by Elena.Budnik
1 parent 8b77c7d0

format help

js/resources/css/amda.css
@@ -227,22 +227,23 @@ background-image: url(../images/16x16/error.png) !important; @@ -227,22 +227,23 @@ background-image: url(../images/16x16/error.png) !important;
227 } 227 }
228 228
229 229
230 -.infoWindow ul {  
231 - padding-top: 3px;  
232 - margin-left: 30px;  
233 - list-style-type: circle; 230 +.infoWindow ul {
  231 + margin-left: 20px;
  232 + list-style-type: disc;
234 } 233 }
235 234
236 -.infoWindow li {  
237 - padding-top: 3px;  
238 - list-style-type: circle; 235 +.infoWindow li {
  236 + list-style-type: disc;
239 } 237 }
240 - 238 +
  239 +.infoWindow b {
  240 + color: #555555;
  241 + }
  242 +
241 .infoWindow h2 { 243 .infoWindow h2 {
242 padding-bottom: 3px; 244 padding-bottom: 3px;
243 margin-bottom: 1em; 245 margin-bottom: 1em;
244 color: #555555; 246 color: #555555;
245 - color: #555555;  
246 } 247 }
247 248
248 .infoMsg h2 { 249 .infoMsg h2 {
@@ -256,7 +257,7 @@ background-image: url(../images/16x16/error.png) !important; @@ -256,7 +257,7 @@ background-image: url(../images/16x16/error.png) !important;
256 } 257 }
257 258
258 .infoMsg li { 259 .infoMsg li {
259 - list-style-type: circle; 260 + list-style-type: disc;
260 } 261 }
261 262
262 .plotPanelBgColor td div { 263 .plotPanelBgColor td div {
php/XML/dd2tree.xsl deleted
@@ -1,93 +0,0 @@ @@ -1,93 +0,0 @@
1 -<xsl:stylesheet version="1.0"  
2 -xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
3 -  
4 -<xsl:output method="xml"/>  
5 -  
6 -<xsl:template match="dataRoot/dataCenter">  
7 -<dataRoot>  
8 - <dataCenter name="AMDA" desc="AMDA_Internal_Data_Base" xml:id="myLocalData-treeRootNode">  
9 - <xsl:for-each select="mission">  
10 - <mission att="{@attention}" name="{@name}" rank="{@rank}" xml:id="{@name}" desc="{@desc}" target="{target}" available="{@available}">  
11 - <xsl:choose>  
12 - <xsl:when test="group">  
13 - <xsl:for-each select="group">  
14 - <group att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">  
15 - <xsl:for-each select="instrument">  
16 - <instrument att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">  
17 - <xsl:for-each select="dataset">  
18 - <xsl:apply-templates select="."/>  
19 - </xsl:for-each>  
20 - </instrument>  
21 - </xsl:for-each>  
22 - </group>  
23 - </xsl:for-each>  
24 - </xsl:when>  
25 - <xsl:when test="simulationModel">  
26 - <xsl:for-each select="simulationModel">  
27 - <simulationModel att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">  
28 - <xsl:for-each select="instrument">  
29 - <instrument att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">  
30 - <xsl:for-each select="dataset">  
31 - <xsl:apply-templates select="."/>  
32 - </xsl:for-each>  
33 - </instrument>  
34 - </xsl:for-each>  
35 - </simulationModel>  
36 - </xsl:for-each>  
37 - </xsl:when>  
38 - <xsl:when test="observatory">  
39 - <xsl:for-each select="observatory">  
40 - <observatory att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">  
41 - <xsl:for-each select="instrument">  
42 - <instrument att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}">  
43 - <xsl:for-each select="dataset">  
44 - <xsl:apply-templates select="."/>  
45 - </xsl:for-each>  
46 - </instrument>  
47 - </xsl:for-each>  
48 - </observatory>  
49 - </xsl:for-each>  
50 - </xsl:when>  
51 - <xsl:otherwise>  
52 - <xsl:for-each select="instrument">  
53 - <instrument att="{@attention}" name="{@name}" xml:id="{parent::mission/@name}:{@name}" desc="{@desc}" restricted="{@restricted}">  
54 - <xsl:for-each select="datasetGroup">  
55 - <datasetGroup att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">  
56 - <xsl:for-each select="dataset">  
57 - <xsl:apply-templates select="."/>  
58 - </xsl:for-each>  
59 - </datasetGroup>  
60 - </xsl:for-each>  
61 - <xsl:for-each select="dataset">  
62 - <xsl:apply-templates select="."/>  
63 - </xsl:for-each>  
64 - </instrument>  
65 - </xsl:for-each>  
66 - </xsl:otherwise>  
67 - </xsl:choose>  
68 - </mission>  
69 - </xsl:for-each>  
70 - </dataCenter>  
71 -</dataRoot>  
72 -</xsl:template>  
73 -  
74 -<xsl:template match="dataset">  
75 - <dataset att="{@attention}" restricted="{@restricted}" name="{@name}" xml:id="{@xml:id}" sampling="{sampling}" maxSampling="{maxSampling}" dataStart="{dataStart}" dataStop="{dataStop}" dataSource="{dataSource}" target="{target}">  
76 - <xsl:for-each select="parameter">  
77 - <xsl:choose>  
78 - <xsl:when test="count(./child::*) &gt; 0 ">  
79 - <parameter name="{@name}" units="{@units}" display_type="{@display_type}" xml:id="{@xml:id}">  
80 - <xsl:for-each select="component">  
81 - <component name="{@name}" xml:id="{@xml:id}"/>  
82 - </xsl:for-each>  
83 - </parameter>  
84 - </xsl:when>  
85 - <xsl:otherwise>  
86 - <parameter name="{@name}" display_type="{@display_type}" units="{@units}" xml:id="{@xml:id}" />  
87 - </xsl:otherwise>  
88 - </xsl:choose>  
89 - </xsl:for-each>  
90 - </dataset>  
91 -  
92 -</xsl:template>  
93 -</xsl:stylesheet>  
94 \ No newline at end of file 0 \ No newline at end of file
php/XML/xml2all.xsl deleted
@@ -1,18 +0,0 @@ @@ -1,18 +0,0 @@
1 -<xsl:stylesheet version="1.0"  
2 -xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
3 -xmlns:php="http://php.net/xsl">  
4 -  
5 -<xsl:output method="text"/>  
6 -  
7 -<xsl:template match="/timetable">  
8 -#Time Table generated by AMDA @ CDPP;  
9 -#Description: <xsl:value-of select="description"/>;  
10 -#Historic: <xsl:value-of select="history"/>;  
11 -#Creation Date : <xsl:value-of select="created"/>;  
12 -#<xsl:text>&#10;</xsl:text>  
13 - <xsl:for-each select="intervals">  
14 - <xsl:value-of select="php:function('timeFormat', string(start))"/><xsl:text> </xsl:text><xsl:value-of select="php:function('timeFormat', string(stop))"/>  
15 - <xsl:text>&#10;</xsl:text>  
16 - </xsl:for-each>  
17 -</xsl:template>  
18 -</xsl:stylesheet>  
php/XML/xml2iso.xsl deleted
@@ -1,19 +0,0 @@ @@ -1,19 +0,0 @@
1 -<xsl:stylesheet version="1.0"  
2 -xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
3 -xmlns:php="http://php.net/xsl">  
4 -  
5 -<xsl:output method="text"/>  
6 -  
7 -<xsl:template match="/timetable">  
8 -#Time Table generated by AMDA @ CDPP;  
9 -#Name: <xsl:value-of select="name"/>;  
10 -#Description: <xsl:value-of select="description"/>;  
11 -#Historic: <xsl:value-of select="history"/>;  
12 -#Creation Date : <xsl:value-of select="created"/>;  
13 -#<xsl:text>&#10;</xsl:text>  
14 - <xsl:for-each select="intervals">  
15 - <xsl:value-of select="start"/><xsl:text> </xsl:text><xsl:value-of select="stop"/>  
16 - <xsl:text>&#10;</xsl:text>  
17 - </xsl:for-each>  
18 -</xsl:template>  
19 -</xsl:stylesheet>  
php/XML/xml2vot.xsl deleted
@@ -1,40 +0,0 @@ @@ -1,40 +0,0 @@
1 -<xsl:stylesheet version="1.0"  
2 -xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
3 -  
4 -<xsl:output method="xml"/>  
5 -  
6 -<xsl:template match="/timetable">  
7 - <VOTABLE version='1.1'>  
8 - <DESCRIPTION>  
9 - Time Table generated by AMDA @ CDPP;  
10 - Name: <xsl:value-of select="name"/>;  
11 - Description: <xsl:value-of select="description"/>;  
12 - Historic: <xsl:value-of select="history"/>;  
13 - Creation Date : <xsl:value-of select="created"/>;  
14 - </DESCRIPTION>  
15 -<RESOURCE>  
16 -<DESCRIPTION>  
17 - AMDA @ CDPP  
18 -</DESCRIPTION>  
19 -<TABLE>  
20 -<FIELD datatype='char' name='Start Time' ID='TimeIntervalStart' ucd='time.start'>  
21 - <DESCRIPTION>time tag for beginning of interval</DESCRIPTION>  
22 -</FIELD>  
23 -<FIELD datatype='char' name='Stop Time' ID='TimeIntervalStop' ucd='time.stop'>  
24 - <DESCRIPTION>time tag for end of interval</DESCRIPTION>  
25 -</FIELD>  
26 -<DATA>  
27 - <TABLEDATA>  
28 - <xsl:for-each select="intervals">  
29 - <TR>  
30 - <TD><xsl:value-of select="start"/></TD>  
31 - <TD><xsl:value-of select="stop"/></TD>  
32 - </TR>  
33 - </xsl:for-each>  
34 - </TABLEDATA>  
35 - </DATA>  
36 - </TABLE>  
37 - </RESOURCE>  
38 - </VOTABLE>  
39 -</xsl:template>  
40 -</xsl:stylesheet>  
php/arguments.php deleted
@@ -1,345 +0,0 @@ @@ -1,345 +0,0 @@
1 -<?php  
2 -/**  
3 - * arguments.php  
4 - *  
5 - * @version $Id: arguments.php 2681 2014-11-28 17:08:06Z elena $  
6 - */  
7 -  
8 -/*  
9 - * info for spectra energies  
10 - *  
11 - */  
12 -  
13 -function getInfo($dataSet, $infoName)  
14 -{  
15 - $amda = new AmdaClient();  
16 - $info = $amda->getInfo($dataSet, $infoName);  
17 -  
18 - return explode(";",$info);  
19 -}  
20 -  
21 -/*  
22 - * special plotting arguments  
23 - *  
24 - */  
25 -function addPlottingSettings($option) {  
26 -  
27 - $argsXML = new DomDocument('1.0');  
28 - $argsXML->load(SettingsXML);  
29 - $xPath = new domxpath($argsXML);  
30 -  
31 - if ($option)  
32 - $plotGroups = array($option);  
33 - else  
34 - $plotGroups = array('Color', 'Symbol', 'Scale');  
35 -  
36 - foreach ($plotGroups as $plotGroup) {  
37 - $group = $xPath->query("//group[@name='".$plotGroup."']");  
38 - $groupChildren = $group->item(0)->getElementsByTagName('value');  
39 - $args = array();  
40 - $number = 0;  
41 - foreach ($groupChildren as $groupChild) {  
42 - if ($plotGroup == "Symbol") $args[] = array("arg" => $number, "value" => $groupChild->nodeValue);  
43 - else $args[] = array("arg" => $groupChild->nodeValue, "value" => $groupChild->nodeValue);  
44 - $number++;  
45 - }  
46 - $grp[] = array("groupS" => $plotGroup, "args" => $args);  
47 - }  
48 -  
49 - return $grp;  
50 -}  
51 -  
52 -  
53 -require_once 'config.php';  
54 -  
55 -define('USERWSDIR', USERPATH."/".$_GET['sessionID']."/WS/");  
56 -  
57 -$RefFrame = array("GSE", "GSM", "SM");  
58 -$OrbitPresentation = array("LINE", "TICKS", "CYL");  
59 -  
60 -$paramID = $_GET['paramID'];  
61 -$isPlot = $_GET['application'] == 'plot' ? true : false;  
62 -  
63 -// convert user WS  
64 - if (!$paramID) {  
65 - $paramID = $argv[1];  
66 - $isPlot = true;  
67 - }  
68 -  
69 - // to correct 'restricted' parameters  
70 - if (strpos($paramID, restricted) !== false) {  
71 - $paramID = str_replace(restricted,"",$paramID);  
72 - }  
73 -// define('ArgumentsXML', Param.'Args/paramArguments.xml');  
74 -define('SettingsXML', Param.'Args/paramPlotSettings.xml');  
75 -  
76 -$noargs = array('success' => false);  
77 -  
78 -// this is WS param => plot settings  
79 -if (strncmp(strtolower($paramID), 'ws_', 3) == 0) {  
80 - $grp = addPlottingSettings();  
81 - exit(json_encode($grp));  
82 -}  
83 -// this is WSD param => plot settings if SIZE = 1  
84 -if (strncmp(strtolower($paramID), 'wsd_', 4) == 0) {  
85 - $infoMgr = new ParamsInfoMgr();  
86 - $info = $infoMgr->GetParamInfo($paramID);  
87 -  
88 - if (!$info || $info['success'] == false)  
89 - exit(json_encode($noargs));  
90 -  
91 - if ($info['infos']['size'] == 1) {  
92 - $grp = addPlottingSettings();  
93 - exit(json_encode($grp));  
94 - }  
95 - exit(json_encode($noargs));  
96 -}  
97 -// this is SIMU param => make param  
98 -if ((strncmp(strtolower($paramID), "impex___", 8) == 0 )||(strncmp(strtolower($paramID), "spase___", 8) == 0 )) {  
99 - if ((strncmp(strtolower($paramID), "impex___lesia_", 14) == 0 )||(strncmp(strtolower($paramID), "spase___IMPEX_NumericalOutput_lesia_", 36) == 0 )) {}  
100 - else {  
101 - $mySimuArgsMgr = new SimuArgsMgr();  
102 - $mySimuArgsMgr->init($paramID);  
103 - $grp = $mySimuArgsMgr->makeSimuArgs();  
104 - if ($grp)  
105 - exit(json_encode($grp));  
106 - else exit();  
107 - }  
108 -}  
109 -  
110 -// themis_cesr  
111 -$objToTest = str_replace("_", " ", $paramID);  
112 -if (sscanf($objToTest, "th%s pe%s %s", $X, $mode, $property) == 3){  
113 - switch ($property) {  
114 - case "n" : $grp = addPlottingSettings();  
115 - exit(json_encode($grp));  
116 - case "v" : foreach ($RefFrame as $frame) $frame_args[] = array("arg" => $frame);  
117 - $grp[] = array("group" => "RefFrame", "args" => $frame_args);  
118 - exit(json_encode($grp));  
119 - case "t" :$grp = addPlottingSettings();  
120 - exit(json_encode($grp));  
121 - case "sp" : $grp = addPlottingSettings();  
122 - $args[] = array("arg" => "spectrogram");  
123 - for ($i = 0; $i < 32; $i++) {  
124 - $args[] = array("arg" => $i+1, "value" => $i+1);  
125 - }  
126 - $grp[] = array("group" => "Channel", "args" => $args);  
127 - exit(json_encode($grp));  
128 - }  
129 -}  
130 -  
131 -// Remote Data  
132 -//TODO add method of paramInfoMgr class  
133 - $nameXml = RemoteData."PARAMS/".$paramID.".xml";  
134 - $isRemote = file_exists($nameXml);  
135 - if ($isRemote) {  
136 - $infoDom = new DomDocument("1.0");  
137 - if (!$infoDom->load($nameXml))  
138 - exit();  
139 - $size = $infoDom->getElementsByTagName('DIMENSION')->item(0)->nodeValue;  
140 - if ($size == 1) {  
141 - $grp = addPlottingSettings();  
142 - exit(json_encode($grp));  
143 - }  
144 -  
145 - $dispay_type = $infoDom->getElementsByTagName('DISPLAY_TYPE')->item(0)->nodeValue;  
146 -  
147 - exit();  
148 - }  
149 -  
150 -  
151 -$infoMgr = new ParamsInfoMgr();  
152 -$info = $infoMgr->GetParamInfo($paramID);  
153 -  
154 -if (sscanf($paramID,"%[^'('](%d:%d)",$par,$cstart,$cstop) == 3)  
155 -{  
156 - $isComponent = false;  
157 -}  
158 -else if (sscanf($paramID,"%[^'('](%d)",$par,$cstart) == 2)  
159 -{  
160 - $isComponent = true;  
161 -}  
162 -else {  
163 - $par = $paramID;  
164 - $isComponent = false;  
165 -}  
166 -  
167 -if (!$info['success'] && $isComponent) {  
168 - // component  
169 - $size = 1;  
170 -}  
171 -else {  
172 - $codeinfo = $info['codeinfos'];  
173 - $ddinfo = $info['ddinfos'];  
174 - $size = $codeinfo ? $codeinfo['size'] : $ddinfo['parameter']['size'];  
175 - $display_type = $ddinfo['parameter']['display_type'];  
176 - $validmin = $codeinfo ? $codeinfo['validmin'] : -1;  
177 -}  
178 -  
179 -switch ($size) {  
180 - // scalar - so color + symbol for all  
181 - case 1 :  
182 - $grp = addPlottingSettings();  
183 - break;  
184 - case 3 :  
185 - // component  
186 - if ($isComponent) $grp = addPlottingSettings();  
187 - if ($validmin === "0") $grp = addPlottingSettings('Scale');  
188 -  
189 - if ($codeinfo && $codeinfo['frame'] && strtolower($codeinfo['frame']) == 'gse') {  
190 - foreach ($RefFrame as $frame) $frame_args[] = array("arg" => $frame);  
191 - $grp[] = array("group" => "RefFrame", "args" => $frame_args);  
192 - }  
193 -  
194 - if ($codeinfo && $codeinfo['plottype'] && strtolower($codeinfo['plottype']) == 'orbit' && !$isComponent) {  
195 - foreach ($OrbitPresentation as $frame) $type_args[] = array("arg" => $frame);  
196 - $grp[] = array("group" => "OrbitPresentation", "args" => $type_args);  
197 - }  
198 -  
199 - if ($ddinfo && $ddinfo['parameter']['display_type'] && $ddinfo['parameter']['display_type'] == 'orbit' && !$isComponent) {  
200 - foreach ($OrbitPresentation as $frame) $type_args[] = array("arg" => $frame);  
201 - $grp[] = array("group" => "OrbitPresentation", "args" => $type_args);  
202 - }  
203 -  
204 - break;  
205 -  
206 - default:  
207 - if ($display_type == 'spectrogram' || $display_type == 'stack_plot') {  
208 - if ($isPlot) $args[] = array("arg" => $display_type);  
209 -  
210 - // error_log( $ddinfo['dataset']['id']." ".$codeinfo['energychannel'].PHP_EOL,1, email);  
211 - $info = getInfo($ddinfo['dataset']['id'],$codeinfo['energychannel']);  
212 - $args_bckgrd[] = array("arg" => "0", "value" => "none");  
213 - for ($i = 0; $i < $size; $i++) {  
214 - $args[] = array("arg" => strval($i+1), "value" => $info[$i]);  
215 - $args_bckgrd[] = array("arg" => strval($i+1), "value" => $info[$i]);  
216 - }  
217 - // automatic generated args - simple case  
218 - if ($isPlot) $grp = addPlottingSettings();  
219 - $grp[] = array("group" => "Channel", "args" => $args);  
220 -  
221 - if ($display_type == 'spectrogram' && $isPlot)  
222 - {  
223 - $grp[] = array("group" => "backgrdChan", "args" => $args_bckgrd);  
224 - $grp[] = array("group" => "backgrdVal", "args" => array("value" => "0"));  
225 - $grp[] = array("group" => "minCount", "args" => array("value" => "0"));  
226 - $grp[] = array("group" => "maxCount", "args" => array("value" => "0"));  
227 - }  
228 - }  
229 -  
230 -}  
231 -  
232 -  
233 -$paramArgsFile = Param.'Args/'.$par.'.xml';  
234 -if (!file_exists($paramArgsFile)) exit(json_encode($grp));  
235 -  
236 -  
237 -$grp = array();  
238 -  
239 -// specific parameter settings if exists  
240 -  
241 -$paramXML = new DomDocument('1.0');  
242 -  
243 -$paramXML->load($paramArgsFile);  
244 -// arguments  
245 -$specialArgs = $paramXML->getElementsByTagName('specialArgs');  
246 -$paramArgs = $paramXML->getElementsByTagName('args');  
247 -  
248 -if ($specialArgs->length > 0) {  
249 - //spectra => tables  
250 - $specialGroups = $specialArgs->item(0)->getElementsByTagName('group');  
251 -  
252 - if ($specialGroups->length > 0) {  
253 -  
254 - foreach ($specialGroups as $spGroup) {  
255 -  
256 - $group = $spGroup->getAttribute('name');  
257 - if (!$isPlot && $group == 'anode' && $specialGroups->length > 1)  
258 - continue;  
259 - $groupType = $spGroup->getAttribute('type');  
260 - $units = $spGroup->getAttribute('units');  
261 -  
262 - if ($groupType != 'multi') {  
263 - $argMax = $spGroup->getAttribute('number');  
264 - $argAll = $spGroup->getElementsByTagName('value');  
265 -  
266 - $args = array();  
267 -  
268 - if ($argAll->length > 0) {  
269 - if ($group == 'anode') $args[] = array("arg" => 'all', "value" => "all");  
270 -  
271 - for ($i = 0; $i < $argAll->length; $i++) {  
272 - $args[] = array("arg" => $i+1, "value" => $argAll->item($i)->nodeValue);  
273 - }  
274 - }  
275 - // create manually  
276 - else {  
277 - if ($group == 'anode') $args[] = array("arg" => 'all');  
278 - for ($i = 0; $i < $argMax; $i++) {  
279 - $args[] = array("arg" => $i+1);  
280 - }  
281 - }  
282 - // energy or angle (3D)  
283 - $groupType = $group == "energy" ? "groupE" : "group";  
284 - $grp[] = array($groupType => $group, "units" => $units, "args" => $args);  
285 - }  
286 - //variable time table  
287 - else {  
288 - $args = array();  
289 -  
290 - $args[] = array("arg" => 'energyMin', "value" => $spGroup->getAttribute('emin'));  
291 - $args[] = array("arg" => 'energyMax', "value" => $spGroup->getAttribute('emax'));  
292 -  
293 - $grp[] = array("groupEmulti" => $group, "units" => $units, "args" => $args);  
294 - }  
295 - }  
296 -  
297 - }  
298 -}  
299 -  
300 -if ($paramArgs->length > 0) {  
301 - // special args  
302 - $argSpecial = $paramArgs->item(0)->getElementsByTagName('group');  
303 -  
304 - if ($argSpecial->length > 0) {  
305 - foreach ($argSpecial as $group) {  
306 - if (!$isPlot && $group->getAttribute('name') == 'elevationAsTime') continue;  
307 - $args = array();  
308 - $groupChildren = $group->getElementsByTagName('value');  
309 - if ($groupChildren->length > 0) {  
310 - $hasArgs = $group->getAttribute('args');  
311 - $num = 0;  
312 - $N_args = $groupChildren->length;  
313 - foreach ($groupChildren as $child) {  
314 - $num++;  
315 - if ($hasArgs) {  
316 - if ($hasArgs != 'reverse') {  
317 - $argValue = $child->nodeValue;  
318 - if (!$isPlot && $argValue == 'spectrogram') $argValue = 'all';  
319 - $args[] = array("arg" => $num, "value" => $argValue);  
320 - }  
321 - else {  
322 - $args[] = array("arg" => $N_args - $num, "value" => $child->nodeValue);  
323 - }  
324 - }  
325 - else {  
326 - $args[] = array("arg" => $child->nodeValue, "value" => $child->nodeValue);  
327 - }  
328 - }  
329 - } // create manually  
330 - else {  
331 - $args[] = array("arg" => "all");  
332 - $argMax = $group->getAttribute('number');  
333 - for ($i = 0; $i < $argMax; $i++) {  
334 - $args[] = array("arg" => $i+1);  
335 - }  
336 - }  
337 - $grp[] = array("group" => $group->getAttribute('name'), "units" => $group->getAttribute('units'), "args" => $args);  
338 - }  
339 - }  
340 -  
341 - }  
342 -  
343 - exit(json_encode($grp));  
344 -  
345 -?>  
346 \ No newline at end of file 0 \ No newline at end of file
php/firephp/FirePHP.class.php deleted
@@ -1,1784 +0,0 @@ @@ -1,1784 +0,0 @@
1 -<?php  
2 -/**  
3 - * *** BEGIN LICENSE BLOCK *****  
4 - *  
5 - * This file is part of FirePHP (http://www.firephp.org/).  
6 - *  
7 - * Software License Agreement (New BSD License)  
8 - *  
9 - * Copyright (c) 2006-2010, Christoph Dorn  
10 - * All rights reserved.  
11 - *  
12 - * Redistribution and use in source and binary forms, with or without modification,  
13 - * are permitted provided that the following conditions are met:  
14 - *  
15 - * * Redistributions of source code must retain the above copyright notice,  
16 - * this list of conditions and the following disclaimer.  
17 - *  
18 - * * Redistributions in binary form must reproduce the above copyright notice,  
19 - * this list of conditions and the following disclaimer in the documentation  
20 - * and/or other materials provided with the distribution.  
21 - *  
22 - * * Neither the name of Christoph Dorn nor the names of its  
23 - * contributors may be used to endorse or promote products derived from this  
24 - * software without specific prior written permission.  
25 - *  
26 - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND  
27 - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED  
28 - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE  
29 - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR  
30 - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES  
31 - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  
32 - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON  
33 - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT  
34 - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS  
35 - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
36 - *  
37 - * ***** END LICENSE BLOCK *****  
38 - *  
39 - * @copyright Copyright (C) 2007-2009 Christoph Dorn  
40 - * @author Christoph Dorn <christoph@christophdorn.com>  
41 - * @license http://www.opensource.org/licenses/bsd-license.php  
42 - * @package FirePHPCore  
43 - */  
44 -  
45 -/**  
46 - * @see http://code.google.com/p/firephp/issues/detail?id=112  
47 - */  
48 -if (!defined('E_STRICT')) {  
49 - define('E_STRICT', 2048);  
50 -}  
51 -if (!defined('E_RECOVERABLE_ERROR')) {  
52 - define('E_RECOVERABLE_ERROR', 4096);  
53 -}  
54 -if (!defined('E_DEPRECATED')) {  
55 - define('E_DEPRECATED', 8192);  
56 -}  
57 -if (!defined('E_USER_DEPRECATED')) {  
58 - define('E_USER_DEPRECATED', 16384);  
59 -}  
60 -  
61 -/**  
62 - * Sends the given data to the FirePHP Firefox Extension.  
63 - * The data can be displayed in the Firebug Console or in the  
64 - * "Server" request tab.  
65 - *  
66 - * For more information see: http://www.firephp.org/  
67 - *  
68 - * @copyright Copyright (C) 2007-2009 Christoph Dorn  
69 - * @author Christoph Dorn <christoph@christophdorn.com>  
70 - * @license http://www.opensource.org/licenses/bsd-license.php  
71 - * @package FirePHPCore  
72 - */  
73 -class FirePHP {  
74 -  
75 - /**  
76 - * FirePHP version  
77 - *  
78 - * @var string  
79 - */  
80 - const VERSION = '0.3'; // @pinf replace '0.3' with '%%package.version%%'  
81 -  
82 - /**  
83 - * Firebug LOG level  
84 - *  
85 - * Logs a message to firebug console.  
86 - *  
87 - * @var string  
88 - */  
89 - const LOG = 'LOG';  
90 -  
91 - /**  
92 - * Firebug INFO level  
93 - *  
94 - * Logs a message to firebug console and displays an info icon before the message.  
95 - *  
96 - * @var string  
97 - */  
98 - const INFO = 'INFO';  
99 -  
100 - /**  
101 - * Firebug WARN level  
102 - *  
103 - * Logs a message to firebug console, displays an warning icon before the message and colors the line turquoise.  
104 - *  
105 - * @var string  
106 - */  
107 - const WARN = 'WARN';  
108 -  
109 - /**  
110 - * Firebug ERROR level  
111 - *  
112 - * Logs a message to firebug console, displays an error icon before the message and colors the line yellow. Also increments the firebug error count.  
113 - *  
114 - * @var string  
115 - */  
116 - const ERROR = 'ERROR';  
117 -  
118 - /**  
119 - * Dumps a variable to firebug's server panel  
120 - *  
121 - * @var string  
122 - */  
123 - const DUMP = 'DUMP';  
124 -  
125 - /**  
126 - * Displays a stack trace in firebug console  
127 - *  
128 - * @var string  
129 - */  
130 - const TRACE = 'TRACE';  
131 -  
132 - /**  
133 - * Displays an exception in firebug console  
134 - *  
135 - * Increments the firebug error count.  
136 - *  
137 - * @var string  
138 - */  
139 - const EXCEPTION = 'EXCEPTION';  
140 -  
141 - /**  
142 - * Displays an table in firebug console  
143 - *  
144 - * @var string  
145 - */  
146 - const TABLE = 'TABLE';  
147 -  
148 - /**  
149 - * Starts a group in firebug console  
150 - *  
151 - * @var string  
152 - */  
153 - const GROUP_START = 'GROUP_START';  
154 -  
155 - /**  
156 - * Ends a group in firebug console  
157 - *  
158 - * @var string  
159 - */  
160 - const GROUP_END = 'GROUP_END';  
161 -  
162 - /**  
163 - * Singleton instance of FirePHP  
164 - *  
165 - * @var FirePHP  
166 - */  
167 - protected static $instance = null;  
168 -  
169 - /**  
170 - * Flag whether we are logging from within the exception handler  
171 - *  
172 - * @var boolean  
173 - */  
174 - protected $inExceptionHandler = false;  
175 -  
176 - /**  
177 - * Flag whether to throw PHP errors that have been converted to ErrorExceptions  
178 - *  
179 - * @var boolean  
180 - */  
181 - protected $throwErrorExceptions = true;  
182 -  
183 - /**  
184 - * Flag whether to convert PHP assertion errors to Exceptions  
185 - *  
186 - * @var boolean  
187 - */  
188 - protected $convertAssertionErrorsToExceptions = true;  
189 -  
190 - /**  
191 - * Flag whether to throw PHP assertion errors that have been converted to Exceptions  
192 - *  
193 - * @var boolean  
194 - */  
195 - protected $throwAssertionExceptions = false;  
196 -  
197 - /**  
198 - * Wildfire protocol message index  
199 - *  
200 - * @var int  
201 - */  
202 - protected $messageIndex = 1;  
203 -  
204 - /**  
205 - * Options for the library  
206 - *  
207 - * @var array  
208 - */  
209 - protected $options = array('maxDepth' => 10,  
210 - 'maxObjectDepth' => 5,  
211 - 'maxArrayDepth' => 5,  
212 - 'useNativeJsonEncode' => true,  
213 - 'includeLineNumbers' => true);  
214 -  
215 - /**  
216 - * Filters used to exclude object members when encoding  
217 - *  
218 - * @var array  
219 - */  
220 - protected $objectFilters = array(  
221 - 'firephp' => array('objectStack', 'instance', 'json_objectStack'),  
222 - 'firephp_test_class' => array('objectStack', 'instance', 'json_objectStack')  
223 - );  
224 -  
225 - /**  
226 - * A stack of objects used to detect recursion during object encoding  
227 - *  
228 - * @var object  
229 - */  
230 - protected $objectStack = array();  
231 -  
232 - /**  
233 - * Flag to enable/disable logging  
234 - *  
235 - * @var boolean  
236 - */  
237 - protected $enabled = true;  
238 -  
239 - /**  
240 - * The insight console to log to if applicable  
241 - *  
242 - * @var object  
243 - */  
244 - protected $logToInsightConsole = null;  
245 -  
246 - /**  
247 - * When the object gets serialized only include specific object members.  
248 - *  
249 - * @return array  
250 - */  
251 - public function __sleep()  
252 - {  
253 - return array('options','objectFilters','enabled');  
254 - }  
255 -  
256 - /**  
257 - * Gets singleton instance of FirePHP  
258 - *  
259 - * @param boolean $AutoCreate  
260 - * @return FirePHP  
261 - */  
262 - public static function getInstance($AutoCreate = false)  
263 - {  
264 - if ($AutoCreate===true && !self::$instance) {  
265 - self::init();  
266 - }  
267 - return self::$instance;  
268 - }  
269 -  
270 - /**  
271 - * Creates FirePHP object and stores it for singleton access  
272 - *  
273 - * @return FirePHP  
274 - */  
275 - public static function init()  
276 - {  
277 - return self::setInstance(new self());  
278 - }  
279 -  
280 - /**  
281 - * Set the instance of the FirePHP singleton  
282 - *  
283 - * @param FirePHP $instance The FirePHP object instance  
284 - * @return FirePHP  
285 - */  
286 - public static function setInstance($instance)  
287 - {  
288 - return self::$instance = $instance;  
289 - }  
290 -  
291 - /**  
292 - * Set an Insight console to direct all logging calls to  
293 - *  
294 - * @param object $console The console object to log to  
295 - * @return void  
296 - */  
297 - public function setLogToInsightConsole($console)  
298 - {  
299 - if(is_string($console)) {  
300 - if(get_class($this)!='FirePHP_Insight' && !is_subclass_of($this, 'FirePHP_Insight')) {  
301 - throw new Exception('FirePHP instance not an instance or subclass of FirePHP_Insight!');  
302 - }  
303 - $this->logToInsightConsole = $this->to('request')->console($console);  
304 - } else {  
305 - $this->logToInsightConsole = $console;  
306 - }  
307 - }  
308 -  
309 - /**  
310 - * Enable and disable logging to Firebug  
311 - *  
312 - * @param boolean $Enabled TRUE to enable, FALSE to disable  
313 - * @return void  
314 - */  
315 - public function setEnabled($Enabled)  
316 - {  
317 - $this->enabled = $Enabled;  
318 - }  
319 -  
320 - /**  
321 - * Check if logging is enabled  
322 - *  
323 - * @return boolean TRUE if enabled  
324 - */  
325 - public function getEnabled()  
326 - {  
327 - return $this->enabled;  
328 - }  
329 -  
330 - /**  
331 - * Specify a filter to be used when encoding an object  
332 - *  
333 - * Filters are used to exclude object members.  
334 - *  
335 - * @param string $Class The class name of the object  
336 - * @param array $Filter An array of members to exclude  
337 - * @return void  
338 - */  
339 - public function setObjectFilter($Class, $Filter)  
340 - {  
341 - $this->objectFilters[strtolower($Class)] = $Filter;  
342 - }  
343 -  
344 - /**  
345 - * Set some options for the library  
346 - *  
347 - * Options:  
348 - * - maxDepth: The maximum depth to traverse (default: 10)  
349 - * - maxObjectDepth: The maximum depth to traverse objects (default: 5)  
350 - * - maxArrayDepth: The maximum depth to traverse arrays (default: 5)  
351 - * - useNativeJsonEncode: If true will use json_encode() (default: true)  
352 - * - includeLineNumbers: If true will include line numbers and filenames (default: true)  
353 - *  
354 - * @param array $Options The options to be set  
355 - * @return void  
356 - */  
357 - public function setOptions($Options)  
358 - {  
359 - $this->options = array_merge($this->options,$Options);  
360 - }  
361 -  
362 - /**  
363 - * Get options from the library  
364 - *  
365 - * @return array The currently set options  
366 - */  
367 - public function getOptions()  
368 - {  
369 - return $this->options;  
370 - }  
371 -  
372 - /**  
373 - * Set an option for the library  
374 - *  
375 - * @param string $Name  
376 - * @param mixed $Value  
377 - * @throws Exception  
378 - * @return void  
379 - */  
380 - public function setOption($Name, $Value)  
381 - {  
382 - if (!isset($this->options[$Name])) {  
383 - throw $this->newException('Unknown option: ' . $Name);  
384 - }  
385 - $this->options[$Name] = $Value;  
386 - }  
387 -  
388 - /**  
389 - * Get an option from the library  
390 - *  
391 - * @param string $Name  
392 - * @throws Exception  
393 - * @return mixed  
394 - */  
395 - public function getOption($Name)  
396 - {  
397 - if (!isset($this->options[$Name])) {  
398 - throw $this->newException('Unknown option: ' . $Name);  
399 - }  
400 - return $this->options[$Name];  
401 - }  
402 -  
403 - /**  
404 - * Register FirePHP as your error handler  
405 - *  
406 - * Will throw exceptions for each php error.  
407 - *  
408 - * @return mixed Returns a string containing the previously defined error handler (if any)  
409 - */  
410 - public function registerErrorHandler($throwErrorExceptions = false)  
411 - {  
412 - //NOTE: The following errors will not be caught by this error handler:  
413 - // E_ERROR, E_PARSE, E_CORE_ERROR,  
414 - // E_CORE_WARNING, E_COMPILE_ERROR,  
415 - // E_COMPILE_WARNING, E_STRICT  
416 -  
417 - $this->throwErrorExceptions = $throwErrorExceptions;  
418 -  
419 - return set_error_handler(array($this,'errorHandler'));  
420 - }  
421 -  
422 - /**  
423 - * FirePHP's error handler  
424 - *  
425 - * Throws exception for each php error that will occur.  
426 - *  
427 - * @param int $errno  
428 - * @param string $errstr  
429 - * @param string $errfile  
430 - * @param int $errline  
431 - * @param array $errcontext  
432 - */  
433 - public function errorHandler($errno, $errstr, $errfile, $errline, $errcontext)  
434 - {  
435 - // Don't throw exception if error reporting is switched off  
436 - if (error_reporting() == 0) {  
437 - return;  
438 - }  
439 - // Only throw exceptions for errors we are asking for  
440 - if (error_reporting() & $errno) {  
441 -  
442 - $exception = new ErrorException($errstr, 0, $errno, $errfile, $errline);  
443 - if ($this->throwErrorExceptions) {  
444 - throw $exception;  
445 - } else {  
446 - $this->fb($exception);  
447 - }  
448 - }  
449 - }  
450 -  
451 - /**  
452 - * Register FirePHP as your exception handler  
453 - *  
454 - * @return mixed Returns the name of the previously defined exception handler,  
455 - * or NULL on error.  
456 - * If no previous handler was defined, NULL is also returned.  
457 - */  
458 - public function registerExceptionHandler()  
459 - {  
460 - return set_exception_handler(array($this,'exceptionHandler'));  
461 - }  
462 -  
463 - /**  
464 - * FirePHP's exception handler  
465 - *  
466 - * Logs all exceptions to your firebug console and then stops the script.  
467 - *  
468 - * @param Exception $Exception  
469 - * @throws Exception  
470 - */  
471 - function exceptionHandler($Exception)  
472 - {  
473 -  
474 - $this->inExceptionHandler = true;  
475 -  
476 - header('HTTP/1.1 500 Internal Server Error');  
477 -  
478 - try {  
479 - $this->fb($Exception);  
480 - } catch (Exception $e) {  
481 - echo 'We had an exception: ' . $e;  
482 - }  
483 - $this->inExceptionHandler = false;  
484 - }  
485 -  
486 - /**  
487 - * Register FirePHP driver as your assert callback  
488 - *  
489 - * @param boolean $convertAssertionErrorsToExceptions  
490 - * @param boolean $throwAssertionExceptions  
491 - * @return mixed Returns the original setting or FALSE on errors  
492 - */  
493 - public function registerAssertionHandler($convertAssertionErrorsToExceptions = true, $throwAssertionExceptions = false)  
494 - {  
495 - $this->convertAssertionErrorsToExceptions = $convertAssertionErrorsToExceptions;  
496 - $this->throwAssertionExceptions = $throwAssertionExceptions;  
497 -  
498 - if ($throwAssertionExceptions && !$convertAssertionErrorsToExceptions) {  
499 - throw $this->newException('Cannot throw assertion exceptions as assertion errors are not being converted to exceptions!');  
500 - }  
501 -  
502 - return assert_options(ASSERT_CALLBACK, array($this, 'assertionHandler'));  
503 - }  
504 -  
505 - /**  
506 - * FirePHP's assertion handler  
507 - *  
508 - * Logs all assertions to your firebug console and then stops the script.  
509 - *  
510 - * @param string $file File source of assertion  
511 - * @param int $line Line source of assertion  
512 - * @param mixed $code Assertion code  
513 - */  
514 - public function assertionHandler($file, $line, $code)  
515 - {  
516 - if ($this->convertAssertionErrorsToExceptions) {  
517 -  
518 - $exception = new ErrorException('Assertion Failed - Code[ '.$code.' ]', 0, null, $file, $line);  
519 -  
520 - if ($this->throwAssertionExceptions) {  
521 - throw $exception;  
522 - } else {  
523 - $this->fb($exception);  
524 - }  
525 -  
526 - } else {  
527 - $this->fb($code, 'Assertion Failed', FirePHP::ERROR, array('File'=>$file,'Line'=>$line));  
528 - }  
529 - }  
530 -  
531 - /**  
532 - * Start a group for following messages.  
533 - *  
534 - * Options:  
535 - * Collapsed: [true|false]  
536 - * Color: [#RRGGBB|ColorName]  
537 - *  
538 - * @param string $Name  
539 - * @param array $Options OPTIONAL Instructions on how to log the group  
540 - * @return true  
541 - * @throws Exception  
542 - */  
543 - public function group($Name, $Options = null)  
544 - {  
545 -  
546 - if (!$Name) {  
547 - throw $this->newException('You must specify a label for the group!');  
548 - }  
549 -  
550 - if ($Options) {  
551 - if (!is_array($Options)) {  
552 - throw $this->newException('Options must be defined as an array!');  
553 - }  
554 - if (array_key_exists('Collapsed', $Options)) {  
555 - $Options['Collapsed'] = ($Options['Collapsed'])?'true':'false';  
556 - }  
557 - }  
558 -  
559 - return $this->fb(null, $Name, FirePHP::GROUP_START, $Options);  
560 - }  
561 -  
562 - /**  
563 - * Ends a group you have started before  
564 - *  
565 - * @return true  
566 - * @throws Exception  
567 - */  
568 - public function groupEnd()  
569 - {  
570 - return $this->fb(null, null, FirePHP::GROUP_END);  
571 - }  
572 -  
573 - /**  
574 - * Log object with label to firebug console  
575 - *  
576 - * @see FirePHP::LOG  
577 - * @param mixes $Object  
578 - * @param string $Label  
579 - * @return true  
580 - * @throws Exception  
581 - */  
582 - public function log($Object, $Label = null, $Options = array())  
583 - {  
584 - return $this->fb($Object, $Label, FirePHP::LOG, $Options);  
585 - }  
586 -  
587 - /**  
588 - * Log object with label to firebug console  
589 - *  
590 - * @see FirePHP::INFO  
591 - * @param mixes $Object  
592 - * @param string $Label  
593 - * @return true  
594 - * @throws Exception  
595 - */  
596 - public function info($Object, $Label = null, $Options = array())  
597 - {  
598 - return $this->fb($Object, $Label, FirePHP::INFO, $Options);  
599 - }  
600 -  
601 - /**  
602 - * Log object with label to firebug console  
603 - *  
604 - * @see FirePHP::WARN  
605 - * @param mixes $Object  
606 - * @param string $Label  
607 - * @return true  
608 - * @throws Exception  
609 - */  
610 - public function warn($Object, $Label = null, $Options = array())  
611 - {  
612 - return $this->fb($Object, $Label, FirePHP::WARN, $Options);  
613 - }  
614 -  
615 - /**  
616 - * Log object with label to firebug console  
617 - *  
618 - * @see FirePHP::ERROR  
619 - * @param mixes $Object  
620 - * @param string $Label  
621 - * @return true  
622 - * @throws Exception  
623 - */  
624 - public function error($Object, $Label = null, $Options = array())  
625 - {  
626 - return $this->fb($Object, $Label, FirePHP::ERROR, $Options);  
627 - }  
628 -  
629 - /**  
630 - * Dumps key and variable to firebug server panel  
631 - *  
632 - * @see FirePHP::DUMP  
633 - * @param string $Key  
634 - * @param mixed $Variable  
635 - * @return true  
636 - * @throws Exception  
637 - */  
638 - public function dump($Key, $Variable, $Options = array())  
639 - {  
640 - if (!is_string($Key)) {  
641 - throw $this->newException('Key passed to dump() is not a string');  
642 - }  
643 - if (strlen($Key)>100) {  
644 - throw $this->newException('Key passed to dump() is longer than 100 characters');  
645 - }  
646 - if (!preg_match_all('/^[a-zA-Z0-9-_\.:]*$/', $Key, $m)) {  
647 - throw $this->newException('Key passed to dump() contains invalid characters [a-zA-Z0-9-_\.:]');  
648 - }  
649 - return $this->fb($Variable, $Key, FirePHP::DUMP, $Options);  
650 - }  
651 -  
652 - /**  
653 - * Log a trace in the firebug console  
654 - *  
655 - * @see FirePHP::TRACE  
656 - * @param string $Label  
657 - * @return true  
658 - * @throws Exception  
659 - */  
660 - public function trace($Label)  
661 - {  
662 - return $this->fb($Label, FirePHP::TRACE);  
663 - }  
664 -  
665 - /**  
666 - * Log a table in the firebug console  
667 - *  
668 - * @see FirePHP::TABLE  
669 - * @param string $Label  
670 - * @param string $Table  
671 - * @return true  
672 - * @throws Exception  
673 - */  
674 - public function table($Label, $Table, $Options = array())  
675 - {  
676 - return $this->fb($Table, $Label, FirePHP::TABLE, $Options);  
677 - }  
678 -  
679 - /**  
680 - * Insight API wrapper  
681 - *  
682 - * @see Insight_Helper::to()  
683 - */  
684 - public static function to()  
685 - {  
686 - $instance = self::getInstance();  
687 - if (!method_exists($instance, "_to")) {  
688 - throw new Exception("FirePHP::to() implementation not loaded");  
689 - }  
690 - $args = func_get_args();  
691 - return call_user_func_array(array($instance, '_to'), $args);  
692 - }  
693 -  
694 - /**  
695 - * Insight API wrapper  
696 - *  
697 - * @see Insight_Helper::plugin()  
698 - */  
699 - public static function plugin()  
700 - {  
701 - $instance = self::getInstance();  
702 - if (!method_exists($instance, "_plugin")) {  
703 - throw new Exception("FirePHP::plugin() implementation not loaded");  
704 - }  
705 - $args = func_get_args();  
706 - return call_user_func_array(array($instance, '_plugin'), $args);  
707 - }  
708 -  
709 - /**  
710 - * Check if FirePHP is installed on client  
711 - *  
712 - * @return boolean  
713 - */  
714 - public function detectClientExtension()  
715 - {  
716 - // Check if FirePHP is installed on client via User-Agent header  
717 - if (@preg_match_all('/\sFirePHP\/([\.\d]*)\s?/si',$this->getUserAgent(),$m) &&  
718 - version_compare($m[1][0],'0.0.6','>=')) {  
719 - return true;  
720 - } else  
721 - // Check if FirePHP is installed on client via X-FirePHP-Version header  
722 - if (@preg_match_all('/^([\.\d]*)$/si',$this->getRequestHeader("X-FirePHP-Version"),$m) &&  
723 - version_compare($m[1][0],'0.0.6','>=')) {  
724 - return true;  
725 - }  
726 - return false;  
727 - }  
728 -  
729 - /**  
730 - * Log varible to Firebug  
731 - *  
732 - * @see http://www.firephp.org/Wiki/Reference/Fb  
733 - * @param mixed $Object The variable to be logged  
734 - * @return true Return TRUE if message was added to headers, FALSE otherwise  
735 - * @throws Exception  
736 - */  
737 - public function fb($Object)  
738 - {  
739 - if($this instanceof FirePHP_Insight && method_exists($this, '_logUpgradeClientMessage')) {  
740 - if(!FirePHP_Insight::$upgradeClientMessageLogged) { // avoid infinite recursion as _logUpgradeClientMessage() logs a message  
741 - $this->_logUpgradeClientMessage();  
742 - }  
743 - }  
744 -  
745 - static $insightGroupStack = array();  
746 -  
747 - if (!$this->getEnabled()) {  
748 - return false;  
749 - }  
750 -  
751 - if ($this->headersSent($filename, $linenum)) {  
752 - // If we are logging from within the exception handler we cannot throw another exception  
753 - if ($this->inExceptionHandler) {  
754 - // Simply echo the error out to the page  
755 - echo '<div style="border: 2px solid red; font-family: Arial; font-size: 12px; background-color: lightgray; padding: 5px;"><span style="color: red; font-weight: bold;">FirePHP ERROR:</span> Headers already sent in <b>'.$filename.'</b> on line <b>'.$linenum.'</b>. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.</div>';  
756 - } else {  
757 - throw $this->newException('Headers already sent in '.$filename.' on line '.$linenum.'. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.');  
758 - }  
759 - }  
760 -  
761 - $Type = null;  
762 - $Label = null;  
763 - $Options = array();  
764 -  
765 - if (func_num_args()==1) {  
766 - } else  
767 - if (func_num_args()==2) {  
768 - switch(func_get_arg(1)) {  
769 - case self::LOG:  
770 - case self::INFO:  
771 - case self::WARN:  
772 - case self::ERROR:  
773 - case self::DUMP:  
774 - case self::TRACE:  
775 - case self::EXCEPTION:  
776 - case self::TABLE:  
777 - case self::GROUP_START:  
778 - case self::GROUP_END:  
779 - $Type = func_get_arg(1);  
780 - break;  
781 - default:  
782 - $Label = func_get_arg(1);  
783 - break;  
784 - }  
785 - } else  
786 - if (func_num_args()==3) {  
787 - $Type = func_get_arg(2);  
788 - $Label = func_get_arg(1);  
789 - } else  
790 - if (func_num_args()==4) {  
791 - $Type = func_get_arg(2);  
792 - $Label = func_get_arg(1);  
793 - $Options = func_get_arg(3);  
794 - } else {  
795 - throw $this->newException('Wrong number of arguments to fb() function!');  
796 - }  
797 -  
798 - if($this->logToInsightConsole!==null && (get_class($this)=='FirePHP_Insight' || is_subclass_of($this, 'FirePHP_Insight'))) {  
799 - $msg = $this->logToInsightConsole;  
800 - if ($Object instanceof Exception) {  
801 - $Type = self::EXCEPTION;  
802 - }  
803 - if($Label && $Type!=self::TABLE && $Type!=self::GROUP_START) {  
804 - $msg = $msg->label($Label);  
805 - }  
806 - switch($Type) {  
807 - case self::DUMP:  
808 - case self::LOG:  
809 - return $msg->log($Object);  
810 - case self::INFO:  
811 - return $msg->info($Object);  
812 - case self::WARN:  
813 - return $msg->warn($Object);  
814 - case self::ERROR:  
815 - return $msg->error($Object);  
816 - case self::TRACE:  
817 - return $msg->trace($Object);  
818 - case self::EXCEPTION:  
819 - return $this->plugin('engine')->handleException($Object, $msg);  
820 - case self::TABLE:  
821 - if (isset($Object[0]) && !is_string($Object[0]) && $Label) {  
822 - $Object = array($Label, $Object);  
823 - }  
824 - return $msg->table($Object[0], array_slice($Object[1],1), $Object[1][0]);  
825 - case self::GROUP_START:  
826 - $insightGroupStack[] = $msg->group(md5($Label))->open();  
827 - return $msg->log($Label);  
828 - case self::GROUP_END:  
829 - if(count($insightGroupStack)==0) {  
830 - throw new Error('Too many groupEnd() as opposed to group() calls!');  
831 - }  
832 - $group = array_pop($insightGroupStack);  
833 - return $group->close();  
834 - default:  
835 - return $msg->log($Object);  
836 - }  
837 - }  
838 -  
839 - if (!$this->detectClientExtension()) {  
840 - return false;  
841 - }  
842 -  
843 - $meta = array();  
844 - $skipFinalObjectEncode = false;  
845 -  
846 - if ($Object instanceof Exception) {  
847 -  
848 - $meta['file'] = $this->_escapeTraceFile($Object->getFile());  
849 - $meta['line'] = $Object->getLine();  
850 -  
851 - $trace = $Object->getTrace();  
852 - if ($Object instanceof ErrorException  
853 - && isset($trace[0]['function'])  
854 - && $trace[0]['function']=='errorHandler'  
855 - && isset($trace[0]['class'])  
856 - && $trace[0]['class']=='FirePHP') {  
857 -  
858 - $severity = false;  
859 - switch($Object->getSeverity()) {  
860 - case E_WARNING: $severity = 'E_WARNING'; break;  
861 - case E_NOTICE: $severity = 'E_NOTICE'; break;  
862 - case E_USER_ERROR: $severity = 'E_USER_ERROR'; break;  
863 - case E_USER_WARNING: $severity = 'E_USER_WARNING'; break;  
864 - case E_USER_NOTICE: $severity = 'E_USER_NOTICE'; break;  
865 - case E_STRICT: $severity = 'E_STRICT'; break;  
866 - case E_RECOVERABLE_ERROR: $severity = 'E_RECOVERABLE_ERROR'; break;  
867 - case E_DEPRECATED: $severity = 'E_DEPRECATED'; break;  
868 - case E_USER_DEPRECATED: $severity = 'E_USER_DEPRECATED'; break;  
869 - }  
870 -  
871 - $Object = array('Class'=>get_class($Object),  
872 - 'Message'=>$severity.': '.$Object->getMessage(),  
873 - 'File'=>$this->_escapeTraceFile($Object->getFile()),  
874 - 'Line'=>$Object->getLine(),  
875 - 'Type'=>'trigger',  
876 - 'Trace'=>$this->_escapeTrace(array_splice($trace,2)));  
877 - $skipFinalObjectEncode = true;  
878 - } else {  
879 - $Object = array('Class'=>get_class($Object),  
880 - 'Message'=>$Object->getMessage(),  
881 - 'File'=>$this->_escapeTraceFile($Object->getFile()),  
882 - 'Line'=>$Object->getLine(),  
883 - 'Type'=>'throw',  
884 - 'Trace'=>$this->_escapeTrace($trace));  
885 - $skipFinalObjectEncode = true;  
886 - }  
887 - $Type = self::EXCEPTION;  
888 -  
889 - } else  
890 - if ($Type==self::TRACE) {  
891 -  
892 - $trace = debug_backtrace();  
893 - if (!$trace) return false;  
894 - for( $i=0 ; $i<sizeof($trace) ; $i++ ) {  
895 -  
896 - if (isset($trace[$i]['class'])  
897 - && isset($trace[$i]['file'])  
898 - && ($trace[$i]['class']=='FirePHP'  
899 - || $trace[$i]['class']=='FB')  
900 - && (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'  
901 - || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {  
902 - /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */  
903 - } else  
904 - if (isset($trace[$i]['class'])  
905 - && isset($trace[$i+1]['file'])  
906 - && $trace[$i]['class']=='FirePHP'  
907 - && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {  
908 - /* Skip fb() */  
909 - } else  
910 - if ($trace[$i]['function']=='fb'  
911 - || $trace[$i]['function']=='trace'  
912 - || $trace[$i]['function']=='send') {  
913 -  
914 - $Object = array('Class'=>isset($trace[$i]['class'])?$trace[$i]['class']:'',  
915 - 'Type'=>isset($trace[$i]['type'])?$trace[$i]['type']:'',  
916 - 'Function'=>isset($trace[$i]['function'])?$trace[$i]['function']:'',  
917 - 'Message'=>$trace[$i]['args'][0],  
918 - 'File'=>isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'',  
919 - 'Line'=>isset($trace[$i]['line'])?$trace[$i]['line']:'',  
920 - 'Args'=>isset($trace[$i]['args'])?$this->encodeObject($trace[$i]['args']):'',  
921 - 'Trace'=>$this->_escapeTrace(array_splice($trace,$i+1)));  
922 -  
923 - $skipFinalObjectEncode = true;  
924 - $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';  
925 - $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';  
926 - break;  
927 - }  
928 - }  
929 -  
930 - } else  
931 - if ($Type==self::TABLE) {  
932 -  
933 - if (isset($Object[0]) && is_string($Object[0])) {  
934 - $Object[1] = $this->encodeTable($Object[1]);  
935 - } else {  
936 - $Object = $this->encodeTable($Object);  
937 - }  
938 -  
939 - $skipFinalObjectEncode = true;  
940 -  
941 - } else  
942 - if ($Type==self::GROUP_START) {  
943 -  
944 - if (!$Label) {  
945 - throw $this->newException('You must specify a label for the group!');  
946 - }  
947 -  
948 - } else {  
949 - if ($Type===null) {  
950 - $Type = self::LOG;  
951 - }  
952 - }  
953 -  
954 - if ($this->options['includeLineNumbers']) {  
955 - if (!isset($meta['file']) || !isset($meta['line'])) {  
956 -  
957 - $trace = debug_backtrace();  
958 - for( $i=0 ; $trace && $i<sizeof($trace) ; $i++ ) {  
959 -  
960 - if (isset($trace[$i]['class'])  
961 - && isset($trace[$i]['file'])  
962 - && ($trace[$i]['class']=='FirePHP'  
963 - || $trace[$i]['class']=='FB')  
964 - && (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'  
965 - || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {  
966 - /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */  
967 - } else  
968 - if (isset($trace[$i]['class'])  
969 - && isset($trace[$i+1]['file'])  
970 - && $trace[$i]['class']=='FirePHP'  
971 - && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {  
972 - /* Skip fb() */  
973 - } else  
974 - if (isset($trace[$i]['file'])  
975 - && substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php') {  
976 - /* Skip FB::fb() */  
977 - } else {  
978 - $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';  
979 - $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';  
980 - break;  
981 - }  
982 - }  
983 - }  
984 - } else {  
985 - unset($meta['file']);  
986 - unset($meta['line']);  
987 - }  
988 -  
989 - $this->setHeader('X-Wf-Protocol-1','http://meta.wildfirehq.org/Protocol/JsonStream/0.2');  
990 - $this->setHeader('X-Wf-1-Plugin-1','http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/'.self::VERSION);  
991 -  
992 - $structure_index = 1;  
993 - if ($Type==self::DUMP) {  
994 - $structure_index = 2;  
995 - $this->setHeader('X-Wf-1-Structure-2','http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1');  
996 - } else {  
997 - $this->setHeader('X-Wf-1-Structure-1','http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');  
998 - }  
999 -  
1000 - if ($Type==self::DUMP) {  
1001 - $msg = '{"'.$Label.'":'.$this->jsonEncode($Object, $skipFinalObjectEncode).'}';  
1002 - } else {  
1003 - $msg_meta = $Options;  
1004 - $msg_meta['Type'] = $Type;  
1005 - if ($Label!==null) {  
1006 - $msg_meta['Label'] = $Label;  
1007 - }  
1008 - if (isset($meta['file']) && !isset($msg_meta['File'])) {  
1009 - $msg_meta['File'] = $meta['file'];  
1010 - }  
1011 - if (isset($meta['line']) && !isset($msg_meta['Line'])) {  
1012 - $msg_meta['Line'] = $meta['line'];  
1013 - }  
1014 - $msg = '['.$this->jsonEncode($msg_meta).','.$this->jsonEncode($Object, $skipFinalObjectEncode).']';  
1015 - }  
1016 -  
1017 - $parts = explode("\n",chunk_split($msg, 5000, "\n"));  
1018 -  
1019 - for( $i=0 ; $i<count($parts) ; $i++) {  
1020 -  
1021 - $part = $parts[$i];  
1022 - if ($part) {  
1023 -  
1024 - if (count($parts)>2) {  
1025 - // Message needs to be split into multiple parts  
1026 - $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,  
1027 - (($i==0)?strlen($msg):'')  
1028 - . '|' . $part . '|'  
1029 - . (($i<count($parts)-2)?'\\':''));  
1030 - } else {  
1031 - $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,  
1032 - strlen($part) . '|' . $part . '|');  
1033 - }  
1034 -  
1035 - $this->messageIndex++;  
1036 -  
1037 - if ($this->messageIndex > 99999) {  
1038 - throw $this->newException('Maximum number (99,999) of messages reached!');  
1039 - }  
1040 - }  
1041 - }  
1042 -  
1043 - $this->setHeader('X-Wf-1-Index',$this->messageIndex-1);  
1044 -  
1045 - return true;  
1046 - }  
1047 -  
1048 - /**  
1049 - * Standardizes path for windows systems.  
1050 - *  
1051 - * @param string $Path  
1052 - * @return string  
1053 - */  
1054 - protected function _standardizePath($Path)  
1055 - {  
1056 - return preg_replace('/\\\\+/','/',$Path);  
1057 - }  
1058 -  
1059 - /**  
1060 - * Escape trace path for windows systems  
1061 - *  
1062 - * @param array $Trace  
1063 - * @return array  
1064 - */  
1065 - protected function _escapeTrace($Trace)  
1066 - {  
1067 - if (!$Trace) return $Trace;  
1068 - for( $i=0 ; $i<sizeof($Trace) ; $i++ ) {  
1069 - if (isset($Trace[$i]['file'])) {  
1070 - $Trace[$i]['file'] = $this->_escapeTraceFile($Trace[$i]['file']);  
1071 - }  
1072 - if (isset($Trace[$i]['args'])) {  
1073 - $Trace[$i]['args'] = $this->encodeObject($Trace[$i]['args']);  
1074 - }  
1075 - }  
1076 - return $Trace;  
1077 - }  
1078 -  
1079 - /**  
1080 - * Escape file information of trace for windows systems  
1081 - *  
1082 - * @param string $File  
1083 - * @return string  
1084 - */  
1085 - protected function _escapeTraceFile($File)  
1086 - {  
1087 - /* Check if we have a windows filepath */  
1088 - if (strpos($File,'\\')) {  
1089 - /* First strip down to single \ */  
1090 -  
1091 - $file = preg_replace('/\\\\+/','\\',$File);  
1092 -  
1093 - return $file;  
1094 - }  
1095 - return $File;  
1096 - }  
1097 -  
1098 - /**  
1099 - * Check if headers have already been sent  
1100 - *  
1101 - * @param string $Filename  
1102 - * @param integer $Linenum  
1103 - */  
1104 - protected function headersSent(&$Filename, &$Linenum)  
1105 - {  
1106 - return headers_sent($Filename, $Linenum);  
1107 - }  
1108 -  
1109 - /**  
1110 - * Send header  
1111 - *  
1112 - * @param string $Name  
1113 - * @param string $Value  
1114 - */  
1115 - protected function setHeader($Name, $Value)  
1116 - {  
1117 - return header($Name.': '.$Value);  
1118 - }  
1119 -  
1120 - /**  
1121 - * Get user agent  
1122 - *  
1123 - * @return string|false  
1124 - */  
1125 - protected function getUserAgent()  
1126 - {  
1127 - if (!isset($_SERVER['HTTP_USER_AGENT'])) return false;  
1128 - return $_SERVER['HTTP_USER_AGENT'];  
1129 - }  
1130 -  
1131 - /**  
1132 - * Get all request headers  
1133 - *  
1134 - * @return array  
1135 - */  
1136 - public static function getAllRequestHeaders() {  
1137 - static $_cached_headers = false;  
1138 - if($_cached_headers!==false) {  
1139 - return $_cached_headers;  
1140 - }  
1141 - $headers = array();  
1142 - if(function_exists('getallheaders')) {  
1143 - foreach( getallheaders() as $name => $value ) {  
1144 - $headers[strtolower($name)] = $value;  
1145 - }  
1146 - } else {  
1147 - foreach($_SERVER as $name => $value) {  
1148 - if(substr($name, 0, 5) == 'HTTP_') {  
1149 - $headers[strtolower(str_replace(' ', '-', str_replace('_', ' ', substr($name, 5))))] = $value;  
1150 - }  
1151 - }  
1152 - }  
1153 - return $_cached_headers = $headers;  
1154 - }  
1155 -  
1156 - /**  
1157 - * Get a request header  
1158 - *  
1159 - * @return string|false  
1160 - */  
1161 - protected function getRequestHeader($Name)  
1162 - {  
1163 - $headers = self::getAllRequestHeaders();  
1164 - if (isset($headers[strtolower($Name)])) {  
1165 - return $headers[strtolower($Name)];  
1166 - }  
1167 - return false;  
1168 - }  
1169 -  
1170 - /**  
1171 - * Returns a new exception  
1172 - *  
1173 - * @param string $Message  
1174 - * @return Exception  
1175 - */  
1176 - protected function newException($Message)  
1177 - {  
1178 - return new Exception($Message);  
1179 - }  
1180 -  
1181 - /**  
1182 - * Encode an object into a JSON string  
1183 - *  
1184 - * Uses PHP's jeson_encode() if available  
1185 - *  
1186 - * @param object $Object The object to be encoded  
1187 - * @return string The JSON string  
1188 - */  
1189 - public function jsonEncode($Object, $skipObjectEncode = false)  
1190 - {  
1191 - if (!$skipObjectEncode) {  
1192 - $Object = $this->encodeObject($Object);  
1193 - }  
1194 -  
1195 - if (function_exists('json_encode')  
1196 - && $this->options['useNativeJsonEncode']!=false) {  
1197 -  
1198 - return json_encode($Object);  
1199 - } else {  
1200 - return $this->json_encode($Object);  
1201 - }  
1202 - }  
1203 -  
1204 - /**  
1205 - * Encodes a table by encoding each row and column with encodeObject()  
1206 - *  
1207 - * @param array $Table The table to be encoded  
1208 - * @return array  
1209 - */  
1210 - protected function encodeTable($Table)  
1211 - {  
1212 -  
1213 - if (!$Table) return $Table;  
1214 -  
1215 - $new_table = array();  
1216 - foreach($Table as $row) {  
1217 -  
1218 - if (is_array($row)) {  
1219 - $new_row = array();  
1220 -  
1221 - foreach($row as $item) {  
1222 - $new_row[] = $this->encodeObject($item);  
1223 - }  
1224 -  
1225 - $new_table[] = $new_row;  
1226 - }  
1227 - }  
1228 -  
1229 - return $new_table;  
1230 - }  
1231 -  
1232 - /**  
1233 - * Encodes an object including members with  
1234 - * protected and private visibility  
1235 - *  
1236 - * @param Object $Object The object to be encoded  
1237 - * @param int $Depth The current traversal depth  
1238 - * @return array All members of the object  
1239 - */  
1240 - protected function encodeObject($Object, $ObjectDepth = 1, $ArrayDepth = 1, $MaxDepth = 1)  
1241 - {  
1242 - if ($MaxDepth > $this->options['maxDepth']) {  
1243 - return '** Max Depth ('.$this->options['maxDepth'].') **';  
1244 - }  
1245 -  
1246 - $return = array();  
1247 -  
1248 - if (is_resource($Object)) {  
1249 -  
1250 - return '** '.(string)$Object.' **';  
1251 -  
1252 - } else  
1253 - if (is_object($Object)) {  
1254 -  
1255 - if ($ObjectDepth > $this->options['maxObjectDepth']) {  
1256 - return '** Max Object Depth ('.$this->options['maxObjectDepth'].') **';  
1257 - }  
1258 -  
1259 - foreach ($this->objectStack as $refVal) {  
1260 - if ($refVal === $Object) {  
1261 - return '** Recursion ('.get_class($Object).') **';  
1262 - }  
1263 - }  
1264 - array_push($this->objectStack, $Object);  
1265 -  
1266 - $return['__className'] = $class = get_class($Object);  
1267 - $class_lower = strtolower($class);  
1268 -  
1269 - $reflectionClass = new ReflectionClass($class);  
1270 - $properties = array();  
1271 - foreach( $reflectionClass->getProperties() as $property) {  
1272 - $properties[$property->getName()] = $property;  
1273 - }  
1274 -  
1275 - $members = (array)$Object;  
1276 -  
1277 - foreach( $properties as $plain_name => $property ) {  
1278 -  
1279 - $name = $raw_name = $plain_name;  
1280 - if ($property->isStatic()) {  
1281 - $name = 'static:'.$name;  
1282 - }  
1283 - if ($property->isPublic()) {  
1284 - $name = 'public:'.$name;  
1285 - } else  
1286 - if ($property->isPrivate()) {  
1287 - $name = 'private:'.$name;  
1288 - $raw_name = "\0".$class."\0".$raw_name;  
1289 - } else  
1290 - if ($property->isProtected()) {  
1291 - $name = 'protected:'.$name;  
1292 - $raw_name = "\0".'*'."\0".$raw_name;  
1293 - }  
1294 -  
1295 - if (!(isset($this->objectFilters[$class_lower])  
1296 - && is_array($this->objectFilters[$class_lower])  
1297 - && in_array($plain_name,$this->objectFilters[$class_lower]))) {  
1298 -  
1299 - if (array_key_exists($raw_name,$members)  
1300 - && !$property->isStatic()) {  
1301 -  
1302 - $return[$name] = $this->encodeObject($members[$raw_name], $ObjectDepth + 1, 1, $MaxDepth + 1);  
1303 -  
1304 - } else {  
1305 - if (method_exists($property,'setAccessible')) {  
1306 - $property->setAccessible(true);  
1307 - $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1, $MaxDepth + 1);  
1308 - } else  
1309 - if ($property->isPublic()) {  
1310 - $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1, $MaxDepth + 1);  
1311 - } else {  
1312 - $return[$name] = '** Need PHP 5.3 to get value **';  
1313 - }  
1314 - }  
1315 - } else {  
1316 - $return[$name] = '** Excluded by Filter **';  
1317 - }  
1318 - }  
1319 -  
1320 - // Include all members that are not defined in the class  
1321 - // but exist in the object  
1322 - foreach( $members as $raw_name => $value ) {  
1323 -  
1324 - $name = $raw_name;  
1325 -  
1326 - if ($name{0} == "\0") {  
1327 - $parts = explode("\0", $name);  
1328 - $name = $parts[2];  
1329 - }  
1330 -  
1331 - $plain_name = $name;  
1332 -  
1333 - if (!isset($properties[$name])) {  
1334 - $name = 'undeclared:'.$name;  
1335 -  
1336 - if (!(isset($this->objectFilters[$class_lower])  
1337 - && is_array($this->objectFilters[$class_lower])  
1338 - && in_array($plain_name,$this->objectFilters[$class_lower]))) {  
1339 -  
1340 - $return[$name] = $this->encodeObject($value, $ObjectDepth + 1, 1, $MaxDepth + 1);  
1341 - } else {  
1342 - $return[$name] = '** Excluded by Filter **';  
1343 - }  
1344 - }  
1345 - }  
1346 -  
1347 - array_pop($this->objectStack);  
1348 -  
1349 - } elseif (is_array($Object)) {  
1350 -  
1351 - if ($ArrayDepth > $this->options['maxArrayDepth']) {  
1352 - return '** Max Array Depth ('.$this->options['maxArrayDepth'].') **';  
1353 - }  
1354 -  
1355 - foreach ($Object as $key => $val) {  
1356 -  
1357 - // Encoding the $GLOBALS PHP array causes an infinite loop  
1358 - // if the recursion is not reset here as it contains  
1359 - // a reference to itself. This is the only way I have come up  
1360 - // with to stop infinite recursion in this case.  
1361 - if ($key=='GLOBALS'  
1362 - && is_array($val)  
1363 - && array_key_exists('GLOBALS',$val)) {  
1364 - $val['GLOBALS'] = '** Recursion (GLOBALS) **';  
1365 - }  
1366 -  
1367 - $return[$key] = $this->encodeObject($val, 1, $ArrayDepth + 1, $MaxDepth + 1);  
1368 - }  
1369 - } else {  
1370 - if (self::is_utf8($Object)) {  
1371 - return $Object;  
1372 - } else {  
1373 - return utf8_encode($Object);  
1374 - }  
1375 - }  
1376 - return $return;  
1377 - }  
1378 -  
1379 - /**  
1380 - * Returns true if $string is valid UTF-8 and false otherwise.  
1381 - *  
1382 - * @param mixed $str String to be tested  
1383 - * @return boolean  
1384 - */  
1385 - protected static function is_utf8($str)  
1386 - {  
1387 - if(function_exists('mb_detect_encoding')) {  
1388 - return (mb_detect_encoding($str) == 'UTF-8');  
1389 - }  
1390 - $c=0; $b=0;  
1391 - $bits=0;  
1392 - $len=strlen($str);  
1393 - for($i=0; $i<$len; $i++){  
1394 - $c=ord($str[$i]);  
1395 - if ($c > 128){  
1396 - if (($c >= 254)) return false;  
1397 - elseif ($c >= 252) $bits=6;  
1398 - elseif ($c >= 248) $bits=5;  
1399 - elseif ($c >= 240) $bits=4;  
1400 - elseif ($c >= 224) $bits=3;  
1401 - elseif ($c >= 192) $bits=2;  
1402 - else return false;  
1403 - if (($i+$bits) > $len) return false;  
1404 - while($bits > 1){  
1405 - $i++;  
1406 - $b=ord($str[$i]);  
1407 - if ($b < 128 || $b > 191) return false;  
1408 - $bits--;  
1409 - }  
1410 - }  
1411 - }  
1412 - return true;  
1413 - }  
1414 -  
1415 - /**  
1416 - * Converts to and from JSON format.  
1417 - *  
1418 - * JSON (JavaScript Object Notation) is a lightweight data-interchange  
1419 - * format. It is easy for humans to read and write. It is easy for machines  
1420 - * to parse and generate. It is based on a subset of the JavaScript  
1421 - * Programming Language, Standard ECMA-262 3rd Edition - December 1999.  
1422 - * This feature can also be found in Python. JSON is a text format that is  
1423 - * completely language independent but uses conventions that are familiar  
1424 - * to programmers of the C-family of languages, including C, C++, C#, Java,  
1425 - * JavaScript, Perl, TCL, and many others. These properties make JSON an  
1426 - * ideal data-interchange language.  
1427 - *  
1428 - * This package provides a simple encoder and decoder for JSON notation. It  
1429 - * is intended for use with client-side Javascript applications that make  
1430 - * use of HTTPRequest to perform server communication functions - data can  
1431 - * be encoded into JSON notation for use in a client-side javascript, or  
1432 - * decoded from incoming Javascript requests. JSON format is native to  
1433 - * Javascript, and can be directly eval()'ed with no further parsing  
1434 - * overhead  
1435 - *  
1436 - * All strings should be in ASCII or UTF-8 format!  
1437 - *  
1438 - * LICENSE: Redistribution and use in source and binary forms, with or  
1439 - * without modification, are permitted provided that the following  
1440 - * conditions are met: Redistributions of source code must retain the  
1441 - * above copyright notice, this list of conditions and the following  
1442 - * disclaimer. Redistributions in binary form must reproduce the above  
1443 - * copyright notice, this list of conditions and the following disclaimer  
1444 - * in the documentation and/or other materials provided with the  
1445 - * distribution.  
1446 - *  
1447 - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED  
1448 - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF  
1449 - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN  
1450 - * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,  
1451 - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,  
1452 - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS  
1453 - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND  
1454 - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR  
1455 - * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE  
1456 - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH  
1457 - * DAMAGE.  
1458 - *  
1459 - * @category  
1460 - * @package Services_JSON  
1461 - * @author Michal Migurski <mike-json@teczno.com>  
1462 - * @author Matt Knapp <mdknapp[at]gmail[dot]com>  
1463 - * @author Brett Stimmerman <brettstimmerman[at]gmail[dot]com>  
1464 - * @author Christoph Dorn <christoph@christophdorn.com>  
1465 - * @copyright 2005 Michal Migurski  
1466 - * @version CVS: $Id: FirePHP.class.php 232 2011-06-01 12:55:32Z elena $  
1467 - * @license http://www.opensource.org/licenses/bsd-license.php  
1468 - * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198  
1469 - */  
1470 -  
1471 -  
1472 - /**  
1473 - * Keep a list of objects as we descend into the array so we can detect recursion.  
1474 - */  
1475 - private $json_objectStack = array();  
1476 -  
1477 -  
1478 - /**  
1479 - * convert a string from one UTF-8 char to one UTF-16 char  
1480 - *  
1481 - * Normally should be handled by mb_convert_encoding, but  
1482 - * provides a slower PHP-only method for installations  
1483 - * that lack the multibye string extension.  
1484 - *  
1485 - * @param string $utf8 UTF-8 character  
1486 - * @return string UTF-16 character  
1487 - * @access private  
1488 - */  
1489 - private function json_utf82utf16($utf8)  
1490 - {  
1491 - // oh please oh please oh please oh please oh please  
1492 - if (function_exists('mb_convert_encoding')) {  
1493 - return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');  
1494 - }  
1495 -  
1496 - switch(strlen($utf8)) {  
1497 - case 1:  
1498 - // this case should never be reached, because we are in ASCII range  
1499 - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8  
1500 - return $utf8;  
1501 -  
1502 - case 2:  
1503 - // return a UTF-16 character from a 2-byte UTF-8 char  
1504 - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8  
1505 - return chr(0x07 & (ord($utf8{0}) >> 2))  
1506 - . chr((0xC0 & (ord($utf8{0}) << 6))  
1507 - | (0x3F & ord($utf8{1})));  
1508 -  
1509 - case 3:  
1510 - // return a UTF-16 character from a 3-byte UTF-8 char  
1511 - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8  
1512 - return chr((0xF0 & (ord($utf8{0}) << 4))  
1513 - | (0x0F & (ord($utf8{1}) >> 2)))  
1514 - . chr((0xC0 & (ord($utf8{1}) << 6))  
1515 - | (0x7F & ord($utf8{2})));  
1516 - }  
1517 -  
1518 - // ignoring UTF-32 for now, sorry  
1519 - return '';  
1520 - }  
1521 -  
1522 - /**  
1523 - * encodes an arbitrary variable into JSON format  
1524 - *  
1525 - * @param mixed $var any number, boolean, string, array, or object to be encoded.  
1526 - * see argument 1 to Services_JSON() above for array-parsing behavior.  
1527 - * if var is a strng, note that encode() always expects it  
1528 - * to be in ASCII or UTF-8 format!  
1529 - *  
1530 - * @return mixed JSON string representation of input var or an error if a problem occurs  
1531 - * @access public  
1532 - */  
1533 - private function json_encode($var)  
1534 - {  
1535 -  
1536 - if (is_object($var)) {  
1537 - if (in_array($var,$this->json_objectStack)) {  
1538 - return '"** Recursion **"';  
1539 - }  
1540 - }  
1541 -  
1542 - switch (gettype($var)) {  
1543 - case 'boolean':  
1544 - return $var ? 'true' : 'false';  
1545 -  
1546 - case 'NULL':  
1547 - return 'null';  
1548 -  
1549 - case 'integer':  
1550 - return (int) $var;  
1551 -  
1552 - case 'double':  
1553 - case 'float':  
1554 - return (float) $var;  
1555 -  
1556 - case 'string':  
1557 - // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT  
1558 - $ascii = '';  
1559 - $strlen_var = strlen($var);  
1560 -  
1561 - /*  
1562 - * Iterate over every character in the string,  
1563 - * escaping with a slash or encoding to UTF-8 where necessary  
1564 - */  
1565 - for ($c = 0; $c < $strlen_var; ++$c) {  
1566 -  
1567 - $ord_var_c = ord($var{$c});  
1568 -  
1569 - switch (true) {  
1570 - case $ord_var_c == 0x08:  
1571 - $ascii .= '\b';  
1572 - break;  
1573 - case $ord_var_c == 0x09:  
1574 - $ascii .= '\t';  
1575 - break;  
1576 - case $ord_var_c == 0x0A:  
1577 - $ascii .= '\n';  
1578 - break;  
1579 - case $ord_var_c == 0x0C:  
1580 - $ascii .= '\f';  
1581 - break;  
1582 - case $ord_var_c == 0x0D:  
1583 - $ascii .= '\r';  
1584 - break;  
1585 -  
1586 - case $ord_var_c == 0x22:  
1587 - case $ord_var_c == 0x2F:  
1588 - case $ord_var_c == 0x5C:  
1589 - // double quote, slash, slosh  
1590 - $ascii .= '\\'.$var{$c};  
1591 - break;  
1592 -  
1593 - case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):  
1594 - // characters U-00000000 - U-0000007F (same as ASCII)  
1595 - $ascii .= $var{$c};  
1596 - break;  
1597 -  
1598 - case (($ord_var_c & 0xE0) == 0xC0):  
1599 - // characters U-00000080 - U-000007FF, mask 110XXXXX  
1600 - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8  
1601 - $char = pack('C*', $ord_var_c, ord($var{$c + 1}));  
1602 - $c += 1;  
1603 - $utf16 = $this->json_utf82utf16($char);  
1604 - $ascii .= sprintf('\u%04s', bin2hex($utf16));  
1605 - break;  
1606 -  
1607 - case (($ord_var_c & 0xF0) == 0xE0):  
1608 - // characters U-00000800 - U-0000FFFF, mask 1110XXXX  
1609 - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8  
1610 - $char = pack('C*', $ord_var_c,  
1611 - ord($var{$c + 1}),  
1612 - ord($var{$c + 2}));  
1613 - $c += 2;  
1614 - $utf16 = $this->json_utf82utf16($char);  
1615 - $ascii .= sprintf('\u%04s', bin2hex($utf16));  
1616 - break;  
1617 -  
1618 - case (($ord_var_c & 0xF8) == 0xF0):  
1619 - // characters U-00010000 - U-001FFFFF, mask 11110XXX  
1620 - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8  
1621 - $char = pack('C*', $ord_var_c,  
1622 - ord($var{$c + 1}),  
1623 - ord($var{$c + 2}),  
1624 - ord($var{$c + 3}));  
1625 - $c += 3;  
1626 - $utf16 = $this->json_utf82utf16($char);  
1627 - $ascii .= sprintf('\u%04s', bin2hex($utf16));  
1628 - break;  
1629 -  
1630 - case (($ord_var_c & 0xFC) == 0xF8):  
1631 - // characters U-00200000 - U-03FFFFFF, mask 111110XX  
1632 - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8  
1633 - $char = pack('C*', $ord_var_c,  
1634 - ord($var{$c + 1}),  
1635 - ord($var{$c + 2}),  
1636 - ord($var{$c + 3}),  
1637 - ord($var{$c + 4}));  
1638 - $c += 4;  
1639 - $utf16 = $this->json_utf82utf16($char);  
1640 - $ascii .= sprintf('\u%04s', bin2hex($utf16));  
1641 - break;  
1642 -  
1643 - case (($ord_var_c & 0xFE) == 0xFC):  
1644 - // characters U-04000000 - U-7FFFFFFF, mask 1111110X  
1645 - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8  
1646 - $char = pack('C*', $ord_var_c,  
1647 - ord($var{$c + 1}),  
1648 - ord($var{$c + 2}),  
1649 - ord($var{$c + 3}),  
1650 - ord($var{$c + 4}),  
1651 - ord($var{$c + 5}));  
1652 - $c += 5;  
1653 - $utf16 = $this->json_utf82utf16($char);  
1654 - $ascii .= sprintf('\u%04s', bin2hex($utf16));  
1655 - break;  
1656 - }  
1657 - }  
1658 -  
1659 - return '"'.$ascii.'"';  
1660 -  
1661 - case 'array':  
1662 - /*  
1663 - * As per JSON spec if any array key is not an integer  
1664 - * we must treat the the whole array as an object. We  
1665 - * also try to catch a sparsely populated associative  
1666 - * array with numeric keys here because some JS engines  
1667 - * will create an array with empty indexes up to  
1668 - * max_index which can cause memory issues and because  
1669 - * the keys, which may be relevant, will be remapped  
1670 - * otherwise.  
1671 - *  
1672 - * As per the ECMA and JSON specification an object may  
1673 - * have any string as a property. Unfortunately due to  
1674 - * a hole in the ECMA specification if the key is a  
1675 - * ECMA reserved word or starts with a digit the  
1676 - * parameter is only accessible using ECMAScript's  
1677 - * bracket notation.  
1678 - */  
1679 -  
1680 - // treat as a JSON object  
1681 - if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {  
1682 -  
1683 - $this->json_objectStack[] = $var;  
1684 -  
1685 - $properties = array_map(array($this, 'json_name_value'),  
1686 - array_keys($var),  
1687 - array_values($var));  
1688 -  
1689 - array_pop($this->json_objectStack);  
1690 -  
1691 - foreach($properties as $property) {  
1692 - if ($property instanceof Exception) {  
1693 - return $property;  
1694 - }  
1695 - }  
1696 -  
1697 - return '{' . join(',', $properties) . '}';  
1698 - }  
1699 -  
1700 - $this->json_objectStack[] = $var;  
1701 -  
1702 - // treat it like a regular array  
1703 - $elements = array_map(array($this, 'json_encode'), $var);  
1704 -  
1705 - array_pop($this->json_objectStack);  
1706 -  
1707 - foreach($elements as $element) {  
1708 - if ($element instanceof Exception) {  
1709 - return $element;  
1710 - }  
1711 - }  
1712 -  
1713 - return '[' . join(',', $elements) . ']';  
1714 -  
1715 - case 'object':  
1716 - $vars = self::encodeObject($var);  
1717 -  
1718 - $this->json_objectStack[] = $var;  
1719 -  
1720 - $properties = array_map(array($this, 'json_name_value'),  
1721 - array_keys($vars),  
1722 - array_values($vars));  
1723 -  
1724 - array_pop($this->json_objectStack);  
1725 -  
1726 - foreach($properties as $property) {  
1727 - if ($property instanceof Exception) {  
1728 - return $property;  
1729 - }  
1730 - }  
1731 -  
1732 - return '{' . join(',', $properties) . '}';  
1733 -  
1734 - default:  
1735 - return null;  
1736 - }  
1737 - }  
1738 -  
1739 - /**  
1740 - * array-walking function for use in generating JSON-formatted name-value pairs  
1741 - *  
1742 - * @param string $name name of key to use  
1743 - * @param mixed $value reference to an array element to be encoded  
1744 - *  
1745 - * @return string JSON-formatted name-value pair, like '"name":value'  
1746 - * @access private  
1747 - */  
1748 - private function json_name_value($name, $value)  
1749 - {  
1750 - // Encoding the $GLOBALS PHP array causes an infinite loop  
1751 - // if the recursion is not reset here as it contains  
1752 - // a reference to itself. This is the only way I have come up  
1753 - // with to stop infinite recursion in this case.  
1754 - if ($name=='GLOBALS'  
1755 - && is_array($value)  
1756 - && array_key_exists('GLOBALS',$value)) {  
1757 - $value['GLOBALS'] = '** Recursion **';  
1758 - }  
1759 -  
1760 - $encoded_value = $this->json_encode($value);  
1761 -  
1762 - if ($encoded_value instanceof Exception) {  
1763 - return $encoded_value;  
1764 - }  
1765 -  
1766 - return $this->json_encode(strval($name)) . ':' . $encoded_value;  
1767 - }  
1768 -  
1769 - /**  
1770 - * @deprecated  
1771 - */  
1772 - public function setProcessorUrl($URL)  
1773 - {  
1774 - trigger_error("The FirePHP::setProcessorUrl() method is no longer supported", E_USER_DEPRECATED);  
1775 - }  
1776 -  
1777 - /**  
1778 - * @deprecated  
1779 - */  
1780 - public function setRendererUrl($URL)  
1781 - {  
1782 - trigger_error("The FirePHP::setRendererUrl() method is no longer supported", E_USER_DEPRECATED);  
1783 - }  
1784 -}  
php/firephp/LICENSE deleted
@@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
1 -Software License Agreement (New BSD License)  
2 -  
3 -Copyright (c) 2006-2009, Christoph Dorn  
4 -All rights reserved.  
5 -  
6 -Redistribution and use in source and binary forms, with or without modification,  
7 -are permitted provided that the following conditions are met:  
8 -  
9 - * Redistributions of source code must retain the above copyright notice,  
10 - this list of conditions and the following disclaimer.  
11 -  
12 - * Redistributions in binary form must reproduce the above copyright notice,  
13 - this list of conditions and the following disclaimer in the documentation  
14 - and/or other materials provided with the distribution.  
15 -  
16 - * Neither the name of Christoph Dorn nor the names of its  
17 - contributors may be used to endorse or promote products derived from this  
18 - software without specific prior written permission.  
19 -  
20 -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND  
21 -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED  
22 -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE  
23 -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR  
24 -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES  
25 -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  
26 -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON  
27 -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT  
28 -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS  
29 -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
php/firephp/fb.php deleted
@@ -1,276 +0,0 @@ @@ -1,276 +0,0 @@
1 -<?php  
2 -  
3 -/* ***** BEGIN LICENSE BLOCK *****  
4 - *  
5 - * This file is part of FirePHP (http://www.firephp.org/).  
6 - *  
7 - * Software License Agreement (New BSD License)  
8 - *  
9 - * Copyright (c) 2006-2010, Christoph Dorn  
10 - * All rights reserved.  
11 - *  
12 - * Redistribution and use in source and binary forms, with or without modification,  
13 - * are permitted provided that the following conditions are met:  
14 - *  
15 - * * Redistributions of source code must retain the above copyright notice,  
16 - * this list of conditions and the following disclaimer.  
17 - *  
18 - * * Redistributions in binary form must reproduce the above copyright notice,  
19 - * this list of conditions and the following disclaimer in the documentation  
20 - * and/or other materials provided with the distribution.  
21 - *  
22 - * * Neither the name of Christoph Dorn nor the names of its  
23 - * contributors may be used to endorse or promote products derived from this  
24 - * software without specific prior written permission.  
25 - *  
26 - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND  
27 - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED  
28 - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE  
29 - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR  
30 - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES  
31 - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  
32 - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON  
33 - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT  
34 - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS  
35 - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
36 - *  
37 - * ***** END LICENSE BLOCK *****  
38 - *  
39 - * @copyright Copyright (C) 2007-2009 Christoph Dorn  
40 - * @author Christoph Dorn <christoph@christophdorn.com>  
41 - * @license http://www.opensource.org/licenses/bsd-license.php  
42 - * @package FirePHPCore  
43 - */  
44 -  
45 -if(!class_exists('FirePHP')) {  
46 - require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'FirePHP.class.php';  
47 -}  
48 -  
49 -/**  
50 - * Sends the given data to the FirePHP Firefox Extension.  
51 - * The data can be displayed in the Firebug Console or in the  
52 - * "Server" request tab.  
53 - *  
54 - * @see http://www.firephp.org/Wiki/Reference/Fb  
55 - * @param mixed $Object  
56 - * @return true  
57 - * @throws Exception  
58 - */  
59 -function fb()  
60 -{  
61 - $instance = FirePHP::getInstance(true);  
62 -  
63 - $args = func_get_args();  
64 - return call_user_func_array(array($instance,'fb'),$args);  
65 -}  
66 -  
67 -  
68 -class FB  
69 -{  
70 - /**  
71 - * Enable and disable logging to Firebug  
72 - *  
73 - * @see FirePHP->setEnabled()  
74 - * @param boolean $Enabled TRUE to enable, FALSE to disable  
75 - * @return void  
76 - */  
77 - public static function setEnabled($Enabled)  
78 - {  
79 - $instance = FirePHP::getInstance(true);  
80 - $instance->setEnabled($Enabled);  
81 - }  
82 -  
83 - /**  
84 - * Check if logging is enabled  
85 - *  
86 - * @see FirePHP->getEnabled()  
87 - * @return boolean TRUE if enabled  
88 - */  
89 - public static function getEnabled()  
90 - {  
91 - $instance = FirePHP::getInstance(true);  
92 - return $instance->getEnabled();  
93 - }  
94 -  
95 - /**  
96 - * Specify a filter to be used when encoding an object  
97 - *  
98 - * Filters are used to exclude object members.  
99 - *  
100 - * @see FirePHP->setObjectFilter()  
101 - * @param string $Class The class name of the object  
102 - * @param array $Filter An array or members to exclude  
103 - * @return void  
104 - */  
105 - public static function setObjectFilter($Class, $Filter)  
106 - {  
107 - $instance = FirePHP::getInstance(true);  
108 - $instance->setObjectFilter($Class, $Filter);  
109 - }  
110 -  
111 - /**  
112 - * Set some options for the library  
113 - *  
114 - * @see FirePHP->setOptions()  
115 - * @param array $Options The options to be set  
116 - * @return void  
117 - */  
118 - public static function setOptions($Options)  
119 - {  
120 - $instance = FirePHP::getInstance(true);  
121 - $instance->setOptions($Options);  
122 - }  
123 -  
124 - /**  
125 - * Get options for the library  
126 - *  
127 - * @see FirePHP->getOptions()  
128 - * @return array The options  
129 - */  
130 - public static function getOptions()  
131 - {  
132 - $instance = FirePHP::getInstance(true);  
133 - return $instance->getOptions();  
134 - }  
135 -  
136 - /**  
137 - * Log object to firebug  
138 - *  
139 - * @see http://www.firephp.org/Wiki/Reference/Fb  
140 - * @param mixed $Object  
141 - * @return true  
142 - * @throws Exception  
143 - */  
144 - public static function send()  
145 - {  
146 - $instance = FirePHP::getInstance(true);  
147 - $args = func_get_args();  
148 - return call_user_func_array(array($instance,'fb'),$args);  
149 - }  
150 -  
151 - /**  
152 - * Start a group for following messages  
153 - *  
154 - * Options:  
155 - * Collapsed: [true|false]  
156 - * Color: [#RRGGBB|ColorName]  
157 - *  
158 - * @param string $Name  
159 - * @param array $Options OPTIONAL Instructions on how to log the group  
160 - * @return true  
161 - */  
162 - public static function group($Name, $Options=null)  
163 - {  
164 - $instance = FirePHP::getInstance(true);  
165 - return $instance->group($Name, $Options);  
166 - }  
167 -  
168 - /**  
169 - * Ends a group you have started before  
170 - *  
171 - * @return true  
172 - * @throws Exception  
173 - */  
174 - public static function groupEnd()  
175 - {  
176 - return self::send(null, null, FirePHP::GROUP_END);  
177 - }  
178 -  
179 - /**  
180 - * Log object with label to firebug console  
181 - *  
182 - * @see FirePHP::LOG  
183 - * @param mixes $Object  
184 - * @param string $Label  
185 - * @return true  
186 - * @throws Exception  
187 - */  
188 - public static function log($Object, $Label=null)  
189 - {  
190 - return self::send($Object, $Label, FirePHP::LOG);  
191 - }  
192 -  
193 - /**  
194 - * Log object with label to firebug console  
195 - *  
196 - * @see FirePHP::INFO  
197 - * @param mixes $Object  
198 - * @param string $Label  
199 - * @return true  
200 - * @throws Exception  
201 - */  
202 - public static function info($Object, $Label=null)  
203 - {  
204 - return self::send($Object, $Label, FirePHP::INFO);  
205 - }  
206 -  
207 - /**  
208 - * Log object with label to firebug console  
209 - *  
210 - * @see FirePHP::WARN  
211 - * @param mixes $Object  
212 - * @param string $Label  
213 - * @return true  
214 - * @throws Exception  
215 - */  
216 - public static function warn($Object, $Label=null)  
217 - {  
218 - return self::send($Object, $Label, FirePHP::WARN);  
219 - }  
220 -  
221 - /**  
222 - * Log object with label to firebug console  
223 - *  
224 - * @see FirePHP::ERROR  
225 - * @param mixes $Object  
226 - * @param string $Label  
227 - * @return true  
228 - * @throws Exception  
229 - */  
230 - public static function error($Object, $Label=null)  
231 - {  
232 - return self::send($Object, $Label, FirePHP::ERROR);  
233 - }  
234 -  
235 - /**  
236 - * Dumps key and variable to firebug server panel  
237 - *  
238 - * @see FirePHP::DUMP  
239 - * @param string $Key  
240 - * @param mixed $Variable  
241 - * @return true  
242 - * @throws Exception  
243 - */  
244 - public static function dump($Key, $Variable)  
245 - {  
246 - return self::send($Variable, $Key, FirePHP::DUMP);  
247 - }  
248 -  
249 - /**  
250 - * Log a trace in the firebug console  
251 - *  
252 - * @see FirePHP::TRACE  
253 - * @param string $Label  
254 - * @return true  
255 - * @throws Exception  
256 - */  
257 - public static function trace($Label)  
258 - {  
259 - return self::send($Label, FirePHP::TRACE);  
260 - }  
261 -  
262 - /**  
263 - * Log a table in the firebug console  
264 - *  
265 - * @see FirePHP::TABLE  
266 - * @param string $Label  
267 - * @param string $Table  
268 - * @return true  
269 - * @throws Exception  
270 - */  
271 - public static function table($Label, $Table)  
272 - {  
273 - return self::send($Table, $Label, FirePHP::TABLE);  
274 - }  
275 -  
276 -}  
php/makeMultiMission.php deleted
@@ -1,186 +0,0 @@ @@ -1,186 +0,0 @@
1 -<?php  
2 -/** @file makeMultiMission  
3 -* @version $Id: makeMultiMission.php 2321 2014-04-26 12:36:18Z elena $  
4 -* @brief StandAlone executable launched in BASE_PATH/php to create LOCALLY  
5 -* @brief DD_MISSION.xml and MISSION.xml from templates  
6 -* @brief and LocalParamsList.xml and LocalParams.xml  
7 -* @brief it is analog of AmdaUpdate.php INSTALL  
8 -*/  
9 - require_once "config.php";  
10 -  
11 - $missionsDom = new DomDocument("1.0");  
12 - $missionsDom->load(missionXml);  
13 - $locBases = $missionsDom->getElementsByTagName("MissionID");  
14 -  
15 - foreach ($locBases as $locbase) {  
16 - $multi = $locbase->getAttribute("missions");  
17 - $nameArr = explode(";",$multi);  
18 -  
19 - $templatename = LocalDataTemplate."DD_".$locbase->nodeValue.".template";  
20 - $paramtemplate = LocalDataTemplate.$locbase->nodeValue.".template";  
21 - if (count($nameArr) > 1 &&  
22 - (file_exists($templatename) && file_exists($paramtemplate))) {  
23 -  
24 - $suffix = array();  
25 - foreach ($nameArr as $item) {  
26 - $temp = explode("-",$item);  
27 - if (count($temp) > 1) {  
28 - $suffix[] = $temp[1];  
29 - }  
30 - else {  
31 - $suffix[] = substr($item,-1);  
32 - }  
33 - }  
34 -  
35 - $template = new DomDocument("1.0");  
36 - $status = $template->load($templatename);  
37 -  
38 - $paramdom = new DomDocument("1.0");  
39 - $status = $paramdom->load($paramtemplate);  
40 -  
41 -  
42 -// Create DD_Mission.xml  
43 - $locbasename = LocalData."DD_".$locbase->nodeValue.".xml";  
44 - $locbasedom = new DomDocument("1.0");  
45 - $root = $locbasedom->importNode($template->documentElement);  
46 - $amda = $locbasedom->importNode($template->getElementsByTagName("dataCenter")->item(0));  
47 - $missionMain = $locbasedom->importNode($template->getElementsByTagName("mission")->item(0));  
48 -  
49 - $mission = $locbasedom->importNode($template->getElementsByTagName("mission")->item(0), true);  
50 -  
51 - $targets = $mission->getElementsByTagName("target");  
52 - $targetNames = array();  
53 - foreach ($targets as $target)  
54 - if ($target->parentNode->tagName == 'mission')  
55 - $targetNames[] = $target->nodeValue;  
56 -  
57 - $observatory = $mission->getElementsByTagName("observatory")->item(0);  
58 - $instruments = $observatory->getElementsByTagName("instrument");  
59 -// create param descriptor Mission.xml  
60 - $parambasename = LocalDataParam.$locbase->nodeValue.".xml";  
61 - $parambasedom = new DomDocument("1.0");  
62 - $paramroot = $parambasedom->importNode($paramdom->documentElement);  
63 -  
64 - $instrumentNon = array();  
65 - foreach ($instruments as $instrument) {  
66 -  
67 - if ($instrument->hasAttribute("absent")) {  
68 - $absent = $instrument->getAttribute("absent");  
69 - $absentArray = explode(";",$absent);  
70 - $tempArr = array();  
71 -  
72 - if (count($absentArray) > 1) {  
73 - for ($i = 0; $i < count($suffix); $i++) $tempArr[$i] = false;  
74 - for ($j = 0; $j < count($absentArray); $j++) {  
75 - $temp = array_search($absentArray[$j], $suffix, true);  
76 - $tempArr[$temp] = true;  
77 - }  
78 -  
79 - }  
80 - else {  
81 - for ($i = 0; $i < count($suffix); $i++) {  
82 - $tempArr[$i] = $absent == $suffix[$i];  
83 - }  
84 - }  
85 -  
86 - $instrumentNon[$instrument->getAttribute("name")] = $tempArr;  
87 - }  
88 - }  
89 -  
90 - foreach ($targetNames as $targetName) {  
91 - $missionMain->appendChild($locbasedom->createElement("target",$targetName));  
92 - }  
93 -  
94 - for ($index = 0; $index < count($suffix); $index++) {  
95 -  
96 - $missionArr[$index] = $observatory->cloneNode();  
97 -  
98 - $missionArr[$index]->setAttribute("name", str_replace("XXX", $suffix[$index], $missionArr[$index]->getAttribute("name")));  
99 - $missionArr[$index]->setAttribute("xml:id", str_replace("XXX", $suffix[$index], $missionArr[$index]->getAttribute("name")));  
100 - $instruments = $observatory->getElementsByTagName("instrument");  
101 -  
102 - foreach ($instruments as $instrumentReal){  
103 - if (!$instrumentNon[$instrumentReal->getAttribute("name")] || !$instrumentNon[$instrumentReal->getAttribute("name")][$index]) {  
104 - $instrument = $instrumentReal->cloneNode(true);  
105 - $instrument->setAttribute("desc",str_replace("XXX", $suffix[$index], $instrument->getAttribute("desc")));  
106 - $instrument->setAttribute("xml:id",str_replace("XXX", $suffix[$index], $instrument->getAttribute("xml:id")));  
107 - $tags = array("dataset", "parameter", "component");  
108 -  
109 - foreach ($tags as $tag) {  
110 - $all = $instrument->getElementsByTagName($tag);  
111 - foreach ($all as $one) {  
112 - if ($tag == 'parameter') {  
113 - $id = $one->getAttribute("xml:id");  
114 - // create param tag in param XML descriptor  
115 - $param = $paramdom->getElementById($id);  
116 - if ($param){  
117 - $paramAdd = $parambasedom->importNode($param, true);  
118 - $paramAdd->setAttribute("xml:id",str_replace("XXX", strtolower($suffix[$index]), $id));  
119 - $paramAdd->setAttribute("vi",str_replace("XXX", strtolower($suffix[$index]), $paramAdd->getAttribute("vi")));  
120 - $yTitle = $paramAdd->getElementsByTagName("YTITLE");  
121 - if ($yTitle->length > 0) {  
122 - $value = $yTitle->item(0)->nodeValue;  
123 - $yTitle->item(0)->nodeValue = str_replace("XXX", $suffix[$index], $value);  
124 - }  
125 - $paramroot->appendChild($paramAdd);  
126 - }  
127 - }  
128 - $one->setAttribute("xml:id",str_replace("XXX", strtolower($suffix[$index]), $one->getAttribute("xml:id")));  
129 - if ($tag == 'dataset' && $one->hasAttribute("vi"))  
130 - $one->setAttribute("vi",str_replace("XXX", strtolower($suffix[$index]), $one->getAttribute("vi")));  
131 - }  
132 - }  
133 - $missionArr[$index]->appendChild($instrument);  
134 - }  
135 - }  
136 -  
137 - $missionMain->appendChild($missionArr[$index]);  
138 - }  
139 -  
140 - $amda->appendChild($missionMain);  
141 - $root->appendChild($amda);  
142 - $locbasedom->appendChild($root);  
143 - $locbasedom->save($locbasename);  
144 -  
145 - $parambasedom->appendChild($paramroot);  
146 - $parambasedom->save($parambasename);  
147 - }  
148 - }  
149 -  
150 -// temporary here  
151 - $paramsDom = new DomDocument("1.0");  
152 - $paramsDom->formatOutput = true;  
153 - $paramsDom->preserveWhiteSpace = false;  
154 - $paramsRoot = $paramsDom->createElement('LOCAL');  
155 - $paramsDom->appendChild($paramsRoot);  
156 -  
157 - $listDom = new DomDocument("1.0");  
158 - $listDom->formatOutput = true;  
159 - $listDom->preserveWhiteSpace = false;  
160 - $listRoot = $listDom->createElement('LOCAL');  
161 - $listDom->appendChild($listRoot);  
162 -  
163 - $dom = new DomDocument("1.0");  
164 - foreach ($locBases as $locbase)  
165 - {  
166 - $ddparamfilename = $locbase->nodeValue.".xml";  
167 -  
168 - $status = $dom->load(LocalDataParam.$ddparamfilename);  
169 - $params = $dom->getElementsByTagName('PARAM');  
170 - // if ($locbase->nodeValue == 'SW_Mars') printf($status.PHP_EOL);  
171 - foreach ($params as $param)  
172 - {  
173 - $node = $paramsDom->importNode($param,TRUE);  
174 - $paramsRoot->appendChild($node);  
175 - $id = $param->getAttribute('xml:id');  
176 - // if ($locbase->nodeValue == 'SW_Mars') printf($id.PHP_EOL);  
177 - $node = $listDom->createElement('PARAM',$id);  
178 - $listRoot->appendChild($node);  
179 -  
180 - }  
181 - }  
182 -  
183 - $paramsDom->save(paramXml);  
184 - $listDom->save(paramListXml);  
185 -  
186 -?>  
php/old_amda/ParamBuilder.php deleted
@@ -1,526 +0,0 @@ @@ -1,526 +0,0 @@
1 -<?php  
2 -/** @class ParamBuilder  
3 -* @version $Id: ParamBuilder.php 2918 2015-05-19 13:12:09Z elena $  
4 -* @brief  
5 -*  
6 -*/  
7 -class ParamBuilder {  
8 -  
9 - private $TargetDir, $PRODIR, $PredefinedDir;  
10 - public $file;  
11 - public $components;  
12 -  
13 - function __construct(){  
14 - $this->TargetDir = './';  
15 -// new amda  
16 - $this->PRODIR = TEMPLATES;  
17 - $this->PredefinedDir = PREDEFINED;  
18 - }  
19 -  
20 - protected function param2dd($paramID){  
21 - $pairs = array(":" => "_");  
22 - return strtr($paramID, $pairs);  
23 - }  
24 - protected function param2ddPoint($paramID){  
25 - $pairs = array(":" => "_", "." => "_");  
26 - return strtr($paramID, $pairs);  
27 - }  
28 - public function makeNewChain($chain, $vars){  
29 -  
30 -// cleanup components array !!!  
31 -  
32 - $this->components = array();  
33 - rsort($vars);  
34 -  
35 - for ($i = 0; $i < count($vars); $i++){  
36 - $start = 0;  
37 -  
38 - while (($pos = strpos($chain, $vars[$i], $start)) !== false) {  
39 -  
40 - $moreLong = false;  
41 -  
42 - if ($i > 0) {  
43 - for ($k = 0; $k < $i; $k++) {  
44 - if (substr($vars[$k],0,strlen($vars[$i])) === $vars[$i]) {  
45 - if (strpos($chain, $vars[$k], $pos) !== false) {  
46 - $moreLong = true;  
47 - $start = $pos+strlen($vars[$k]);  
48 - $break;  
49 - }  
50 - }  
51 - }  
52 - }  
53 -  
54 - if (!$moreLong) {  
55 -  
56 - if (($open = strpos($chain,$vars[$i]."(",$start)) === false) {  
57 - $chain = substr_replace($chain,$vars[$i]."(num)", $pos, strlen($vars[$i]));  
58 - $this->components[] = $vars[$i]."(*)";  
59 - $start = $pos+strlen($vars[$i]);  
60 - }  
61 - else {  
62 - $close = strpos($chain, ",num)", $open);  
63 - if ($close !== false && ($close-$open) < (strlen($vars[$i])+5)) {  
64 - $start = $open+strlen($vars[$i]);  
65 - }  
66 - else {  
67 - $close = strpos($chain,")",$open);  
68 - $vector_pos = strpos($chain,":",$open);  
69 - if ($vector_pos === false || $vector_pos > $close) {  
70 - $chain = substr_replace($chain,",num)",$close,1);  
71 - $this->components[] = substr($chain,$open,$close-$open).",*)";  
72 - }  
73 - else {  
74 - $comp = substr($chain, $vector_pos+3, 1);  
75 - $this->components[] = substr($chain,$open,strlen($vars[$i]))."(".$comp.",*)";  
76 - $chain = substr_replace($chain,",num),".$comp, $close-2, 3);  
77 - }  
78 - $start = $open+strlen($vars[$i]);  
79 - }  
80 - }  
81 - }  
82 - }  
83 - }  
84 -  
85 - $this->components = array_unique($this->components);  
86 -  
87 - return $chain;  
88 - }  
89 -  
90 -  
91 -  
92 - public function makeParamCalcul($chain, $vars, $name) {  
93 -  
94 -  
95 - foreach ($vars as &$var) $var = $this->param2dd($var);  
96 - $chain = $this->param2dd($chain);  
97 -  
98 - $newChain = $this->makeNewChain($chain, $vars);  
99 -  
100 - $function_name = $name == "" ? "paramcalcul" : strtolower($name)."_calcul";  
101 - $fillValue = $name == "" ? "3" : "!Values.F_NAN";  
102 -  
103 - $pro = fopen($this->TargetDir.$function_name.".pro", "w");  
104 - fwrite($pro,"function ".$function_name.",".join(",",$vars).PHP_EOL);  
105 - fwrite($pro,"common InternalCommon, FinalTime, num".PHP_EOL);  
106 - fwrite($pro,"OutPut = REPLICATE(".$fillValue.", N_Elements(FinalTime))".PHP_EOL);  
107 - fwrite($pro,"num = -1L\n");  
108 -/*  
109 -* !!!! array_unique($this->components) -> keeps unset empty values!!!  
110 -*/  
111 -  
112 - foreach ($this->components as $comp) {  
113 - fwrite($pro," num_ = where(finite(".$comp."), Index)\n");  
114 - fwrite($pro," if (Index eq 0) then return, OutPut\n");  
115 - fwrite($pro," if (num[0] eq -1L) then num = num_ $\n else begin\n numTemp = -1L\n k = -1L\n j0 = 0L\n");  
116 - fwrite($pro," for i = 0L, n_elements(num) - 1 do begin\n for j = j0, n_elements(num_) - 1 do begin\n");  
117 - fwrite($pro," if (num[i] eq num_[j]) then begin\n k++\n if (k eq 0) then numTemp = num[i] $\n else numTemp = [numTemp, num[i]]\n");  
118 - fwrite($pro," j0 = j+1\n break\n endif\n endfor\n endfor\n");  
119 - fwrite($pro," if (j0 gt 0) then num = numTemp else return, OutPut\n endelse \n");  
120 - }  
121 - // printf, LUN, 'On_error,2'  
122 - fwrite($pro,"OutPut[num] = ".$newChain.PHP_EOL);  
123 - fwrite($pro,"return, OutPut".PHP_EOL);  
124 - fwrite($pro,"end".PHP_EOL);  
125 - fclose($pro);  
126 - }  
127 -  
128 -/*  
129 -*  
130 -* Make all staff for local params from templates & descriptor XML  
131 -*  
132 -*/  
133 - public function paramLocalBuild($id) {  
134 -/*  
135 -* Get Param Info  
136 -*/  
137 -  
138 - $infoMgr = new ParamsInfoMgr();  
139 - $infos = $infoMgr->GetParamInfo($id);  
140 -  
141 - if (!$infos['success'])  
142 - {  
143 - die($infos['message']);  
144 - }  
145 -  
146 -  
147 - $name = $infos['codeinfos']['name'];  
148 - $vi = $infos['codeinfos']['vi'];  
149 - $size = $infos['codeinfos']['size'];  
150 - $tensor = $infos['codeinfos']['tensor'];  
151 - if ($tensor == '')  
152 - $tensor = -1;  
153 - $value_type = $infos['codeinfos']['valuetype'];  
154 - $fill_value = $infos['codeinfos']['fillvalue'];  
155 - if ($fill_value == "NaN")  
156 - $fill_value = "!Values.F_NAN";  
157 - $units = $infos['codeinfos']['units'];  
158 - $sampling = $infos['codeinfos']['minsampling'];  
159 - $maxSampling = $infos['codeinfos']['maxsampling'];  
160 - $frame = $infos['codeinfos']['frame'];  
161 - $legend = $infos['codeinfos']['legend'];  
162 - $title = $infos['codeinfos']['title'];  
163 - $plottype = $infos['codeinfos']['plottype'];  
164 - $mission = $infos['codeinfos']['mission'];  
165 - $energychannel = $infos['codeinfos']['energychannel'];  
166 - if ($energychannel == '')  
167 - $energychannel = 'Energy';  
168 -  
169 - $ytitle = $units != NULL ? $title.",!C".$units : $title;  
170 - $conversion = $infos['codeinfos']['conversion'];  
171 - $process = $infos['codeinfos']['process'];  
172 -  
173 -/*  
174 -* Make init  
175 -*/  
176 -  
177 - if (file_exists($this->PredefinedDir.$id."_init.pro")) {  
178 - copy($this->PredefinedDir.$id."_init.pro", $this->TargetDir.$id."_init.pro");  
179 - }  
180 - else {  
181 - $newfile = fopen($this->TargetDir.$id."_init.pro","w");  
182 - $pairs = array("LOCALPARAM" => $id,"LOCALTENSOR"=>$tensor,"LOCALSIZE"=>$size,"LOCALYTITLE"=>"'".$ytitle."'","LOCALPROCESS"=>"'".$process."'",  
183 - "LOCALFRAME"=>"'".$frame."'","LOCALMISSION"=>"'".$mission."'","LOCALPLOTTYPE"=>"'".$plottype."'", "LOCALLEGEND"=>"'".$legend."'");  
184 - $lines = file($this->PRODIR."localparam_init.pro");  
185 - for ($i = 0; $i < count($lines); $i++) {  
186 - $newline = strtr($lines[$i],$pairs);  
187 - fwrite($newfile,$newline);  
188 - }  
189 - fclose($newfile);  
190 -  
191 - if ($size > 1) {  
192 - $comp = array("/X", "/Y", "/Z");  
193 -// VECTOR  
194 - if ($size <= 3) {  
195 - $comp = array("/X", "/Y", "/Z");  
196 - for ($i = 0; $i < $size; $i++) {  
197 - $newfile = fopen($id."_".$i."_init.pro", "w");  
198 - fwrite($newfile,"pro ".$id."_".$i."_init, FRAME=frame,LOG=log,LIN=lin,COLOR=color,PSYM=psym,AY1TITLE=aytitle, _EXTRA=e".PHP_EOL);  
199 - fwrite($newfile,"cmd = '".$id."_init, ".$comp[$i]."'".PHP_EOL);  
200 - fwrite($newfile, "if KEYWORD_SET(COLOR) then cmd += ',COLOR=color'".PHP_EOL);  
201 - fwrite($newfile, "if KEYWORD_SET(FRAME) then cmd += ',FRAME=frame'".PHP_EOL);  
202 - fwrite($newfile, "if KEYWORD_SET(PSYM) then cmd += ',PSYM=psym'".PHP_EOL);  
203 - fwrite($newfile, "if KEYWORD_SET(LOG) then cmd += ',/LOG'".PHP_EOL);  
204 - fwrite($newfile, "if KEYWORD_SET(LIN) then cmd += ',/LIN'".PHP_EOL);  
205 - fwrite($newfile, "if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE=ay1title'".PHP_EOL);  
206 - fwrite($newfile,"R = execute(cmd)".PHP_EOL);  
207 - fwrite($newfile,"return".PHP_EOL);  
208 - fwrite($newfile,"end".PHP_EOL);  
209 - fclose($newfile);  
210 - }  
211 - }  
212 - elseif ($plottype == "STACK") {  
213 - for ($i = 0; $i < $size; $i++) {  
214 - $newfile = fopen($id."_".$i."_init.pro", "w");  
215 - fwrite($newfile,"pro ".$id."_".$i."_init, LOG=log,LIN=lin,COLOR=color,PSYM=psym,AY1TITLE=aytitle, _EXTRA=e".PHP_EOL);  
216 - fwrite($newfile,"cmd = '".$id."_init, CHANNEL=".($i+1)."'".PHP_EOL);  
217 - fwrite($newfile, "if KEYWORD_SET(COLOR) then cmd += ',COLOR=color'".PHP_EOL);  
218 - fwrite($newfile, "if KEYWORD_SET(PSYM) then cmd += ',PSYM=psym'".PHP_EOL);  
219 - fwrite($newfile, "if KEYWORD_SET(LOG) then cmd += ',/LOG'".PHP_EOL);  
220 - fwrite($newfile, "if KEYWORD_SET(LIN) then cmd += ',/LIN'".PHP_EOL);  
221 - fwrite($newfile, "if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE=ay1title'".PHP_EOL);  
222 - fwrite($newfile,"R = execute(cmd)".PHP_EOL);  
223 - fwrite($newfile,"return".PHP_EOL);  
224 - fwrite($newfile,"end".PHP_EOL);  
225 - fclose($newfile);  
226 - }  
227 -  
228 - }  
229 -// TENSOR; diagonal elements  
230 - elseif ($size == 9 && $tensor == 2) {  
231 - $sizeR = array(0, 4, 8);  
232 - for ($i = 0; $i < 3; $i++) {  
233 - $newfile = fopen($id."_".$sizeR[$i]."_init.pro", "w");  
234 - fwrite($newfile,"pro ".$id."_".$sizeR[$i]."_init, LOG=log,LIN=lin,COLOR=color,PSYM=psym,AY1TITLE=aytitle, _EXTRA=e".PHP_EOL);  
235 - fwrite($newfile,"cmd = '".$id."_init, ".$comp[$i].PHP_EOL);  
236 - fwrite($newfile, "if KEYWORD_SET(COLOR) then cmd += ',COLOR=color'".PHP_EOL);  
237 - fwrite($newfile, "if KEYWORD_SET(PSYM) then cmd += ',PSYM=psym'".PHP_EOL);  
238 - fwrite($newfile, "if KEYWORD_SET(LOG) then cmd += ',/LOG'".PHP_EOL);  
239 - fwrite($newfile, "if KEYWORD_SET(LIN) then cmd += ',/LIN'".PHP_EOL);  
240 - fwrite($newfile, "if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE=ay1title'".PHP_EOL);  
241 - fwrite($newfile,"R = execute(cmd)".PHP_EOL);  
242 - fwrite($newfile,"return".PHP_EOL);  
243 - fwrite($newfile,"end".PHP_EOL);  
244 - fclose($newfile);  
245 - }  
246 - }  
247 - }  
248 - }  
249 -/*  
250 -* Make com  
251 -*/  
252 - if (file_exists($this->PredefinedDir.$id."_com.pro")) {  
253 - copy($this->PredefinedDir.$id."_com.pro", $this->TargetDir.$id."_com.pro");  
254 - }  
255 - else {  
256 - $newfile = fopen($this->TargetDir.$id."_com.pro","w");  
257 - $pairs = array("LOCALPARAM" => $id,"LOCALSIZE"=>$size,"LOCALSAMPLING"=>$sampling, "LOCALMAXSAMPLING"=>$maxSampling,"LOCALFILLVALUE"=>$fill_value,  
258 - "LOCALPLOTTYPE"=>"'".$plottype."'","LOCALVI"=>"'".$vi."'","LOCALENERGYCHANNEL"=>"'".$energychannel."'",  
259 - "LOCALCONVERSION" => "'".$conversion."'");  
260 -  
261 - $lines = file($this->PRODIR."localparam_com.pro");  
262 - for ($i = 0; $i < count($lines); $i++) {  
263 - $newline = strtr($lines[$i],$pairs);  
264 - fwrite($newfile,$newline);  
265 - }  
266 - fclose($newfile);  
267 - }  
268 -/*  
269 -* Make get  
270 -*/  
271 - if (file_exists($this->PredefinedDir."get".$id.".pro")) {  
272 - copy($this->PredefinedDir."get".$id.".pro", $this->TargetDir."get".$id.".pro");  
273 - }  
274 - else {  
275 - $newfile = fopen($this->TargetDir."get".$id.".pro","w");  
276 - $pairs = array("LOCALPARAM" => $id,"LOCALSIZE"=>$size,"LOCALPARAMNAME"=>"'".$this->param2ddPoint($name)."'",  
277 - "LOCALVI"=>"'".$vi."'", "LOCALDATATYPE" => "'".$value_type."'", "LOCALCONVERSION" => "'".$conversion."'");  
278 - $lines = file($this->PRODIR."getlocalparam.pro");  
279 - for ($i = 0; $i < count($lines); $i++) {  
280 - $newline = strtr($lines[$i],$pairs);  
281 - fwrite($newfile,$newline);  
282 - }  
283 - fclose($newfile);  
284 - }  
285 -/*  
286 -* Make parameter  
287 -*/  
288 - if (file_exists($this->PredefinedDir.$id."_.pro")) {  
289 - copy($this->PredefinedDir.$id."_.pro", $this->TargetDir.$id."_.pro");  
290 - }  
291 - else {  
292 - $newfile = fopen($this->TargetDir.$id."_.pro","w");  
293 - $pairs = array("LOCALPARAM" => $id,"LOCALSIZE"=>$size, "LOCALSAMPLING"=>$sampling, "LOCALPARAMNAME"=>"'".$this->param2ddPoint($name)."'",  
294 - "LOCALVI"=>"'".$vi."'", "LOCALDATATYPE" => "'".$value_type."'","LOCALFILLVALUE"=>$fill_value,"LOCALPROCESS"=>"'".$process."'",  
295 - "LOCALCONVERSION" => "'".$conversion."'");  
296 -  
297 - $lines = file($this->PRODIR."localparam_.pro");  
298 -  
299 - for ($i = 0; $i < count($lines); $i++) {  
300 - $newline = strtr($lines[$i],$pairs);  
301 - fwrite($newfile,$newline);  
302 - }  
303 - fclose($newfile);  
304 - }  
305 -}  
306 -  
307 -/*  
308 -* Make WS parameter  
309 -*/  
310 - public function makeWsParamPlot($ws_object) {  
311 -  
312 -  
313 -/*  
314 -* Make init  
315 -*/  
316 -  
317 - $infoMgr = new ParamsInfoMgr();  
318 - $infos = $infoMgr->GetParamInfo($ws_object);  
319 -  
320 - $Ytitle = $ws_object;  
321 -  
322 - if ($infos['success']) {  
323 -  
324 - if ($infos['infos']['ytitle'] != 'undefined')  
325 - $Ytitle = $infos['infos']['ytitle'];  
326 -  
327 - if ($infos['infos']['units'] != 'undefined')  
328 - $Ytitle .= ','.$infos['infos']['units'];  
329 -  
330 - }  
331 -  
332 - $pairs = array("WS" => $ws_object, "TTT" => $Ytitle);  
333 -  
334 - $newfile = fopen($this->TargetDir.$ws_object."_init.pro","w");  
335 -  
336 - $lines = file($this->PRODIR."ws_init.pro");  
337 - for ($i = 0; $i < count($lines); $i++) {  
338 - $newline = strtr($lines[$i],$pairs);  
339 - fwrite($newfile,$newline);  
340 - }  
341 - fclose($newfile);  
342 -  
343 -/*  
344 -* Make Common  
345 -*/  
346 - $newfile = fopen($this->TargetDir.$ws_object."_com.pro","w");  
347 -  
348 - $lines = file($this->PRODIR."ws_com.pro");  
349 - for ($i = 0; $i < count($lines); $i++) {  
350 - $newline = strtr($lines[$i],$pairs);  
351 - fwrite($newfile,$newline);  
352 - }  
353 - fclose($newfile);  
354 -  
355 -/*  
356 -* Make Get  
357 -*/  
358 - $newfile = fopen($this->TargetDir."get".$ws_object.".pro","w");  
359 -  
360 - $lines = file($this->PRODIR."getws.pro");  
361 - for ($i = 0; $i < count($lines); $i++) {  
362 - $newline = strtr($lines[$i],$pairs);  
363 - fwrite($newfile,$newline);  
364 - }  
365 - fclose($newfile);  
366 -  
367 -  
368 -/*  
369 -* Make parameter  
370 -*/  
371 -  
372 - $newfile = fopen($this->TargetDir.$ws_object."_.pro","w");  
373 - $lines = file($this->PRODIR."ws_.pro");  
374 -  
375 - for ($i = 0; $i < count($lines); $i++) {  
376 - $newline = strtr($lines[$i],$pairs);  
377 - fwrite($newfile,$newline);  
378 - }  
379 - fclose($newfile);  
380 -  
381 - }  
382 -/*  
383 -* Make WSD parameter  
384 -*/  
385 -  
386 - public function makeWsdParam($wsd) {  
387 -  
388 - copy (OLD_CLASSPATH."getViStart.php",$this->TargetDir."getViStart.php");  
389 - copy (OLD_CLASSPATH."getViStop.php",$this->TargetDir."getViStop.php");  
390 - copy (OLD_CLASSPATH."setViStart.php",$this->TargetDir."setViStart.php");  
391 - copy (OLD_CLASSPATH."setViStop.php",$this->TargetDir."setViStop.php");  
392 - copy (OLD_CLASSPATH."getFileNames.php",$this->TargetDir."getFileNames.php");  
393 - copy (OLD_CLASSPATH."getVotVar.php",$this->TargetDir."getVotVar.php");  
394 - copy (OLD_CLASSPATH."moreData.php",$this->TargetDir."moreData.php");  
395 -  
396 -//TODO do we need wsd_..xml???  
397 -// $param_xml = USERWSDIR.$wsd.".xml";  
398 - $param_xml = getenv('USER_WS_PATH').$wsd.".xml";  
399 - $param_dom = new DomDocument("1.0");  
400 - $param_dom -> load($param_xml);  
401 -/*  
402 -* Get Param Info  
403 -*/  
404 - if (strncmp($wsd, "simu_", 5) == 0) {  
405 - $paramType = 'simu';  
406 - $isMoreData = 1;  
407 - $theParam = $param_dom->getElementsByTagName("mysimudata")->item(0);  
408 - }  
409 - elseif (strncmp($wsd, "wsr_", 4) == 0) {  
410 - $paramType = 'wsr';  
411 - $isMoreData = 1;  
412 - $theParam = $param_dom->getElementsByTagName("mywsrdata")->item(0);  
413 - }  
414 - else {  
415 - $paramType = 'wsd';  
416 - $isMoreData = 0;  
417 - $theParam = $param_dom->getElementsByTagName("mydata")->item(0);  
418 - }  
419 -  
420 - if ($paramType == 'wsr' || $paramType == 'simu')  
421 - $alias = strtolower($theParam->getElementsByTagName("name")->item(0)->nodeValue);  
422 - else  
423 - $alias = "wsd_".strtolower($theParam->getElementsByTagName("name")->item(0)->nodeValue);  
424 -  
425 -  
426 - $name = $theParam->getElementsByTagName("realvar")->item(0)->nodeValue;  
427 - $size = $theParam->getElementsByTagName("size")->item(0)->nodeValue;  
428 - $format = $theParam->getElementsByTagName("format")->item(0)->nodeValue;  
429 - $vi = $theParam->getElementsByTagName("vi")->item(0)->nodeValue;  
430 - $plottypeArr = $theParam->getElementsByTagName("plottype");  
431 - $plot_type = $plottypeArr->length > 0 ? $plottypeArr->item(0)->nodeValue : 'undefined';  
432 -  
433 - switch ($size) {  
434 - case "3" : $tensor = 1; break;  
435 - case "1" : $tensor = 0; break;  
436 - default : $tensor = 2;  
437 - }  
438 -  
439 - $value_type = $theParam->getElementsByTagName("type")->item(0)->nodeValue;  
440 - $fill_value = $theParam->getElementsByTagName("fillvalue")->item(0)->nodeValue;  
441 - if (!$fill_value) $fill_value = -1.e+31;  
442 - if ($fill_value == "NaN") $fill_value = "!Values.F_NAN";  
443 - $units = $theParam->getElementsByTagName("units")->item(0)->nodeValue;  
444 - if (!$units) $units = "";  
445 - $sampling = $theParam->getElementsByTagName("minsampling")->item(0)->nodeValue;  
446 - $maxSampling = $sampling;  
447 - if ($theParam->getElementsByTagName("maxsampling")->item(0)->nodeValue != $sampling)  
448 - $maxSampling =$theParam->getElementsByTagName("maxsampling")->item(0)->nodeValue;  
449 -  
450 - $legend = $theParam->getElementsByTagName("legend")->item(0)->nodeValue;  
451 - if (!$legend) $legend = " X; Y; Z";  
452 - $ytitle = $theParam->getElementsByTagName("ytitle")->item(0)->nodeValue;  
453 -/*  
454 -* Make init  
455 -*/  
456 -  
457 - $newfile = fopen($this->TargetDir.$alias."_init.pro","w");  
458 - $pairs = array("WSDPARAM" => $alias,"WSDTENSOR"=>$tensor,"WSDUNITS"=>"'".$units."'","WSDPLOTTYPE"=>"'".$plot_type."'","WSDSIZE"=>$size,"WSDYTITLE"=>"'".$ytitle."'", "WSDLEGEND"=>"'".$legend."'");  
459 - $lines = file($this->PRODIR."wsd_init.pro");  
460 - for ($i = 0; $i < count($lines); $i++) {  
461 - $newline = strtr($lines[$i],$pairs);  
462 - fwrite($newfile,$newline);  
463 - }  
464 - fclose($newfile);  
465 -  
466 - if ($size > 1) {  
467 - $comp = array("/X", "/Y", "/Z");  
468 - for ($i = 0; $i < $size; $i++) {  
469 - $newfile = fopen($alias."_".$i."_init.pro", "w");  
470 - fwrite($newfile,"pro ".$alias."_".$i."_init \n");  
471 - fwrite($newfile,"cmd = '".$alias."_init, ".$comp[$i]."'\n");  
472 - fwrite($newfile,"R = execute(cmd) \n");  
473 - fwrite($newfile,"return \n");  
474 - fwrite($newfile,"end \n");  
475 - fclose($newfile);  
476 - }  
477 - }  
478 -  
479 -/*  
480 -* Make com  
481 -*/  
482 -  
483 - $newfile = fopen($this->TargetDir.$alias."_com.pro","w");  
484 - $pairs = array("WSDPARAM" => $alias,"WSDSIZE"=>$size,"WSDSAMPLING"=>$sampling,"WSDMAXSAMPLING"=>$maxSampling, "WSDFILLVALUE"=>$fill_value);  
485 - $lines = file($this->PRODIR."wsd_com.pro");  
486 - for ($i = 0; $i < count($lines); $i++) {  
487 - $newline = strtr($lines[$i],$pairs);  
488 - fwrite($newfile,$newline);  
489 - }  
490 - fclose($newfile);  
491 -  
492 -/*  
493 -* Make get  
494 -*/  
495 -  
496 - $newfile = fopen($this->TargetDir."get".$alias.".pro","w");  
497 - $pairs = array("WSDPARAM" => $alias,"WSDSIZE"=>$size,"WSDPARAMNAME"=>"'".$name."'",  
498 - "WSDDATATYPE" => "'".$value_type."'","WSDFORMAT" => "'".$format."'",  
499 - "WSDVI" => "'".$vi."'", "WSDMOREDATA" => $isMoreData,"WSDPLOTTYPE"=>"'".$plot_type."'");  
500 - $lines = file($this->PRODIR."getwsd.pro");  
501 - for ($i = 0; $i < count($lines); $i++) {  
502 - $newline = strtr($lines[$i],$pairs);  
503 - fwrite($newfile,$newline);  
504 - }  
505 - fclose($newfile);  
506 -/*  
507 -* Make parameter  
508 -*/  
509 -  
510 - $newfile = fopen($this->TargetDir.$alias."_.pro","w");  
511 - $pairs = array("WSDPARAM" => $alias,"WSDSIZE"=>$size,"WSDSAMPLING"=>$sampling, "WSDPARAMNAME"=>"'".$name."'",  
512 - "WSDDATATYPE" => "'".$value_type."'","WSDFORMAT" => "'".$format."'","WSDFILLVALUE"=>$fill_value, "WSDVI" => "'".$vi."'");  
513 -  
514 - $lines = file($this->PRODIR."wsd_.pro");  
515 -  
516 - for ($i = 0; $i < count($lines); $i++) {  
517 - $newline = strtr($lines[$i],$pairs);  
518 - fwrite($newfile,$newline);  
519 - }  
520 - fclose($newfile);  
521 -}  
522 -  
523 -  
524 -}  
525 -  
526 -?>  
527 \ No newline at end of file 0 \ No newline at end of file
php/old_amda/Parser.php deleted
@@ -1,265 +0,0 @@ @@ -1,265 +0,0 @@
1 -<?php  
2 -/** @class Parser  
3 -* @version $Id: Parser.php 2938 2015-06-05 16:23:33Z elena $  
4 -* @brief  
5 -*  
6 -*/  
7 -class Parser {  
8 -  
9 - public $wsXML, $constantsXML, $functionsXML, $aliasesXML;  
10 - public $dom;  
11 - public $idl_pairs = array(">" => " GT ", "<" => " LT ", "&" => " AND ", "|" => " OR ", "=" => " EQ ");  
12 -  
13 - public $file;  
14 -  
15 - function __construct(){  
16 - $this->wsXML = USERWSDIR."WsParams.xml";  
17 - $this->functionsXML = Functions."functions.xml";  
18 - $this->constantsXML = Functions."constants.xml";  
19 - $this->aliasesXML = USERWSDIR."Alias.xml";  
20 - $this->dom = new DomDocument("1.0");  
21 -  
22 - }  
23 -  
24 -/*  
25 -* Replace Constants, Aliases and WS params by their real values  
26 -*/  
27 - public function replaceAll($chain){  
28 -  
29 - $newChain = $this->replaceWsParams($chain);  
30 - $newNewChain = $this->replaceAliases($newChain);  
31 - $newNewNewChain = $this->replaceConstants($newNewChain);  
32 -  
33 - return $newNewNewChain;  
34 - }  
35 -  
36 -/*  
37 -* Replace Constants, Aliases and WS params by their real values  
38 -*/  
39 - public function replaceAllButWS($chain){  
40 -  
41 - $newChain = $this->replaceAliases($chain);  
42 - $newNewChain = $this->replaceConstants($newChain);  
43 -  
44 - return $newNewChain;  
45 - }  
46 -/*  
47 -* Return array of Variables  
48 -*/  
49 -  
50 - public function getVars($chain){  
51 -  
52 - $arr = $this->delimitIt($chain);  
53 -  
54 - $arr = $this->selectVariables($arr);  
55 - $arr = $this->deSelectFunctions($arr);  
56 -  
57 - return $arr;  
58 - }  
59 -  
60 -/*  
61 -*  
62 -*/  
63 - public function convert2Idl($chain) {  
64 -  
65 - return (strtr($chain,$this->idl_pairs));  
66 -  
67 - }  
68 -  
69 - public function getFunctionsNames() {  
70 -  
71 - $this->dom->load($this->functionsXML);  
72 - $functions_ = $this->dom->getElementsByTagName("function");  
73 -  
74 - for ($i = 0; $i < $functions_->length; $i++) {  
75 - $tempArr = explode('(', $functions_->item($i)->getAttribute("name"));  
76 - $functions[$i] = $tempArr[0];  
77 - }  
78 -  
79 - return $functions;  
80 - }  
81 -  
82 - public function deSelectFunctions($arr) {  
83 -  
84 - $functions = $this->getFunctionsNames();  
85 -  
86 - $arr = array_values($arr);  
87 -  
88 - $N_arr = count($arr);  
89 - for ($i = 0; $i < $N_arr; $i++)  
90 - foreach($functions as $the_function)  
91 - if (strcasecmp(trim($the_function),trim($arr[$i])) == 0) {  
92 - unset($arr[$i]);  
93 - continue 2;  
94 - }  
95 -  
96 - return array_values($arr);  
97 - }  
98 -  
99 - public function replaceAliases($chain) {  
100 -  
101 - if ($this->isThereAlias($chain)) {  
102 -  
103 - $this->dom->load($this->aliasesXML);  
104 - $aliases_ = $this->dom->getElementsByTagName("alias");  
105 -  
106 - if ($aliases_->length > 0 ) {  
107 - for ($i = 0; $i < $aliases_->length; $i++) {  
108 - $aliases["#".$aliases_->item($i)->getAttribute("name")] = "(".$aliases_->item($i)->nodeValue.")";  
109 -  
110 - }  
111 -  
112 - $chainReplaced = strtr($chain, $aliases);  
113 -  
114 - return $chainReplaced;  
115 - }  
116 - }  
117 - return $chain;  
118 - }  
119 -  
120 -  
121 - public function replaceConstants($chain) {  
122 -  
123 - if ($this->isThereConstant($chain)) {  
124 -  
125 - $this->dom->load($this->constantsXML);  
126 - $constants_ = $this->dom->getElementsByTagName("constant");  
127 -  
128 - for ($i = 0; $i < $constants_->length; $i++) {  
129 -  
130 - $constants["@".$constants_->item($i)->getAttribute("name")] = "(".$constants_->item($i)->nodeValue.")";  
131 -  
132 - }  
133 -  
134 - $chainReplaced = strtr($chain, $constants);  
135 -  
136 - return $chainReplaced;  
137 - }  
138 - return $chain;  
139 - }  
140 -  
141 - public function replaceWsParams($chain) {  
142 -  
143 - if ($this->isThereWs($chain)) {  
144 - $this->dom->load($this->wsXML);  
145 - $wspar = $this->dom->getElementsByTagName("param");  
146 -  
147 - if ($wspar->length > 0) {  
148 - for ($i = 0; $i < $wspar->length; $i++) {  
149 -//Changes: low 'ws' and attributes  
150 - $wsName = "ws_".$wspar->item($i)->getAttribute('name');  
151 - $wsChain = $wspar->item($i)->getAttribute("buildchain");  
152 - $wsParams[$wsName]= $wsChain;  
153 - }  
154 - $chainReplaced = strtr($chain, $wsParams);  
155 - return $chainReplaced;  
156 - }  
157 - }  
158 - return $chain;  
159 - }  
160 -  
161 - public function substrAliasWs($chain, $aliasName, $paramName) {  
162 -  
163 - $aliasName="#".$aliasName;  
164 - $pos = strpos($chain, $aliasName);  
165 - while ( $pos !== FALSE ) {  
166 - $pos = $pos+strlen($aliasName);  
167 - if (preg_match('/[-+*,^<>&|=\/\[\]\(\)]/', $chain[$pos]) || $chain[$pos] === '') {  
168 - $chain = substr_replace($chain, $paramName,$pos-strlen($aliasName),strlen($aliasName));  
169 - }  
170 - $pos = strpos($chain, $aliasName, $pos);  
171 - }  
172 -  
173 - return $chain;  
174 - }  
175 -  
176 - public function substrParamWs($chain, $paramName, $aliasName) {  
177 -  
178 - $aliasName="#".$aliasName;  
179 - $pos = strpos($chain, $paramName);  
180 - while ( $pos !== FALSE ) {  
181 - $pos = $pos+strlen($paramName);  
182 - if (preg_match('/[-+*,^<>&|=\/\[\]\(\)]/', $chain[$pos]) || $chain[$pos] === '') {  
183 - $chain = substr_replace($chain, $aliasName,$pos-strlen($paramName),strlen($paramName));  
184 - }  
185 - $pos = strpos($chain, $paramName, $pos);  
186 - }  
187 -  
188 - return $chain;  
189 - }  
190 -  
191 - public function modifyParamWs($chain, $oldAliasName, $newAliasName) {  
192 -  
193 - $oldAliasName="#".$oldAliasName;  
194 - $newAliasName="#".$newAliasName;  
195 - $pos = strpos($chain, $oldAliasName);  
196 - while ( $pos !== FALSE ) {  
197 - $pos = $pos+strlen($oldAliasName);  
198 - if (preg_match('/[-+*,^<>&|=\/\[\]\(\)]/', $chain[$pos]) || $chain[$pos] === '') {  
199 - $chain = substr_replace($chain, $newAliasName,$pos-strlen($oldAliasName),strlen($oldAliasName));  
200 - }  
201 - $pos = strpos($chain, $oldAliasName, $pos);  
202 - }  
203 -  
204 - return $chain;  
205 - }  
206 -  
207 -  
208 - public function delimitIt($chain) {  
209 -  
210 - $delimiter = '[]+,/*()^<>&|=[-]+';  
211 - $array = split($delimiter,$chain);  
212 - if (trim(end($array)) == "") array_pop($array);  
213 -  
214 - return $array;  
215 - }  
216 -  
217 -  
218 - public function selectVariables($arr) {  
219 -  
220 - $N_arr = count($arr);  
221 - for ($i = 0; $i < $N_arr; $i++) {  
222 - $arr[$i] = trim($arr[$i]);  
223 - if (!$this->isVariable($arr[$i]))  
224 - unset($arr[$i]);  
225 - }  
226 -  
227 - return array_unique(array_values($arr));  
228 - }  
229 -  
230 -  
231 - public function isNumber($value) {  
232 -  
233 - return preg_match('/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/', $value);  
234 - }  
235 -  
236 - public function isVariable($value) {  
237 -  
238 - return preg_match('/^[a-zA-Z]/', $value);  
239 - }  
240 -  
241 - public function isConstant($value) {  
242 -  
243 - return preg_match('/^@/', $value);  
244 - }  
245 -  
246 - public function isAlias($value) {  
247 -  
248 - return preg_match('/^#/', $value);  
249 - }  
250 -  
251 - public function isThereConstant($value) {  
252 -  
253 - return preg_match('/@/', $value);  
254 - }  
255 -  
256 - public function isThereWS($value) {  
257 -  
258 - return preg_match('/ws_/', $value);  
259 - }  
260 -  
261 - public function isThereAlias($value) {  
262 -  
263 - return preg_match('/#/', $value);  
264 - }  
265 -}  
266 \ No newline at end of file 0 \ No newline at end of file
php/old_amda/paramBuild.php deleted
@@ -1,88 +0,0 @@ @@ -1,88 +0,0 @@
1 -<?php  
2 -  
3 -/** @file paramBuild.php  
4 -* @brief parameter generator from templates and parameter name  
5 -* @version $Id: $  
6 -* @date Tue Sep 11 14:04:55 CEST 2007  
7 -*/  
8 -  
9 -/*  
10 -* To exclude crazy stuff from parameter name  
11 -*/  
12 -  
13 - function param2dd($paramID)  
14 - {  
15 - $pairs = array("-" => "_", "%" => "_","\\" => "_","$" => "_",":" => "_","+" =>" _","-" => "_","#" => "_","@" => "_", "." => "_",">" => "_", "<" => "_");  
16 - return strtr($paramID, $pairs);  
17 - }  
18 -  
19 -/*  
20 -* Object -> Stuff for DD Graph  
21 -*/  
22 - function paramBuild($paramID)  
23 - {  
24 -  
25 - $TargetDir = "./"; // WHERE CREATE???  
26 - $PRODIR = TEMPLATES;  
27 - $LIBDIR = PREDEFINED; // predefined ext params  
28 -  
29 - $ddParamID = param2dd($paramID);  
30 - $paramFunc = strtolower($ddParamID);  
31 -  
32 - $SED = "sed 's/NEWPARAM/".$paramID."/g' ".$PRODIR."newparam_init.pro | sed 's/DDPARAM/".$ddParamID."/g' > ".$TargetDir.$paramFunc."_init.pro";  
33 - system($SED);  
34 -  
35 - $SED = "sed 's/NEWPARAM/".$paramID."/g' ".$PRODIR."newparam_com.pro | sed 's/DDPARAM/".$ddParamID."/g' > ".$TargetDir.$paramFunc."_com.pro";  
36 - system($SED);  
37 -  
38 - $SED = "sed 's/DDPARAM/".$ddParamID."/g' ".$PRODIR."getnewparam.pro > ".$TargetDir."get".$paramFunc.".pro";  
39 - system($SED);  
40 -  
41 -/*  
42 -* Add predefined functions if exists  
43 -*/  
44 - foreach (glob($LIBDIR."*".$paramFunc."*.pro") as $filename)  
45 - copy($filename, str_replace($LIBDIR, $TargetDir, $filename));  
46 -  
47 - }  
48 -  
49 -/*  
50 -* components  
51 -*/  
52 - function paramBuildComp($paramID, $comp)  
53 - {  
54 - $TargetDir = "./"; // WHERE CREATE???  
55 - $PRODIR = TEMPLATES;  
56 - $ddParamID = param2dd($paramID);  
57 - $paramFunc = strtolower($ddParamID).'_'.$comp;  
58 -  
59 - $SED = "sed 's/DDPARAM/".$ddParamID."/g' ".$PRODIR."newparam_XXX_init.pro | sed 's/XXX/".$comp."/g' > ".$TargetDir.$paramFunc."_init.pro";  
60 - system($SED);  
61 -  
62 - }  
63 -/*  
64 -* Real Parameter  
65 -*/  
66 -  
67 - function paramBuild_($paramID)  
68 - {  
69 -  
70 -  
71 - $TargetDir = "./"; // WHERE CREATE???  
72 - $PRODIR = TEMPLATES;  
73 - $LIBDIR = PREDEFINED; // predefined ext params  
74 -  
75 - $ddParamID = param2dd($paramID);  
76 - $paramFunc = strtolower($ddParamID);  
77 -  
78 -/*  
79 -* Add predefined functions if exists  
80 -*/  
81 - if (file_exists($LIBDIR.$paramFunc."_.pro")) copy($LIBDIR.$paramFunc."_.pro",$TargetDir.$paramFunc."_.pro");  
82 - else  
83 - {  
84 - $SED = "sed 's/NEWPARAM/".$paramID."/g' ".$PRODIR."newparam_.pro | sed 's/DDPARAM/".$ddParamID."/g' > ".$TargetDir.$paramFunc."_.pro";  
85 - system($SED);  
86 - }  
87 - }  
88 -?>