Membership Plugin Quick Question

Re: [gsfriend] Membership Plugin Quick Question

By Dave - March 17, 2010

Hi gsfriend,

Not automatically, but it's pretty easy to setup.

What the plugin does is make a global available on every page called $CURRENT_USER that has the record of the currently logged in user.

So a simple implementation would be to have a section called "homes" with a field called "ownerUserNum" which was a pulldown of customer names (with user num stored as the value in the database).

Then in your homes viewer you could have something like:
'where' => " ownerUserNum = {$CURRENT_USER['num']} ",

And only homes assigned to the currently logged in user would be shown.

Hope that makes sense. Let me know any questions.
Dave Edis - Senior Developer
interactivetools.com

Re: [Dave] Membership Plugin Quick Question

By gsfriend - March 17, 2010

Dave,

Thanks for the reply. So for my config I was thinking I would have a multi record section labeled HOMES as you suggested. Each record then, if I am understanding this right, would have all the fields I need (Title, Name, Content, File Uploads for Images, etc.) as well as a field that would allow me to choose which registered user (from the membership plugin) would be allowed to access that page (record).

Does that sound about right?
--------------

Scott Friend

Freelance Website Design

www.scottfriendwebsitedesign.com

Re: [gsfriend] Membership Plugin Quick Question

By Dave - March 17, 2010

Hi Scott,

Yes, that's right.

You can add a field with a pulldown of users to the "Homes" section like this:

Go to: Admin > Section Editors > Homes > Add Field
Field Label: Owner
Field Name: ownerUserNum
Field Type: list

Display As: Pulldown
List Options: Get options from database (advanced)
Section Tablename: Accounts
Values Field: num
Labels Field: fullname

Let me know how it goes. :)
Dave Edis - Senior Developer
interactivetools.com

Re: [Dave] Membership Plugin Quick Question

By gsfriend - March 23, 2010

OK, I almost have everything working. However, when someone hits the protected page and they are not logged in, they hit a SQL error message instead of being bounced to the login page.

This is a link to the protected page and the error:

http://www.homesbyexcalibur.com/home_info.php

Here is my header code:

<?php header('Content-type: text/html; charset=utf-8'); ?>
<?php
require_once "/home/ekfriend/public_html/cms/lib/viewer_functions.php";

list($homeownersRecords, $homeownersMetaData) = getRecords(array(
'tableName' => 'homeowners',
'where' => " home_owner_user = {$CURRENT_USER['num']} ",
'limit' => '1',
));
$homeownersRecord = @$homeownersRecords[0]; // get first record

list($settingsRecords, $settingsMetaData) = getRecords(array(
'tableName' => 'settings',
'limit' => '1',
));
$settingsRecord = @$settingsRecords[0]; // get first record

// show error message if no matching record is found
if (!$settingsRecord) {
header("HTTP/1.0 404 Not Found");
print "Record not found!";
exit;
}

?>
<?php if (!@$GLOBALS['WEBSITE_MEMBERSHIP_PLUGIN']) { die("You must activate the Website Membership plugin before you can access this page."); } ?>
<?php if (!$CURRENT_USER) { websiteLogin_redirectToLogin(); } ?>

--------------

Scott Friend

Freelance Website Design

www.scottfriendwebsitedesign.com

Re: [gsfriend] Membership Plugin Quick Question

By gsfriend - March 23, 2010

Nevermind, I figured it out. I wasn't loading the login redirect script before the rest of the code.

DUH!
--------------

Scott Friend

Freelance Website Design

www.scottfriendwebsitedesign.com

Re: [Dave] Membership Plugin Quick Question

By Codee - March 24, 2010 - edited: March 24, 2010

Dave,
for this piece you wrote:
Then in your homes viewer you could have something like:
'where' => " ownerUserNum = {$CURRENT_USER['num']} ",


how do we adjust it so that that user/owner AND the admin can view it? I would like the admin to be able to view all the records but the userOwner only view theirs. Thanks in advance.

Re: [equinox69] Membership Plugin Quick Question

By Dave - March 24, 2010

Hi Terry,

Try this:
'where' => " (ownerUserNum = '{$CURRENT_USER['num']}') OR '{$CURRENT_USER['isAdmin']}' ",

Hope that helps!
Dave Edis - Senior Developer
interactivetools.com

Re: [Dave] Membership Plugin Quick Question

By Codee - March 24, 2010

Thanks Dave! I knew it would be simple...for you.