Version 4.7.0
This commit is contained in:
1 parent
517a5e1f70
commit
8ba7d43898
1933 files changed
+65613
-11332
No files matched your search
@@ -43,6 +43,16 @@ abstract class _CustomField extends \IPS\Node\Model
|
||||
* @brief [CustomField] Additional Field Toggles
|
||||
*/
|
||||
public static $additionalFieldToggles = array();
|
||||
|
||||
/**
|
||||
* @brief [CustomField] An array of the 'keys' of the Field types toggles that shouldn't be an option. The main use is for excluding polls
|
||||
*/
|
||||
public static $disabledFieldTypes = array();
|
||||
|
||||
/**
|
||||
* @brief [CustomField] Set to TRUE if uploads fields are capable of holding the submitted content for moderation
|
||||
*/
|
||||
public static $uploadsCanBeModerated = FALSE;
|
||||
|
||||
/**
|
||||
* Get
|
||||
@@ -96,6 +106,14 @@ abstract class _CustomField extends \IPS\Node\Model
|
||||
public function form( &$form )
|
||||
{
|
||||
$form->addHeader( 'pfield_settings' );
|
||||
|
||||
/* Are we being forced to change the field type? */
|
||||
if ( !$this->_new AND isset( $this->type ) AND \in_array( $this->type, static::$disabledFieldTypes ) )
|
||||
{
|
||||
//\IPS\Member::loggedIn()->language()->words['pf_type_deprecated'] = \IPS\Member::loggedIn()->language()->addToStack('custom_field_type_deprecated');
|
||||
$form->addMessage( 'custom_field_type_deprecated', 'ipsMessage ipsMessage_info ipsMargin' );
|
||||
}
|
||||
|
||||
$form->add( new \IPS\Helpers\Form\Translatable( 'pf_title', NULL, TRUE, array( 'app' => 'core', 'key' => ( $this->id ? static::$langKey . '_' . $this->id : NULL ) ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Translatable( 'pf_desc', NULL, FALSE, array( 'app' => 'core', 'key' => ( $this->id ? static::$langKey . '_' . $this->id . '_desc' : NULL ) ) ) );
|
||||
|
||||
@@ -127,28 +145,36 @@ abstract class _CustomField extends \IPS\Node\Model
|
||||
'Url' => 'pf_type_Url',
|
||||
'YesNo' => 'pf_type_YesNo',
|
||||
), static::$additionalFieldTypes );
|
||||
|
||||
|
||||
$toggles = array(
|
||||
'CheckboxSet' => array( 'pf_content', 'pf_not_null', 'pf_search_type_on_off', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Codemirror' => array( 'pf_not_null', 'pf_max_input', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Email' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Member' => array( 'pf_not_null', 'pf_multiple', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Password' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Select' => array( 'pf_not_null', 'pf_content', 'pf_multiple', 'pf_search_type_on_off', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Tel' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Text' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'TextArea' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Url' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Radio' => array( 'pf_content', "{$form->id}_header_pfield_displayoptions", 'pf_search_type_on_off', $this->fieldFormattingId ),
|
||||
'Address' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Color' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Date' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Editor' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId, 'pf_search_type', 'pf_allow_attachments' ),
|
||||
'Number' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'CheckboxSet' => array( 'pf_content', 'pf_not_null', 'pf_search_type_on_off', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Codemirror' => array( 'pf_not_null', 'pf_max_input', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Email' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Member' => array( 'pf_not_null', 'pf_multiple', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Password' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Select' => array( 'pf_not_null', 'pf_content', 'pf_multiple', 'pf_search_type_on_off', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Tel' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Text' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'TextArea' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Url' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Radio' => array( 'pf_content', "{$form->id}_header_pfield_displayoptions", 'pf_search_type_on_off' ),
|
||||
'Address' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Color' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Date' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Editor' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions", 'pf_search_type', 'pf_allow_attachments' ),
|
||||
'Number' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions"),
|
||||
'Poll' => array( 'pf_not_null' ),
|
||||
'Rating' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Upload' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions", $this->fieldFormattingId ),
|
||||
'Rating' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions" ),
|
||||
'Upload' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions" ),
|
||||
);
|
||||
|
||||
|
||||
foreach( $options as $id => $toggle )
|
||||
{
|
||||
$toggles[$id][] = $this->fieldFormattingId;
|
||||
}
|
||||
|
||||
foreach ( static::$additionalFieldTypes as $k => $v )
|
||||
{
|
||||
$toggles[ $k ] = isset( static::$additionalFieldToggles[ $k ] ) ? static::$additionalFieldToggles[ $k ] : array( 'pf_not_null' );
|
||||
@@ -164,13 +190,20 @@ abstract class _CustomField extends \IPS\Node\Model
|
||||
$toggles[ $k ] = $v;
|
||||
}
|
||||
}
|
||||
|
||||
/* Remove the disabled fields */
|
||||
foreach( static::$disabledFieldTypes as $type )
|
||||
{
|
||||
unset( $options[ $type ] );
|
||||
unset( $toggles[ $type ] );
|
||||
}
|
||||
|
||||
ksort( $options );
|
||||
|
||||
if ( !$this->_new )
|
||||
{
|
||||
\IPS\Member::loggedIn()->language()->words['pf_type_warning'] = \IPS\Member::loggedIn()->language()->addToStack('custom_field_change');
|
||||
|
||||
|
||||
foreach ( $toggles as $k => $_toggles )
|
||||
{
|
||||
if ( !$this->canKeepValueOnChange( $k ) )
|
||||
@@ -746,7 +779,8 @@ abstract class _CustomField extends \IPS\Node\Model
|
||||
|
||||
case 'Upload':
|
||||
$options['storageExtension'] = static::$uploadStorageExtension;
|
||||
if( $value )
|
||||
$options['canBeModerated'] = static::$uploadsCanBeModerated;
|
||||
if( $value )
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -775,6 +809,7 @@ abstract class _CustomField extends \IPS\Node\Model
|
||||
break;
|
||||
|
||||
case 'Member':
|
||||
$options['autocomplete']['minimized'] = false;
|
||||
$options['multiple'] = $this->multiple ? NULL : 1;
|
||||
if ( $value )
|
||||
{
|
||||
@@ -1020,7 +1055,7 @@ abstract class _CustomField extends \IPS\Node\Model
|
||||
return ( $value AND $value !== '#' ) ? \IPS\Theme::i()->getTemplate( 'forms', 'core', 'global' )->colorDisplay( $value ) : '';
|
||||
|
||||
case 'Date':
|
||||
return \IPS\DateTime::ts( $value, TRUE )->localeDate(); // See buildHelper for why we ignore the timezone
|
||||
return $value ? \IPS\DateTime::ts( $value, TRUE )->localeDate() : ''; // See buildHelper for why we ignore the timezone
|
||||
|
||||
case 'Editor':
|
||||
return $value;
|
||||
|
||||
Reference in new issue
Block a user