Gossamer Forum
Home : Products : Gossamer Links : Development, Plugins and Globals :

[BETA_RELEASE] Ultra_Profile

Quote Reply
[BETA_RELEASE] Ultra_Profile
Ok,

Time to get this out the door for those interested.

There are going to be 3 versions of this, the current User_Edit_Profile plugin, which just works with the Users table. Simple, and for most people.

This version, which adds one table, Ultra_Profile, to which you can add whatever fields you want, and have a private (the Users table) and public (the Ultra_Profile) profile for each of your users.

The pro version which will manage any number of profile pages, for a larger site, such as the Models/Photographers site, where a person might be a Model, Photographer, MUA, Fashion Designer, and have a Location available to shoot, they can set up different profiles from one log on, and one set of services.

The User_Edit_Profile plugin will be rereleased shortly, I just have to apply the bug fixes, and clean ups. As noted, there was not much changed, but it was such a simple plugin, the changes are pretty significant.

What's in this Ultra_Profile version?

1) editing the Users record. Block certain fields, allow certain fields, and such. You need to be able to edit your files in the Plugins directory (fileman works ok). On the next release those features will be moved to the plugin_cfg to make things easier.

2) adding a profile table, so you can have a public profile. The included templates use the cute little javascript code to track characters, and have some examples. The functions used to display fields are pretty nice, and you can use check boxes or select fields, or radio buttons, etc. The various functions of the User_Edit_Profile have been merged and upgraded. (The pro version adds even more functionality to display and input of values)

3) security should be pretty tight. Any passed in "username" type field triggers the system to go to display-only mode, regardless of what other fields were passed in. Only a logged in user is used for "edit" mode, and only two allowed table names are allowed to be passed in, and all templates passed in have to begin with profile_ That should prevent any attempts at unauthorized access.

4) All output in the _display form is escaped, so no HTML is allowed. Any entered HTML is pretty ugly <G> This will be prettified in the next release to allow minimal markup (eg: , and *maybe* )

5) The templates are luna compatible (at least on my system).

6) I've installed it on several sites, and seems to install and work fine. But I do need a couple of beta testors to check it out.

[#0000ff]If you have some programming/GLinks experience, and preferably are using the current User_Edit_Profile plugin, I'll let two people test it out for free, but I really need it tested, and you need to edit some of the templates for display to make it look good on your system, and let me see what you do. If you don't set it up and get it working (or tell me what needs fixed to make it work) you don't get the license ;) I *NEED* the testing, and other viewpoints. PM me if interested. I *need* you to try to find flaws in it, not just add it to your collection of scripts.[/#0000ff]

For everyone else, the release price will be $75, and will include upgrades through this major version. I don't see there being any other version, as this plugin has a purpose, and once completed, won't need new features. Any "upgrades" will most likely be only if GLinks changes.

Planned new features for this major version:

1) moving the configuration options to the plugin_cfg so you can enter more information. The plugin *can* do more than it's configured to do, but it's not set up for it, (eg: most features are enhanced for the Pro version), but if you are inclined to hack, you'll be able to wiggle out a few more features.

2) A browse/search function for listing users with "public" profiles, and searching for similar interests. Will use the basic links search search code, but will be set up to display results pages and such nicely.

3) And, because it will be asked for, the ability to add a photo or logo to the profile. If you own one of our other image programs (thumbnail, logo, etc) it will be a a settable option in the plugin_cfg. If you don't, you'll need to add-on that functionality (see how cool having a library of reusable functions is ;))


The pro version (Ultra_Profile_Pro) will add a host of other functionality, and is going to be something in the range of $150-$250 depending on where I stop, and where other functionality is part of something else. This neat little program became a beast and a half, but will duplicate a lot of the "myspace" like profiles and functionality, while adding an immensely specific and targeted searching capability, while hopefully sticking to good database normalization and efficiency.


PUGDOG� Enterprises, Inc.

The best way to contact me is to NOT use Email.
Please leave a PM here.
Quote Reply
Re: [pugdog] [BETA_RELEASE] Ultra_Profile In reply to
In Reply To:

The pro version (Ultra_Profile_Pro) will add a host of other functionality, and is going to be something in the range of $150-$250 depending on where I stop, and where other functionality is part of something else. This neat little program became a beast and a half, but will duplicate a lot of the "myspace" like profiles and functionality, while adding an immensely specific and targeted searching capability, while hopefully sticking to good database normalization and efficiency.
Sly And how soon can we expect to see this? Sly Been playing around figuring out how to make the profiles for my site a bit more than they are, was playing with how to get multiple pictures for each profile etc.... Although I am working with the Gforum profiles Crazy Interested to see what you come up with. Anyone using the same profiles between Glinks and Gforum? (I know Gcommunity is not shared at all from previous posts)

------

There are 10 types of people in the world... those who understand binary and those who don't.
Quote Reply
Re: [Nate_1979] [BETA_RELEASE] Ultra_Profile In reply to
I'm sort of finishingi it up.

Stuffing it into a plugin, and fixing up all the configuration values are the real issue.

Some of the really complex things are easier done manually, so I'm simply pushing those aside at the moment.

Right now, getting the plugin_cfg values working, is the main hold up, and once that is done, I'll be able to release it in a pre-beta, but post-alpha form.

As for attaching images, since the concept of the photographers/models is grouping by username, not by categories, that melds nicely with this profile system.

Alex said I really need to write my own file handlers, so that frees me up from the restrictions of trying to work within the GLinks [file] field.

To avoid any automatic overhead from GLinks, I'm not using the file field at all, but am using FILE_ and IMAGE_ to flag fields that are going to be used for files in a multiple upload system.

If you need a custom job, it would not be hard to make our existing stuff work for you, if all you need is to allow people to attach images.


PUGDOG� Enterprises, Inc.

The best way to contact me is to NOT use Email.
Please leave a PM here.
Quote Reply
Re: [Nate_1979] [BETA_RELEASE] Ultra_Profile In reply to
I'm not sure what you mean by "I know Gcommunity is not shared at all from previous posts"?
If you are using Community the easiest way to have profiles, in my opinion, is to add the columns to the Community users table and then import the values into your Links or Forum templates using the tag
<%Plugins::Auth_Community::get_profile($user)%> - or whatever $user variable you have available on the page. Then you can modify the profile using the built-in community script rather than having to write your own.
Quote Reply
Re: [afinlr] [BETA_RELEASE] Ultra_Profile In reply to
In Reply To:
I'm not sure what you mean by "I know Gcommunity is not shared at all from previous posts"?
If you are using Community the easiest way to have profiles, in my opinion, is to add the columns to the Community users table and then import the values into your Links or Forum templates using the tag
<%Plugins::Auth_Community::get_profile($user)%> - or whatever $user variable you have available on the page. Then you can modify the profile using the built-in community script rather than having to write your own.




Can't say that I quite followed that, however I'm sure it will make more sense whenever I actually get Community and Links installed sometime this week Wink Right now all I run is Forum. But, are you trying to say that I should use the profile features of Community and port them into the Forum and Links? I'm basicly going to be looking to have the same profile available site wide whether they are on a community / forum / links section of the site.

On another note, I would love to see this new ultra-profile as soon as anyone gets it installed, especially the advanced one. As soon as it's live on a site, someone please send me a link Smile Sounds like it is going to kill multiple tasks for me with one package (still needed to write an advanced search function for my site too)

------

There are 10 types of people in the world... those who understand binary and those who don't.

Last edited by:

Nate_1979: Apr 5, 2006, 6:49 AM
Quote Reply
Re: [Nate_1979] [BETA_RELEASE] Ultra_Profile In reply to
Yes - if you want the profile to be available site-wide then I would definitely recommend doing it through Community - just because this makes it easier to grab the tags for use in the other applications. Otherwise you may find that you need a lot of extra coding.
Quote Reply
Re: [afinlr] [BETA_RELEASE] Ultra_Profile In reply to
There are problems with using community, and developing applications based on it.

Right now, there seems to be problems with authentication, and sessions, being properly handled, and recognized by the GLinks/GForum programs.

When you are dealing with applications that are updating system tables, and pulling data from a variety of sources, I'm not about to worry about what community is and isn't doing. It's been enough of a battle to figure out a system that will separate a logged in users profile data from the target data, and doing it in a manner that is secure, and can't be accidentally bypassed.

I've used the templates to provide a second test, to prevent bogus data.

*if* community gets stabilized, and formalized, and provides for remote logons it would be worth considering, but community is a half-finished product, and if you know me, it's the 1 and major gripe I've had with GT for the past 3 years. I feel community is the lynch pin of the entire system, but the promises never materialized, and *that* more than anything, has hurt an otherwise awesome product line.

The routines and profile system I've created, can be migrated to GComm fairly easily, since almost all the functionality is in the functon calls in the templates, it's a matter of changing the function call to use authcommuinty rather than Plugins.

*BUT* I *wouldn't* suggest doing it that way, if, and especially if, the GLinks program is your primary target.

You can access GForum data from within GLinks, and I'm sure GLinks data from within GForum.

*UNTIL* the protocols are set, and worked out between apps, things will change and that means a lot of back-work to fix up stuff that wasn't ready for prime time anyway.

The way profile.cgi works, is you probably can call it from anywhere, and if logged in via community, the system will recognize you as a Links user, even if called from within GForum.

For now, using Community to manage sessions and logons is the best course.

Andy has been writing add ons to run the ticket system and other things off of GComm, but we've hit some issues in the process along the way.

If GT puts the time in, to get it working, then most plugins that affect user data, and site layout, and even user status and stats, should probably go through community -- and GLinks/GForum should use those tables rather than their own.

It's a lot more complex than it seems, especially for complex applications. It would be really nice if COMMUNITY was actually INTEGRATED into the GLinks and GForum systems, rather than added on. If certain plugin hooks, and hooks within the system activated, and used GCOMM routines rather than the internal ones automatically.

For now, there are more good reasons NOT to develop for the current GComm, than there are to use it.

I keep hoping that will change.


PUGDOG� Enterprises, Inc.

The best way to contact me is to NOT use Email.
Please leave a PM here.
Quote Reply
Re: [pugdog] [BETA_RELEASE] Ultra_Profile In reply to
Hi Pugdog,

I agree with a lot of what you say - and I'm sure that for a Links-only site your plugin will be exactly what people are looking for. I just know that from the experience of having a profile system in Links already and trying to integrate it with the profiles from GForum I found it so much easier once I decided to use the Community table for shared data rather than pulling data between the applications. As far as I can see, there isn't really an alternative to using Community if you are using GForum and GLinks - so if you are using it you may as well make use of the tables - just my opinion.

Laura.
The UK High Street
Quote Reply
Re: [pugdog] [BETA_RELEASE] Ultra_Profile In reply to
For those wanting to see a peek, I have the program running in the "release" form, but not public at:

http://bodyart.com

To get the profile system, you need to put in the URL:

/cgi-bin/glinks/profile.cgi

I don't want to hotlink, since I don't want the search engines to get to it yet.

To use it, you must sign up for an account. Let me know if there are any issues.


PUGDOG� Enterprises, Inc.

The best way to contact me is to NOT use Email.
Please leave a PM here.
Quote Reply
Re: [afinlr] [BETA_RELEASE] Ultra_Profile In reply to
The way this program is set up, it attaches tables to the existing tables, rather than using the existing tables.

For convenience, a few fields are added to the Users table.

This can be *any* profile or key table, you just have to adjust the install, and change the function calls.

The functions themselves only expect a certain data in, and give a certain data out, so they don't care where it comes from (with a few security checks).

These functions are the start of the migration to the UltraWidgets library system, where all our modules are collected and organized into one "Ultra" tree. That will give us easier development of plugins, and addons, and will stabilize our code base so that it's easier to modify and/or plugin to our plugins. We have a *huge* amount of library code we need to clean up and be able to access easily. If we can, we'll be able to do a lot of custom jobs, and release new OEM type programs on a regular basis. Which, really, has been our goal all along, being able to offer turnkey sites for people who have a special or niche need.

If GComm gets stable, with what I assume would be relatively little effort, the plugin could be made to attach to the GComm tables, and feed information back. The problem is that for some reason, the sessions are no longer stable, in the 3.1x versions, and I didn't change my templates, so it had to be one of the upgrades that was applied.


PUGDOG� Enterprises, Inc.

The best way to contact me is to NOT use Email.
Please leave a PM here.
Quote Reply
Re: [pugdog] [BETA_RELEASE] Ultra_Profile In reply to
I'm setting up a site that will be using the more advanced version of the Ultra_Profile system. At first, this will be the only major feature of the site. People can set up their profiles, upload a logo/image and search others profiles. After that, I'll be attaching the the Ultra_Portfolio system, for uploading a portfolio to each of the profiles, and the advanced features.

Once I get the site up and running, I'll post the URL, as there will be a "Visitors" profile, for those just looking around, not participating in the site that has limited functionality.

I'll be developing this site in stages, as each part of the Models/Photographers/Portfolio system is entering beta. There will be many other plugins as part of this system, so if you need certain functionality, please let me know. Right now the plugins will not be available for download, they need to be purchased directly, and if you are not knowledgable about uploading files, we'll install them. Only the basic installs (for now) go through the plugin system, the rest is direct file upload to the Plugins and Templates directories.

This has been a massive effort, but it's mostly done.

Thumbnailer
Image/File Upload and attach
Logo/Thumbnailer
Profile
Profile_Pro
Portfolio (many images attached to a link displayed as a gallery)
Portfolio_Pro (same, but much more features)
Friends_And_Faves Advanced bookmarking
Comments (can be attached to almost any sort of table from Links to arbitrary, also works with the Portfolio and Profile system)
Ratings_Reviews (can be attached to almost any table, default is Links, but also works with the Portfolio and Profile systems)
-- on the above two, this allows the built-in system to be enhanced to work on a "Link" and also to work on the Users Profile(s) and Portfolio(s) as well as individual images. Yeah, lots of comments <G>
-- loads of other routines and stuff that will be released either as parts of the above (and other) plugins, or as part of the Ultra_Widgets which should be released in the next month or two.
Ultra_Widgets is a huge collection of ready-to-run routines many from the forums, many we've used, and many that are new or new variations of others.

Much more :)

But, the demo/beta of the Ultra_Profile system should be working on a real site in the next week, with real users setting up real multiple profiles.


PUGDOG� Enterprises, Inc.

The best way to contact me is to NOT use Email.
Please leave a PM here.
Quote Reply
Re: [afinlr] [BETA_RELEASE] Ultra_Profile In reply to
Quote:
I agree with a lot of what you say - and I'm sure that for a Links-only site your plugin will be exactly what people are looking for. I just know that from the experience of having a profile system in Links already and trying to integrate it with the profiles from GForum I found it so much easier once I decided to use the Community table for shared data rather than pulling data between the applications. As far as I can see, there isn't really an alternative to using Community if you are using GForum and GLinks - so if you are using it you may as well make use of the tables - just my opinion.


In reading this again (going through my older postings) part of the issue is _where_ the profile data is connected.

In most cases GL3/Links is the core program on a site. It's where most of the content lays and where most of the features are added/pulled through.

GForum is the main program on a forum site, but it's not designed as a database, so maintaining profile data is not as easy from within it. For example, it would be easier to make GL3 a "forum" than to make GForum into a CMS.

Commnity is shell, not a real application (at this point) and works very, very differently from the other programs.

So, when looking at the 3 major parts to a site, we are back to GL3 as the core program, with Community trying to tie the parts together.

If you use Community's program for the "real" user data, such as actual contact information, and such, you can use that data to verify the data entered into the GL3 and GF programs. Such as age, and location, and prevent problems with misrepresentation. How you manage your Community data becomes the key issue. you can even allow "private" or cloaked profiles in GL3 and GF, and have them be different.

The profile system as described here, and as implemented, is tied directly to the GL3 code.

As stated, Community is a shell, not an application (content area).

So, the purpose of the profile system is to provide as much information about the content in the GL3 database (and even in the GF area) as possible. The data tables are tied to the Users table (for settings and configurations). The stats and other features are tied to the Links, Ratings, etc tables for their data. Most of the information in the profile system is pulled from the GL3 user base and their content links within that system.

So, for this type of profile system, pulling it through Community doesn't make much sense. It's really based around, and relies on the Links data.

That said, having a Community Profile system for "real" data, or data that is shared across multiple applications would be a good thing. Providing access to the application-specific profiles -- and UPDATING them -- would also be a good thing.

But, if you want to try to secure sensitive data, making the Community system a minor part of the data exchange (eg: sessions and authentication only) with limited user data ever accessed or transferred, adds security.

It would be easier to write an accessor routine to display profile data from one of the other application pages than to integrate data from these applications under Community (as well as more secure). To edit/change this data, logging on to the application is always a better choice.

I don't see how, or why, data that is specific to one application should reside in Community. And, I've thought about this a lot, really. In many ways, the authentication features of Community should have been integrated into GLinks, or, the core-code features from GLinks should have been integrated into Community. GL3 and Community are more closely tied than any of the other programs. Allowing GL3-Community to access GForum, GMail, etc would make more sense than the current topology.

No matter how you try to view it, Forum, Mail, Lists, etc are all add-ons to the CMS/Database/Authentication system. In some ways, the whole code base could be streamlined if the logic was changed a little to reflect this.

Anyway, just a rethink of this issue.


PUGDOG� Enterprises, Inc.

The best way to contact me is to NOT use Email.
Please leave a PM here.