// +----------------------------------------------------------------------
namespace mall\utils;
use mall\basic\Setting;
use think\facade\Config;
use think\facade\Request;
class Tool {
public static function thumb($image="",$prefix=null,$root=false){
if(Check::url($image)) return $image;
$domain = $root ? trim(Request::domain(),"/") : "";
if(empty($image) || !file_exists(self::getRootPath() . "public/" . trim($image,"/"))){
return $domain . "/static/images/default.jpg";
}
$image = "/" . substr($image,stripos($image,"uploads"));
return $domain . $image;
}
public static function removeContentAttr($content){
return preg_replace([
'/(
]*?)width=.+?[\'|\"]/',
'/( $item) {
$num = mt_rand(1, $sum);
if ($num <= $item) {
$index = $key;
break;
} else {
$sum -= $item;
}
}
return $index;
}
public static function editor($content=""){
if(empty($content)){
return $content;
}
$runtime_path = self::getRootPath();
$path = $runtime_path . 'runtime/htmlpurifier/';
if(!file_exists($path)){
mkdir($path,0777,true);
}
$config = \HTMLPurifier_Config::createDefault();
$config->set('Cache.SerializerPath',$path);
$config->set('HTML.SafeEmbed',true);
$config->set('HTML.SafeObject',true);
$config->set('HTML.SafeIframe',true);
$config->set('Output.FlashCompat',true);
$config->set('Attr.EnableID',true);
//$config->set('HTML.AllowedElements',array('div'=>true,'table'=>true,'tr'=>true,'td'=>true,'br'=>true));
$config->set('Core.Encoding','UTF-8');
$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'target', 'Enum#_blank,_self,_target,_top');
$def->addAttribute('iframe', 'src',"URI");
$purifier = new \HTMLPurifier($config);
return $purifier->purify($content);
}
public static function prefix(){
$config = Config::get("database");
return $config["connections"][$config["default"]]["prefix"];
}
public static function moneyPrefix($price=0){
return Config::get("base.money_prefix") . $price;
}
public static function getRootPath(): string {
$path = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR;
return $path;
}
public static function odd($num){
return (is_numeric($num)&($num&1));
}
public static function even($num){
return (is_numeric($num)&(!($num&1)));
}
}