Permalink
Fetching contributors…
Cannot retrieve contributors at this time
173 lines (164 sloc) 6.52 KB
<?php
/** ---------------------------------------------------------------------
* app/lib/ca/Attributes/Values/ContainerAttributeValue.php :
* ----------------------------------------------------------------------
* CollectiveAccess
* Open-source collections management software
* ----------------------------------------------------------------------
*
* Software by Whirl-i-Gig (http://www.whirl-i-gig.com)
* Copyright 2008-2016 Whirl-i-Gig
*
* For more information visit http://www.CollectiveAccess.org
*
* This program is free software; you may redistribute it and/or modify it under
* the terms of the provided license as published by Whirl-i-Gig
*
* CollectiveAccess is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTIES whatsoever, including any implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* This source code is free and modifiable under the terms of
* GNU General Public License. (http://www.gnu.org/copyleft/gpl.html). See
* the "license.txt" file for details, or visit the CollectiveAccess web site at
* http://www.CollectiveAccess.org
*
* @package CollectiveAccess
* @subpackage BaseModel
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License version 3
*
* ----------------------------------------------------------------------
*/
/**
*
*/
define("__CA_ATTRIBUTE_VALUE_CONTAINER__", 0);
require_once(__CA_LIB_DIR__.'/ca/Attributes/Values/IAttributeValue.php');
require_once(__CA_LIB_DIR__.'/ca/Attributes/Values/AttributeValue.php');
require_once(__CA_LIB_DIR__.'/core/BaseModel.php'); // we use the BaseModel field type (FT_*) and display type (DT_*) constants
global $_ca_attribute_settings;
$_ca_attribute_settings['ContainerAttributeValue'] = array( // global
'doesNotTakeLocale' => array(
'formatType' => FT_NUMBER,
'displayType' => DT_CHECKBOXES,
'default' => 0,
'width' => 1, 'height' => 1,
'label' => _t('Does not use locale setting'),
'description' => _t('Check this option if you don\'t want your compound attributes to be locale-specific. (The default is to be.)')
),
'lineBreakAfterNumberOfElements' => array(
'formatType' => FT_NUMBER,
'displayType' => DT_FIELD,
'default' => 0,
'width' => 20, 'height' => 1,
'label' => _t('Line breaks'),
'description' => _t('Insert number of metadata elements after which a line break should be inserted here. (Default is 0 - i.e. no line breaks)')
),
'canBeUsedInSearchForm' => array(
'formatType' => FT_NUMBER,
'displayType' => DT_CHECKBOXES,
'default' => 1,
'width' => 1, 'height' => 1,
'label' => _t('Can be used in search form'),
'description' => _t('Check this option if this attribute value can be used in search forms. (The default is to be.)')
),
'canBeUsedInDisplay' => array(
'formatType' => FT_NUMBER,
'displayType' => DT_CHECKBOXES,
'default' => 1,
'width' => 1, 'height' => 1,
'label' => _t('Can be used in display'),
'description' => _t('Check this option if this attribute value can be used for display in search results. (The default is to be.)')
),
'canMakePDF' => array(
'formatType' => FT_NUMBER,
'displayType' => DT_CHECKBOXES,
'default' => 0,
'width' => 1, 'height' => 1,
'label' => _t('Allow PDF output?'),
'description' => _t('Check this option if this metadata element can be output as a printable PDF. (The default is not to be.)')
),
'canMakePDFForValue' => array(
'formatType' => FT_NUMBER,
'displayType' => DT_CHECKBOXES,
'default' => 0,
'width' => 1, 'height' => 1,
'label' => _t('Allow PDF output for individual values?'),
'description' => _t('Check this option if individual values for this metadata element can be output as a printable PDF. (The default is not to be.)')
),
'displayTemplate' => array(
'formatType' => FT_TEXT,
'displayType' => DT_FIELD,
'default' => '',
'width' => 90, 'height' => 5,
'label' => _t('Display template'),
'validForRootOnly' => 1,
'description' => _t('Layout for value when used in a display (can include HTML). Element code tags prefixed with the ^ character can be used to represent the value in the template. For example: <i>^my_element_code</i>.')
),
'displayDelimiter' => array(
'formatType' => FT_TEXT,
'displayType' => DT_FIELD,
'default' => '; ',
'width' => 90, 'height' => 2,
'label' => _t('Value delimiter'),
'validForRootOnly' => 1,
'description' => _t('Delimiter to use between multiple values.')
),
'readonlyTemplate' => array(
'formatType' => FT_TEXT,
'displayType' => DT_FIELD,
'default' => '',
'width' => 90, 'height' => 10,
'label' => _t('Display template for read-only mode'),
'validForRootOnly' => 1,
'description' => _t('Layout used when a container value is in read-only mode. If this template is set, existing values are always displayed in read-only mode until you click to edit. This can be used to preserve screen space for large containers.')
),
);
class ContainerAttributeValue extends AttributeValue implements IAttributeValue {
# ------------------------------------------------------------------
# ------------------------------------------------------------------
public function __construct($pa_value_array=null) {
parent::__construct($pa_value_array);
}
# ------------------------------------------------------------------
public function loadTypeSpecificValueFromRow($pa_value_array) {
// noop
}
# ------------------------------------------------------------------
public function getDisplayValue($pa_options=null) {
return '';
}
# ------------------------------------------------------------------
public function parseValue($ps_value, $pa_element_info, $pa_options=null) {
return array(
);
}
# ------------------------------------------------------------------
public function htmlFormElement($pa_element_info, $pa_options=null) {
return '';
}
# ------------------------------------------------------------------
public function getAvailableSettings($pa_element_info=null) {
global $_ca_attribute_settings;
return $_ca_attribute_settings['ContainerAttributeValue'];
}
# ------------------------------------------------------------------
/**
* Returns name of field in ca_attribute_values to use for sort operations
*
* @return string Name of sort field
*/
public function sortField() {
return null;
}
# ------------------------------------------------------------------
/**
* Returns constant for container attribute value
*
* @return int Attribute value type code
*/
public function getType() {
return __CA_ATTRIBUTE_VALUE_CONTAINER__;
}
# ------------------------------------------------------------------
}