Solved

Help finding how the page is being sorted?!?

Posted on 2016-09-14
6
31 Views
Last Modified: 2016-10-19
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

0
Comment
Question by:rcowen00
  • 4
  • 2
6 Comments
 
LVL 15

Expert Comment

by:WalkaboutTigger
ID: 41798851
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
 

Author Comment

by:rcowen00
ID: 41798993
When I changed that the header disappeared and the  order is still ASC.
0
 
LVL 15

Expert Comment

by:WalkaboutTigger
ID: 41799104
okay -  change the sort on line 25 to rsort.
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
LVL 15

Expert Comment

by:WalkaboutTigger
ID: 41799105
Which PHP implementation and version are you using?
0
 

Author Comment

by:rcowen00
ID: 41810043
PHP Version      5.2.17
0
 
LVL 15

Accepted Solution

by:
WalkaboutTigger earned 500 total points
ID: 41819341
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

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Popularity Can Be Measured Sometimes we deal with questions of popularity, and we need a way to collect opinions from our clients.  This article shows a simple teaching example of how we might elect a favorite color by letting our clients vote for …
Password hashing is better than message digests or encryption, and you should be using it instead of message digests or encryption.  Find out why and how in this article, which supplements the original article on PHP Client Registration, Login, Logo…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The purpose of this video is to demonstrate how to set up the WordPress backend so that each page automatically generates a Mailchimp signup form in the sidebar. This will be demonstrated using a Windows 8 PC. Tools Used are Photoshop, Awesome…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now