rcowen00
asked on
Help finding how the page is being sorted?!?
Hi Experts,
I have a php application that lists all the student members on a form.
Where is the sort being set?
I have a file super_index_students.ctp that lists all the member students in the system. I can see that a sort is set in the headers and it works, but we would like it to be desc by default and able to switch back and forth. I should be able to edit line 23 to reflect below, but it doesn't work. The sort is still ASC. So where is the sort coming from?
I understand when a cakephp app is created the View pulls the data from the Controller. I do see a function included in the Member controller called the same name, but I can't find any sort there either. What am I missing or doing wrong? Any suggestions would be greatly appreciated.
Example of the desc order I want.
member_controller
super_index_students.ctp
I have a php application that lists all the student members on a form.
Where is the sort being set?
I have a file super_index_students.ctp that lists all the member students in the system. I can see that a sort is set in the headers and it works, but we would like it to be desc by default and able to switch back and forth. I should be able to edit line 23 to reflect below, but it doesn't work. The sort is still ASC. So where is the sort coming from?
I understand when a cakephp app is created the View pulls the data from the Controller. I do see a function included in the Member controller called the same name, but I can't find any sort there either. What am I missing or doing wrong? Any suggestions would be greatly appreciated.
Example of the desc order I want.
<th><?php echo $paginator->sort('id',null,array('direction'=>'desc'));?></th>
member_controller
function super_index_students() {
$this->admincheck();
$this->set('security_id', $this->Session->read('security_id'));
$this->Member->recursive = -1;
$students = $this->paginate('Member', array('member_type_id'=>1));
$this->set('members', $students);
}
super_index_students.ctp
<br /><br /><br /><?php //var_dump($members);
//var_dump($students_array); ?>
<?php
echo $form->create(array('method'=>'link', 'action' => 'search_students', 'controller'=>'members','super'=>true));
echo $form->end(array('label'=>'Search'));
// echo $html->link(__('Search', true), array('controller'=> 'members', 'action'=>'search_students'));
?>
<div class="members index">
<h1 class="heading"><?php __('Students Index');?></h1>
<p>
<?php
echo $paginator->counter(array(
'format' => __('Page %page% of %pages%, showing %current% records out of %count% total, starting on record %start%, ending on %end%', true)
));
?></p>
<p align="right" style="font-weight:bold;color:#ea8f40;margin-bottom:0px;padding-right:15px;">
A=Assign | E=Edit | D=Delete
</p>
<table cellpadding="5" cellspacing="0" class="admin_table">
<tr>
<th><?php echo $paginator->sort('id');?></th>
<th><?php echo $paginator->sort('username');?></th>
<th>Name(<?php echo $paginator->sort('first');?>
<?php echo $paginator->sort('last');?>)</th>
<th><?php echo $paginator->sort('email');?></th>
<th><?php echo $paginator->sort('phone');?></th>
<th><?php echo $paginator->sort('active');?></th>
<th class="actions" style="width:50px" align=left><?php __('Actions');?></th>
</tr>
<?php
$i = 0;
foreach ($members as $member):
$class = null;
if ($i++ % 2 == 0) {
$class = ' class="altrow"';
}
?>
<tr<?php echo $class;?>>
<td>
<?php echo $member['Member']['id']; ?>
</td>
<td>
<?php echo $member['Member']['username']; ?>
</td>
<td>
<?php echo $member['Member']['first']; ?> <?php echo $member['Member']['last']; ?>
</td>
<td>
<?php echo $member['Member']['email']; ?>
</td>
<td>
<?php echo $member['Member']['phone']; ?>
</td>
<td>
<?php echo $member['Member']['active']; ?>
</td>
<td class="actions" style="width:50px" align=left>
<?php
if(empty($member['StudentsAndTutor'])){
echo $html->link(__('A', true), array('controller'=> 'students_and_tutors', 'action'=>'student_assign', $member['Member']['id']));
} ?> |
<?php //echo $html->link(__('View', true), array('action'=>'view', $member['Member']['id'])); ?>
<?php echo $html->link(__('E', true), array('action'=>'edit_student', $member['Member']['id'])); ?>
|
<?php echo $html->link(__('D', true), array('action'=>'delete', $member['Member']['id'],1, '?sid=' . $security_id), null, sprintf(__('Are you sure you want to delete # %s?', true), $member['Member']['id'],1)); ?>
</td>
</tr>
<?php endforeach; ?>
</table>
</div>
<?php //pr($members); ?>
<div class="paging" style="padding-left:15px; padding-top:15px;" align="left">
<?php echo $paginator->prev('<< '.__('previous', true), array(), null, array('class'=>'disabled'));?>
| <?php echo $paginator->numbers();?>
<?php echo $paginator->next(__('next', true).' >>', array(), null, array('class'=>'disabled'));?>
</div>
<!--
<div class="actions">
<ul>
<li><?php echo $html->link(__('List Tutors', true), array('action'=>'index_tutors')); ?></li>
<li><?php echo $html->link(__('Back to Admin', true), array('action'=>'index')); ?></li>
<li><?php echo $html->link(__('New Member', true), array('action'=>'add')); ?></li>
<li><?php echo $html->link(__('List Member Types', true), array('controller'=> 'member_types', 'action'=>'index')); ?> </li>
<li><?php echo $html->link(__('New Member Type', true), array('controller'=> 'member_types', 'action'=>'add')); ?> </li>
<li><?php echo $html->link(__('List Languages Members', true), array('controller'=> 'languages_members', 'action'=>'index')); ?> </li>
<li><?php echo $html->link(__('New Languages Member', true), array('controller'=> 'languages_members', 'action'=>'add')); ?> </li>
<li><?php echo $html->link(__('List Students And Tutors', true), array('controller'=> 'students_and_tutors', 'action'=>'index')); ?> </li>
<li><?php echo $html->link(__('New Students And Tutor', true), array('controller'=> 'students_and_tutors', 'action'=>'add')); ?> </li>
<li><?php echo $html->link(__('List Tutor Lessons', true), array('controller'=> 'tutor_lessons', 'action'=>'index')); ?> </li>
<li><?php echo $html->link(__('New Tutor Lesson', true), array('controller'=> 'tutor_lessons', 'action'=>'add')); ?> </li>
</ul>
</div>
-->
<div class="actions" style="width:100%">
<table border="0" style="width:100%;margin:0 auto;"><tr><td align="right">
<?php
echo $form->create(array('method'=>'link', 'action' => 'index_tutors', 'controller'=>'members','super'=>true));
echo $form->end(array('label'=>'Tutor Index','div'=>''));
echo '</td><td align="left">';
echo $form->create(array('method'=>'link', 'action' => 'index', 'controller'=>'members','super'=>true));
echo $form->end(array('label'=>'Admin Home','div'=>''));
?>
</td></tr> </table>
</div>
<br><br>
ASKER
When I changed that the header disappeared and the order is still ASC.
okay - change the sort on line 25 to rsort.
Which PHP implementation and version are you using?
ASKER
PHP Version 5.2.17
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
<th><?php echo $paginator->sort('username');?></th>
to
<th><?php echo $paginator->rsort('username');?></th>
For additional references on PHP sorting methods, I refer you here.