Scot Ranney • December 19, 2023
Example: List all pages, sort by code.
<div class="form-group">
<label>Email Template</label>
<MvASSIGN NAME = "l.ok" VALUE = "{ [ g.module_feature_tui_db ].PageList_Load_All(l.pages) }" />
<MvASSIGN NAME = "l.ok" VALUE = "{ [ g.Module_Library_Utilities ].QuickSortArray(l.pages,':code',1) }" />
<select name="_customerupload_notify_email_template" class="form-control col-3">
<MvFOREACH ITERATOR = "l.page" INDEX = "l.pos" ARRAY = "l.pages">
<MvIF EXPR = "{ l.page:id EQ g.customerupload_notify_email_template }">
<option value="{ l.page:id }" selected><MvEVAL EXPR = "{ l.page:name $ ' (' $ l.page:code $ ')' }">
<MvELSE>
<option value="{ l.page:id }"><MvEVAL EXPR = "{ l.page:name $ ' (' $ l.page:code $ ')' }">
</MvIF>
</MvFOREACH>
</select>
</div>
Create a unique sort field by rolling through the array initially and setting up a slugified sort field.
<MvASSIGN NAME = "l.ok" VALUE = "{ [ g.module_feature_tui_db ].PageList_Load_All(l.pages) }" />
<MvFOREACH ITERATOR = "l.page" INDEX = "l.pos" ARRAY = "l.pages">
<mvt:assign name="l._temp_array" value="l.page" />
<mvt:assign name="l._temp_array:sort" value="slugify(substring(l.page:name,1,2) $ ' ' $ l.page:id $ ' ' $ l.page:code)" />
<mvt:assign name="l.ok" value="miva_array_insert(l.settings:new_array,l._temp_array,-1)" />
</MvFOREACH>
//OK, this is smt code, got confused, but the idea is the same.
<div class="form-group">
<label>Email Template</label>
<MvASSIGN NAME = "l.ok" VALUE = "{ [ g.Module_Library_Utilities ].QuickSortArray(l.settings:new_array,':sort',1) }" />
<select name="_customerupload_notify_email_template" class="form-control col-3">
<MvFOREACH ITERATOR = "l.page" INDEX = "l.pos" ARRAY = "l.settings:new_array">
<MvIF EXPR = "{ l.page:id EQ g.customerupload_notify_email_template }">
<option value="{ l.page:id }" selected><MvEVAL EXPR = "{ l.page:name $ ' (' $ l.page:code $ ')' }">
<MvELSE>
<option value="{ l.page:id }"><MvEVAL EXPR = "{ l.page:name $ ' (' $ l.page:code $ ')' }">
</MvIF>
</MvFOREACH>
</select>
</div>