source: extensions/derivatives/include/derivative_std_params.inc.php @ 31960

Last change on this file since 31960 was 12775, checked in by rvelices, 12 years ago

derivatives - can display several sizes on picture page

File size: 2.3 KB
Line 
1<?php
2
3define('IMG_SQUARE', 'square');
4define('IMG_THUMB', 'thumb');
5define('IMG_SMALL', 'small');
6define('IMG_MEDIUM', 'medium');
7define('IMG_LARGE', 'large');
8define('IMG_XLARGE', 'xlarge');
9define('IMG_XXLARGE', 'xxlarge');
10define('IMG_CUSTOM', 'custom');
11
12final class ImageStdParams
13{
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();
16  private static $type_map = array();
17  private static $undefined_type_map = array();
18 
19  static function get_all_types()
20  {
21    return self::$all_types;
22  }
23 
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 
39  static function get_by_type($type)
40  {
41    return self::$all_type_map[$type];
42  }
43 
44  static function load_from_db()
45  {
46    self::make_default();
47    self::build_maps();
48  }
49
50  static function load_from_file()
51  {
52    self::make_default();
53    self::build_maps();
54  }
55
56  static function make_default()
57  {
58    //todo
59    self::$type_map[IMG_SQUARE] = new ImageParams( SizingParams::square(100,100) );
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) );
64    self::$type_map[IMG_XLARGE] = new ImageParams( SizingParams::classic(1200,900) );
65  }
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 
94}
95
96?>
Note: See TracBrowser for help on using the repository browser.