ceberlin

Membership management through link to IP_Board

Recommended Posts

Hello,

I am in the early evaluation stage for PW.

Coming from the Drupal 7 world and not being a software developer but coming

from the design-side, these are my main goals for a new project:

  • design ...is everything:
    The normal webpages need to be as flexible as possible to design
    whereas is ok in the community area to have a more standard layout.
    PW is PERFECT for me, Drupal has limits (even with modules), a main
    reason for my unhappiness (and yes, I know how to make my own templates)
  • Organization:I am making a brochure style Webpage, PW is perfect here.
    (Drupal plays it's role when having millions of pages, which needs different
    organizations, like automatic menus, Taxonomy, views.
  • Developing speed.
    Drupal needs 10000000+ clicks for installation. And for every new project
    the same mess again. PW can be adapted easily.
  • Membership fun (forums, galleries, friending):
    Drupal is good, PW has nothing like that
  • E-Commerce: Drupal has unfinished stuff, PW nothing.

I don't blame PW for its limitation with membership management and E-Commerce.

Those limitation is also a strenght and beauty because PW is not feature-overloaded and easy

to handle. (A reason for me to have arrived here!)

And there are pefect solutions for that existing already, like the IP_Board and Magento.

I am now thinking of combining the specialists in it's fields like PW and IP_Board

to have the best of both worlds that would by far more manageable than Drupal

with its modules.

What about using the fine grained Bulletin Board membership membership management

and use this to access users to PW content (and editors and admins to the PW backend).

Isn't it easier to write a "bridge" module than adding membership features

to PW and trying to re-invent the wheel? The IP_Board has a strong API for authentification.

(This site is also using the IP_Board.)

Which means that users register and login to the board to have access to

PW privileges also (through synchronizing the user base or bypassing the PW auth).

That would be perfectly bypassing the PW limit of not having a fine grained

frontend user (users level1,2,3) and backend users (editors, admins).

(I a same way e-commerce functionality could be added with another auth-"bridge".)

Is there something in PW (a module?) I have overlooked that does this already?

Otherwise I would like to post this here as a starting point for ideas and discussion.

Thanks for reading all this. I am very curious about your opinions.

Cheers

Carl from Berlin

  • Like 1

Share this post


Link to post
Share on other sites

Just discovered xeoforo.... no my thinking goes in that direction (instead of IP_board)...

@diogo: thanks for the hint with the ecommerce bridge!!

Share this post


Link to post
Share on other sites

I've got some integration with IP.Board running here: http://www.strategycore.co.uk

In fact, the user strip across the top outside the forums is through a PW module that accesses functionality of IP.Board, plus all commenting in news and articles on that site uses some IP.Board functions in a PW module too along with my own code so they can add replies from the article pages themselves.

There are a few things to note though:

  1. It's not exactly what you're after - I didn't bother trying to somehow link the permissions as that always gets messy when the forum software gets rewritten, plus it's rarely the case that your member groups will be the same on the forums as they will in your PW installation (if you have many moderators looking after your forums, do you really want them all to have the same perms in PW?)
  2. It doesn't do single sign-on. I do have something in mind, in that when someone tries to login to the PW backend using IP.Board login details, it sets up an account for them in PW with the same password. This doesn't give two-way authentication of course, but it doesn't matter really as if you're always authenticating against the forum software first then you simply check if any details have changed from the forum user account and update them on the PW user account with the same name before logging them in.
    Once an account is created, whenever they next log in on the forums and browse to the site, PW can do a quick check to see if a PW account exists with the same name, create one if not and log them in quietly behind the scenes. This then allows an admin to place their PW user account, which would be a guest account by default, into another group for PW on a per-user basis

With the way my module currently works, I've tried to simply use core functions from the forum software. The API for IP.Board is a bit limited so I simply ended up initialising the forum software from my PW module and using the forum's classes from there, minimising the amount of custom code I was throwing into the mix so that it should survive all but major updates (you're always at the mercy of forum software when connecting other scripts to them as they roll code out so often).

I'm still not happy that my module would survive a major upgrade to the forum software, as not every project is as thoughtful as PW about keeping deprecated functions in place for a while, and some change class and function names far too often, but I'm reasonably sure that my code should work for the life of IPB 3.x (min version is 3.2).

So anyway, I approached my module from the website being the core, not the forums (although forums are often the core in terms of community). This is because it seems far easier to override PW's functionality than IP.Board's, and I think the same would be true of other forum software. There are already a few examples of other sign-in methods on the forums here for PW (the LDAP login module was the one that showed me how easy it is to override the normal login routine).

Just some food for thought.

Whichever forum software you use, none of them seem to have amazing APIs and others aren't even possible to bootstrap so there's that to bear in mind.

Share this post


Link to post
Share on other sites

@pete thanks for your expertise.

just for Info: After a bad experience of the IPB support (I asked for something very

specific - a pre-sale question about their shop and German Law - I just got a stupid

reply how to run the demo instead of an answer to my question). I don't like them

stealing my time. I was scared away and purchased xenforo. ???

One good thought you have is why staying away from a single-logon.

Also I need to check further how to override the PW logon, if needed.

My idea is now to separate front end and backend users in a way that

I use the PW login system for backend users:

  1. Backend users like admins will need to login to both system, which I think is ok.
  2. And a normal user needs to log in to xenforo to be able also to see some VIP content from PW also.

If I want to hide PW content from normal users, I could try using the sessions, which xenforo creates....

This is the route I am trying to use now.

(I still need to install and get accustomed to PW als well as xenforo, but at least I have my first ideas now...)

(If there is no mod or extension planned, this thread maybe belongs to the "how to" area of this board instead?)

  • Like 1

Share this post


Link to post
Share on other sites

Great post!

Organization:I am making a brochure style Webpage, PW is perfect here.

(Drupal plays it's role when having millions of pages, which needs different

organizations, like automatic menus, Taxonomy, views.

PW is a lot different than Drupal in this regard, but no less flexible. Between page references, structure, the API, and markup under your control, I think you can take PW further than you can Drupal.

Another aspect of PW that I wanted to mention that is easy to miss: PW supports unlimited granular permissions. You can simply add new permissions in the admin (Admin > Access > Permissions). Then edit any roles you want to have those permissions and check the appropriate boxes. From that point, you can use those permissions in the API however you want. For instance, if you'd created a permission called "sugar-in-coffee" then you could check if the current user has that permission by using the API:

if($user->hasPermission("sugar-in-coffee")) {
 // do something
}

Something else you may find handy is if you want to provide additional access without a user having to login. Lets say you are performing some check with the IP.Board API to determine if a user of a certain level is logged in there, and you want them to have upgraded permissions in PW at the same time. Create a role that has the permissions you want. Then you can assign that role to guest when you detect they should have additional access:

if($user_is_logged_in_ipboard) { // or however you perform this check
  $user->addRole('member'); // where 'member' is the role you added
  // now user has more access
}

or if you want to login a specific user in PW, but don't need to authenticate (because they already authenticated in IP.Board):

if($user_is_logged_in_ipboard) {
 $u = $users->get($ipboard_user_name);
 if($u->id) $users->setCurrentUser($u); 
 // now a user is logged in for this request, without having to authenticate
}

  • Like 2

Share this post


Link to post
Share on other sites

Thanks both - this would be a useful thread to discuss any such integrations I guess ceberlin, as there are many scripts out there that had their own member systems.

It will be good to see integration with another forum package too as we'll likely have different approaches to similar problems so good luck with it :)

Thanks for your post ryan, that certainly gives me a good idea of how to do a few things I wasn't sure of :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Chris
      Hi,
      i currently evaluating differen systems for building a page to sell video courses and other payed membership content. 
      So you would get some free content after the registration and you can switch the account to a payed membership to read articles, watch videos and so on.
      There should be also content that is deliverd after X amount of days (which i think is not a problem with pw)
      As a Processwire fan , it would be cool to build it with PW, but on the downside PW has no ready to go membershipsystem with payment for all in germany common payment forms.
      On the other side there a plenty of plugins for wordpress exactly for this need. 
      So i'm asking if someone has already experiences with this stuff and can help a little to evaluate the effort it takes. 
      Can someone recomment a payment service that works well with PW? - so i quess a service that is builded to work with PHP in genereal.
       
    • By Lance O.
      Has anyone had any recent experience displaying Facebook posts using the Facebook PHP SDK?
      I find the Facebook documentation to be confusing and I'm coming up short in finding recent information and code examples online.
      Any help is appreciated.
    • By anttila
      Hi all.
      First of all, I want to thank you all who blessed us with this great CMS. I have done 20+ sites with this and I'm very happy. I love the API.
      In case anyone is interested in using Discord to chat and talk about ProcessWire, I made server for us. Discord is a free voice and text chat app designed specifically for gaming, but it's very good for our kind of communities too. Chatting is similar to IRC, voice is similar to TeamSpeak or Mumble, and there will be coming new features like video chatting. Also chance to use notifications when someone talking in a specific channel, but the server's default is only notified when mentioned.
      There can be multiple channels in one server; general, help, devtalk, security, specific languages. All can be public or accessed by only for a certain role.
      And if you're not there, let's say for five days, you can still search or read things what people have talked since you were there last time (if mod did not purge that channel). Windows and Mac clients are very good ones, but Linux is still in beta. And of course, there is webchat too.
      More information about Discord can be found here: https://discordapp.com/
      Of course, all the ProcessWire developers can get moderator access to the server. Forums are, of course, very good place to discuss things (and I have found many answers from here), but that is not real time and getting the answers you need can take a lot of time here. People want to get their answers faster, right now, so that’s why Discord can be a very good way to grow our community. Think about it.
      Invite link to server
    • By John W.
      Good morning folks. I've been going around in circles since last week on this one. I've got caching turned off on my site, but, wondering if there is an extra step I need to take when publishing a page when using  FacBook's social plugin? 

      I've got a template for my news articles with  FaceBook's social share plugin embedded. After publishing the page, going to the article on the front end on the site, and clicking share, the share dialog in many cases will have the right page content but frequently it comes up with my custom 404 page.
      FaceBook must be pinging back, in order to server up the custom 404, - so that seems to rule out the server blocking the ping-back.
      Using the FaceBook debugger I can Show Existing Scrape information and see that it had a 404 response. However, without changing anything on the site, if I use the debugger to re-scrape the page there is no 404 and the page comes right up.
      it seems as though even if the page is published and has been loaded in the browser when FaceBook calls back to my processwire site it's telling FaceBook the page doesn't exist. When this happens, I go over to the debugger, click re-scrape, and the page comes up fine -- but, I can't keep doing this all day long. (see the attached images)

      Any advice or help would be greatly appreciated.

      If it is any help I'm using Processwire 2.7.2 and Zurb Foundation 5

       


    • By oma
      Hi folks,
      Bit of an odd one... I'm adding some meta tags for Facebook and Twitter to the head.inc file and I'm trying to make the output per tag as global as possible. These are the tags I have so far:
      <meta property="og:title" content="<?php echo $page->title; ?>" /> <meta property="og:image" content="" /> <meta property="og:url" content="<?php echo $page->url; ?>" /> <meta property="og:description" content="" /> <meta name="twitter:url" content="<?php echo $page->url; ?>"> <meta name="twitter:title" content="<?php echo $page->title; ?>"> <meta name="twitter:description" content=""> <meta name="twitter:image" content=""> As you can see I have a few obvious ones set up, but I'm curious to know how you all might think about outputting the image and description meta information? I'm thinking finding the first image on the page and the first text output on the page but that's a little tricky, isn't it? Do you think these should be set up as separate fields for pages within the CMS for the client to fill out as they fill out the pages... as part of the process for SEO? And if there's any tips to why using these tags are bad please do say so.
      Many thanks,
      R