maclazaro Posted November 13, 2007 Share Posted November 13, 2007 i got change a database made by someone in china. My skills don't reach to the level of using the smarty plugin, in which you sparate the code and the content. I managed to find a the files that i pressume i have to cahnge in order to display data in the way i want. I want to be able to display all data alphabetically ordered and with the possibility to search by an alphabetical index(abcdf..) so fa my database sort data alphabetically but it displays its content in pages that are indexed numerically (1,2,3,4,5, ...), so it makes harder to fetch an specific contact. this is what smarty creates for when you load the contacts list from the database : <?php /* Smarty version 2.6.13, created on 2007-01-20 05:41:51 compiled from Contact/ContactList.tpl */ ?> <?php require_once(SMARTY_CORE_DIR . 'core.load_plugins.php'); smarty_core_load_plugins(array('plugins' => array(array('function', 'html_options', 'Contact/ContactList.tpl', 13, false),array('function', 'cycle', 'Contact/ContactList.tpl', 57, false),array('function', 'supager', 'Contact/ContactList.tpl', 71, false),)), $this); ?> <table width="100%" border="0" cellpadding="0" cellspacing="20"> <td align="left" valign="top" bgcolor="#FFFFFF"> <h1>Contact list </h1> <form id=frmPager name=frmPager runat=server method=post> <input type=hidden id='___eventTarget' name='___eventTarget' value=''> <script language=JavaScript> var __theform; if (window.navigator.appName.toLowerCase().indexOf('microsoft') > -1) { __theform = document.frmPager; } else { __theform = document.forms['frmPager']; } __theform.onsubmit=__onsubmit; function __doPostBack(t) { __theform.___eventTarget.value = t.name; __theform.submit(); } function __onsubmit() { window.event.returnValue=false; window.event.cancelBubble=true; return false; } </script> <table width="100%" border="0" cellpadding="0" cellspacing="5" class="filter"> <tr> <td> <table width="100%" cellpadding=0 cellspacing=0> <td width=50><nobr>Filter by </nobr></td> <td> <!--<select name="filterBy" id="filterBy" onchange="document.getElementById('btnSearch').click()"> <?php echo smarty_function_html_options(array('options' => $this->_tpl_vars['filterByArr'],'selected' => $this->_tpl_vars['filterBy']), $this);?> </select> --> <select name="roleId" id="roleTypes" onchange="document.getElementById('btnSearchByRoleId').click()"> <option value="">select...</option> <?php unset($this->_dataset['roleType']); $this->_dataset['roleType']['name'] = 'roleType'; $_loop=&$this->_tpl_vars['roleTypes']; if(is_object($_loop))$_loop->reset(); while(is_object($_loop) && ($this->_dataset['roleType']['row']=$_loop->next())): ?> <?php if ($this->_dataset['roleType']['row']->PKID == $this->_tpl_vars['roleId']): ?> <option selected value="<?php echo $this->_dataset['roleType']['row']->PKID; ?> "><?php echo $this->_dataset['roleType']['row']->Name; ?> </option> <?php else: ?> <option value="<?php echo $this->_dataset['roleType']['row']->PKID; ?> "><?php echo $this->_dataset['roleType']['row']->Name; ?> </option> <?php endif; ?> <?php endwhile; ?> </select> <input type=button name="btnSearchByRoleId" id="btnSearchByRoleId" value="searchR" style="display:none;" onclick="JavaScript:__doPostBack(this);"> </td> <td align=right> <input type=text name=roleName value="<?php echo $this->_tpl_vars['roleName']; ?> "> <input type=submit onclick="JavaScript:__doPostBack(this);" name="btnSearchByRoleName" id="btnSearchByRoleName" value="Search" style="display:none;"> <input type=submit onclick="JavaScript:__doPostBack(this);" name="btnSearchByMulti" id="btnSearchByMulti" value="Search"> </td> </table> </td> </tr> </table> <input type=hidden name="p" id="p" value="1"> <input type=hidden name="searchType" id="searchType" value="<?php echo $this->_tpl_vars['searchType']; ?> "> <input type=button name="btnSearch" id="btnSearch" value="search" style="display:none;" onclick="JavaScript:__doPostBack(this);"> </form> <table id=tblItems width="100%" border="0" cellpadding="5" cellspacing="0"> <tr class="tablehead"> <td>First Name</td> <td>Last Name </td> <td>Role</td> <td>Business</td> <td>Phone</td> <td>Mobile</td> <td>Email</td> <td width="100" align="center"> </td> <td width="20" align="center" valign="middle"><img src="Images/icons/email.png" width="16" height="16" /></td> <td width="20" align="center" valign="middle"><img src="Images/icons/phone.png" width="16" height="16" /></td> </tr> <?php unset($this->_dataset['item']); $this->_dataset['item']['name'] = 'item'; $_loop=&$this->_tpl_vars['items']; if(is_object($_loop))$_loop->reset(); while(is_object($_loop) && ($this->_dataset['item']['row']=$_loop->next())): ?> <?php $this->assign('_PKID', $this->_dataset['item']['row']->PKID); ?> <tr class="<?php echo smarty_function_cycle(array('values' => "tablerow1,tablerow2"), $this);?> "> <td><?php echo $this->_dataset['item']['row']->Firstname; ?> </td> <td><?php echo $this->_dataset['item']['row']->Lastname; ?> </td> <td><?php echo $this->_dataset['item']['row']->RoleName; ?> </td> <td><?php echo $this->_dataset['item']['row']->Business; ?> </td> <td><?php echo $this->_dataset['item']['row']->Telephone; ?> </td> <td><?php echo $this->_dataset['item']['row']->Mobile; ?> </td> <td><a href="mailto:<?php echo $this->_dataset['item']['row']->Email; ?> "><?php echo $this->_dataset['item']['row']->Email; ?> </td> <td width=100 align=center><a href="?m=Contact.Detail&i=<?php echo $this->_tpl_vars['_PKID']; ?> ">View details</a></td> <td width=20 align=center><input type=checkbox name="sndmail<?php echo $this->_tpl_vars['_PKID']; ?> " value="<?php echo $this->_tpl_vars['_PKID']; ?> "></td> <td width=20 align=center><input type=checkbox name="sndsms<?php echo $this->_tpl_vars['_PKID']; ?> " value="<?php echo $this->_tpl_vars['_PKID']; ?> "></td> </tr> <?php endwhile; ?> <tr><td colspan="9"><?php echo smarty_function_supager(array('pageSize' => $this->_tpl_vars['pageSize'],'pageNow' => $this->_tpl_vars['pageNow'],'rowCount' => $this->_tpl_vars['rowCount']), $this);?> </td></tr> <tr class="tablerow2"> <td colspan="9" align="right"><input name="compose" type="button" onclick="composeMessage()" value="Compose message"/></td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr><td class="tablefooter"><img src="Images/shim.gif" width="1" height="3"></td></tr> </table> </td> </table> <form id=frmCompose method=post action="index.php?m=Contact.MessageM"> <input type=hidden name=contacts id=contacts value=""> </form> <?php echo ' <script language=JavaScript> function composeMessage() { var tbl=document.getElementById("tblItems"); var i=0,l=tbl.rows.length,row=null,chkmail,chksms; if(l<=2)return; var s=""; for(i=1;i<l-2;i++) { row=tbl.rows; chkmail=row.cells[7].childNodes[0].checked ? 1 : 0; chksms =row.cells[8].childNodes[0].checked ? 1 : 0; if(chkmail==1 || chksms==1) { s+=row.cells[7].childNodes[0].value+"|"+chkmail+"|"+chksms+","; } } s=s=="" ? "" : s.substring(0,s.length-1); if(s=="") { alert("select contact to send message"); return; } document.getElementById("contacts").value=s; document.getElementById("frmCompose").submit(); } function p(i) { document.getElementById("p").value=i; document.getElementById("btnSearch").click(); } </script> '; ?> so i found the function in charge to display data in different pages indexed numerically. <? function smarty_function_supager($params,&$smarty) { $ps=$params["pageSize"]; $pg=$params["pageNow"]; $rc=$params["rowCount"]; if($ps<=0)return ""; $pc=ceil($rc/$ps); if($pc<=1)return ""; $p="1"; if($pc>1) { $k=15; $x=(ceil($pg/$k)-1); if($pg==1) $p="<a><font face=webdings>9</font><a> "; else $p="<a href=JavaScript:p(1)><font face=webdings>9</font></a> "; $s=$x*$k+1; $e=$s+$k; if($x>0)$p.="<a href=JavaScript:p(".($s-1).")><font face=webdings>7</font></a> "; if($e>$pc)$e=$pc+1; for($i=$s;$i<$e;$i++) { if($pg==$i) $p.="<font color=red><b>$i</b></font> "; else $p.="<a href=JavaScript:p($i)>$i</a> "; } if($pc>$k && $e<$pc)$p.="<a href=JavaScript:p($e)><font face=webdings>8</font></a> "; if($pg==$pc) $p.="<a><font face=webdings>:</font></a>"; else $p.="<a href=JavaScript:p($pc)><font face=webdings>:</font></a>"; } $r="<table class=pager width='100%' cellpading=5 cellspacing=0 align=center>"; $r.="<tr><td width=200>Page: $pg/$pc Total $rc</td><td align=right><nobr>$p </nobr></td></tr>"; $r.="</table>"; return $r; } ?> how can this be changed alphabetically??? anyone can help? Quote Link to comment https://forums.phpfreaks.com/topic/77158-smarty/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.