Add numeric value column to extra vars, and add option to mark extra var as sortable #2604 #2559

This commit is contained in:
Kijin Sung 2025-10-23 11:17:24 +09:00
parent 978aecd7a8
commit 2a7eeebcbd
19 changed files with 141 additions and 37 deletions

View file

@ -22,6 +22,7 @@ $lang->cmd_upload = 'Upload';
$lang->cmd_load = 'Load'; $lang->cmd_load = 'Load';
$lang->cmd_input = 'Input'; $lang->cmd_input = 'Input';
$lang->cmd_search = 'Search'; $lang->cmd_search = 'Search';
$lang->cmd_sort = 'Sort';
$lang->cmd_find = 'Find'; $lang->cmd_find = 'Find';
$lang->cmd_replace = 'Replace'; $lang->cmd_replace = 'Replace';
$lang->cmd_confirm = 'Confirm'; $lang->cmd_confirm = 'Confirm';

View file

@ -22,6 +22,7 @@ $lang->cmd_upload = '업로드';
$lang->cmd_load = '불러오기'; $lang->cmd_load = '불러오기';
$lang->cmd_input = '입력'; $lang->cmd_input = '입력';
$lang->cmd_search = '검색'; $lang->cmd_search = '검색';
$lang->cmd_sort = '정렬';
$lang->cmd_find = '찾기'; $lang->cmd_find = '찾기';
$lang->cmd_replace = '바꾸기'; $lang->cmd_replace = '바꾸기';
$lang->cmd_confirm = '확인'; $lang->cmd_confirm = '확인';

View file

@ -100,9 +100,13 @@ class BoardView extends Board
{ {
foreach($extra_keys as $val) foreach($extra_keys as $val)
{ {
$this->order_target[] = $val->eid; if ($val->sort === 'Y')
{
$this->order_target[] = $val->eid;
}
} }
} }
/** /**
* load javascript, JS filters * load javascript, JS filters
*/ */

View file

@ -183,7 +183,8 @@ class DocumentAdminController extends Document
$options = array_map('trim', explode("\n", $options)); $options = array_map('trim', explode("\n", $options));
} }
$desc = Context::get('desc') ? Context::get('desc') : ''; $desc = Context::get('desc') ? Context::get('desc') : '';
$search = Context::get('search'); $search = Context::get('search') === 'Y' ? 'Y' : 'N';
$sort = Context::get('sort') === 'Y' ? 'Y' : 'N';
$eid = Context::get('eid'); $eid = Context::get('eid');
$obj = new stdClass(); $obj = new stdClass();
@ -210,7 +211,7 @@ class DocumentAdminController extends Document
$oDocumentController = DocumentController::getInstance(); $oDocumentController = DocumentController::getInstance();
$output = $oDocumentController->insertDocumentExtraKey( $output = $oDocumentController->insertDocumentExtraKey(
$module_srl, $var_idx, $name, $type, $is_required, $search, $module_srl, $var_idx, $name, $type, $is_required, $search,
$default, $desc, $eid, $is_strict, $options $default, $desc, $eid, $is_strict, $options, $sort
); );
if(!$output->toBool()) return $output; if(!$output->toBool()) return $output;

View file

@ -113,6 +113,10 @@ class Document extends ModuleObject
if(!$oDB->isColumnExists('document_extra_keys', 'var_is_strict')) return true; if(!$oDB->isColumnExists('document_extra_keys', 'var_is_strict')) return true;
if(!$oDB->isColumnExists('document_extra_keys', 'var_options')) return true; if(!$oDB->isColumnExists('document_extra_keys', 'var_options')) return true;
// 2025.10.23 Add sort to document_extra_keys table, and sort_value to document_extra_vars table
if(!$oDB->isColumnExists('document_extra_keys', 'var_sort')) return true;
if(!$oDB->isColumnExists('document_extra_vars', 'sort_value') || !$oDB->isIndexExists('document_extra_vars', 'idx_sort_value')) return true;
return false; return false;
} }
@ -233,6 +237,37 @@ class Document extends ModuleObject
{ {
$oDB->addColumn('document_extra_keys', 'var_options', 'text', null, null, false, 'var_default'); $oDB->addColumn('document_extra_keys', 'var_options', 'text', null, null, false, 'var_default');
} }
// 2025.10.23 Add sort to document_extra_keys table, and sort_value to document_extra_vars table
if(!$oDB->isColumnExists('document_extra_keys', 'var_sort'))
{
$oDB->addColumn('document_extra_keys', 'var_sort', 'char', '1', 'N', true, 'var_search');
}
if(!$oDB->isColumnExists('document_extra_vars', 'sort_value') || !$oDB->isIndexExists('document_extra_vars', 'idx_sort_value'))
{
$oDB->addColumn('document_extra_vars', 'sort_value', 'bigint', null, null, false, 'value');
$oDB->begin();
$output = executeQueryArray('document.getDocumentNumericExtraKeys', ['var_type' => 'number']);
if (!$output->toBool())
{
$oDB->rollback();
return $output;
}
foreach ($output->data ?? [] as $item)
{
$output = executeQuery('document.updateDocumentExtraVarSortValue', [
'module_srl' => $item->module_srl,
'var_idx' => $item->var_idx,
]);
if (!$output->toBool())
{
$oDB->rollback();
return $output;
}
}
$oDB->commit();
$oDB->addIndex('document_extra_vars', 'idx_sort_value', array('sort_value'));
}
} }
/** /**

View file

@ -846,7 +846,7 @@ class DocumentController extends Document
{ {
foreach($extra_keys as $idx => $extra_item) foreach($extra_keys as $idx => $extra_item)
{ {
$value = NULL; $value = $sort_value = null;
if(isset($obj->{'extra_vars'.$idx})) if(isset($obj->{'extra_vars'.$idx}))
{ {
$tmp = $obj->{'extra_vars'.$idx}; $tmp = $obj->{'extra_vars'.$idx};
@ -899,7 +899,11 @@ class DocumentController extends Document
} }
$extra_vars[$extra_item->name] = $value; $extra_vars[$extra_item->name] = $value;
$this->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $idx, $value, $extra_item->eid); if ($extra_item->type === 'number')
{
$sort_value = (int)$value;
}
$this->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $idx, $value, $extra_item->eid, null, $sort_value);
} }
} }
@ -1229,7 +1233,7 @@ class DocumentController extends Document
{ {
foreach($extra_keys as $idx => $extra_item) foreach($extra_keys as $idx => $extra_item)
{ {
$value = NULL; $value = $sort_value = null;
if(isset($obj->{'extra_vars'.$idx})) if(isset($obj->{'extra_vars'.$idx}))
{ {
$tmp = $obj->{'extra_vars'.$idx}; $tmp = $obj->{'extra_vars'.$idx};
@ -1326,7 +1330,11 @@ class DocumentController extends Document
} }
} }
$extra_vars[$extra_item->name] = $value; $extra_vars[$extra_item->name] = $value;
$this->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $idx, $value, $extra_item->eid); if ($extra_item->type === 'number')
{
$sort_value = (int)$value;
}
$this->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $idx, $value, $extra_item->eid, null, $sort_value);
} }
} }
@ -1774,9 +1782,10 @@ class DocumentController extends Document
* @param int $eid * @param int $eid
* @param string $var_is_strict * @param string $var_is_strict
* @param array $var_options * @param array $var_options
* @param string $var_sort
* @return object * @return object
*/ */
function insertDocumentExtraKey($module_srl, $var_idx, $var_name, $var_type, $var_is_required = 'N', $var_search = 'N', $var_default = '', $var_desc = '', $eid = 0, $var_is_strict = 'N', $var_options = null) function insertDocumentExtraKey($module_srl, $var_idx, $var_name, $var_type, $var_is_required = 'N', $var_search = 'N', $var_default = '', $var_desc = '', $eid = 0, $var_is_strict = 'N', $var_options = null, $var_sort = 'N')
{ {
if (!$module_srl || !$var_idx || !$var_name || !$var_type || !$eid) if (!$module_srl || !$var_idx || !$var_name || !$var_type || !$eid)
{ {
@ -1791,6 +1800,7 @@ class DocumentController extends Document
$obj->var_is_required = $var_is_required=='Y'?'Y':'N'; $obj->var_is_required = $var_is_required=='Y'?'Y':'N';
$obj->var_is_strict = $var_is_strict=='Y'?'Y':'N'; $obj->var_is_strict = $var_is_strict=='Y'?'Y':'N';
$obj->var_search = $var_search=='Y'?'Y':'N'; $obj->var_search = $var_search=='Y'?'Y':'N';
$obj->var_sort = $var_sort=='Y'?'Y':'N';
$obj->var_default = $var_default; $obj->var_default = $var_default;
$obj->var_options = $var_options ? json_encode($var_options, \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES) : null; $obj->var_options = $var_options ? json_encode($var_options, \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES) : null;
$obj->var_desc = $var_desc; $obj->var_desc = $var_desc;
@ -1878,9 +1888,10 @@ class DocumentController extends Document
* @param mixed $value * @param mixed $value
* @param int $eid * @param int $eid
* @param string $lang_code * @param string $lang_code
* @return Object|void * @param ?int $sort_value
* @return BaseObject
*/ */
public static function insertDocumentExtraVar($module_srl, $document_srl, $idx_or_eid, $value, $eid = null, $lang_code = null) public static function insertDocumentExtraVar($module_srl, $document_srl, $idx_or_eid, $value, $eid = null, $lang_code = null, $sort_value = null)
{ {
if(!$module_srl || !$document_srl || !$idx_or_eid || !isset($value)) if(!$module_srl || !$document_srl || !$idx_or_eid || !isset($value))
{ {
@ -1913,6 +1924,7 @@ class DocumentController extends Document
$obj->document_srl = $document_srl; $obj->document_srl = $document_srl;
$obj->var_idx = $idx_or_eid; $obj->var_idx = $idx_or_eid;
$obj->value = $value; $obj->value = $value;
$obj->sort_value = $sort_value;
$obj->lang_code = $lang_code ?: Context::getLangType(); $obj->lang_code = $lang_code ?: Context::getLangType();
$obj->eid = $eid; $obj->eid = $eid;
@ -1927,9 +1939,10 @@ class DocumentController extends Document
* @param mixed $value * @param mixed $value
* @param int $eid * @param int $eid
* @param string $lang_code * @param string $lang_code
* @return Object|void * @param ?int $sort_value
* @return BaseObject
*/ */
public static function updateDocumentExtraVar($module_srl, $document_srl, $idx_or_eid, $value, $eid = null, $lang_code = null) public static function updateDocumentExtraVar($module_srl, $document_srl, $idx_or_eid, $value, $eid = null, $lang_code = null, $sort_value = null)
{ {
if(!$module_srl || !$document_srl || !$idx_or_eid || !isset($value)) if(!$module_srl || !$document_srl || !$idx_or_eid || !isset($value))
{ {
@ -1957,13 +1970,10 @@ class DocumentController extends Document
} }
} }
$obj = new stdClass; if (!$lang_code)
$obj->module_srl = $module_srl; {
$obj->document_srl = $document_srl; $lang_code = Context::getLangType();
$obj->var_idx = $idx_or_eid; }
$obj->value = $value;
$obj->lang_code = $lang_code ?: Context::getLangType();
$obj->eid = $eid;
$oDB = DB::getInstance(); $oDB = DB::getInstance();
$oDB->begin(); $oDB->begin();
@ -1975,7 +1985,7 @@ class DocumentController extends Document
return $output; return $output;
} }
$output = self::insertDocumentExtraVar($module_srl, $document_srl, $idx_or_eid, $value, $eid, $lang_code); $output = self::insertDocumentExtraVar($module_srl, $document_srl, $idx_or_eid, $value, $eid, $lang_code, $sort_value);
if (!$output->toBool()) if (!$output->toBool())
{ {
$oDB->rollback(); $oDB->rollback();
@ -1993,7 +2003,7 @@ class DocumentController extends Document
* @param int $var_idx * @param int $var_idx
* @param string $lang_code * @param string $lang_code
* @param int $eid * @param int $eid
* @return $output * @return BaseObject
*/ */
public static function deleteDocumentExtraVars($module_srl, $document_srl = null, $var_idx = null, $lang_code = null, $eid = null) public static function deleteDocumentExtraVars($module_srl, $document_srl = null, $var_idx = null, $lang_code = null, $eid = null)
{ {
@ -2003,8 +2013,7 @@ class DocumentController extends Document
if(!is_null($var_idx)) $obj->var_idx = $var_idx; if(!is_null($var_idx)) $obj->var_idx = $var_idx;
if(!is_null($lang_code)) $obj->lang_code = $lang_code; if(!is_null($lang_code)) $obj->lang_code = $lang_code;
if(!is_null($eid)) $obj->eid = $eid; if(!is_null($eid)) $obj->eid = $eid;
$output = executeQuery('document.deleteDocumentExtraVars', $obj); return executeQuery('document.deleteDocumentExtraVars', $obj);
return $output;
} }

View file

@ -239,6 +239,7 @@ class DocumentModel extends Document
$sort_check = self::_setSortIndex($obj, $load_extra_vars); $sort_check = self::_setSortIndex($obj, $load_extra_vars);
$obj->sort_index = $sort_check->sort_index; $obj->sort_index = $sort_check->sort_index;
$obj->isExtraVars = $sort_check->isExtraVars; $obj->isExtraVars = $sort_check->isExtraVars;
$obj->isExtraVarsSortAsNumber = $sort_check->isExtraVarsSortAsNumber;
$obj->except_notice = $except_notice; $obj->except_notice = $except_notice;
$obj->columnList = $columnList; $obj->columnList = $columnList;
@ -672,6 +673,7 @@ class DocumentModel extends Document
$sort_check = self::_setSortIndex($opt); $sort_check = self::_setSortIndex($opt);
$opt->sort_index = $sort_check->sort_index; $opt->sort_index = $sort_check->sort_index;
$opt->isExtraVars = $sort_check->isExtraVars; $opt->isExtraVars = $sort_check->isExtraVars;
$opt->isExtraVarsSortAsNumber = $sort_check->isExtraVarsSortAsNumber;
self::_setSearchOption($opt, $args, $query_id, $use_division); self::_setSearchOption($opt, $args, $query_id, $use_division);
@ -1363,20 +1365,20 @@ class DocumentModel extends Document
return $args; return $args;
} }
$eids = array(); foreach($extra_keys as $extra_key)
foreach($extra_keys as $idx => $key)
{ {
$eids[] = $key->eid; if ($args->sort_index === $extra_key->eid)
{
$args->isExtraVars = true;
if ($extra_key->type === 'number')
{
$args->isExtraVarsSortAsNumber = true;
}
return $args;
}
} }
// check it exists in extra keys of the module $args->sort_index = 'list_order';
if(!in_array($args->sort_index, $eids))
{
$args->sort_index = 'list_order';
return $args;
}
$args->isExtraVars = true;
return $args; return $args;
} }
@ -1556,7 +1558,14 @@ class DocumentModel extends Document
{ {
$args->sort_eid = $args->sort_index; $args->sort_eid = $args->sort_index;
$args->sort_lang = Context::getLangType(); $args->sort_lang = Context::getLangType();
$args->sort_index = 'extra_sort.value'; if ($searchOpt->isExtraVarsSortAsNumber ?? false)
{
$args->sort_index = 'extra_sort.sort_value';
}
else
{
$args->sort_index = 'extra_sort.value';
}
} }
$query_id = 'document.getDocumentListWithExtraVars'; $query_id = 'document.getDocumentListWithExtraVars';
} }

View file

@ -10,6 +10,7 @@
<column name="var_is_required" alias="is_required" /> <column name="var_is_required" alias="is_required" />
<column name="var_is_strict" alias="is_strict" /> <column name="var_is_strict" alias="is_strict" />
<column name="var_search" alias="search" /> <column name="var_search" alias="search" />
<column name="var_sort" alias="sort" />
<column name="var_default" alias="default" /> <column name="var_default" alias="default" />
<column name="var_options" alias="options" /> <column name="var_options" alias="options" />
<column name="var_desc" alias="desc" /> <column name="var_desc" alias="desc" />

View file

@ -0,0 +1,13 @@
<query id="getDocumentNumericExtraKeys" action="select">
<tables>
<table name="document_extra_keys" />
</tables>
<columns>
<column name="module_srl" />
<column name="var_idx" />
<column name="var_type" />
</columns>
<conditions>
<condition operation="in" column="var_type" var="var_type" />
</conditions>
</query>

View file

@ -10,6 +10,7 @@
<column name="var_is_required" var="var_is_required" default="N" notnull="notnull" /> <column name="var_is_required" var="var_is_required" default="N" notnull="notnull" />
<column name="var_is_strict" var="var_is_strict" default="N" notnull="notnull" /> <column name="var_is_strict" var="var_is_strict" default="N" notnull="notnull" />
<column name="var_search" var="var_search" default="N" notnull="notnull" /> <column name="var_search" var="var_search" default="N" notnull="notnull" />
<column name="var_sort" var="var_sort" default="N" notnull="notnull" />
<column name="var_default" var="var_default" /> <column name="var_default" var="var_default" />
<column name="var_options" var="var_options" /> <column name="var_options" var="var_options" />
<column name="var_desc" var="var_desc" /> <column name="var_desc" var="var_desc" />

View file

@ -7,6 +7,7 @@
<column name="document_srl" var="document_srl" filter="number" notnull="notnull" /> <column name="document_srl" var="document_srl" filter="number" notnull="notnull" />
<column name="var_idx" var="var_idx" filter="number" notnull="notnull" /> <column name="var_idx" var="var_idx" filter="number" notnull="notnull" />
<column name="value" var="value" notnull="notnull" /> <column name="value" var="value" notnull="notnull" />
<column name="sort_value" var="sort_value" />
<column name="lang_code" var="lang_code" /> <column name="lang_code" var="lang_code" />
<column name="eid" var="eid" notnull="notnull" /> <column name="eid" var="eid" notnull="notnull" />
</columns> </columns>

View file

@ -8,6 +8,7 @@
<column name="var_is_required" var="var_is_required" default="N" notnull="notnull" /> <column name="var_is_required" var="var_is_required" default="N" notnull="notnull" />
<column name="var_is_strict" var="var_is_strict" default="N" notnull="notnull" /> <column name="var_is_strict" var="var_is_strict" default="N" notnull="notnull" />
<column name="var_search" var="var_search" default="N" notnull="notnull" /> <column name="var_search" var="var_search" default="N" notnull="notnull" />
<column name="var_sort" var="var_sort" default="N" notnull="notnull" />
<column name="var_default" var="var_default" default="" /> <column name="var_default" var="var_default" default="" />
<column name="var_options" var="var_options" default="" /> <column name="var_options" var="var_options" default="" />
<column name="var_desc" var="var_desc" /> <column name="var_desc" var="var_desc" />

View file

@ -4,6 +4,7 @@
</tables> </tables>
<columns> <columns>
<column name="value" var="value" /> <column name="value" var="value" />
<column name="sort_value" var="sort_value" />
<column name="lang_code" var="lang_code" /> <column name="lang_code" var="lang_code" />
<column name="eid" var="eid" /> <column name="eid" var="eid" />
</columns> </columns>

View file

@ -0,0 +1,12 @@
<query id="updateDocumentExtraVarSortValue" action="update">
<tables>
<table name="document_extra_vars" />
</tables>
<columns>
<column name="sort_value" default="CAST(value AS UNSIGNED)" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />
<condition operation="equal" column="var_idx" var="var_idx" filter="number" notnull="notnull" />
</conditions>
</query>

View file

@ -6,6 +6,7 @@
<column name="var_is_required" type="char" size="1" default="N" notnull="notnull" /> <column name="var_is_required" type="char" size="1" default="N" notnull="notnull" />
<column name="var_is_strict" type="char" size="1" default="N" notnull="notnull" /> <column name="var_is_strict" type="char" size="1" default="N" notnull="notnull" />
<column name="var_search" type="char" size="1" default="N" notnull="notnull" /> <column name="var_search" type="char" size="1" default="N" notnull="notnull" />
<column name="var_sort" type="char" size="1" default="N" notnull="notnull" />
<column name="var_default" type="text" /> <column name="var_default" type="text" />
<column name="var_options" type="text" /> <column name="var_options" type="text" />
<column name="var_desc" type="text" /> <column name="var_desc" type="text" />

View file

@ -4,5 +4,6 @@
<column name="var_idx" type="number" size="11" notnull="notnull" unique="unique_extra_vars" /> <column name="var_idx" type="number" size="11" notnull="notnull" unique="unique_extra_vars" />
<column name="lang_code" type="varchar" size="10" notnull="notnull" unique="unique_extra_vars" /> <column name="lang_code" type="varchar" size="10" notnull="notnull" unique="unique_extra_vars" />
<column name="value" type="bigtext" /> <column name="value" type="bigtext" />
<column name="sort_value" type="bigint" index="idx_sort_value" />
<column name="eid" type="varchar" size="40" /> <column name="eid" type="varchar" size="40" />
</table> </table>

View file

@ -86,6 +86,13 @@
<label class="x_inline" for="search_n"><input type="radio" name="search" id="search_n" value="N" checked="checked"|cond="$selected_var->search!='Y'" /> {$lang->not}</label> <label class="x_inline" for="search_n"><input type="radio" name="search" id="search_n" value="N" checked="checked"|cond="$selected_var->search!='Y'" /> {$lang->not}</label>
</div> </div>
</div> </div>
<div class="x_control-group">
<label class="x_control-label">{$lang->cmd_sort}</label>
<div class="x_controls">
<label class="x_inline" for="sort_y"><input type="radio" name="sort" id="sort_y" value="Y" checked="checked"|cond="$selected_var->sort=='Y'" /> {$lang->yes}</label>
<label class="x_inline" for="sort_n"><input type="radio" name="sort" id="sort_n" value="N" checked="checked"|cond="$selected_var->sort!='Y'" /> {$lang->not}</label>
</div>
</div>
<div class="x_clearfix btnArea"> <div class="x_clearfix btnArea">
<div class="x_pull-left"> <div class="x_pull-left">
@ -120,6 +127,7 @@
<th>{$lang->default_value}</th> <th>{$lang->default_value}</th>
<th>{$lang->is_required}</th> <th>{$lang->is_required}</th>
<th>{$lang->cmd_search}</th> <th>{$lang->cmd_search}</th>
<th>{$lang->cmd_sort}</th>
<th>&nbsp;</th> <th>&nbsp;</th>
</tr> </tr>
</thead> </thead>
@ -138,6 +146,7 @@
<td>{$val->default}&nbsp;</td> <td>{$val->default}&nbsp;</td>
<td class="nowr"><!--@if($val->is_required=='Y')--><strong>Y</strong><!--@else-->N<!--@end--></td> <td class="nowr"><!--@if($val->is_required=='Y')--><strong>Y</strong><!--@else-->N<!--@end--></td>
<td class="nowr"><!--@if($val->search=='Y')--><strong>Y</strong><!--@else-->N<!--@end--></td> <td class="nowr"><!--@if($val->search=='Y')--><strong>Y</strong><!--@else-->N<!--@end--></td>
<td class="nowr"><!--@if($val->sort=='Y')--><strong>Y</strong><!--@else-->N<!--@end--></td>
<td class="nowr" style="text-align:right"> <td class="nowr" style="text-align:right">
<block cond="$val->idx > 1"> <block cond="$val->idx > 1">
<button type="button" class="x_icon-arrow-up" onclick="moveVar('up','{$module_srl}','{$val->idx}')">{$lang->cmd_move_up}</button> <button type="button" class="x_icon-arrow-up" onclick="moveVar('up','{$module_srl}','{$val->idx}')">{$lang->cmd_move_up}</button>

View file

@ -36,6 +36,7 @@ class Value
public $is_disabled = 'N'; public $is_disabled = 'N';
public $is_readonly = 'N'; public $is_readonly = 'N';
public $search = 'N'; public $search = 'N';
public $sort = 'N';
public $style = null; public $style = null;
/** /**
@ -87,8 +88,9 @@ class Value
* @param string $parent_type * @param string $parent_type
* @param string $is_strict * @param string $is_strict
* @param string $options * @param string $options
* @param string $sort
*/ */
function __construct(int $module_srl, int $idx, string $name, string $type = 'text', $default = null, $desc = '', $is_required = 'N', $search = 'N', $value = null, $eid = '', $parent_type = 'document', $is_strict = '', $options = null) function __construct(int $module_srl, int $idx, string $name, string $type = 'text', $default = null, $desc = '', $is_required = 'N', $search = 'N', $value = null, $eid = '', $parent_type = 'document', $is_strict = '', $options = null, $sort = 'N')
{ {
if (!$idx) if (!$idx)
{ {
@ -108,6 +110,7 @@ class Value
$this->is_required = $is_required; $this->is_required = $is_required;
$this->is_strict = $is_strict; $this->is_strict = $is_strict;
$this->search = $search; $this->search = $search;
$this->sort = $sort;
} }
/** /**

View file

@ -50,7 +50,7 @@ class ValueCollection
foreach ($keys as $val) foreach ($keys as $val)
{ {
$this->keys[$val->idx] = new Value($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value ?? null, $val->eid, $val->parent_type ?? 'document', $val->is_strict, $val->options); $this->keys[$val->idx] = new Value($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value ?? null, $val->eid, $val->parent_type ?? 'document', $val->is_strict, $val->options, $val->sort ?? 'N');
} }
} }