Printing a list of 'hidden' records
8 posts by 3 authors in: Forums > CMS Builder
Last Post: December 15, 2008 (RSS)
I’ve been asked to create a list of members for an organization client, but here’s the catch.
If a member is delinquent in their payments for more than 60 days then their record is (manually) hidden in the membership list by a “hidden” check box field.
The treasurer would like a list of these long past due members as part of a payment status list.
It seems that if a record is “hidden” then it is not included in a list page viewer no matter what the criteria.
<?php if ($record['hidden'] == '0'): ?> or <?php if ($record['hidden'] == '1'): ?>
So the following doesn’t work:
<table width="100%" valign="top" border="0">
<?php foreach ($artistsRecords as $record ): ?>
<tr>
<td >
<?php if ($record['hidden'] == '0'): ?>
<?php echo $record['last_name'] ?>, <?php echo $record['first_name'] ?><br />
<?php echo $record['email'] ?><br />
</td>
</tr>
<?php endif ?><?php endforeach; ?>
</table>
If the value is "0" then I get a list of all the unhidden records and if the value is "1" then there are no records shown.
Any suggestions on how to achieve the desired result?
Thanks
Jerry Kornbluth
Take advantage of a free 3 month trial subscription, only for CMSB users, at: http://www.thecmsbcookbook.com/trial.php
Re: [gkornbluth] Printing a list of 'hidden' records
By ross - December 11, 2008 - edited: December 11, 2008
Thanks for posting!
Your code looks good to me. I did a little test install internally here and used basically the same thing (different field name) and it works for me.
My first though is that perhaps the value for hidden items isn't actually "1". Could you check in the section editor for what values are assigned?
Next, I would setup a test.php file just to try a few things out. Like, maybe just create a quick list that only displays the value of that field like this:
<?php foreach ($artistsRecords as $record ): ?>
<?php echo $record['hidden'] ?><br>
<?php endforeach; ?>
Of course, you'll need that bit of code for the top of the page too. But this page will just display the actual value in "hidden" for each record.
Could you give this all shot and let me know where it gets us?
Thanks!
Cheers,
Ross Fairbairn - Consulting
consulting@interactivetools.com
Hire me! Save time by getting our experts to help with your project.
Template changes, advanced features, full integration, whatever you
need. Whether you need one hour or fifty, get it done fast with
Priority Consulting: http://www.interactivetools.com/consulting/
Re: [gkornbluth] Printing a list of 'hidden' records
By Dave - December 11, 2008
Try adding these options:
'where' => " 0 ",
'orWhere' => " hidden = '1' ",
The "orWhere" adds another condition that if matched will return a record even if it doesn't match any other conditions. Note that this might not work properly with automatic searching, etc.
To see the actual MySQL query that CMS Builder is using add this:
'debugSql' => true,
Hope that helps!
interactivetools.com
Re: [Dave] Printing a list of 'hidden' records
By gkornbluth - December 12, 2008 - edited: December 12, 2008
Hate to seem dumb. but it's been a really long day.
Where should I insert those lines in my code above?
Or do they appear at the top of the page in the "require once" section?
Thanks.
Jerry
Take advantage of a free 3 month trial subscription, only for CMSB users, at: http://www.thecmsbcookbook.com/trial.php
Re: [gkornbluth] Printing a list of 'hidden' records
By Dave - December 14, 2008
list($productsRecords, $productsMetaData) = getRecords(array(
'tableName' => 'products',
'perPage' => '8',
));
But you may have different options or values. Add the lines in red:
list($productsRecords, $productsMetaData) = getRecords(array(
'tableName' => 'products',
'perPage' => '8',
'where' => " 0 ",
'orWhere' => " hidden = '1' ",
));
If that doesn't work post that little block of code from your viewer file and I'll take a look.
Hope that helps!
interactivetools.com
Re: [Dave] Printing a list of 'hidden' records
What actually worked for me was:
list($artistsRecords, $artistsMetaData) = etRecords(array(
'tableName' => 'artists',
'where' => " hidden = '0' ",
'orWhere' => " hidden = '1' ",
));
Then I could use:
<?php if ($record['hidden'] == '1'): ?> or
<?php if ($record['hidden'] == '0'): ?>
to show lists of each category of members on the same viewer page.
Just curious, why is it necessary to use the 'where' statements in the getRecord() block for the "hidden" field and not necessary for any regular fields?
Jerry
Take advantage of a free 3 month trial subscription, only for CMSB users, at: http://www.thecmsbcookbook.com/trial.php
Re: [gkornbluth] Printing a list of 'hidden' records
By Dave - December 15, 2008
>Just curious, why is it necessary to use the 'where'
>statements in the getRecord() block for the "hidden"
>field and not necessary for any regular fields?
The "hidden" field is a special field. Anytime it exists CMS Builder automatically adds "WHERE hidden = 0" to the query. You can see the MySQL query CMS Builder creates by temporarily adding this option below the others:
'debugSql' => true,
You can see a list of other "special" fieldnames here:
http://www.interactivetools.com/docs/cmsbuilder/special_fieldnames.html
Since the purpose and design of the hidden field is to hide those records, when you want to show them instead we need to do some extra work to make it work. :)
Hope that makes sense, let me know if you have any other questions about that.
interactivetools.com
Re: [Dave] Printing a list of 'hidden' records
Thanks
Take advantage of a free 3 month trial subscription, only for CMSB users, at: http://www.thecmsbcookbook.com/trial.php