Skip to content

Commit

Permalink
Merge pull request #90 from alexplusde/lat_lng
Browse files Browse the repository at this point in the history
Field Definitions for number_lat & number_lng
  • Loading branch information
alxndr-w authored Jan 5, 2025
2 parents 20a8205 + 697f68e commit d8b065c
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 0 deletions.
47 changes: 47 additions & 0 deletions lib/yform/value/number_lat.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?php

class rex_yform_value_number_lat extends rex_yform_value_number
{

public function getDescription(): string
{
return 'number_lat|name|label|precision|scale|defaultwert|[no_db]|[unit]|[notice]|[attributes]';
}

public function getDefinitions(): array
{
return [
'type' => 'value',
'name' => 'number_lat',
'values' => [
'name' => ['type' => 'name', 'label' => rex_i18n::msg('yform_values_defaults_name')],
'label' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_label')],
'precision' => ['type' => 'integer', 'label' => rex_i18n::msg('yform_values_number_precision'), 'default' => '10'],
'scale' => ['type' => 'integer', 'label' => rex_i18n::msg('yform_values_number_scale'), 'default' => '8'],
'default' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_number_default')],
'no_db' => ['type' => 'no_db', 'label' => rex_i18n::msg('yform_values_defaults_table'), 'default' => 0],
'widget' => ['type' => 'choice', 'label' => rex_i18n::msg('yform_values_defaults_widgets'), 'choices' => ['input:text' => 'input:text', 'input:number' => 'input:number'], 'default' => 'input:text'],
'unit' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_unit')],
'notice' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_notice')],
'attributes' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_attributes'), 'notice' => rex_i18n::msg('yform_values_defaults_attributes_notice')],
],
'validates' => [
['type' => ['name' => 'precision', 'type' => 'integer', 'message' => rex_i18n::msg('yform_values_number_error_precision', '1', '65'), 'not_required' => false]],
['type' => ['name' => 'scale', 'type' => 'integer', 'message' => rex_i18n::msg('yform_values_number_error_scale', '0', '30'), 'not_required' => false]],
['compare' => ['name' => 'scale', 'name2' => 'precision', 'message' => rex_i18n::msg('yform_values_number_error_compare'), 'compare_type' => '>']],
['intfromto' => ['name' => 'precision', 'from' => '1', 'to' => '65', 'message' => rex_i18n::msg('yform_values_number_error_precision', '1', '65')]],
['intfromto' => ['name' => 'scale', 'from' => '0', 'to' => '30', 'message' => rex_i18n::msg('yform_values_number_error_scale', '0', '30')]],
],
'description' => rex_i18n::msg('yform_values_number_description'),
'db_type' => ['DECIMAL({precision},{scale})'],
'hooks' => [
'preCreate' => static function (rex_yform_manager_field $field, $db_type) {
$db_type = str_replace('{precision}', (string) ($field->getElement('precision') ?? 10), $db_type);
$db_type = str_replace('{scale}', (string) ($field->getElement('scale') ?? 8), $db_type);
return $db_type;
},
],
'db_null' => true,
];
}
}
47 changes: 47 additions & 0 deletions lib/yform/value/number_lng.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?php

class rex_yform_value_number_lng extends rex_yform_value_number
{

public function getDescription(): string
{
return 'number_lng|name|label|precision|scale|defaultwert|[no_db]|[unit]|[notice]|[attributes]';
}

public function getDefinitions(): array
{
return [
'type' => 'value',
'name' => 'number_lng',
'values' => [
'name' => ['type' => 'name', 'label' => rex_i18n::msg('yform_values_defaults_name')],
'label' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_label')],
'precision' => ['type' => 'integer', 'label' => rex_i18n::msg('yform_values_number_precision'), 'default' => '11'],
'scale' => ['type' => 'integer', 'label' => rex_i18n::msg('yform_values_number_scale'), 'default' => '8'],
'default' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_number_default')],
'no_db' => ['type' => 'no_db', 'label' => rex_i18n::msg('yform_values_defaults_table'), 'default' => 0],
'widget' => ['type' => 'choice', 'label' => rex_i18n::msg('yform_values_defaults_widgets'), 'choices' => ['input:text' => 'input:text', 'input:number' => 'input:number'], 'default' => 'input:text'],
'unit' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_unit')],
'notice' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_notice')],
'attributes' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_attributes'), 'notice' => rex_i18n::msg('yform_values_defaults_attributes_notice')],
],
'validates' => [
['type' => ['name' => 'precision', 'type' => 'integer', 'message' => rex_i18n::msg('yform_values_number_error_precision', '1', '65'), 'not_required' => false]],
['type' => ['name' => 'scale', 'type' => 'integer', 'message' => rex_i18n::msg('yform_values_number_error_scale', '0', '30'), 'not_required' => false]],
['compare' => ['name' => 'scale', 'name2' => 'precision', 'message' => rex_i18n::msg('yform_values_number_error_compare'), 'compare_type' => '>']],
['intfromto' => ['name' => 'precision', 'from' => '1', 'to' => '65', 'message' => rex_i18n::msg('yform_values_number_error_precision', '1', '65')]],
['intfromto' => ['name' => 'scale', 'from' => '0', 'to' => '30', 'message' => rex_i18n::msg('yform_values_number_error_scale', '0', '30')]],
],
'description' => rex_i18n::msg('yform_values_number_description'),
'db_type' => ['DECIMAL({precision},{scale})'],
'hooks' => [
'preCreate' => static function (rex_yform_manager_field $field, $db_type) {
$db_type = str_replace('{precision}', (string) ($field->getElement('precision') ?? 11), $db_type);
$db_type = str_replace('{scale}', (string) ($field->getElement('scale') ?? 8), $db_type);
return $db_type;
},
],
'db_null' => true,
];
}
}

0 comments on commit d8b065c

Please sign in to comment.