1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
<?php
/*-----8<--------------------------------------------------------------------
*
* BEdita - a semantic content management framework
*
* Copyright 2015 ChannelWeb Srl, Chialab Srl
*
* This file is part of BEdita: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* BEdita is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with BEdita (see LICENSE.LGPL).
* If not, see <http://gnu.org/licenses/lgpl-3.0.html>.
*
*------------------------------------------------------------------->8-----
*/
/**
* Property object
*/
class Property extends BEAppModel {
public $actsAs = array('CompactResult' =>
array('PropertyOption', 'ObjectProperty', 'UserProperty'));
public $hasMany = array(
'PropertyOption',
'ObjectProperty',
'UserProperty');
public $validate = array(
'name' => array(
'rule' => 'notEmpty'
)
);
/**
* Get property id from name and object type id
*
* @param $name, name of the property
* @param $name, name of the property
* @return proerty id on success, null if no proerty id was found
*/
public function propertyId($name, $objectTypeId) {
$this->Behaviors->disable('CompactResult');
$res = $this->field('id', array(
'object_type_id' => $objectTypeId,
'name' => $name));
$this->Behaviors->enable('CompactResult');
return $res;
}
/**
* Return an array of property names of a specific object_type_id.
* The array keys are the property ids
*
* @param int $objectTypeId the object type id
* @return array
*/
public function propertyNames($objectTypeId) {
$this->Behaviors->disable('CompactResult');
$propList = $this->find('list', array(
'field' => array('name'),
'conditions' => array(
'object_type_id' => $objectTypeId
)
));
$this->Behaviors->enable('CompactResult');
return $propList;
}
}