/** * * * * **/ public static function getInstance($driver = NULL) { if (!self::$init) { self::init(); } if (!$driver && isset(self::$routine_driver_map[CATMAILER_LIB])) { $driver = self::$routine_driver_map[CATMAILER_LIB]; } if (!$driver) { $driver = 'PHPMailer'; } if (!preg_match('/driver$/i', $driver)) { $driver .= 'Driver'; } // check if the lib is available if (!file_exists(dirname(__FILE__) . '/../../../modules/' . CATMAILER_LIB)) { return false; } if (!isset(self::$_drivers[$driver]) || !is_object(self::$_drivers[$driver])) { if (!file_exists(dirname(__FILE__) . '/Mail/' . $driver . '.php')) { CAT_Object::getInstance()->printFatalError('No such mail driver: [' . $driver . ']'); } require dirname(__FILE__) . '/Mail/' . $driver . '.php'; $driver = 'CAT_Helper_Mail_' . $driver; self::$_drivers[$driver] = $driver::getInstance(self::$settings); } return self::$_drivers[$driver]; }
/** * include/enable HTMLPurifier * * @access private * @param $config - optional config array passed to HTMLPurifier * @return object **/ private static function getPurifier($config = NULL) { if (is_object(self::$purifier)) { return self::$purifier; } if (!class_exists('HTMLPurifier', false)) { $path = CAT_Helper_Directory::getInstance()->sanitizePath(CAT_PATH . '/modules/lib_htmlpurifier/htmlpurifier/library/HTMLPurifier.auto.php'); if (!file_exists($path)) { CAT_Object::getInstance()->printFatalError('Missing library HTMLPurifier!'); } include $path; } $pconfig = HTMLPurifier_Config::createDefault(); if ($config && is_array($config)) { foreach ($config as $key => $val) { $pconfig->set($key, $val); } } $pconfig->set('AutoFormat.Linkify', TRUE); $pconfig->set('URI.Disable', false); // allow most HTML but not all (no forms, for example) $pconfig->set('HTML.Allowed', 'a[href|title],abbr[title],acronym[title],b,blockquote[cite],br,caption,cite,code,dd,del,dfn,div,dl,dt,em,h1,h2,h3,h4,h5,h6,i,img[src|alt|title|class],ins,kbd,li,ol,p,pre,s,strike,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var'); self::$purifier = new HTMLPurifier($pconfig); return self::$purifier; }
/** * check a value as type * * @access public * @param mixed $value * @param string $as * @return mixed **/ public static function check($value, $as) { $func = 'is_' . $as; if (!function_exists($func)) { CAT_Object::getInstance()->printFatalError('No such validation method: ' . $as); } if (!$func($value)) { return false; } return $value; }
/** * try to load the driver * * @access private * @param string $driver - driver name * @param string $zipfile - optional zip file name * @return object **/ private static function getDriver($driver, $zipfile = NULL) { if (!preg_match('/driver$/i', $driver)) { $driver .= 'Driver'; } if (!isset(self::$_drivers[$driver]) || !is_object(self::$_drivers[$driver])) { if (!file_exists(dirname(__FILE__) . '/Zip/' . $driver . '.php')) { CAT_Object::getInstance()->printFatalError('No such Zip driver: [' . $driver . ']'); } require dirname(__FILE__) . '/Zip/' . $driver . '.php'; $driver = 'CAT_Helper_Zip_' . $driver; self::$_drivers[$driver] = $driver::getInstance($zipfile); } return self::$_drivers[$driver]; }