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.
<th><?php echo $paginator->sort('id',null,array('direction'=>'desc'));?></th>

Open in new window


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);

    }

Open in new window


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> 

Open in new window

rcowen00Asked:
Who is Participating?
 
Darrell PorterConnect With a Mentor Enterprise Business Process ArchitectCommented:
Just to be clear, you want the default sort to be descending as opposed to ascending.

In the Member_Controller can you try changing line 9:
$students = $this->paginate('Member', array('member_type_id'=>1) DESC');

Open in new window

0
 
Darrell PorterEnterprise Business Process ArchitectCommented:
Change
<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.
0
 
rcowen00Author Commented:
When I changed that the header disappeared and the  order is still ASC.
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
Darrell PorterEnterprise Business Process ArchitectCommented:
okay -  change the sort on line 25 to rsort.
0
 
Darrell PorterEnterprise Business Process ArchitectCommented:
Which PHP implementation and version are you using?
0
 
rcowen00Author Commented:
PHP Version      5.2.17
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.