Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class IPQQualification extends DataObject {
- static $db = array(
- "Level"=>"Int",
- "Category"=>"Enum('Portrait,Wedding,Creative People,Master','Portrait')",
- "Title"=>"Varchar(150)",
- "ShortForm"=>"Varchar(30)",
- "Title"=>"Varchar(200)",
- "Year"=>"Int",//"Enum('2010,2011,2012','2011')",
- );
- static $many_many = array(
- "Photographers"=>"Photographer",
- // "Member"=>"PortraitMember",
- );
- static $field_labels = array(
- "Title"=>"Automatisch generierte Beschreibung",
- "Category"=>"Kategorie",
- );
- static $summary_fields = array(
- "Level","Category","Title","Year",
- );
- // static $default_sort = "Year DESC, Category, Level ASC";
- static $default_sort = "Year ASC";
- static $page_length = 100;
- static $currentYear = 2010;
- function getCMSFields() {
- $fields = parent::getCMSFields();
- $fields->remove("Category");
- $fields->remove("Level");
- $fields->addFieldsToTab('Root.Main',
- array(
- new DropdownField("Category","IPQ Kategorie", singleton($this->ClassName)->dbObject("Category")->enumValues()),
- ));
- return $fields;
- }
- function requireDefaultRecords() {
- parent::requireDefaultRecords();
- if($this->class == 'IPQQualification') {
- if(!DataObject::get($this->class)) {
- for ($i=1;$i<4;$i++) {
- foreach(singleton($this->ClassName)->dbObject("Category")->enumValues() as $category) {
- $n = new IPQQualification();
- $n->Level = $i;
- $n->Category = $category;
- $n->write();
- DB::alteration_message("IPQQualification {$n->Level} in {$n->Category} created","created");
- }
- }
- $n = new IPQQualification();
- $n->Level = 4;
- $n->write();
- DB::alteration_message("IPQQualification 'Master' created","created");
- }
- }
- }
- function QualificationTitle() {
- if ($this->Level==4) {
- return "International Master of Photography";//.$this->Year;;
- }
- return "International ".$this->Category." Photographer of ".self::ipqLevelTextBy($this->Level). " " . $this->Year;
- }
- function QualificationTitleForMember() {
- if ($this->Level==4) {
- return "International Master of Photography";
- }
- return "International Photographer of ".self::ipqLevelTextBy($this->Level). " " . $this->Year;
- }
- function getQualificationTitleHighlighted($tag="<strong>") {
- $tag=trim($tag);
- $closeTag = $tag[0]."/".substr($tag,1);
- $text = $this->qualificationTitle();
- $result = "";
- for($i=0;$i<strlen($text);$i++){
- if (strtoupper($text[$i])==$text[$i]) $result .= $tag.$text[$i].$closeTag;
- else $result .= $text[$i];
- }
- return $result;
- }
- function shortForm() {
- $str = "";
- switch ($this->Level) {
- case 1 :
- $str = "HP";
- break;
- case 2 :
- $str = "HQ";
- break;
- case 3 :
- $str = "E";
- break;
- case 4 :
- $str = "Master";
- break;
- default :
- $str = "";
- break;
- }
- return $str;
- }
- function shortFormDropdown() {
- return $this->Category." Level ".$this->Level." (".$this->Year.")";
- }
- function forTemplate() {
- return $this->QualificationTitle();
- }
- function categoryURLSegment() {
- return str_replace(" ","-",strtolower($this->Category));
- }
- function isUptodate() {
- if (((int)$this->Year)<=((int)self::$currentYear)) return true;
- }
- static function ipqCategoryTextBy($cat) {
- $cat = str_replace("-"," ",strtolower($cat));
- switch ($cat) {
- case "portrait" :
- return "Portrait Photography";
- break;
- case "wedding" :
- return "Wedding Photography";
- break;
- case "creative" :
- return "Creative People";
- break;
- default :
- return null;
- }
- }
- static function ipqLevelTextBy($level) {
- $level = (int) $level;
- switch ($level) {
- case 1 :
- return "High Performance";
- case 2 :
- return "High Quality";
- case 3 :
- return "Excellence";
- case 4 :
- return "Master";
- default :
- return null;
- }
- }
- static function ipqText($category,$level) {
- return "International ".$level;
- }
- function onBeforeWrite() {
- parent::onBeforeWrite();
- $this->Title = $this->qualificationTitle();
- }
- function CategoryShort() {
- return str_replace(" ","",strtolower(trim($this->Category)));
- }
- static function get_by_category_and_level($category,$level) {
- return DataObject::get("IPQQualification","Category LIKE '".Convert::raw2sql($category)."' AND Level = ".(int)$level."","Year DESC");
- }
- }
- ?>
Add Comment
Please, Sign In to add comment