Guest User

Untitled

a guest
Sep 23rd, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.22 KB | None | 0 0
  1. <?php
  2.  
  3. class IPQQualification extends DataObject {
  4.  
  5. static $db = array(
  6. "Level"=>"Int",
  7. "Category"=>"Enum('Portrait,Wedding,Creative People,Master','Portrait')",
  8. "Title"=>"Varchar(150)",
  9. "ShortForm"=>"Varchar(30)",
  10. "Title"=>"Varchar(200)",
  11. "Year"=>"Int",//"Enum('2010,2011,2012','2011')",
  12. );
  13.  
  14. static $many_many = array(
  15. "Photographers"=>"Photographer",
  16. // "Member"=>"PortraitMember",
  17. );
  18.  
  19. static $field_labels = array(
  20. "Title"=>"Automatisch generierte Beschreibung",
  21. "Category"=>"Kategorie",
  22. );
  23.  
  24. static $summary_fields = array(
  25. "Level","Category","Title","Year",
  26. );
  27.  
  28. // static $default_sort = "Year DESC, Category, Level ASC";
  29. static $default_sort = "Year ASC";
  30.  
  31. static $page_length = 100;
  32.  
  33. static $currentYear = 2010;
  34.  
  35. function getCMSFields() {
  36. $fields = parent::getCMSFields();
  37. $fields->remove("Category");
  38. $fields->remove("Level");
  39. $fields->addFieldsToTab('Root.Main',
  40. array(
  41. new DropdownField("Category","IPQ Kategorie", singleton($this->ClassName)->dbObject("Category")->enumValues()),
  42. ));
  43. return $fields;
  44. }
  45.  
  46. function requireDefaultRecords() {
  47. parent::requireDefaultRecords();
  48. if($this->class == 'IPQQualification') {
  49. if(!DataObject::get($this->class)) {
  50. for ($i=1;$i<4;$i++) {
  51. foreach(singleton($this->ClassName)->dbObject("Category")->enumValues() as $category) {
  52. $n = new IPQQualification();
  53. $n->Level = $i;
  54. $n->Category = $category;
  55. $n->write();
  56. DB::alteration_message("IPQQualification {$n->Level} in {$n->Category} created","created");
  57. }
  58. }
  59. $n = new IPQQualification();
  60. $n->Level = 4;
  61. $n->write();
  62. DB::alteration_message("IPQQualification 'Master' created","created");
  63. }
  64. }
  65. }
  66.  
  67. function QualificationTitle() {
  68. if ($this->Level==4) {
  69. return "International Master of Photography";//.$this->Year;;
  70. }
  71. return "International ".$this->Category." Photographer of ".self::ipqLevelTextBy($this->Level). " " . $this->Year;
  72. }
  73.  
  74. function QualificationTitleForMember() {
  75. if ($this->Level==4) {
  76. return "International Master of Photography";
  77. }
  78. return "International Photographer of ".self::ipqLevelTextBy($this->Level). " " . $this->Year;
  79. }
  80.  
  81. function getQualificationTitleHighlighted($tag="<strong>") {
  82. $tag=trim($tag);
  83. $closeTag = $tag[0]."/".substr($tag,1);
  84. $text = $this->qualificationTitle();
  85. $result = "";
  86. for($i=0;$i<strlen($text);$i++){
  87. if (strtoupper($text[$i])==$text[$i]) $result .= $tag.$text[$i].$closeTag;
  88. else $result .= $text[$i];
  89. }
  90. return $result;
  91. }
  92.  
  93. function shortForm() {
  94. $str = "";
  95. switch ($this->Level) {
  96. case 1 :
  97. $str = "HP";
  98. break;
  99. case 2 :
  100. $str = "HQ";
  101. break;
  102. case 3 :
  103. $str = "E";
  104. break;
  105. case 4 :
  106. $str = "Master";
  107. break;
  108. default :
  109. $str = "";
  110. break;
  111. }
  112. return $str;
  113. }
  114.  
  115. function shortFormDropdown() {
  116. return $this->Category." Level ".$this->Level." (".$this->Year.")";
  117. }
  118.  
  119. function forTemplate() {
  120. return $this->QualificationTitle();
  121. }
  122.  
  123. function categoryURLSegment() {
  124. return str_replace(" ","-",strtolower($this->Category));
  125. }
  126.  
  127. function isUptodate() {
  128. if (((int)$this->Year)<=((int)self::$currentYear)) return true;
  129. }
  130.  
  131. static function ipqCategoryTextBy($cat) {
  132. $cat = str_replace("-"," ",strtolower($cat));
  133. switch ($cat) {
  134. case "portrait" :
  135. return "Portrait Photography";
  136. break;
  137. case "wedding" :
  138. return "Wedding Photography";
  139. break;
  140. case "creative" :
  141. return "Creative People";
  142. break;
  143. default :
  144. return null;
  145. }
  146. }
  147.  
  148. static function ipqLevelTextBy($level) {
  149. $level = (int) $level;
  150. switch ($level) {
  151. case 1 :
  152. return "High Performance";
  153. case 2 :
  154. return "High Quality";
  155. case 3 :
  156. return "Excellence";
  157. case 4 :
  158. return "Master";
  159. default :
  160. return null;
  161. }
  162. }
  163.  
  164. static function ipqText($category,$level) {
  165. return "International ".$level;
  166. }
  167.  
  168.  
  169. function onBeforeWrite() {
  170. parent::onBeforeWrite();
  171. $this->Title = $this->qualificationTitle();
  172. }
  173.  
  174. function CategoryShort() {
  175. return str_replace(" ","",strtolower(trim($this->Category)));
  176. }
  177.  
  178. static function get_by_category_and_level($category,$level) {
  179. return DataObject::get("IPQQualification","Category LIKE '".Convert::raw2sql($category)."' AND Level = ".(int)$level."","Year DESC");
  180. }
  181.  
  182. }
  183.  
  184.  
  185. ?>
Add Comment
Please, Sign In to add comment