add_url_tokens($key); $key = implode('_',$key); if ( @self::$custom[$key] < time() - 24*3600) { self::$custom[$key] = time(); self::save(); } return $params; } static function get_watermark() { return self::$watermark; } static function load_from_db() { global $conf; $arr = @unserialize($conf['derivatives']); if (false!==$arr) { self::$type_map = $arr['d']; self::$watermark = @$arr['w']; if (!self::$watermark) self::$watermark = new WatermarkParams(); self::$custom = @$arr['c']; if (!self::$custom) self::$custom = array(); } else { self::make_default(); } self::build_maps(); } static function load_from_file() { global $conf; $arr = @unserialize(@file_get_contents(PHPWG_ROOT_PATH.$conf['data_location'].'derivatives.dat')); if (false!==$arr) { self::$type_map = $arr['d']; self::$watermark = @$arr['w']; if (!self::$watermark) self::$watermark = new WatermarkParams(); self::$custom = @$arr['c']; if (!self::$custom) self::$custom = array(); } else { self::make_default(); } self::build_maps(); } static function set_watermark($watermark) { self::$watermark = $watermark; } static function set_and_save($map) { self::$type_map = $map; self::save(); self::build_maps(); } static function save() { global $conf; $ser = serialize( array( 'd' => self::$type_map, 'w' => self::$watermark, 'c' => self::$custom, ) ); conf_update_param('derivatives', addslashes($ser) ); file_put_contents(PHPWG_ROOT_PATH.$conf['data_location'].'derivatives.dat', $ser); } private static function make_default() { self::$watermark = new WatermarkParams(); self::$type_map[IMG_SQUARE] = new DerivativeParams( SizingParams::square(120,120) ); self::$type_map[IMG_THUMB] = new DerivativeParams( SizingParams::classic(144,144) ); self::$type_map[IMG_SMALL] = new DerivativeParams( SizingParams::classic(240,240) ); self::$type_map[IMG_MEDIUM] = new DerivativeParams( SizingParams::classic(432,432) ); self::$type_map[IMG_LARGE] = new DerivativeParams( SizingParams::classic(648,576) ); self::$type_map[IMG_XLARGE] = new DerivativeParams( SizingParams::classic(864,648) ); self::$type_map[IMG_XXLARGE] = new DerivativeParams( SizingParams::classic(1200,900) ); } static function apply_global($params) { if (!empty(self::$watermark->file) && (self::$watermark->min_size[0]<=$params->sizing->ideal_size[0] && self::$watermark->min_size[1]<=$params->sizing->ideal_size[1] ) ) { $params->use_watermark = true; } } private static function build_maps() { foreach (self::$type_map as $type=>$params) { $params->type = $type; self::apply_global($params); } self::$all_type_map = self::$type_map; for ($i=0; $i=0; $j--) { $target = self::$all_types[$j]; if (isset(self::$type_map[$target])) { self::$all_type_map[$tocheck] = self::$type_map[$target]; self::$undefined_type_map[$tocheck] = $target; break; } } } } } } ?>