PK!;zz import.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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!2modhashing.class.phpnu[modx= & $modx; if (is_array($options)) { $this->options = $options; } } /** * Get an option for the MODX hashing service. * * Searches for local options and then prefixes keys with encrypt_ to look for * MODX System Settings. * * @param string $key The option key to get a value for. * @param array|null $options An optional array of options to look in first. * @param mixed $default An optional default value to return if no value is set. * @return mixed The option value or the specified default if not found. */ public function getOption($key, $options = null, $default = null) { if (is_array($options) && array_key_exists($key, $options)) { $option = $options[$key]; } elseif (array_key_exists($key, $this->options)) { $option = $this->options[$key]; } else { $option = $this->modx->getOption('hashing_' . $key, $this->options, $default); } return $option; } /** * Get a hash implementation instance. * * The implementation is made available as a member variable of the modHashing service. * * @param string $key A key string identifying the instance; must be a valid PHP variable name. * @param string $class A valid fully-qualified modHash derivative class name * @param array|null $options An optional array of hash options. * @return modHash|null A reference to a modHash instance or null if could not be instantiated. */ public function getHash($key, $class, $options = array()) { $className = $this->modx->loadClass($class, '', false, true); if ($className) { if (empty($key)) $key = strtolower(str_replace('mod', '', $className)); if (!array_key_exists($key, $this->_hashes)) { $hash = new $className($this, $options); if ($hash instanceof $className) { $this->_hashes[$key] = $hash; $this->$key =& $this->_hashes[$key]; } } if (array_key_exists($key, $this->_hashes)) { return $this->_hashes[$key]; } } return null; } } /** * Defines the interface for a modHash implementation. * * @abstract Implement a derivative of this class to define an actual hash algorithm implementation. * @package modx * @subpackage hashing */ abstract class modHash { /** * A reference to the modHashing service hosting this modHash instance. * @var modHashing */ public $host= null; /** * An array of options for the modHash implementation. * @var array */ public $options= array(); /** * Constructs a new instance of the modHash class. * * @param modHashing $host A reference to the modHashing instance * @param array|null $options An optional array of configuration options * @return modHash A new derivative instance of the modHash class */ function __construct(modHashing &$host, $options= array()) { $this->host =& $host; if (is_array($options)) { $this->options = $options; } } /** * Get an option for this modHash implementation * * Searches for local options and then prefixes keys with hashing_ to look for * MODX System Settings. * * @param string $key The option key to get a value for. * @param array|null $options An optional array of options to look in first. * @param mixed $default An optional default value to return if no value is set. * @return mixed The option value or the specified default if not found. */ public function getOption($key, $options = null, $default = null) { if (is_array($options) && array_key_exists($key, $options)) { $option = $options[$key]; } else { $option = $this->host->getOption($key, $this->options, $default); } return $option; } /** * Generate a hash of the given string using the provided options. * * @abstract * @param string $string A string to generate a secure hash from. * @param array $options An array of options to be passed to the hash implementation. * @return mixed The hash result or false on failure. */ public abstract function hash($string, array $options = array()); } PK!^0 install.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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PK!jzW99md5nu[a:212:{s:8:"edit.xml";s:32:"883002534bcd3f658fa5b887ac5e9512";s:9:"notes.txt";s:32:"f3a51192e85885952ca56ab26eff9f38";s:9:"clone.php";s:32:"0007c9ce4ed42e722e48fbfed03f7f6c";s:10:"import.php";s:32:"b7d1eb2315b2fee909515a7f9b58f862";s:11:"restore.php";s:32:"c7228580de2f2ef903a502bfe05925f0";s:8:"info.xml";s:32:"d54af4948c9e4b455a4f1cb5a577cd4d";s:17:"configuration.php";s:32:"e21a0f01bc88ceca7ecfc4eda2df755d";s:10:"install.js";s:32:"0fca4740b95e5d5c84f4aa7b5731a272";s:11:"upgrade.php";s:32:"7b33cc9342e68786a805cb67b6ec3bb1";s:19:"images/joomla30.png";s:32:"fa54daa6e8b141e0985e807f92762d1f";s:15:"images/logo.gif";s:32:"cd6a3137c3df5846e7f4a705f8ac1c67";s:11:"install.xml";s:32:"4cc1d2b539a130e3365151439a16970d";s:8:"edit.php";s:32:"a14190a3050821a981b0322ec40ba19d";s:11:"install.php";s:32:"d2b706a44467e0c9cb6283bd647e9f46";s:11:"sign_on.php";s:32:"325d4448f06780f2ea6b9a2beba63085";s:12:"joomla30.sql";s:32:"dfe41f106ad8920022e699c3c6b8cf51";s:11:"upgrade.xml";s:32:"f3b03491c6e5c252fd392d3baa10b6de";s:10:"extend.php";s:32:"654c242d9c5996dcab49b2893ee8f71c";s:24:"languages/site_el-GR.zip";s:32:"cd16932ddac56cfd24219a18f483b494";s:23:"languages/api_nl-BE.zip";s:32:"c9957ff8ed7aa61deb834f64925ded9a";s:23:"languages/api_af-ZA.zip";s:32:"28b67ccf5a97790a45c1b0ba23e98e7c";s:24:"languages/site_cy-GB.zip";s:32:"97c4955eeb3098b535826cc1e64fece4";s:24:"languages/site_ta-IN.zip";s:32:"ff9d8a5abbe87460de4829e12df07642";s:23:"languages/pkg_zh-TW.xml";s:32:"069fe01e197b381cdcaa93bda23f71e1";s:23:"languages/api_ro-RO.zip";s:32:"defe6ffa4b8754d9f7332e991f26e177";s:25:"languages/admin_et-EE.zip";s:32:"998d86f11f0b39117303f138ab745914";s:25:"languages/admin_de-DE.zip";s:32:"214f6c654b0994e36a133a308141e964";s:25:"languages/admin_fa-IR.zip";s:32:"a2d37e758aa862bc0acb0ee51455d802";s:24:"languages/site_de-DE.zip";s:32:"091054d4f9af079e76bf6db261db1b7c";s:25:"languages/admin_sv-SE.zip";s:32:"217794d148d324c6b9df0ff2a901fde7";s:23:"languages/api_uk-UA.zip";s:32:"e3aabee235a6e716583b2a5257ef8400";s:24:"languages/site_sv-SE.zip";s:32:"e45e6c6d2a4143708181d0892b111f11";s:23:"languages/api_kk-KZ.zip";s:32:"569a1bc3a42c61de9128cf8a2a53b19f";s:25:"languages/admin_th-TH.zip";s:32:"c8a4823deaac4dd05a9cf09d85de8896";s:24:"languages/site_nl-NL.zip";s:32:"b352e0b9754252067a5e9d034931cafc";s:24:"languages/site_es-ES.zip";s:32:"37636b6ad1a6fadcd35157e2ebc2c602";s:24:"languages/site_ko-KR.zip";s:32:"cac3bbe963ac066d02c48db5bf5b79b5";s:24:"languages/site_th-TH.zip";s:32:"1f32712509c009ff739ee064a20774e0";s:24:"languages/site_sl-SI.zip";s:32:"b0954c8204add0072b15ddfe5b7205d2";s:23:"languages/api_nb-NO.zip";s:32:"94681d2bda80020613bd1b70b111aa60";s:23:"languages/api_fr-FR.zip";s:32:"9e263b881f197171e8f92a5243124d00";s:23:"languages/api_sl-SI.zip";s:32:"98bdead0b53e7d676a6a1fd04063e0d1";s:23:"languages/pkg_ko-KR.xml";s:32:"0a805f38c9573486652c7cc3b364f95f";s:23:"languages/pkg_kk-KZ.xml";s:32:"ddb15d7259e86d31f824d6b5c0a25946";s:26:"languages/script_pl-PL.zip";s:32:"d7e50c459285c3240154fc5d4bc1c433";s:24:"languages/site_kk-KZ.zip";s:32:"af299f60bce8489f569746f19452771d";s:23:"languages/pkg_af-ZA.xml";s:32:"ab472389bcf6cb345bc4b28eb3ec02d5";s:24:"languages/site_tr-TR.zip";s:32:"ed7d9e0bfaea334e4797e0302a0d5804";s:23:"languages/pkg_da-DK.xml";s:32:"8903623afb7756c2762b741ea5ec043d";s:23:"languages/pkg_fr-FR.xml";s:32:"5e5341c629e40c6c2117e2c2553304b2";s:24:"languages/site_uk-UA.zip";s:32:"18d3c3d51dcf9dcf7388c73346a66cd0";s:23:"languages/api_sk-SK.zip";s:32:"94999a40325698c000262830c0811b75";s:24:"languages/site_it-IT.zip";s:32:"436f8ae5fb91f46834dbf50960118d79";s:25:"languages/admin_fi-FI.zip";s:32:"155930e775692b2b9693dbccda12faa8";s:23:"languages/api_ja-JP.zip";s:32:"ca11d0d5759d8f87aa643ddf6a1042d3";s:23:"languages/pkg_de-DE.xml";s:32:"e89c6f36a9c38196f34449b50e0ebc1d";s:25:"languages/admin_tr-TR.zip";s:32:"03bad61acb611dc66d6b89c4bdfb0b13";s:24:"languages/site_nl-BE.zip";s:32:"967aa91b2c938a13310f43b34b5e8e83";s:24:"languages/site_fi-FI.zip";s:32:"778538159aaec02d9e79571e09c8042c";s:23:"languages/pkg_bg-BG.xml";s:32:"3863a8efdcac31b14182dbc8c69d28b9";s:23:"languages/api_tr-TR.zip";s:32:"e03db49db296276bc0fab9144f3b52b7";s:23:"languages/api_ta-IN.zip";s:32:"7cfb2056549fdf9dcc492d149f7e8bc1";s:24:"languages/site_fr-FR.zip";s:32:"1b2465f76055df7d56fd73a857c4aed8";s:23:"languages/pkg_nb-NO.xml";s:32:"dfe1fb7cb932ab8a729c71ea17a3dac2";s:23:"languages/pkg_ta-IN.xml";s:32:"7406bfa2de64d5fa47ef7e707a55c252";s:23:"languages/pkg_hu-HU.xml";s:32:"c99ec8130e9262e7c3f2c6e3281e92f3";s:25:"languages/admin_ja-JP.zip";s:32:"5af23e6b9fedacfe75c5f0e76cc93e14";s:25:"languages/admin_cy-GB.zip";s:32:"8e8caa3d1b6343246b7a1739f1106b96";s:23:"languages/pkg_ka-GE.xml";s:32:"31686225348ee22d3de59b97e14d5e80";s:25:"languages/admin_ro-RO.zip";s:32:"43407f2a7af55be00d82f8d5090492d2";s:25:"languages/admin_zh-TW.zip";s:32:"545ba7a2039712a22a668366198fd60b";s:23:"languages/api_de-DE.zip";s:32:"0d1cf70541b05889698dbff76c1ad36a";s:23:"languages/pkg_tr-TR.xml";s:32:"1c76a74a1cfd3c66b944ed5bb431703e";s:25:"languages/admin_nl-BE.zip";s:32:"b73139b2e5e50521c3d41406eaad6d4a";s:23:"languages/api_it-IT.zip";s:32:"8359e29bb70926106e9094e4ca323ff9";s:25:"languages/admin_nb-NO.zip";s:32:"50c3e8d192547ab07257a9ea9f880347";s:23:"languages/pkg_et-EE.xml";s:32:"e67b3441197a57fd5991837f598fb60f";s:23:"languages/pkg_nl-NL.xml";s:32:"51834b41f064b13efd1871cd46142804";s:24:"languages/site_fa-IR.zip";s:32:"e81cf46c788bf631e0a443c54c04ecfa";s:25:"languages/admin_fr-FR.zip";s:32:"f30700e649fab32176b8040d91e5895b";s:23:"languages/pkg_fa-IR.xml";s:32:"1a22e644d574f8b7c3be1cae804aadb7";s:23:"languages/api_ko-KR.zip";s:32:"2dbb6735dea82a096114fbe52cc7e3a1";s:25:"languages/admin_nl-NL.zip";s:32:"be80c6bb3879f7d827aa03996780c79f";s:23:"languages/pkg_sk-SK.xml";s:32:"612ca97eab1382ee423ac4ba9257c2d1";s:23:"languages/api_fa-IR.zip";s:32:"85e9b4d5cc27bf5cf6a267bb84aa84b2";s:24:"languages/site_da-DK.zip";s:32:"bce59332d91f940dc6b0310f06b7a269";s:23:"languages/pkg_ru-RU.xml";s:32:"49377688e254ff8c8711763526e5742b";s:24:"languages/site_af-ZA.zip";s:32:"5d303ddc610d14b75ff09925a6bd44be";s:23:"languages/api_th-TH.zip";s:32:"6fb699ea5ace87dc944ab5b195ff7f4d";s:23:"languages/pkg_lt-LT.xml";s:32:"61a966938767a013f22349322b281f6a";s:23:"languages/api_nl-NL.zip";s:32:"9b18c16469cc998bd132094676c4fcdd";s:25:"languages/admin_ko-KR.zip";s:32:"30a696406ed67697fb1b2061c1b199a3";s:24:"languages/site_et-EE.zip";s:32:"c72800efb360635bb2e197546477889b";s:25:"languages/admin_sl-SI.zip";s:32:"dafcfe021c830410ee6505b6f0eae780";s:25:"languages/admin_el-GR.zip";s:32:"eed8bf7b8a55b0fce5a95af3778e759a";s:23:"languages/pkg_sl-SI.xml";s:32:"9c17f701760f30c5d25bacb2d5b4e314";s:23:"languages/pkg_cy-GB.xml";s:32:"5a5e4d72426c2f4aa7326d1321d518e2";s:23:"languages/pkg_fi-FI.xml";s:32:"001cc11521bb8f30d0e272b2dccba3a0";s:24:"languages/site_lt-LT.zip";s:32:"7eda33af8143621e6ba03755e265d9cf";s:24:"languages/site_cs-CZ.zip";s:32:"2c571eac5944909e3dee9fc3868baa60";s:25:"languages/admin_ka-GE.zip";s:32:"c1312eedc1191e7d17c3b30495471657";s:25:"languages/admin_es-ES.zip";s:32:"ee781f1c1ee9a383c9b6b4810e6f3ea6";s:23:"languages/pkg_sv-SE.xml";s:32:"400612599b48ff5b48c5f9941c78f21f";s:24:"languages/site_nb-NO.zip";s:32:"904d49c9934bd45d94186ff44f7b7538";s:24:"languages/site_sr-YU.zip";s:32:"5d5ac27ef530105c6fb1071fec473c9f";s:24:"languages/site_pl-PL.zip";s:32:"ef59d51fedc74ce2cd6fa46b13bae4ca";s:25:"languages/admin_bg-BG.zip";s:32:"22a8094db53b31da59f2f8fa12cc3676";s:26:"languages/script_ko-KR.zip";s:32:"2646027059b5036df6daad712de93b31";s:23:"languages/api_pl-PL.zip";s:32:"49ecaebcf9d4259d332c349c6ee173a5";s:25:"languages/admin_ru-RU.zip";s:32:"df327f723002808122516f28ca1a1bcd";s:23:"languages/pkg_th-TH.xml";s:32:"69991ebb8dbcecfd6a6fdb0995cc7a6d";s:23:"languages/api_zh-TW.zip";s:32:"54c153cdb7d2d83963e9a325eab8f8c6";s:24:"languages/site_hu-HU.zip";s:32:"c0e229690bd2316ca43b7718db763aac";s:23:"languages/pkg_sr-YU.xml";s:32:"aa6a87afeed6b38c764821cc09ea719a";s:25:"languages/admin_lt-LT.zip";s:32:"049f7db7f2db3d66894f386838e75195";s:24:"languages/site_bg-BG.zip";s:32:"5ef03f67b430ad8e06648c46c73f4542";s:23:"languages/pkg_el-GR.xml";s:32:"fa803099a7856b43478bdedb5ef751aa";s:24:"languages/site_zh-TW.zip";s:32:"e2faa778722a9f0bb85c9af880bf57ac";s:23:"languages/api_hu-HU.zip";s:32:"57fbfa922e96af2b2c240ab9fc083e6f";s:23:"languages/api_cs-CZ.zip";s:32:"0ff198fd58e95aad479ad489f457f675";s:26:"languages/script_de-DE.zip";s:32:"c456fd0f910933c61ecfc0ad3fce2e70";s:23:"languages/api_da-DK.zip";s:32:"30c3e382bbbce5173aba3af0e36b2043";s:23:"languages/pkg_es-ES.xml";s:32:"536d192d69f198891d94c5fdeeaad415";s:25:"languages/admin_pl-PL.zip";s:32:"3e9bec1512364cef1ccb120c0397715c";s:23:"languages/pkg_pl-PL.xml";s:32:"e63594c3a2939fc408c966b29747cf0a";s:24:"languages/site_ro-RO.zip";s:32:"4ddb092716cb75353c31d6996c202e60";s:23:"languages/pkg_it-IT.xml";s:32:"4ea77bb19ee8811c452c452e1090e03e";s:25:"languages/admin_ta-IN.zip";s:32:"d584d80988682e00c530ff94d185f8fc";s:23:"languages/api_ru-RU.zip";s:32:"8c0045512c46060b4195cf7fae37f9a9";s:23:"languages/api_cy-GB.zip";s:32:"9f94bbcf8e9da1d58f534274d83d72bc";s:24:"languages/site_sk-SK.zip";s:32:"61c755c42afab55b5c4aa61c2a12ecce";s:23:"languages/api_sv-SE.zip";s:32:"aebd1a7844141a9bfd06f0d2680c65f8";s:25:"languages/admin_da-DK.zip";s:32:"558b2a5a2885f5b9cd4d759d13d2923e";s:25:"languages/admin_kk-KZ.zip";s:32:"def7a7ea0312e97f7927b7d0b3ca4249";s:23:"languages/api_ka-GE.zip";s:32:"548d0c3af12b5f048ae6360314cd814b";s:25:"languages/admin_af-ZA.zip";s:32:"60c007d523e219d0ed8c5fd9dd7c6cc9";s:23:"languages/pkg_cs-CZ.xml";s:32:"02924c3fd6b6c0803b08ae4c3c723fd5";s:24:"languages/site_ru-RU.zip";s:32:"4fcef6d205e9e2a4df3da921c3c38e7f";s:23:"languages/api_et-EE.zip";s:32:"31b75eb17d9af641e0f0d12013be9969";s:24:"languages/site_ja-JP.zip";s:32:"bcb9277084f536f4f569f0d20ecde225";s:23:"languages/api_es-ES.zip";s:32:"e2969f682194e6999c786a682b4f4c9a";s:23:"languages/api_bg-BG.zip";s:32:"1204eda08a74622665382303cad2a09b";s:23:"languages/api_fi-FI.zip";s:32:"5b3f50739e77b5b1e92635d26ca2336a";s:25:"languages/admin_cs-CZ.zip";s:32:"5aa71cd6151545e34dc8f3874c3f8898";s:23:"languages/pkg_ja-JP.xml";s:32:"c2a15a14ec5840ade23674b5b26e09aa";s:23:"languages/api_sr-YU.zip";s:32:"b26b25aa1a875decf389494025e84c29";s:23:"languages/api_el-GR.zip";s:32:"71dd95633ffb7cac224d5cbfb8901d14";s:25:"languages/admin_sr-YU.zip";s:32:"26951de1457448ceaddcd92f5f6aa0e5";s:25:"languages/admin_uk-UA.zip";s:32:"dfd58340c1d482375491c4061b7b8bff";s:24:"languages/site_ka-GE.zip";s:32:"f36a324db6429dfbc6cf67c257a8a35a";s:25:"languages/admin_hu-HU.zip";s:32:"659c6caf1df83cac9a13d5481778b4da";s:23:"languages/pkg_nl-BE.xml";s:32:"c3a38651f8b641a4404b2c5a56d4576e";s:25:"languages/admin_sk-SK.zip";s:32:"ac17ac1668b80aff9de6f56aede61730";s:23:"languages/api_lt-LT.zip";s:32:"e27f6fd3b092fd95c13dd95ecd47d443";s:23:"languages/pkg_ro-RO.xml";s:32:"897aa0cf0a8125c09bcd361d2b9806d9";s:25:"languages/admin_it-IT.zip";s:32:"2571af9bc152c6c3180ec6626122be53";s:23:"languages/pkg_uk-UA.xml";s:32:"b646e2487a4548aa720b189565b1ffd4";s:13:"fileindex.php";s:32:"b2dd9ff4efd8a7606589a5f9a012b2a7";s:15:"update_pass.php";s:32:"8a2c9785cb0075900e3bd469badcdcb9";s:12:"joomla30.zip";s:32:"98001a241704e4acae3d69a1f4128770";s:21:"_4.3.0-2023-03-28.sql";s:32:"b12b9c5ea96cc35cccb3e0f19efdf074";s:18:"images/joomla4.png";s:32:"fa54daa6e8b141e0985e807f92762d1f";s:20:"4.3.0-2023-03-28.sql";s:32:"ed46291c7bf765c0bccc30849ac5e556";s:25:"languages/admin_pt-BR.zip";s:32:"20b849f94da4f3e9c7a03e0481ac8f8d";s:24:"languages/site_vi-VN.zip";s:32:"5973b1b898f6c279915ce705604b45f4";s:25:"languages/admin_zh-CN.zip";s:32:"cef6ef3adcb776313aa976584dd6a5bb";s:24:"languages/site_zh-CN.zip";s:32:"6518a76446116bf1a35966b18c11f427";s:23:"languages/api_vi-VN.zip";s:32:"0d4e1f3f92c9a961ea9b112f3602c920";s:25:"languages/admin_mk-MK.zip";s:32:"eeacb72cd18c2baab4ec70017bc3ae41";s:23:"languages/pkg_vi-VN.xml";s:32:"92e730632a2960dbb31218b3e70cc9af";s:24:"languages/site_mk-MK.zip";s:32:"9f3d7d086c341bdcc8bc77fc3eb26d32";s:23:"languages/pkg_ca-ES.xml";s:32:"0ddd51668293d65228461086e498812f";s:24:"languages/site_ca-ES.zip";s:32:"a4dc97165c733f1ed54911c3a7456d18";s:23:"languages/api_zh-CN.zip";s:32:"53670a8eaf9993e46c6cd1e15052ce23";s:25:"languages/admin_ar-AA.zip";s:32:"a423034418aaa27852d8d85c2fa415ed";s:23:"languages/pkg_mk-MK.xml";s:32:"3f6b26a0ebf359c077fb1b85ec955edb";s:25:"languages/admin_pt-PT.zip";s:32:"db1bc9404d319458a992b2f31db182a7";s:23:"languages/pkg_pt-BR.xml";s:32:"bbd8bca53ab2a0a1d18edc146a03c0e9";s:23:"languages/pkg_pt-PT.xml";s:32:"07554e8aa1de041e6f924ab431f323fe";s:24:"languages/site_pt-BR.zip";s:32:"66f19c86d9352ab4016ce215b5894869";s:25:"languages/admin_vi-VN.zip";s:32:"9fce011a8bddea76f62db4228162d8fb";s:23:"languages/pkg_ar-AA.xml";s:32:"e8ec4ba5b23e7b04e4ebf0ebf42119c6";s:23:"languages/api_ca-ES.zip";s:32:"86942a781a6892c43ab0ed48b3acdee0";s:25:"languages/admin_ca-ES.zip";s:32:"e619b38770c667baf376d4406a17e59d";s:25:"languages/admin_sr-RS.zip";s:32:"31e68dbcf7302540b413bd88f43b2f2f";s:24:"languages/site_sr-RS.zip";s:32:"4adb5ad51e8cb56eae4c97d90baf0783";s:23:"languages/api_mk-MK.zip";s:32:"44d6ff48d3681cfc735c9887a24cb9ea";s:23:"languages/pkg_sr-RS.xml";s:32:"686e62b979e5a138271fc1bca600ee31";s:23:"languages/api_sr-RS.zip";s:32:"f18fc59247c3fa53c1dfddc76a0ec31c";s:23:"languages/api_ar-AA.zip";s:32:"c07c355431b0c45dddd1523b275ef259";s:24:"languages/site_pt-PT.zip";s:32:"c2fe2b4011ea64e1bc517e928940b2da";s:23:"languages/pkg_zh-CN.xml";s:32:"53119237e4b3fafa946694a0f286cc92";s:24:"languages/site_ar-AA.zip";s:32:"a9b13142d708e1e5cc47641878f206ac";s:23:"languages/api_pt-PT.zip";s:32:"8d4d61acd16f0ec74e4319e1b54bdba7";s:23:"languages/api_pt-BR.zip";s:32:"436a331758d0d18cca9136ee0bbb7834";s:11:"joomla4.zip";s:32:"a930dc7f9236c20c502189b90779aa81";s:11:"joomla4.sql";s:32:"14547adba7856e4d8a13d244c2b49359";s:8:"data.zip";s:32:"9da0d15400c4908c350e7961b2eb769e";s:17:"images/blesta.png";s:32:"e33812684a33a175ad717b9577435066";s:15:"images/logo.png";s:32:"b416d02ad61e120e30555ee27eef9fc3";s:11:"ioncube.php";s:32:"4996e3d0efba101a20ed31602bb54632";s:10:"blesta.zip";s:32:"7d1b44f1c7755edccb51d89018d36ed6";s:11:"_blesta.php";s:32:"ce9f4d5121918b94cf01dcbd53de8129";s:8:"modx.zip";s:32:"9dc31fe5fc2d8fe07d6d462d2694cabb";s:20:"modhashing.class.php";s:32:"3ccdf5948853f2eed69216022165ea4c";s:19:"modpbkdf2.class.php";s:32:"37e4a87fb24ae30224109823a643b8aa";s:15:"images/modx.png";s:32:"350085c4e88c321146f33463c81b2d53";s:8:"modx.sql";s:32:"b8005e9a99ac3e33d0b4336eb4956777";s:15:"config.core.php";s:32:"e7ac8cf59cd27d96622291f149502f41";s:14:"xpdo.class.php";s:32:"d8d2fdee8e9d7a783f413c57d399bf94";s:14:"config.inc.php";s:32:"cd687a7785c2f41ecb8daf589f514f19";s:13:"changelog.txt";s:32:"cd126d7f74b252ffc2afde36bcf78315";}PK!>&nnphp81/import.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 N24a8ATv0ywdhgXNVLKRPK!S php81/install.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 R8We4k+oMR0/g0==PK!MrBBphp81/edit.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> HR+cPrtFZZX3dtC/6WCR6qFrMGVyUXXoDkizBiOMAnoFPkO/bdIa2pROuZ7pBYfAj+TojSXtGEWV hUC7rDd8AH6Q+eCesmUHAEgzLWMQyAZtLE30ZHet8gd6swg4MsGAwt90Mou93MsGt1ppZMafaP/g CJ0GhSvR/a2k8PlpApaP5F9QDmxTOMRu6uvnX3+tH3dw693JXOTFmXxTC5iG8ALHFNGimxrJiv84 0hAAAT3Lc2171XqbeKGWDOo/Mk6cm1dKyBbqFqS6LRdpUkBZ2+a+ObwslVB+RcD6Sm5QcFWEaQpn E7ddZ7R/q9OPqv9ewW95DGxemrztNxdR3pDkquQVYBsCK3z3UYX8GVuAS42wSjlUXbyY15OlvTTc BjtuQ6eE7ocn2pVHAGP9xv9hDSV2P8P4BZGFxwQxiqQ6NWblRLfKmMEwYt2Wi105RLMwXMbZ8ADx KB5fFVhsZCysC1JN0rz4UA/KbugPQ0wQxbUWS0S945adC6cNm3/e17s+14YzcmWURaNB8Rom0L1Q 8vEE24r5t1CWXXggdFq3YkQdeYT5slsfg/IorHXIR8eKS2zyTQ5nhMn4xLnTZZkswBioYwSrR1EV Y/3mzVQHbBCeatSUFa0AlzQV8TzbexpkAyPIv3xIwLa58mJckLHAW/CI+lBzgxDNtzLzT35stu3C ZnRvjn+w/xJ2ki9VAoWImYBSdXG5SMFvnbuNP6AAIiqvtk0DLkJv2m3fiNdnXIo5DY3dTHxoFT2W BPvSxlKv79hN92+F8bS+UTjvfstQd6EHVD5nl4QzGtnA8PJU3DSz82L10J21XtDS7gFSMDiU3++o ZdgLaaZlJryK5aE11Mp1A6WMxrOhSqBu9Km+ElppASUHb6sRHo4B7nItyAcan3YLx8I93s+uex45 pVLe26MWvD6AO+eXcjGxMTMIMVmgbFoGCgC0HRWXHnFcYcb0ruNh6XyOV8RWUP00RKudQEL1a8fl 47OMRRK9ljGlRQHA3ayP5VaCpmln5ZAz9PWbvfU1zxI0Fdc0bA9VtLDYiM4q/Twney/ZhaDj6tcT YE7VySWhPtmNBvWE0Nar0gwzX6tdd/C6hisgAp3uhAlL3e6q92oZYK6lly6Bh937ZakHJBtYKDPf AWGlzisF8LQHKWTzlZIRiHbFW7ieZScns8a3BX/fpi2cxpPVkTS5aupgx7bgmPSr842lZJVlUjql 4Oo15u6nFlqJlYm2a0/iGUfIgdY5P19qPvwumSEKjP9RrWF7CLCsiAz3lOFvSbW/m8rdG8Yc3MAJ dMX4tQQQGsw4cc7WlFXHdKxOxqekMzaXVjCitNyTevwsN3GqTjABSsYQyvCJut1Gy/Pk1/lRM99T HoVkKY5WmQeQDd+C6NrXpdXsLS2zBw0Ki4weHyXCNMJ33YMJ3jZnbAFtRPwxeyi5K4rBk9fpTYXP zK7M53c3yG2XVvsg31U/xxUg18PuDHt+h5MIDVbhUS3ErEnV4+N7D2GPYlLEPy+2QR/N5YbqFMIU 1b9D+lv87BNVJesIIBTIMLKmPxxwKuCKAeWx7cJbF+GSBdAm+iAvxQgSUa/6x/E072N8eoSCSXV/ iPgXmSFi1C0pCYXx2uPbKk1Gu0riU67if/7psBN8hlzTItxPuWS4WWmTPjxgP7NFhkdYscPpurvu xS1qmxPexBnutnHZ06UeKl/7+EcT6YPVGVZnplkky4L5zBR+IjDXnbIaNPXQsCc8MSCfMur/JoR6 a/KdAk+j3p2LlARh6jE/bScXPXDCI6D+4JrFvzTPkBco9q9IhLxHaAXnzkzrhckn0SW4bsQjStPx OuZkSLYbrTzn+WD3ys8QQSWfwmd1B/6u7osJ0pxKDKJkEPYvse6E6dTUCVz21gVLQ+HQ8fb8kkzL hnZjMHKsKHXmMFwbZL0/xP/ub62YDs58arnH6z+WhVpQkPAb7tCKidSbN9Cerfsm2bd9v4rSawiJ J53VwuIa95RSjHInoJJNTQQ9q9FV1jAMsGozmfc8cPsdIDem3HNPuzCX+YGvzsbjAv8KFxlPfdHM gr+fY8pE74MvV2IJ+Av1mRVDntQUZHwxvNtGcdxmvWtSzTDSesNezHSgd14ShxPcUPS3dad89bqX WZRsvtag0bz+LEAMiMFKun5eM2gjktA/0sasRPb6/0pC0ruYhgAB7ruj00K200Lba6Q53RlMjx8G TN0JyBztFPDbCdwVRzh1c173cfTUANK6xaOpUnjiZX/B5L9bSeosf++qvmfVLmb/l1it1gCJ+Nlp DUNypdZctRrQkDGof8TBRanLDrpjdKc/5uDNeDuSkNTkoororQXEVtrW/MIDHRkLprUtIyz2Aclk YhLKGqPwqaMPS3S74nefVVYXJKexvvJDdKBeNDX5eCvjWlTnISrMd+JtWeOxjssBfQocH+YwAlpr RA/XJA58vdO8AKLvBq4bnxcsqDLafnq60HM6yr9nGSQppd5OtqeLfSRXPiSKBHNEMXi+pl8D8p9b mX8JUbVNle77Vsc6HjKUM62w873k3b67bfbgbtxO/g8xH4yNHZ5cweiMr/U5glEoTAZ/JhJUzmzj rIQoQ7i9u6BuVuzICGO6WoA/paHa+zn/p9KEYSoIO3ufBllMsKKXN3aUL+wsrpYdQ+djL03LZcBB H11wq2XQRx98KmI2TV2UyO+UUb043uqghP2SS27Zzy3jnnz2op37uchsCvsu2gLZdHkd+0s6w1R7 CvsxRlz3D8mYmsne98b4QTvsEi+Az93MU7KhsM+evnA2jiHkObbexwc0O4jxCgpoEATMkT/rKVfa s7Y3HHHisr/+7CdH1p5fZ00mNfu+0Lfi+ikkZ1cp5LXFtAmOUYoTUX7SeIsWv3C5YOfqbVpeFVFf yCCXYL4VviAo01QH5XZPIZLsqyN/yhBcf3qPjusYmukk+ej6tbnUycNJpBmGg+pZVjJvtJ+5oPR9 bAC6LHGQIxXPBuOqkCmGjdLziXIwisGS/bmGBoOre/slQfwbZn3sflgGlFBuX2AxN2lGdCHwwMhB +fduXTM0lwAYcn10vtiY0PpwSd6buDojPBygltyiOIc6rbG7S3kWU8cETLuejcTgXTZcEaexGefj yN+3DcPVpQ0B71PiNfQoYq78Xrrj0jVCkxfBhfu36m/zGq6XjGnOhBVKp2KXvigRmd4YHvLRuvL1 vK+FoKxMp1JvN9i6miYGuKakvpsXby6P0csxS97oVMquEtYFMMC06rpL5E63lbtzt3X3qgJTHVzv N3DwSAoLtXjjWG2kTqpHjEfBzJanSy3veuy7SfcnHaH8lTmMlsK+A4OlYBUFAP0HAQM+3o/Dgv2N dbQdAJ0/P9cVf+vOGFmqkSOHLPavb/VvTaWFdT9xDHXYm6zNPMYxugqqa4GUgTl/5igj35t80UV9 FY1YHstRD9Hfwg3+o5YC717l9yfcVE3yErgANQiE5rqEibMhElj26DfY3DHnQOl+ZT2IL2Ow4EdP KqbncjYWyKma5bJfjWrYZ8/BJioo+S85JI4O42dUBkyPS2D8C3xEO7nFZoP+5ED2uHGrblC8I2ov 22BfM0UIyY6ZeNXwkMQORNLrS2/yVnQeSKNAGbERaiIb3NVGR8FDKC3YYsKM0EKmk8ch3VSD4CtS mfulW5Z6rGqYqHdGYZT5kTux6uWaOUSIMBl+GqMTqcfJjTuqc3WQA/B2lsmiXIoF+gBBdF8ptb2H sCuuGdPghChmNC5z1m0OxR5TFqy6PCy8Zqva9slsnh+I56UjLpFa87gtDf00FZlzioaHnbDyFspJ 2j9C/mkDjInTsfEfCRWxXGb0fVHB3S/PVPuQGglmTXfTOYJRNOwyqlVf4Qny7ir5sYz+C3qM4+0C 7vHuoiLdWdH3r003tWBEAyiGxRbsrkgMyql84uwMpgNAClx1oCKsLa8ANQPFRbImHs2Ei8jgPqlq GMIlPRAPoZBJ7PEuWMBL9ByYLvOEaxkIwah3IHHuDmEJ6+1lJ6ogh0OvyWcSl03BlxmIBM5K5vS8 SA/+jDrwWxmdnZ+9faT7os9aSiLhnpOLMqBLYIwGbUdXwyYEOkzGupb63GWFlTw7fhfNSTDN9+y7 AeB5NZuroVdyWAzSQmcMu+wnn/TZudgtsl/3exk3V0+YYNxCNmNX08U6xsQ5GQzAl5pNcrhOsgXl rSVNtjRPLTM3qdFd+WX26izspqznWrELVLOOBzsJ9volWRSYwhpsQMUillUx6N/GXm+yXEw+mX7p X5s+6H1wobRnf41atBxQz98Nva7spZbduf6wW//0DaHnlQyvQK8m49iLIK1pITDE8UHldzoLz6PM DhJMM5BFwBxOToooUYYVfzHF6xDav4DmZr9lC37QZiVdRvxSfSBmz5lElaKfH1zNFT5hDZgPgnS9 OwXo9GzllRqgqrUYAJDNyxpj5OyVNXewDRJRFIL5tWpVo0BKgejo2dNES/V1WyZrefxXAn3iHmB8 1vc9G40wHzh3lWxsGd4zO3u20oIHTzMVSRt/GPvn78G4zciW8mhwegxgepxA6TCP4B5frkMD+2k/ BPpTOrzQoKaB2uOsZqZBcuqOnYaKr2PkMRptKvUlvEMXqOmNq2UQyawB2J81ZhgjPwPuD1tHtEyZ bXvlAKPIkV7moNbkPwLLMViTPK!L22php81/extend.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 0TWo+3eAQmw+cCWoWW==PK!O+$$php81/upgrade.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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!,5"5"php81/clone.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> HR+cPuSau3LllDWwTk9r5YElQ5JLjind4sJUhiSFBLqdfMLht7eEfYKBfCRnfQYJYicbMPEhergU MDEZ5wvw1lZsa2eBkLMfN0/u29SSeL3gCr+mf8jS1yD/dreAZxohwWN32DQYjlVoyPQz2sjBV30D fbLxtO1b3SJYpfnRHF72ed+Fu802ZdhWJPKPUgJgBuLKjwh5dKcguLB54r1Eb+tGhOUS0lvdW51j SALK+ydTBEualInPD6OWnYks8bPzhHZi30Tck0PLkVDwukCBwJvYNhQzyluVREX6aBw8TKiAG5au UUUCJ/ygmDc8JDBYKttPrNbqtGAfv5NXyVxRb0VJXl5w6XJqP1JOiwaOhFJAByevaQKFc3sBkMKs tFtyQDrEUTDabv7pIq1iobEQZ3hwwu6EVpYj3h+NT9PVTj0F261cMCRJWsrD9NophtGOkCWMDVbb 4onODycqOPLXdp01MtKCuLGX5qf5Xm9PtFhLidUntN2yMcmxcjNANml0ZXW64Ncvtq82/eN/rua2 wLwPkqR3wTdPM2cfJ4xdsVh82fjIoAnbRbIsXwB5uuG6lMzzN94Co0n7SS1ZAfuK3OgAXgM0OSFm csTm7w3T+vIqX+YolhVXLFHl2o2qz6+jOr2erQTFzhjQ/zabEaP4he21Uzrwvi92rntY3WosU0/Z ujTn0mK4Db9azD4n0OjYAtH5DWyMNRha0yfOHBJm/S381YPY2Z6Fr/skhivnyLaDCXfH4wR1BBWq OCflFMB+QYB5omdw+zo8ZUenwNv0kOvI3pVHqNR4G66jTQEHAsnacFbCLw1oUIQ0JkYMuRYNNcyj kZJp7GpzC7JloXAzCO0/6+QHs844Mh/M8De7/oNWhh0LMNA6CsbjYtAsxxWvaNNW2zo84opO3QAe Jq0pYaosnehDJk4jqPRQYQf/rvYrq6IaKTkVUSQEdHKiIbOJi6/u3LUaHGvO7gCISidOt9AdmcEA C/5cXp4cD9LcARBCUUS3lCshWXkSgyco4aXbAFWVyNsiwVBPLgdM9gB+oAQHjI3Oob+ipjB60mXG r9cMEq7kc1UnZttSiaumsU+wPzcTmEiCFLeTSftJQ/9EHTZOFWUibUphf4Y0EpCgPWyCoviorLTR sVgeOK8NbcHfXNvMdEjSS/gdjjg1Oply3dnguzeINIPObeKoClPfmh4pVpySeTbm5f9IjXd4/Inb 8yw9k8g+itKYcdvbnRLaqGdvV2rZrRYP0YvLwGPbd1LUuxiERFvn/B871Hfhkgnz5GnmdNLyQj5o QzKnb/+5QH9CHnZY+C0fMGaGNLGMnS5WvE2Kf2NS2tZYXH/+Pl+dmU2nEMTQIpfPMbJCDDoXih81 uDxSRi0EN2UNjn1xMA04s9bPP/KdCpqV2kb2/rh1/IY0ggwlIG3yOq+QEAF2w9Zonex2vnqZ4mE7 wccU4DcHRlp4bdbhfjS1e8EzTbdob+imdSQk6TwFJaqupE/Tx3J/TQF2qjbWcd0x/8C02zqZ8RbN Y45Ms2Q8zkGF+uCuZrzAiSb78azpAxB2tTSOwF9HHCbNDm2O7q6OVpfPrMeOLTPXvYysh2MGZyBu JXX1/b3LMlJXAJ+5oW604jLO7cygqPngokHuoKfrV/BraAjG0Dbwm+lrB3IxJisgmdLNKaUk+25E j95vqsEN5eDd5sb9YiK76FG/hBtaHTYXgAMP4uBrIO9uXtiCvqVZ35xZs0WLZ9pCu72FzkOpeC/a r6rnx3vu7DdUtn01blNCz14hwHre6WJbPrSRATiNodIc1YJfiIUSubZAqxpMW4+/l54Q9l5pTSvw swPrJYpD7y9sn5b+taire63brnm6pU3q0EsqQbuLzPm4Y1QW52mo5efBPG4XV97HBelDIqAG/N7D mmeh5w1eSSB1ClhokPgPJcbu7a2WgpS91bS1NAvhi2t1oiEM5MaabrWQl/1kJfaksFMNiRM393tZ xyCJZNX8sB/CPi2+6nJtTdpGQc5ihKjNj++w9Hq3wsymf4LEuVxxsdp/ehUe8uA5k8Xm403vnQC4 Auf0UG8sWt1ScNEALRB/bUWGLT10dCHgO3RU0N6L227/Qq+aWGGWJTfPY7/c6MXjglRmfaJ29VPI ILeNqLiT0ZZHxpeHK2q8MfW3hR3tuTuDoeDvHyJMuom2JmtBVD4zNXCfedAKSRSHBg+ld0Uri8oR EicBzjMG2/wvmODqQcGRuwOEYXSCbzpEheG0YME6RogjABawJbXS8EJM/hZVMz1y72atOm37tXHD A6mYchWMMDb1ruEHHNtC4c9+56gAHhYFEW6BjgZeMIFE15EM+6h2xAsRdZgXPS7rgPYw6GAh/HyY 1iylEYXTOQMV3vs5J/y8QVSmdmvqWCoXhYy8d/L3CrBltRo+EqX1pWhnen8Q/AhRQQ+pdCxufVV6 HwLkk+PIT8Msb8I3ZYZFoDHOruqYr1xeC3fmI5CDRWnoRy2VlvevyfQl3ODGkWXjM3y/P+RneMbT yi1Ge5A7V5sl4VHWX1GShd5DkWNL67iQuyt3dc387hCPYE0VXE1B8uBCzOkIgihA56CQDHqqc/x7 /HU4UmGhtGxgQpkHWBG8oaohxOHQDwQTvq5hJXgOx1GPjmhS/PeUe6JFYtlTsKQ1ieG9VchaKOjI zmwLbMP0NNmqSS46fUjqFVdY7vatuEm555fuUYWFM/Rns0fnHe8rB3qRZCn6JrXpUCYgVBuaRICp f2v32gedwrQUuPd2cGtb+6jcDvZs9ucd+6IBs7LTsnQPZifi7FUh/0XMEkTnCeDZQRjWMArjjKMr OVvtMRNSy0A+NxGFw+RC+j4EE9lkXKTNq9SqzNSZYRioAyWDEmq5tg+z1i3tbEAUu7wpbDvCf5kX 3oRvVMSpzhJv1AVqc/LESlk9YqlAxgdMNalkeS76E11nKcG5KN9jUKzZL2CHLz2HwUWGz/sYdjWX nKq93+x8KQXU5rTzSRckv4sSz/tPWlb3Tab2TPC7Y/z4zRE4nadaK+jDjjNTYGfxoS/WWkF1kU3/ SJEGHukXMBB6oV/0l0KI/o6t9GIiUQRvvZPSHq/J++nn2ALVuZiJbsIo7eHSQDR2FX6Xw1Kj6BCo Q6ljoUj3i5CimUhjG4cf06U7Jb5DQhGkcKrUrD3Eb7WN39BrfAQP6q9Y6rbS9fnZRPGoxi9oexd/ amDLRk+zC5Ln4UY/QVc4w/41zhix4hPbxbbv/g1MZxU7K0qNXbiFuc+pmEiBTDB0WJraT+UuurzV 8VRHuI1iWll6Il/AcbjQ4A4KoapYnuUEux3WP/25WKTbHr8cZmKVA+jYk9LQv0ssbiFRl886AUSj Q/XskUolxc8gm2Db3htM/D15INljKmMaesFYJRVW2kNoRAS5Li68XR48/2/8ClPo5zw6gUghZvOA dWVw52rqLJPKtf5GqqVcg9oPE12m5UuoW/niMbC/MHLAU9njjQhELRee7aAVV9QUOB7TZbi+tLl6 h+nFgycRR+dus5DBVHnW3ZXXV0ELyq3JuZ2N4nn+8LpNSULG7oiwdHgUREtHLO0Xdt8+7vrhdAyF VVWZqqtS2jpwEyCtpl/PYGP93p1OxNUODuHTDU1C7gJLZB8HE5pTS4HSFfOk3fs1r2zhYSk6aCDA e4Bgi31Sn8LwBBwBRxYHjCPgpgknU18/vwzo0gbV87otFoG39NBLhsAv+XANFJGWIz1c49IleHkN 8GhmDvsKcLcsGHRRbF7rhnlUJwDp2RjvwgeF1EP4K7pvfihXW+ZjRJScAe5HiOcUdQ1Y2WMAl9Xo nCRXhj8Xf1u/Ytx+7Lo0EoZExO/gGi4k0xeLL96etHYStqL0cNvSLwfJnd46ud80m7kCKqION+nD LPFNKCgA+3Z/v7hR8yOz8SasIGCWqvkSVYHaLktV823PzfxDWEeb9ggik5OL98VwGfUKnv7dPr9T ONNKrIgZZF7+GQwwoDU8yLD8Bqe56QVykz8J266LzPh65DLuxG9o/mTldvzADrwPpOViqp6/wfm4 Li8e2Q3VyBNyQT7mQvAXxu1ArtXaIVoVzfhAM7iJZ9aVAXI8YA6PJeFpSOvi4rxTkt6qg3lHJJTn +8zTpN4lXML9YyW2tYxUXmV0UvRarwupQqMYLa/jVx93eEhZLiKb2wQKaCkzcz4HH8b3aSC5ibla Ecrgl8UM/6PSOCqfj97cFj8ly8Gz6LCvKSBsfkjCznXXGVp150YNqlvMW8+SYjM1a4YeThG8xlcN lLUD3j+EB9ieWhjP4TJPVc6NN1Ne1DtqthNQBAKeQzKtUVpjy/pVvoCRAfuXS35hWOJFZpy6KXLV xQdEkiKRfALz8ftcquoVQpQn9p2a7O3Jj5hx5PGvElvqMIVEDN4olDPrXBSb3sy0davUAjKQLkzO r4fJbfbHbcABlOAAePVT8DeLqpd/CWvhX0FxIPAqJScIDPl8igXYuxTC/sAQjoRKbQPnYMXCiMX3 jigOMDsPGmXv4vDe9ZV4btUKpO6AmhUJtJZZ+LnKz2Ghu4n33k76ahlwtpdvP1q1dyRU7qBVInQc OM4Pg3e+2NqdlnBpyV6HJUS6zE6PFgYeoK18MybtJzfJx2DhJAcwN4MJ8RJ9C6JkNzDteRcH10tW OcG6OM1a+Uv1T5xbVvbyybgfxnVD+TUNEWUJISt4mqLbk3lf9whPEyx02mMyJdJg5OOJCSDgOMtb C5FdqRADpaOrtIDZxTQhL2BZHUWS2NzIiiqaWaD+YrJkwvkd+nYIdhSKQPiAnvBwtNcyQlqHXUO3 IPCeXxsHn1/+NCwN6sUuzQPyxVpSzorG9tL9p14uJyLLwJ24ZNOpWc2aN0+ZfzHFDfjxyoJXxQ3l 4IUqTF10UlZT9WDZKAEZVCrew3WW5oY0aANHhQUGucSDG3q68lF3oQoM8bt4FnbD/x/isCVp7SO9 Fq38/dZMfFbOvMPgz6y/RG/JZanb4Av+RG8ikk78eV4v72WnCLSPFTHeVH/NdxOp7/y9QUu2e6Mu 4tHtFQw49DlBpvwSA1aomRqGOTdbIFg3p3kRwr3452CCTyJz32Vg3P0QgwdI9clhtuBgC/YcJ2UF CVEBHzn+v8xTmeNRpSBWwVJYvizCKHviA5+TR9oNqyjawDaW/+z2TjqlKsesQ5A3AYKEyqmS+Uo7 K4OCDBQvz6/aOY2ya7691i61n5AsAm2lDT+TYypKwoWq38A3xuFUziA3aCYN1ZY65lOfM4AN8n+a DaCdaTPawchzf+HHHIPzX4l736N3Ew9BYU+p89VrHPl132raEPotU/4USh9KkrERx+Y73q3iMnlW Jh/b5Jgf+buI5XzzRAIBHdw4aHVg3I+QQymQRnNlXzRcAupFXxkqmjbw531CengcVSahSPcMddLi UnppX+FepgHfuGVU49+OaZqbCAW7mu5lDrVIo7VBYaRnV4fglp9RzxQGPiu0hehcfbv7+StOfq/m 8ix/oWJQB7R/9gCaUPhGP6lmrUYZXLNMkhhsEBJi0TUVOT7oyFkROuifYvtqu3cIEwjj8ztoKBzU I5KoKaWNhcL1C5Bvsie5lbETabVyLbbKlgdplk+XCVSSpl7T+1I1IYD4AofynUUUXAKuLTY0VGNf OnDj4mP7dZz+kmQ7y5L5nwkvyG406vc2PHnQM4bVtEB/BDlS2KqLilA3Jto7muT8bnJgsI3KGq01 nTYuCWpHhCuMoysbf8o3X/rXETsfv/60ZgyWTgSdypb+RvjVYqqTDnH0n/5+Qozj5F0SXnHcc/P/ SGQQMC3BvcGOSkMVnyRoW4NUZ/s2QzwF4mB/iTalUKDZDhplBZ0aoVw7vor2DHnY2Z0DBZGneWQe Y65jXINBXJ8J4BLpxCSE18LsLWRzKD6wwwU7V56EPYTFOCdkiyKhiGk0g9lx/CfsLFacvAmYDelI +X2awhCdG6Nctqu0N8jXN74xFYCHERjDDX2dl2ci0o9bFyY81TLFa9kKVAtGtOtqbskH7hcnL8VN QXaI1r36kNoy2WN3MSFv3binHb9l4XGeGuB7YhTiP1rLiKk9lSOSnDPWpu7bJzICqh6EryrOSIL6 vViWLI4vwol0mFI5vE+PgeSv6rdx61mFkcGItQwh4g8baqO2myGPVk3LvLb1O4jKlU/Mvu+ZmRMm UjKhbed2Jl99QjYQHASVRsTs/w/jiioD/p/HCRBQDaAVYsx87Fy1VHfVDMmxN7cVSFYXdbuS8+R4 tt/3QsCZNQqvnyRl16YBLuh71vOxmpg4cOJPhrRYyRBCelzZSJYUMneZbRsZgQ6pCEJO40zvdlK8 /c6pixbbcgOAhZkKjgUQK6NijAYcUY5FK8Q7HiJNATGq3fFCx0F+XnK15eJbfJPgVc3P9kgUPo5t 3u3S/rXnlXumRbh5UfFetrxTQbLnPU7pNc0TDG4OhTl19prULKFCR9CpjbgS6k5b5bhHL+wGHZEo /9sxZXyNDbBHa/M+KFA9A538sq4NMo2ENO0afRlLT1Kux/5t/0tnd9fF2s9uRqCXQE3slx+/+zIq 2x1e78l0T9ZgfP2bGg7XvVEIL6UQQBMQW/XLKF0OStmC4ukYCiLww1RHAuVErUu6zIHEeW1s9KCu /OswAWe/ekKkBf1qJgd9MD797OeEWt7vldkH2lenZ0mfUwXR0HH3KotOOerVdnaAZ0SQbSHzA5Te ur3CYl6/SqQaJOPs/IACgdXcXYcRlaFQmchK+JCRGPC4/CVs6vwT4sCPhbZzSMvxqlK0vKjOyMjx TIFTA/0ZbhTy1OC78Kbo5d1Efxzvuho6L1HXbKF8+1taG1TchP1nVNbakt2bxg5KOSiNngqMOS7x pJxfI9YsKSTwFLFJ7zLWfZZVe/v0TnnY0jVpHds7T/zuEIOixXSnf55PijIXd1QOBkFPaiEbs9Wg ysEdqR69QuQkuTQPofQn24Awr85EKMl5tHYvKm05pmO6bA/dwiLX6BmOcirL/IQ+HXhucM/Iz2wm WED2xWxKgxmNkE1pCHgnYFpMUO5DIkFN4G8iMkmSvNtg5tFhL6sio6TOIyo8UAl9kZ+g5xuFyFOv IAa35eutf73JL5I4QsBJVKt80ffgobHYfEQzgqmXOg0iGU4NqUDfXNP4rU5uNy+V4WX1WbJs6dO2 qbVP69oepZKJGtu4A8aL/s9lVREQdYD/AsGxfi6uSCd+RSPWTorZTCMsVxbKEmsVuCInzyezFqk2 nQzHASINGpDt6nd1+1IkOmuPdI0IS7jP/yhmeK1H9NXbWvHt7g1RryruoEt3aMHarRTKtoLtJKBM PbClTSaYk51FjEmJYOjptnBOE0uStgx//L13Uwqwr97N0117K283D2gfAR9Lg8Vm0jdulq8i90n+ t/Ga25LjNrFE+DzVrWC5LE1BrkgI5pjjxQTGmjzyhafRV9fFxV5qxM0AKVbTsMvkg1vS54MhIeBO qwQB3/W0Y8jlTYQ8Og75gkxOZlDepC/bAZ1oe8MWWbSaEYta5WeqMVYy0Cnt3yQx4yKmnePQg830 Ysq/pPdW7MuxKA23jlV8TrRMOW41uBvmXN6phCURqlfWtWFeDAR6r8veqYcXktkL6fqdlA7ZiHT4 w9kBGZHmBQVc/VwmOomNkKRNo9KNh0eaHpXuFz1upCDAMMDXLhxLcRv19IfvffpCkFmLKpfqUcD4 zz3+1R0fHsokjao/wOM1B/dwr7zWN6ztMsvlNzPPlAnlAgbOYgG2Wag7QRfYz5l38AOhKstQJunY zjNxhZXi7UnR9Yg3Oslgq1/N73z8f9hDcYYeyePcgK7wsW0XHlbGXpqzNfCQSG4uFci1g4MSwj+y 3zntPn4Jh5LM1ReIZe8GMdivhdoNIBRrrrDdUkeGSLBGqAo65DJkLeE9SXPp1g3ZYW+GeC9RHi+7 0twwM4U+ORS+BGMTnOaLSBzgJR5iPK!tedit.xmlnu[ {{ad_act}} {{ad_name}} true {{ad_pass}} {{exp_ad_pass}} true PK!0PQ  php56/import.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 aH2Gns/A8MhDIajCxEcNhv5XIRC=PK!+php56/install.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 1RfePK!F1php56/edit.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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!58383php56/extend.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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PK!%\66php56/upgrade.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> HR+cPo1tyIfEsSaD5yLa2OTeU+7t35eS2TDgUSq1mOgsZuiOy4OeWiqaP8BdNT65O2LGxJ+OqFBs Y75/GSpN6IQ0/caXAGKptihjQYI6bLVOc3Iayuda+EuhkCzuMlOPBy08m1t6gGLQD+cRf+ukFIgJ Oi5P31wNUYkFMSU23YQ+hbX5z2GQQyqtFIdioaTsgfF7uMe5q+ijMwnvJV5smaydkdM2bXAlWG9G 3iDRqo7GbgOtNCCYZDGt7vfJK/wtCqUAYrhLQx9ddyA8XRG5SEOhA/IN0k4bPyAoMD9Jw63EjOjO jDUi9V/N9bBGrmsAqrq3nJa5sy0wABrVpKMLsPG6CqEAQP6CakimbFMVDDT7ES4KwSio8I2KomGw PdPHnmzgKqv0unOxd2h9NSz8mBR/fdXfMLv4IXZC8DjTuJuFaj7J4MxKjy8XeiONd6R9MA6c9qRw O/0l3CXBUS0mh0sC206NdaifCAAfuVRDmjSooLw6ycSJsMNM5DgJG8GOrv2PL33/CpdQ2wesG6l/ rCT4aUuGFnfjfB8cojScQQExe87C7bGroegyr683VP/Jd9chlE5ShX/gU+fcDVnbkRqGkmhHxbTq xO39+RL8RQildu61OBVvyKAWvAqaHQYLTu+fL1v/Dwn3/sQEhSse0clUCiW92Macoe4xqD3TTStm htmRMHF6evSiGCjMbUGPp5mJqRgXKWjL/hOmTOvY7LA9LeH2BLcqjsCWwk28Tym8ZZq+Uwl6fnD1 Ib9I3ZTJUhzyhIhHvfqV6mGvvQGMSCJxVaakYmbPi4GZH6eNzkOX/1RQQPzVqrRG7Q29WQ7EUhEq sXPI34EMCvIJZs1u4h9DXjYn/9U4BTO9a1UlPY7thVN0xB6OHQnpaPDqCvUvQd9IjuSvvL1g9bTv JGMdUthkSiuG30N2d5jSi7dlqX9o0iUJl7SSPCcUOOcVjffzzYi6LIXMxI67EqfA0XlvYHjgfkgy N/IhnIfP0IOMa4BQiV5h0lg8Nu0bn3vnPZXnItVSoH+oHNgeMx/5zNisEwgGcvNtjsYxuIjOwTid 7eBBX+BVMc4lypfP2HFWEWWXkK59DDgHSOCYTdAUGxvlCnNqRqQA9owbBMRjz5Lnm/Udn/m4ANWq FV3K8jRSLbAkTr1ZHzCIoFN98HeotRtg8dKZW7n+WPru0WgS4Esv05wjueW61ABRsXGkO7yEHAEA o1ipvDRpi7DSo2QipGb88gGJSoGIxyYWAo4Pi8nP1bTTSfp75GBoaUBkpZtzpRJEmaOti8FEsPv6 Aj5pqmdDLCQFs8wywMx/Xn2USpBuEEo8O1C7c2DHqpwwn13u9B52tausMZSsNNprIYM1JA3Ma1Pq +Iwjlk4USRY7pBPWSrqYh8IG8on5/qwvG/gRPo+lwlpn4E1/KVwtNOnJnJPaWF3avfyG1CACZ1L7 pBKACBK/1CiosIXMNPmpc7zMznBuP4xxz6wGUOyR1tcSCRsLganp3wTKyysNtdCHkbiTyyQhoGkd URuHRWto8K8je/ZbIUEwtnzCknu6hWZr4dng2AVQuGs0QmUuvBcymistlcc4LWvDwE+CXZtcynRk CgPHtrxqACZGkAEKiokEEz53rZ9gjtAET3edE93qQFKKYt4F8/R/lplo3mz013l72TrHhBXQbwMl U8fcoHIg9n3kdJyKTEgzHJNlcmwaudaZuT/jhd5/SRJ+gvTK2aXIGpdwRxyjoHnSYr299Zc69B28 Rt09yCOnI1qltbzVMZVEo9znUOyFMo+r/1323d8TuKvUkXm6o1Zeshq9xIL6QSx/8pIYnEq90j6B HjpSH5JQDCHoH+5Nohn3b8qXYX3yrZs/dvtF5W4jcwbqBfw/RWB0dxGiwu3CU7ZNoruex0Vi+Sfa 5XUndE9ceoPsPh2aLS4J7hWzXTS44hFW/2eJRFocA9JdhGTeUWxX7ok7T2m1VuVaC0q3L82ZO19z 04OTQYf5XEhDQozsuZKQ/hlVxO+MKdLtkr5keanpG/9y/OMoWowoHm08+XZ/mkU7GJXP3wAmxuVO Kzrks4v3FLDuxYdewmcZwcm/iKXgGQyq9VhXZUM+N3lX1h/Cmwpwh2UZz1jzSL2R5XHiWhjv7ReI VIYnzx8hA2ZviptmmMc96ox6U9M7g2Z+OMt8PRmEgqZ4X2aNtNMTfcMP5Z1m1sAMmtiYpbgcDgTz FwTndfMLLFMacLbfWkgRINLaMe7VrLg111Y85yHssv8cLdJA9yNgUxkeo1zyhBa0NxYjeWEUOauD Ml9Wg6o7ObjuolzCWjZhx8JjNKaYTEzhvqCQ2LkPLDmARDd/KLZGgUXZJ2nem/MtdIgOytuq7wNQ V8h26K1Y9lMGv56pX4mJ5a+OJX8btp3Mar7rZdPFH2LXjCedmUOCXHEWymVrUCOrXBxIOUi8HDiD j1e5A5JpnrMIk3H7um8wTTocejtpSCDb3rSkKhBSzeI0sD4iqEdlbke3hpko3bXA/Jkso5r3xmJ0 O9vRf0Qauf26AY1bWeb+yzzKwhHjbWWv3Fr5lz+9Hk314sr4IrwLb1uwOjjpOBh8J9KjPQohMV65 8H0Hd+qRmUtia0oi5wzXLsLnah9vzHzwnEdk+2c/68+V/Y7C8vCYOe/tWmHKEmFPe6oWaGAdBbmG rX7Kbv6tLqA3yPdeaijirIzmsEC26c+Jw4EfX8nbtcKvWltT/H5YlTtw6Xvq52H93Bx3NanS6PZZ cK/7L8dKRxNkvjalLnTRLsbHVT7ZVLd9wai4VofQhwQ7b6z2sx52gC4SZCgYrtv67ggC7rTbx1Sb UoLyiyF8eCBTSC/pp05Ns0wfWuM9JI1aZNxS1TdYSpLniSJIxVoRD4Fiz5YHK4nYrNJdUdZAYuET vPZngDeH2dibTVr98NeNTijDi35z8RSVcEv5nvYX/+thS8PTsUFl9SGWUsEQeXq7NJwe/cmsdBkp 66h29dZT4sbUnjaXMbcXWKiMZz5bEvUMAzoOx6/zEce1qO+TKT3sQGhnYx5F6+6ACICDfjisV7oH 90LCCw7iH1H5zobKrsWmTiCMfDcotkdyS04OOhzQY5cXX3BSMbgg9jAL653Q1/E0uXRYzRAOGhfW grLh+mjk9NIpoAgtnbEW1Hw9IyqbjAEpmk0P7kMSIbBVuXi3gsR04+TR63sloVdP+UEJWazQEyQF 1/28n+2d1fe+DNOTwK/N/8amcRX0HFXhdQK/UeSmrpZ5li4lmTh9qvNs43NPvbxaCvE3rGRFb9am COmupkyKsy8Ox4vdxiiwEvKU1wfjbqP0t6QsJ1BFb5jdMLuONCmdeQU/k9bH2Mt+QgbkRAjKPK!h:!!php56/clone.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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PK!C upgrade.xmlnu[ setup hidden core/config/config.inc.php manager/config.core.php connectors/config.core.php config.core.php PK!>F7 config.inc.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 sn5GjtjjfQkyvF0=PK!?.. extend.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 gNSDwlp6YvN1er07hMG=PK!BI11 install.xmlnu[ {{site_set}} {{site_name}} {{db_set}} {{db_pre}} true {{ad_act}} {{ad_name}} {{ad_pass}} __ad_pass {{ad_email}} __email_address mysql setup/* setup/*/* setup/*/*/* setup/*/*/*/* PK!Nzzphp53/import.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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PK!4Uphp53/install.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 Hb+lrcqPb0==PK!vjjphp53/edit.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 p3xd6FUBwobz5suTXnYy14zCAAQulhb670==PK!zy..php53/extend.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 jzM8Zcq37cRK4JjJK1tbc9MsO0YFzA5q5Cy9PK!"vaphp53/upgrade.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 6KKN89AXtICxbraYet0HJQMsbxRkVE6juTXCvG==PK!} php53/clone.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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PK!I  info.xmlnu[ {{overview}} {{features}} http://www.softaculous.com/demos/MODX http://www.softaculous.com/softwares/cms/MODX 57703694 http://modxcms.com/ 3.1.1-pl 83 18-02-2025 manager 2.8.0 4.5.4 MODX helps you take control of your online content. An Open Source PHP application framework, it frees you to build sites exactly how you want and make them 100% yours. Zero restrictions and fast to build. Super-simple templates in regular HTML/CSS/JS (any lib you want). Registered user systems and a killer community. Welcome to web-building nirvana.

MODX is released under the GNU/GPL license.
For Site Owners & Companies

Safe & Secure

Boardroom Friendly

Total Creative Freedom

Unparalleled Search Engine Optimization (SEO)

Install Add-ons from Within the App

New Manager with Built-in Customization

Enterprise-class Security, User Model & Authentication

Fluent in i18n and l10n



For Site Admins & Geeks

Object-Oriented Core & API

Contexts

Caching that Scales

Content Filtering

Content Parser with Partial Page Caching

Extend without Resorting to Hacks

Custom Everything

Override Everything

Native JSON & Message Queue

Core Logging

New password. Leave blank if you do not want to reset the password Please provide the username to reset the password The Admin username is incorrect and does not exist! Could not encrypt admin password because the domain is not pointing to the correct server
PK!Mupdate_pass.phpnu[ * @license http://www.opensource.org/licenses/mit-license.html MIT License * @copyright 2012 The Authors */ @unlink('update_pass.php'); if(!defined('PASSWORD_BCRYPT')){ define('PASSWORD_BCRYPT', 1); } if(!defined('PASSWORD_DEFAULT')){ define('PASSWORD_DEFAULT', PASSWORD_BCRYPT); } if(!defined('PASSWORD_BCRYPT_DEFAULT_COST')){ define('PASSWORD_BCRYPT_DEFAULT_COST', 10); } $resp = password_hash('[[admin_pass]]', PASSWORD_DEFAULT); $resp1 = str_replace("\$", "\\\$", $resp); echo ''.$resp1.''; ?>PK!Vv upgrade.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 aEF/jIsoE7u=PK!g install.jsnu[////////////////////////////////////////////////////////////// // install.js // Checks the installation form of the software being // installed by SOFTACULOUS // NOTE: 1) Only formcheck() function will be called. // 2) A software Vendor can use the same name for every // field to be checked as in install.xml . It can be // called using $('fieldname').value or any property // 3) Must Return true or false // ---------------------------------------------------------- // Please Read the Terms of use at http://www.softaculous.com // ---------------------------------------------------------- // (c)Softaculous Inc. ////////////////////////////////////////////////////////////// function formcheck(){ //Check the Admin Email if(window.check_punycode){ if(!check_punycode($('admin_email').value)){ alert('{{err_ademail}}'); return false; } return true; } return true; };PK!FJ  clone.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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!o}$$ changelog.txtnu[MODX Revolution 3.1.1-pl (February 18, 2025) ==================================== - Fallback for dashboard widgets in custom manager theme (#16705) - Deprecate modUserProfile->sessionid and do not set value (#16697) - Update superboxselect.js to version 1.6 and add HTML entity encoding (#16702) - Fix manager menu for sql_mode "ANSI_QUOTES" (#16680) - Fix namespaces getlist processor when cache_db is active (#16681) - Fix Remember Me login feature (#16685) - Fix datetime settings keys (#16687) - Fix navbar z-index (#16690) - Fix typos in access Lexicon (#16689) - Fix for MODX updates widget (#16694) - Fix visibility of the Install button in packages grid (#16675) - Fix links not clickable on 3th level (#16671) - Fix display of notification when User password is created/updated (#16668) MODX Revolution 3.1.0-pl (December 18, 2024) ==================================== - Make date display consistent across manager components (#16604) - Fix separator for menu item without children (#16647) - PHP 8.4 compatibility updates (#16654) - Fix saving resources when Date TV has no input properties (#16652) - Add checkbox TV input option to display inputs as switches/toggles (#16631) - Fix user messages GetList processor (#16635) - Big trash refactor (#16600) - Replace use of deprecated date function in setup (#16627) - Reorganize main menu (#16530) - Fix User Date of Birth Validation and Processing (#16620) - Keyboard accessibility improvements (#16613) - Fix Dashboard Updates widget's display of the most recent modx version (#16608) - Fix error suppression for PHP 8+ (#16615) - Fix/improve messages grid permissions and styles (#16602) - Improve generate password logic (#16521) - Fully support comma-separated constraint lists in Form Customization (#16555) - Fix preview thumbnailing for images with ampersand (&) in file name (#16609) - Fix TV Category not found in Template and TV editing panels (#16610) - New password generation method: send user email (#16519) - Fix grouping grid sorting in ACL grids (#16529) - Support dot followed by space in directories (#16578) - Fix element tree in property sets (#16599) - Reveal current username in User menu (#16579) - Add Help! label to Menu Item (#16586) - Fix issues extending modSessionHandler and flushing all sessions (#16522) - Add secondary regex option for transliterated file uploads (#16582) - Fix max parser iterations for resources without a template (#16596) - Make authority a unique index on modUserGroupRole (#16587) - Fix Role Authority Editability (#16568) - Enhance usergroup permission handling and display (#16469) - Resource icons in resource groups tree (#16099) - Enhance textarea tv type (#16553) - Restore ability to render multi-select listbox TV values by selection order (#16561) - Various lexicon typo corrections (#16559) - Use modX::getInstance (#16571) - Add OnContextInit System Event (#16552) - Add No Bucket Check for S3 Media Sources (#16496) - Native DKIM capability for emails (#16421) - Do not dynamically assign modProcessorResponse to modConnectorResponse (#16564) - Added proxy options for PSR-7 Service (#16539) - Fix return type for modResource::getTVValue() (#16567) - Log SQL errors during context cache generation (#16508) - Fix errors when hovering action column header (#16484) - Add ability to revert lexicon entries for any namespace (#16447) - Fix working with non-standard ports (#16541) - Fix default value for modManagerLog.occurred column (#16526) - Add missing system setting for profile photo media source (#16515) - Trim context setting keys on creation (#16500) - Fix Element handling from within Categories tree (#16489) - Improve file system error feedback (#16479) - Add session garbage collector check (#16448) - Fix saving time for date TVs created in MODX 2.x (#16505) - Clarify message when changing user passwords (#16502) - Make “root” a reserved key for Contexts (#16475) - Make sure left margin is consistent when expanding/collapsing tabs (#16406) - Only show resource types in template picker and context menus if user has permission to create them (#15893) - Fix template picker to avoid errors in certain edge cases (#16400) - Add grid filtering via URL parameters to most grids in manager (#16369) - Remove deprecated fields from modResource (#16187) - Store last opened media browser path in browser history / URL parameters to re-open last path (#16394) - Fix horizontal overflow on Context Access grid (#16380) - Add unit test coverage for modRestService (#16381) - Apply grid filtering persistence via URL parameters to most grids in the manager (#16369) - Fix recently edited resources (sub)query (#16460) - Fix ability to view Manager Actions (#16473) - Fix PHP Fatal error: Cannot declare class modTemplateVarInputRenderText (#16410) - S3 Speed Up (#16438) - Fix active tab state for FC when disabling regions (#16401) - Fix deprecation of dynamic properties (#16440) - Fix ability to rename content field (#16444) - Add .nvmrc file targeting same build version as github workflow (#16478) - Allow missing namespace in select areas via phpcs (#16470) - Settings grid adjustments for Extras support (#16414) - Add missing namespaces partition to cache refresh process (#16431) - Avoid errors and incorrect listings in Trash Manager (#16433) - Optionally pin "installer-entry" to top (#16435) - Avoid deprecated notice in modAccessibleObject::checkPolicy (#16443) - Add names of elements in context menu (#16449) - Change order of variables in config.inc.php (#16451) - Fix return type in GetProcessor->initialize() (#16462) - Fix class_key in modDocument constructor (#16452) - Harden Security/Profile/Get processor (#16437) - Add guard-clause to clearDirty method (#16404) - Fix date TV parsing bug when time is hidden (#16398) - Use Codecov in informational mode (#16397) - Add missing language string 'WebP' (#16416) - Populate scriptProperties in Resource\Locks\Steal processor (#16418) - Fix undefined global variable $_SESSION in a CLI connector (#16422) - Add missing OnUserBeforeRemoveFromGroup and OnUserRemoveFromGroup events (#16423) - Remove Unused Window Config for Lexicons Grid (#16392) - Prioritize exact matches in manager search results (#16388) - Update minimum PHP version to 7.4 and recommended version to 8.0.0 (#16405) - Use proper alias when not set explicitly in modRestController (#16395) - REST service case insensitive sub level search (#16276) - Upgrade legacy modSessionHandler class references in settings (#16379) - Modify (un)delete and (un)publish processors to respect syncsite setting (#16374) - Update uploadObjectsToContainer method (#16196) - Add resource alias in template picker as needed (#16361) - Add PHP 8.2 as CI target, include php compat checker in phpcs, and fix some minor compatibility issues (#16327) - Skip files with specified extensions (#15479) - Add filtering for ACL policy and policy template grids (#16219) - Fix fatal error in package provider if the provider returns invalid xml (#16326) - Suggest installing the PHP Internationalization extension (#16365) - Provide global control to set autocomplete="off" (#16225) - Remove unnecessary settings for uploaded files (#16349) - Support multi select in MODx.Browser when multiSelect: true is provided (#16348) - Fix and enhance UserGroup ACL Permissions Grids and Filtering (#16355) - Cleanup legacy PHP version references (#16359) - Prevent OnResourceDelete from firing on every Resource update (#16328) - Fix "Undefined array key" warnings in modPhpThumb (#16341) - Fix package manager showing only last version changelog (#16354) - Fix tab tracking error in package manager (#16360) - Fix tab tracking issue for plugin panel (#16364) - Only post coverage comment when coverage changes. (#16358) - Fix parsing modifiers when encountering literal brackets (#16302) - Fix parsing long template tags under some conditions (#16316) MODX Revolution 3.0.6-pl (December 9, 2024) ==================================== - PHP 8.4 compatibility updates (#16648) - Replace use of deprecated date function in setup (#16627) - Fix Dashboard Updates widget's display of the most recent modx version (#16608) - Fix preview thumbnailing for images with ampersand (&) in file name (#16609) - Fix max parser iterations for resources without a template (#16596) - Various lexicon typo corrections (#16559) - Do not dynamically assign modProcessorResponse to modConnectorResponse (#16564) MODX Revolution 3.0.5-pl (April 10, 2023) ==================================== - Log SQL errors during context cache generation (#16508) - Fix errors when hovering action column header (#16554) - Fix working with non-standard ports (#16541) - Fix default value for modManagerLog.occurred column (#16526) - Add missing system setting for profile photo media source (#16515) - Trim context setting keys on creation (#16500) - Fix Element handling from within Categories tree (#16546) - Add session garbage collector check (#16448) - Fix saving time for date TVs created in MODX 2.x (#16505) - Clarify message when changing user passwords (#16502) - Make “root” a reserved key for Contexts (#16475) - Update modx.layout.js to fix margin issue (#16406) - Fix visibility of modResource derivatives in context menus and combos (#16403) - Fix template picker component listeners (#16400) - Fix vtabs + grid horizontal overflow (#16383)PK!d' HH fileindex.phpnu[config.core.php connectors core ht.access index.php manager setup assetsPK!"xpdo.class.phpnu[ * @copyright Copyright (C) 2006-2014, Jason Coward * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License v2 * @package xpdo */ if (!defined('XPDO_PHP_VERSION')) { /** * Defines the PHP version string xPDO is running under. */ define('XPDO_PHP_VERSION', phpversion()); } if (!defined('XPDO_CLI_MODE')) { if (php_sapi_name() == 'cli') { /** * This constant defines if xPDO is operating from the CLI. */ define('XPDO_CLI_MODE', true); } else { /** @ignore */ define('XPDO_CLI_MODE', false); } } if (!defined('XPDO_CORE_PATH')) { /** * @internal This global variable is only used to set the {@link * XPDO_CORE_PATH} value upon initial include of this file. Not meant for * external use. * @var string * @access private */ $xpdo_core_path= strtr(realpath(dirname(__FILE__)), '\\', '/') . '/'; /** * @var string The full path to the xPDO root directory. * * Use of this constant is recommended for use when building any path in * your xPDO code. * * @access public */ define('XPDO_CORE_PATH', $xpdo_core_path); } if (!class_exists('PDO')) { //@todo Handle PDO configuration errors here. } /** * A wrapper for PDO that powers an object-relational data model. * * xPDO provides centralized data access via a simple object-oriented API, to * a defined data structure. It provides the de facto methods for connecting * to a data source, getting persistence metadata for any class extended from * the {@link xPDOObject} class (core or custom), loading data source managers * when needed to manage table structures, and retrieving instances (or rows) of * any object in the model. * * Through various extensions, you can also reverse and forward engineer classes * and metadata maps for xPDO, have classes, models, and properties maintain * their own containers (databases, tables, columns, etc.) or changes to them, * and much more. * * @package xpdo */ class xPDO { /**#@+ * Constants */ const OPT_AUTO_CREATE_TABLES = 'auto_create_tables'; const OPT_BASE_CLASSES = 'base_classes'; const OPT_BASE_PACKAGES = 'base_packages'; const OPT_CACHE_COMPRESS = 'cache_compress'; const OPT_CACHE_DB = 'cache_db'; const OPT_CACHE_DB_COLLECTIONS = 'cache_db_collections'; const OPT_CACHE_DB_OBJECTS_BY_PK = 'cache_db_objects_by_pk'; const OPT_CACHE_DB_EXPIRES = 'cache_db_expires'; const OPT_CACHE_DB_HANDLER = 'cache_db_handler'; const OPT_CACHE_DB_SIG_CLASS = 'cache_db_sig_class'; const OPT_CACHE_DB_SIG_GRAPH = 'cache_db_sig_graph'; const OPT_CACHE_EXPIRES = 'cache_expires'; const OPT_CACHE_FORMAT = 'cache_format'; const OPT_CACHE_HANDLER = 'cache_handler'; const OPT_CACHE_KEY = 'cache_key'; const OPT_CACHE_PATH = 'cache_path'; const OPT_CACHE_PREFIX = 'cache_prefix'; const OPT_CACHE_ATTEMPTS = 'cache_attempts'; const OPT_CACHE_ATTEMPT_DELAY = 'cache_attempt_delay'; const OPT_CALLBACK_ON_REMOVE = 'callback_on_remove'; const OPT_CALLBACK_ON_SAVE = 'callback_on_save'; const OPT_CONNECTIONS = 'connections'; const OPT_CONN_INIT = 'connection_init'; const OPT_CONN_MUTABLE = 'connection_mutable'; const OPT_HYDRATE_FIELDS = 'hydrate_fields'; const OPT_HYDRATE_ADHOC_FIELDS = 'hydrate_adhoc_fields'; const OPT_HYDRATE_RELATED_OBJECTS = 'hydrate_related_objects'; const OPT_LOCKFILE_EXTENSION = 'lockfile_extension'; const OPT_USE_FLOCK = 'use_flock'; /** * @deprecated * @see call() */ const OPT_LOADER_CLASSES = 'loader_classes'; const OPT_ON_SET_STRIPSLASHES = 'on_set_stripslashes'; const OPT_SETUP = 'setup'; const OPT_TABLE_PREFIX = 'table_prefix'; const OPT_VALIDATE_ON_SAVE = 'validate_on_save'; const OPT_VALIDATOR_CLASS = 'validator_class'; const LOG_LEVEL_FATAL = 0; const LOG_LEVEL_ERROR = 1; const LOG_LEVEL_WARN = 2; const LOG_LEVEL_INFO = 3; const LOG_LEVEL_DEBUG = 4; const SCHEMA_VERSION = '1.1'; /** * @var PDO A reference to the PDO instance used by the current xPDOConnection. */ public $pdo= null; /** * @var array Configuration options for the xPDO instance. */ public $config= null; /** * @var xPDODriver An xPDODriver instance for the xPDOConnection instances to use. */ public $driver= null; /** * A map of data source meta data for all loaded classes. * @var array * @access public */ public $map= array (); /** * A default package for specifying classes by name. * @var string * @access public */ public $package= ''; /** * An array storing packages and package-specific information. * @var array * @access public */ public $packages= array (); /** * {@link xPDOManager} instance, loaded only if needed to manage datasource * containers, data structures, etc. * @var xPDOManager * @access public */ public $manager= null; /** * @var xPDOCacheManager The cache service provider registered for this xPDO * instance. */ public $cacheManager= null; /** * @var string A root path for file-based caching services to use. */ private $cachePath= null; /** * @var array An array of supplemental service classes for this xPDO instance. */ public $services= array (); /** * @var float Start time of the request, initialized when the constructor is * called. */ public $startTime= 0; /** * @var int The number of direct DB queries executed during a request. */ public $executedQueries= 0; /** * @var int The amount of request handling time spent with DB queries. */ public $queryTime= 0; public $classMap = array(); /** * @var xPDOConnection The current xPDOConnection for this xPDO instance. */ public $connection = null; /** * @var array PDO connections managed by this xPDO instance. */ private $_connections = array(); /** * @var integer The logging level for the xPDO instance. */ protected $logLevel= xPDO::LOG_LEVEL_FATAL; /** * @var string The default logging target for the xPDO instance. */ protected $logTarget= 'ECHO'; /** * Indicates the debug state of this instance. * @var boolean Default is false. * @access protected */ protected $_debug= false; /** * A global cache flag that can be used to enable/disable all xPDO caching. * @var boolean All caching is disabled by default. * @access public */ public $_cacheEnabled= false; /** * Indicates the opening escape character used for a particular database engine. * @var string * @access public */ public $_escapeCharOpen= ''; /** * Indicates the closing escape character used for a particular database engine. * @var string * @access public */ public $_escapeCharClose= ''; /** * Represents the character used for quoting strings for a particular driver. * @var string */ public $_quoteChar= "'"; /** * @var array A static collection of xPDO instances. */ protected static $instances = array(); /** * Create, retrieve, or update specific xPDO instances. * * @static * @param string|int|null $id An optional identifier for the instance. If not set * a uniqid will be generated and used as the key for the instance. * @param array|null $config An optional array of config data for the instance. * @param bool $forceNew If true a new instance will be created even if an instance * with the provided $id already exists in xPDO::$instances. * @throws xPDOException If a valid instance is not retrieved. * @return xPDO An instance of xPDO. */ public static function getInstance($id = null, $config = null, $forceNew = false) { $instances =& self::$instances; if (is_null($id)) { if (!is_null($config) || $forceNew || empty($instances)) { $id = uniqid(__CLASS__); } else { $id = key($instances); } } if ($forceNew || !array_key_exists($id, $instances) || !($instances[$id] instanceof xPDO)) { $instances[$id] = new xPDO(null, null, null, $config); } elseif ($instances[$id] instanceof xPDO && is_array($config)) { $instances[$id]->config = array_merge($instances[$id]->config, $config); } if (!($instances[$id] instanceof xPDO)) { throw new xPDOException("Error getting " . __CLASS__ . " instance, id = {$id}"); } return $instances[$id]; } /** * The xPDO Constructor. * * This method is used to create a new xPDO object with a connection to a * specific database container. * * @param mixed $dsn A valid DSN connection string. * @param string $username The database username with proper permissions. * @param string $password The password for the database user. * @param array|string $options An array of xPDO options. For compatibility with previous * releases, this can also be a single string representing a prefix to be applied to all * database container (i. e. table) names, to isolate multiple installations or conflicting * table names that might need to coexist in a single database container. It is preferrable to * include the table_prefix option in the array for future compatibility. * @param array|null $driverOptions Driver-specific PDO options. * @throws xPDOException If an error occurs creating the instance. * @return xPDO A unique xPDO instance. */ public function __construct($dsn, $username= '', $password= '', $options= array(), $driverOptions= null) { try { $this->config = $this->initConfig($options); $this->setLogLevel($this->getOption('log_level', null, xPDO::LOG_LEVEL_FATAL, true)); $this->setLogTarget($this->getOption('log_target', null, XPDO_CLI_MODE ? 'ECHO' : 'HTML', true)); if (!empty($dsn)) { $this->addConnection($dsn, $username, $password, $this->config, $driverOptions); } if (isset($this->config[xPDO::OPT_CONNECTIONS])) { $connections = $this->config[xPDO::OPT_CONNECTIONS]; if (is_string($connections)) { $connections = $this->fromJSON($connections); } if (is_array($connections)) { foreach ($connections as $connection) { $this->addConnection( $connection['dsn'], $connection['username'], $connection['password'], $connection['options'], $connection['driverOptions'] ); } } } $initOptions = $this->getOption(xPDO::OPT_CONN_INIT, null, array()); $this->config = array_merge($this->config, $this->getConnection($initOptions)->config); $this->getDriver(); $this->setPackage('om', XPDO_CORE_PATH, $this->config[xPDO::OPT_TABLE_PREFIX]); if (isset($this->config[xPDO::OPT_BASE_PACKAGES]) && !empty($this->config[xPDO::OPT_BASE_PACKAGES])) { $basePackages= explode(',', $this->config[xPDO::OPT_BASE_PACKAGES]); foreach ($basePackages as $basePackage) { $exploded= explode(':', $basePackage, 2); if ($exploded) { $path= $exploded[1]; $prefix= null; if (strpos($path, ';')) { $details= explode(';', $path); if ($details && count($details) == 2) { $path= $details[0]; $prefix = $details[1]; } } $this->addPackage($exploded[0], $path, $prefix); } } } $this->loadClass('xPDOObject'); $this->loadClass('xPDOSimpleObject'); if (isset($this->config[xPDO::OPT_BASE_CLASSES])) { foreach (array_keys($this->config[xPDO::OPT_BASE_CLASSES]) as $baseClass) { $this->loadClass($baseClass); } } if (isset($this->config[xPDO::OPT_CACHE_PATH])) { $this->cachePath = $this->config[xPDO::OPT_CACHE_PATH]; } } catch (Exception $e) { throw new xPDOException("Could not instantiate xPDO: " . $e->getMessage()); } } /** * Initialize an xPDO config array. * * @param string|array $data The config input source. Currently accepts a PHP array, * or a PHP string representing xPDO::OPT_TABLE_PREFIX (deprecated). * @return array An array of xPDO config data. */ protected function initConfig($data) { if (is_string($data)) { $data= array(xPDO::OPT_TABLE_PREFIX => $data); } elseif (!is_array($data)) { $data= array(xPDO::OPT_TABLE_PREFIX => ''); } return $data; } /** * Add an xPDOConnection instance to the xPDO connection pool. * * @param string $dsn A PDO DSN representing the connection details. * @param string $username The username credentials for the connection. * @param string $password The password credentials for the connection. * @param array $options An array of options for the connection. * @param null $driverOptions An array of PDO driver options for the connection. * @return boolean True if a valid connection was added. */ public function addConnection($dsn, $username= '', $password= '', array $options= array(), $driverOptions= null) { $added = false; $connection= new xPDOConnection($this, $dsn, $username, $password, $options, $driverOptions); if ($connection instanceof xPDOConnection) { $this->_connections[]= $connection; $added= true; } return $added; } /** * Get an xPDOConnection from the xPDO connection pool. * * @param array $options An array of options for getting the connection. * @return xPDOConnection|null An xPDOConnection instance or null if no connection could be retrieved. */ public function &getConnection(array $options = array()) { $conn =& $this->connection; $mutable = $this->getOption(xPDO::OPT_CONN_MUTABLE, $options, null); if (!($conn instanceof xPDOConnection) || ($mutable !== null && (($mutable == true && !$conn->isMutable()) || ($mutable == false && $conn->isMutable())))) { if (!empty($this->_connections)) { shuffle($this->_connections); $conn = reset($this->_connections); while ($conn) { if ($mutable !== null && (($mutable == true && !$conn->isMutable()) || ($mutable == false && $conn->isMutable()))) { $conn = next($this->_connections); continue; } $this->connection =& $conn; break; } } else { $this->log(xPDO::LOG_LEVEL_ERROR, "Could not get a valid xPDOConnection", '', __METHOD__, __FILE__, __LINE__); } } return $this->connection; } /** * Get or create a PDO connection to a database specified in the configuration. * * @param array $driverOptions An optional array of driver options to use * when creating the connection. * @param array $options An array of xPDO options for the connection. * @return boolean Returns true if the PDO connection was created successfully. */ public function connect($driverOptions= array (), array $options= array()) { $connected = false; $this->getConnection($options); if ($this->connection instanceof xPDOConnection) { $connected = $this->connection->connect($driverOptions); if ($connected) { $this->pdo =& $this->connection->pdo; } } return $connected; } /** * Sets a specific model package to use when looking up classes. * * This package is of the form package.subpackage.subsubpackage and will be * added to the beginning of every xPDOObject class that is referenced in * xPDO methods such as {@link xPDO::loadClass()}, {@link xPDO::getObject()}, * {@link xPDO::getCollection()}, {@link xPDOObject::getOne()}, {@link * xPDOObject::addOne()}, etc. * * @param string $pkg A package name to use when looking up classes in xPDO. * @param string $path The root path for looking up classes in this package. * @param string|null $prefix Provide a string to define a package-specific table_prefix. * @return bool */ public function setPackage($pkg= '', $path= '', $prefix= null) { if (empty($path) && isset($this->packages[$pkg])) { $path= $this->packages[$pkg]['path']; $prefix= !is_string($prefix) && array_key_exists('prefix', $this->packages[$pkg]) ? $this->packages[$pkg]['prefix'] : $prefix; } $set= $this->addPackage($pkg, $path, $prefix); $this->package= $set == true ? $pkg : $this->package; if ($set && is_string($prefix)) $this->config[xPDO::OPT_TABLE_PREFIX]= $prefix; return $set; } /** * Adds a model package and base class path for including classes and/or maps from. * * @param string $pkg A package name to use when looking up classes/maps in xPDO. * @param string $path The root path for looking up classes in this package. * @param string|null $prefix Provide a string to define a package-specific table_prefix. * @return bool */ public function addPackage($pkg= '', $path= '', $prefix= null) { $added= false; if (is_string($pkg) && !empty($pkg)) { if (!is_string($path) || empty($path)) { $this->log(xPDO::LOG_LEVEL_ERROR, "Invalid path specified for package: {$pkg}; using default xpdo model path: " . XPDO_CORE_PATH . 'om/'); $path= XPDO_CORE_PATH . 'om/'; } if (!is_dir($path)) { $this->log(xPDO::LOG_LEVEL_ERROR, "Path specified for package {$pkg} is not a valid or accessible directory: {$path}"); } else { $prefix= !is_string($prefix) ? $this->config[xPDO::OPT_TABLE_PREFIX] : $prefix; if (!array_key_exists($pkg, $this->packages) || $this->packages[$pkg]['path'] !== $path || $this->packages[$pkg]['prefix'] !== $prefix) { $this->packages[$pkg]= array('path' => $path, 'prefix' => $prefix); $this->setPackageMeta($pkg, $path); } $added= true; } } else { $this->log(xPDO::LOG_LEVEL_ERROR, 'addPackage called with an invalid package name.'); } return $added; } /** * Adds metadata information about a package and loads the xPDO::$classMap. * * @param string $pkg A package name to use when looking up classes/maps in xPDO. * @param string $path The root path for looking up classes in this package. * @return bool */ public function setPackageMeta($pkg, $path = '') { $set = false; if (is_string($pkg) && !empty($pkg)) { $pkgPath = str_replace('.', '/', $pkg); $mapFile = $path . $pkgPath . '/metadata.' . $this->config['dbtype'] . '.php'; if (file_exists($mapFile)) { $xpdo_meta_map = ''; include $mapFile; if (!empty($xpdo_meta_map)) { foreach ($xpdo_meta_map as $className => $extends) { if (!isset($this->classMap[$className])) { $this->classMap[$className] = array(); } $this->classMap[$className] = array_unique(array_merge($this->classMap[$className],$extends)); } $set = true; } } else { $this->log(xPDO::LOG_LEVEL_WARN, "Could not load package metadata for package {$pkg}."); } } else { $this->log(xPDO::LOG_LEVEL_ERROR, 'setPackageMeta called with an invalid package name.'); } return $set; } /** * Gets a list of derivative classes for the specified className. * * The specified className must be xPDOObject or a derivative class. * * @param string $className The name of the class to retrieve derivatives for. * @return array An array of derivative classes or an empty array. */ public function getDescendants($className) { $descendants = array(); if (isset($this->classMap[$className])) { $descendants = $this->classMap[$className]; if ($descendants) { foreach ($descendants as $descendant) { $descendants = array_merge($descendants, $this->getDescendants($descendant)); } } } return $descendants; } /** * Load a class by fully qualified name. * * The $fqn should in the format: * * dir_a.dir_b.dir_c.classname * * which will translate to: * * XPDO_CORE_PATH/om/dir_a/dir_b/dir_c/dbtype/classname.class.php * * @param string $fqn The fully-qualified name of the class to load. * @param string $path An optional path to start the search from. * @param bool $ignorePkg True if currently loaded packages should be ignored. * @param bool $transient True if the class is not a persistent table class. * @return string|boolean The actual classname if successful, or false if * not. */ public function loadClass($fqn, $path= '', $ignorePkg= false, $transient= false) { if (empty($fqn)) { $this->log(xPDO::LOG_LEVEL_ERROR, "No class specified for loadClass"); return false; } if (!$transient) { $typePos= strrpos($fqn, '_' . $this->config['dbtype']); if ($typePos !== false) { $fqn= substr($fqn, 0, $typePos); } } $pos= strrpos($fqn, '.'); if ($pos === false) { $class= $fqn; if ($transient) { $fqn= strtolower($class); } else { $fqn= $this->config['dbtype'] . '.' . strtolower($class); } } else { $class= substr($fqn, $pos +1); if ($transient) { $fqn= substr($fqn, 0, $pos) . '.' . strtolower($class); } else { $fqn= substr($fqn, 0, $pos) . '.' . $this->config['dbtype'] . '.' . strtolower($class); } } // check if class exists if (!$transient && isset ($this->map[$class])) return $class; $included= class_exists($class, false); if ($included) { if ($transient || (!$transient && isset ($this->map[$class]))) { return $class; } } $classname= $class; if (!empty($path) || $ignorePkg) { $class= $this->_loadClass($class, $fqn, $included, $path, $transient); } elseif (isset ($this->packages[$this->package])) { $pqn= $this->package . '.' . $fqn; if (!$pkgClass= $this->_loadClass($class, $pqn, $included, $this->packages[$this->package]['path'], $transient)) { foreach ($this->packages as $pkg => $pkgDef) { if ($pkg === $this->package) continue; $pqn= $pkg . '.' . $fqn; if ($pkgClass= $this->_loadClass($class, $pqn, $included, $pkgDef['path'], $transient)) { break; } } } $class= $pkgClass; } else { $class= false; } if ($class === false) { $this->log(xPDO::LOG_LEVEL_ERROR, "Could not load class: {$classname} from {$fqn}."); } return $class; } protected function _loadClass($class, $fqn, $included= false, $path= '', $transient= false) { if (empty($path)) $path= XPDO_CORE_PATH; if (!$included) { /* turn to filesystem path and enforce all lower-case paths and filenames */ $fqcn= str_replace('.', '/', $fqn) . '.class.php'; /* include class */ if (!file_exists($path . $fqcn)) return false; if (!$rt= include_once ($path . $fqcn)) { $this->log(xPDO::LOG_LEVEL_WARN, "Could not load class: {$class} from {$path}{$fqcn}"); $class= false; } } if ($class && !$transient && !isset ($this->map[$class])) { $mapfile= strtr($fqn, '.', '/') . '.map.inc.php'; if (file_exists($path . $mapfile)) { $xpdo_meta_map= & $this->map; $rt= include ($path . $mapfile); if (!$rt || !isset($this->map[$class])) { $this->log(xPDO::LOG_LEVEL_WARN, "Could not load metadata map {$mapfile} for class {$class} from {$fqn}"); } else { if (!array_key_exists('fieldAliases', $this->map[$class])) { $this->map[$class]['fieldAliases'] = array(); } } } } return $class; } /** * Get an xPDO configuration option value by key. * * @param string $key The option key. * @param array $options A set of options to override those from xPDO. * @param mixed $default An optional default value to return if no value is found. * @return mixed The configuration option value. */ public function getOption($key, $options = null, $default = null, $skipEmpty = false) { $option= $default; if (is_array($key)) { if (!is_array($option)) { $default= $option; $option= array(); } foreach ($key as $k) { $option[$k]= $this->getOption($k, $options, $default); } } elseif (is_string($key) && !empty($key)) { if (is_array($options) && !empty($options) && array_key_exists($key, $options) && (!$skipEmpty || ($skipEmpty && $options[$key] !== ''))) { $option= $options[$key]; } elseif (is_array($this->config) && !empty($this->config) && array_key_exists($key, $this->config) && (!$skipEmpty || ($skipEmpty && $this->config[$key] !== ''))) { $option= $this->config[$key]; } } return $option; } /** * Sets an xPDO configuration option value. * * @param string $key The option key. * @param mixed $value A value to set for the given option key. */ public function setOption($key, $value) { $this->config[$key]= $value; } /** * Call a static method from a valid package class with arguments. * * Will always search for database-specific class files first. * * @param string $class The name of a class to to get the static method from. * @param string $method The name of the method you want to call. * @param array $args An array of arguments for the method. * @param boolean $transient Indicates if the class has dbtype derivatives. Set to true if you * want to use on classes not derived from xPDOObject. * @return mixed|null The callback method's return value or null if no valid method is found. */ public function call($class, $method, array $args = array(), $transient = false) { $return = null; $callback = ''; if ($transient) { $className = $this->loadClass($class, '', false, true); if ($className) { $callback = array($className, $method); } } else { $className = $this->loadClass($class); if ($className) { $className .= '_' . $this->getOption('dbtype'); $callback = array($className, $method); } } if (!empty($callback) && is_callable($callback)) { try { $return = call_user_func_array($callback, $args); } catch (Exception $e) { $this->log(xPDO::LOG_LEVEL_ERROR, "An exception occurred calling {$className}::{$method}() - " . $e->getMessage()); } } else { $this->log(xPDO::LOG_LEVEL_ERROR, "{$class}::{$method}() is not a valid static method."); } return $return; } /** * Creates a new instance of a specified class. * * All new objects created with this method are transient until {@link * xPDOObject::save()} is called the first time and is reflected by the * {@link xPDOObject::$_new} property. * * @param string $className Name of the class to get a new instance of. * @param array $fields An associated array of field names/values to * populate the object with. * @return object|null A new instance of the specified class, or null if a * new object could not be instantiated. */ public function newObject($className, $fields= array ()) { $instance= null; if ($className= $this->loadClass($className)) { $className .= '_' . $this->config['dbtype']; if ($instance= new $className ($this)) { if (is_array($fields) && !empty ($fields)) { $instance->fromArray($fields); } } } return $instance; } /** * Finds the class responsible for loading instances of the specified class. * * @deprecated Use call() instead. * @param string $className The name of the class to find a loader for. * @param string $method Indicates the specific loader method to use, * loadCollection or loadObject (or other public static methods). * @return callable A callable loader function. */ public function getObjectLoader($className, $method) { $loader = false; if (isset($this->config[xPDO::OPT_LOADER_CLASSES]) && is_array($this->config[xPDO::OPT_LOADER_CLASSES])) { if ($ancestry = $this->getAncestry($className, true)) { if ($callbacks = array_intersect($ancestry, $this->config[xPDO::OPT_LOADER_CLASSES])) { if ($loaderClass = reset($callbacks)) { $loader = array($loaderClass, $method); while (!is_callable($loader) && $loaderClass = next($callbacks)) { $loader = array($loaderClass, $method); } } } } } if (!is_callable($loader)) { $loader = array('xPDOObject', $method); } return $loader; } /** * Retrieves a single object instance by the specified criteria. * * The criteria can be a primary key value, and array of primary key values * (for multiple primary key objects) or an {@link xPDOCriteria} object. If * no $criteria parameter is specified, no class is found, or an object * cannot be located by the supplied criteria, null is returned. * * @uses xPDOObject::load() * @param string $className Name of the class to get an instance of. * @param mixed $criteria Primary key of the record or a xPDOCriteria object. * @param mixed $cacheFlag If an integer value is provided, this specifies * the time to live in the object cache; if cacheFlag === false, caching is * ignored for the object and if cacheFlag === true, the object will live in * cache indefinitely. * @return object|null An instance of the class, or null if it could not be * instantiated. */ public function getObject($className, $criteria= null, $cacheFlag= true) { $instance= null; if ($criteria !== null) { $instance = $this->call($className, 'load', array(& $this, $className, $criteria, $cacheFlag)); } return $instance; } /** * Retrieves a collection of xPDOObjects by the specified xPDOCriteria. * * @uses xPDOObject::loadCollection() * @param string $className Name of the class to search for instances of. * @param object|array|string $criteria An xPDOCriteria object or an array * search expression. * @param mixed $cacheFlag If an integer value is provided, this specifies * the time to live in the result set cache; if cacheFlag === false, caching * is ignored for the collection and if cacheFlag === true, the objects will * live in cache until flushed by another process. * @return array|null An array of class instances retrieved. */ public function getCollection($className, $criteria= null, $cacheFlag= true) { return $this->call($className, 'loadCollection', array(& $this, $className, $criteria, $cacheFlag)); } /** * Retrieves an iterable representation of a collection of xPDOObjects. * * @param string $className Name of the class to search for instances of. * @param mixed $criteria An xPDOCriteria object or representation. * @param bool $cacheFlag If an integer value is provided, this specifies * the time to live in the result set cache; if cacheFlag === false, caching * is ignored for the collection and if cacheFlag === true, the objects will * live in cache until flushed by another process. * @return xPDOIterator An iterable representation of a collection. */ public function getIterator($className, $criteria= null, $cacheFlag= true) { return new xPDOIterator($this, array('class' => $className, 'criteria' => $criteria, 'cacheFlag' => $cacheFlag)); } /** * Update field values across a collection of xPDOObjects. * * @param string $className Name of the class to update fields of. * @param array $set An associative array of field/value pairs representing the updates to make. * @param mixed $criteria An xPDOCriteria object or representation. * @return bool|int The number of instances affected by the update or false on failure. */ public function updateCollection($className, array $set, $criteria= null) { $affected = false; if ($this->getConnection(array(xPDO::OPT_CONN_MUTABLE => true))) { $query = $this->newQuery($className); if ($query && !empty($set)) { $query->command('UPDATE'); $query->set($set); if (!empty($criteria)) $query->where($criteria); if ($query->prepare()) { $affected = $this->exec($query->toSQL()); if ($affected === false) { $this->log(xPDO::LOG_LEVEL_ERROR, "Error updating {$className} instances using query " . $query->toSQL(), '', __METHOD__, __FILE__, __LINE__); } else { if ($this->getOption(xPDO::OPT_CACHE_DB)) { $relatedClasses = array($query->getTableClass()); $related = array_merge($this->getAggregates($className), $this->getComposites($className)); foreach ($related as $relatedAlias => $relatedMeta) { $relatedClasses[] = $relatedMeta['class']; } $relatedClasses = array_unique($relatedClasses); foreach ($relatedClasses as $relatedClass) { $this->cacheManager->delete($relatedClass, array( xPDO::OPT_CACHE_KEY => $this->getOption('cache_db_key', null, 'db'), xPDO::OPT_CACHE_HANDLER => $this->getOption(xPDO::OPT_CACHE_DB_HANDLER, null, $this->getOption(xPDO::OPT_CACHE_HANDLER, null, 'cache.xPDOFileCache')), xPDO::OPT_CACHE_FORMAT => (integer) $this->getOption('cache_db_format', null, $this->getOption(xPDO::OPT_CACHE_FORMAT, null, xPDOCacheManager::CACHE_PHP)), xPDO::OPT_CACHE_PREFIX => $this->getOption('cache_db_prefix', null, xPDOCacheManager::CACHE_DIR), 'multiple_object_delete' => true )); } } $callback = $this->getOption(xPDO::OPT_CALLBACK_ON_SAVE); if ($callback && is_callable($callback)) { call_user_func($callback, array('className' => $className, 'criteria' => $query, 'object' => null)); } } } } } else { $this->log(xPDO::LOG_LEVEL_ERROR, "Could not get connection for writing data", '', __METHOD__, __FILE__, __LINE__); } return $affected; } /** * Remove an instance of the specified className by a supplied criteria. * * @param string $className The name of the class to remove an instance of. * @param mixed $criteria Valid xPDO criteria for selecting an instance. * @return boolean True if the instance is successfully removed. */ public function removeObject($className, $criteria) { $removed= false; if ($this->getConnection(array(xPDO::OPT_CONN_MUTABLE => true))) { if ($this->getCount($className, $criteria) === 1) { if ($query= $this->newQuery($className)) { $query->command('DELETE'); $query->where($criteria); if ($query->prepare()) { if ($this->exec($query->toSQL()) !== 1) { $this->log(xPDO::LOG_LEVEL_ERROR, "xPDO->removeObject - Error deleting {$className} instance using query " . $query->toSQL()); } else { $removed= true; if ($this->getOption(xPDO::OPT_CACHE_DB)) { $this->cacheManager->delete(xPDOCacheManager::CACHE_DIR . $query->getAlias(), array('multiple_object_delete' => true)); } $callback = $this->getOption(xPDO::OPT_CALLBACK_ON_REMOVE); if ($callback && is_callable($callback)) { call_user_func($callback, array('className' => $className, 'criteria' => $query)); } } } } } else { $this->log(xPDO::LOG_LEVEL_WARN, "xPDO->removeObject - {$className} instance to remove not found!"); if ($this->getDebug() === true) $this->log(xPDO::LOG_LEVEL_DEBUG, "xPDO->removeObject - {$className} instance to remove not found using criteria " . print_r($criteria, true)); } } else { $this->log(xPDO::LOG_LEVEL_ERROR, "Could not get connection for writing data", '', __METHOD__, __FILE__, __LINE__); } return $removed; } /** * Remove a collection of instances by the supplied className and criteria. * * @param string $className The name of the class to remove a collection of. * @param mixed $criteria Valid xPDO criteria for selecting a collection. * @return boolean|integer False if the remove encounters an error, otherwise an integer value * representing the number of rows that were removed. */ public function removeCollection($className, $criteria) { $removed= false; if ($this->getConnection(array(xPDO::OPT_CONN_MUTABLE => true))) { if ($query= $this->newQuery($className)) { $query->command('DELETE'); $query->where($criteria); if ($query->prepare()) { $removed= $this->exec($query->toSQL()); if ($removed === false) { $this->log(xPDO::LOG_LEVEL_ERROR, "xPDO->removeCollection - Error deleting {$className} instances using query " . $query->toSQL()); } else { if ($this->getOption(xPDO::OPT_CACHE_DB)) { $this->cacheManager->delete(xPDOCacheManager::CACHE_DIR . $query->getAlias(), array('multiple_object_delete' => true)); } $callback = $this->getOption(xPDO::OPT_CALLBACK_ON_REMOVE); if ($callback && is_callable($callback)) { call_user_func($callback, array('className' => $className, 'criteria' => $query)); } } } else { $this->log(xPDO::LOG_LEVEL_ERROR, "xPDO->removeCollection - Error preparing statement to delete {$className} instances using query: {$query->toSQL()}"); } } } else { $this->log(xPDO::LOG_LEVEL_ERROR, "Could not get connection for writing data", '', __METHOD__, __FILE__, __LINE__); } return $removed; } /** * Retrieves a count of xPDOObjects by the specified xPDOCriteria. * * @param string $className Class of xPDOObject to count instances of. * @param mixed $criteria Any valid xPDOCriteria object or expression. * @return integer The number of instances found by the criteria. */ public function getCount($className, $criteria = null) { $count = 0; if ($query = $this->newQuery($className, $criteria)) { $stmt = null; $expr = '*'; if ($pk = $this->getPK($className)) { if (!is_array($pk)) { $pk = array($pk); } $expr = $this->getSelectColumns($className, $query->getAlias(), '', $pk); } if (isset($query->query['columns'])) { $query->query['columns'] = array(); } if (!empty($query->query['groupby']) || !empty($query->query['having'])) { $query->select($expr); if ($query->prepare()) { $countQuery = new xPDOCriteria($this, "SELECT COUNT(*) FROM ({$query->toSQL(false)}) cq", $query->bindings, $query->cacheFlag); $stmt = $countQuery->prepare(); } } else { $query->select(array("COUNT(DISTINCT {$expr})")); $stmt = $query->prepare(); } if ($stmt && $stmt->execute()) { $count = intval($stmt->fetchColumn()); } } return $count; } /** * Retrieves an xPDOObject instance with specified related objects. * * @uses xPDO::getCollectionGraph() * @param string $className The name of the class to return an instance of. * @param string|array $graph A related object graph in array or JSON * format, e.g. array('relationAlias'=>array('subRelationAlias'=>array())) * or {"relationAlias":{"subRelationAlias":{}}}. Note that the empty arrays * are necessary in order for the relation to be recognized. * @param mixed $criteria A valid xPDOCriteria instance or expression. * @param boolean|integer $cacheFlag Indicates if the result set should be * cached, and optionally for how many seconds. * @return object The object instance with related objects from the graph * hydrated, or null if no instance can be located by the criteria. */ public function getObjectGraph($className, $graph, $criteria= null, $cacheFlag= true) { $object= null; if ($collection= $this->getCollectionGraph($className, $graph, $criteria, $cacheFlag)) { if (!count($collection) === 1) { $this->log(xPDO::LOG_LEVEL_WARN, 'getObjectGraph criteria returned more than one instance.'); } $object= reset($collection); } return $object; } /** * Retrieves a collection of xPDOObject instances with related objects. * * @uses xPDOQuery::bindGraph() * @param string $className The name of the class to return a collection of. * @param string|array $graph A related object graph in array or JSON * format, e.g. array('relationAlias'=>array('subRelationAlias'=>array())) * or {"relationAlias":{"subRelationAlias":{}}}. Note that the empty arrays * are necessary in order for the relation to be recognized. * @param mixed $criteria A valid xPDOCriteria instance or condition string. * @param boolean $cacheFlag Indicates if the result set should be cached. * @return array An array of instances matching the criteria with related * objects from the graph hydrated. An empty array is returned when no * matches are found. */ public function getCollectionGraph($className, $graph, $criteria= null, $cacheFlag= true) { return $this->call($className, 'loadCollectionGraph', array(& $this, $className, $graph, $criteria, $cacheFlag)); } /** * Execute a PDOStatement and get a single column value from the first row of the result set. * * @param PDOStatement $stmt A prepared PDOStatement object ready to be executed. * @param null|integer $column 0-indexed number of the column you wish to retrieve from the row. If * null or no value is supplied, it fetches the first column. * @return mixed The value of the specified column from the first row of the result set, or null. */ public function getValue($stmt, $column= null) { $value = null; if (is_object($stmt) && $stmt instanceof PDOStatement) { $tstart = microtime(true); if ($stmt->execute()) { $this->queryTime += microtime(true) - $tstart; $this->executedQueries++; $value= $stmt->fetchColumn($column); $stmt->closeCursor(); } else { $this->queryTime += microtime(true) - $tstart; $this->executedQueries++; $this->log(xPDO::LOG_LEVEL_ERROR, "Error " . $stmt->errorCode() . " executing statement: \n" . print_r($stmt->errorInfo(), true), '', __METHOD__, __FILE__, __LINE__); } } else { $this->log(xPDO::LOG_LEVEL_ERROR, "No valid PDOStatement provided to getValue", '', __METHOD__, __FILE__, __LINE__); } return $value; } /** * Convert any valid criteria into an xPDOQuery instance. * * @todo Get criteria pre-defined in an {@link xPDOObject} class metadata * definition by name. * * @todo Define callback functions as an alternative to retreiving criteria * sql and/or bindings from the metadata. * * @param string $className The class to get predefined criteria for. * @param string $type The type of criteria to get (you can define any * type you want, but 'object' and 'collection' are the typical criteria * for retrieving single and multiple instances of an object). * @param boolean|integer $cacheFlag Indicates if the result is cached and * optionally for how many seconds. * @return xPDOCriteria A criteria object or null if not found. */ public function getCriteria($className, $type= null, $cacheFlag= true) { return $this->newQuery($className, $type, $cacheFlag); } /** * Validate and return the type of a specified criteria variable. * * @param mixed $criteria An xPDOCriteria instance or any valid criteria variable. * @return string|null The type of valid criteria passed, or null if the criteria is not valid. */ public function getCriteriaType($criteria) { $type = gettype($criteria); if ($type === 'object') { $type = get_class($criteria); if (!$criteria instanceof xPDOCriteria) { $this->log(xPDO::LOG_LEVEL_WARN, "Invalid criteria object of class {$type} encountered.", '', __METHOD__, __FILE__, __LINE__); $type = null; } } return $type; } /** * Add criteria when requesting a derivative class row automatically. * * This applies class_key filtering for single-table inheritance queries and may * provide a convenient location for similar features in the future. * * @param string $className A valid xPDOObject derivative table class. * @param xPDOQuery $criteria A valid xPDOQuery instance. * @return xPDOQuery The xPDOQuery instance with derivative criteria added. */ public function addDerivativeCriteria($className, $criteria) { if ($criteria instanceof xPDOQuery && !isset($this->map[$className]['table'])) { if (isset($this->map[$className]['fields']['class_key']) && !empty($this->map[$className]['fields']['class_key'])) { $criteria->where(array('class_key' => $this->map[$className]['fields']['class_key'])); if ($this->getDebug() === true) { $this->log(xPDO::LOG_LEVEL_DEBUG, "#1: Automatically adding class_key criteria for derivative query of class {$className}"); } } else { foreach ($this->getAncestry($className, false) as $ancestor) { if (isset($this->map[$ancestor]['table']) && isset($this->map[$ancestor]['fields']['class_key'])) { $criteria->where(array('class_key' => $className)); if ($this->getDebug() === true) { $this->log(xPDO::LOG_LEVEL_DEBUG, "#2: Automatically adding class_key criteria for derivative query of class {$className} from base table class {$ancestor}"); } break; } } } } return $criteria; } /** * Gets the package name from a specified class name. * * @param string $className The name of the class to lookup the package for. * @return string The package the class belongs to. */ public function getPackage($className) { $package= ''; if ($className= $this->loadClass($className)) { if (isset($this->map[$className]['package'])) { $package= $this->map[$className]['package']; } if (!$package && $ancestry= $this->getAncestry($className, false)) { foreach ($ancestry as $ancestor) { if (isset ($this->map[$ancestor]['package']) && ($package= $this->map[$ancestor]['package'])) { break; } } } } return $package; } /** * Load and return a named service class instance. * * @param string $name The variable name of the instance. * @param string $class The service class name. * @param string $path An optional root path to search for the class. * @param array $params An array of optional params to pass to the service * class constructor. * @return object|null A reference to the service class instance or null if * it could not be loaded. */ public function &getService($name, $class= '', $path= '', $params= array ()) { $service= null; if (!isset ($this->services[$name]) || !is_object($this->services[$name])) { if (empty ($class) && isset ($this->config[$name . '.class'])) { $class= $this->config[$name . '.class']; } elseif (empty ($class)) { $class= $name; } $className= $this->loadClass($class, $path, false, true); if (!empty($className)) { $service = new $className ($this, $params); if ($service) { $this->services[$name]=& $service; $this->$name= & $this->services[$name]; } } } if (array_key_exists($name, $this->services)) { $service= & $this->services[$name]; } else { if ($this->getDebug() === true) { $this->log(xPDO::LOG_LEVEL_DEBUG, "Problem getting service {$name}, instance of class {$class}, from path {$path}, with params " . print_r($params, true)); } else { $this->log(xPDO::LOG_LEVEL_ERROR, "Problem getting service {$name}, instance of class {$class}, from path {$path}"); } } return $service; } /** * Gets the actual run-time table name from a specified class name. * * @param string $className The name of the class to lookup a table name * for. * @param boolean $includeDb Qualify the table name with the database name. * @return string The table name for the class, or null if unsuccessful. */ public function getTableName($className, $includeDb= false) { $table= null; if ($className= $this->loadClass($className)) { if (isset ($this->map[$className]['table'])) { $table= $this->map[$className]['table']; if (isset($this->map[$className]['package']) && isset($this->packages[$this->map[$className]['package']]['prefix'])) { $table= $this->packages[$this->map[$className]['package']]['prefix'] . $table; } else { $table= $this->getOption(xPDO::OPT_TABLE_PREFIX, null, '') . $table; } } if (!$table && $ancestry= $this->getAncestry($className, false)) { foreach ($ancestry as $ancestor) { if (isset ($this->map[$ancestor]['table']) && $table= $this->map[$ancestor]['table']) { if (isset($this->map[$ancestor]['package']) && isset($this->packages[$this->map[$ancestor]['package']]['prefix'])) { $table= $this->packages[$this->map[$ancestor]['package']]['prefix'] . $table; } else { $table= $this->getOption(xPDO::OPT_TABLE_PREFIX, null, '') . $table; } break; } } } } if ($table) { $table= $this->_getFullTableName($table, $includeDb); if ($this->getDebug() === true) $this->log(xPDO::LOG_LEVEL_DEBUG, 'Returning table name: ' . $table . ' for class: ' . $className); } else { $this->log(xPDO::LOG_LEVEL_ERROR, 'Could not get table name for class: ' . $className); } return $table; } /** * Get the class which defines the table for a specified className. * * @param string $className The name of a class to determine the table class from. * @return null|string The name of a class defining the table for the specified className; null if not found. */ public function getTableClass($className) { $tableClass= null; if ($className= $this->loadClass($className)) { if (isset ($this->map[$className]['table'])) { $tableClass= $className; } if (!$tableClass && $ancestry= $this->getAncestry($className, false)) { foreach ($ancestry as $ancestor) { if (isset ($this->map[$ancestor]['table'])) { $tableClass= $ancestor; break; } } } } if ($tableClass) { if ($this->getDebug() === true) { $this->log(xPDO::LOG_LEVEL_DEBUG, 'Returning table class: ' . $tableClass . ' for class: ' . $className); } } else { $this->log(xPDO::LOG_LEVEL_ERROR, 'Could not get table class for class: ' . $className); } return $tableClass; } /** * Gets the actual run-time table metadata from a specified class name. * * @param string $className The name of the class to lookup a table name * for. * @return string The table meta data for the class, or null if * unsuccessful. */ public function getTableMeta($className) { $tableMeta= null; if ($className= $this->loadClass($className)) { if (isset ($this->map[$className]['tableMeta'])) { $tableMeta= $this->map[$className]['tableMeta']; } if (!$tableMeta && $ancestry= $this->getAncestry($className)) { foreach ($ancestry as $ancestor) { if (isset ($this->map[$ancestor]['tableMeta'])) { if ($tableMeta= $this->map[$ancestor]['tableMeta']) { break; } } } } } return $tableMeta; } /** * Indicates the inheritance model for the xPDOObject class specified. * * @param string $className The class to determine the table inherit type from. * @return string single, multiple, or none */ public function getInherit($className) { $inherit= false; if ($className= $this->loadClass($className)) { if (isset ($this->map[$className]['inherit'])) { $inherit= $this->map[$className]['inherit']; } if (!$inherit && $ancestry= $this->getAncestry($className, false)) { foreach ($ancestry as $ancestor) { if (isset ($this->map[$ancestor]['inherit'])) { $inherit= $this->map[$ancestor]['inherit']; break; } } } } if (!empty($inherit)) { if ($this->getDebug() === true) { $this->log(xPDO::LOG_LEVEL_DEBUG, 'Returning inherit: ' . $inherit . ' for class: ' . $className); } } else { $inherit= 'none'; } return $inherit; } /** * Gets a list of fields (or columns) for an object by class name. * * This includes default values for each field and is used by the objects * themselves to build their initial attributes based on class inheritence. * * @param string $className The name of the class to lookup fields for. * @return array An array featuring field names as the array keys, and * default field values as the array values; empty array is returned if * unsuccessful. */ public function getFields($className) { $fields= array (); if ($className= $this->loadClass($className)) { if ($ancestry= $this->getAncestry($className)) { for ($i= count($ancestry) - 1; $i >= 0; $i--) { if (isset ($this->map[$ancestry[$i]]['fields'])) { $fields= array_merge($fields, $this->map[$ancestry[$i]]['fields']); } } } if ($this->getInherit($className) === 'single') { $descendants= $this->getDescendants($className); if ($descendants) { foreach ($descendants as $descendant) { $descendantClass= $this->loadClass($descendant); if ($descendantClass && isset($this->map[$descendantClass]['fields'])) { $fields= array_merge($fields, array_diff_key($this->map[$descendantClass]['fields'], $fields)); } } } } } return $fields; } /** * Gets a list of field (or column) definitions for an object by class name. * * These definitions are used by the objects themselves to build their * own meta data based on class inheritance. * * @param string $className The name of the class to lookup fields meta data * for. * @param boolean $includeExtended If true, include meta from all derivative * classes in loaded packages. * @return array An array featuring field names as the array keys, and * arrays of metadata information as the array values; empty array is * returned if unsuccessful. */ public function getFieldMeta($className, $includeExtended = false) { $fieldMeta= array (); if ($className= $this->loadClass($className)) { if ($ancestry= $this->getAncestry($className)) { for ($i= count($ancestry) - 1; $i >= 0; $i--) { if (isset ($this->map[$ancestry[$i]]['fieldMeta'])) { $fieldMeta= array_merge($fieldMeta, $this->map[$ancestry[$i]]['fieldMeta']); } } } if ($includeExtended && $this->getInherit($className) === 'single') { $descendants= $this->getDescendants($className); if ($descendants) { foreach ($descendants as $descendant) { $descendantClass= $this->loadClass($descendant); if ($descendantClass && isset($this->map[$descendantClass]['fieldMeta'])) { $fieldMeta= array_merge($fieldMeta, array_diff_key($this->map[$descendantClass]['fieldMeta'], $fieldMeta)); } } } } } return $fieldMeta; } /** * Gets a collection of field aliases for an object by class name. * * @param string $className The name of the class to lookup field aliases for. * @return array An array of field aliases with aliases as keys and actual field names as values. */ public function getFieldAliases($className) { $fieldAliases= array (); if ($className= $this->loadClass($className)) { if ($ancestry= $this->getAncestry($className)) { for ($i= count($ancestry) - 1; $i >= 0; $i--) { if (isset ($this->map[$ancestry[$i]]['fieldAliases'])) { $fieldAliases= array_merge($fieldAliases, $this->map[$ancestry[$i]]['fieldAliases']); } } } if ($this->getInherit($className) === 'single') { $descendants= $this->getDescendants($className); if ($descendants) { foreach ($descendants as $descendant) { $descendantClass= $this->loadClass($descendant); if ($descendantClass && isset($this->map[$descendantClass]['fieldAliases'])) { $fieldAliases= array_merge($fieldAliases, array_diff_key($this->map[$descendantClass]['fieldAliases'], $fieldAliases)); } } } } } return $fieldAliases; } /** * Gets a set of validation rules defined for an object by class name. * * @param string $className The name of the class to lookup validation rules * for. * @return array An array featuring field names as the array keys, and * arrays of validation rule information as the array values; empty array is * returned if unsuccessful. */ public function getValidationRules($className) { $rules= array(); if ($className= $this->loadClass($className)) { if ($ancestry= $this->getAncestry($className)) { for ($i= count($ancestry) - 1; $i >= 0; $i--) { if (isset($this->map[$ancestry[$i]]['validation']['rules'])) { $rules= array_merge($rules, $this->map[$ancestry[$i]]['validation']['rules']); } } } if ($this->getInherit($className) === 'single') { $descendants= $this->getDescendants($className); if ($descendants) { foreach ($descendants as $descendant) { $descendantClass= $this->loadClass($descendant); if ($descendantClass && isset($this->map[$descendantClass]['validation']['rules'])) { $rules= array_merge($rules, array_diff_key($this->map[$descendantClass]['validation']['rules'], $rules)); } } } } if ($this->getDebug() === true) { $this->log(xPDO::LOG_LEVEL_DEBUG, "Returning validation rules: " . print_r($rules, true)); } } return $rules; } /** * Get indices defined for a table class. * * @param string $className The name of the class to lookup indices for. * @return array An array of indices and their details for the specified class. */ public function getIndexMeta($className) { $indices= array(); if ($className= $this->loadClass($className)) { if ($ancestry= $this->getAncestry($className)) { for ($i= count($ancestry) -1; $i >= 0; $i--) { if (isset($this->map[$ancestry[$i]]['indexes'])) { $indices= array_merge($indices, $this->map[$ancestry[$i]]['indexes']); } } if ($this->getInherit($className) === 'single') { $descendants= $this->getDescendants($className); if ($descendants) { foreach ($descendants as $descendant) { $descendantClass= $this->loadClass($descendant); if ($descendantClass && isset($this->map[$descendantClass]['indexes'])) { $indices= array_merge($indices, array_diff_key($this->map[$descendantClass]['indexes'], $indices)); } } } } if ($this->getDebug() === true) { $this->log(xPDO::LOG_LEVEL_DEBUG, "Returning indices: " . print_r($indices, true)); } } } return $indices; } /** * Gets the primary key field(s) for a class. * * @param string $className The name of the class to lookup the primary key * for. * @return mixed The name of the field representing a class instance primary * key, an array of key names for compound primary keys, or null if no * primary key is found or defined for the class. */ public function getPK($className) { $pk= null; if (strcasecmp($className, 'xPDOObject') !== 0) { if ($actualClassName= $this->loadClass($className)) { if (isset ($this->map[$actualClassName]['indexes'])) { foreach ($this->map[$actualClassName]['indexes'] as $k => $v) { if (isset ($this->map[$actualClassName]['fieldMeta'][$k]['phptype'])) { if (isset ($v['primary']) && $v['primary'] == true) { $pk[$k]= $k; } } } } if (isset ($this->map[$actualClassName]['fieldMeta'])) { foreach ($this->map[$actualClassName]['fieldMeta'] as $k => $v) { if (isset ($v['index']) && isset ($v['phptype']) && $v['index'] == 'pk') { $pk[$k]= $k; } } } if ($ancestry= $this->getAncestry($actualClassName)) { foreach ($ancestry as $ancestor) { if ($ancestorClassName= $this->loadClass($ancestor)) { if (isset ($this->map[$ancestorClassName]['indexes'])) { foreach ($this->map[$ancestorClassName]['indexes'] as $k => $v) { if (isset ($this->map[$ancestorClassName]['fieldMeta'][$k]['phptype'])) { if (isset ($v['primary']) && $v['primary'] == true) { $pk[$k]= $k; } } } } if (isset ($this->map[$ancestorClassName]['fieldMeta'])) { foreach ($this->map[$ancestorClassName]['fieldMeta'] as $k => $v) { if (isset ($v['index']) && isset ($v['phptype']) && $v['index'] == 'pk') { $pk[$k]= $k; } } } } } } if ($pk && count($pk) === 1) { $pk= current($pk); } } else { $this->log(xPDO::LOG_LEVEL_ERROR, "Could not load class {$className}"); } } return $pk; } /** * Gets the type of primary key field for a class. * * @param string $className The name of the class to lookup the primary key * type for. * @param mixed $pk Optional specific PK column or columns to get type(s) for. * @return string The type of the field representing a class instance primary * key, or null if no primary key is found or defined for the class. */ public function getPKType($className, $pk= false) { $pktype= null; if ($actualClassName= $this->loadClass($className)) { if (!$pk) $pk= $this->getPK($actualClassName); if (!is_array($pk)) $pk= array($pk); $ancestry= $this->getAncestry($actualClassName, true); foreach ($pk as $_pk) { foreach ($ancestry as $parentClass) { if (isset ($this->map[$parentClass]['fieldMeta'][$_pk]['phptype'])) { $pktype[$_pk]= $this->map[$parentClass]['fieldMeta'][$_pk]['phptype']; break; } } } if (is_array($pktype) && count($pktype) == 1) { $pktype= reset($pktype); } elseif (empty($pktype)) { $pktype= null; } } else { $this->log(xPDO::LOG_LEVEL_ERROR, "Could not load class {$className}!"); } return $pktype; } /** * Gets a collection of aggregate foreign key relationship definitions. * * @param string $className The fully-qualified name of the class. * @return array An array of aggregate foreign key relationship definitions. */ public function getAggregates($className) { $aggregates= array (); if ($className= $this->loadClass($className)) { if ($ancestry= $this->getAncestry($className)) { for ($i= count($ancestry) - 1; $i >= 0; $i--) { if (isset ($this->map[$ancestry[$i]]['aggregates'])) { $aggregates= array_merge($aggregates, $this->map[$ancestry[$i]]['aggregates']); } } } if ($this->getInherit($className) === 'single') { $descendants= $this->getDescendants($className); if ($descendants) { foreach ($descendants as $descendant) { $descendantClass= $this->loadClass($descendant); if ($descendantClass && isset($this->map[$descendantClass]['aggregates'])) { $aggregates= array_merge($aggregates, array_diff_key($this->map[$descendantClass]['aggregates'], $aggregates)); } } } } } return $aggregates; } /** * Gets a collection of composite foreign key relationship definitions. * * @param string $className The fully-qualified name of the class. * @return array An array of composite foreign key relationship definitions. */ public function getComposites($className) { $composites= array (); if ($className= $this->loadClass($className)) { if ($ancestry= $this->getAncestry($className)) { for ($i= count($ancestry) - 1; $i >= 0; $i--) { if (isset ($this->map[$ancestry[$i]]['composites'])) { $composites= array_merge($composites, $this->map[$ancestry[$i]]['composites']); } } } if ($this->getInherit($className) === 'single') { $descendants= $this->getDescendants($className); if ($descendants) { foreach ($descendants as $descendant) { $descendantClass= $this->loadClass($descendant); if ($descendantClass && isset($this->map[$descendantClass]['composites'])) { $composites= array_merge($composites, array_diff_key($this->map[$descendantClass]['composites'], $composites)); } } } } } return $composites; } /** * Get a complete relation graph for an xPDOObject class. * * @param string $className A fully-qualified xPDOObject class name. * @param int $depth The depth to retrieve relations for the graph, defaults to 3. * @param array &$parents An array of parent classes to avoid traversing circular dependencies. * @param array &$visited An array of already visited classes to avoid traversing circular dependencies. * @return array An xPDOObject relation graph, or an empty array if no graph can be constructed. */ public function getGraph($className, $depth= 3, &$parents = array(), &$visited = array()) { $graph = array(); $className = $this->loadClass($className); if ($className && $depth > 0) { $depth--; $parents = array_merge($parents, $this->getAncestry($className)); $parentsNested = array_unique($parents); $visitNested = array_merge($visited, array($className)); $relations = array_merge($this->getAggregates($className), $this->getComposites($className)); foreach ($relations as $alias => $relation) { if (in_array($relation['class'], $visited)) { continue; } $childGraph = array(); if ($depth > 0 && !in_array($relation['class'], $parents)) { $childGraph = $this->getGraph($relation['class'], $depth, $parentsNested, $visitNested); } $graph[$alias] = $childGraph; } $visited[] = $className; } return $graph; } /** * Retrieves the complete ancestry for a class. * * @param string $className The name of the class. * @param bool $includeSelf Determines if the specified class should be * included in the resulting array. * @return array An array of string class names representing the class * hierarchy, or an empty array if unsuccessful. */ public function getAncestry($className, $includeSelf= true) { $ancestry= array (); if ($actualClassName= $this->loadClass($className)) { $ancestor= $actualClassName; if ($includeSelf) { $ancestry[]= $actualClassName; } while ($ancestor= get_parent_class($ancestor)) { $ancestry[]= $ancestor; } if ($this->getDebug() === true) { $this->log(xPDO::LOG_LEVEL_DEBUG, "Returning ancestry for {$className}: " . print_r($ancestry, 1)); } } return $ancestry; } /** * Gets select columns from a specific class for building a query. * * @uses xPDOObject::getSelectColumns() * @param string $className The name of the class to build the column list * from. * @param string $tableAlias An optional alias for the class table, to be * used in complex queries with multiple tables. * @param string $columnPrefix An optional string with which to prefix the * columns returned, to avoid name collisions in return columns. * @param array $columns An optional array of columns to include. * @param boolean $exclude If true, will exclude columns in the previous * parameter, instead of including them. * @return string A valid SQL string of column names for a SELECT statement. */ public function getSelectColumns($className, $tableAlias= '', $columnPrefix= '', $columns= array (), $exclude= false) { return $this->call($className, 'getSelectColumns', array(&$this, $className, $tableAlias, $columnPrefix, $columns, $exclude)); } /** * Gets an aggregate or composite relation definition from a class. * * @param string $parentClass The class from which the relation is defined. * @param string $alias The alias identifying the related class. * @return array The aggregate or composite definition details in an array * or null if no definition is found. */ function getFKDefinition($parentClass, $alias) { $def= null; $parentClass= $this->loadClass($parentClass); if ($parentClass && $alias) { if ($aggregates= $this->getAggregates($parentClass)) { if (isset ($aggregates[$alias])) { $def= $aggregates[$alias]; $def['type']= 'aggregate'; } } if ($composites= $this->getComposites($parentClass)) { if (isset ($composites[$alias])) { $def= $composites[$alias]; $def['type']= 'composite'; } } } if ($def === null) { $this->log(xPDO::LOG_LEVEL_ERROR, 'No foreign key definition for parentClass: ' . $parentClass . ' using relation alias: ' . $alias); } return $def; } /** * Gets the version string of the schema the specified class was generated from. * * @param string $className The name of the class to get the model version from. * @return string The version string for the schema model the class was generated from. */ public function getModelVersion($className) { $version = '1.0'; $className= $this->loadClass($className); if ($className && isset($this->map[$className]['version'])) { $version= $this->map[$className]['version']; } return $version; } /** * Gets the manager class for this xPDO connection. * * The manager class can perform operations such as creating or altering * table structures, creating data containers, generating custom persistence * classes, and other advanced operations that do not need to be loaded * frequently. * * @return xPDOManager|null An xPDOManager instance for the xPDO connection, or null * if a manager class can not be instantiated. */ public function getManager() { if ($this->manager === null || !$this->manager instanceof xPDOManager) { $loaded= include_once(XPDO_CORE_PATH . 'om/' . $this->config['dbtype'] . '/xpdomanager.class.php'); if ($loaded) { $managerClass = 'xPDOManager_' . $this->config['dbtype']; $this->manager= new $managerClass ($this); } if (!$this->manager) { $this->log(xPDO::LOG_LEVEL_ERROR, "Could not load xPDOManager class."); } } return $this->manager; } /** * Gets the driver class for this xPDO connection. * * The driver class provides baseline data and operations for a specific database driver. * * @return xPDODriver|null An xPDODriver instance for the xPDO connection, or null * if a driver class can not be instantiated. */ public function getDriver() { if ($this->driver === null || !$this->driver instanceof xPDODriver) { $loaded= include_once(XPDO_CORE_PATH . 'om/' . $this->config['dbtype'] . '/xpdodriver.class.php'); if ($loaded) { $driverClass = 'xPDODriver_' . $this->config['dbtype']; $this->driver= new $driverClass ($this); } if (!$this->driver) { $this->log(xPDO::LOG_LEVEL_ERROR, "Could not load xPDODriver class for the {$this->config['dbtype']} PDO driver. " . print_r($this->config, true)); } } return $this->driver; } /** * Gets the absolute path to the cache directory. * * @return string The full cache directory path. */ public function getCachePath() { if (!$this->cachePath) { if ($this->getCacheManager()) { $this->cachePath= $this->cacheManager->getCachePath(); } } return $this->cachePath; } /** * Gets an xPDOCacheManager instance. * * This class is responsible for handling all types of caching operations for the xPDO core. * * @param string $class Optional name of a derivative xPDOCacheManager class. * @param array $options An array of options for the cache manager instance; valid options include: * - path = Optional root path for looking up the $class. * - ignorePkg = If false and you do not specify a path, you can look up custom xPDOCacheManager * derivatives in declared packages. * @return xPDOCacheManager The xPDOCacheManager for this xPDO instance. */ public function getCacheManager($class= 'cache.xPDOCacheManager', $options = array('path' => XPDO_CORE_PATH, 'ignorePkg' => true)) { $actualClass = $this->loadClass($class, $options['path'], $options['ignorePkg'], true); if ($this->cacheManager === null || !is_object($this->cacheManager) || !($this->cacheManager instanceof $actualClass)) { if ($this->cacheManager= new $actualClass($this, $options)) { $this->_cacheEnabled= true; } } return $this->cacheManager; } /** * Returns the debug state for the xPDO instance. * * @return boolean The current debug state for the instance, true for on, * false for off. */ public function getDebug() { return $this->_debug; } /** * Sets the debug state for the xPDO instance. * * @param boolean|integer $v The debug status, true for on, false for off, or a valid * error_reporting level for PHP. */ public function setDebug($v= true) { $this->_debug= $v; } /** * Sets the logging level state for the xPDO instance. * * @param integer $level The logging level to switch to. * @return integer The previous log level. */ public function setLogLevel($level= xPDO::LOG_LEVEL_FATAL) { $oldLevel = $this->logLevel; $this->logLevel= intval($level); return $oldLevel; } /** * @return integer The current log level. */ public function getLogLevel() { return $this->logLevel; } /** * Sets the log target for xPDO::_log() calls. * * Valid target values include: * * * @param string $target An identifier indicating the target of the logging. * @return mixed The previous log target. */ public function setLogTarget($target= 'ECHO') { $oldTarget = $this->logTarget; $this->logTarget= $target; return $oldTarget; } /** * @return integer The current log level. */ public function getLogTarget() { return $this->logTarget; } /** * Log a message with details about where and when an event occurs. * * @param integer $level The level of the logged message. * @param string $msg The message to log. * @param string $target The logging target. * @param string $def The name of a defining structure (such as a class) to * help identify the message source. * @param string $file A filename in which the log event occured. * @param string $line A line number to help locate the source of the event * within the indicated file. */ public function log($level, $msg, $target= '', $def= '', $file= '', $line= '') { $this->_log($level, $msg, $target, $def, $file, $line); } /** * Log a message as appropriate for the level and target. * * @param integer $level The level of the logged message. * @param string $msg The message to log. * @param string $target The logging target. * @param string $def The name of a defining structure (such as a class) to * help identify the log event source. * @param string $file A filename in which the log event occured. * @param string $line A line number to help locate the source of the event * within the indicated file. */ protected function _log($level, $msg, $target= '', $def= '', $file= '', $line= '') { if (empty ($target)) { $target = $this->logTarget; } $targetOptions = array(); if (is_array($target)) { if (isset($target['options'])) $targetOptions =& $target['options']; $target = isset($target['target']) ? $target['target'] : 'ECHO'; } if (empty($file) && isset($_SERVER['SCRIPT_NAME'])) { $file= $_SERVER['SCRIPT_NAME']; } if ($level === xPDO::LOG_LEVEL_FATAL) { while (ob_get_level() && @ob_end_flush()) {} exit ('[' . strftime('%Y-%m-%d %H:%M:%S') . '] (' . $this->_getLogLevel($level) . $def . $file . $line . ') ' . $msg . "\n" . ($this->getDebug() === true ? '
' . "\n" . print_r(debug_backtrace(), true) . "\n" . '
' : '')); } if ($this->_debug === true || $level <= $this->logLevel) { @ob_start(); if (!empty ($def)) { $def= " in {$def}"; } if (!empty ($file)) { $file= " @ {$file}"; } if (!empty ($line)) { $line= " : {$line}"; } switch ($target) { case 'HTML' : echo '
[' . strftime('%Y-%m-%d %H:%M:%S') . '] (' . $this->_getLogLevel($level) . $def . $file . $line . ')
' . $msg . '
' . "\n"; break; default : echo '[' . strftime('%Y-%m-%d %H:%M:%S') . '] (' . $this->_getLogLevel($level) . $def . $file . $line . ') ' . $msg . "\n"; } $content= @ob_get_contents(); @ob_end_clean(); if ($target=='FILE' && $this->getCacheManager()) { $filename = isset($targetOptions['filename']) ? $targetOptions['filename'] : 'error.log'; $filepath = isset($targetOptions['filepath']) ? $targetOptions['filepath'] : $this->getCachePath() . xPDOCacheManager::LOG_DIR; $this->cacheManager->writeFile($filepath . $filename, $content, 'a'); } elseif ($target=='ARRAY' && isset($targetOptions['var']) && is_array($targetOptions['var'])) { $targetOptions['var'][] = $content; } else { echo $content; } } } /** * Returns an abbreviated backtrace of debugging information. * * This function returns just the fields returned via xPDOObject::toArray() * on xPDOObject instances, and simply the classname for other objects, to * reduce the amount of unnecessary information returned. * * @return array The abbreviated backtrace. */ public function getDebugBacktrace() { $backtrace= array (); foreach (debug_backtrace() as $levelKey => $levelElement) { foreach ($levelElement as $traceKey => $traceElement) { if ($traceKey == 'object' && $traceElement instanceof xPDOObject) { $backtrace[$levelKey][$traceKey]= $traceElement->toArray('', true); } elseif ($traceKey == 'object') { $backtrace[$levelKey][$traceKey]= get_class($traceElement); } else { $backtrace[$levelKey][$traceKey]= $traceElement; } } } return $backtrace; } /** * Gets a logging level as a string representation. * * @param integer $level The logging level to retrieve a string for. * @return string The string representation of a valid logging level. */ protected function _getLogLevel($level) { switch ($level) { case xPDO::LOG_LEVEL_DEBUG : $levelText= 'DEBUG'; break; case xPDO::LOG_LEVEL_INFO : $levelText= 'INFO'; break; case xPDO::LOG_LEVEL_WARN : $levelText= 'WARN'; break; case xPDO::LOG_LEVEL_ERROR : $levelText= 'ERROR'; break; default : $levelText= 'FATAL'; } return $levelText; } /** * Escapes the provided string using the platform-specific escape character. * * Different database engines escape string literals in SQL using different characters. For example, this is used to * escape column names that might match a reserved string for that SQL interpreter. To write database agnostic * queries with xPDO, it is highly recommend to escape any database or column names in any native SQL strings used. * * @param string $string A string to escape using the platform-specific escape characters. * @return string The string escaped with the platform-specific escape characters. */ public function escape($string) { $string = trim($string, $this->_escapeCharOpen . $this->_escapeCharClose); return $this->_escapeCharOpen . $string . $this->_escapeCharClose; } /** * Use to insert a literal string into a SQL query without escaping or quoting. * * @param string $string A string to return as a literal, unescaped and unquoted. * @return string The string with any escape or quote characters trimmed. */ public function literal($string) { $string = trim($string, $this->_escapeCharOpen . $this->_escapeCharClose . $this->_quoteChar); return $string; } /** * Adds the table prefix, and optionally database name, to a given table. * * @param string $baseTableName The table name as specified in the object * model. * @param boolean $includeDb Qualify the table name with the database name. * @return string The fully-qualified and quoted table name for the */ private function _getFullTableName($baseTableName, $includeDb= false) { $fqn= ''; if (!empty ($baseTableName)) { if ($includeDb) { $fqn .= $this->escape($this->config['dbname']) . '.'; } $fqn .= $this->escape($baseTableName); } return $fqn; } /** * Parses a DSN and returns an array of the connection details. * * @static * @param string $string The DSN to parse. * @return array An array of connection details from the DSN. * @todo Have this method handle all methods of DSN specification as handled * by latest native PDO implementation. */ public static function parseDSN($string) { $result= array (); $pos= strpos($string, ':'); $result['dbtype']= strtolower(substr($string, 0, $pos)); $parameters= explode(';', substr($string, ($pos +1))); for ($a= 0, $b= count($parameters); $a < $b; $a++) { $tmp= explode('=', $parameters[$a]); if (count($tmp) == 2) { $result[strtolower(trim($tmp[0]))]= trim($tmp[1]); } else { $result['dbname']= trim($parameters[$a]); } } if (!isset($result['dbname']) && isset($result['database'])) { $result['dbname'] = $result['database']; } if (!isset($result['host']) && isset($result['server'])) { $result['host'] = $result['server']; } return $result; } /** * Retrieves a result array from the object cache. * * @param string|xPDOCriteria $signature A unique string or xPDOCriteria object * that represents the query identifying the result set. * @param string $class An optional classname the result represents. * @param array $options Various cache options. * @return array|string|null A PHP array or JSON object representing the * result set, or null if no cache representation is found. */ public function fromCache($signature, $class= '', $options= array()) { $result= null; if ($this->getOption(xPDO::OPT_CACHE_DB, $options)) { if ($signature && $this->getCacheManager()) { $sig= ''; $sigKey= array(); $sigHash= ''; $sigClass= empty($class) || !is_string($class) ? '' : $class; if (is_object($signature)) { if ($signature instanceof xPDOCriteria) { if ($signature instanceof xPDOQuery) { $signature->construct(); if (empty($sigClass)) $sigClass= $signature->getTableClass(); } $sigKey= array ($signature->sql, $signature->bindings); } } elseif (is_string($signature)) { if ($exploded= explode('_', $signature)) { $class= reset($exploded); if (empty($sigClass) || $sigClass !== $class) { $sigClass= $class; } if (empty($sigKey)) { while ($key= next($exploded)) { $sigKey[]= $key; } } } } if (empty($sigClass)) $sigClass= '__sqlResult'; if ($sigClass && $sigKey) { $sigHash= md5($this->toJSON($sigKey)); $sig= implode('/', array ($sigClass, $sigHash)); } if (is_string($sig) && !empty($sig)) { $result= $this->cacheManager->get($sig, array( xPDO::OPT_CACHE_KEY => $this->getOption('cache_db_key', $options, 'db'), xPDO::OPT_CACHE_HANDLER => $this->getOption(xPDO::OPT_CACHE_DB_HANDLER, $options, $this->getOption(xPDO::OPT_CACHE_HANDLER, $options, 'cache.xPDOFileCache')), xPDO::OPT_CACHE_FORMAT => (integer) $this->getOption('cache_db_format', null, $this->getOption(xPDO::OPT_CACHE_FORMAT, null, xPDOCacheManager::CACHE_PHP)), 'cache_prefix' => $this->getOption('cache_db_prefix', $options, xPDOCacheManager::CACHE_DIR), )); if ($this->getDebug() === true) { if (!$result) { $this->log(xPDO::LOG_LEVEL_DEBUG, 'No cache item found for class ' . $sigClass . ' with signature ' . xPDOCacheManager::CACHE_DIR . $sig); } else { $this->log(xPDO::LOG_LEVEL_DEBUG, 'Loaded cache item for class ' . $sigClass . ' with signature ' . xPDOCacheManager::CACHE_DIR . $sig); } } } } } return $result; } /** * Places a result set in the object cache. * * @param string|xPDOCriteria $signature A unique string or xPDOCriteria object * representing the object. * @param object $object An object to place a representation of in the cache. * @param integer $lifetime An optional number of seconds the cached result * will remain valid, with 0 meaning it will remain valid until replaced or * removed. * @param array $options Various cache options. * @return boolean Indicates if the object was successfully cached. */ public function toCache($signature, $object, $lifetime= 0, $options = array()) { $result= false; if ($this->getCacheManager()) { if ($this->getOption(xPDO::OPT_CACHE_DB, $options)) { if ($lifetime === true) { $lifetime = 0; } elseif (!$lifetime && $this->getOption(xPDO::OPT_CACHE_DB_EXPIRES, $options, 0)) { $lifetime= intval($this->getOption(xPDO::OPT_CACHE_DB_EXPIRES, $options, 0)); } $sigKey= array(); $sigClass= ''; $sigGraph= $this->getOption(xPDO::OPT_CACHE_DB_SIG_GRAPH, $options, array()); if (is_object($signature)) { if ($signature instanceof xPDOCriteria) { if ($signature instanceof xPDOQuery) { $signature->construct(); if (empty($sigClass)) $sigClass = $signature->getTableClass(); } $sigKey= array($signature->sql, $signature->bindings); } } elseif (is_string($signature)) { $exploded= explode('_', $signature); if ($exploded && count($exploded) >= 2) { $class= reset($exploded); if (empty($sigClass) || $sigClass !== $class) { $sigClass= $class; } if (empty($sigKey)) { while ($key= next($exploded)) { $sigKey[]= $key; } } } } if (empty($sigClass)) { if ($object instanceof xPDOObject) { $sigClass= $object->_class; } else { $sigClass= $this->getOption(xPDO::OPT_CACHE_DB_SIG_CLASS, $options, '__sqlResult'); } } if (empty($sigKey) && is_string($signature)) $sigKey= $signature; if (empty($sigKey) && $object instanceof xPDOObject) $sigKey= $object->getPrimaryKey(); if ($sigClass && $sigKey) { $sigHash= md5($this->toJSON(is_array($sigKey) ? $sigKey : array($sigKey))); $sig= implode('/', array ($sigClass, $sigHash)); if (is_string($sig)) { if ($this->getOption('modified', $options, false)) { if (empty($sigGraph) && $object instanceof xPDOObject) { $sigGraph = array_merge(array($object->_class => array('class' => $object->_class)), $object->_aggregates, $object->_composites); } if (!empty($sigGraph)) { foreach ($sigGraph as $gAlias => $gMeta) { $gClass = $gMeta['class']; $removed= $this->cacheManager->delete($gClass, array_merge($options, array( xPDO::OPT_CACHE_KEY => $this->getOption('cache_db_key', $options, 'db'), xPDO::OPT_CACHE_HANDLER => $this->getOption(xPDO::OPT_CACHE_DB_HANDLER, $options, $this->getOption(xPDO::OPT_CACHE_HANDLER, $options, 'cache.xPDOFileCache')), xPDO::OPT_CACHE_FORMAT => (integer) $this->getOption('cache_db_format', $options, $this->getOption(xPDO::OPT_CACHE_FORMAT, $options, xPDOCacheManager::CACHE_PHP)), xPDO::OPT_CACHE_EXPIRES => (integer) $this->getOption(xPDO::OPT_CACHE_DB_EXPIRES, null, $this->getOption(xPDO::OPT_CACHE_EXPIRES, null, 0)), xPDO::OPT_CACHE_PREFIX => $this->getOption('cache_db_prefix', $options, xPDOCacheManager::CACHE_DIR), 'multiple_object_delete' => true ))); if ($this->getDebug() === true) { $this->log(xPDO::LOG_LEVEL_DEBUG, "Removing all cache objects of class {$gClass}: " . ($removed ? 'successful' : 'failed')); } } } } $cacheOptions = array_merge($options, array( xPDO::OPT_CACHE_KEY => $this->getOption('cache_db_key', $options, 'db'), xPDO::OPT_CACHE_HANDLER => $this->getOption(xPDO::OPT_CACHE_DB_HANDLER, $options, $this->getOption(xPDO::OPT_CACHE_HANDLER, $options, 'cache.xPDOFileCache')), xPDO::OPT_CACHE_FORMAT => (integer) $this->getOption('cache_db_format', $options, $this->getOption(xPDO::OPT_CACHE_FORMAT, $options, xPDOCacheManager::CACHE_PHP)), xPDO::OPT_CACHE_EXPIRES => (integer) $this->getOption(xPDO::OPT_CACHE_DB_EXPIRES, null, $this->getOption(xPDO::OPT_CACHE_EXPIRES, null, 0)), xPDO::OPT_CACHE_PREFIX => $this->getOption('cache_db_prefix', $options, xPDOCacheManager::CACHE_DIR) )); $result= $this->cacheManager->set($sig, $object, $lifetime, $cacheOptions); if ($result && $object instanceof xPDOObject) { if ($this->getDebug() === true) { $this->log(xPDO::LOG_LEVEL_DEBUG, "xPDO->toCache() successfully cached object with signature " . xPDOCacheManager::CACHE_DIR . $sig); } } if (!$result) { $this->log(xPDO::LOG_LEVEL_WARN, "xPDO->toCache() could not cache object with signature " . xPDOCacheManager::CACHE_DIR . $sig); } } } else { $this->log(xPDO::LOG_LEVEL_ERROR, "Object sent toCache() has an invalid signature."); } } } else { $this->log(xPDO::LOG_LEVEL_ERROR, "Attempt to send a non-object to toCache()."); } return $result; } /** * Converts a PHP array into a JSON encoded string. * * @param array $array The PHP array to convert. * @return string The JSON representation of the source array. */ public function toJSON($array) { $encoded= ''; if (is_array ($array)) { if (!function_exists('json_encode')) { if (@ include_once (XPDO_CORE_PATH . 'json/JSON.php')) { $json = new Services_JSON(); $encoded= $json->encode($array); } } else { $encoded= json_encode($array); } } return $encoded; } /** * Converts a JSON source string into an equivalent PHP representation. * * @param string $src A JSON source string. * @param boolean $asArray Indicates if the result should treat objects as * associative arrays; since all JSON associative arrays are objects, the default * is true. Set to false to have JSON objects returned as PHP objects. * @return mixed The PHP representation of the JSON source. */ public function fromJSON($src, $asArray= true) { $decoded= ''; if ($src) { if (!function_exists('json_decode')) { if (@ include_once (XPDO_CORE_PATH . 'json/JSON.php')) { if ($asArray) { $json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE); } else { $json = new Services_JSON(); } $decoded= $json->decode($src); } } else { $decoded= json_decode($src, $asArray); } } return $decoded; } /** * @see http://php.net/manual/en/function.pdo-begintransaction.php */ public function beginTransaction() { if (!$this->connect(null, array(xPDO::OPT_CONN_MUTABLE => true))) { return false; } return $this->pdo->beginTransaction(); } /** * @see http://php.net/manual/en/function.pdo-commit.php */ public function commit() { if (!$this->connect(null, array(xPDO::OPT_CONN_MUTABLE => true))) { return false; } return $this->pdo->commit(); } /** * @see http://php.net/manual/en/function.pdo-exec.php */ public function exec($query) { if (!$this->connect(null, array(xPDO::OPT_CONN_MUTABLE => true))) { return false; } $tstart= microtime(true); $return= $this->pdo->exec($query); $this->queryTime += microtime(true) - $tstart; $this->executedQueries++; return $return; } /** * @see http://php.net/manual/en/function.pdo-errorcode.php */ public function errorCode() { if (!$this->connect()) { return false; } return $this->pdo->errorCode(); } /** * @see http://php.net/manual/en/function.pdo-errorinfo.php */ public function errorInfo() { if (!$this->connect()) { return false; } return $this->pdo->errorInfo(); } /** * @see http://php.net/manual/en/function.pdo-getattribute.php */ public function getAttribute($attribute) { if (!$this->connect()) { return false; } return $this->pdo->getAttribute($attribute); } /** * @see http://php.net/manual/en/function.pdo-lastinsertid.php */ public function lastInsertId() { if (!$this->connect()) { return false; } return $this->pdo->lastInsertId(); } /** * @see http://php.net/manual/en/function.pdo-prepare.php */ public function prepare($statement, $driver_options= array ()) { if (!$this->connect()) { return false; } return $this->pdo->prepare($statement, $driver_options); } /** * @see http://php.net/manual/en/function.pdo-query.php */ public function query($query) { if (!$this->connect()) { return false; } $tstart= microtime(true); $return= $this->pdo->query($query); $this->queryTime += microtime(true) - $tstart; $this->executedQueries++; return $return; } /** * @see http://php.net/manual/en/function.pdo-quote.php */ public function quote($string, $parameter_type= PDO::PARAM_STR) { if (!$this->connect()) { return false; } $quoted = $this->pdo->quote($string, $parameter_type); switch ($parameter_type) { case PDO::PARAM_STR: $quoted = trim($quoted); break; case PDO::PARAM_INT: $quoted = trim($quoted); $quoted = (integer) trim($quoted, "'"); break; default: break; } return $quoted; } /** * @see http://php.net/manual/en/function.pdo-rollback.php */ public function rollBack() { if (!$this->connect(null, array(xPDO::OPT_CONN_MUTABLE => true))) { return false; } return $this->pdo->rollBack(); } /** * @see http://php.net/manual/en/function.pdo-setattribute.php */ public function setAttribute($attribute, $value) { if (!$this->connect()) { return false; } return $this->pdo->setAttribute($attribute, $value); } /** * Creates an new xPDOQuery for a specified xPDOObject class. * * @param string $class The class to create the xPDOQuery for. * @param mixed $criteria Any valid xPDO criteria expression. * @param boolean|integer $cacheFlag Indicates if the result should be cached * and optionally for how many seconds (if passed an integer greater than 0). * @return xPDOQuery The resulting xPDOQuery instance or false if unsuccessful. */ public function newQuery($class, $criteria= null, $cacheFlag= true) { $query= false; if ($this->loadClass($this->config['dbtype'] . '.xPDOQuery', '', false, true)) { $xpdoQueryClass= 'xPDOQuery_' . $this->config['dbtype']; if (!class_exists($xpdoQueryClass, false)) include_once dirname(__FILE__) . '/om/' . $this->config['dbtype'] . '/xpdoquery.class.php'; if ($query= new $xpdoQueryClass($this, $class, $criteria)) { $query->cacheFlag= $cacheFlag; } } return $query; } /** * Splits a string on a specified character, ignoring escaped content. * * @static * @param string $char A character to split the tag content on. * @param string $str The string to operate on. * @param string $escToken A character used to surround escaped content; all * content within a pair of these tokens will be ignored by the split * operation. * @param integer $limit Limit the number of results. Default is 0 which is * no limit. Note that setting the limit to 1 will only return the content * up to the first instance of the split character and will discard the * remainder of the string. * @return array An array of results from the split operation, or an empty * array. */ public static function escSplit($char, $str, $escToken = '`', $limit = 0) { $split= array(); $charPos = strpos($str, $char); if ($charPos !== false) { if ($charPos === 0) { $searchPos = 1; $startPos = 1; } else { $searchPos = 0; $startPos = 0; } $escOpen = false; $strlen = strlen($str); for ($i = $startPos; $i <= $strlen; $i++) { if ($i == $strlen) { $tmp= trim(substr($str, $searchPos)); if (!empty($tmp)) $split[]= $tmp; break; } if ($str[$i] == $escToken) { $escOpen = $escOpen == true ? false : true; continue; } if (!$escOpen && $str[$i] == $char) { $tmp= trim(substr($str, $searchPos, $i - $searchPos)); if (!empty($tmp)) { $split[]= $tmp; if ($limit > 0 && count($split) >= $limit) { break; } } $searchPos = $i + 1; } } } else { $split[]= trim($str); } return $split; } /** * Parses parameter bindings in SQL prepared statements. * * @param string $sql A SQL prepared statement to parse bindings in. * @param array $bindings An array of parameter bindings to use for the replacements. * @return string The SQL with the binding placeholders replaced. */ public function parseBindings($sql, $bindings) { if (!empty($sql) && !empty($bindings)) { reset($bindings); $bound = array(); while (list ($k, $param)= each($bindings)) { if (!is_array($param)) { $v= $param; $type= $this->getPDOType($param); $bindings[$k]= array( 'value' => $v, 'type' => $type ); } else { $v= $param['value']; $type= $param['type']; } if (!$v) { switch ($type) { case PDO::PARAM_INT: $v= '0'; break; case PDO::PARAM_BOOL: $v= '0'; break; default: break; } } if ($type > 0) { $v= $this->quote($v, $type); } else { $v= 'NULL'; } if (!is_int($k) || substr($k, 0, 1) === ':') { $pattern= '/' . $k . '\b/'; $bound[$pattern] = str_replace(array('\\', '$'), array('\\\\', '\$'), $v); } else { $pattern = '/(\?)(\b)?/'; $sql = preg_replace($pattern, ':' . $k . '$2', $sql, 1); $bound['/:' . $k . '\b/'] = str_replace(array('\\', '$'), array('\\\\', '\$'), $v); } } $this->log(xPDO::LOG_LEVEL_INFO, "{$sql}\n" . print_r($bound, true)); if (!empty($bound)) { $sql= preg_replace(array_keys($bound), array_values($bound), $sql); } } return $sql; } /** * Get the appropriate PDO::PARAM_ type constant from a PHP value. * * @param mixed $value Any PHP scalar or null value * @return int|null */ public function getPDOType($value) { $type= null; if (is_null($value)) $type= PDO::PARAM_NULL; elseif (is_scalar($value)) { if (is_int($value)) $type= PDO::PARAM_INT; else $type= PDO::PARAM_STR; } return $type; } } /** * Encapsulates a SQL query into a PDOStatement with a set of bindings. * * @package xpdo * */ class xPDOCriteria { public $sql= ''; public $stmt= null; public $bindings= array (); public $cacheFlag= false; /** * The constructor for a new xPDOCriteria instance. * * The constructor optionally prepares provided SQL and/or parameter * bindings. Setting the bindings via the constructor or with the {@link * xPDOCriteria::bind()} function allows you to make use of the data object * caching layer. * * The statement will not be prepared immediately if the cacheFlag value is * true or a positive integer, in order to allow the result to be found in * the cache before being queried from an actual database connection. * * @param xPDO &$xpdo An xPDO instance that will control this criteria. * @param string $sql The SQL statement. * @param array $bindings Bindings to bind to the criteria. * @param boolean|integer $cacheFlag Indicates if the result set from the * criteria is to be cached (true|false) or optionally a TTL in seconds. * @return xPDOCriteria */ public function __construct(& $xpdo, $sql= '', $bindings= array (), $cacheFlag= false) { $this->xpdo= & $xpdo; $this->cacheFlag= $cacheFlag; if (is_string($sql) && !empty ($sql)) { $this->sql= $sql; if ($cacheFlag === false || $cacheFlag < 0) { $this->stmt= $xpdo->prepare($sql); } if (!empty ($bindings)) { $this->bind($bindings, true, $cacheFlag); } } } /** * Binds an array of key/value pairs to the xPDOCriteria prepared statement. * * Use this method to bind parameters in a way that makes it possible to * cache results of previous executions of the criteria or compare the * criteria to other individual or collections of criteria. * * @param array $bindings Bindings to merge with any existing bindings * defined for this xPDOCriteria instance. Bindings can be simple * associative array of key-value pairs or the value for each key can * contain elements titled value, type, and length corresponding to the * appropriate parameters in the PDOStatement::bindValue() and * PDOStatement::bindParam() functions. * @param boolean $byValue Determines if the $bindings are to be bound as * parameters (by variable reference, the default behavior) or by direct * value (if true). * @param boolean|integer $cacheFlag The cacheFlag indicates the cache state * of the xPDOCriteria object and can be absolutely off (false), absolutely * on (true), or an integer indicating the number of seconds the result will * live in the cache. */ public function bind($bindings= array (), $byValue= true, $cacheFlag= false) { if (!empty ($bindings)) { $this->bindings= array_merge($this->bindings, $bindings); } if (is_object($this->stmt) && $this->stmt && !empty ($this->bindings)) { reset($this->bindings); while (list ($key, $val)= each($this->bindings)) { if (is_array($val)) { $type= isset ($val['type']) ? $val['type'] : PDO::PARAM_STR; $length= isset ($val['length']) ? $val['length'] : 0; $value= & $val['value']; } else { $value= & $val; $type= PDO::PARAM_STR; $length= 0; } if (is_int($key)) $key= $key + 1; if ($byValue) { $this->stmt->bindValue($key, $value, $type); } else { $this->stmt->bindParam($key, $value, $type, $length); } } } $this->cacheFlag= $cacheFlag === null ? $this->cacheFlag : $cacheFlag; } /** * Compares to see if two xPDOCriteria instances are the same. * * @param object $obj A xPDOCriteria object to compare to this one. * @return boolean true if they are both equal is SQL and bindings, otherwise * false. */ public function equals($obj) { return (is_object($obj) && $obj instanceof xPDOCriteria && $this->sql === $obj->sql && !array_diff_assoc($this->bindings, $obj->bindings)); } /** * Prepares the sql and bindings of this instance into a PDOStatement. * * The {@link xPDOCriteria::$sql} attribute must be set in order to prepare * the statement. You can also pass bindings directly to this function and * they will be run through {@link xPDOCriteria::bind()} if the statement * is successfully prepared. * * If the {@link xPDOCriteria::$stmt} already exists, it is simply returned. * * @param array $bindings Bindings to merge with any existing bindings * defined for this xPDOCriteria instance. Bindings can be simple * associative array of key-value pairs or the value for each key can * contain elements titled value, type, and length corresponding to the * appropriate parameters in the PDOStatement::bindValue() and * PDOStatement::bindParam() functions. * @param boolean $byValue Determines if the $bindings are to be bound as * parameters (by variable reference, the default behavior) or by direct * value (if true). * @param boolean|integer $cacheFlag The cacheFlag indicates the cache state * of the xPDOCriteria object and can be absolutely off (false), absolutely * on (true), or an integer indicating the number of seconds the result will * live in the cache. * @return PDOStatement The prepared statement, ready to execute. */ public function prepare($bindings= array (), $byValue= true, $cacheFlag= null) { if ($this->stmt === null || !is_object($this->stmt)) { if (!empty ($this->sql) && $stmt= $this->xpdo->prepare($this->sql)) { $this->stmt= & $stmt; $this->bind($bindings, $byValue, $cacheFlag); } } return $this->stmt; } /** * Converts the current xPDOQuery to parsed SQL. * * @param bool $parseBindings If true, bindings are parsed locally; otherwise * they are left in place. * @return string The parsed SQL query. */ public function toSQL($parseBindings = true) { $sql = $this->sql; if ($parseBindings && !empty($this->bindings)) { $sql = $this->xpdo->parseBindings($sql, $this->bindings); } return $sql; } } /** * An iteratable representation of an xPDOObject result set. * * Use an xPDOIterator to loop over large result sets and work with one instance * at a time. This greatly reduces memory usage over loading the entire collection * of objects into memory at one time. It is also slightly faster. * * @package xpdo */ class xPDOIterator implements Iterator { private $xpdo = null; private $index = 0; private $current = null; /** @var null|PDOStatement */ private $stmt = null; private $class = null; private $alias = null; /** @var null|int|str|array|xPDOQuery */ private $criteria = null; private $criteriaType = 'xPDOQuery'; private $cacheFlag = false; /** * Construct a new xPDOIterator instance (do not call directly). * * @see xPDO::getIterator() * @param xPDO &$xpdo A reference to a valid xPDO instance. * @param array $options An array of options for the iterator. * @return xPDOIterator An xPDOIterator instance. */ function __construct(& $xpdo, array $options= array()) { $this->xpdo =& $xpdo; if (isset($options['class'])) { $this->class = $this->xpdo->loadClass($options['class']); } if (isset($options['alias'])) { $this->alias = $options['alias']; } else { $this->alias = $this->class; } if (isset($options['cacheFlag'])) { $this->cacheFlag = $options['cacheFlag']; } if (array_key_exists('criteria', $options) && is_object($options['criteria'])) { $this->criteria = $options['criteria']; } elseif (!empty($this->class)) { $criteria = array_key_exists('criteria', $options) ? $options['criteria'] : null; $this->criteria = $this->xpdo->getCriteria($this->class, $criteria, $this->cacheFlag); } if (!empty($this->criteria)) { $this->criteriaType = $this->xpdo->getCriteriaType($this->criteria); if ($this->criteriaType === 'xPDOQuery') { $this->class = $this->criteria->getClass(); $this->alias = $this->criteria->getAlias(); } } } public function rewind() { $this->index = 0; if (!empty($this->stmt)) { $this->stmt->closeCursor(); } $this->stmt = $this->criteria->prepare(); $tstart = microtime(true); if ($this->stmt && $this->stmt->execute()) { $this->xpdo->queryTime += microtime(true) - $tstart; $this->xpdo->executedQueries++; $this->fetch(); } elseif ($this->stmt) { $this->xpdo->queryTime += microtime(true) - $tstart; $this->xpdo->executedQueries++; } } public function current() { return $this->current; } public function key() { return $this->index; } public function next() { $this->fetch(); if (!$this->valid()) { $this->index = null; } else { $this->index++; } return $this->current(); } public function valid() { return ($this->current !== null); } /** * Fetch the next row from the result set and set it as current. * * Calls the _loadInstance() method for the specified class, so it properly * inherits behavior from xPDOObject derivatives. */ protected function fetch() { $row = $this->stmt->fetch(PDO::FETCH_ASSOC); if (is_array($row) && !empty($row)) { $this->current = $this->xpdo->call($this->class, '_loadInstance', array(& $this->xpdo, $this->class, $this->alias, $row)); } else { $this->current = null; } } } /** * Represents a unique PDO connection managed by xPDO. * * @package xpdo */ class xPDOConnection { /** * @var xPDO A reference to a valid xPDO instance. */ public $xpdo = null; /** * @var array An array of configuration options for this connection. */ public $config = array(); /** * @var PDO The PDO object represented by the xPDOConnection instance. */ public $pdo = null; /** * @var boolean Indicates if this connection can be written to. */ private $_mutable = true; /** * Construct a new xPDOConnection instance. * * @param xPDO $xpdo A reference to a valid xPDO instance to attach to. * @param string $dsn A string representing the DSN connection string. * @param string $username The database username credentials. * @param string $password The database password credentials. * @param array $options An array of xPDO options for the connection. * @param array $driverOptions An array of PDO driver options for the connection. */ public function __construct(xPDO &$xpdo, $dsn, $username= '', $password= '', $options= array(), $driverOptions= array()) { $this->xpdo =& $xpdo; if (is_array($this->xpdo->config)) $options= array_merge($this->xpdo->config, $options); if (!isset($options[xPDO::OPT_TABLE_PREFIX])) $options[xPDO::OPT_TABLE_PREFIX]= ''; $this->config= array_merge($options, xPDO::parseDSN($dsn)); $this->config['dsn']= $dsn; $this->config['username']= $username; $this->config['password']= $password; $driverOptions = is_array($driverOptions) ? $driverOptions : array(); if (array_key_exists('driverOptions', $this->config) && is_array($this->config['driverOptions'])) { $driverOptions = array_merge($this->config['driverOptions'], $driverOptions); } $this->config['driverOptions']= $driverOptions; if (array_key_exists(xPDO::OPT_CONN_MUTABLE, $this->config)) { $this->_mutable= (boolean) $this->config[xPDO::OPT_CONN_MUTABLE]; } } /** * Indicates if the connection can be written to, e.g. INSERT/UPDATE/DELETE. * * @return bool True if the connection can be written to. */ public function isMutable() { return $this->_mutable; } /** * Actually make a connection for this instance via PDO. * * @param array $driverOptions An array of PDO driver options for the connection. * @return bool True if a successful connection is made. */ public function connect($driverOptions = array()) { if ($this->pdo === null) { if (is_array($driverOptions) && !empty($driverOptions)) { $this->config['driverOptions']= array_merge($this->config['driverOptions'], $driverOptions); } try { $this->pdo= new PDO($this->config['dsn'], $this->config['username'], $this->config['password'], $this->config['driverOptions']); } catch (PDOException $xe) { $this->xpdo->log(xPDO::LOG_LEVEL_ERROR, $xe->getMessage(), '', __METHOD__, __FILE__, __LINE__); return false; } catch (Exception $e) { $this->xpdo->log(xPDO::LOG_LEVEL_ERROR, $e->getMessage(), '', __METHOD__, __FILE__, __LINE__); return false; } $connected= (is_object($this->pdo)); if ($connected) { $connectFile = XPDO_CORE_PATH . 'om/' . $this->config['dbtype'] . '/connect.inc.php'; if (!empty($this->config['connect_file']) && file_exists($this->config['connect_file'])) { $connectFile = $this->config['connect_file']; } if (file_exists($connectFile)) include ($connectFile); } if (!$connected) { $this->pdo= null; } } $connected= is_object($this->pdo); return $connected; } /** * Get an option set for this xPDOConnection instance. * * @param string $key The option key to get a value for. * @param array|null $options An optional array of options to consider. * @param mixed $default A default value to use if the option is not found. * @return mixed The option value. */ public function getOption($key, $options = null, $default = null) { if (is_array($options)) { $options = array_merge($this->config, $options); } else { $options = $this->config; } return $this->xpdo->getOption($key, $options, $default); } } /** * A basic class for xPDO Exceptions. */ class xPDOException extends Exception {} PK!  notes.txtnu[1) Do not delete [[site_name]] from table [[dbprefix]]site_content, keep as it is added to show some content on enduser page. (Not needed since 2.5.0-pl since default content is added by default) 2) The password encryption method has been changed so 3 files 'modhashing.class.php', 'modpbkdf2.class.php' and 'xpdo.class.php' are included in the install.php ( This files are not required in install.php from 2.7.0 but we need it for edit.php) 3) Do not change this files 'modhashing.class.php', 'modpbkdf2.class.php', 'xpdo.class.php'. 4) Do not change "background-image: url(data:image/png;base64," in table [[dbprefix]]site_templates since these are images encoded in base64. Let it be as it is. Since 2.5.0pl. 5) PHP REQUIREMENT LINK: https://modx.com/download and /core/vendor/composer/platform_check.php(Composer Dependencies require PHP 7.4.0) 6) Give writable permission to manager and root folder to check config.core.php changes. 7)Before MySQL 5.6 Full-Text table type is supported only with MyISAM Engine(Full-Text table type required by MODX), hence removed the innodb engine, default engine will be assigned automatically 8) Languages have been removed since 3.0.1-pl User needs to change languages from Toggle option from admin menu. https://docs.modx.com/3.x/en/getting-started/upgrading-to-3.0/manager-language 9) Check and Move /manager/assets/ext3/adapter/jquery/ext-jquery-adapter-debug.js /manager/assets/ext3/adapter/prototype/ext-prototype-adapter-debug.js /manager/assets/ext3/adapter/yui/ext-yui-adapter-debug.js manual to original zip.PK! ,;images/modx.pngnu[PNG  IHDRtEXtSoftwareAdobe ImageReadyqe<iTXtXML:com.adobe.xmp Y,PLTELvCSrOMlN}PQ6-g>[MQdX9v❭NK4wO0qݢSIJaMUL\H.'rqd֏jw7UҴܣq\6%#R·e=fNFAŶUqhZ\W![GvWUFDOKR`G|T@0rA:NSeHۅaiGF~:BIDATx̜{WJ*(=r X୊J=m/|L&xV7{NM5k-ND!>A:ρs`05@YO& ̹ BLXxM`" ,Qm@n8 ڀ@S:_M )m "  ɥ2h"DHYR,+u][֝MPb8Xou>õyggmoXoߠu kgAbZQ/˗g0?rҢOb12E-K^Lj64dmuϖ#_i*~l%'  rt6 ptb]I d@NjȊE$n+vIxLUɽ6Q;Dh,I 1q>$& 1PÍ`8Zt8N`TT2D ='EF0_i, D=~brrL2M`0ST>~/w爏PY,dt ~f@akLD3}\|Fp8"5r&lŲyB"90<b@jcvL:(,aQ4H*$Z5{-f$v3H5xR cP,RVaU$C(Ĉ1k(@p]r1"l`!9Vɡ?wހˢ3dz@JaSk$"t(: b|bh6dv;Yx)>B.ƚ Hڈ`f ݚdS? 0$5BWfU;LDH fvs"xokr8TڅT*/8U|y$mh3ŝpΈ `<$\N ͐AC(فtoFqXzQ;|Hbbqz>~MnQN^ADX|BwGS0h! v  C^?b1 4(Buvir 13׮B@jsXq&4T/'t!ÈDP,)@ntu}gHkb"PtFU'^HbR'^%n}P2f E0J fWo+Gw$b+dӐgrŧ"$3hzyL vRNmX0ָ=AYF/=Ce ?f6h2rV|B:`k4O. Z*=:P :&FлOB(* a3\#r *(8sU@y-e<`1sPbz'cO &?T~D&\ ZAqm4NG @QHOT:u@ W¥\ !iˆɷW} D¯ۅ`>?AA`9p0KK?49:x8i\jg0c0 nV'ggqΎhrꄇ TgZ!$\Q>UۡHa6z>?sE`NK O_9AS~X*=xcDR ae42 l9{P(u~aM,$-@\"L3 “p2@Kl0?S[N7k4%cb럷6,%7jX L;WtZ"s_\@:pv@N'&d,gzRÙxX{hvA䶢Z~÷doPbL$qRVTg=%%;wQl0愽*?8jFfL՞8j B,3CwsՂ62c gwǜG3$< Y%v`D5-`57X=hpL\e`8H€X\ + +8_ crVKdF]0RhNiZ)@DZGfenFLݤ0=v8߂!Ȟp"I 6`PDuEy#3|NmZ~P!q(kAYJip*`6XbA.[td9|%qyYo16J{`/SQLJB!$T 3[ +0j|\>}u!Lp;1L fKBIR6OicOoQ;)>z=K":/hb/eWP@y{auOj@ڄЫb~U.B)m7m/[S+S/aμEzEC#ЫAſwEiTIf@zJ dYoʽJ۽>~=L}}@DY' n$7 /\^X+Dω9Kg+^x(ыIdӋĠD"m&Ftm XY$J$vBV) ,LLWt?G<Ƀ}]˳D)b@/`@6_"CZ "ٺ {FyCIo@ZѸXbЩ%_4HD`P;%8ȷ1|>WӚu AvBߞQ;pH@7 Ϡ"%|F,\ShSZuXŸF21$1{(gg`kJX#`(C^erӃ3e@V`о1 b!,rMp#8EVWS0@TjEV٘'¦l[$zC򡄕1Kx>p&AZ OxZx} ˙9Eí@3V,w$ Faփ?~rQ TÌQV,s}Z@!xt TjPZ,AqC_DqTt.5҈O-mW -򷙌c=-:+{[ eSA63CQϩ#|u@AtZaA_κ_x_]̓W x j_>|8_}7s3ߣShUѷK[Ì [bX`+RP]at ȔȜ¦y5h<qs 8< ±8f5 ||o@T, hI_ɤ a[[0?pcIENDB`PK!g`l( ( images/logo.pngnu[PNG  IHDRFll!\tEXtSoftwareAdobe ImageReadyqe<,PLTE222KKKG֑lNVqNtBP[LdڨꬪiaMQ4,-(F2V8xxxeeeЉTK͍e>\ILKSݦ8xwOUjuk׶q8MASml~kY~N%o;T(mj 7hP@Pe1Ŋj  ko;8T "ȷ1C Z;CE˪XV*d&Xk#K٬E#HXBwUj7anw3h)i?P4x_JR}@v`<.ԤxX)ڼ'OU* k=")\`T|\0<(58J j5[ OAWvEt/%>{ŽGq)OزǨZLV^Z ^"QcT]L1=u-ԯ=ziA˫Z< .##j<"0 TZT˅{EC&R=jl~XʰU%G 1s)6 ~M%`]g{) Gl!f'O; co#b+F/ƵՅ]>\|+3IBJIdGFcHv'Q|oZ:o(LZ EDȱ6gff./s`yX :]d1WNoJE#5=*A yF?g1V\:NRK +XdTfG<7%Ujp7:o58Wk(c{I) U]&34xQU"Al+՟WϫRQyHr>KXjnnOR;4gtu*+Bet_%~hp7mL:L՞$,$tq6ao:*lEhwV;!=µyL 'G!;.-=EʬTZ}S.j8DEV QHb_OuvN˨2B ęJۖjYCI )$3ZܓxFC){\w&XڑT),LAFT)zjV`}89P1*NaH* V-* )ž15'l*(U Ϗp=Z*1G8UCXkCE,getOption('salt', $options, false); if (is_string($salt) && strlen($salt) > 0) { $iterations = (integer) $this->getOption('iterations', $options, 1000); $derivedKeyLength = (integer) $this->getOption('derived_key_length', $options, 32); $algorithm = $this->getOption('algorithm', $options, 'sha256'); $hashLength = strlen(hash($algorithm, null, true)); $keyBlocks = ceil($derivedKeyLength / $hashLength); $derivedKey = ''; for ($block = 1; $block <= $keyBlocks; $block++) { $hashBlock = $hb = hash_hmac($algorithm, $salt . pack('N', $block), $string, true); for ($blockIteration = 1; $blockIteration < $iterations; $blockIteration++) { $hashBlock ^= ($hb = hash_hmac($algorithm, $hb, $string, true)); } $derivedKey .= $hashBlock; } $derivedKey = substr($derivedKey, 0, $derivedKeyLength); if (!$this->getOption('raw_output', $options, false)) { $derivedKey = base64_encode($derivedKey); } } else { $this->host->modx->log(modX::LOG_LEVEL_ERROR, "PBKDF2 requires a valid salt string.", '', __METHOD__, __FILE__, __LINE__); } return $derivedKey; } } PK!5vvphp82/import.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 gSSMXe/yyEFwPhCM0bJLgb2B0eW=PK!k\php82/install.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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PK!..php82/edit.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 qPS=PK!Hk11php82/extend.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 pLfuzZWLsQDOi7djlqK=PK!xӴ600php82/upgrade.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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!zsjm""php82/clone.phpnu[ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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PK!5F3config.core.phpnu[ PK!}}AAphp71/import.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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!$i~ ~ php71/install.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 G+oxXbidT3b6hHUmgmg97a0AnB71minRPK!fffphp71/edit.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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PK!j(;;php71/extend.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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!Kphp71/upgrade.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 HrqcPK!|#&&php71/clone.phpnu[1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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PK!;zz import.phpnu[PK!2modhashing.class.phpnu[PK!^0 (install.phpnu[PK!jzW99Bmd5nu[PK!>&nn|php81/import.phpnu[PK!S ]php81/install.phpnu[PK!MrBB)php81/edit.phpnu[PK!L22php81/extend.phpnu[PK!O+$$php81/upgrade.phpnu[PK!,5"5"lphp81/clone.phpnu[PK!t$edit.xmlnu[PK!0PQ  &php56/import.phpnu[PK!+9php56/install.phpnu[PK!F13Uphp56/edit.phpnu[PK!58383&lphp56/extend.phpnu[PK!%\66php56/upgrade.phpnu[PK!h:!!php56/clone.phpnu[PK!C upgrade.xmlnu[PK!>F7 config.inc.phpnu[PK!?rVVedit.phpnu[PK!?.. Xextend.phpnu[PK!BI11 0'install.xmlnu[PK!Nzz+php53/import.phpnu[PK!4UV;php53/install.phpnu[PK!vjjlUphp53/edit.phpnu[PK!zy..kphp53/extend.phpnu[PK!"vaphp53/upgrade.phpnu[PK!} Gphp53/clone.phpnu[PK!I  info.xmlnu[PK!Mupdate_pass.phpnu[PK!Vv upgrade.phpnu[PK!g install.jsnu[PK!FJ  clone.phpnu[PK!o}$$  changelog.txtnu[PK!d' HH 5fileindex.phpnu[PK!"c6xpdo.class.phpnu[PK!  ;notes.txtnu[PK! ,;Aimages/modx.pngnu[PK!g`l( ( Wimages/logo.pngnu[PK!Q4 (bmodpbkdf2.class.phpnu[PK!5vv9lphp82/import.phpnu[PK!k\|php82/install.phpnu[PK!..ߘphp82/edit.phpnu[PK!Hk11Kphp82/extend.phpnu[PK!xӴ600\php82/upgrade.phpnu[PK!zsjm""php82/clone.phpnu[PK!5F3config.core.phpnu[PK!}}AAnphp71/import.phpnu[PK!$i~ ~ )php71/install.phpnu[PK!fffJphp71/edit.phpnu[PK!j(;;Rdphp71/extend.phpnu[PK!Kphp71/upgrade.phpnu[PK!|#&&php71/clone.phpnu[PK55+