Waiting for the new work of Max. I have tried to create the search, navigation and sorting in a form with the use of Multi Record DB Loader. To do this I had to create a new DB Record Multi Loader [VS] with a new field and some code changes.
These codes are entered in each action used.
[attachment=2]seach_ordering_navigation2.png[/attachment]
[attachment=1]seach_ordering_navigation3.png[/attachment]
[attachment=0]seach_ordering_navigation1.png[/attachment]
Custom Code - reading and setting session
DB Record Multi Loader [VS] WHERE statement
DB Record Multi Loader [VS] POST WHERE statement
Custom Code - header
Custom Code - body show records
Load CSS
Custom Code - footer
Custom Code - tag end form
These codes are entered in each action used.
[attachment=2]seach_ordering_navigation2.png[/attachment]
[attachment=1]seach_ordering_navigation3.png[/attachment]
[attachment=0]seach_ordering_navigation1.png[/attachment]
Custom Code - reading and setting session
<?php
$session =& JFactory::getSession('ricerca');
$session->set('ord','asc','ricerca');
$doc =& JFactory::getDocument();
$js =<<<EOF
<script type="text/javascript">
//<![CDATA[
function tableOrdering( order,dir,view) {
var form = document.getElementById("chronoform_prova_10_multi_pagination_2");
if (form.filter_order.value != order) {dir = 'asc';}
form.filter_order.value = order;
form.filter_order_Dir.value = dir;
form.action=form.action+"
EOF;
$js.="&start=".JRequest::getVar('start','','get');
$js.=<<<EOF
";
form.submit(view);
}
//]]>
</script>
EOF;
echo $js;
// start navigation
global $limit,$limitstart;
if (Jrequest::getVar('limit','0','post')<>"0") {
$session->set('limit',JRequest::getVar('limit','5','post'),'ricerca');
//$session->set('limitstart',JRequest::getVar('limitstart','0','get'),'ricerca');
}
$limit=$session->get('limit','5','ricerca');
$limitstart=JRequest::getVar('limitstart',JRequest::getVar('limitstart',0,'post'),'get');
//echo $limitstart."-".$limit;
// end navigation
?>
DB Record Multi Loader [VS] WHERE statement
<?php
$session =& JFactory::getSession('ricerca');
$session->set('ord','asc','ricerca');
$doc =& JFactory::getDocument();
$js =<<<EOF
<script type="text/javascript">
//<![CDATA[
function tableOrdering( order,dir,view) {
var form = document.getElementById("chronoform_prova_10_multi_pagination_2");
if (form.filter_order.value != order) {dir = 'asc';}
form.filter_order.value = order;
form.filter_order_Dir.value = dir;
form.action=form.action+"
EOF;
$js.="&start=".JRequest::getVar('start','','get');
$js.=<<<EOF
";
form.submit(view);
}
//]]>
</script>
EOF;
echo $js;
// start navigation
global $limit,$limitstart;
if (Jrequest::getVar('limit','0','post')<>"0") {
$session->set('limit',JRequest::getVar('limit','5','post'),'ricerca');
//$session->set('limitstart',JRequest::getVar('limitstart','0','get'),'ricerca');
}
$limit=$session->get('limit','5','ricerca');
$limitstart=JRequest::getVar('limitstart',JRequest::getVar('limitstart',0,'post'),'get');
//echo $limitstart."-".$limit;
// end navigation
?>
DB Record Multi Loader [VS] POST WHERE statement
<?php $session =& JFactory::getSession('ricerca'); if (Jrequest::getVar('filter_order','','post')=="") { Jrequest::setVar('filter_order',$session->get('campo','','ricerca'),'post'); Jrequest::setVar('filter_order_Dir',$session->get('verso','','ricerca'),'post'); } if (Jrequest::getVar('filter_order_Dir','','post')<>"") { echo "ORDER BY ".Jrequest::getVar("filter_order","","post")." ".Jrequest::getVar("filter_order_Dir","","post");} else { echo "ORDER BY `cf_id` ".$session->get('ord','','ricerca'); } ?> LIMIT <?php global $limitstart,$limit; echo $limitstart.",".$limit;?>
Custom Code - header
<h2>Search, sorting and navigation</h2>
<form action="http://localhost/joomla16/index.php?option=com_chronoforms&chronoform=prova_10_multi_pagination_2" name="prova_10_multi_pagination_2" id="chronoform_prova_10_multi_pagination_2" method="post" class="Chronoform">
<div class="ccms_form_element cfdiv_text" id="number_container_div"><label>Number</label><input maxlength="150" size="30" class=" validate['number']" rel="" title="" type="text" value="" name="cf_id" />
<div class="small-message">Enter the number you want to search</div>
<div class="clear"></div><div id="error-message-number"></div></div><div class="ccms_form_element cfdiv_text" id="field_container_div"><label>Field</label><input maxlength="150" size="30" class=" validate['alphanum']" rel="" title="" type="text" value="" name="input_text_0" />
<div class="small-message">Enter the text to search for in the field</div>
<div class="clear"></div><div id="error-message-field"></div></div><div class="ccms_form_element cfdiv_submit" id="submit_container_div"><input name="submit1" class="" value="Submit" type="submit" />
<div class="clear"></div><div id="error-message-submit"></div></div>
<?php
// start ord
$img="";
if (Jrequest::getVar('filter_order_Dir','','post')=="") {
$ord="asc";
}
if (Jrequest::getVar('filter_order_Dir','','post')=="desc") {
$ord="asc";
$img="desc";
}
if (Jrequest::getVar('filter_order_Dir','','post')=="asc") {
$ord="desc";
$img="asc";
}
// end ord
?>
<table style="width: 50%">
<tr>
<!-- insert link for ordering -->
<th style="width: 20%"><a href="javascript:tableOrdering('cf_id','<?php echo $ord; ?>','');" title="Clicca per ordinare questa colonna">Number <?php if (Jrequest::getVar('filter_order','','post')=="cf_id"){echo "<img src=\"media/system/images/sort_".$img.".png\" alt=\"\" />"; } ?></a></th>
<th "width: 80%"><a href="javascript:tableOrdering('input_text_0','<?php echo $ord; ?>','');" title="Clicca per ordinare questa colonna">Field <?php if (Jrequest::getVar('filter_order','','post')=="input_text_0"){echo "<img src=\"media/system/images/sort_".$img.".png\" alt=\"\" />"; } ?></a></th>
</tr>
Custom Code - body show records
<?php
//print_r2($form->data);
//print_r2($form->data['prova']);
global $cerca;
//print_r2($cerca);
$bb=$form->data['prova'];
foreach ($bb as $a) {
echo "<tr><td>".$a['cf_id']."</td><td>".$a['input_text_0']."</td></tr>";
}
?>
Load CSS
/* to display the navigation horizontally */
.list_footer ul li {
display: inline;
}
Custom Code - footer
</table>
<!-- start sorting -->
<p>
<input type="hidden" name="filter_order" value="<?php echo Jrequest::getVar('filter_order','','post'); ?>" />
<input type="hidden" name="filter_order_Dir" value="" />
</p>
<!-- end sorting -->
<?php
// setting navigation
global $total;// modify db_multi_record_loader.php
global $limit,$limitstart;
//echo $limit."-<br />";
echo "<br />";
//$total=21;
//$limitstart=Jrequest::getVar('limitstart','0','get');
jimport('joomla.html.pagination');
$pageNav = new JPagination($total, $limitstart, $limit);
?>
<!-- insert class for horizontal alignment navigation -->
<div class="list_footer">
<?php
echo $pageNav->getListFooter();
//echo $pageNav->getLimitBox();
//echo $pageNav->getPagesLinks();
//echo $pageNav->getResultsCounter();
//echo $limitstart."-".$limit;
// end setting navigation
?>
</div>
Custom Code - tag end form
<?php
//print_r2($_POST);
//echo "sessione settata";
//$session =& JFactory::getSession('page');
//$session->set('limit',JRequest::getVar('limit','5','post'),'page');
?>
</form>