I did go to an NB Store Forum, been waiting a week ...
This is more or less a DNN question, being as the code to set up the module must go into DNN Settings someplace, I just can't figure it out. It is similar to the template output for another person I do development work for -- that is, when I export a template I see this same code. The code shown is from their ManagerMenuDefault.xml file. I've highlighted the code where I know I should be able to insert a Visible False attribute.
I'm wondering where this would live in the DNN Database and what tutorials there are for developing modules like this. I'll chase up the entry I made on the NB Store site and make sure any reply wasn't junk-mailed and then I deleted it.
However, to keep it DNN proper -- where do I train myself up on how to work with modules in this way? That'll do the trick for me.
<listheader.text Lang="None" CtrlType="" GroupRef="root/catalogue/products" HostOnly="True">
<![CDATA[<div id="mylistheader" class="ListHeader">
<div class="SearchTerm">
<span id="searchtxthdrleft"></span><span id="searchtxt"></span><span id="searchtxthdrright"></span>
<div id="searchstrdiv" style="visibility:hidden;" >
</div>
</div>
<select id="listSort" class="NormalTextBox SortCatalogue" onchange="location = this.options[this.selectedIndex].value + '&' + getElementById('listLength')[getElementById('listLength').selectedIndex].value.split('?')[1] + document.getElementById('searchstrdiv').innerHTML.replace('amp;','');">
<option value="?orderby=name&amp;desc=0&amp;">Sort by</option>
<option value="?orderby=cdate&amp;desc=1">Newest</option>
<option value="?orderby=price&amp;desc=0">Lowest price</option>
<option value="?orderby=price&amp;desc=1">Highest price</option>
<option value="?orderby=man&amp;desc=0">Manufacturer A-Z</option>
<option value="?orderby=man&amp;desc=1">Manufacturer Z-A</option>
<option value="?orderby=name&amp;desc=0">Title A-Z</option>
<option value="?orderby=name&amp;desc=1">Title Z-A</option>
<option value="?orderby=ref&amp;desc=0">Code asc</option>
<option value="?orderby=ref&amp;desc=1">Code desc</option>
</select>
<select id="listLength" class="NormalTextBox PageLength" onchange="location = this.options[this.selectedIndex].value + '&' + getElementById('listSort')[getElementById('listSort').selectedIndex].value.split('?')[1] + document.getElementById('searchstrdiv').innerHTML.replace('amp;','');">
<option value="?psize=9&foo">Page size</option>
<option value="?psize=6">Short</option>
<option value="?psize=9">Default</option>
<option value="?psize=18">Long</option>
<option value="?psize=36">Longest</option>
</select>
</div>
<script type="text/javascript">
var searchString = window.location.search.substring(1);
var i, val;
var params = searchString.replace('?','&').split('&');
var pgsize,pgorder,pdesc,searchstr;
pgsize = 9;
pgorder = 'name';
pdesc = 0;
searchstr='';
for (i=0;i<params.length;i++) {
val = params[i].split('=');
if(val[0]== "psize")
pgsize=val[1];
else if(val[0]== "orderby")
pgorder=val[1];
else if(val[0]== "desc")
pdesc=val[1];
else if((val[0]).toLowerCase()== "search")
{ searchstr=val[1]; }
}
document.getElementById('listLength').value='?psize=' + pgsize;
document.getElementById('listSort').value ='?orderby=' + pgorder + '&desc=' + pdesc;
if(searchstr!='')
{
searchstr =decodeURIComponent(searchstr.replace(/\+/g, '%20'));
document.getElementById('searchstrdiv').innerHTML= '&search=' + searchstr ;
document.getElementById('searchtxthdrleft').innerHTML= 'Results for "' ;
document.getElementById('searchtxthdrright').innerHTML= '"' ;
document.getElementById('searchtxt').innerHTML = searchstr;
}
</script>]]>
</listheader.text>