diff options
Diffstat (limited to 'lib/models/resources/ResourceProperty.class.php')
| -rw-r--r-- | lib/models/resources/ResourceProperty.class.php | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/lib/models/resources/ResourceProperty.class.php b/lib/models/resources/ResourceProperty.class.php deleted file mode 100644 index 4bbc4ec..0000000 --- a/lib/models/resources/ResourceProperty.class.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php - -/** - * ResourceProperty.class.php - model class for resource properties - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * @author Moritz Strohm <strohm@data-quest.de> - * @copyright 2017 - * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 - * @category Stud.IP - * @package resources - * @since TODO - * - * @property array $id alias for pk - * @property string $resource_id database column - * @property string $property_id database column - * @property string $state database column - * @property int $mkdate database column - * @property int $chdate database column - * @property ResourcePropertyDefinition $definition belongs_to ResourcePropertyDefinition - * @property Resource $resource belongs_to Resource - * @property mixed $name additional field - * @property-read mixed $fullname additional field - * @property mixed $display_name additional field - * @property mixed $type additional field - * @property mixed $info_label additional field - */ -class ResourceProperty extends SimpleORMap -{ - protected static function configure($config = []) - { - $config['db_table'] = 'resource_properties'; - - $config['belongs_to']['definition'] = [ - 'class_name' => ResourcePropertyDefinition::class, - 'foreign_key' => 'property_id', - 'assoc_func' => 'find' - ]; - - $config['belongs_to']['resource'] = [ - 'class_name' => Resource::class, - 'foreign_key' => 'resource_id', - 'assoc_func' => 'find' - ]; - - $config['additional_fields']['name'] = ['definition', 'name']; - $config['additional_fields']['fullname'] = ['get' => 'getFullName']; - $config['additional_fields']['display_name'] = ['definition', 'display_name']; - $config['additional_fields']['type'] = ['definition', 'type']; - $config['additional_fields']['info_label'] = ['definition', 'info_label']; - - parent::configure($config); - } - - /** - * Determines whether this resource property is requestable - * by checking the requestable flag of the corresponding - * resource category property. - * - * @return bool True, if this property is requestable, false otherwise. - */ - public function isRequestable() - { - //We must only check if there is a ResourceCategoryProperty - //object in the database which has the same category-ID - //as the Resource of this ResourceProperty object, - //the same definition-ID as this ResourceProperty and which has - //furthermore the requestable column set to '1'. - //In this case we return true, otherwise false. - - return ResourceCategoryProperty::countBySql( - "category_id = :category_id - AND property_id = :definition_id - AND requestable = '1' - ", - [ - 'category_id' => $this->resource->category_id, - 'definition_id' => $this->definition->id - ] - ) > 0; - } - - - /** - * Creates a string containing the appropriate value - * of this resource property. - * - * @return string The string representation of this resource property. - */ - public function __toString() - { - $string = ''; - - if ($this->type == 'position') { - $string .= ResourceManager::getPositionString($this); - } elseif ($this->type == 'bool') { - $string .= $this->state ? _('ja') : _('nein'); - } elseif ($this->type == 'num') { - $string .= $this->state; - } elseif ($this->type == 'user') { - $user = User::find($this->state); - if ($user) { - $string .= $user->getFullName(); - } else { - $string .= _('unbekannt'); - } - } else { - $string .= $this->state; - } - return $string; - } - - public function getFullName() - { - $name = (string)$this->definition->display_name ?: $this->definition->name; - $category = trim(strstr($name, ':', true)); - if ($category) { - $name = trim(strstr($name, ':'), ' :'); - } - $value = (string)$this; - return $name . ': ' . $value; - } -} |
