Oxwall team explain that the field of list or multi list type, it is saved as "enum" type of field in the database. Values of "enum" type of field, in turn are saved not as values, but as integers. By this way of course, the limit of 31 values can not be extended.
They also say that's not a major priority of development right now... And it will require quite complicated code modifications....
I think anyway that Oxwall developer must be completely disconnected with reality of fundamental aspect needed in a dating modern website.
And regarding the complicated aspect.... Piece of bad faith.... It take me a couple of hours to do It !!!
First you need to add a new class for that in file "form_element.php".
Exemple for size :
class HighField extends FormElement
{
/**
* Constructor.
*
* @param string $name
*/
public function __construct( $name )
{
parent::__construct($name);
$this->addAttribute('type', 'text');
}
public function renderInput( $params = null )
{
parent::renderInput($params);
$highOptionsString = UTIL_HtmlTag::generateTag('option', array('value' => '< 140 cm'), true, '< 140 cm ');
for ( $i = 140; $i <= 200; $i++ )
{
$attrs['value'] = $i.' cm ';
$highOptionsString .= UTIL_HtmlTag::generateTag('option', $attrs, true, $i.' cm ');
}
$highOptionsString .= UTIL_HtmlTag::generateTag('option', array('value' => '< 140 cm'), true, '> 200 cm ');
$attributes = array();
$attributes['name'] = $this->attributes['name'];
$attributes['id'] = $this->attributes['id'];
$attributes['type'] = 'hidden';
$highAttributes = $this->attributes;
$highAttributes['name'] = 'high_' . $this->getAttribute('name');
if ( isset($highAttributes['id']) )
{
unset($highAttributes['id']);
}
{
$result = '<div class="' . $this->getAttribute('name') . '">
' . UTIL_HtmlTag::generateTag('input', $attributes) . '
<div class="ow_inline owm_inline">' . UTIL_HtmlTag::generateTag('select', $highAttributes, true, $highOptionsString) . '</div>
</div>';
}
return $result;
}
}
As you can see, this class will generate an "select" 'option' form with as much item as you want ! (I personaly use cm cause I am in Europe, but think a quite adaptation can be made for feet, and also depending of language.. anyway that's just an example who could be clearly be improved ! I did It in one shot)
I also think that I will add soon some other data like question preference in profile user, for instance regarding miles or km, kg vs lb... etc etc... I am just very new for one week with this script...
You need also to manipulate the database and create 2 additional 'enum' in the presentation column on `ow_base_question table`, I personalty create high and weight to make it Match with the new classes.
This 2 additional "presentation' must be properly declared in the file 'question-service.php' :
const QUESTION_PRESENTATION_HIGH = 'high';
const QUESTION_PRESENTATION_WEIGHT = 'Weight';
And of course declare properly the case example for high :
case self::QUESTION_PRESENTATION_HIGH :
$class = new HighField($fieldName);
break;
So I just have a little issue to validate It cause I need to push the answer of this question in the "ow_base_question_data' and as I am a newbee with oxwall code, but maybe this small effort could be made by the support ?? lol !!!
Team !!!! A piece of help to finalize that and eventually pushed It in the next version ?? This is a really a major issue for plenty of people ! And fundamentally, that's awfully easy to do It !!!
Xo