[12770] | 1 | <?php |
---|
| 2 | |
---|
[12775] | 3 | define('IMG_SQUARE', 'square'); |
---|
[12770] | 4 | define('IMG_THUMB', 'thumb'); |
---|
| 5 | define('IMG_SMALL', 'small'); |
---|
| 6 | define('IMG_MEDIUM', 'medium'); |
---|
| 7 | define('IMG_LARGE', 'large'); |
---|
| 8 | define('IMG_XLARGE', 'xlarge'); |
---|
| 9 | define('IMG_XXLARGE', 'xxlarge'); |
---|
| 10 | define('IMG_CUSTOM', 'custom'); |
---|
| 11 | |
---|
| 12 | final class ImageStdParams |
---|
| 13 | { |
---|
[12775] | 14 | private static $all_types = array(IMG_SQUARE,IMG_THUMB,IMG_SMALL,IMG_MEDIUM,IMG_LARGE,IMG_XLARGE,IMG_XXLARGE); |
---|
| 15 | private static $all_type_map = array(); |
---|
[12770] | 16 | private static $type_map = array(); |
---|
[12775] | 17 | private static $undefined_type_map = array(); |
---|
[12770] | 18 | |
---|
| 19 | static function get_all_types() |
---|
| 20 | { |
---|
| 21 | return self::$all_types; |
---|
| 22 | } |
---|
| 23 | |
---|
[12775] | 24 | static function get_all_type_map() |
---|
| 25 | { |
---|
| 26 | return self::$all_type_map; |
---|
| 27 | } |
---|
| 28 | |
---|
| 29 | static function get_defined_type_map() |
---|
| 30 | { |
---|
| 31 | return self::$type_map; |
---|
| 32 | } |
---|
| 33 | |
---|
| 34 | static function get_undefined_type_map() |
---|
| 35 | { |
---|
| 36 | return self::$undefined_type_map; |
---|
| 37 | } |
---|
| 38 | |
---|
[12770] | 39 | static function get_by_type($type) |
---|
| 40 | { |
---|
[12775] | 41 | return self::$all_type_map[$type]; |
---|
[12770] | 42 | } |
---|
| 43 | |
---|
| 44 | static function load_from_db() |
---|
| 45 | { |
---|
| 46 | self::make_default(); |
---|
[12775] | 47 | self::build_maps(); |
---|
[12770] | 48 | } |
---|
| 49 | |
---|
| 50 | static function load_from_file() |
---|
| 51 | { |
---|
| 52 | self::make_default(); |
---|
[12775] | 53 | self::build_maps(); |
---|
[12770] | 54 | } |
---|
| 55 | |
---|
| 56 | static function make_default() |
---|
| 57 | { |
---|
| 58 | //todo |
---|
[12775] | 59 | self::$type_map[IMG_SQUARE] = new ImageParams( SizingParams::square(100,100) ); |
---|
[12770] | 60 | self::$type_map[IMG_THUMB] = new ImageParams( SizingParams::classic(144,144) ); |
---|
| 61 | self::$type_map[IMG_SMALL] = new ImageParams( SizingParams::classic(240,240) ); |
---|
| 62 | self::$type_map[IMG_MEDIUM] = new ImageParams( SizingParams::classic(432,432) ); |
---|
| 63 | self::$type_map[IMG_LARGE] = new ImageParams( SizingParams::classic(864,648) ); |
---|
[12775] | 64 | self::$type_map[IMG_XLARGE] = new ImageParams( SizingParams::classic(1200,900) ); |
---|
[12770] | 65 | } |
---|
[12775] | 66 | |
---|
| 67 | private static function build_maps() |
---|
| 68 | { |
---|
| 69 | foreach (self::$type_map as $type=>$params) |
---|
| 70 | { |
---|
| 71 | $params->type = $type; |
---|
| 72 | } |
---|
| 73 | self::$all_type_map = self::$type_map; |
---|
| 74 | |
---|
| 75 | for ($i=0; $i<count(self::$all_types); $i++) |
---|
| 76 | { |
---|
| 77 | $tocheck = self::$all_types[$i]; |
---|
| 78 | if (!isset(self::$type_map[$tocheck])) |
---|
| 79 | { |
---|
| 80 | for ($j=$i-1; $j>=0; $j--) |
---|
| 81 | { |
---|
| 82 | $target = self::$all_types[$j]; |
---|
| 83 | if (isset(self::$type_map[$target])) |
---|
| 84 | { |
---|
| 85 | self::$all_type_map[$tocheck] = self::$type_map[$target]; |
---|
| 86 | self::$undefined_type_map[$tocheck] = $target; |
---|
| 87 | break; |
---|
| 88 | } |
---|
| 89 | } |
---|
| 90 | } |
---|
| 91 | } |
---|
| 92 | } |
---|
| 93 | |
---|
[12770] | 94 | } |
---|
| 95 | |
---|
| 96 | ?> |
---|