Version Description
Download this release
Release Info
Developer | nutsmuggler |
Plugin | Events Manager |
Version | 2.0rc1 |
Comparing to | |
See all releases |
Code changes from version 2.0b4 to 2.0rc1
- FirePHPCore/FirePHP.class.php +0 -1375
- FirePHPCore/LICENSE +0 -29
- FirePHPCore/fb.php +0 -246
- dbem_events.php +67 -33
- dbem_global_map.js +1 -1
- dbem_rsvp.php +9 -1
- events-manager.php +10 -21
- events_manager.css +3 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-ar.js +23 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-bg.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-ca.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-cs.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-da.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-de.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-es.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-fi.js +24 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-fr.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-he.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-hu.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-hy.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-id.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-is.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-it.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-ja.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-ko.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-lt.js +25 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-lv.js +25 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-nl.js +21 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-no.js +23 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-pl.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-pt-BR.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-ro.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-ru.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-sk.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-sv.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-th.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-tr.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-uk.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-zh-CN.js +22 -0
- js/jquery-ui-datepicker/i18n/ui.datepicker-zh-TW.js +23 -0
- langs/dbem-it_IT.mo +0 -0
- langs/dbem-it_IT.po +55 -36
- readme.txt +16 -6
FirePHPCore/FirePHP.class.php
DELETED
@@ -1,1375 +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-2008, 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-2008 Christoph Dorn
|
40 |
-
* @author Christoph Dorn <christoph@christophdorn.com>
|
41 |
-
* @license http://www.opensource.org/licenses/bsd-license.php
|
42 |
-
* @package FirePHP
|
43 |
-
*/
|
44 |
-
|
45 |
-
|
46 |
-
/**
|
47 |
-
* Sends the given data to the FirePHP Firefox Extension.
|
48 |
-
* The data can be displayed in the Firebug Console or in the
|
49 |
-
* "Server" request tab.
|
50 |
-
*
|
51 |
-
* For more information see: http://www.firephp.org/
|
52 |
-
*
|
53 |
-
* @copyright Copyright (C) 2007-2008 Christoph Dorn
|
54 |
-
* @author Christoph Dorn <christoph@christophdorn.com>
|
55 |
-
* @license http://www.opensource.org/licenses/bsd-license.php
|
56 |
-
* @package FirePHP
|
57 |
-
*/
|
58 |
-
class FirePHP {
|
59 |
-
|
60 |
-
/**
|
61 |
-
* FirePHP version
|
62 |
-
*
|
63 |
-
* @var string
|
64 |
-
*/
|
65 |
-
const VERSION = '0.2.1';
|
66 |
-
|
67 |
-
/**
|
68 |
-
* Firebug LOG level
|
69 |
-
*
|
70 |
-
* Logs a message to firebug console.
|
71 |
-
*
|
72 |
-
* @var string
|
73 |
-
*/
|
74 |
-
const LOG = 'LOG';
|
75 |
-
|
76 |
-
/**
|
77 |
-
* Firebug INFO level
|
78 |
-
*
|
79 |
-
* Logs a message to firebug console and displays an info icon before the message.
|
80 |
-
*
|
81 |
-
* @var string
|
82 |
-
*/
|
83 |
-
const INFO = 'INFO';
|
84 |
-
|
85 |
-
/**
|
86 |
-
* Firebug WARN level
|
87 |
-
*
|
88 |
-
* Logs a message to firebug console, displays an warning icon before the message and colors the line turquoise.
|
89 |
-
*
|
90 |
-
* @var string
|
91 |
-
*/
|
92 |
-
const WARN = 'WARN';
|
93 |
-
|
94 |
-
/**
|
95 |
-
* Firebug ERROR level
|
96 |
-
*
|
97 |
-
* Logs a message to firebug console, displays an error icon before the message and colors the line yellow. Also increments the firebug error count.
|
98 |
-
*
|
99 |
-
* @var string
|
100 |
-
*/
|
101 |
-
const ERROR = 'ERROR';
|
102 |
-
|
103 |
-
/**
|
104 |
-
* Dumps a variable to firebug's server panel
|
105 |
-
*
|
106 |
-
* @var string
|
107 |
-
*/
|
108 |
-
const DUMP = 'DUMP';
|
109 |
-
|
110 |
-
/**
|
111 |
-
* Displays a stack trace in firebug console
|
112 |
-
*
|
113 |
-
* @var string
|
114 |
-
*/
|
115 |
-
const TRACE = 'TRACE';
|
116 |
-
|
117 |
-
/**
|
118 |
-
* Displays an exception in firebug console
|
119 |
-
*
|
120 |
-
* Increments the firebug error count.
|
121 |
-
*
|
122 |
-
* @var string
|
123 |
-
*/
|
124 |
-
const EXCEPTION = 'EXCEPTION';
|
125 |
-
|
126 |
-
/**
|
127 |
-
* Displays an table in firebug console
|
128 |
-
*
|
129 |
-
* @var string
|
130 |
-
*/
|
131 |
-
const TABLE = 'TABLE';
|
132 |
-
|
133 |
-
/**
|
134 |
-
* Starts a group in firebug console
|
135 |
-
*
|
136 |
-
* @var string
|
137 |
-
*/
|
138 |
-
const GROUP_START = 'GROUP_START';
|
139 |
-
|
140 |
-
/**
|
141 |
-
* Ends a group in firebug console
|
142 |
-
*
|
143 |
-
* @var string
|
144 |
-
*/
|
145 |
-
const GROUP_END = 'GROUP_END';
|
146 |
-
|
147 |
-
/**
|
148 |
-
* Singleton instance of FirePHP
|
149 |
-
*
|
150 |
-
* @var FirePHP
|
151 |
-
*/
|
152 |
-
protected static $instance = null;
|
153 |
-
|
154 |
-
/**
|
155 |
-
* Wildfire protocol message index
|
156 |
-
*
|
157 |
-
* @var int
|
158 |
-
*/
|
159 |
-
protected $messageIndex = 1;
|
160 |
-
|
161 |
-
/**
|
162 |
-
* Options for the library
|
163 |
-
*
|
164 |
-
* @var array
|
165 |
-
*/
|
166 |
-
protected $options = array();
|
167 |
-
|
168 |
-
/**
|
169 |
-
* Filters used to exclude object members when encoding
|
170 |
-
*
|
171 |
-
* @var array
|
172 |
-
*/
|
173 |
-
protected $objectFilters = array();
|
174 |
-
|
175 |
-
/**
|
176 |
-
* A stack of objects used to detect recursion during object encoding
|
177 |
-
*
|
178 |
-
* @var object
|
179 |
-
*/
|
180 |
-
protected $objectStack = array();
|
181 |
-
|
182 |
-
/**
|
183 |
-
* Flag to enable/disable logging
|
184 |
-
*
|
185 |
-
* @var boolean
|
186 |
-
*/
|
187 |
-
protected $enabled = true;
|
188 |
-
|
189 |
-
/**
|
190 |
-
* The object constructor
|
191 |
-
*/
|
192 |
-
function __construct() {
|
193 |
-
$this->options['maxObjectDepth'] = 10;
|
194 |
-
$this->options['maxArrayDepth'] = 20;
|
195 |
-
$this->options['useNativeJsonEncode'] = true;
|
196 |
-
$this->options['includeLineNumbers'] = true;
|
197 |
-
}
|
198 |
-
|
199 |
-
/**
|
200 |
-
* When the object gets serialized only include specific object members.
|
201 |
-
*
|
202 |
-
* @return array
|
203 |
-
*/
|
204 |
-
public function __sleep() {
|
205 |
-
return array('options','objectFilters','enabled');
|
206 |
-
}
|
207 |
-
|
208 |
-
/**
|
209 |
-
* Gets singleton instance of FirePHP
|
210 |
-
*
|
211 |
-
* @param boolean $AutoCreate
|
212 |
-
* @return FirePHP
|
213 |
-
*/
|
214 |
-
public static function getInstance($AutoCreate=false) {
|
215 |
-
if($AutoCreate===true && !self::$instance) {
|
216 |
-
self::init();
|
217 |
-
}
|
218 |
-
return self::$instance;
|
219 |
-
}
|
220 |
-
|
221 |
-
/**
|
222 |
-
* Creates FirePHP object and stores it for singleton access
|
223 |
-
*
|
224 |
-
* @return FirePHP
|
225 |
-
*/
|
226 |
-
public static function init() {
|
227 |
-
return self::$instance = new self();
|
228 |
-
}
|
229 |
-
|
230 |
-
/**
|
231 |
-
* Enable and disable logging to Firebug
|
232 |
-
*
|
233 |
-
* @param boolean $Enabled TRUE to enable, FALSE to disable
|
234 |
-
* @return void
|
235 |
-
*/
|
236 |
-
public function setEnabled($Enabled) {
|
237 |
-
$this->enabled = $Enabled;
|
238 |
-
}
|
239 |
-
|
240 |
-
/**
|
241 |
-
* Check if logging is enabled
|
242 |
-
*
|
243 |
-
* @return boolean TRUE if enabled
|
244 |
-
*/
|
245 |
-
public function getEnabled() {
|
246 |
-
return $this->enabled;
|
247 |
-
}
|
248 |
-
|
249 |
-
/**
|
250 |
-
* Specify a filter to be used when encoding an object
|
251 |
-
*
|
252 |
-
* Filters are used to exclude object members.
|
253 |
-
*
|
254 |
-
* @param string $Class The class name of the object
|
255 |
-
* @param array $Filter An array or members to exclude
|
256 |
-
* @return void
|
257 |
-
*/
|
258 |
-
public function setObjectFilter($Class, $Filter) {
|
259 |
-
$this->objectFilters[$Class] = $Filter;
|
260 |
-
}
|
261 |
-
|
262 |
-
/**
|
263 |
-
* Set some options for the library
|
264 |
-
*
|
265 |
-
* Options:
|
266 |
-
* - maxObjectDepth: The maximum depth to traverse objects (default: 10)
|
267 |
-
* - maxArrayDepth: The maximum depth to traverse arrays (default: 20)
|
268 |
-
* - useNativeJsonEncode: If true will use json_encode() (default: true)
|
269 |
-
* - includeLineNumbers: If true will include line numbers and filenames (default: true)
|
270 |
-
*
|
271 |
-
* @param array $Options The options to be set
|
272 |
-
* @return void
|
273 |
-
*/
|
274 |
-
public function setOptions($Options) {
|
275 |
-
$this->options = array_merge($this->options,$Options);
|
276 |
-
}
|
277 |
-
|
278 |
-
/**
|
279 |
-
* Register FirePHP as your error handler
|
280 |
-
*
|
281 |
-
* Will throw exceptions for each php error.
|
282 |
-
*/
|
283 |
-
public function registerErrorHandler()
|
284 |
-
{
|
285 |
-
//NOTE: The following errors will not be caught by this error handler:
|
286 |
-
// E_ERROR, E_PARSE, E_CORE_ERROR,
|
287 |
-
// E_CORE_WARNING, E_COMPILE_ERROR,
|
288 |
-
// E_COMPILE_WARNING, E_STRICT
|
289 |
-
|
290 |
-
set_error_handler(array($this,'errorHandler'));
|
291 |
-
}
|
292 |
-
|
293 |
-
/**
|
294 |
-
* FirePHP's error handler
|
295 |
-
*
|
296 |
-
* Throws exception for each php error that will occur.
|
297 |
-
*
|
298 |
-
* @param int $errno
|
299 |
-
* @param string $errstr
|
300 |
-
* @param string $errfile
|
301 |
-
* @param int $errline
|
302 |
-
* @param array $errcontext
|
303 |
-
*/
|
304 |
-
public function errorHandler($errno, $errstr, $errfile, $errline, $errcontext)
|
305 |
-
{
|
306 |
-
// Don't throw exception if error reporting is switched off
|
307 |
-
if (error_reporting() == 0) {
|
308 |
-
return;
|
309 |
-
}
|
310 |
-
// Only throw exceptions for errors we are asking for
|
311 |
-
if (error_reporting() & $errno) {
|
312 |
-
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
|
313 |
-
}
|
314 |
-
}
|
315 |
-
|
316 |
-
/**
|
317 |
-
* Register FirePHP as your exception handler
|
318 |
-
*/
|
319 |
-
public function registerExceptionHandler()
|
320 |
-
{
|
321 |
-
set_exception_handler(array($this,'exceptionHandler'));
|
322 |
-
}
|
323 |
-
|
324 |
-
/**
|
325 |
-
* FirePHP's exception handler
|
326 |
-
*
|
327 |
-
* Logs all exceptions to your firebug console and then stops the script.
|
328 |
-
*
|
329 |
-
* @param Exception $Exception
|
330 |
-
* @throws Exception
|
331 |
-
*/
|
332 |
-
function exceptionHandler($Exception) {
|
333 |
-
$this->fb($Exception);
|
334 |
-
}
|
335 |
-
|
336 |
-
/**
|
337 |
-
* Set custom processor url for FirePHP
|
338 |
-
*
|
339 |
-
* @param string $URL
|
340 |
-
*/
|
341 |
-
public function setProcessorUrl($URL)
|
342 |
-
{
|
343 |
-
$this->setHeader('X-FirePHP-ProcessorURL', $URL);
|
344 |
-
}
|
345 |
-
|
346 |
-
/**
|
347 |
-
* Set custom renderer url for FirePHP
|
348 |
-
*
|
349 |
-
* @param string $URL
|
350 |
-
*/
|
351 |
-
public function setRendererUrl($URL)
|
352 |
-
{
|
353 |
-
$this->setHeader('X-FirePHP-RendererURL', $URL);
|
354 |
-
}
|
355 |
-
|
356 |
-
/**
|
357 |
-
* Start a group for following messages
|
358 |
-
*
|
359 |
-
* @param string $Name
|
360 |
-
* @return true
|
361 |
-
* @throws Exception
|
362 |
-
*/
|
363 |
-
public function group($Name) {
|
364 |
-
return $this->fb(null, $Name, FirePHP::GROUP_START);
|
365 |
-
}
|
366 |
-
|
367 |
-
/**
|
368 |
-
* Ends a group you have started before
|
369 |
-
*
|
370 |
-
* @return true
|
371 |
-
* @throws Exception
|
372 |
-
*/
|
373 |
-
public function groupEnd() {
|
374 |
-
return $this->fb(null, null, FirePHP::GROUP_END);
|
375 |
-
}
|
376 |
-
|
377 |
-
/**
|
378 |
-
* Log object with label to firebug console
|
379 |
-
*
|
380 |
-
* @see FirePHP::LOG
|
381 |
-
* @param mixes $Object
|
382 |
-
* @param string $Label
|
383 |
-
* @return true
|
384 |
-
* @throws Exception
|
385 |
-
*/
|
386 |
-
public function log($Object, $Label=null) {
|
387 |
-
return $this->fb($Object, $Label, FirePHP::LOG);
|
388 |
-
}
|
389 |
-
|
390 |
-
/**
|
391 |
-
* Log object with label to firebug console
|
392 |
-
*
|
393 |
-
* @see FirePHP::INFO
|
394 |
-
* @param mixes $Object
|
395 |
-
* @param string $Label
|
396 |
-
* @return true
|
397 |
-
* @throws Exception
|
398 |
-
*/
|
399 |
-
public function info($Object, $Label=null) {
|
400 |
-
return $this->fb($Object, $Label, FirePHP::INFO);
|
401 |
-
}
|
402 |
-
|
403 |
-
/**
|
404 |
-
* Log object with label to firebug console
|
405 |
-
*
|
406 |
-
* @see FirePHP::WARN
|
407 |
-
* @param mixes $Object
|
408 |
-
* @param string $Label
|
409 |
-
* @return true
|
410 |
-
* @throws Exception
|
411 |
-
*/
|
412 |
-
public function warn($Object, $Label=null) {
|
413 |
-
return $this->fb($Object, $Label, FirePHP::WARN);
|
414 |
-
}
|
415 |
-
|
416 |
-
/**
|
417 |
-
* Log object with label to firebug console
|
418 |
-
*
|
419 |
-
* @see FirePHP::ERROR
|
420 |
-
* @param mixes $Object
|
421 |
-
* @param string $Label
|
422 |
-
* @return true
|
423 |
-
* @throws Exception
|
424 |
-
*/
|
425 |
-
public function error($Object, $Label=null) {
|
426 |
-
return $this->fb($Object, $Label, FirePHP::ERROR);
|
427 |
-
}
|
428 |
-
|
429 |
-
/**
|
430 |
-
* Dumps key and variable to firebug server panel
|
431 |
-
*
|
432 |
-
* @see FirePHP::DUMP
|
433 |
-
* @param string $Key
|
434 |
-
* @param mixed $Variable
|
435 |
-
* @return true
|
436 |
-
* @throws Exception
|
437 |
-
*/
|
438 |
-
public function dump($Key, $Variable) {
|
439 |
-
return $this->fb($Variable, $Key, FirePHP::DUMP);
|
440 |
-
}
|
441 |
-
|
442 |
-
/**
|
443 |
-
* Log a trace in the firebug console
|
444 |
-
*
|
445 |
-
* @see FirePHP::TRACE
|
446 |
-
* @param string $Label
|
447 |
-
* @return true
|
448 |
-
* @throws Exception
|
449 |
-
*/
|
450 |
-
public function trace($Label) {
|
451 |
-
return $this->fb($Label, FirePHP::TRACE);
|
452 |
-
}
|
453 |
-
|
454 |
-
/**
|
455 |
-
* Log a table in the firebug console
|
456 |
-
*
|
457 |
-
* @see FirePHP::TABLE
|
458 |
-
* @param string $Label
|
459 |
-
* @param string $Table
|
460 |
-
* @return true
|
461 |
-
* @throws Exception
|
462 |
-
*/
|
463 |
-
public function table($Label, $Table) {
|
464 |
-
return $this->fb($Table, $Label, FirePHP::TABLE);
|
465 |
-
}
|
466 |
-
|
467 |
-
/**
|
468 |
-
* Check if FirePHP is installed on client
|
469 |
-
*
|
470 |
-
* @return boolean
|
471 |
-
*/
|
472 |
-
public function detectClientExtension() {
|
473 |
-
/* Check if FirePHP is installed on client */
|
474 |
-
if(!@preg_match_all('/\sFirePHP\/([\.|\d]*)\s?/si',$this->getUserAgent(),$m) ||
|
475 |
-
!version_compare($m[1][0],'0.0.6','>=')) {
|
476 |
-
return false;
|
477 |
-
}
|
478 |
-
return true;
|
479 |
-
}
|
480 |
-
|
481 |
-
/**
|
482 |
-
* Log varible to Firebug
|
483 |
-
*
|
484 |
-
* @see http://www.firephp.org/Wiki/Reference/Fb
|
485 |
-
* @param mixed $Object The variable to be logged
|
486 |
-
* @return true Return TRUE if message was added to headers, FALSE otherwise
|
487 |
-
* @throws Exception
|
488 |
-
*/
|
489 |
-
public function fb($Object) {
|
490 |
-
|
491 |
-
if(!$this->enabled) {
|
492 |
-
return false;
|
493 |
-
}
|
494 |
-
|
495 |
-
if (headers_sent($filename, $linenum)) {
|
496 |
-
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.');
|
497 |
-
}
|
498 |
-
|
499 |
-
$Type = null;
|
500 |
-
$Label = null;
|
501 |
-
|
502 |
-
if(func_num_args()==1) {
|
503 |
-
} else
|
504 |
-
if(func_num_args()==2) {
|
505 |
-
switch(func_get_arg(1)) {
|
506 |
-
case self::LOG:
|
507 |
-
case self::INFO:
|
508 |
-
case self::WARN:
|
509 |
-
case self::ERROR:
|
510 |
-
case self::DUMP:
|
511 |
-
case self::TRACE:
|
512 |
-
case self::EXCEPTION:
|
513 |
-
case self::TABLE:
|
514 |
-
case self::GROUP_START:
|
515 |
-
case self::GROUP_END:
|
516 |
-
$Type = func_get_arg(1);
|
517 |
-
break;
|
518 |
-
default:
|
519 |
-
$Label = func_get_arg(1);
|
520 |
-
break;
|
521 |
-
}
|
522 |
-
} else
|
523 |
-
if(func_num_args()==3) {
|
524 |
-
$Type = func_get_arg(2);
|
525 |
-
$Label = func_get_arg(1);
|
526 |
-
} else {
|
527 |
-
throw $this->newException('Wrong number of arguments to fb() function!');
|
528 |
-
}
|
529 |
-
|
530 |
-
|
531 |
-
if(!$this->detectClientExtension()) {
|
532 |
-
return false;
|
533 |
-
}
|
534 |
-
|
535 |
-
$meta = array();
|
536 |
-
$skipFinalObjectEncode = false;
|
537 |
-
|
538 |
-
if($Object instanceof Exception) {
|
539 |
-
|
540 |
-
$meta['file'] = $this->_escapeTraceFile($Object->getFile());
|
541 |
-
$meta['line'] = $Object->getLine();
|
542 |
-
|
543 |
-
$trace = $Object->getTrace();
|
544 |
-
if($Object instanceof ErrorException
|
545 |
-
&& isset($trace[0]['function'])
|
546 |
-
&& $trace[0]['function']=='errorHandler'
|
547 |
-
&& isset($trace[0]['class'])
|
548 |
-
&& $trace[0]['class']=='FirePHP') {
|
549 |
-
|
550 |
-
$severity = false;
|
551 |
-
switch($Object->getSeverity()) {
|
552 |
-
case E_WARNING: $severity = 'E_WARNING'; break;
|
553 |
-
case E_NOTICE: $severity = 'E_NOTICE'; break;
|
554 |
-
case E_USER_ERROR: $severity = 'E_USER_ERROR'; break;
|
555 |
-
case E_USER_WARNING: $severity = 'E_USER_WARNING'; break;
|
556 |
-
case E_USER_NOTICE: $severity = 'E_USER_NOTICE'; break;
|
557 |
-
case E_STRICT: $severity = 'E_STRICT'; break;
|
558 |
-
case E_RECOVERABLE_ERROR: $severity = 'E_RECOVERABLE_ERROR'; break;
|
559 |
-
case E_DEPRECATED: $severity = 'E_DEPRECATED'; break;
|
560 |
-
case E_USER_DEPRECATED: $severity = 'E_USER_DEPRECATED'; break;
|
561 |
-
}
|
562 |
-
|
563 |
-
$Object = array('Class'=>get_class($Object),
|
564 |
-
'Message'=>$severity.': '.$Object->getMessage(),
|
565 |
-
'File'=>$this->_escapeTraceFile($Object->getFile()),
|
566 |
-
'Line'=>$Object->getLine(),
|
567 |
-
'Type'=>'trigger',
|
568 |
-
'Trace'=>$this->_escapeTrace(array_splice($trace,2)));
|
569 |
-
$skipFinalObjectEncode = true;
|
570 |
-
} else {
|
571 |
-
$Object = array('Class'=>get_class($Object),
|
572 |
-
'Message'=>$Object->getMessage(),
|
573 |
-
'File'=>$this->_escapeTraceFile($Object->getFile()),
|
574 |
-
'Line'=>$Object->getLine(),
|
575 |
-
'Type'=>'throw',
|
576 |
-
'Trace'=>$this->_escapeTrace($trace));
|
577 |
-
$skipFinalObjectEncode = true;
|
578 |
-
}
|
579 |
-
$Type = self::EXCEPTION;
|
580 |
-
|
581 |
-
} else
|
582 |
-
if($Type==self::TRACE) {
|
583 |
-
|
584 |
-
$trace = debug_backtrace();
|
585 |
-
if(!$trace) return false;
|
586 |
-
for( $i=0 ; $i<sizeof($trace) ; $i++ ) {
|
587 |
-
|
588 |
-
if(isset($trace[$i]['class'])
|
589 |
-
&& isset($trace[$i]['file'])
|
590 |
-
&& ($trace[$i]['class']=='FirePHP'
|
591 |
-
|| $trace[$i]['class']=='FB')
|
592 |
-
&& (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
|
593 |
-
|| substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
|
594 |
-
/* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
|
595 |
-
} else
|
596 |
-
if(isset($trace[$i]['class'])
|
597 |
-
&& isset($trace[$i+1]['file'])
|
598 |
-
&& $trace[$i]['class']=='FirePHP'
|
599 |
-
&& substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
|
600 |
-
/* Skip fb() */
|
601 |
-
} else
|
602 |
-
if($trace[$i]['function']=='fb'
|
603 |
-
|| $trace[$i]['function']=='trace'
|
604 |
-
|| $trace[$i]['function']=='send') {
|
605 |
-
$Object = array('Class'=>isset($trace[$i]['class'])?$trace[$i]['class']:'',
|
606 |
-
'Type'=>isset($trace[$i]['type'])?$trace[$i]['type']:'',
|
607 |
-
'Function'=>isset($trace[$i]['function'])?$trace[$i]['function']:'',
|
608 |
-
'Message'=>$trace[$i]['args'][0],
|
609 |
-
'File'=>isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'',
|
610 |
-
'Line'=>isset($trace[$i]['line'])?$trace[$i]['line']:'',
|
611 |
-
'Args'=>isset($trace[$i]['args'])?$this->encodeObject($trace[$i]['args']):'',
|
612 |
-
'Trace'=>$this->_escapeTrace(array_splice($trace,$i+1)));
|
613 |
-
|
614 |
-
$skipFinalObjectEncode = true;
|
615 |
-
$meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
|
616 |
-
$meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
|
617 |
-
break;
|
618 |
-
}
|
619 |
-
}
|
620 |
-
|
621 |
-
} else
|
622 |
-
if($Type==self::TABLE) {
|
623 |
-
|
624 |
-
if(isset($Object[0]) && is_string($Object[0])) {
|
625 |
-
$Object[1] = $this->encodeTable($Object[1]);
|
626 |
-
} else {
|
627 |
-
$Object = $this->encodeTable($Object);
|
628 |
-
}
|
629 |
-
|
630 |
-
$skipFinalObjectEncode = true;
|
631 |
-
|
632 |
-
} else {
|
633 |
-
if($Type===null) {
|
634 |
-
$Type = self::LOG;
|
635 |
-
}
|
636 |
-
}
|
637 |
-
|
638 |
-
if($this->options['includeLineNumbers']) {
|
639 |
-
if(!isset($meta['file']) || !isset($meta['line'])) {
|
640 |
-
|
641 |
-
$trace = debug_backtrace();
|
642 |
-
for( $i=0 ; $trace && $i<sizeof($trace) ; $i++ ) {
|
643 |
-
|
644 |
-
if(isset($trace[$i]['class'])
|
645 |
-
&& isset($trace[$i]['file'])
|
646 |
-
&& ($trace[$i]['class']=='FirePHP'
|
647 |
-
|| $trace[$i]['class']=='FB')
|
648 |
-
&& (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
|
649 |
-
|| substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
|
650 |
-
/* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
|
651 |
-
} else
|
652 |
-
if(isset($trace[$i]['class'])
|
653 |
-
&& isset($trace[$i+1]['file'])
|
654 |
-
&& $trace[$i]['class']=='FirePHP'
|
655 |
-
&& substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
|
656 |
-
/* Skip fb() */
|
657 |
-
} else
|
658 |
-
if(isset($trace[$i]['file'])
|
659 |
-
&& substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php') {
|
660 |
-
/* Skip FB::fb() */
|
661 |
-
} else {
|
662 |
-
$meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
|
663 |
-
$meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
|
664 |
-
break;
|
665 |
-
}
|
666 |
-
}
|
667 |
-
|
668 |
-
}
|
669 |
-
} else {
|
670 |
-
unset($meta['file']);
|
671 |
-
unset($meta['line']);
|
672 |
-
}
|
673 |
-
|
674 |
-
$this->setHeader('X-Wf-Protocol-1','http://meta.wildfirehq.org/Protocol/JsonStream/0.2');
|
675 |
-
$this->setHeader('X-Wf-1-Plugin-1','http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/'.self::VERSION);
|
676 |
-
|
677 |
-
$structure_index = 1;
|
678 |
-
if($Type==self::DUMP) {
|
679 |
-
$structure_index = 2;
|
680 |
-
$this->setHeader('X-Wf-1-Structure-2','http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1');
|
681 |
-
} else {
|
682 |
-
$this->setHeader('X-Wf-1-Structure-1','http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');
|
683 |
-
}
|
684 |
-
|
685 |
-
if($Type==self::DUMP) {
|
686 |
-
$msg = '{"'.$Label.'":'.$this->jsonEncode($Object, $skipFinalObjectEncode).'}';
|
687 |
-
} else {
|
688 |
-
$msg_meta = array('Type'=>$Type);
|
689 |
-
if($Label!==null) {
|
690 |
-
$msg_meta['Label'] = $Label;
|
691 |
-
}
|
692 |
-
if(isset($meta['file'])) {
|
693 |
-
$msg_meta['File'] = $meta['file'];
|
694 |
-
}
|
695 |
-
if(isset($meta['line'])) {
|
696 |
-
$msg_meta['Line'] = $meta['line'];
|
697 |
-
}
|
698 |
-
$msg = '['.$this->jsonEncode($msg_meta).','.$this->jsonEncode($Object, $skipFinalObjectEncode).']';
|
699 |
-
}
|
700 |
-
|
701 |
-
$parts = explode("\n",chunk_split($msg, 5000, "\n"));
|
702 |
-
|
703 |
-
for( $i=0 ; $i<count($parts) ; $i++) {
|
704 |
-
|
705 |
-
$part = $parts[$i];
|
706 |
-
if ($part) {
|
707 |
-
|
708 |
-
if(count($parts)>2) {
|
709 |
-
// Message needs to be split into multiple parts
|
710 |
-
$this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
|
711 |
-
(($i==0)?strlen($msg):'')
|
712 |
-
. '|' . $part . '|'
|
713 |
-
. (($i<count($parts)-2)?'\\':''));
|
714 |
-
} else {
|
715 |
-
$this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
|
716 |
-
strlen($part) . '|' . $part . '|');
|
717 |
-
}
|
718 |
-
|
719 |
-
$this->messageIndex++;
|
720 |
-
|
721 |
-
if ($this->messageIndex > 99999) {
|
722 |
-
throw new Exception('Maximum number (99,999) of messages reached!');
|
723 |
-
}
|
724 |
-
}
|
725 |
-
}
|
726 |
-
|
727 |
-
$this->setHeader('X-Wf-1-Index',$this->messageIndex-1);
|
728 |
-
|
729 |
-
return true;
|
730 |
-
}
|
731 |
-
|
732 |
-
/**
|
733 |
-
* Standardizes path for windows systems.
|
734 |
-
*
|
735 |
-
* @param string $Path
|
736 |
-
* @return string
|
737 |
-
*/
|
738 |
-
protected function _standardizePath($Path) {
|
739 |
-
return preg_replace('/\\\\+/','/',$Path);
|
740 |
-
}
|
741 |
-
|
742 |
-
/**
|
743 |
-
* Escape trace path for windows systems
|
744 |
-
*
|
745 |
-
* @param array $Trace
|
746 |
-
* @return array
|
747 |
-
*/
|
748 |
-
protected function _escapeTrace($Trace) {
|
749 |
-
if(!$Trace) return $Trace;
|
750 |
-
for( $i=0 ; $i<sizeof($Trace) ; $i++ ) {
|
751 |
-
if(isset($Trace[$i]['file'])) {
|
752 |
-
$Trace[$i]['file'] = $this->_escapeTraceFile($Trace[$i]['file']);
|
753 |
-
}
|
754 |
-
if(isset($Trace[$i]['args'])) {
|
755 |
-
$Trace[$i]['args'] = $this->encodeObject($Trace[$i]['args']);
|
756 |
-
}
|
757 |
-
}
|
758 |
-
return $Trace;
|
759 |
-
}
|
760 |
-
|
761 |
-
/**
|
762 |
-
* Escape file information of trace for windows systems
|
763 |
-
*
|
764 |
-
* @param string $File
|
765 |
-
* @return string
|
766 |
-
*/
|
767 |
-
protected function _escapeTraceFile($File) {
|
768 |
-
/* Check if we have a windows filepath */
|
769 |
-
if(strpos($File,'\\')) {
|
770 |
-
/* First strip down to single \ */
|
771 |
-
|
772 |
-
$file = preg_replace('/\\\\+/','\\',$File);
|
773 |
-
|
774 |
-
return $file;
|
775 |
-
}
|
776 |
-
return $File;
|
777 |
-
}
|
778 |
-
|
779 |
-
/**
|
780 |
-
* Send header
|
781 |
-
*
|
782 |
-
* @param string $Name
|
783 |
-
* @param string_type $Value
|
784 |
-
*/
|
785 |
-
protected function setHeader($Name, $Value) {
|
786 |
-
return header($Name.': '.$Value);
|
787 |
-
}
|
788 |
-
|
789 |
-
/**
|
790 |
-
* Get user agent
|
791 |
-
*
|
792 |
-
* @return string|false
|
793 |
-
*/
|
794 |
-
protected function getUserAgent() {
|
795 |
-
if(!isset($_SERVER['HTTP_USER_AGENT'])) return false;
|
796 |
-
return $_SERVER['HTTP_USER_AGENT'];
|
797 |
-
}
|
798 |
-
|
799 |
-
/**
|
800 |
-
* Returns a new exception
|
801 |
-
*
|
802 |
-
* @param string $Message
|
803 |
-
* @return Exception
|
804 |
-
*/
|
805 |
-
protected function newException($Message) {
|
806 |
-
return new Exception($Message);
|
807 |
-
}
|
808 |
-
|
809 |
-
/**
|
810 |
-
* Encode an object into a JSON string
|
811 |
-
*
|
812 |
-
* Uses PHP's jeson_encode() if available
|
813 |
-
*
|
814 |
-
* @param object $Object The object to be encoded
|
815 |
-
* @return string The JSON string
|
816 |
-
*/
|
817 |
-
public function jsonEncode($Object, $skipObjectEncode=false)
|
818 |
-
{
|
819 |
-
if(!$skipObjectEncode) {
|
820 |
-
$Object = $this->encodeObject($Object);
|
821 |
-
}
|
822 |
-
|
823 |
-
if(function_exists('json_encode')
|
824 |
-
&& $this->options['useNativeJsonEncode']!=false) {
|
825 |
-
|
826 |
-
return json_encode($Object);
|
827 |
-
} else {
|
828 |
-
return $this->json_encode($Object);
|
829 |
-
}
|
830 |
-
}
|
831 |
-
|
832 |
-
/**
|
833 |
-
* Encodes a table by encoding each row and column with encodeObject()
|
834 |
-
*
|
835 |
-
* @param array $Table The table to be encoded
|
836 |
-
* @return array
|
837 |
-
*/
|
838 |
-
protected function encodeTable($Table) {
|
839 |
-
if(!$Table) return $Table;
|
840 |
-
for( $i=0 ; $i<count($Table) ; $i++ ) {
|
841 |
-
if(is_array($Table[$i])) {
|
842 |
-
for( $j=0 ; $j<count($Table[$i]) ; $j++ ) {
|
843 |
-
$Table[$i][$j] = $this->encodeObject($Table[$i][$j]);
|
844 |
-
}
|
845 |
-
}
|
846 |
-
}
|
847 |
-
return $Table;
|
848 |
-
}
|
849 |
-
|
850 |
-
/**
|
851 |
-
* Encodes an object including members with
|
852 |
-
* protected and private visibility
|
853 |
-
*
|
854 |
-
* @param Object $Object The object to be encoded
|
855 |
-
* @param int $Depth The current traversal depth
|
856 |
-
* @return array All members of the object
|
857 |
-
*/
|
858 |
-
protected function encodeObject($Object, $ObjectDepth = 1, $ArrayDepth = 1)
|
859 |
-
{
|
860 |
-
$return = array();
|
861 |
-
|
862 |
-
if (is_resource($Object)) {
|
863 |
-
|
864 |
-
return '** '.(string)$Object.' **';
|
865 |
-
|
866 |
-
} else
|
867 |
-
if (is_object($Object)) {
|
868 |
-
|
869 |
-
if ($ObjectDepth > $this->options['maxObjectDepth']) {
|
870 |
-
return '** Max Object Depth ('.$this->options['maxObjectDepth'].') **';
|
871 |
-
}
|
872 |
-
|
873 |
-
foreach ($this->objectStack as $refVal) {
|
874 |
-
if ($refVal === $Object) {
|
875 |
-
return '** Recursion ('.get_class($Object).') **';
|
876 |
-
}
|
877 |
-
}
|
878 |
-
array_push($this->objectStack, $Object);
|
879 |
-
|
880 |
-
$return['__className'] = $class = get_class($Object);
|
881 |
-
|
882 |
-
$reflectionClass = new ReflectionClass($class);
|
883 |
-
$properties = array();
|
884 |
-
foreach( $reflectionClass->getProperties() as $property) {
|
885 |
-
$properties[$property->getName()] = $property;
|
886 |
-
}
|
887 |
-
|
888 |
-
$members = (array)$Object;
|
889 |
-
|
890 |
-
foreach( $properties as $raw_name => $property ) {
|
891 |
-
|
892 |
-
$name = $raw_name;
|
893 |
-
if($property->isStatic()) {
|
894 |
-
$name = 'static:'.$name;
|
895 |
-
}
|
896 |
-
if($property->isPublic()) {
|
897 |
-
$name = 'public:'.$name;
|
898 |
-
} else
|
899 |
-
if($property->isPrivate()) {
|
900 |
-
$name = 'private:'.$name;
|
901 |
-
$raw_name = "\0".$class."\0".$raw_name;
|
902 |
-
} else
|
903 |
-
if($property->isProtected()) {
|
904 |
-
$name = 'protected:'.$name;
|
905 |
-
$raw_name = "\0".'*'."\0".$raw_name;
|
906 |
-
}
|
907 |
-
|
908 |
-
if(!(isset($this->objectFilters[$class])
|
909 |
-
&& is_array($this->objectFilters[$class])
|
910 |
-
&& in_array($raw_name,$this->objectFilters[$class]))) {
|
911 |
-
|
912 |
-
if(array_key_exists($raw_name,$members)
|
913 |
-
&& !$property->isStatic()) {
|
914 |
-
|
915 |
-
$return[$name] = $this->encodeObject($members[$raw_name], $ObjectDepth + 1, 1);
|
916 |
-
|
917 |
-
} else {
|
918 |
-
if(method_exists($property,'setAccessible')) {
|
919 |
-
$property->setAccessible(true);
|
920 |
-
$return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
|
921 |
-
} else
|
922 |
-
if($property->isPublic()) {
|
923 |
-
$return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
|
924 |
-
} else {
|
925 |
-
$return[$name] = '** Need PHP 5.3 to get value **';
|
926 |
-
}
|
927 |
-
}
|
928 |
-
} else {
|
929 |
-
$return[$name] = '** Excluded by Filter **';
|
930 |
-
}
|
931 |
-
}
|
932 |
-
|
933 |
-
// Include all members that are not defined in the class
|
934 |
-
// but exist in the object
|
935 |
-
foreach( $members as $raw_name => $value ) {
|
936 |
-
|
937 |
-
$name = $raw_name;
|
938 |
-
|
939 |
-
if ($name{0} == "\0") {
|
940 |
-
$parts = explode("\0", $name);
|
941 |
-
$name = $parts[2];
|
942 |
-
}
|
943 |
-
|
944 |
-
if(!isset($properties[$name])) {
|
945 |
-
$name = 'undeclared:'.$name;
|
946 |
-
|
947 |
-
if(!(isset($this->objectFilters[$class])
|
948 |
-
&& is_array($this->objectFilters[$class])
|
949 |
-
&& in_array($raw_name,$this->objectFilters[$class]))) {
|
950 |
-
|
951 |
-
$return[$name] = $this->encodeObject($value, $ObjectDepth + 1, 1);
|
952 |
-
} else {
|
953 |
-
$return[$name] = '** Excluded by Filter **';
|
954 |
-
}
|
955 |
-
}
|
956 |
-
}
|
957 |
-
|
958 |
-
array_pop($this->objectStack);
|
959 |
-
|
960 |
-
} elseif (is_array($Object)) {
|
961 |
-
|
962 |
-
if ($ArrayDepth > $this->options['maxArrayDepth']) {
|
963 |
-
return '** Max Array Depth ('.$this->options['maxArrayDepth'].') **';
|
964 |
-
}
|
965 |
-
|
966 |
-
foreach ($Object as $key => $val) {
|
967 |
-
|
968 |
-
// Encoding the $GLOBALS PHP array causes an infinite loop
|
969 |
-
// if the recursion is not reset here as it contains
|
970 |
-
// a reference to itself. This is the only way I have come up
|
971 |
-
// with to stop infinite recursion in this case.
|
972 |
-
if($key=='GLOBALS'
|
973 |
-
&& is_array($val)
|
974 |
-
&& array_key_exists('GLOBALS',$val)) {
|
975 |
-
$val['GLOBALS'] = '** Recursion (GLOBALS) **';
|
976 |
-
}
|
977 |
-
|
978 |
-
$return[$key] = $this->encodeObject($val, 1, $ArrayDepth + 1);
|
979 |
-
}
|
980 |
-
} else {
|
981 |
-
if(self::is_utf8($Object)) {
|
982 |
-
return $Object;
|
983 |
-
} else {
|
984 |
-
return utf8_encode($Object);
|
985 |
-
}
|
986 |
-
}
|
987 |
-
return $return;
|
988 |
-
}
|
989 |
-
|
990 |
-
/**
|
991 |
-
* Returns true if $string is valid UTF-8 and false otherwise.
|
992 |
-
*
|
993 |
-
* @param mixed $str String to be tested
|
994 |
-
* @return boolean
|
995 |
-
*/
|
996 |
-
protected static function is_utf8($str) {
|
997 |
-
$c=0; $b=0;
|
998 |
-
$bits=0;
|
999 |
-
$len=strlen($str);
|
1000 |
-
for($i=0; $i<$len; $i++){
|
1001 |
-
$c=ord($str[$i]);
|
1002 |
-
if($c > 128){
|
1003 |
-
if(($c >= 254)) return false;
|
1004 |
-
elseif($c >= 252) $bits=6;
|
1005 |
-
elseif($c >= 248) $bits=5;
|
1006 |
-
elseif($c >= 240) $bits=4;
|
1007 |
-
elseif($c >= 224) $bits=3;
|
1008 |
-
elseif($c >= 192) $bits=2;
|
1009 |
-
else return false;
|
1010 |
-
if(($i+$bits) > $len) return false;
|
1011 |
-
while($bits > 1){
|
1012 |
-
$i++;
|
1013 |
-
$b=ord($str[$i]);
|
1014 |
-
if($b < 128 || $b > 191) return false;
|
1015 |
-
$bits--;
|
1016 |
-
}
|
1017 |
-
}
|
1018 |
-
}
|
1019 |
-
return true;
|
1020 |
-
}
|
1021 |
-
|
1022 |
-
/**
|
1023 |
-
* Converts to and from JSON format.
|
1024 |
-
*
|
1025 |
-
* JSON (JavaScript Object Notation) is a lightweight data-interchange
|
1026 |
-
* format. It is easy for humans to read and write. It is easy for machines
|
1027 |
-
* to parse and generate. It is based on a subset of the JavaScript
|
1028 |
-
* Programming Language, Standard ECMA-262 3rd Edition - December 1999.
|
1029 |
-
* This feature can also be found in Python. JSON is a text format that is
|
1030 |
-
* completely language independent but uses conventions that are familiar
|
1031 |
-
* to programmers of the C-family of languages, including C, C++, C#, Java,
|
1032 |
-
* JavaScript, Perl, TCL, and many others. These properties make JSON an
|
1033 |
-
* ideal data-interchange language.
|
1034 |
-
*
|
1035 |
-
* This package provides a simple encoder and decoder for JSON notation. It
|
1036 |
-
* is intended for use with client-side Javascript applications that make
|
1037 |
-
* use of HTTPRequest to perform server communication functions - data can
|
1038 |
-
* be encoded into JSON notation for use in a client-side javascript, or
|
1039 |
-
* decoded from incoming Javascript requests. JSON format is native to
|
1040 |
-
* Javascript, and can be directly eval()'ed with no further parsing
|
1041 |
-
* overhead
|
1042 |
-
*
|
1043 |
-
* All strings should be in ASCII or UTF-8 format!
|
1044 |
-
*
|
1045 |
-
* LICENSE: Redistribution and use in source and binary forms, with or
|
1046 |
-
* without modification, are permitted provided that the following
|
1047 |
-
* conditions are met: Redistributions of source code must retain the
|
1048 |
-
* above copyright notice, this list of conditions and the following
|
1049 |
-
* disclaimer. Redistributions in binary form must reproduce the above
|
1050 |
-
* copyright notice, this list of conditions and the following disclaimer
|
1051 |
-
* in the documentation and/or other materials provided with the
|
1052 |
-
* distribution.
|
1053 |
-
*
|
1054 |
-
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
1055 |
-
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
1056 |
-
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
1057 |
-
* NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
1058 |
-
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
1059 |
-
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
1060 |
-
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
1061 |
-
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
1062 |
-
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
1063 |
-
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
1064 |
-
* DAMAGE.
|
1065 |
-
*
|
1066 |
-
* @category
|
1067 |
-
* @package Services_JSON
|
1068 |
-
* @author Michal Migurski <mike-json@teczno.com>
|
1069 |
-
* @author Matt Knapp <mdknapp[at]gmail[dot]com>
|
1070 |
-
* @author Brett Stimmerman <brettstimmerman[at]gmail[dot]com>
|
1071 |
-
* @author Christoph Dorn <christoph@christophdorn.com>
|
1072 |
-
* @copyright 2005 Michal Migurski
|
1073 |
-
* @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $
|
1074 |
-
* @license http://www.opensource.org/licenses/bsd-license.php
|
1075 |
-
* @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198
|
1076 |
-
*/
|
1077 |
-
|
1078 |
-
|
1079 |
-
/**
|
1080 |
-
* Keep a list of objects as we descend into the array so we can detect recursion.
|
1081 |
-
*/
|
1082 |
-
private $json_objectStack = array();
|
1083 |
-
|
1084 |
-
|
1085 |
-
/**
|
1086 |
-
* convert a string from one UTF-8 char to one UTF-16 char
|
1087 |
-
*
|
1088 |
-
* Normally should be handled by mb_convert_encoding, but
|
1089 |
-
* provides a slower PHP-only method for installations
|
1090 |
-
* that lack the multibye string extension.
|
1091 |
-
*
|
1092 |
-
* @param string $utf8 UTF-8 character
|
1093 |
-
* @return string UTF-16 character
|
1094 |
-
* @access private
|
1095 |
-
*/
|
1096 |
-
private function json_utf82utf16($utf8)
|
1097 |
-
{
|
1098 |
-
// oh please oh please oh please oh please oh please
|
1099 |
-
if(function_exists('mb_convert_encoding')) {
|
1100 |
-
return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
|
1101 |
-
}
|
1102 |
-
|
1103 |
-
switch(strlen($utf8)) {
|
1104 |
-
case 1:
|
1105 |
-
// this case should never be reached, because we are in ASCII range
|
1106 |
-
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
1107 |
-
return $utf8;
|
1108 |
-
|
1109 |
-
case 2:
|
1110 |
-
// return a UTF-16 character from a 2-byte UTF-8 char
|
1111 |
-
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
1112 |
-
return chr(0x07 & (ord($utf8{0}) >> 2))
|
1113 |
-
. chr((0xC0 & (ord($utf8{0}) << 6))
|
1114 |
-
| (0x3F & ord($utf8{1})));
|
1115 |
-
|
1116 |
-
case 3:
|
1117 |
-
// return a UTF-16 character from a 3-byte UTF-8 char
|
1118 |
-
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
1119 |
-
return chr((0xF0 & (ord($utf8{0}) << 4))
|
1120 |
-
| (0x0F & (ord($utf8{1}) >> 2)))
|
1121 |
-
. chr((0xC0 & (ord($utf8{1}) << 6))
|
1122 |
-
| (0x7F & ord($utf8{2})));
|
1123 |
-
}
|
1124 |
-
|
1125 |
-
// ignoring UTF-32 for now, sorry
|
1126 |
-
return '';
|
1127 |
-
}
|
1128 |
-
|
1129 |
-
/**
|
1130 |
-
* encodes an arbitrary variable into JSON format
|
1131 |
-
*
|
1132 |
-
* @param mixed $var any number, boolean, string, array, or object to be encoded.
|
1133 |
-
* see argument 1 to Services_JSON() above for array-parsing behavior.
|
1134 |
-
* if var is a strng, note that encode() always expects it
|
1135 |
-
* to be in ASCII or UTF-8 format!
|
1136 |
-
*
|
1137 |
-
* @return mixed JSON string representation of input var or an error if a problem occurs
|
1138 |
-
* @access public
|
1139 |
-
*/
|
1140 |
-
private function json_encode($var)
|
1141 |
-
{
|
1142 |
-
|
1143 |
-
if(is_object($var)) {
|
1144 |
-
if(in_array($var,$this->json_objectStack)) {
|
1145 |
-
return '"** Recursion **"';
|
1146 |
-
}
|
1147 |
-
}
|
1148 |
-
|
1149 |
-
switch (gettype($var)) {
|
1150 |
-
case 'boolean':
|
1151 |
-
return $var ? 'true' : 'false';
|
1152 |
-
|
1153 |
-
case 'NULL':
|
1154 |
-
return 'null';
|
1155 |
-
|
1156 |
-
case 'integer':
|
1157 |
-
return (int) $var;
|
1158 |
-
|
1159 |
-
case 'double':
|
1160 |
-
case 'float':
|
1161 |
-
return (float) $var;
|
1162 |
-
|
1163 |
-
case 'string':
|
1164 |
-
// STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
|
1165 |
-
$ascii = '';
|
1166 |
-
$strlen_var = strlen($var);
|
1167 |
-
|
1168 |
-
/*
|
1169 |
-
* Iterate over every character in the string,
|
1170 |
-
* escaping with a slash or encoding to UTF-8 where necessary
|
1171 |
-
*/
|
1172 |
-
for ($c = 0; $c < $strlen_var; ++$c) {
|
1173 |
-
|
1174 |
-
$ord_var_c = ord($var{$c});
|
1175 |
-
|
1176 |
-
switch (true) {
|
1177 |
-
case $ord_var_c == 0x08:
|
1178 |
-
$ascii .= '\b';
|
1179 |
-
break;
|
1180 |
-
case $ord_var_c == 0x09:
|
1181 |
-
$ascii .= '\t';
|
1182 |
-
break;
|
1183 |
-
case $ord_var_c == 0x0A:
|
1184 |
-
$ascii .= '\n';
|
1185 |
-
break;
|
1186 |
-
case $ord_var_c == 0x0C:
|
1187 |
-
$ascii .= '\f';
|
1188 |
-
break;
|
1189 |
-
case $ord_var_c == 0x0D:
|
1190 |
-
$ascii .= '\r';
|
1191 |
-
break;
|
1192 |
-
|
1193 |
-
case $ord_var_c == 0x22:
|
1194 |
-
case $ord_var_c == 0x2F:
|
1195 |
-
case $ord_var_c == 0x5C:
|
1196 |
-
// double quote, slash, slosh
|
1197 |
-
$ascii .= '\\'.$var{$c};
|
1198 |
-
break;
|
1199 |
-
|
1200 |
-
case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
|
1201 |
-
// characters U-00000000 - U-0000007F (same as ASCII)
|
1202 |
-
$ascii .= $var{$c};
|
1203 |
-
break;
|
1204 |
-
|
1205 |
-
case (($ord_var_c & 0xE0) == 0xC0):
|
1206 |
-
// characters U-00000080 - U-000007FF, mask 110XXXXX
|
1207 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
1208 |
-
$char = pack('C*', $ord_var_c, ord($var{$c + 1}));
|
1209 |
-
$c += 1;
|
1210 |
-
$utf16 = $this->json_utf82utf16($char);
|
1211 |
-
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
1212 |
-
break;
|
1213 |
-
|
1214 |
-
case (($ord_var_c & 0xF0) == 0xE0):
|
1215 |
-
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
|
1216 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
1217 |
-
$char = pack('C*', $ord_var_c,
|
1218 |
-
ord($var{$c + 1}),
|
1219 |
-
ord($var{$c + 2}));
|
1220 |
-
$c += 2;
|
1221 |
-
$utf16 = $this->json_utf82utf16($char);
|
1222 |
-
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
1223 |
-
break;
|
1224 |
-
|
1225 |
-
case (($ord_var_c & 0xF8) == 0xF0):
|
1226 |
-
// characters U-00010000 - U-001FFFFF, mask 11110XXX
|
1227 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
1228 |
-
$char = pack('C*', $ord_var_c,
|
1229 |
-
ord($var{$c + 1}),
|
1230 |
-
ord($var{$c + 2}),
|
1231 |
-
ord($var{$c + 3}));
|
1232 |
-
$c += 3;
|
1233 |
-
$utf16 = $this->json_utf82utf16($char);
|
1234 |
-
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
1235 |
-
break;
|
1236 |
-
|
1237 |
-
case (($ord_var_c & 0xFC) == 0xF8):
|
1238 |
-
// characters U-00200000 - U-03FFFFFF, mask 111110XX
|
1239 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
1240 |
-
$char = pack('C*', $ord_var_c,
|
1241 |
-
ord($var{$c + 1}),
|
1242 |
-
ord($var{$c + 2}),
|
1243 |
-
ord($var{$c + 3}),
|
1244 |
-
ord($var{$c + 4}));
|
1245 |
-
$c += 4;
|
1246 |
-
$utf16 = $this->json_utf82utf16($char);
|
1247 |
-
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
1248 |
-
break;
|
1249 |
-
|
1250 |
-
case (($ord_var_c & 0xFE) == 0xFC):
|
1251 |
-
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
|
1252 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
1253 |
-
$char = pack('C*', $ord_var_c,
|
1254 |
-
ord($var{$c + 1}),
|
1255 |
-
ord($var{$c + 2}),
|
1256 |
-
ord($var{$c + 3}),
|
1257 |
-
ord($var{$c + 4}),
|
1258 |
-
ord($var{$c + 5}));
|
1259 |
-
$c += 5;
|
1260 |
-
$utf16 = $this->json_utf82utf16($char);
|
1261 |
-
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
1262 |
-
break;
|
1263 |
-
}
|
1264 |
-
}
|
1265 |
-
|
1266 |
-
return '"'.$ascii.'"';
|
1267 |
-
|
1268 |
-
case 'array':
|
1269 |
-
/*
|
1270 |
-
* As per JSON spec if any array key is not an integer
|
1271 |
-
* we must treat the the whole array as an object. We
|
1272 |
-
* also try to catch a sparsely populated associative
|
1273 |
-
* array with numeric keys here because some JS engines
|
1274 |
-
* will create an array with empty indexes up to
|
1275 |
-
* max_index which can cause memory issues and because
|
1276 |
-
* the keys, which may be relevant, will be remapped
|
1277 |
-
* otherwise.
|
1278 |
-
*
|
1279 |
-
* As per the ECMA and JSON specification an object may
|
1280 |
-
* have any string as a property. Unfortunately due to
|
1281 |
-
* a hole in the ECMA specification if the key is a
|
1282 |
-
* ECMA reserved word or starts with a digit the
|
1283 |
-
* parameter is only accessible using ECMAScript's
|
1284 |
-
* bracket notation.
|
1285 |
-
*/
|
1286 |
-
|
1287 |
-
// treat as a JSON object
|
1288 |
-
if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
|
1289 |
-
|
1290 |
-
$this->json_objectStack[] = $var;
|
1291 |
-
|
1292 |
-
$properties = array_map(array($this, 'json_name_value'),
|
1293 |
-
array_keys($var),
|
1294 |
-
array_values($var));
|
1295 |
-
|
1296 |
-
array_pop($this->json_objectStack);
|
1297 |
-
|
1298 |
-
foreach($properties as $property) {
|
1299 |
-
if($property instanceof Exception) {
|
1300 |
-
return $property;
|
1301 |
-
}
|
1302 |
-
}
|
1303 |
-
|
1304 |
-
return '{' . join(',', $properties) . '}';
|
1305 |
-
}
|
1306 |
-
|
1307 |
-
$this->json_objectStack[] = $var;
|
1308 |
-
|
1309 |
-
// treat it like a regular array
|
1310 |
-
$elements = array_map(array($this, 'json_encode'), $var);
|
1311 |
-
|
1312 |
-
array_pop($this->json_objectStack);
|
1313 |
-
|
1314 |
-
foreach($elements as $element) {
|
1315 |
-
if($element instanceof Exception) {
|
1316 |
-
return $element;
|
1317 |
-
}
|
1318 |
-
}
|
1319 |
-
|
1320 |
-
return '[' . join(',', $elements) . ']';
|
1321 |
-
|
1322 |
-
case 'object':
|
1323 |
-
$vars = self::encodeObject($var);
|
1324 |
-
|
1325 |
-
$this->json_objectStack[] = $var;
|
1326 |
-
|
1327 |
-
$properties = array_map(array($this, 'json_name_value'),
|
1328 |
-
array_keys($vars),
|
1329 |
-
array_values($vars));
|
1330 |
-
|
1331 |
-
array_pop($this->json_objectStack);
|
1332 |
-
|
1333 |
-
foreach($properties as $property) {
|
1334 |
-
if($property instanceof Exception) {
|
1335 |
-
return $property;
|
1336 |
-
}
|
1337 |
-
}
|
1338 |
-
|
1339 |
-
return '{' . join(',', $properties) . '}';
|
1340 |
-
|
1341 |
-
default:
|
1342 |
-
return null;
|
1343 |
-
}
|
1344 |
-
}
|
1345 |
-
|
1346 |
-
/**
|
1347 |
-
* array-walking function for use in generating JSON-formatted name-value pairs
|
1348 |
-
*
|
1349 |
-
* @param string $name name of key to use
|
1350 |
-
* @param mixed $value reference to an array element to be encoded
|
1351 |
-
*
|
1352 |
-
* @return string JSON-formatted name-value pair, like '"name":value'
|
1353 |
-
* @access private
|
1354 |
-
*/
|
1355 |
-
private function json_name_value($name, $value)
|
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($name=='GLOBALS'
|
1362 |
-
&& is_array($value)
|
1363 |
-
&& array_key_exists('GLOBALS',$value)) {
|
1364 |
-
$value['GLOBALS'] = '** Recursion **';
|
1365 |
-
}
|
1366 |
-
|
1367 |
-
$encoded_value = $this->json_encode($value);
|
1368 |
-
|
1369 |
-
if($encoded_value instanceof Exception) {
|
1370 |
-
return $encoded_value;
|
1371 |
-
}
|
1372 |
-
|
1373 |
-
return $this->json_encode(strval($name)) . ':' . $encoded_value;
|
1374 |
-
}
|
1375 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FirePHPCore/LICENSE
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
Software License Agreement (New BSD License)
|
2 |
-
|
3 |
-
Copyright (c) 2006-2008, 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FirePHPCore/fb.php
DELETED
@@ -1,246 +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-2008, 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-2008 Christoph Dorn
|
40 |
-
* @author Christoph Dorn <christoph@christophdorn.com>
|
41 |
-
* @license http://www.opensource.org/licenses/bsd-license.php
|
42 |
-
* @package FirePHP
|
43 |
-
*/
|
44 |
-
|
45 |
-
require_once dirname(__FILE__).'/FirePHP.class.php';
|
46 |
-
|
47 |
-
/**
|
48 |
-
* Sends the given data to the FirePHP Firefox Extension.
|
49 |
-
* The data can be displayed in the Firebug Console or in the
|
50 |
-
* "Server" request tab.
|
51 |
-
*
|
52 |
-
* @see http://www.firephp.org/Wiki/Reference/Fb
|
53 |
-
* @param mixed $Object
|
54 |
-
* @return true
|
55 |
-
* @throws Exception
|
56 |
-
*/
|
57 |
-
function fb()
|
58 |
-
{
|
59 |
-
$instance = FirePHP::getInstance(true);
|
60 |
-
|
61 |
-
$args = func_get_args();
|
62 |
-
return call_user_func_array(array($instance,'fb'),$args);
|
63 |
-
}
|
64 |
-
|
65 |
-
|
66 |
-
class FB
|
67 |
-
{
|
68 |
-
/**
|
69 |
-
* Enable and disable logging to Firebug
|
70 |
-
*
|
71 |
-
* @see FirePHP->setEnabled()
|
72 |
-
* @param boolean $Enabled TRUE to enable, FALSE to disable
|
73 |
-
* @return void
|
74 |
-
*/
|
75 |
-
public static function setEnabled($Enabled) {
|
76 |
-
$instance = FirePHP::getInstance(true);
|
77 |
-
$instance->setEnabled($Enabled);
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* Check if logging is enabled
|
82 |
-
*
|
83 |
-
* @see FirePHP->getEnabled()
|
84 |
-
* @return boolean TRUE if enabled
|
85 |
-
*/
|
86 |
-
public static function getEnabled() {
|
87 |
-
$instance = FirePHP::getInstance(true);
|
88 |
-
return $instance->getEnabled();
|
89 |
-
}
|
90 |
-
|
91 |
-
/**
|
92 |
-
* Specify a filter to be used when encoding an object
|
93 |
-
*
|
94 |
-
* Filters are used to exclude object members.
|
95 |
-
*
|
96 |
-
* @see FirePHP->setObjectFilter()
|
97 |
-
* @param string $Class The class name of the object
|
98 |
-
* @param array $Filter An array or members to exclude
|
99 |
-
* @return void
|
100 |
-
*/
|
101 |
-
public static function setObjectFilter($Class, $Filter) {
|
102 |
-
$instance = FirePHP::getInstance(true);
|
103 |
-
$instance->setObjectFilter($Class, $Filter);
|
104 |
-
}
|
105 |
-
|
106 |
-
/**
|
107 |
-
* Set some options for the library
|
108 |
-
*
|
109 |
-
* @see FirePHP->setOptions()
|
110 |
-
* @param array $Options The options to be set
|
111 |
-
* @return void
|
112 |
-
*/
|
113 |
-
public static function setOptions($Options) {
|
114 |
-
$instance = FirePHP::getInstance(true);
|
115 |
-
$instance->setOptions($Options);
|
116 |
-
}
|
117 |
-
|
118 |
-
/**
|
119 |
-
* Log object to firebug
|
120 |
-
*
|
121 |
-
* @see http://www.firephp.org/Wiki/Reference/Fb
|
122 |
-
* @param mixed $Object
|
123 |
-
* @return true
|
124 |
-
* @throws Exception
|
125 |
-
*/
|
126 |
-
public static function send()
|
127 |
-
{
|
128 |
-
$instance = FirePHP::getInstance(true);
|
129 |
-
$args = func_get_args();
|
130 |
-
return call_user_func_array(array($instance,'fb'),$args);
|
131 |
-
}
|
132 |
-
|
133 |
-
/**
|
134 |
-
* Start a group for following messages
|
135 |
-
*
|
136 |
-
* @param string $Name
|
137 |
-
* @return true
|
138 |
-
* @throws Exception
|
139 |
-
*/
|
140 |
-
public static function group($Name) {
|
141 |
-
return self::send(null, $Name, FirePHP::GROUP_START);
|
142 |
-
}
|
143 |
-
|
144 |
-
/**
|
145 |
-
* Ends a group you have started before
|
146 |
-
*
|
147 |
-
* @return true
|
148 |
-
* @throws Exception
|
149 |
-
*/
|
150 |
-
public static function groupEnd() {
|
151 |
-
return self::send(null, null, FirePHP::GROUP_END);
|
152 |
-
}
|
153 |
-
|
154 |
-
/**
|
155 |
-
* Log object with label to firebug console
|
156 |
-
*
|
157 |
-
* @see FirePHP::LOG
|
158 |
-
* @param mixes $Object
|
159 |
-
* @param string $Label
|
160 |
-
* @return true
|
161 |
-
* @throws Exception
|
162 |
-
*/
|
163 |
-
public static function log($Object, $Label=null) {
|
164 |
-
return self::send($Object, $Label, FirePHP::LOG);
|
165 |
-
}
|
166 |
-
|
167 |
-
/**
|
168 |
-
* Log object with label to firebug console
|
169 |
-
*
|
170 |
-
* @see FirePHP::INFO
|
171 |
-
* @param mixes $Object
|
172 |
-
* @param string $Label
|
173 |
-
* @return true
|
174 |
-
* @throws Exception
|
175 |
-
*/
|
176 |
-
public static function info($Object, $Label=null) {
|
177 |
-
return self::send($Object, $Label, FirePHP::INFO);
|
178 |
-
}
|
179 |
-
|
180 |
-
/**
|
181 |
-
* Log object with label to firebug console
|
182 |
-
*
|
183 |
-
* @see FirePHP::WARN
|
184 |
-
* @param mixes $Object
|
185 |
-
* @param string $Label
|
186 |
-
* @return true
|
187 |
-
* @throws Exception
|
188 |
-
*/
|
189 |
-
public static function warn($Object, $Label=null) {
|
190 |
-
return self::send($Object, $Label, FirePHP::WARN);
|
191 |
-
}
|
192 |
-
|
193 |
-
/**
|
194 |
-
* Log object with label to firebug console
|
195 |
-
*
|
196 |
-
* @see FirePHP::ERROR
|
197 |
-
* @param mixes $Object
|
198 |
-
* @param string $Label
|
199 |
-
* @return true
|
200 |
-
* @throws Exception
|
201 |
-
*/
|
202 |
-
public static function error($Object, $Label=null) {
|
203 |
-
return self::send($Object, $Label, FirePHP::ERROR);
|
204 |
-
}
|
205 |
-
|
206 |
-
/**
|
207 |
-
* Dumps key and variable to firebug server panel
|
208 |
-
*
|
209 |
-
* @see FirePHP::DUMP
|
210 |
-
* @param string $Key
|
211 |
-
* @param mixed $Variable
|
212 |
-
* @return true
|
213 |
-
* @throws Exception
|
214 |
-
*/
|
215 |
-
public static function dump($Key, $Variable) {
|
216 |
-
return self::send($Variable, $Key, FirePHP::DUMP);
|
217 |
-
}
|
218 |
-
|
219 |
-
/**
|
220 |
-
* Log a trace in the firebug console
|
221 |
-
*
|
222 |
-
* @see FirePHP::TRACE
|
223 |
-
* @param string $Label
|
224 |
-
* @return true
|
225 |
-
* @throws Exception
|
226 |
-
*/
|
227 |
-
public static function trace($Label) {
|
228 |
-
return self::send($Label, FirePHP::TRACE);
|
229 |
-
}
|
230 |
-
|
231 |
-
/**
|
232 |
-
* Log a table in the firebug console
|
233 |
-
*
|
234 |
-
* @see FirePHP::TABLE
|
235 |
-
* @param string $Label
|
236 |
-
* @param string $Table
|
237 |
-
* @return true
|
238 |
-
* @throws Exception
|
239 |
-
*/
|
240 |
-
public static function table($Label, $Table) {
|
241 |
-
return self::send($Table, $Label, FirePHP::TABLE);
|
242 |
-
}
|
243 |
-
|
244 |
-
}
|
245 |
-
|
246 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dbem_events.php
CHANGED
@@ -4,7 +4,6 @@
|
|
4 |
function dbem_new_event_page() {
|
5 |
|
6 |
$title=__("Insert New Event", 'dbem');
|
7 |
-
$event = dbem_get_event($element);
|
8 |
dbem_event_form($event, $title, $element);
|
9 |
|
10 |
}
|
@@ -100,7 +99,7 @@ function dbem_events_subpanel() {
|
|
100 |
$validation_result = dbem_validate_event($event);
|
101 |
|
102 |
|
103 |
-
if (
|
104 |
// validation successful
|
105 |
|
106 |
$related_location = dbem_get_identical_location($location);
|
@@ -120,7 +119,7 @@ function dbem_events_subpanel() {
|
|
120 |
|
121 |
if(!$event_ID && !$recurrence_ID ) {
|
122 |
// there isn't anything
|
123 |
-
if ($_POST[repeated_event]) {
|
124 |
|
125 |
//insert new recurrence
|
126 |
dbem_insert_recurrent_event($event,$recurrence);
|
@@ -879,7 +878,7 @@ function dbem_events_table($events, $limit, $title) {
|
|
879 |
<form id="posts-filter" action="" method="get">
|
880 |
<input type='hidden' name='page' value='events-manager/events-manager.php'/>
|
881 |
<ul class="subsubsub">
|
882 |
-
<li><a href='edit.php' class="current"><? _e('Total', 'dbem');?> <span class="count">(<?php echo (count($events));?>)</span></a> </li></ul>
|
883 |
|
884 |
|
885 |
<div class="tablenav">
|
@@ -890,7 +889,7 @@ function dbem_events_table($events, $limit, $title) {
|
|
890 |
<option value="deleteEvents"><?php _e('Delete selected');?></option>
|
891 |
|
892 |
</select>
|
893 |
-
<input type="submit" value="<? _e('Apply'); ?>" name="doaction2" id="doaction2" class="button-secondary action" />
|
894 |
<select name="scope">
|
895 |
|
896 |
<?php
|
@@ -1156,7 +1155,7 @@ function dbem_event_form($event, $title, $element) {
|
|
1156 |
|
1157 |
<div class="postbox " >
|
1158 |
<div class="handlediv" title="Fare clic per cambiare."><br /></div>
|
1159 |
-
<h3 class='hndle'><span><? _e('Contact Person','dbem');?></span></h3>
|
1160 |
<div class="inside">
|
1161 |
<p>Contact: <?php wp_dropdown_users(array('name'=>'event_contactperson_id', 'show_option_none'=>__("Select...",'dbem'),'selected'=>$event['event_contactperson_id'])) ; ?></p>
|
1162 |
</div>
|
@@ -1169,15 +1168,18 @@ function dbem_event_form($event, $title, $element) {
|
|
1169 |
<h3 class='hndle'><span>RSVP</span></h3>
|
1170 |
<div class="inside">
|
1171 |
|
1172 |
-
<p><input id="rsvp-checkbox" name='event_rsvp' value='1' type='checkbox' <?php echo $event_RSVP_checked ?> /> <? _e('Enable registration for this event', 'dbem')?></p>
|
1173 |
<div id='rsvp-data'>
|
|
|
1174 |
<?php
|
1175 |
if ($event['event_contactperson_id'] != NULL)
|
1176 |
$selected = $event['event_contactperson_id'];
|
1177 |
else
|
1178 |
$selected = '0';?>
|
1179 |
-
<p> <?php _e('Spaces');?>: <input id="seats-input" type="text" name="event_seats" size='5' value="<?php echo $event[$pref.'seats']?>" /></p>
|
1180 |
-
|
|
|
|
|
1181 |
</div>
|
1182 |
</div>
|
1183 |
</div>
|
@@ -1307,33 +1309,24 @@ function dbem_event_form($event, $title, $element) {
|
|
1307 |
}
|
1308 |
|
1309 |
function dbem_validate_event($event) {
|
1310 |
-
//
|
1311 |
-
//
|
1312 |
global $required_fields;
|
1313 |
-
|
1314 |
foreach ($required_fields as $field) {
|
1315 |
if ($event[$field] == "" ) {
|
1316 |
-
|
1317 |
}
|
1318 |
}
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
$
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
$end_time = $event['event_end_hh'].":".$event['event_end_mm'];
|
1329 |
-
// TODO re-IMPLEMENT TIME VALIDATION
|
1330 |
-
// if ( !_dbem_is_time_valid($time) ) {
|
1331 |
-
// return __("invalid time","dbem");
|
1332 |
-
// }
|
1333 |
-
$use_event_end = get_option('dbem_use_event_end');
|
1334 |
-
if ($use_event_end && $event['event_date']." ".$time > $event['event_end_date']." ".$end_time)
|
1335 |
-
return __("end date before begin date", "dbem");
|
1336 |
-
return "OK";
|
1337 |
|
1338 |
}
|
1339 |
|
@@ -1513,7 +1506,48 @@ $j(document).ready( function() {
|
|
1513 |
// }
|
1514 |
jQuery('#event_notes h3').click( function() {
|
1515 |
jQuery(jQuery(this).parent().get(0)).toggleClass('closed');
|
1516 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1517 |
});
|
1518 |
//]]>
|
1519 |
</script>
|
@@ -1756,7 +1790,7 @@ function dbem_rss() {
|
|
1756 |
$description = dbem_replace_placeholders($description_format, $event, "rss");
|
1757 |
echo "<item>";
|
1758 |
echo "<title>$title</title>\n";
|
1759 |
-
echo "<link>$events_page_link".$joiner."event_id
|
1760 |
echo "<description>$description </description>\n";
|
1761 |
echo "</item>";
|
1762 |
}
|
4 |
function dbem_new_event_page() {
|
5 |
|
6 |
$title=__("Insert New Event", 'dbem');
|
|
|
7 |
dbem_event_form($event, $title, $element);
|
8 |
|
9 |
}
|
99 |
$validation_result = dbem_validate_event($event);
|
100 |
|
101 |
|
102 |
+
if ($validation_result == "OK") {
|
103 |
// validation successful
|
104 |
|
105 |
$related_location = dbem_get_identical_location($location);
|
119 |
|
120 |
if(!$event_ID && !$recurrence_ID ) {
|
121 |
// there isn't anything
|
122 |
+
if ($_POST['repeated_event']) {
|
123 |
|
124 |
//insert new recurrence
|
125 |
dbem_insert_recurrent_event($event,$recurrence);
|
878 |
<form id="posts-filter" action="" method="get">
|
879 |
<input type='hidden' name='page' value='events-manager/events-manager.php'/>
|
880 |
<ul class="subsubsub">
|
881 |
+
<li><a href='edit.php' class="current"><?php _e('Total', 'dbem');?> <span class="count">(<?php echo (count($events));?>)</span></a> </li></ul>
|
882 |
|
883 |
|
884 |
<div class="tablenav">
|
889 |
<option value="deleteEvents"><?php _e('Delete selected');?></option>
|
890 |
|
891 |
</select>
|
892 |
+
<input type="submit" value="<?php _e('Apply'); ?>" name="doaction2" id="doaction2" class="button-secondary action" />
|
893 |
<select name="scope">
|
894 |
|
895 |
<?php
|
1155 |
|
1156 |
<div class="postbox " >
|
1157 |
<div class="handlediv" title="Fare clic per cambiare."><br /></div>
|
1158 |
+
<h3 class='hndle'><span><?php _e('Contact Person','dbem');?></span></h3>
|
1159 |
<div class="inside">
|
1160 |
<p>Contact: <?php wp_dropdown_users(array('name'=>'event_contactperson_id', 'show_option_none'=>__("Select...",'dbem'),'selected'=>$event['event_contactperson_id'])) ; ?></p>
|
1161 |
</div>
|
1168 |
<h3 class='hndle'><span>RSVP</span></h3>
|
1169 |
<div class="inside">
|
1170 |
|
1171 |
+
<p><input id="rsvp-checkbox" name='event_rsvp' value='1' type='checkbox' <?php echo $event_RSVP_checked ?> /> <?php _e('Enable registration for this event', 'dbem')?></p>
|
1172 |
<div id='rsvp-data'>
|
1173 |
+
|
1174 |
<?php
|
1175 |
if ($event['event_contactperson_id'] != NULL)
|
1176 |
$selected = $event['event_contactperson_id'];
|
1177 |
else
|
1178 |
$selected = '0';?>
|
1179 |
+
<p> <?php _e('Spaces');?>: <input id="seats-input" type="text" name="event_seats" size='5' value="<?php echo $event[$pref.'seats']?>" /></p>
|
1180 |
+
<?php if($event['event_rsvp']){?>
|
1181 |
+
<?php dbem_bookings_compact_table($event[$pref.'id']); ?>
|
1182 |
+
<?php } ?>
|
1183 |
</div>
|
1184 |
</div>
|
1185 |
</div>
|
1309 |
}
|
1310 |
|
1311 |
function dbem_validate_event($event) {
|
1312 |
+
// Only for emergencies, when JS is disabled
|
1313 |
+
// TODO make it fully functional without JS
|
1314 |
global $required_fields;
|
1315 |
+
$errors = Array();
|
1316 |
foreach ($required_fields as $field) {
|
1317 |
if ($event[$field] == "" ) {
|
1318 |
+
$errors[] = $field;
|
1319 |
}
|
1320 |
}
|
1321 |
+
$error_message = "";
|
1322 |
+
if (count($errors) >0)
|
1323 |
+
$error_message = __('Missing fields: ').implode(", ", $errors).". ";
|
1324 |
+
if($_POST['repeated_event'] == "1" && $_POST['event_end_date'] == "")
|
1325 |
+
$error_message .= __('Since the event is repeated, you must specify an event date.','dbem');
|
1326 |
+
if ($error_message != "")
|
1327 |
+
return $error_message;
|
1328 |
+
else
|
1329 |
+
return "OK";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1330 |
|
1331 |
}
|
1332 |
|
1506 |
// }
|
1507 |
jQuery('#event_notes h3').click( function() {
|
1508 |
jQuery(jQuery(this).parent().get(0)).toggleClass('closed');
|
1509 |
+
});
|
1510 |
+
|
1511 |
+
// users cannot submit the event form unless some fields are filled
|
1512 |
+
function validateEventForm(){
|
1513 |
+
errors = "";
|
1514 |
+
var recurring = $j("input[@name=repeated_event]:checked").val();
|
1515 |
+
requiredFields= new Array('event_name', 'localised_event_date', 'location_name','location_address','location_town');
|
1516 |
+
var localisedRequiredFields = {'event_name':"<?php _e('Name','dbem')?>", 'localised_event_date':"<?php _e('Date','dbem')?>", 'location_name':"<?php _e('Location','dbem')?>",'location_address':"<?php _e('Address','dbem')?>",'location_town':"<?php _e('Town','dbem')?>"};
|
1517 |
+
|
1518 |
+
missingFields = new Array;
|
1519 |
+
for (var i in requiredFields) {
|
1520 |
+
if ($j("input[@name=" + requiredFields[i]+ "]").val() == 0) {
|
1521 |
+
missingFields.push(localisedRequiredFields[requiredFields[i]]);
|
1522 |
+
$j("input[@name=" + requiredFields[i]+ "]").css('border','2px solid red');
|
1523 |
+
} else {
|
1524 |
+
$j("input[@name=" + requiredFields[i]+ "]").css('border','1px solid #DFDFDF');
|
1525 |
+
|
1526 |
+
}
|
1527 |
+
|
1528 |
+
}
|
1529 |
+
|
1530 |
+
// alert('ciao ' + recurring+ " end: " + $j("input[@name=localised_event_end_date]").val());
|
1531 |
+
if (missingFields.length > 0) {
|
1532 |
+
|
1533 |
+
errors = "<?php echo _e('Some required fields are missing:','dbem' )?> " + missingFields.join(", ") + ".\n";
|
1534 |
+
}
|
1535 |
+
if(recurring && $j("input[@name=localised_event_end_date]").val() == "") {
|
1536 |
+
errors = errors + "<?php _e('Since the event is repeated, you must specify an end date','dbem')?>.";
|
1537 |
+
$j("input[@name=localised_event_end_date]").css('border','2px solid red');
|
1538 |
+
} else {
|
1539 |
+
$j("input[@name=localised_event_end_date]").css('border','1px solid #DFDFDF');
|
1540 |
+
}
|
1541 |
+
if(errors != "") {
|
1542 |
+
alert(errors);
|
1543 |
+
return false;
|
1544 |
+
}
|
1545 |
+
return true;
|
1546 |
+
}
|
1547 |
+
|
1548 |
+
$j('#eventForm').bind("submit", validateEventForm);
|
1549 |
+
|
1550 |
+
|
1551 |
});
|
1552 |
//]]>
|
1553 |
</script>
|
1790 |
$description = dbem_replace_placeholders($description_format, $event, "rss");
|
1791 |
echo "<item>";
|
1792 |
echo "<title>$title</title>\n";
|
1793 |
+
echo "<link>$events_page_link".$joiner."event_id=".$event['event_id']."</link>\n ";
|
1794 |
echo "<description>$description </description>\n";
|
1795 |
echo "</item>";
|
1796 |
}
|
dbem_global_map.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
$j=jQuery.noConflict();
|
2 |
-
console.log("eventful: " + eventful + " scope " + scope);
|
3 |
|
4 |
$j(document.body).unload(function() {
|
5 |
if (GBrowserIsCompatible()) {
|
1 |
$j=jQuery.noConflict();
|
2 |
+
// console.log("eventful: " + eventful + " scope " + scope);
|
3 |
|
4 |
$j(document.body).unload(function() {
|
5 |
if (GBrowserIsCompatible()) {
|
dbem_rsvp.php
CHANGED
@@ -228,7 +228,6 @@ function dbem_bookings_table($event_id) {
|
|
228 |
}
|
229 |
|
230 |
function dbem_bookings_compact_table($event_id) {
|
231 |
-
|
232 |
$bookings = dbem_get_bookings_for($event_id);
|
233 |
$destination = get_bloginfo('url')."/wp-admin/edit.php";
|
234 |
$available_seats = dbem_get_available_seats($event_id);
|
@@ -376,4 +375,13 @@ function dbem_ascii_encode($e)
|
|
376 |
return $output;
|
377 |
}
|
378 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
379 |
?>
|
228 |
}
|
229 |
|
230 |
function dbem_bookings_compact_table($event_id) {
|
|
|
231 |
$bookings = dbem_get_bookings_for($event_id);
|
232 |
$destination = get_bloginfo('url')."/wp-admin/edit.php";
|
233 |
$available_seats = dbem_get_available_seats($event_id);
|
375 |
return $output;
|
376 |
}
|
377 |
|
378 |
+
function dbem_is_event_rsvpable() {
|
379 |
+
if (dbem_is_single_event_page()) {
|
380 |
+
$event = dbem_get_event($_GET['event_id']);
|
381 |
+
if($event)
|
382 |
+
return $event['event_rsvp'];
|
383 |
+
}
|
384 |
+
return 0;
|
385 |
+
}
|
386 |
+
|
387 |
?>
|
events-manager.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Events Manager
|
4 |
-
Version: 2.
|
5 |
Plugin URI: http://davidebenini.it/wordpress-plugins/events-manager/
|
6 |
Description: Manage events specifying precise spatial data (Location, Town, Province, etc).
|
7 |
Author: Davide Benini
|
@@ -9,7 +9,7 @@ Author URI: http://www.davidebenini.it/blog
|
|
9 |
*/
|
10 |
|
11 |
/*
|
12 |
-
Copyright (c)
|
13 |
|
14 |
This program is free software; you can redistribute it and/or
|
15 |
modify it under the terms of the GNU General Public License
|
@@ -58,20 +58,9 @@ define('DEFAULT_IMAGE_MAX_WIDTH', 700);
|
|
58 |
define('DEFAULT_IMAGE_MAX_HEIGHT', 700);
|
59 |
define('DEFAULT_IMAGE_MAX_SIZE', 204800);
|
60 |
// DEBUG constant for developing
|
61 |
-
// if you are hacking this plugin, set to TRUE, alog will show in admin pages
|
62 |
-
define('USE_FIREPHP', false);
|
63 |
-
// DEBUG constant for developing
|
64 |
// if you are hacking this plugin, set to TRUE, a log will show in admin pages
|
65 |
define('DEBUG', false);
|
66 |
|
67 |
-
// if (DEBUG) {
|
68 |
-
// if (USE_FIREPHP) {
|
69 |
-
// require('FirePHPCore/fb.php');
|
70 |
-
// ob_start();
|
71 |
-
// fb('FirePHP activated');
|
72 |
-
// }
|
73 |
-
// }
|
74 |
-
|
75 |
// INCLUDES
|
76 |
include("dbem_events.php");
|
77 |
include("dbem_calendar.php");
|
@@ -130,9 +119,11 @@ function dbem_install() {
|
|
130 |
dbem_create_bookings_table();
|
131 |
dbem_create_people_table();
|
132 |
dbem_add_options();
|
133 |
-
|
134 |
-
|
135 |
-
|
|
|
|
|
136 |
// Create events page if necessary
|
137 |
$events_page_id = get_option('dbem_events_page') ;
|
138 |
if ($events_page_id != "" ) {
|
@@ -340,9 +331,8 @@ function dbem_create_people_table() {
|
|
340 |
}
|
341 |
|
342 |
function dbem_migrate_old_events() {
|
343 |
-
$version = get_option('dbem_version');
|
344 |
|
345 |
-
|
346 |
global $wpdb;
|
347 |
|
348 |
$events_table = $wpdb->prefix.EVENTS_TBNAME;
|
@@ -375,7 +365,7 @@ function dbem_migrate_old_events() {
|
|
375 |
|
376 |
}
|
377 |
|
378 |
-
|
379 |
}
|
380 |
|
381 |
function dbem_add_options() {
|
@@ -413,8 +403,7 @@ function dbem_add_options() {
|
|
413 |
'dbem_image_max_width' => DEFAULT_IMAGE_MAX_WIDTH,
|
414 |
'dbem_image_max_height' => DEFAULT_IMAGE_MAX_HEIGHT,
|
415 |
'dbem_image_max_size' => DEFAULT_IMAGE_MAX_SIZE,
|
416 |
-
'dbem_hello_to_user' => 1
|
417 |
-
'dbem_version' => 1);
|
418 |
|
419 |
foreach($dbem_options as $key => $value)
|
420 |
dbem_add_option($key, $value);
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Events Manager
|
4 |
+
Version: 2.0rc1
|
5 |
Plugin URI: http://davidebenini.it/wordpress-plugins/events-manager/
|
6 |
Description: Manage events specifying precise spatial data (Location, Town, Province, etc).
|
7 |
Author: Davide Benini
|
9 |
*/
|
10 |
|
11 |
/*
|
12 |
+
Copyright (c) 2009, Davide Benini. $Revision: 1 $
|
13 |
|
14 |
This program is free software; you can redistribute it and/or
|
15 |
modify it under the terms of the GNU General Public License
|
58 |
define('DEFAULT_IMAGE_MAX_HEIGHT', 700);
|
59 |
define('DEFAULT_IMAGE_MAX_SIZE', 204800);
|
60 |
// DEBUG constant for developing
|
|
|
|
|
|
|
61 |
// if you are hacking this plugin, set to TRUE, a log will show in admin pages
|
62 |
define('DEBUG', false);
|
63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
// INCLUDES
|
65 |
include("dbem_events.php");
|
66 |
include("dbem_calendar.php");
|
119 |
dbem_create_bookings_table();
|
120 |
dbem_create_people_table();
|
121 |
dbem_add_options();
|
122 |
+
// if ANY 1.0 option is there AND the version options hasn't been set yet THEN launch the updat script
|
123 |
+
if (get_option('dbem_events_page') && !get_option('dbem_version'))
|
124 |
+
dbem_migrate_old_events();
|
125 |
+
|
126 |
+
update_option('dbem_version', 2);
|
127 |
// Create events page if necessary
|
128 |
$events_page_id = get_option('dbem_events_page') ;
|
129 |
if ($events_page_id != "" ) {
|
331 |
}
|
332 |
|
333 |
function dbem_migrate_old_events() {
|
|
|
334 |
|
335 |
+
|
336 |
global $wpdb;
|
337 |
|
338 |
$events_table = $wpdb->prefix.EVENTS_TBNAME;
|
365 |
|
366 |
}
|
367 |
|
368 |
+
|
369 |
}
|
370 |
|
371 |
function dbem_add_options() {
|
403 |
'dbem_image_max_width' => DEFAULT_IMAGE_MAX_WIDTH,
|
404 |
'dbem_image_max_height' => DEFAULT_IMAGE_MAX_HEIGHT,
|
405 |
'dbem_image_max_size' => DEFAULT_IMAGE_MAX_SIZE,
|
406 |
+
'dbem_hello_to_user' => 1);
|
|
|
407 |
|
408 |
foreach($dbem_options as $key => $value)
|
409 |
dbem_add_option($key, $value);
|
events_manager.css
CHANGED
@@ -96,4 +96,7 @@ div#icon-events{
|
|
96 |
table#dbem-location-data th {
|
97 |
text-align: right;
|
98 |
width: 50px;
|
|
|
|
|
|
|
99 |
}
|
96 |
table#dbem-location-data th {
|
97 |
text-align: right;
|
98 |
width: 50px;
|
99 |
+
}
|
100 |
+
#dbem-location-map img {
|
101 |
+
max-width: none;
|
102 |
}
|
js/jquery-ui-datepicker/i18n/ui.datepicker-ar.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Arabic Translation for jQuery UI date picker plugin. */
|
2 |
+
/* Khaled Al Horani -- koko.dw@gmail.com */
|
3 |
+
/* خالد الحوراني -- koko.dw@gmail.com */
|
4 |
+
/* NOTE: monthNames are the original months names and thez are the Arabic names, not the new months name فبراير - يناير and there isnät any Arabic roots for these months */
|
5 |
+
jQuery(function($){
|
6 |
+
$.datepicker.regional['ar'] = {
|
7 |
+
clearText: 'مسح', clearStatus: 'امسح التاريخ الحالي',
|
8 |
+
closeText: 'إغلاق', closeStatus: 'إغلاق بدون حفظ',
|
9 |
+
prevText: '<السابق', prevStatus: 'عرض الشهر السابق',
|
10 |
+
nextText: 'التالي>', nextStatus: 'عرض الشهر القادم',
|
11 |
+
currentText: 'اليوم', currentStatus: 'عرض الشهر الحالي',
|
12 |
+
monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
|
13 |
+
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
|
14 |
+
monthStatus: 'عرض شهر آخر', yearStatus: 'عرض سنة آخرى',
|
15 |
+
weekHeader: 'أسبوع', weekStatus: 'أسبوع السنة',
|
16 |
+
dayNames: ['السبت', 'الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة'],
|
17 |
+
dayNamesShort: ['سبت', 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'],
|
18 |
+
dayNamesMin: ['سبت', 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'],
|
19 |
+
dayStatus: 'اختر DD لليوم الأول من الأسبوع', dateStatus: 'اختر D, M d',
|
20 |
+
dateFormat: 'dd/mm/yy', firstDay: 0,
|
21 |
+
initStatus: 'اختر يوم', isRTL: true};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['ar']);
|
23 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-bg.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Bulgarian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Stoyan Kyosev (http://svest.org). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['bg'] = {clearText: 'изчисти', clearStatus: 'изчисти актуалната дата',
|
5 |
+
closeText: 'затвори', closeStatus: 'затвори без промени',
|
6 |
+
prevText: '<назад', prevStatus: 'покажи последния месец',
|
7 |
+
nextText: 'напред>', nextStatus: 'покажи следващия месец',
|
8 |
+
currentText: 'днес', currentStatus: '',
|
9 |
+
monthNames: ['Януари','Февруари','Март','Април','Май','Юни',
|
10 |
+
'Юли','Август','Септември','Октомври','Ноември','Декември'],
|
11 |
+
monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни',
|
12 |
+
'Юли','Авг','Сеп','Окт','Нов','Дек'],
|
13 |
+
monthStatus: 'покажи друг месец', yearStatus: 'покажи друга година',
|
14 |
+
weekHeader: 'Wk', weekStatus: 'седмица от месеца',
|
15 |
+
dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'],
|
16 |
+
dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'],
|
17 |
+
dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'],
|
18 |
+
dayStatus: 'Сложи DD като първи ден от седмицата', dateStatus: 'Избери D, M d',
|
19 |
+
dateFormat: 'dd.mm.yy', firstDay: 1,
|
20 |
+
initStatus: 'Избери дата', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['bg']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-ca.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Inicialitzaci� en catal� per a l'extenci� 'calendar' per jQuery. */
|
2 |
+
/* Writers: (joan.leon@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ca'] = {clearText: 'Netejar', clearStatus: '',
|
5 |
+
closeText: 'Tancar', closeStatus: '',
|
6 |
+
prevText: '<Ant', prevStatus: '',
|
7 |
+
nextText: 'Seg>', nextStatus: '',
|
8 |
+
currentText: 'Avui', currentStatus: '',
|
9 |
+
monthNames: ['Gener','Febrer','Març','Abril','Maig','Juny',
|
10 |
+
'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'],
|
11 |
+
monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun',
|
12 |
+
'Jul','Ago','Set','Oct','Nov','Des'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Sm', weekStatus: '',
|
15 |
+
dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'],
|
16 |
+
dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'],
|
17 |
+
dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'mm/dd/yy', firstDay: 0,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['ca']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-cs.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Czech initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Tomas Muller (tomas@tomas-muller.net). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['cs'] = {clearText: 'Vymazat', clearStatus: 'Vymaže zadané datum',
|
5 |
+
closeText: 'Zavřít', closeStatus: 'Zavře kalendář beze změny',
|
6 |
+
prevText: '<Dříve', prevStatus: 'Přejít na předchozí měsí',
|
7 |
+
nextText: 'Později>', nextStatus: 'Přejít na další měsíc',
|
8 |
+
currentText: 'Nyní', currentStatus: 'Přejde na aktuální měsíc',
|
9 |
+
monthNames: ['leden','únor','březen','duben','květen','červen',
|
10 |
+
'červenec','srpen','září','říjen','listopad','prosinec'],
|
11 |
+
monthNamesShort: ['led','úno','bře','dub','kvě','čer',
|
12 |
+
'čvc','srp','zář','říj','lis','pro'],
|
13 |
+
monthStatus: 'Přejít na jiný měsíc', yearStatus: 'Přejít na jiný rok',
|
14 |
+
weekHeader: 'Týd', weekStatus: 'Týden v roce',
|
15 |
+
dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
|
16 |
+
dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
|
17 |
+
dayNamesMin: ['ne','po','út','st','čt','pá','so'],
|
18 |
+
dayStatus: 'Nastavit DD jako první den v týdnu', dateStatus: '\'Vyber\' DD, M d',
|
19 |
+
dateFormat: 'dd.mm.yy', firstDay: 1,
|
20 |
+
initStatus: 'Vyberte datum', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['cs']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-da.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Danish initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Jan Christensen ( deletestuff@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['da'] = {clearText: 'Nulstil', clearStatus: 'Nulstil den aktuelle dato',
|
5 |
+
closeText: 'Luk', closeStatus: 'Luk uden ændringer',
|
6 |
+
prevText: '<Forrige', prevStatus: 'Vis forrige måned',
|
7 |
+
nextText: 'Næste>', nextStatus: 'Vis næste måned',
|
8 |
+
currentText: 'Idag', currentStatus: 'Vis aktuel måned',
|
9 |
+
monthNames: ['Januar','Februar','Marts','April','Maj','Juni',
|
10 |
+
'Juli','August','September','Oktober','November','December'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
|
12 |
+
'Jul','Aug','Sep','Okt','Nov','Dec'],
|
13 |
+
monthStatus: 'Vis en anden måned', yearStatus: 'Vis et andet år',
|
14 |
+
weekHeader: 'Uge', weekStatus: 'Årets uge',
|
15 |
+
dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'],
|
16 |
+
dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'],
|
17 |
+
dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
|
18 |
+
dayStatus: 'Sæt DD som første ugedag', dateStatus: 'Vælg D, M d',
|
19 |
+
dateFormat: 'dd-mm-yy', firstDay: 0,
|
20 |
+
initStatus: 'Vælg en dato', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['da']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-de.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* German initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Milian Wolff (mail@milianw.de). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['de'] = {clearText: 'löschen', clearStatus: 'aktuelles Datum löschen',
|
5 |
+
closeText: 'schließen', closeStatus: 'ohne Änderungen schließen',
|
6 |
+
prevText: '<zurück', prevStatus: 'letzten Monat zeigen',
|
7 |
+
nextText: 'Vor>', nextStatus: 'nächsten Monat zeigen',
|
8 |
+
currentText: 'heute', currentStatus: '',
|
9 |
+
monthNames: ['Januar','Februar','März','April','Mai','Juni',
|
10 |
+
'Juli','August','September','Oktober','November','Dezember'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
|
12 |
+
'Jul','Aug','Sep','Okt','Nov','Dez'],
|
13 |
+
monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen',
|
14 |
+
weekHeader: 'Wo', weekStatus: 'Woche des Monats',
|
15 |
+
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
|
16 |
+
dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
17 |
+
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
18 |
+
dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d',
|
19 |
+
dateFormat: 'dd.mm.yy', firstDay: 1,
|
20 |
+
initStatus: 'Wähle ein Datum', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['de']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-es.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Inicializaci�n en espa�ol para la extensi�n 'UI date picker' para jQuery. */
|
2 |
+
/* Traducido por Vester (xvester@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['es'] = {clearText: 'Limpiar', clearStatus: '',
|
5 |
+
closeText: 'Cerrar', closeStatus: '',
|
6 |
+
prevText: '<Ant', prevStatus: '',
|
7 |
+
nextText: 'Sig>', nextStatus: '',
|
8 |
+
currentText: 'Hoy', currentStatus: '',
|
9 |
+
monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
|
10 |
+
'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
|
11 |
+
monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
|
12 |
+
'Jul','Ago','Sep','Oct','Nov','Dic'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Sm', weekStatus: '',
|
15 |
+
dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sádabo'],
|
16 |
+
dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'],
|
17 |
+
dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'dd/mm/yy', firstDay: 0,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['es']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-fi.js
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Finnish initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Harri Kilpi� (harrikilpio@gmail.com). */
|
3 |
+
|
4 |
+
$(document).ready(function(){
|
5 |
+
$.datepicker.regional['fi'] = {
|
6 |
+
clearText: 'Tyhjennä', clearStatus: '',
|
7 |
+
closeText: 'Sulje', closeStatus: '',
|
8 |
+
prevText: '«Edellinen', prevStatus: '',
|
9 |
+
nextText: 'Seuraava»', nextStatus: '',
|
10 |
+
currentText: 'Tänään', currentStatus: '',
|
11 |
+
monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu',
|
12 |
+
'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'],
|
13 |
+
monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä',
|
14 |
+
'Heinä','Elo','Syys','Loka','Marras','Joulu'],
|
15 |
+
monthStatus: '', yearStatus: '',
|
16 |
+
weekHeader: 'Vk', weekStatus: '',
|
17 |
+
dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'],
|
18 |
+
dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'],
|
19 |
+
dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'],
|
20 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
21 |
+
dateFormat: 'dd.mm.yy', firstDay: 1,
|
22 |
+
initStatus: '', isRTL: false};
|
23 |
+
$.datepicker.setDefaults($.datepicker.regional['fi']);
|
24 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-fr.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* French initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Keith Wood (kbwood@virginbroadband.com.au) and Stéphane Nahmani (sholby@sholby.net). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['fr'] = {clearText: 'Effacer', clearStatus: '',
|
5 |
+
closeText: 'Fermer', closeStatus: 'Fermer sans modifier',
|
6 |
+
prevText: '<Préc', prevStatus: 'Voir le mois précédent',
|
7 |
+
nextText: 'Suiv>', nextStatus: 'Voir le mois suivant',
|
8 |
+
currentText: 'Courant', currentStatus: 'Voir le mois courant',
|
9 |
+
monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
|
10 |
+
'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
|
11 |
+
monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
|
12 |
+
'Jul','Aoû','Sep','Oct','Nov','Déc'],
|
13 |
+
monthStatus: 'Voir un autre mois', yearStatus: 'Voir un autre année',
|
14 |
+
weekHeader: 'Sm', weekStatus: '',
|
15 |
+
dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
|
16 |
+
dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
|
17 |
+
dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
|
18 |
+
dayStatus: 'Utiliser DD comme premier jour de la semaine', dateStatus: 'Choisir le DD, MM d',
|
19 |
+
dateFormat: 'dd/mm/yy', firstDay: 0,
|
20 |
+
initStatus: 'Choisir la date', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['fr']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-he.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Hebrew initialisation for the UI Datepicker extension. */
|
2 |
+
/* Written by Amir Hardon (ahardon at gmail dot com). */
|
3 |
+
jQuery(document).ready(function(){
|
4 |
+
jQuery.datepicker.regional['he'] = {clearText: 'נקה', clearStatus: '',
|
5 |
+
closeText: 'סגור', closeStatus: '',
|
6 |
+
prevText: '<הקודם', prevStatus: '',
|
7 |
+
nextText: 'הבא>', nextStatus: '',
|
8 |
+
currentText: 'היום', currentStatus: '',
|
9 |
+
monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני',
|
10 |
+
'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'],
|
11 |
+
monthNamesShort: ['1','2','3','4','5','6',
|
12 |
+
'7','8','9','10','11','12'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Sm', weekStatus: '',
|
15 |
+
dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'],
|
16 |
+
dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
|
17 |
+
dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'DD, M d',
|
19 |
+
dateFormat: 'dd/mm/yy', firstDay: 0,
|
20 |
+
initStatus: '', isRTL: true};
|
21 |
+
jQuery.datepicker.setDefaults($.datepicker.regional['he']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-hu.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Hungarian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Istvan Karaszi (jquerycalendar@spam.raszi.hu). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['hu'] = {clearText: 'törlés', clearStatus: '',
|
5 |
+
closeText: 'bezárás', closeStatus: '',
|
6 |
+
prevText: '« vissza', prevStatus: '',
|
7 |
+
nextText: 'előre »', nextStatus: '',
|
8 |
+
currentText: 'ma', currentStatus: '',
|
9 |
+
monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
|
10 |
+
'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
|
11 |
+
monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
|
12 |
+
'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Hé', weekStatus: '',
|
15 |
+
dayNames: ['Vasámap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
|
16 |
+
dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
|
17 |
+
dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'yy-mm-dd', firstDay: 1,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['hu']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-hy.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['hy'] = {clearText: 'Մաքրել', clearStatus: '',
|
5 |
+
closeText: 'Փակել', closeStatus: '',
|
6 |
+
prevText: '<Նախ.', prevStatus: '',
|
7 |
+
nextText: 'Հաջ.>', nextStatus: '',
|
8 |
+
currentText: 'Այսօր', currentStatus: '',
|
9 |
+
monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս',
|
10 |
+
'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'],
|
11 |
+
monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս',
|
12 |
+
'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'ՇԲՏ', weekStatus: '',
|
15 |
+
dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'],
|
16 |
+
dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
|
17 |
+
dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'dd.mm.yy', firstDay: 1,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['hy']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-id.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Indonesian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Deden Fathurahman (dedenf@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['id'] = {clearText: 'kosongkan', clearStatus: 'bersihkan tanggal yang sekarang',
|
5 |
+
closeText: 'Tutup', closeStatus: 'Tutup tanpa mengubah',
|
6 |
+
prevText: '<mundur', prevStatus: 'Tampilkan bulan sebelumnya',
|
7 |
+
nextText: 'maju>', nextStatus: 'Tampilkan bulan berikutnya',
|
8 |
+
currentText: 'hari ini', currentStatus: 'Tampilkan bulan sekarang',
|
9 |
+
monthNames: ['Januari','Februari','Maret','April','Mei','Juni',
|
10 |
+
'Juli','Agustus','September','Oktober','Nopember','Desember'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
|
12 |
+
'Jul','Agus','Sep','Okt','Nop','Des'],
|
13 |
+
monthStatus: 'Tampilkan bulan yang berbeda', yearStatus: 'Tampilkan tahun yang berbeda',
|
14 |
+
weekHeader: 'Mg', weekStatus: 'Minggu dalam tahun',
|
15 |
+
dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'],
|
16 |
+
dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'],
|
17 |
+
dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'],
|
18 |
+
dayStatus: 'gunakan DD sebagai awal hari dalam minggu', dateStatus: 'pilih le DD, MM d',
|
19 |
+
dateFormat: 'dd/mm/yy', firstDay: 0,
|
20 |
+
initStatus: 'Pilih Tanggal', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['id']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-is.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Icelandic initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Haukur H. Thorsson (haukur@eskill.is). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['is'] = {clearText: 'Hreinsa', clearStatus: '',
|
5 |
+
closeText: 'Loka', closeStatus: '',
|
6 |
+
prevText: '< Fyrri', prevStatus: '',
|
7 |
+
nextText: 'Næsti >', nextStatus: '',
|
8 |
+
currentText: 'Í dag', currentStatus: '',
|
9 |
+
monthNames: ['Janúar','Febrúar','Mars','Apríl','Maí','Júní',
|
10 |
+
'Júlí','Ágúst','September','Október','Nóvember','Desember'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Maí','Jún',
|
12 |
+
'Júl','Ágú','Sep','Okt','Nóv','Des'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Vika', weekStatus: '',
|
15 |
+
dayNames: ['Sunnudagur','Mánudagur','Þriðjudagur','Miðvikudagur','Fimmtudagur','Föstudagur','Laugardagur'],
|
16 |
+
dayNamesShort: ['Sun','Mán','Þri','Mið','Fim','Fös','Lau'],
|
17 |
+
dayNamesMin: ['Su','Má','Þr','Mi','Fi','Fö','La'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'dd/mm/yy', firstDay: 0,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['is']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-it.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Italian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Apaella (apaella@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['it'] = {clearText: 'Svuota', clearStatus: '',
|
5 |
+
closeText: 'Chiudi', closeStatus: '',
|
6 |
+
prevText: '<Prec', prevStatus: '',
|
7 |
+
nextText: 'Succ>', nextStatus: '',
|
8 |
+
currentText: 'Oggi', currentStatus: '',
|
9 |
+
monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',
|
10 |
+
'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
|
11 |
+
monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',
|
12 |
+
'Lug','Ago','Set','Ott','Nov','Dic'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Sm', weekStatus: '',
|
15 |
+
dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'],
|
16 |
+
dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],
|
17 |
+
dayNamesMin: ['Do','Lu','Ma','Me','Gio','Ve','Sa'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'dd/mm/yy', firstDay: 1,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['it']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-ja.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Japanese (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Milly. */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ja'] = {clearText: '削除', clearStatus: '',
|
5 |
+
closeText: '閉じる', closeStatus: '',
|
6 |
+
prevText: '<前月', prevStatus: '',
|
7 |
+
nextText: '次月>', nextStatus: '',
|
8 |
+
currentText: '今日', currentStatus: '',
|
9 |
+
monthNames: ['1月','2月','3月','4月','5月','6月',
|
10 |
+
'7月','8月','9月','10月','11月','12月'],
|
11 |
+
monthNamesShort: ['1月','2月','3月','4月','5月','6月',
|
12 |
+
'7月','8月','9月','10月','11月','12月'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Wk', weekStatus: '',
|
15 |
+
dayNames: ['日','月','火','水','木','金','土'],
|
16 |
+
dayNamesShort: ['日','月','火','水','木','金','土'],
|
17 |
+
dayNamesMin: ['日','月','火','水','木','金','土'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'yy/mm/dd', firstDay: 0,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['ja']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-ko.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Korean initialisation for the jQuery calendar extension. */
|
2 |
+
/* Written by DaeKwon Kang (ncrash.dk@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ko'] = {clearText: '지우기', clearStatus: '',
|
5 |
+
closeText: '닫기', closeStatus: '',
|
6 |
+
prevText: '이전달', prevStatus: '',
|
7 |
+
nextText: '다음달', nextStatus: '',
|
8 |
+
currentText: '오늘', currentStatus: '',
|
9 |
+
monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
|
10 |
+
'7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
|
11 |
+
monthNamesShort: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
|
12 |
+
'7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Wk', weekStatus: '',
|
15 |
+
dayNames: ['일','월','화','수','목','금','토'],
|
16 |
+
dayNamesShort: ['일','월','화','수','목','금','토'],
|
17 |
+
dayNamesMin: ['일','월','화','수','목','금','토'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'yy-mm-dd', firstDay: 0,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['ko']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-lt.js
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin.
|
3 |
+
*
|
4 |
+
* @author Arturas Paleicikas <arturas@avalon.lt>
|
5 |
+
*/
|
6 |
+
jQuery(function($){
|
7 |
+
$.datepicker.regional['lt'] = {clearText: 'Išvalyti', clearStatus: '',
|
8 |
+
closeText: 'Uždaryti', closeStatus: '',
|
9 |
+
prevText: '<Atgal', prevStatus: '',
|
10 |
+
nextText: 'Pirmyn>', nextStatus: '',
|
11 |
+
currentText: 'Šiandien', currentStatus: '',
|
12 |
+
monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis',
|
13 |
+
'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'],
|
14 |
+
monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir',
|
15 |
+
'Lie','Rugp','Rugs','Spa','Lap','Gru'],
|
16 |
+
monthStatus: '', yearStatus: '',
|
17 |
+
weekHeader: '', weekStatus: '',
|
18 |
+
dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'],
|
19 |
+
dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'],
|
20 |
+
dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'],
|
21 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
22 |
+
dateFormat: 'yy-mm-dd', firstDay: 1,
|
23 |
+
initStatus: '', isRTL: false};
|
24 |
+
$.datepicker.setDefaults($.datepicker.regional['lt']);
|
25 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-lv.js
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin.
|
3 |
+
* @author Arturas Paleicikas <arturas.paleicikas@metasite.net>
|
4 |
+
*/
|
5 |
+
jQuery(function($){
|
6 |
+
$.datepicker.regional['lv'] = {
|
7 |
+
clearText: 'Notīrīt', clearStatus: '',
|
8 |
+
closeText: 'Aizvērt', closeStatus: '',
|
9 |
+
prevText: 'Iepr', prevStatus: '',
|
10 |
+
nextText: 'Nāka', nextStatus: '',
|
11 |
+
currentText: 'Šodien', currentStatus: '',
|
12 |
+
monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs',
|
13 |
+
'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'],
|
14 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn',
|
15 |
+
'Jūl','Aug','Sep','Okt','Nov','Dec'],
|
16 |
+
monthStatus: '', yearStatus: '',
|
17 |
+
weekHeader: 'Nav', weekStatus: '',
|
18 |
+
dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'],
|
19 |
+
dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'],
|
20 |
+
dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'],
|
21 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
22 |
+
dateFormat: 'dd-mm-yy', firstDay: 1,
|
23 |
+
initStatus: '', isRTL: false};
|
24 |
+
$.datepicker.setDefaults($.datepicker.regional['lv']);
|
25 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-nl.js
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
jQuery(function($){
|
3 |
+
$.datepicker.regional['nl'] = {clearText: 'Wissen', clearStatus: 'Wis de huidige datum',
|
4 |
+
closeText: 'Sluiten', closeStatus: 'Sluit zonder verandering',
|
5 |
+
prevText: '<Terug', prevStatus: 'Laat de voorgaande maand zien',
|
6 |
+
nextText: 'Volgende>', nextStatus: 'Laat de volgende maand zien',
|
7 |
+
currentText: 'Vandaag', currentStatus: 'Laat de huidige maand zien',
|
8 |
+
monthNames: ['Januari','Februari','Maart','April','Mei','Juni',
|
9 |
+
'Juli','Augustus','September','Oktober','November','December'],
|
10 |
+
monthNamesShort: ['Jan','Feb','Mrt','Apr','Mei','Jun',
|
11 |
+
'Jul','Aug','Sep','Okt','Nov','Dec'],
|
12 |
+
monthStatus: 'Laat een andere maand zien', yearStatus: 'Laat een ander jaar zien',
|
13 |
+
weekHeader: 'Wk', weekStatus: 'Week van het jaar',
|
14 |
+
dayNames: ['Zondag','Maandag','Dinsdag','Woensdag','Donderdag','Vrijdag','Zaterdag'],
|
15 |
+
dayNamesShort: ['Zon','Maa','Din','Woe','Don','Vri','Zat'],
|
16 |
+
dayNamesMin: ['Zo','Ma','Di','Wo','Do','Vr','Za'],
|
17 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
18 |
+
dateFormat: 'dd.mm.yy', firstDay: 1,
|
19 |
+
initStatus: 'Kies een datum', isRTL: false};
|
20 |
+
$.datepicker.setDefaults($.datepicker.regional['nl']);
|
21 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-no.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Norwegian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Naimdjon Takhirov (naimdjon@gmail.com). */
|
3 |
+
|
4 |
+
$(document).ready(function(){
|
5 |
+
$.datepicker.regional['no'] = {clearText: 'Tøm', clearStatus: '',
|
6 |
+
closeText: 'Lukk', closeStatus: '',
|
7 |
+
prevText: '«Forrige', prevStatus: '',
|
8 |
+
nextText: 'Neste»', nextStatus: '',
|
9 |
+
currentText: 'I dag', currentStatus: '',
|
10 |
+
monthNames: ['Januar','Februar','Mars','April','Mai','Juni',
|
11 |
+
'Juli','August','September','Oktober','November','Desember'],
|
12 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun',
|
13 |
+
'Jul','Aug','Sep','Okt','Nov','Des'],
|
14 |
+
monthStatus: '', yearStatus: '',
|
15 |
+
weekHeader: 'Uke', weekStatus: '',
|
16 |
+
dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'],
|
17 |
+
dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'],
|
18 |
+
dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
|
19 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
20 |
+
dateFormat: 'yy-mm-dd', firstDay: 0,
|
21 |
+
initStatus: '', isRTL: false};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['no']);
|
23 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-pl.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Polish initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['pl'] = {clearText: 'Wyczyść', clearStatus: 'Wyczyść obecną datę',
|
5 |
+
closeText: 'Zamknij', closeStatus: 'Zamknij bez zapisywania',
|
6 |
+
prevText: '<Poprzedni', prevStatus: 'Pokaż poprzedni miesiąc',
|
7 |
+
nextText: 'Następny>', nextStatus: 'Pokaż następny miesiąc',
|
8 |
+
currentText: 'Dziś', currentStatus: 'Pokaż aktualny miesiąc',
|
9 |
+
monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
|
10 |
+
'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
|
11 |
+
monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
|
12 |
+
'Lip','Sie','Wrz','Pa','Lis','Gru'],
|
13 |
+
monthStatus: 'Pokaż inny miesiąc', yearStatus: 'Pokaż inny rok',
|
14 |
+
weekHeader: 'Tydz', weekStatus: 'Tydzień roku',
|
15 |
+
dayNames: ['Niedziela','Poniedzialek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
|
16 |
+
dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
|
17 |
+
dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
|
18 |
+
dayStatus: 'Ustaw DD jako pierwszy dzień tygodnia', dateStatus: 'Wybierz D, M d',
|
19 |
+
dateFormat: 'yy-mm-dd', firstDay: 1,
|
20 |
+
initStatus: 'Wybierz datę', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['pl']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-pt-BR.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Brazilian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Leonildo Costa Silva (leocsilva@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['pt-BR'] = {clearText: 'Limpar', clearStatus: '',
|
5 |
+
closeText: 'Fechar', closeStatus: '',
|
6 |
+
prevText: '<Anterior', prevStatus: '',
|
7 |
+
nextText: 'Próximo>', nextStatus: '',
|
8 |
+
currentText: 'Hoje', currentStatus: '',
|
9 |
+
monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho',
|
10 |
+
'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
|
11 |
+
monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
|
12 |
+
'Jul','Ago','Set','Out','Nov','Dez'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Sm', weekStatus: '',
|
15 |
+
dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sabado'],
|
16 |
+
dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
|
17 |
+
dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'dd/mm/yy', firstDay: 0,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['pt-BR']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-ro.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Romanian initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Edmond L. (ll_edmond@walla.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ro'] = {clearText: 'Curat', clearStatus: 'Sterge data curenta',
|
5 |
+
closeText: 'Inchide', closeStatus: 'Inchide fara schimbare',
|
6 |
+
prevText: '<Anterior', prevStatus: 'Arata luna trecuta',
|
7 |
+
nextText: 'Urmator>', nextStatus: 'Arata luna urmatoare',
|
8 |
+
currentText: 'Azi', currentStatus: 'Arata luna curenta',
|
9 |
+
monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Junie',
|
10 |
+
'Julie','August','Septembrie','Octobrie','Noiembrie','Decembrie'],
|
11 |
+
monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun',
|
12 |
+
'Jul', 'Aug', 'Sep', 'Oct', 'Noi', 'Dec'],
|
13 |
+
monthStatus: 'Arata o luna diferita', yearStatus: 'Arat un an diferit',
|
14 |
+
weekHeader: 'Sapt', weekStatus: 'Saptamana anului',
|
15 |
+
dayNames: ['Duminica', 'Luni', 'Marti', 'Miercuri', 'Joi', 'Vineri', 'Sambata'],
|
16 |
+
dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sam'],
|
17 |
+
dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sa'],
|
18 |
+
dayStatus: 'Seteaza DD ca prima saptamana zi', dateStatus: 'Selecteaza D, M d',
|
19 |
+
dateFormat: 'mm/dd/yy', firstDay: 0,
|
20 |
+
initStatus: 'Selecteaza o data', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['ro']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-ru.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Andrew Stromnov (stromnov@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['ru'] = {clearText: 'Очистить', clearStatus: '',
|
5 |
+
closeText: 'Закрыть', closeStatus: '',
|
6 |
+
prevText: '<Пред', prevStatus: '',
|
7 |
+
nextText: 'След>', nextStatus: '',
|
8 |
+
currentText: 'Сегодня', currentStatus: '',
|
9 |
+
monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
|
10 |
+
'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
|
11 |
+
monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
|
12 |
+
'Июл','Авг','Сен','Окт','Ноя','Дек'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Не', weekStatus: '',
|
15 |
+
dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
|
16 |
+
dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
|
17 |
+
dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'dd.mm.yy', firstDay: 1,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['ru']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-sk.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Slovak initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Vojtech Rinik (vojto@hmm.sk). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['sk'] = {clearText: 'Zmazať', clearStatus: '',
|
5 |
+
closeText: 'Zavrieť', closeStatus: '',
|
6 |
+
prevText: '<Predchádzajúci', prevStatus: '',
|
7 |
+
nextText: 'Nasledujúci>', nextStatus: '',
|
8 |
+
currentText: 'Dnes', currentStatus: '',
|
9 |
+
monthNames: ['Január','Február','Marec','Apríl','Máj','Jún',
|
10 |
+
'Júl','August','September','Október','November','December'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún',
|
12 |
+
'Júl','Aug','Sep','Okt','Nov','Dec'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Ty', weekStatus: '',
|
15 |
+
dayNames: ['Nedel\'a','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'],
|
16 |
+
dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'],
|
17 |
+
dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'dd.mm.yy', firstDay: 0,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['sk']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-sv.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Swedish initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Anders Ekdahl ( anders@nomadiz.se). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['sv'] = {clearText: 'Rensa', clearStatus: '',
|
5 |
+
closeText: 'Stäng', closeStatus: '',
|
6 |
+
prevText: '«Förra', prevStatus: '',
|
7 |
+
nextText: 'Nästa»', nextStatus: '',
|
8 |
+
currentText: 'Idag', currentStatus: '',
|
9 |
+
monthNames: ['Januari','Februari','Mars','April','Maj','Juni',
|
10 |
+
'Juli','Augusti','September','Oktober','November','December'],
|
11 |
+
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
|
12 |
+
'Jul','Aug','Sep','Okt','Nov','Dec'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Ve', weekStatus: '',
|
15 |
+
dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'],
|
16 |
+
dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'],
|
17 |
+
dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'yy-mm-dd', firstDay: 1,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['sv']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-th.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Thai initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by pipo (pipo@sixhead.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['th'] = {clearText: 'ลบ', clearStatus: '',
|
5 |
+
closeText: 'ปิด', closeStatus: '',
|
6 |
+
prevText: '« ย้อน', prevStatus: '',
|
7 |
+
nextText: 'ถัดไป »', nextStatus: '',
|
8 |
+
currentText: 'วันนี้', currentStatus: '',
|
9 |
+
monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน',
|
10 |
+
'กรกฏาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
|
11 |
+
monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.',
|
12 |
+
'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Sm', weekStatus: '',
|
15 |
+
dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
|
16 |
+
dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
|
17 |
+
dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'dd/mm/yy', firstDay: 0,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['th']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-tr.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Turkish initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Izzet Emre Erkan (kara@karalamalar.net). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['tr'] = {clearText: 'temizle', clearStatus: 'geçerli tarihi temizler',
|
5 |
+
closeText: 'kapat', closeStatus: 'sadece göstergeyi kapat',
|
6 |
+
prevText: '<geri', prevStatus: 'önceki ayı göster',
|
7 |
+
nextText: 'ileri>', nextStatus: 'sonraki ayı göster',
|
8 |
+
currentText: 'bugün', currentStatus: '',
|
9 |
+
monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran',
|
10 |
+
'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'],
|
11 |
+
monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz',
|
12 |
+
'Tem','Ağu','Eyl','Eki','Kas','Ara'],
|
13 |
+
monthStatus: 'başka ay', yearStatus: 'başka yıl',
|
14 |
+
weekHeader: 'Hf', weekStatus: 'Ayın haftaları',
|
15 |
+
dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'],
|
16 |
+
dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
|
17 |
+
dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
|
18 |
+
dayStatus: 'Haftanın ilk gününü belirleyin', dateStatus: 'D, M d seçiniz',
|
19 |
+
dateFormat: 'dd.mm.yy', firstDay: 1,
|
20 |
+
initStatus: 'Bir tarih seçiniz', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['tr']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-uk.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Maxim Drogobitskiy (maxdao@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['uk'] = {clearText: 'Очистити', clearStatus: '',
|
5 |
+
closeText: 'Закрити', closeStatus: '',
|
6 |
+
prevText: '<<', prevStatus: '',
|
7 |
+
nextText: '>>', nextStatus: '',
|
8 |
+
currentText: 'Сьогодні', currentStatus: '',
|
9 |
+
monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень',
|
10 |
+
'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'],
|
11 |
+
monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер',
|
12 |
+
'Лип','Сер','Вер','Жов','Лис','Гру'],
|
13 |
+
monthStatus: '', yearStatus: '',
|
14 |
+
weekHeader: 'Не', weekStatus: '',
|
15 |
+
dayNames: ['неділя','понеділок','вівторок','середа','четвер','пятниця','суббота'],
|
16 |
+
dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'],
|
17 |
+
dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'],
|
18 |
+
dayStatus: 'DD', dateStatus: 'D, M d',
|
19 |
+
dateFormat: 'dd.mm.yy', firstDay: 1,
|
20 |
+
initStatus: '', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['uk']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-zh-CN.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Chinese initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Cloudream (cloudream@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['zh-CN'] = {clearText: '清除', clearStatus: '清除已选日期',
|
5 |
+
closeText: '关闭', closeStatus: '不改变当前选择',
|
6 |
+
prevText: '<上月', prevStatus: '显示上月',
|
7 |
+
nextText: '下月>', nextStatus: '显示下月',
|
8 |
+
currentText: '今天', currentStatus: '显示本月',
|
9 |
+
monthNames: ['一月','二月','三月','四月','五月','六月',
|
10 |
+
'七月','八月','九月','十月','十一月','十二月'],
|
11 |
+
monthNamesShort: ['一','二','三','四','五','六',
|
12 |
+
'七','八','九','十','十一','十二'],
|
13 |
+
monthStatus: '选择月份', yearStatus: '选择年份',
|
14 |
+
weekHeader: '周', weekStatus: '年内周次',
|
15 |
+
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
|
16 |
+
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
|
17 |
+
dayNamesMin: ['日','一','二','三','四','五','六'],
|
18 |
+
dayStatus: '设置 DD 为一周起始', dateStatus: '选择 m月 d日, DD',
|
19 |
+
dateFormat: 'yy-mm-dd', firstDay: 1,
|
20 |
+
initStatus: '请选择日期', isRTL: false};
|
21 |
+
$.datepicker.setDefaults($.datepicker.regional['zh-CN']);
|
22 |
+
});
|
js/jquery-ui-datepicker/i18n/ui.datepicker-zh-TW.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Chinese initialisation for the jQuery UI date picker plugin. */
|
2 |
+
/* Written by Ressol (ressol@gmail.com). */
|
3 |
+
jQuery(function($){
|
4 |
+
$.datepicker.regional['zh-TW'] = {
|
5 |
+
clearText: '清除', clearStatus: '清除已選日期',
|
6 |
+
closeText: '關閉', closeStatus: '不改變目前的選擇',
|
7 |
+
prevText: '<上月', prevStatus: '顯示上月',
|
8 |
+
nextText: '下月>', nextStatus: '顯示下月',
|
9 |
+
currentText: '今天', currentStatus: '顯示本月',
|
10 |
+
monthNames: ['一月','二月','三月','四月','五月','六月',
|
11 |
+
'七月','八月','九月','十月','十一月','十二月'],
|
12 |
+
monthNamesShort: ['一','二','三','四','五','六',
|
13 |
+
'七','八','九','十','十一','十二'],
|
14 |
+
monthStatus: '選擇月份', yearStatus: '選擇年份',
|
15 |
+
weekHeader: '周', weekStatus: '年內周次',
|
16 |
+
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
|
17 |
+
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
|
18 |
+
dayNamesMin: ['日','一','二','三','四','五','六'],
|
19 |
+
dayStatus: '設定 DD 為一周起始', dateStatus: '選擇 m月 d日, DD',
|
20 |
+
dateFormat: 'yy/mm/dd', firstDay: 1,
|
21 |
+
initStatus: '請選擇日期', isRTL: false};
|
22 |
+
$.datepicker.setDefaults($.datepicker.regional['zh-TW']);
|
23 |
+
});
|
langs/dbem-it_IT.mo
CHANGED
Binary file
|
langs/dbem-it_IT.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: events-manager\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2009-03-
|
6 |
"PO-Revision-Date: \n"
|
7 |
"Last-Translator: Davide Benini <cno@cnomania.it>\n"
|
8 |
"Language-Team: \n"
|
@@ -526,6 +526,7 @@ msgstr "Filtro"
|
|
526 |
|
527 |
#: dbem_events.php:920
|
528 |
#: dbem_events.php:1196
|
|
|
529 |
#: dbem_locations.php:225
|
530 |
#: dbem_locations.php:233
|
531 |
#: dbem_people.php:90
|
@@ -536,6 +537,7 @@ msgstr "Nome"
|
|
536 |
|
537 |
#: dbem_events.php:921
|
538 |
#: dbem_events.php:1249
|
|
|
539 |
msgid "Location"
|
540 |
msgstr "Luogo"
|
541 |
|
@@ -759,24 +761,47 @@ msgstr "Note sull'evento"
|
|
759 |
msgid "Submit Event"
|
760 |
msgstr "Invia evento"
|
761 |
|
762 |
-
#: dbem_events.php:
|
763 |
-
|
764 |
-
|
765 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
766 |
|
767 |
-
#: dbem_events.php:
|
768 |
-
|
769 |
-
|
|
|
|
|
770 |
|
771 |
-
#: dbem_events.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
772 |
msgid "You cannot enable Google Maps integration without setting an appropriate API key."
|
773 |
msgstr "Non è possibile abilitare l'integrazione con Google Maps senza impostare una chiave API."
|
774 |
|
775 |
-
#: dbem_events.php:
|
776 |
msgid "Add an event"
|
777 |
msgstr "Aggiungi un evento"
|
778 |
|
779 |
-
#: dbem_events.php:
|
780 |
#, php-format
|
781 |
msgid "This page corresponds to <strong>Events Manager</strong> events page. Its content will be overriden by <strong>Events Manager</strong>. If you want to display your content, you can can assign another page to <strong>Events Manager</strong> in the the <a href='%s'>Settings</a>. "
|
782 |
msgstr "Questa pagina corriponde alla pagina eventi di <strong>Events Manager</strong>. Il suo contenuto verrà sovrascritto da <strong>Events Manager</strong>. Se vuoi visualizzare il tuo contenuto, puoi assegnare ad <strong>Events Manager</strong> un'altra pagina, tramite le <a href='%s'>Opzioni</a>. "
|
@@ -861,20 +886,10 @@ msgid "Update location"
|
|
861 |
msgstr "Aggiorna il luogo"
|
862 |
|
863 |
#: dbem_locations.php:203
|
864 |
-
#: events-manager.php:
|
865 |
msgid "Locations"
|
866 |
msgstr "Luoghi"
|
867 |
|
868 |
-
#: dbem_locations.php:226
|
869 |
-
#: dbem_locations.php:234
|
870 |
-
msgid "Address"
|
871 |
-
msgstr "Indirizzo"
|
872 |
-
|
873 |
-
#: dbem_locations.php:227
|
874 |
-
#: dbem_locations.php:235
|
875 |
-
msgid "Town"
|
876 |
-
msgstr "Città"
|
877 |
-
|
878 |
#: dbem_locations.php:262
|
879 |
msgid "No venues have been inserted yet!"
|
880 |
msgstr "Non sono ancora stati inseriti luoghi!"
|
@@ -896,6 +911,10 @@ msgstr "Selezionare un'immagine da caricare."
|
|
896 |
msgid "A description of the location. You may include any kind of info here."
|
897 |
msgstr "Una descrizione del luogo. In questo campo è possibile inserire qualsiasi tipo di informazione."
|
898 |
|
|
|
|
|
|
|
|
|
899 |
#: dbem_locations.php:400
|
900 |
msgid "The image file is too big! Maximum size:"
|
901 |
msgstr "Il file dell'immagine è troppo grande! Dimensione massima:"
|
@@ -1025,15 +1044,15 @@ msgstr "Prenotazione confermata"
|
|
1025 |
#: dbem_widgets.php:10
|
1026 |
#: dbem_widgets.php:35
|
1027 |
#: events-manager.php:44
|
1028 |
-
#: events-manager.php:
|
1029 |
-
#: events-manager.php:
|
1030 |
-
#: events-manager.php:
|
1031 |
msgid "Events"
|
1032 |
msgstr "Eventi"
|
1033 |
|
1034 |
#: dbem_widgets.php:19
|
1035 |
#: events-manager.php:50
|
1036 |
-
#: events-manager.php:
|
1037 |
msgid "No events"
|
1038 |
msgstr "Nessun evento"
|
1039 |
|
@@ -1084,38 +1103,40 @@ msgstr "Calendario eventi"
|
|
1084 |
msgid "<li>No events in this location</li>"
|
1085 |
msgstr "<li>Nessun evento in questo luogo</li>"
|
1086 |
|
1087 |
-
#: events-manager.php:
|
1088 |
msgid "#_RESPNAME (#_RESPEMAIL) will attend #_NAME on #m #d, #Y. He wants to reserve #_SPACES spaces.<br/> Now there are #_RESERVEDSPACES spaces reserved, #_AVAILABLESPACES are still available.<br/>Yours faithfully,<br/>Events Manager"
|
1089 |
msgstr "#_RESPNAME (#_RESPEMAIL) parteciperà all'evento #_NAME su #m #d, #Y. Vuole prenotare #_SPACES posti.<br/> Ora ci sono #_RESERVEDSPACES posti prenotati, #_AVAILABLESPACES sono ancora liberi.<br/>A presto,<br/>Events Manager"
|
1090 |
|
1091 |
-
#: events-manager.php:
|
1092 |
msgid "Dear #_RESPNAME, <br/>you have successfully reserved #_SPACES space/spaces for #_NAME.<br/>Yours faithfully,<br/> #_CONTACTPERSON"
|
1093 |
msgstr "#_RESPNAME, <br/>la prenotazione di #_SPACES posto/i a nome di #_NAME è andata a buon fine.<br/>A presto,<br/> #_CONTACTPERSON"
|
1094 |
|
1095 |
-
#: events-manager.php:
|
1096 |
msgid "events"
|
1097 |
msgstr "eventi"
|
1098 |
|
1099 |
-
#: events-manager.php:
|
1100 |
msgid "Edit"
|
1101 |
msgstr "Modifica"
|
1102 |
|
1103 |
-
#: events-manager.php:
|
1104 |
msgid "Add new"
|
1105 |
msgstr "Aggiungi nuovo"
|
1106 |
|
1107 |
-
#: events-manager.php:
|
1108 |
msgid "People"
|
1109 |
msgstr "Persone"
|
1110 |
|
1111 |
-
#: events-manager.php:
|
1112 |
msgid "Events Manager Settings"
|
1113 |
msgstr "Impostazioni di Events Manager"
|
1114 |
|
1115 |
-
#: events-manager.php:
|
1116 |
msgid "Settings"
|
1117 |
msgstr "Impostazioni"
|
1118 |
|
|
|
|
|
1119 |
#~ msgid "Example:"
|
1120 |
#~ msgstr "Esempio: "
|
1121 |
#~ msgid "Example: 2008-11-28"
|
@@ -1172,8 +1193,6 @@ msgstr "Impostazioni"
|
|
1172 |
#~ msgstr "Il formato della descrizione di ciascun elemento nel feed RSS."
|
1173 |
#~ msgid "ID"
|
1174 |
#~ msgstr "ID"
|
1175 |
-
#~ msgid "Date"
|
1176 |
-
#~ msgstr "Data"
|
1177 |
#~ msgid "Time"
|
1178 |
#~ msgstr "Ora"
|
1179 |
#~ msgid "Latitude"
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: events-manager\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2009-03-30 19:56+0100\n"
|
6 |
"PO-Revision-Date: \n"
|
7 |
"Last-Translator: Davide Benini <cno@cnomania.it>\n"
|
8 |
"Language-Team: \n"
|
526 |
|
527 |
#: dbem_events.php:920
|
528 |
#: dbem_events.php:1196
|
529 |
+
#: dbem_events.php:1514
|
530 |
#: dbem_locations.php:225
|
531 |
#: dbem_locations.php:233
|
532 |
#: dbem_people.php:90
|
537 |
|
538 |
#: dbem_events.php:921
|
539 |
#: dbem_events.php:1249
|
540 |
+
#: dbem_events.php:1514
|
541 |
msgid "Location"
|
542 |
msgstr "Luogo"
|
543 |
|
761 |
msgid "Submit Event"
|
762 |
msgstr "Invia evento"
|
763 |
|
764 |
+
#: dbem_events.php:1321
|
765 |
+
msgid "Missing fields: "
|
766 |
+
msgstr "Campi obbligatori mancanti:"
|
767 |
+
|
768 |
+
#: dbem_events.php:1323
|
769 |
+
msgid "Since the event is repeated, you must specify an event date."
|
770 |
+
msgstr "Per gli eventi ripetuti è necessario specificare una data di fine."
|
771 |
+
|
772 |
+
#: dbem_events.php:1514
|
773 |
+
msgid "Date"
|
774 |
+
msgstr "Data"
|
775 |
+
|
776 |
+
#: dbem_events.php:1514
|
777 |
+
#: dbem_locations.php:226
|
778 |
+
#: dbem_locations.php:234
|
779 |
+
msgid "Address"
|
780 |
+
msgstr "Indirizzo"
|
781 |
|
782 |
+
#: dbem_events.php:1514
|
783 |
+
#: dbem_locations.php:227
|
784 |
+
#: dbem_locations.php:235
|
785 |
+
msgid "Town"
|
786 |
+
msgstr "Città"
|
787 |
|
788 |
+
#: dbem_events.php:1531
|
789 |
+
msgid "Some required fields are missing:"
|
790 |
+
msgstr "Mancano alcuni campi obbligatori:"
|
791 |
+
|
792 |
+
#: dbem_events.php:1534
|
793 |
+
msgid "Since the event is repeated, you must specify an end date"
|
794 |
+
msgstr "Per gli eventi ripetuti è necessario specificare una data di fine"
|
795 |
+
|
796 |
+
#: dbem_events.php:1689
|
797 |
msgid "You cannot enable Google Maps integration without setting an appropriate API key."
|
798 |
msgstr "Non è possibile abilitare l'integrazione con Google Maps senza impostare una chiave API."
|
799 |
|
800 |
+
#: dbem_events.php:1828
|
801 |
msgid "Add an event"
|
802 |
msgstr "Aggiungi un evento"
|
803 |
|
804 |
+
#: dbem_events.php:1883
|
805 |
#, php-format
|
806 |
msgid "This page corresponds to <strong>Events Manager</strong> events page. Its content will be overriden by <strong>Events Manager</strong>. If you want to display your content, you can can assign another page to <strong>Events Manager</strong> in the the <a href='%s'>Settings</a>. "
|
807 |
msgstr "Questa pagina corriponde alla pagina eventi di <strong>Events Manager</strong>. Il suo contenuto verrà sovrascritto da <strong>Events Manager</strong>. Se vuoi visualizzare il tuo contenuto, puoi assegnare ad <strong>Events Manager</strong> un'altra pagina, tramite le <a href='%s'>Opzioni</a>. "
|
886 |
msgstr "Aggiorna il luogo"
|
887 |
|
888 |
#: dbem_locations.php:203
|
889 |
+
#: events-manager.php:448
|
890 |
msgid "Locations"
|
891 |
msgstr "Luoghi"
|
892 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
893 |
#: dbem_locations.php:262
|
894 |
msgid "No venues have been inserted yet!"
|
895 |
msgstr "Non sono ancora stati inseriti luoghi!"
|
911 |
msgid "A description of the location. You may include any kind of info here."
|
912 |
msgstr "Una descrizione del luogo. In questo campo è possibile inserire qualsiasi tipo di informazione."
|
913 |
|
914 |
+
#: dbem_locations.php:392
|
915 |
+
msgid " is missing!"
|
916 |
+
msgstr "non è presente!"
|
917 |
+
|
918 |
#: dbem_locations.php:400
|
919 |
msgid "The image file is too big! Maximum size:"
|
920 |
msgstr "Il file dell'immagine è troppo grande! Dimensione massima:"
|
1044 |
#: dbem_widgets.php:10
|
1045 |
#: dbem_widgets.php:35
|
1046 |
#: events-manager.php:44
|
1047 |
+
#: events-manager.php:398
|
1048 |
+
#: events-manager.php:399
|
1049 |
+
#: events-manager.php:444
|
1050 |
msgid "Events"
|
1051 |
msgstr "Eventi"
|
1052 |
|
1053 |
#: dbem_widgets.php:19
|
1054 |
#: events-manager.php:50
|
1055 |
+
#: events-manager.php:391
|
1056 |
msgid "No events"
|
1057 |
msgstr "Nessun evento"
|
1058 |
|
1103 |
msgid "<li>No events in this location</li>"
|
1104 |
msgstr "<li>Nessun evento in questo luogo</li>"
|
1105 |
|
1106 |
+
#: events-manager.php:382
|
1107 |
msgid "#_RESPNAME (#_RESPEMAIL) will attend #_NAME on #m #d, #Y. He wants to reserve #_SPACES spaces.<br/> Now there are #_RESERVEDSPACES spaces reserved, #_AVAILABLESPACES are still available.<br/>Yours faithfully,<br/>Events Manager"
|
1108 |
msgstr "#_RESPNAME (#_RESPEMAIL) parteciperà all'evento #_NAME su #m #d, #Y. Vuole prenotare #_SPACES posti.<br/> Ora ci sono #_RESERVEDSPACES posti prenotati, #_AVAILABLESPACES sono ancora liberi.<br/>A presto,<br/>Events Manager"
|
1109 |
|
1110 |
+
#: events-manager.php:383
|
1111 |
msgid "Dear #_RESPNAME, <br/>you have successfully reserved #_SPACES space/spaces for #_NAME.<br/>Yours faithfully,<br/> #_CONTACTPERSON"
|
1112 |
msgstr "#_RESPNAME, <br/>la prenotazione di #_SPACES posto/i a nome di #_NAME è andata a buon fine.<br/>A presto,<br/> #_CONTACTPERSON"
|
1113 |
|
1114 |
+
#: events-manager.php:433
|
1115 |
msgid "events"
|
1116 |
msgstr "eventi"
|
1117 |
|
1118 |
+
#: events-manager.php:446
|
1119 |
msgid "Edit"
|
1120 |
msgstr "Modifica"
|
1121 |
|
1122 |
+
#: events-manager.php:447
|
1123 |
msgid "Add new"
|
1124 |
msgstr "Aggiungi nuovo"
|
1125 |
|
1126 |
+
#: events-manager.php:449
|
1127 |
msgid "People"
|
1128 |
msgstr "Persone"
|
1129 |
|
1130 |
+
#: events-manager.php:451
|
1131 |
msgid "Events Manager Settings"
|
1132 |
msgstr "Impostazioni di Events Manager"
|
1133 |
|
1134 |
+
#: events-manager.php:451
|
1135 |
msgid "Settings"
|
1136 |
msgstr "Impostazioni"
|
1137 |
|
1138 |
+
#~ msgid "end date before begin date"
|
1139 |
+
#~ msgstr "la data finale precede quella iniziale"
|
1140 |
#~ msgid "Example:"
|
1141 |
#~ msgstr "Esempio: "
|
1142 |
#~ msgid "Example: 2008-11-28"
|
1193 |
#~ msgstr "Il formato della descrizione di ciascun elemento nel feed RSS."
|
1194 |
#~ msgid "ID"
|
1195 |
#~ msgstr "ID"
|
|
|
|
|
1196 |
#~ msgid "Time"
|
1197 |
#~ msgstr "Ora"
|
1198 |
#~ msgid "Latitude"
|
readme.txt
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
Contributors: nutsmuggler
|
3 |
Donate link: http://davidebenini.it
|
4 |
Tags: events, manager, calendar, gigs, concert, maps, geotagging
|
5 |
-
Requires at least: 2.
|
6 |
Tested up to: 2.7.1
|
7 |
-
Stable tag: 2.
|
8 |
|
9 |
Manage events and display them in your blog. Includes recurring events, location management, calendar, Google map integration, RSVP.
|
10 |
|
@@ -18,7 +18,9 @@ Events Manager provides also a RSS feed, to keep your subscribers updated about
|
|
18 |
|
19 |
Events manager is fully customisable; you can customise the amount of data displayed and their format in events lists, pages and in the RSS feed. You can choose to show or hide the events page, and change its title.
|
20 |
|
21 |
-
Events Manager is fully localisable
|
|
|
|
|
22 |
|
23 |
== Installation ==
|
24 |
|
@@ -28,9 +30,9 @@ Events Manager is fully localisable. IN this release you will find the Italian a
|
|
28 |
|
29 |
Events Manager 1.* adopters should:
|
30 |
|
31 |
-
1. backup
|
32 |
2. deactivate Events Manager 1.*
|
33 |
-
3. delete Events Managers 1.* and upload Events Manager 2.* to
|
34 |
4. activate Events Manager 2.*
|
35 |
|
36 |
Events Manager should take care of your events database migration automatically, but since this is a beta release it's much better to perform a database backup, as previously suggested.
|
@@ -156,4 +158,12 @@ Added alternate start and end time selector for those installs not supporting th
|
|
156 |
Removed "Mappa totale" from the gloabl map code
|
157 |
Fixed a problem in the back button in the events table
|
158 |
Removed some debug "echo" from the RSVP form
|
159 |
-
Hopefully fixed a database scheme bug that some users signalled
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Contributors: nutsmuggler
|
3 |
Donate link: http://davidebenini.it
|
4 |
Tags: events, manager, calendar, gigs, concert, maps, geotagging
|
5 |
+
Requires at least: 2.7
|
6 |
Tested up to: 2.7.1
|
7 |
+
Stable tag: 2.0rc1
|
8 |
|
9 |
Manage events and display them in your blog. Includes recurring events, location management, calendar, Google map integration, RSVP.
|
10 |
|
18 |
|
19 |
Events manager is fully customisable; you can customise the amount of data displayed and their format in events lists, pages and in the RSS feed. You can choose to show or hide the events page, and change its title.
|
20 |
|
21 |
+
Events Manager is fully localisable and aòlready localised in Italian, Spanish, German and Swedish.
|
22 |
+
|
23 |
+
For more information visit the [Documentation Page](http://davidebenini.it/wordpress-plugins/events-manager/) and [Support Forum](http://davidebenini.it/events-manager-forum/).
|
24 |
|
25 |
== Installation ==
|
26 |
|
30 |
|
31 |
Events Manager 1.* adopters should:
|
32 |
|
33 |
+
1. backup the Wordpress database.
|
34 |
2. deactivate Events Manager 1.*
|
35 |
+
3. delete Events Managers 1.* and upload Events Manager 2.* to the server
|
36 |
4. activate Events Manager 2.*
|
37 |
|
38 |
Events Manager should take care of your events database migration automatically, but since this is a beta release it's much better to perform a database backup, as previously suggested.
|
158 |
Removed "Mappa totale" from the gloabl map code
|
159 |
Fixed a problem in the back button in the events table
|
160 |
Removed some debug "echo" from the RSVP form
|
161 |
+
Hopefully fixed a database scheme bug that some users signalled
|
162 |
+
|
163 |
+
2.0rc1
|
164 |
+
Added JS validation and fallback server-side validation
|
165 |
+
Added a dbem\_is\_rsvpable() conditional template tag
|
166 |
+
Fixed a css bug with some themes, preventing the correct visualisation of the map.
|
167 |
+
Fixed MySql bugs in the main view and in the activation page
|
168 |
+
Added the proper expanded PHP tags
|
169 |
+
Fixed links in the RSS feed
|