@@ -78,6 +78,10 @@ discard block |
||
| 78 | 78 | } |
| 79 | 79 | exit(1); |
| 80 | 80 | } |
| 81 | + |
|
| 82 | + /** |
|
| 83 | + * @param TApplication $application |
|
| 84 | + */ |
|
| 81 | 85 | public static function setApplication($application) |
| 82 | 86 | { |
| 83 | 87 | if(self::$_application!==null && !defined('PRADO_TEST_RUN')) |
@@ -371,14 +375,26 @@ discard block |
||
| 371 | 375 | interface IModule |
| 372 | 376 | { |
| 373 | 377 | public function init($config); |
| 378 | + |
|
| 379 | + /** |
|
| 380 | + * @return string |
|
| 381 | + */ |
|
| 374 | 382 | public function getID(); |
| 375 | 383 | public function setID($id); |
| 376 | 384 | } |
| 377 | 385 | interface IService |
| 378 | 386 | { |
| 379 | 387 | public function init($config); |
| 388 | + |
|
| 389 | + /** |
|
| 390 | + * @return string |
|
| 391 | + */ |
|
| 380 | 392 | public function getID(); |
| 381 | 393 | public function setID($id); |
| 394 | + |
|
| 395 | + /** |
|
| 396 | + * @return boolean |
|
| 397 | + */ |
|
| 382 | 398 | public function getEnabled(); |
| 383 | 399 | public function setEnabled($value); |
| 384 | 400 | public function run(); |
@@ -390,14 +406,37 @@ discard block |
||
| 390 | 406 | } |
| 391 | 407 | interface IUser |
| 392 | 408 | { |
| 409 | + /** |
|
| 410 | + * @return string |
|
| 411 | + */ |
|
| 393 | 412 | public function getName(); |
| 394 | 413 | public function setName($value); |
| 414 | + |
|
| 415 | + /** |
|
| 416 | + * @return boolean |
|
| 417 | + */ |
|
| 395 | 418 | public function getIsGuest(); |
| 419 | + |
|
| 420 | + /** |
|
| 421 | + * @param boolean $value |
|
| 422 | + */ |
|
| 396 | 423 | public function setIsGuest($value); |
| 397 | 424 | public function getRoles(); |
| 398 | 425 | public function setRoles($value); |
| 426 | + |
|
| 427 | + /** |
|
| 428 | + * @return boolean |
|
| 429 | + */ |
|
| 399 | 430 | public function isInRole($role); |
| 431 | + |
|
| 432 | + /** |
|
| 433 | + * @return string |
|
| 434 | + */ |
|
| 400 | 435 | public function saveToString(); |
| 436 | + |
|
| 437 | + /** |
|
| 438 | + * @return TUser |
|
| 439 | + */ |
|
| 401 | 440 | public function loadFromString($string); |
| 402 | 441 | } |
| 403 | 442 | interface IStatePersister |
@@ -409,6 +448,12 @@ discard block |
||
| 409 | 448 | { |
| 410 | 449 | public function get($id); |
| 411 | 450 | public function set($id,$value,$expire=0,$dependency=null); |
| 451 | + |
|
| 452 | + /** |
|
| 453 | + * @param string $id |
|
| 454 | + * |
|
| 455 | + * @return boolean |
|
| 456 | + */ |
|
| 412 | 457 | public function add($id,$value,$expire=0,$dependency=null); |
| 413 | 458 | public function delete($id); |
| 414 | 459 | public function flush(); |
@@ -427,12 +472,22 @@ discard block |
||
| 427 | 472 | } |
| 428 | 473 | interface IStyleable |
| 429 | 474 | { |
| 475 | + /** |
|
| 476 | + * @return boolean |
|
| 477 | + */ |
|
| 430 | 478 | public function getHasStyle(); |
| 479 | + |
|
| 480 | + /** |
|
| 481 | + * @return TStyle |
|
| 482 | + */ |
|
| 431 | 483 | public function getStyle(); |
| 432 | 484 | public function clearStyle(); |
| 433 | 485 | } |
| 434 | 486 | interface IActiveControl |
| 435 | 487 | { |
| 488 | + /** |
|
| 489 | + * @return TBaseActiveControl |
|
| 490 | + */ |
|
| 436 | 491 | public function getActiveControl(); |
| 437 | 492 | } |
| 438 | 493 | interface ICallbackEventHandler |
@@ -442,6 +497,10 @@ discard block |
||
| 442 | 497 | interface IDataRenderer |
| 443 | 498 | { |
| 444 | 499 | public function getData(); |
| 500 | + |
|
| 501 | + /** |
|
| 502 | + * @param TActiveRecord $value |
|
| 503 | + */ |
|
| 445 | 504 | public function setData($value); |
| 446 | 505 | } |
| 447 | 506 | class TApplicationComponent extends TComponent |
@@ -470,6 +529,10 @@ discard block |
||
| 470 | 529 | { |
| 471 | 530 | return Prado::getApplication()->getUser(); |
| 472 | 531 | } |
| 532 | + |
|
| 533 | + /** |
|
| 534 | + * @param string $assetPath |
|
| 535 | + */ |
|
| 473 | 536 | public function publishAsset($assetPath,$className=null) |
| 474 | 537 | { |
| 475 | 538 | if($className===null) |
@@ -478,6 +541,10 @@ discard block |
||
| 478 | 541 | $fullPath=dirname($class->getFileName()).DIRECTORY_SEPARATOR.$assetPath; |
| 479 | 542 | return $this->publishFilePath($fullPath); |
| 480 | 543 | } |
| 544 | + |
|
| 545 | + /** |
|
| 546 | + * @param string $fullPath |
|
| 547 | + */ |
|
| 481 | 548 | public function publishFilePath($fullPath, $checkTimestamp=false) |
| 482 | 549 | { |
| 483 | 550 | return Prado::getApplication()->getAssetManager()->publishFilePath($fullPath, $checkTimestamp); |
@@ -509,6 +576,10 @@ discard block |
||
| 509 | 576 | { |
| 510 | 577 | return $this->_id; |
| 511 | 578 | } |
| 579 | + |
|
| 580 | + /** |
|
| 581 | + * @param string $value |
|
| 582 | + */ |
|
| 512 | 583 | public function setID($value) |
| 513 | 584 | { |
| 514 | 585 | $this->_id=$value; |
@@ -548,6 +619,10 @@ discard block |
||
| 548 | 619 | else |
| 549 | 620 | throw new TConfigurationException('errorhandler_errortemplatepath_invalid',$value); |
| 550 | 621 | } |
| 622 | + |
|
| 623 | + /** |
|
| 624 | + * @param null|TApplication $sender |
|
| 625 | + */ |
|
| 551 | 626 | public function handleError($sender,$param) |
| 552 | 627 | { |
| 553 | 628 | static $handling=false; |
@@ -570,6 +645,10 @@ discard block |
||
| 570 | 645 | $this->handleExternalError(500,$param); |
| 571 | 646 | } |
| 572 | 647 | } |
| 648 | + |
|
| 649 | + /** |
|
| 650 | + * @return string |
|
| 651 | + */ |
|
| 573 | 652 | protected static function hideSecurityRelated($value, $exception=null) |
| 574 | 653 | { |
| 575 | 654 | $aRpl = array(); |
@@ -589,6 +668,10 @@ discard block |
||
| 589 | 668 | $aRpl = array_reverse($aRpl, true); |
| 590 | 669 | return str_replace(array_keys($aRpl), $aRpl, $value); |
| 591 | 670 | } |
| 671 | + |
|
| 672 | + /** |
|
| 673 | + * @param integer $statusCode |
|
| 674 | + */ |
|
| 592 | 675 | protected function handleExternalError($statusCode,$exception) |
| 593 | 676 | { |
| 594 | 677 | if(!($exception instanceof THttpException)) |
@@ -722,6 +805,10 @@ discard block |
||
| 722 | 805 | return null; |
| 723 | 806 | return $result; |
| 724 | 807 | } |
| 808 | + |
|
| 809 | + /** |
|
| 810 | + * @param string $pattern |
|
| 811 | + */ |
|
| 725 | 812 | private function getPropertyAccessTrace($trace,$pattern) |
| 726 | 813 | { |
| 727 | 814 | $result=null; |
@@ -751,6 +838,10 @@ discard block |
||
| 751 | 838 | } |
| 752 | 839 | return $source; |
| 753 | 840 | } |
| 841 | + |
|
| 842 | + /** |
|
| 843 | + * @param string $message |
|
| 844 | + */ |
|
| 754 | 845 | private function addLink($message) |
| 755 | 846 | { |
| 756 | 847 | $baseUrl='http://pradosoft.github.io/docs/manual/class-'; |
@@ -772,6 +863,10 @@ discard block |
||
| 772 | 863 | { |
| 773 | 864 | return $this->_r; |
| 774 | 865 | } |
| 866 | + |
|
| 867 | + /** |
|
| 868 | + * @param boolean $value |
|
| 869 | + */ |
|
| 775 | 870 | protected function setReadOnly($value) |
| 776 | 871 | { |
| 777 | 872 | $this->_r=TPropertyValue::ensureBoolean($value); |
@@ -1018,9 +1113,27 @@ discard block |
||
| 1018 | 1113 | { |
| 1019 | 1114 | throw new TNotSupportedException('cache_flush_unsupported'); |
| 1020 | 1115 | } |
| 1116 | + |
|
| 1117 | + /** |
|
| 1118 | + * @param string $key |
|
| 1119 | + */ |
|
| 1021 | 1120 | abstract protected function getValue($key); |
| 1121 | + |
|
| 1122 | + /** |
|
| 1123 | + * @param string $key |
|
| 1124 | + * @param integer $expire |
|
| 1125 | + */ |
|
| 1022 | 1126 | abstract protected function setValue($key,$value,$expire); |
| 1127 | + |
|
| 1128 | + /** |
|
| 1129 | + * @param string $key |
|
| 1130 | + * @param integer $expire |
|
| 1131 | + */ |
|
| 1023 | 1132 | abstract protected function addValue($key,$value,$expire); |
| 1133 | + |
|
| 1134 | + /** |
|
| 1135 | + * @param string $key |
|
| 1136 | + */ |
|
| 1024 | 1137 | abstract protected function deleteValue($key); |
| 1025 | 1138 | public function offsetExists($id) |
| 1026 | 1139 | { |
@@ -1109,14 +1222,26 @@ discard block |
||
| 1109 | 1222 | { |
| 1110 | 1223 | return $this->generateTimestamps($this->_directory)!=$this->_timestamps; |
| 1111 | 1224 | } |
| 1225 | + |
|
| 1226 | + /** |
|
| 1227 | + * @param string $fileName |
|
| 1228 | + */ |
|
| 1112 | 1229 | protected function validateFile($fileName) |
| 1113 | 1230 | { |
| 1114 | 1231 | return true; |
| 1115 | 1232 | } |
| 1233 | + |
|
| 1234 | + /** |
|
| 1235 | + * @param string $directory |
|
| 1236 | + */ |
|
| 1116 | 1237 | protected function validateDirectory($directory) |
| 1117 | 1238 | { |
| 1118 | 1239 | return true; |
| 1119 | 1240 | } |
| 1241 | + |
|
| 1242 | + /** |
|
| 1243 | + * @param string $directory |
|
| 1244 | + */ |
|
| 1120 | 1245 | protected function generateTimestamps($directory,$level=0) |
| 1121 | 1246 | { |
| 1122 | 1247 | if(($dir=opendir($directory))===false) |
@@ -1207,6 +1332,10 @@ discard block |
||
| 1207 | 1332 | $this->_str=''; |
| 1208 | 1333 | return $str; |
| 1209 | 1334 | } |
| 1335 | + |
|
| 1336 | + /** |
|
| 1337 | + * @param string $str |
|
| 1338 | + */ |
|
| 1210 | 1339 | public function write($str) |
| 1211 | 1340 | { |
| 1212 | 1341 | $this->_str.=$str; |
@@ -1254,6 +1383,10 @@ discard block |
||
| 1254 | 1383 | { |
| 1255 | 1384 | return $this->_dp; |
| 1256 | 1385 | } |
| 1386 | + |
|
| 1387 | + /** |
|
| 1388 | + * @param integer $value |
|
| 1389 | + */ |
|
| 1257 | 1390 | protected function setDefaultPriority($value) |
| 1258 | 1391 | { |
| 1259 | 1392 | $this->_dp=(string)round(TPropertyValue::ensureFloat($value),$this->_p); |
@@ -1262,6 +1395,10 @@ discard block |
||
| 1262 | 1395 | { |
| 1263 | 1396 | return $this->_p; |
| 1264 | 1397 | } |
| 1398 | + |
|
| 1399 | + /** |
|
| 1400 | + * @param integer $value |
|
| 1401 | + */ |
|
| 1265 | 1402 | protected function setPrecision($value) |
| 1266 | 1403 | { |
| 1267 | 1404 | $this->_p=TPropertyValue::ensureInteger($value); |
@@ -1500,6 +1637,10 @@ discard block |
||
| 1500 | 1637 | $this->sortPriorities(); |
| 1501 | 1638 | return $this->_d; |
| 1502 | 1639 | } |
| 1640 | + |
|
| 1641 | + /** |
|
| 1642 | + * @param integer $priority |
|
| 1643 | + */ |
|
| 1503 | 1644 | public function toArrayBelowPriority($priority,$inclusive=false) |
| 1504 | 1645 | { |
| 1505 | 1646 | $this->sortPriorities(); |
@@ -1512,6 +1653,10 @@ discard block |
||
| 1512 | 1653 | } |
| 1513 | 1654 | return $items; |
| 1514 | 1655 | } |
| 1656 | + |
|
| 1657 | + /** |
|
| 1658 | + * @param integer $priority |
|
| 1659 | + */ |
|
| 1515 | 1660 | public function toArrayAbovePriority($priority,$inclusive=true) |
| 1516 | 1661 | { |
| 1517 | 1662 | $this->sortPriorities(); |
@@ -1609,6 +1754,10 @@ discard block |
||
| 1609 | 1754 | { |
| 1610 | 1755 | return $this->_r; |
| 1611 | 1756 | } |
| 1757 | + |
|
| 1758 | + /** |
|
| 1759 | + * @param boolean $value |
|
| 1760 | + */ |
|
| 1612 | 1761 | protected function setReadOnly($value) |
| 1613 | 1762 | { |
| 1614 | 1763 | $this->_r=TPropertyValue::ensureBoolean($value); |
@@ -1681,6 +1830,10 @@ discard block |
||
| 1681 | 1830 | else if($data!==null) |
| 1682 | 1831 | throw new TInvalidDataTypeException('map_data_not_iterable'); |
| 1683 | 1832 | } |
| 1833 | + |
|
| 1834 | + /** |
|
| 1835 | + * @param TMap $data |
|
| 1836 | + */ |
|
| 1684 | 1837 | public function mergeWith($data) |
| 1685 | 1838 | { |
| 1686 | 1839 | if(is_array($data) || $data instanceof Traversable) |
@@ -1732,6 +1885,10 @@ discard block |
||
| 1732 | 1885 | { |
| 1733 | 1886 | return $this->_r; |
| 1734 | 1887 | } |
| 1888 | + |
|
| 1889 | + /** |
|
| 1890 | + * @param boolean $value |
|
| 1891 | + */ |
|
| 1735 | 1892 | protected function setReadOnly($value) |
| 1736 | 1893 | { |
| 1737 | 1894 | $this->_r=TPropertyValue::ensureBoolean($value); |
@@ -1740,6 +1897,10 @@ discard block |
||
| 1740 | 1897 | { |
| 1741 | 1898 | return $this->_dp; |
| 1742 | 1899 | } |
| 1900 | + |
|
| 1901 | + /** |
|
| 1902 | + * @param integer $value |
|
| 1903 | + */ |
|
| 1743 | 1904 | protected function setDefaultPriority($value) |
| 1744 | 1905 | { |
| 1745 | 1906 | $this->_dp = (string)round(TPropertyValue::ensureFloat($value), $this->_p); |
@@ -1748,6 +1909,10 @@ discard block |
||
| 1748 | 1909 | { |
| 1749 | 1910 | return $this->_p; |
| 1750 | 1911 | } |
| 1912 | + |
|
| 1913 | + /** |
|
| 1914 | + * @param integer $value |
|
| 1915 | + */ |
|
| 1751 | 1916 | protected function setPrecision($value) |
| 1752 | 1917 | { |
| 1753 | 1918 | $this->_p=TPropertyValue::ensureInteger($value); |
@@ -2133,6 +2298,10 @@ discard block |
||
| 2133 | 2298 | { |
| 2134 | 2299 | return $this->_parent; |
| 2135 | 2300 | } |
| 2301 | + |
|
| 2302 | + /** |
|
| 2303 | + * @param TXmlElement|null $parent |
|
| 2304 | + */ |
|
| 2136 | 2305 | public function setParent($parent) |
| 2137 | 2306 | { |
| 2138 | 2307 | $this->_parent=$parent; |
@@ -2194,6 +2363,10 @@ discard block |
||
| 2194 | 2363 | } |
| 2195 | 2364 | return null; |
| 2196 | 2365 | } |
| 2366 | + |
|
| 2367 | + /** |
|
| 2368 | + * @param string $tagName |
|
| 2369 | + */ |
|
| 2197 | 2370 | public function getElementsByTagName($tagName) |
| 2198 | 2371 | { |
| 2199 | 2372 | $list=new TList; |
@@ -2263,6 +2436,10 @@ discard block |
||
| 2263 | 2436 | { |
| 2264 | 2437 | return $this->_version; |
| 2265 | 2438 | } |
| 2439 | + |
|
| 2440 | + /** |
|
| 2441 | + * @param string $version |
|
| 2442 | + */ |
|
| 2266 | 2443 | public function setVersion($version) |
| 2267 | 2444 | { |
| 2268 | 2445 | $this->_version=$version; |
@@ -2271,6 +2448,10 @@ discard block |
||
| 2271 | 2448 | { |
| 2272 | 2449 | return $this->_encoding; |
| 2273 | 2450 | } |
| 2451 | + |
|
| 2452 | + /** |
|
| 2453 | + * @param string $encoding |
|
| 2454 | + */ |
|
| 2274 | 2455 | public function setEncoding($encoding) |
| 2275 | 2456 | { |
| 2276 | 2457 | $this->_encoding=$encoding; |
@@ -2499,10 +2680,18 @@ discard block |
||
| 2499 | 2680 | } |
| 2500 | 2681 | return 0; |
| 2501 | 2682 | } |
| 2683 | + |
|
| 2684 | + /** |
|
| 2685 | + * @param IUser $user |
|
| 2686 | + */ |
|
| 2502 | 2687 | private function isUserMatched($user) |
| 2503 | 2688 | { |
| 2504 | 2689 | return ($this->_everyone || ($this->_guest && $user->getIsGuest()) || ($this->_authenticated && !$user->getIsGuest()) || in_array(strtolower($user->getName()),$this->_users)); |
| 2505 | 2690 | } |
| 2691 | + |
|
| 2692 | + /** |
|
| 2693 | + * @param IUser $user |
|
| 2694 | + */ |
|
| 2506 | 2695 | private function isRoleMatched($user) |
| 2507 | 2696 | { |
| 2508 | 2697 | foreach($this->_roles as $role) |
@@ -2519,6 +2708,11 @@ discard block |
||
| 2519 | 2708 | } |
| 2520 | 2709 | class TAuthorizationRuleCollection extends TList |
| 2521 | 2710 | { |
| 2711 | + /** |
|
| 2712 | + * @param IUser $user |
|
| 2713 | + * @param string $verb |
|
| 2714 | + * @param string $ip |
|
| 2715 | + */ |
|
| 2522 | 2716 | public function isUserAllowed($user,$verb,$ip) |
| 2523 | 2717 | { |
| 2524 | 2718 | if($user instanceof IUser) |
@@ -2626,6 +2820,10 @@ discard block |
||
| 2626 | 2820 | { |
| 2627 | 2821 | $this->_cryptAlgorithm = $value; |
| 2628 | 2822 | } |
| 2823 | + |
|
| 2824 | + /** |
|
| 2825 | + * @param string $data |
|
| 2826 | + */ |
|
| 2629 | 2827 | public function encrypt($data) |
| 2630 | 2828 | { |
| 2631 | 2829 | $module=$this->openCryptModule(); |
@@ -2638,6 +2836,10 @@ discard block |
||
| 2638 | 2836 | mcrypt_module_close($module); |
| 2639 | 2837 | return $encrypted; |
| 2640 | 2838 | } |
| 2839 | + |
|
| 2840 | + /** |
|
| 2841 | + * @param string $data |
|
| 2842 | + */ |
|
| 2641 | 2843 | public function decrypt($data) |
| 2642 | 2844 | { |
| 2643 | 2845 | $module=$this->openCryptModule(); |
@@ -2699,6 +2901,11 @@ discard block |
||
| 2699 | 2901 | { |
| 2700 | 2902 | return $this->_mbstring ? mb_strlen($string,'8bit') : strlen($string); |
| 2701 | 2903 | } |
| 2904 | + |
|
| 2905 | + /** |
|
| 2906 | + * @param integer $start |
|
| 2907 | + * @param integer $length |
|
| 2908 | + */ |
|
| 2702 | 2909 | private function substr($string,$start,$length) |
| 2703 | 2910 | { |
| 2704 | 2911 | return $this->_mbstring ? mb_substr($string,$start,$length,'8bit') : substr($string,$start,$length); |
@@ -2858,6 +3065,10 @@ discard block |
||
| 2858 | 3065 | self::checkJsonError(); |
| 2859 | 3066 | return $s; |
| 2860 | 3067 | } |
| 3068 | + |
|
| 3069 | + /** |
|
| 3070 | + * @param string $sourceEncoding |
|
| 3071 | + */ |
|
| 2861 | 3072 | private static function convertToUtf8(&$value, $sourceEncoding) { |
| 2862 | 3073 | if(is_string($value)) |
| 2863 | 3074 | $value=iconv($sourceEncoding, 'UTF-8', $value); |
@@ -2867,6 +3078,10 @@ discard block |
||
| 2867 | 3078 | self::convertToUtf8($element, $sourceEncoding); |
| 2868 | 3079 | } |
| 2869 | 3080 | } |
| 3081 | + |
|
| 3082 | + /** |
|
| 3083 | + * @param string $value |
|
| 3084 | + */ |
|
| 2870 | 3085 | public static function jsonDecode($value, $assoc = false, $depth = 512) |
| 2871 | 3086 | { |
| 2872 | 3087 | $s= @json_decode($value, $assoc, $depth); |
@@ -2901,6 +3116,10 @@ discard block |
||
| 2901 | 3116 | } |
| 2902 | 3117 | throw new Exception("JSON error ($err): $msg"); |
| 2903 | 3118 | } |
| 3119 | + |
|
| 3120 | + /** |
|
| 3121 | + * @param string $code |
|
| 3122 | + */ |
|
| 2904 | 3123 | public static function JSMin($code) |
| 2905 | 3124 | { |
| 2906 | 3125 | Prado::using('System.Web.Javascripts.JSMin'); |
@@ -3088,6 +3307,10 @@ discard block |
||
| 3088 | 3307 | { |
| 3089 | 3308 | return $this->getID(); |
| 3090 | 3309 | } |
| 3310 | + |
|
| 3311 | + /** |
|
| 3312 | + * @param TUrlManager $manager |
|
| 3313 | + */ |
|
| 3091 | 3314 | protected function cacheUrlManager($manager) |
| 3092 | 3315 | { |
| 3093 | 3316 | if($this->getEnableCache()) |
@@ -3337,6 +3560,10 @@ discard block |
||
| 3337 | 3560 | { |
| 3338 | 3561 | return $_ENV; |
| 3339 | 3562 | } |
| 3563 | + |
|
| 3564 | + /** |
|
| 3565 | + * @param string $serviceID |
|
| 3566 | + */ |
|
| 3340 | 3567 | public function constructUrl($serviceID,$serviceParam,$getItems=null,$encodeAmpersand=true,$encodeGetItems=true) |
| 3341 | 3568 | { |
| 3342 | 3569 | if ($this->_cookieOnly===null) |
@@ -3457,6 +3684,10 @@ discard block |
||
| 3457 | 3684 | class THttpCookieCollection extends TList |
| 3458 | 3685 | { |
| 3459 | 3686 | private $_o; |
| 3687 | + |
|
| 3688 | + /** |
|
| 3689 | + * @param THttpResponse $owner |
|
| 3690 | + */ |
|
| 3460 | 3691 | public function __construct($owner=null) |
| 3461 | 3692 | { |
| 3462 | 3693 | $this->_o=$owner; |
@@ -3520,6 +3751,10 @@ discard block |
||
| 3520 | 3751 | { |
| 3521 | 3752 | return $this->_expire; |
| 3522 | 3753 | } |
| 3754 | + |
|
| 3755 | + /** |
|
| 3756 | + * @param integer $value |
|
| 3757 | + */ |
|
| 3523 | 3758 | public function setExpire($value) |
| 3524 | 3759 | { |
| 3525 | 3760 | $this->_expire=TPropertyValue::ensureInteger($value); |
@@ -3586,6 +3821,10 @@ discard block |
||
| 3586 | 3821 | private $_query; |
| 3587 | 3822 | private $_fragment; |
| 3588 | 3823 | private $_uri; |
| 3824 | + |
|
| 3825 | + /** |
|
| 3826 | + * @param string $uri |
|
| 3827 | + */ |
|
| 3589 | 3828 | public function __construct($uri) |
| 3590 | 3829 | { |
| 3591 | 3830 | if(($ret=@parse_url($uri))!==false) |
@@ -3651,6 +3890,10 @@ discard block |
||
| 3651 | 3890 | class THttpResponseAdapter extends TApplicationComponent |
| 3652 | 3891 | { |
| 3653 | 3892 | private $_response; |
| 3893 | + |
|
| 3894 | + /** |
|
| 3895 | + * @param THttpResponse $response |
|
| 3896 | + */ |
|
| 3654 | 3897 | public function __construct($response) |
| 3655 | 3898 | { |
| 3656 | 3899 | $this->_response=$response; |
@@ -3746,6 +3989,10 @@ discard block |
||
| 3746 | 3989 | { |
| 3747 | 3990 | return $this->_charset; |
| 3748 | 3991 | } |
| 3992 | + |
|
| 3993 | + /** |
|
| 3994 | + * @param string $charset |
|
| 3995 | + */ |
|
| 3749 | 3996 | public function setCharset($charset) |
| 3750 | 3997 | { |
| 3751 | 3998 | $this->_charset = (strToLower($charset) === 'false') ? false : (string)$charset; |
@@ -3969,6 +4216,10 @@ discard block |
||
| 3969 | 4216 | return array_change_key_case($result, $case); |
| 3970 | 4217 | return $result; |
| 3971 | 4218 | } |
| 4219 | + |
|
| 4220 | + /** |
|
| 4221 | + * @param string $value |
|
| 4222 | + */ |
|
| 3972 | 4223 | public function appendHeader($value, $replace=true) |
| 3973 | 4224 | { |
| 3974 | 4225 | header($value, $replace); |
@@ -3977,6 +4228,10 @@ discard block |
||
| 3977 | 4228 | { |
| 3978 | 4229 | error_log($message,$messageType,$destination,$extraHeaders); |
| 3979 | 4230 | } |
| 4231 | + |
|
| 4232 | + /** |
|
| 4233 | + * @param THttpCookie $cookie |
|
| 4234 | + */ |
|
| 3980 | 4235 | public function addCookie($cookie) |
| 3981 | 4236 | { |
| 3982 | 4237 | $request=$this->getRequest(); |
@@ -4034,6 +4289,10 @@ discard block |
||
| 4034 | 4289 | else |
| 4035 | 4290 | return $this->createNewHtmlWriter($type, $this); |
| 4036 | 4291 | } |
| 4292 | + |
|
| 4293 | + /** |
|
| 4294 | + * @param THttpResponse $writer |
|
| 4295 | + */ |
|
| 4037 | 4296 | public function createNewHtmlWriter($type, $writer) |
| 4038 | 4297 | { |
| 4039 | 4298 | return Prado::createComponent($type, $writer); |
@@ -4143,6 +4402,10 @@ discard block |
||
| 4143 | 4402 | { |
| 4144 | 4403 | return $this->_customStorage; |
| 4145 | 4404 | } |
| 4405 | + |
|
| 4406 | + /** |
|
| 4407 | + * @param boolean $value |
|
| 4408 | + */ |
|
| 4146 | 4409 | public function setUseCustomStorage($value) |
| 4147 | 4410 | { |
| 4148 | 4411 | $this->_customStorage=TPropertyValue::ensureBoolean($value); |
@@ -4285,10 +4548,18 @@ discard block |
||
| 4285 | 4548 | { |
| 4286 | 4549 | return array_keys($_SESSION); |
| 4287 | 4550 | } |
| 4551 | + |
|
| 4552 | + /** |
|
| 4553 | + * @param string $key |
|
| 4554 | + */ |
|
| 4288 | 4555 | public function itemAt($key) |
| 4289 | 4556 | { |
| 4290 | 4557 | return isset($_SESSION[$key]) ? $_SESSION[$key] : null; |
| 4291 | 4558 | } |
| 4559 | + |
|
| 4560 | + /** |
|
| 4561 | + * @param string $key |
|
| 4562 | + */ |
|
| 4292 | 4563 | public function add($key,$value) |
| 4293 | 4564 | { |
| 4294 | 4565 | $_SESSION[$key]=$value; |
@@ -4395,6 +4666,10 @@ discard block |
||
| 4395 | 4666 | { |
| 4396 | 4667 | return $this->_caseSensitive; |
| 4397 | 4668 | } |
| 4669 | + |
|
| 4670 | + /** |
|
| 4671 | + * @param boolean $value |
|
| 4672 | + */ |
|
| 4398 | 4673 | public function setCaseSensitive($value) |
| 4399 | 4674 | { |
| 4400 | 4675 | $this->_caseSensitive=TPropertyValue::ensureBoolean($value); |
@@ -4407,6 +4682,10 @@ discard block |
||
| 4407 | 4682 | { |
| 4408 | 4683 | parent::add($this->_caseSensitive?$key:strtolower($key),$value); |
| 4409 | 4684 | } |
| 4685 | + |
|
| 4686 | + /** |
|
| 4687 | + * @param string $key |
|
| 4688 | + */ |
|
| 4410 | 4689 | public function remove($key) |
| 4411 | 4690 | { |
| 4412 | 4691 | return parent::remove($this->_caseSensitive?$key:strtolower($key)); |
@@ -4557,6 +4836,10 @@ discard block |
||
| 4557 | 4836 | } |
| 4558 | 4837 | return $this->_page; |
| 4559 | 4838 | } |
| 4839 | + |
|
| 4840 | + /** |
|
| 4841 | + * @param TPage $page |
|
| 4842 | + */ |
|
| 4560 | 4843 | public function setPage($page) |
| 4561 | 4844 | { |
| 4562 | 4845 | $this->_page=$page; |
@@ -4700,6 +4983,10 @@ discard block |
||
| 4700 | 4983 | else |
| 4701 | 4984 | return $this->getViewState('Visible',true); |
| 4702 | 4985 | } |
| 4986 | + |
|
| 4987 | + /** |
|
| 4988 | + * @param boolean $value |
|
| 4989 | + */ |
|
| 4703 | 4990 | public function setVisible($value) |
| 4704 | 4991 | { |
| 4705 | 4992 | $this->setViewState('Visible',TPropertyValue::ensureBoolean($value),true); |
@@ -4738,6 +5025,10 @@ discard block |
||
| 4738 | 5025 | return $attributes; |
| 4739 | 5026 | } |
| 4740 | 5027 | } |
| 5028 | + |
|
| 5029 | + /** |
|
| 5030 | + * @param string $name |
|
| 5031 | + */ |
|
| 4741 | 5032 | public function hasAttribute($name) |
| 4742 | 5033 | { |
| 4743 | 5034 | if($attributes=$this->getViewState('Attributes',null)) |
@@ -4745,6 +5036,10 @@ discard block |
||
| 4745 | 5036 | else |
| 4746 | 5037 | return false; |
| 4747 | 5038 | } |
| 5039 | + |
|
| 5040 | + /** |
|
| 5041 | + * @param string $name |
|
| 5042 | + */ |
|
| 4748 | 5043 | public function getAttribute($name) |
| 4749 | 5044 | { |
| 4750 | 5045 | if($attributes=$this->getViewState('Attributes',null)) |
@@ -4752,6 +5047,10 @@ discard block |
||
| 4752 | 5047 | else |
| 4753 | 5048 | return null; |
| 4754 | 5049 | } |
| 5050 | + |
|
| 5051 | + /** |
|
| 5052 | + * @param string $name |
|
| 5053 | + */ |
|
| 4755 | 5054 | public function setAttribute($name,$value) |
| 4756 | 5055 | { |
| 4757 | 5056 | $this->getAttributes()->add($name,$value); |
@@ -4775,6 +5074,10 @@ discard block |
||
| 4775 | 5074 | else |
| 4776 | 5075 | return !($this->_flags & self::IS_DISABLE_VIEWSTATE); |
| 4777 | 5076 | } |
| 5077 | + |
|
| 5078 | + /** |
|
| 5079 | + * @param boolean $value |
|
| 5080 | + */ |
|
| 4778 | 5081 | public function setEnableViewState($value) |
| 4779 | 5082 | { |
| 4780 | 5083 | if(TPropertyValue::ensureBoolean($value)) |
@@ -4782,10 +5085,20 @@ discard block |
||
| 4782 | 5085 | else |
| 4783 | 5086 | $this->_flags |= self::IS_DISABLE_VIEWSTATE; |
| 4784 | 5087 | } |
| 5088 | + |
|
| 5089 | + /** |
|
| 5090 | + * @param string $key |
|
| 5091 | + * @param integer $defaultValue |
|
| 5092 | + */ |
|
| 4785 | 5093 | protected function getControlState($key,$defaultValue=null) |
| 4786 | 5094 | { |
| 4787 | 5095 | return isset($this->_rf[self::RF_CONTROLSTATE][$key])?$this->_rf[self::RF_CONTROLSTATE][$key]:$defaultValue; |
| 4788 | 5096 | } |
| 5097 | + |
|
| 5098 | + /** |
|
| 5099 | + * @param string $key |
|
| 5100 | + * @param integer $defaultValue |
|
| 5101 | + */ |
|
| 4789 | 5102 | protected function setControlState($key,$value,$defaultValue=null) |
| 4790 | 5103 | { |
| 4791 | 5104 | if($value===$defaultValue) |
@@ -4797,6 +5110,10 @@ discard block |
||
| 4797 | 5110 | { |
| 4798 | 5111 | unset($this->_rf[self::RF_CONTROLSTATE][$key]); |
| 4799 | 5112 | } |
| 5113 | + |
|
| 5114 | + /** |
|
| 5115 | + * @param boolean $enabled |
|
| 5116 | + */ |
|
| 4800 | 5117 | public function trackViewState($enabled) |
| 4801 | 5118 | { |
| 4802 | 5119 | $this->_trackViewState=TPropertyValue::ensureBoolean($enabled); |
@@ -4814,6 +5131,10 @@ discard block |
||
| 4814 | 5131 | else |
| 4815 | 5132 | return $defaultValue; |
| 4816 | 5133 | } |
| 5134 | + |
|
| 5135 | + /** |
|
| 5136 | + * @param string $key |
|
| 5137 | + */ |
|
| 4817 | 5138 | public function setViewState($key,$value,$defaultValue=null) |
| 4818 | 5139 | { |
| 4819 | 5140 | if($this->_trackViewState) |
@@ -4833,6 +5154,10 @@ discard block |
||
| 4833 | 5154 | $this->_tempState[$key]=$value; |
| 4834 | 5155 | } |
| 4835 | 5156 | } |
| 5157 | + |
|
| 5158 | + /** |
|
| 5159 | + * @param string $key |
|
| 5160 | + */ |
|
| 4836 | 5161 | public function clearViewState($key) |
| 4837 | 5162 | { |
| 4838 | 5163 | unset($this->_viewState[$key]); |
@@ -4889,6 +5214,10 @@ discard block |
||
| 4889 | 5214 | { |
| 4890 | 5215 | return ($this->_flags & self::IS_CHILD_CREATED)!==0; |
| 4891 | 5216 | } |
| 5217 | + |
|
| 5218 | + /** |
|
| 5219 | + * @param boolean $value |
|
| 5220 | + */ |
|
| 4892 | 5221 | final protected function setChildControlsCreated($value) |
| 4893 | 5222 | { |
| 4894 | 5223 | if($value) |
@@ -4948,6 +5277,10 @@ discard block |
||
| 4948 | 5277 | return null; |
| 4949 | 5278 | } |
| 4950 | 5279 | } |
| 5280 | + |
|
| 5281 | + /** |
|
| 5282 | + * @param string $type |
|
| 5283 | + */ |
|
| 4951 | 5284 | public function findControlsByType($type,$strict=true) |
| 4952 | 5285 | { |
| 4953 | 5286 | $controls=array(); |
@@ -4985,6 +5318,10 @@ discard block |
||
| 4985 | 5318 | unset($this->_rf[self::RF_NAMED_CONTROLS_ID]); |
| 4986 | 5319 | $this->clearNameTable(); |
| 4987 | 5320 | } |
| 5321 | + |
|
| 5322 | + /** |
|
| 5323 | + * @param TCheckBox $object |
|
| 5324 | + */ |
|
| 4988 | 5325 | public function registerObject($name,$object) |
| 4989 | 5326 | { |
| 4990 | 5327 | if(isset($this->_rf[self::RF_NAMED_OBJECTS][$name])) |
@@ -5019,6 +5356,10 @@ discard block |
||
| 5019 | 5356 | { |
| 5020 | 5357 | return $this->getControlStage() >= self::CS_PRERENDERED; |
| 5021 | 5358 | } |
| 5359 | + |
|
| 5360 | + /** |
|
| 5361 | + * @param string $name |
|
| 5362 | + */ |
|
| 5022 | 5363 | public function getRegisteredObject($name) |
| 5023 | 5364 | { |
| 5024 | 5365 | return isset($this->_rf[self::RF_NAMED_OBJECTS][$name])?$this->_rf[self::RF_NAMED_OBJECTS][$name]:null; |
@@ -5042,6 +5383,10 @@ discard block |
||
| 5042 | 5383 | $control=$control->_parent; |
| 5043 | 5384 | return $control===$ancestor; |
| 5044 | 5385 | } |
| 5386 | + |
|
| 5387 | + /** |
|
| 5388 | + * @param TControl $control |
|
| 5389 | + */ |
|
| 5045 | 5390 | public function addedControl($control) |
| 5046 | 5391 | { |
| 5047 | 5392 | if($control->_parent) |
@@ -5080,6 +5425,10 @@ discard block |
||
| 5080 | 5425 | } |
| 5081 | 5426 | } |
| 5082 | 5427 | } |
| 5428 | + |
|
| 5429 | + /** |
|
| 5430 | + * @param TControl $control |
|
| 5431 | + */ |
|
| 5083 | 5432 | public function removedControl($control) |
| 5084 | 5433 | { |
| 5085 | 5434 | if($this->_namingContainer) |
@@ -5225,6 +5574,10 @@ discard block |
||
| 5225 | 5574 | $rootControl=(($page=$this->getPage())===null)?$this:$page; |
| 5226 | 5575 | $rootControl->broadcastEventInternal($name,$sender,new TBroadcastEventParameter($name,$param)); |
| 5227 | 5576 | } |
| 5577 | + |
|
| 5578 | + /** |
|
| 5579 | + * @param TBroadcastEventParameter $param |
|
| 5580 | + */ |
|
| 5228 | 5581 | private function broadcastEventInternal($name,$sender,$param) |
| 5229 | 5582 | { |
| 5230 | 5583 | if($this->hasEvent($name)) |
@@ -5370,6 +5723,10 @@ discard block |
||
| 5370 | 5723 | else if($this->_flags & self::IS_STYLESHEET_APPLIED) |
| 5371 | 5724 | throw new TInvalidOperationException('control_stylesheet_applied',get_class($this)); |
| 5372 | 5725 | } |
| 5726 | + |
|
| 5727 | + /** |
|
| 5728 | + * @param boolean $recursive |
|
| 5729 | + */ |
|
| 5373 | 5730 | private function clearCachedUniqueID($recursive) |
| 5374 | 5731 | { |
| 5375 | 5732 | if($recursive && $this->_uid!==null && isset($this->_rf[self::RF_CONTROLS])) |
@@ -5393,6 +5750,10 @@ discard block |
||
| 5393 | 5750 | { |
| 5394 | 5751 | unset($this->_rf[self::RF_NAMED_CONTROLS]); |
| 5395 | 5752 | } |
| 5753 | + |
|
| 5754 | + /** |
|
| 5755 | + * @param TControl $container |
|
| 5756 | + */ |
|
| 5396 | 5757 | private function fillNameTable($container,$controls) |
| 5397 | 5758 | { |
| 5398 | 5759 | foreach($controls as $control) |
@@ -5465,11 +5826,18 @@ discard block |
||
| 5465 | 5826 | } |
| 5466 | 5827 | interface IPostBackEventHandler |
| 5467 | 5828 | { |
| 5829 | + /** |
|
| 5830 | + * @return void |
|
| 5831 | + */ |
|
| 5468 | 5832 | public function raisePostBackEvent($param); |
| 5469 | 5833 | } |
| 5470 | 5834 | interface IPostBackDataHandler |
| 5471 | 5835 | { |
| 5472 | 5836 | public function loadPostData($key,$values); |
| 5837 | + |
|
| 5838 | + /** |
|
| 5839 | + * @return void |
|
| 5840 | + */ |
|
| 5473 | 5841 | public function raisePostDataChangedEvent(); |
| 5474 | 5842 | public function getDataChanged(); |
| 5475 | 5843 | } |
@@ -5477,8 +5845,16 @@ discard block |
||
| 5477 | 5845 | { |
| 5478 | 5846 | public function validate(); |
| 5479 | 5847 | public function getIsValid(); |
| 5848 | + |
|
| 5849 | + /** |
|
| 5850 | + * @return void |
|
| 5851 | + */ |
|
| 5480 | 5852 | public function setIsValid($value); |
| 5481 | 5853 | public function getErrorMessage(); |
| 5854 | + |
|
| 5855 | + /** |
|
| 5856 | + * @return void |
|
| 5857 | + */ |
|
| 5482 | 5858 | public function setErrorMessage($value); |
| 5483 | 5859 | } |
| 5484 | 5860 | interface IValidatable |
@@ -5493,26 +5869,66 @@ discard block |
||
| 5493 | 5869 | } |
| 5494 | 5870 | interface ITheme |
| 5495 | 5871 | { |
| 5872 | + /** |
|
| 5873 | + * @return boolean |
|
| 5874 | + */ |
|
| 5496 | 5875 | public function applySkin($control); |
| 5497 | 5876 | } |
| 5498 | 5877 | interface ITemplate |
| 5499 | 5878 | { |
| 5879 | + /** |
|
| 5880 | + * @return void |
|
| 5881 | + */ |
|
| 5500 | 5882 | public function instantiateIn($parent); |
| 5501 | 5883 | } |
| 5502 | 5884 | interface IButtonControl |
| 5503 | 5885 | { |
| 5504 | 5886 | public function getText(); |
| 5887 | + |
|
| 5888 | + /** |
|
| 5889 | + * @param string $value |
|
| 5890 | + * |
|
| 5891 | + * @return void |
|
| 5892 | + */ |
|
| 5505 | 5893 | public function setText($value); |
| 5506 | 5894 | public function getCausesValidation(); |
| 5895 | + |
|
| 5896 | + /** |
|
| 5897 | + * @return void |
|
| 5898 | + */ |
|
| 5507 | 5899 | public function setCausesValidation($value); |
| 5508 | 5900 | public function getCommandName(); |
| 5901 | + |
|
| 5902 | + /** |
|
| 5903 | + * @return void |
|
| 5904 | + */ |
|
| 5509 | 5905 | public function setCommandName($value); |
| 5510 | 5906 | public function getCommandParameter(); |
| 5907 | + |
|
| 5908 | + /** |
|
| 5909 | + * @return void |
|
| 5910 | + */ |
|
| 5511 | 5911 | public function setCommandParameter($value); |
| 5512 | 5912 | public function getValidationGroup(); |
| 5913 | + |
|
| 5914 | + /** |
|
| 5915 | + * @return void |
|
| 5916 | + */ |
|
| 5513 | 5917 | public function setValidationGroup($value); |
| 5918 | + |
|
| 5919 | + /** |
|
| 5920 | + * @return void |
|
| 5921 | + */ |
|
| 5514 | 5922 | public function onClick($param); |
| 5923 | + |
|
| 5924 | + /** |
|
| 5925 | + * @return void |
|
| 5926 | + */ |
|
| 5515 | 5927 | public function onCommand($param); |
| 5928 | + |
|
| 5929 | + /** |
|
| 5930 | + * @return void |
|
| 5931 | + */ |
|
| 5516 | 5932 | public function setIsDefaultButton($value); |
| 5517 | 5933 | public function getIsDefaultButton(); |
| 5518 | 5934 | } |
@@ -5970,6 +6386,10 @@ discard block |
||
| 5970 | 6386 | { |
| 5971 | 6387 | return $this->_customStyle===null?'':$this->_customStyle; |
| 5972 | 6388 | } |
| 6389 | + |
|
| 6390 | + /** |
|
| 6391 | + * @param string $value |
|
| 6392 | + */ |
|
| 5973 | 6393 | public function setCustomStyle($value) |
| 5974 | 6394 | { |
| 5975 | 6395 | $this->_customStyle=$value; |
@@ -5978,6 +6398,11 @@ discard block |
||
| 5978 | 6398 | { |
| 5979 | 6399 | return isset($this->_fields[$name])?$this->_fields[$name]:''; |
| 5980 | 6400 | } |
| 6401 | + |
|
| 6402 | + /** |
|
| 6403 | + * @param string $name |
|
| 6404 | + * @param string $value |
|
| 6405 | + */ |
|
| 5981 | 6406 | public function setStyleField($name,$value) |
| 5982 | 6407 | { |
| 5983 | 6408 | $this->_fields[$name]=$value; |
@@ -6473,6 +6898,10 @@ discard block |
||
| 6473 | 6898 | { |
| 6474 | 6899 | private $_ensureid=false; |
| 6475 | 6900 | protected $_decorator; |
| 6901 | + |
|
| 6902 | + /** |
|
| 6903 | + * @param boolean $value |
|
| 6904 | + */ |
|
| 6476 | 6905 | public function setEnsureId($value) |
| 6477 | 6906 | { |
| 6478 | 6907 | $this->_ensureid |= TPropertyValue::ensureBoolean($value); |
@@ -6562,6 +6991,10 @@ discard block |
||
| 6562 | 6991 | else |
| 6563 | 6992 | return ''; |
| 6564 | 6993 | } |
| 6994 | + |
|
| 6995 | + /** |
|
| 6996 | + * @param string $value |
|
| 6997 | + */ |
|
| 6565 | 6998 | public function setForeColor($value) |
| 6566 | 6999 | { |
| 6567 | 7000 | $this->getStyle()->setForeColor($value); |
@@ -6592,6 +7025,10 @@ discard block |
||
| 6592 | 7025 | else |
| 6593 | 7026 | return ''; |
| 6594 | 7027 | } |
| 7028 | + |
|
| 7029 | + /** |
|
| 7030 | + * @param string $value |
|
| 7031 | + */ |
|
| 6595 | 7032 | public function setHeight($value) |
| 6596 | 7033 | { |
| 6597 | 7034 | $this->getStyle()->setHeight($value); |
@@ -6653,6 +7090,10 @@ discard block |
||
| 6653 | 7090 | else |
| 6654 | 7091 | return ''; |
| 6655 | 7092 | } |
| 7093 | + |
|
| 7094 | + /** |
|
| 7095 | + * @param string $value |
|
| 7096 | + */ |
|
| 6656 | 7097 | public function setWidth($value) |
| 6657 | 7098 | { |
| 6658 | 7099 | $this->getStyle()->setWidth($value); |
@@ -6780,6 +7221,10 @@ discard block |
||
| 6780 | 7221 | $tpl->instantiateIn($this); |
| 6781 | 7222 | } |
| 6782 | 7223 | } |
| 7224 | + |
|
| 7225 | + /** |
|
| 7226 | + * @param string $id |
|
| 7227 | + */ |
|
| 6783 | 7228 | public function registerContent($id,TContent $object) |
| 6784 | 7229 | { |
| 6785 | 7230 | if(isset($this->_contents[$id])) |
@@ -6787,6 +7232,10 @@ discard block |
||
| 6787 | 7232 | else |
| 6788 | 7233 | $this->_contents[$id]=$object; |
| 6789 | 7234 | } |
| 7235 | + |
|
| 7236 | + /** |
|
| 7237 | + * @param string $id |
|
| 7238 | + */ |
|
| 6790 | 7239 | public function registerContentPlaceHolder($id,TContentPlaceHolder $object) |
| 6791 | 7240 | { |
| 6792 | 7241 | if(isset($this->_placeholders[$id])) |
@@ -6983,6 +7432,10 @@ discard block |
||
| 6983 | 7432 | { |
| 6984 | 7433 | return $this->getViewState('Enctype',''); |
| 6985 | 7434 | } |
| 7435 | + |
|
| 7436 | + /** |
|
| 7437 | + * @param string $value |
|
| 7438 | + */ |
|
| 6986 | 7439 | public function setEnctype($value) |
| 6987 | 7440 | { |
| 6988 | 7441 | $this->setViewState('Enctype',$value,''); |
@@ -7102,6 +7555,10 @@ discard block |
||
| 7102 | 7555 | $scripts = array_unique($scripts); |
| 7103 | 7556 | return $scripts; |
| 7104 | 7557 | } |
| 7558 | + |
|
| 7559 | + /** |
|
| 7560 | + * @param string $base |
|
| 7561 | + */ |
|
| 7105 | 7562 | protected function getPackagePathUrl($base) |
| 7106 | 7563 | { |
| 7107 | 7564 | $assets = Prado::getApplication()->getAssetManager(); |
@@ -7251,6 +7708,11 @@ discard block |
||
| 7251 | 7708 | $params=func_get_args(); |
| 7252 | 7709 | $this->_page->registerCachingAction('Page.ClientScript','registerEndScript',$params); |
| 7253 | 7710 | } |
| 7711 | + |
|
| 7712 | + /** |
|
| 7713 | + * @param string $name |
|
| 7714 | + * @param string $value |
|
| 7715 | + */ |
|
| 7254 | 7716 | public function registerHiddenField($name,$value) |
| 7255 | 7717 | { |
| 7256 | 7718 | $this->_hiddenFields[$name]=$value; |
@@ -7388,6 +7850,10 @@ discard block |
||
| 7388 | 7850 | $this->renderAllPendingScriptFiles($writer); |
| 7389 | 7851 | } |
| 7390 | 7852 | } |
| 7853 | + |
|
| 7854 | + /** |
|
| 7855 | + * @param boolean $initial |
|
| 7856 | + */ |
|
| 7391 | 7857 | protected function renderHiddenFieldsInt($writer, $initial) |
| 7392 | 7858 | { |
| 7393 | 7859 | if ($initial) $this->_renderedHiddenFields = array(); |
@@ -7423,12 +7889,20 @@ discard block |
||
| 7423 | 7889 | abstract class TClientSideOptions extends TComponent |
| 7424 | 7890 | { |
| 7425 | 7891 | private $_options; |
| 7892 | + |
|
| 7893 | + /** |
|
| 7894 | + * @param string $name |
|
| 7895 | + */ |
|
| 7426 | 7896 | protected function setFunction($name, $code) |
| 7427 | 7897 | { |
| 7428 | 7898 | if(!TJavaScript::isJsLiteral($code)) |
| 7429 | 7899 | $code = TJavaScript::quoteJsLiteral($this->ensureFunction($code)); |
| 7430 | 7900 | $this->setOption($name, $code); |
| 7431 | 7901 | } |
| 7902 | + |
|
| 7903 | + /** |
|
| 7904 | + * @param string $name |
|
| 7905 | + */ |
|
| 7432 | 7906 | protected function getOption($name) |
| 7433 | 7907 | { |
| 7434 | 7908 | if ($this->_options) |
@@ -7551,6 +8025,10 @@ discard block |
||
| 7551 | 8025 | $this->renderControl($writer); |
| 7552 | 8026 | $this->unloadRecursive(); |
| 7553 | 8027 | } |
| 8028 | + |
|
| 8029 | + /** |
|
| 8030 | + * @param string $enc |
|
| 8031 | + */ |
|
| 7554 | 8032 | protected static function decodeUTF8($data, $enc) |
| 7555 | 8033 | { |
| 7556 | 8034 | if(is_array($data)) |
@@ -7633,6 +8111,10 @@ discard block |
||
| 7633 | 8111 | else |
| 7634 | 8112 | throw new TInvalidOperationException('page_form_duplicated'); |
| 7635 | 8113 | } |
| 8114 | + |
|
| 8115 | + /** |
|
| 8116 | + * @param string $validationGroup |
|
| 8117 | + */ |
|
| 7636 | 8118 | public function getValidators($validationGroup=null) |
| 7637 | 8119 | { |
| 7638 | 8120 | if(!$this->_validators) |
@@ -7703,6 +8185,10 @@ discard block |
||
| 7703 | 8185 | { |
| 7704 | 8186 | $this->_styleSheet=empty($value)?null:$value; |
| 7705 | 8187 | } |
| 8188 | + |
|
| 8189 | + /** |
|
| 8190 | + * @param TControl $control |
|
| 8191 | + */ |
|
| 7706 | 8192 | public function applyControlSkin($control) |
| 7707 | 8193 | { |
| 7708 | 8194 | if(($theme=$this->getTheme())!==null) |
@@ -7850,6 +8336,10 @@ discard block |
||
| 7850 | 8336 | { |
| 7851 | 8337 | $this->_postBackEventParameter=$value; |
| 7852 | 8338 | } |
| 8339 | + |
|
| 8340 | + /** |
|
| 8341 | + * @param boolean $beforeLoad |
|
| 8342 | + */ |
|
| 7853 | 8343 | protected function processPostData($postData,$beforeLoad) |
| 7854 | 8344 | { |
| 7855 | 8345 | $this->_isLoadingPostData=true; |
@@ -7938,6 +8428,10 @@ discard block |
||
| 7938 | 8428 | $this->getClientScript()->registerFocusControl($lastFocus); |
| 7939 | 8429 | $this->_inFormRender=false; |
| 7940 | 8430 | } |
| 8431 | + |
|
| 8432 | + /** |
|
| 8433 | + * @param TControl $value |
|
| 8434 | + */ |
|
| 7941 | 8435 | public function setFocus($value) |
| 7942 | 8436 | { |
| 7943 | 8437 | $this->_focus=$value; |
@@ -7983,6 +8477,10 @@ discard block |
||
| 7983 | 8477 | { |
| 7984 | 8478 | return $this->_clientState; |
| 7985 | 8479 | } |
| 8480 | + |
|
| 8481 | + /** |
|
| 8482 | + * @param string $state |
|
| 8483 | + */ |
|
| 7986 | 8484 | public function setClientState($state) |
| 7987 | 8485 | { |
| 7988 | 8486 | $this->_clientState=$state; |
@@ -8042,6 +8540,11 @@ discard block |
||
| 8042 | 8540 | { |
| 8043 | 8541 | $this->_pagePath=$value; |
| 8044 | 8542 | } |
| 8543 | + |
|
| 8544 | + /** |
|
| 8545 | + * @param string $context |
|
| 8546 | + * @param string $funcName |
|
| 8547 | + */ |
|
| 8045 | 8548 | public function registerCachingAction($context,$funcName,$funcParams) |
| 8046 | 8549 | { |
| 8047 | 8550 | if($this->_cachingStack) |
@@ -8064,13 +8567,27 @@ discard block |
||
| 8064 | 8567 | } |
| 8065 | 8568 | interface IPageStatePersister |
| 8066 | 8569 | { |
| 8570 | + /** |
|
| 8571 | + * @return TPage |
|
| 8572 | + */ |
|
| 8067 | 8573 | public function getPage(); |
| 8574 | + |
|
| 8575 | + /** |
|
| 8576 | + * @return void |
|
| 8577 | + */ |
|
| 8068 | 8578 | public function setPage(TPage $page); |
| 8579 | + |
|
| 8580 | + /** |
|
| 8581 | + * @return void |
|
| 8582 | + */ |
|
| 8069 | 8583 | public function save($state); |
| 8070 | 8584 | public function load(); |
| 8071 | 8585 | } |
| 8072 | 8586 | class TPageStateFormatter |
| 8073 | 8587 | { |
| 8588 | + /** |
|
| 8589 | + * @param TPage $page |
|
| 8590 | + */ |
|
| 8074 | 8591 | public static function serialize($page,$data) |
| 8075 | 8592 | { |
| 8076 | 8593 | $sm=$page->getApplication()->getSecurityManager(); |
@@ -8084,6 +8601,10 @@ discard block |
||
| 8084 | 8601 | $str=$sm->encrypt($str); |
| 8085 | 8602 | return base64_encode($str); |
| 8086 | 8603 | } |
| 8604 | + |
|
| 8605 | + /** |
|
| 8606 | + * @param TPage $page |
|
| 8607 | + */ |
|
| 8087 | 8608 | public static function unserialize($page,$data) |
| 8088 | 8609 | { |
| 8089 | 8610 | $str=base64_decode($data); |
@@ -8277,6 +8798,10 @@ discard block |
||
| 8277 | 8798 | { |
| 8278 | 8799 | $this->_cacheModuleID=$value; |
| 8279 | 8800 | } |
| 8801 | + |
|
| 8802 | + /** |
|
| 8803 | + * @param string $value |
|
| 8804 | + */ |
|
| 8280 | 8805 | public function setCacheKeyPrefix($value) |
| 8281 | 8806 | { |
| 8282 | 8807 | $this->_keyPrefix=$value; |
@@ -8327,10 +8852,18 @@ discard block |
||
| 8327 | 8852 | { |
| 8328 | 8853 | $this->_cachePostBack=TPropertyValue::ensureBoolean($value); |
| 8329 | 8854 | } |
| 8855 | + |
|
| 8856 | + /** |
|
| 8857 | + * @param TOutputCacheCheckDependencyEventParameter $param |
|
| 8858 | + */ |
|
| 8330 | 8859 | public function onCheckDependency($param) |
| 8331 | 8860 | { |
| 8332 | 8861 | $this->raiseEvent('OnCheckDependency',$this,$param); |
| 8333 | 8862 | } |
| 8863 | + |
|
| 8864 | + /** |
|
| 8865 | + * @param TOutputCacheCalculateKeyEventParameter $param |
|
| 8866 | + */ |
|
| 8334 | 8867 | public function onCalculateKey($param) |
| 8335 | 8868 | { |
| 8336 | 8869 | $this->raiseEvent('OnCalculateKey',$this,$param); |
@@ -8422,6 +8955,10 @@ discard block |
||
| 8422 | 8955 | $tplFile=dirname($class->getFileName()).DIRECTORY_SEPARATOR.$className.self::TEMPLATE_FILE_EXT; |
| 8423 | 8956 | return $this->getTemplateByFileName($tplFile); |
| 8424 | 8957 | } |
| 8958 | + |
|
| 8959 | + /** |
|
| 8960 | + * @param string $fileName |
|
| 8961 | + */ |
|
| 8425 | 8962 | public function getTemplateByFileName($fileName) |
| 8426 | 8963 | { |
| 8427 | 8964 | if(($fileName=$this->getLocalizedTemplate($fileName))!==null) |
@@ -8461,6 +8998,10 @@ discard block |
||
| 8461 | 8998 | else |
| 8462 | 8999 | return null; |
| 8463 | 9000 | } |
| 9001 | + |
|
| 9002 | + /** |
|
| 9003 | + * @return string |
|
| 9004 | + */ |
|
| 8464 | 9005 | protected function getLocalizedTemplate($filename) |
| 8465 | 9006 | { |
| 8466 | 9007 | if(($app=$this->getApplication()->getGlobalization(false))===null) |
@@ -8626,12 +9167,20 @@ discard block |
||
| 8626 | 9167 | $parentControl->addParsedObject($control); |
| 8627 | 9168 | } |
| 8628 | 9169 | } |
| 9170 | + |
|
| 9171 | + /** |
|
| 9172 | + * @param TControl $control |
|
| 9173 | + */ |
|
| 8629 | 9174 | protected function configureControl($control,$name,$value) |
| 8630 | 9175 | { |
| 8631 | 9176 | if(strncasecmp($name,'on',2)===0) $this->configureEvent($control,$name,$value,$control); |
| 8632 | 9177 | else if(($pos=strrpos($name,'.'))===false) $this->configureProperty($control,$name,$value); |
| 8633 | 9178 | else $this->configureSubProperty($control,$name,$value); |
| 8634 | 9179 | } |
| 9180 | + |
|
| 9181 | + /** |
|
| 9182 | + * @param TComponent $component |
|
| 9183 | + */ |
|
| 8635 | 9184 | protected function configureComponent($component,$name,$value) |
| 8636 | 9185 | { |
| 8637 | 9186 | if(strpos($name,'.')===false) $this->configureProperty($component,$name,$value); |
@@ -8941,6 +9490,11 @@ discard block |
||
| 8941 | 9490 | $tpl=$objects; |
| 8942 | 9491 | return $objects; |
| 8943 | 9492 | } |
| 9493 | + |
|
| 9494 | + /** |
|
| 9495 | + * @param string $str |
|
| 9496 | + * @param string $offset |
|
| 9497 | + */ |
|
| 8944 | 9498 | protected function parseAttributes($str,$offset) |
| 8945 | 9499 | { |
| 8946 | 9500 | if($str==='') |
@@ -8972,11 +9526,19 @@ discard block |
||
| 8972 | 9526 | } |
| 8973 | 9527 | return $attributes; |
| 8974 | 9528 | } |
| 9529 | + |
|
| 9530 | + /** |
|
| 9531 | + * @param string $content |
|
| 9532 | + */ |
|
| 8975 | 9533 | protected function parseTemplateProperty($content,$offset) |
| 8976 | 9534 | { |
| 8977 | 9535 | $line=$this->_startingLine+count(explode("\n",substr($this->_content,0,$offset)))-1; |
| 8978 | 9536 | return array(self::CONFIG_TEMPLATE,new TTemplate($content,$this->_contextPath,$this->_tplFile,$line,false)); |
| 8979 | 9537 | } |
| 9538 | + |
|
| 9539 | + /** |
|
| 9540 | + * @param string $value |
|
| 9541 | + */ |
|
| 8980 | 9542 | protected function parseAttribute($value) |
| 8981 | 9543 | { |
| 8982 | 9544 | if(($n=preg_match_all('/<%[#=].*?%>/msS',$value,$matches,PREG_OFFSET_CAPTURE))>0) |
@@ -9099,6 +9661,11 @@ discard block |
||
| 9099 | 9661 | { |
| 9100 | 9662 | return $this->_includedFiles; |
| 9101 | 9663 | } |
| 9664 | + |
|
| 9665 | + /** |
|
| 9666 | + * @param Exception $e |
|
| 9667 | + * @param integer $line |
|
| 9668 | + */ |
|
| 9102 | 9669 | protected function handleException($e,$line,$input=null) |
| 9103 | 9670 | { |
| 9104 | 9671 | $srcFile=$this->_tplFile; |
@@ -9155,6 +9722,10 @@ discard block |
||
| 9155 | 9722 | } |
| 9156 | 9723 | return $input; |
| 9157 | 9724 | } |
| 9725 | + |
|
| 9726 | + /** |
|
| 9727 | + * @param string $method |
|
| 9728 | + */ |
|
| 9158 | 9729 | protected function isClassBehaviorMethod(ReflectionClass $class,$method) |
| 9159 | 9730 | { |
| 9160 | 9731 | $component=new ReflectionClass('TComponent'); |
@@ -9237,6 +9808,10 @@ discard block |
||
| 9237 | 9808 | throw new TInvalidDataValueException('thememanager_basepath_invalid',$value); |
| 9238 | 9809 | } |
| 9239 | 9810 | } |
| 9811 | + |
|
| 9812 | + /** |
|
| 9813 | + * @return string |
|
| 9814 | + */ |
|
| 9240 | 9815 | public function getBaseUrl() |
| 9241 | 9816 | { |
| 9242 | 9817 | if($this->_baseUrl===null) |
@@ -9635,6 +10210,10 @@ discard block |
||
| 9635 | 10210 | { |
| 9636 | 10211 | return $this->_defaultPage; |
| 9637 | 10212 | } |
| 10213 | + |
|
| 10214 | + /** |
|
| 10215 | + * @param string $value |
|
| 10216 | + */ |
|
| 9638 | 10217 | public function setDefaultPage($value) |
| 9639 | 10218 | { |
| 9640 | 10219 | if($this->_initialized) |
@@ -9723,6 +10302,10 @@ discard block |
||
| 9723 | 10302 | $page->setSubProperty($name,$value); |
| 9724 | 10303 | $page->run($this->getResponse()->createHtmlWriter()); |
| 9725 | 10304 | } |
| 10305 | + |
|
| 10306 | + /** |
|
| 10307 | + * @param string $pagePath |
|
| 10308 | + */ |
|
| 9726 | 10309 | public function constructUrl($pagePath,$getParams=null,$encodeAmpersand=true,$encodeGetItems=true) |
| 9727 | 10310 | { |
| 9728 | 10311 | return $this->getRequest()->constructUrl($this->getID(),$pagePath,$getParams,$encodeAmpersand,$encodeGetItems); |
@@ -9794,11 +10377,20 @@ discard block |
||
| 9794 | 10377 | throw new TConfigurationException('pageserviceconf_file_invalid',$fname); |
| 9795 | 10378 | } |
| 9796 | 10379 | } |
| 10380 | + |
|
| 10381 | + /** |
|
| 10382 | + * @param string $configPath |
|
| 10383 | + */ |
|
| 9797 | 10384 | public function loadFromPhp($config,$configPath,$configPagePath) |
| 9798 | 10385 | { |
| 9799 | 10386 | $this->loadApplicationConfigurationFromPhp($config,$configPath); |
| 9800 | 10387 | $this->loadPageConfigurationFromPhp($config,$configPath,$configPagePath); |
| 9801 | 10388 | } |
| 10389 | + |
|
| 10390 | + /** |
|
| 10391 | + * @param TXmlDocument $dom |
|
| 10392 | + * @param string $configPath |
|
| 10393 | + */ |
|
| 9802 | 10394 | public function loadFromXml($dom,$configPath,$configPagePath) |
| 9803 | 10395 | { |
| 9804 | 10396 | $this->loadApplicationConfigurationFromXml($dom,$configPath); |
@@ -10055,6 +10647,10 @@ discard block |
||
| 10055 | 10647 | else |
| 10056 | 10648 | return $this->_basePath.DIRECTORY_SEPARATOR.$this->hash($path); |
| 10057 | 10649 | } |
| 10650 | + |
|
| 10651 | + /** |
|
| 10652 | + * @param string $path |
|
| 10653 | + */ |
|
| 10058 | 10654 | public function getPublishedUrl($path) |
| 10059 | 10655 | { |
| 10060 | 10656 | $path=realpath($path); |
@@ -10063,10 +10659,19 @@ discard block |
||
| 10063 | 10659 | else |
| 10064 | 10660 | return $this->_baseUrl.'/'.$this->hash($path); |
| 10065 | 10661 | } |
| 10662 | + |
|
| 10663 | + /** |
|
| 10664 | + * @param string $dir |
|
| 10665 | + */ |
|
| 10066 | 10666 | protected function hash($dir) |
| 10067 | 10667 | { |
| 10068 | 10668 | return sprintf('%x',crc32($dir.Prado::getVersion())); |
| 10069 | 10669 | } |
| 10670 | + |
|
| 10671 | + /** |
|
| 10672 | + * @param string $src |
|
| 10673 | + * @param string $dst |
|
| 10674 | + */ |
|
| 10070 | 10675 | protected function copyFile($src,$dst) |
| 10071 | 10676 | { |
| 10072 | 10677 | if(!is_dir($dst)) |
@@ -10080,6 +10685,11 @@ discard block |
||
| 10080 | 10685 | @copy($src,$dstFile); |
| 10081 | 10686 | } |
| 10082 | 10687 | } |
| 10688 | + |
|
| 10689 | + /** |
|
| 10690 | + * @param string $src |
|
| 10691 | + * @param string $dst |
|
| 10692 | + */ |
|
| 10083 | 10693 | public function copyDirectory($src,$dst) |
| 10084 | 10694 | { |
| 10085 | 10695 | if(!is_dir($dst)) |
@@ -10109,6 +10719,11 @@ discard block |
||
| 10109 | 10719 | throw new TInvalidDataValueException('assetmanager_source_directory_invalid', $src); |
| 10110 | 10720 | } |
| 10111 | 10721 | } |
| 10722 | + |
|
| 10723 | + /** |
|
| 10724 | + * @param string $tarfile |
|
| 10725 | + * @param string $md5sum |
|
| 10726 | + */ |
|
| 10112 | 10727 | public function publishTarFile($tarfile, $md5sum, $checkTimestamp=false) |
| 10113 | 10728 | { |
| 10114 | 10729 | if(isset($this->_published[$md5sum])) |
@@ -10131,6 +10746,10 @@ discard block |
||
| 10131 | 10746 | return $this->_published[$md5sum]=$this->_baseUrl.'/'.$dir; |
| 10132 | 10747 | } |
| 10133 | 10748 | } |
| 10749 | + |
|
| 10750 | + /** |
|
| 10751 | + * @param string $destination |
|
| 10752 | + */ |
|
| 10134 | 10753 | protected function deployTarFile($path,$destination) |
| 10135 | 10754 | { |
| 10136 | 10755 | if(($fullpath=realpath($path))===false || !is_file($fullpath)) |
@@ -10352,6 +10971,10 @@ discard block |
||
| 10352 | 10971 | $this->_services=array($this->getPageServiceID()=>array('TPageService',array(),null)); |
| 10353 | 10972 | Prado::setPathOfAlias('Application',$this->_basePath); |
| 10354 | 10973 | } |
| 10974 | + |
|
| 10975 | + /** |
|
| 10976 | + * @param string $basePath |
|
| 10977 | + */ |
|
| 10355 | 10978 | protected function resolvePaths($basePath) |
| 10356 | 10979 | { |
| 10357 | 10980 | if(empty($basePath) || ($basePath=realpath($basePath))===false) |
@@ -10417,10 +11040,18 @@ discard block |
||
| 10417 | 11040 | { |
| 10418 | 11041 | return $this->_requestCompleted; |
| 10419 | 11042 | } |
| 11043 | + |
|
| 11044 | + /** |
|
| 11045 | + * @param integer $defaultValue |
|
| 11046 | + */ |
|
| 10420 | 11047 | public function getGlobalState($key,$defaultValue=null) |
| 10421 | 11048 | { |
| 10422 | 11049 | return isset($this->_globals[$key])?$this->_globals[$key]:$defaultValue; |
| 10423 | 11050 | } |
| 11051 | + |
|
| 11052 | + /** |
|
| 11053 | + * @param string $key |
|
| 11054 | + */ |
|
| 10424 | 11055 | public function setGlobalState($key,$value,$defaultValue=null,$forceSave=false) |
| 10425 | 11056 | { |
| 10426 | 11057 | $this->_stateChanged=true; |
@@ -10480,6 +11111,10 @@ discard block |
||
| 10480 | 11111 | { |
| 10481 | 11112 | return $this->_basePath; |
| 10482 | 11113 | } |
| 11114 | + |
|
| 11115 | + /** |
|
| 11116 | + * @param string $value |
|
| 11117 | + */ |
|
| 10483 | 11118 | public function setBasePath($value) |
| 10484 | 11119 | { |
| 10485 | 11120 | $this->_basePath=$value; |
@@ -10488,6 +11123,10 @@ discard block |
||
| 10488 | 11123 | { |
| 10489 | 11124 | return $this->_configFile; |
| 10490 | 11125 | } |
| 11126 | + |
|
| 11127 | + /** |
|
| 11128 | + * @param string $value |
|
| 11129 | + */ |
|
| 10491 | 11130 | public function setConfigurationFile($value) |
| 10492 | 11131 | { |
| 10493 | 11132 | $this->_configFile=$value; |
@@ -10496,6 +11135,10 @@ discard block |
||
| 10496 | 11135 | { |
| 10497 | 11136 | return $this->_configType; |
| 10498 | 11137 | } |
| 11138 | + |
|
| 11139 | + /** |
|
| 11140 | + * @param string $value |
|
| 11141 | + */ |
|
| 10499 | 11142 | public function setConfigurationType($value) |
| 10500 | 11143 | { |
| 10501 | 11144 | $this->_configType = $value; |
@@ -10535,6 +11178,10 @@ discard block |
||
| 10535 | 11178 | { |
| 10536 | 11179 | return $this->_runtimePath; |
| 10537 | 11180 | } |
| 11181 | + |
|
| 11182 | + /** |
|
| 11183 | + * @param string $value |
|
| 11184 | + */ |
|
| 10538 | 11185 | public function setRuntimePath($value) |
| 10539 | 11186 | { |
| 10540 | 11187 | $this->_runtimePath=$value; |
@@ -10546,6 +11193,10 @@ discard block |
||
| 10546 | 11193 | { |
| 10547 | 11194 | return $this->_service; |
| 10548 | 11195 | } |
| 11196 | + |
|
| 11197 | + /** |
|
| 11198 | + * @param IService $value |
|
| 11199 | + */ |
|
| 10549 | 11200 | public function setService($value) |
| 10550 | 11201 | { |
| 10551 | 11202 | $this->_service=$value; |
@@ -10826,6 +11477,10 @@ discard block |
||
| 10826 | 11477 | else |
| 10827 | 11478 | throw new THttpException(500,'application_service_unknown',$serviceID); |
| 10828 | 11479 | } |
| 11480 | + |
|
| 11481 | + /** |
|
| 11482 | + * @param Exception $param |
|
| 11483 | + */ |
|
| 10829 | 11484 | public function onError($param) |
| 10830 | 11485 | { |
| 10831 | 11486 | Prado::log($param->getMessage(),TLogger::ERROR,'System.TApplication'); |