MySite: User Personalization module

Events happening in the community are now at Drupal community events on www.drupal.org.
agentrickard's picture

Note: this is not itself an SOC proposal. It is a clarification of work already done and work to be done.

The MySite module started as a simple summary view of a Drupal website. It allows users to select content from a list of categories, add RSS feeds, and see what's new on the site.

Since its first release, I've been adding new features and pushing in new directions, and I'd like some feedback.

http://drupal.org/node/124408 introdues user theme switching to v 5.x.1.10. This feature allows users to view their MySite pages in the theme of their choice. It also leads to http://drupal.org/node/125977 and the potential for user-customization on a much wider scale.

For example, the module could enable site admins to specify with paths would be displayed within a user's custom theme (I'm thinking explicitly of user/UID/* and blog/UID/* here).

It could also allow for user-defined block settings to override the site defaults.

Another concept, discussed at http://drupal.org/node/117764 (especially http://drupal.org/node/117764#comment-208726 and following) is user-defined pages along the lines of Google's PageCreator or MySpace. These could be inplemented as new node types, or as hooks to view other existing content within the MySite schema.

There is a test site at http://therickards.com/mysite/agentrickard, for those not familiar with the module. I'm really looking for three types of feedback:

1) what features would be really good to have?
2) what existing modules might already do the job? (For example, I can already think of how MySite would replace the Bookmarks and Blog Theme modules -- but I don't want to step on other projects.)
3) how does user custom pages fit into a community site concept?

  • Thanks.

Comments

PageCreation is needed

alpharia's picture

I have been looking at drupal for some time now to totally upgrade a perl and php hybrid based community site that currently allows all its members to create and manage there own threaded forum, guestbook, blog (using lifetype at moment), private "html" chatroom (and yes html chatrooms still exist and are fast ~s~) and gallery (using gallery2).

As well as the above each user is allocated space for basic file storage and the ability to create there own pure HTML pages (as many as they want) this then gives each member a individuality within the community and also allows competitions on designs etc. Also each user forum can be themed as the user wants it.

Along with this the site has specific groups (called districts) that each user can belong too that allows the same. As well as having site specific forums, areas, chatrooms etc.

The inability of drupal currently not to allow the page creation for each user is the only reason we haven't switched to drupal yet. (Oh and that the drupal forums are well dodgy in Role based admin/moderation ability ~grin~ but thats easy fixed by using something like mylittleforum or even FUDforum or we re-invent the wheel for our own purposes).

So I would fully support the ability of users (and groups if using OG) to create there own pages, though there needs to be the ability to have say a header and/or footer default for each page so to allow correct navigation linkages for all users (and for user admin ability for each owned page). This might also allow blocks to be placed within pages using some sort of templatelanguage . TinyMCE actually has the ability to create userbuttons that will insert specific code where required.

For all those who wonder why a user created page would benefit communities just think of the old geocities communities. When users get the ability to design and edit they get a sense of ownership and become very attached to the community allowing your retention level to increase as well as invigorating the community with a fluidity that it wouldn't have otherwise.

To paraphrase a movie saying "If they build it they will stay"

Cheers

Pure HTML pages

agentrickard's picture

There are non-trivial security risks associated with letting users enter their own HTML. Normally, Drupal only allows privileged users to enter raw HTML.

How would user-generated HTML be filtered? Obviously, we'd strip <script> tags. But <img> can also be used maliciously, as can <embed>.

It would be safest to enable a limited array of user-generated HTML, probably leveraging existing Drupal modules and techniques.

--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3

Security is paramount

alpharia's picture

Absolutely, security access and disallowing of malicious and nefarious code and users (ie: trolls ~s~) needs to be highly controlled and monitored.

On the site we currently run we allow most html tags and objects but disallow others, namely flash and java, but allow nearly everything else. Though the reason we have that much trust in the users is that it is a pure members only ability to create html area pages and they pay for the privilege (though its a reasonable $5 a year), also and this is probably the main thing its user/community moderated. Though I can see problems (big ones) in non paying sites.

It comes down to the level of trust site owners and the community itself to a certain extent place in new and current users. Allowing what can and cannot be done is a lot of give and take and its a fine balancing act between trust, freedom of expression, privacy, and security. Not to mention you have to compete (whether you are a subscription site or not) to the likes of MySpace et.al. which seem to allow anything goes.

One secure method might be in separating all html/shtml files (and even naming them something like .dat) away from the standard drupal directory structure , say in "var/drupal_userpages" though linkages would then need to be parsed properly. I would recommend not using a database for storage in this regard.

Another method would be to have user editable CSS where specific areas can be hidden/enabled/changed and things like backgrounds, tables, images, links, etc etc can all be user styled and controlled. This allows a database to be used though could be very resource unfriendly

Another method is instead of using WYSIWYG use WYSIWWGY (What You See Is What We Give You ~grin~) in that only an online user interface can be used to generate the appropriate html that is defendant on the Role Based Access Level the user is currently granted. This way img, embed, object, and even dare I say it even script ~s~ can be used. Could even be xHTML (or XML) compliant then allowing multi-site or even multi-community integration .Think of the same user page(s) on multiple sites like theonion, drupal, greenpeace, sony, elgg, myCommunityOfWhatever, etc etc.. or not.. It all boils down to identity and user preference though still allowing security to prevail.

Also the WYSIWWWGY way would also allow Drag and Drop like what you are currently doing with Mysite but not just with drupal blocks , maybe the google widgets can be used as well

Another thought and my experience with users creating there own pages is that the pages are normally very basic especially when they are thrown a blank slate and told "go for it". You normally get 1 column pages with a banner graphic and a slab of text ~grin~, so an alternative is to allow Theming of some description, either as standard 1, 2, 3, column stuff or using sites like openwebdesign, thestylecontest, or better yet a community theme contest and extravaganza (its amazing what talented people in a community can come up with and its normally themed on the niche of the community too).

Now.. All I have to do is figure out how to create a wwwBoard style forum within drupal. Yeah Nuts! ~s~

Cheers

contemplates

alldirt's picture

Did you have a look at the possibilities of the contemplates module ?
Module: http://drupal.org/project/contemplate
Category: http://drupal.org/project/Modules/category/58

Well said alpharia/agentrickard

alldirt's picture

It would be great if SOC 2007 would be the kick off for extending Drupals usercentric features with a pagecreator.
Students can apply between march 14 and march 24.

I think “free theming” of personal information maybe the major missing link. Wolfgang Ziegler could be consulted about the current status of his modules (see links below) and the differences/overlap with Mysite.

Currently, the users homepage can be informative but no more than that. It does not allow users to show who they are within the particular community. What do a track-record or a homepage-url really say? Homepage-urls can be informative, but often say anythng about the user. Furthermore, users may want a different identity (homepage) on drupal.org, drupal.be, greenpeace.org, theonion.com etcetera. Identities of users on communitywebsites can be unimportant but also vital. Drupal recognizes the importance of different identities between roles.

Drupal has developed from a marvelous community service to a content management system, has given users a good profile, but is lacking (afaik) the ability to give users a real “home”. However, aggregation of profile fields, views, bookpages, custom widgets with csszengarden-like themes or something similar like googles PageCreator (at least away from the normale drupalsite-themes), maybe closer than I know.

Links:
Transcript of podcast with W. Ziegler and his modules
Mysite or more info
Mypage
User Node Profile Integrator
There are numerous modules regarding the users profile: register_profile, profile_plus, profile_cvs, profile_privacy, profile_visit, user_search, advanced_user, etcetera.

close

agentrickard's picture

However, aggregation of profile fields, views, bookpages, custom widgets with csszengarden-like themes or something similar like googles PageCreator (at least away from the normale drupalsite-themes), maybe closer than I know.

I am very close to these things with MySite right now. The infrastructure is there.

--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3

User Home

techrobo's picture

I would like to have all those features that will make a user feel @ home.
1. User should be able to name his site just like Druapl Sitename.
2. User should get his own unique URL, it is there but something like techrobo.example.com or techrobo.com would certainly give a feel of ownership.
3. User should be able to select or design his own layout.
4. User should have the ability to give desired look and feel (theme) to the site.
5. User should be able to choose content / write content (blog / forums / poll / video / image etc.) he want to publish on his site.
6. User should be able to design his own left or right or top or bottom navigation system / links.
7. User should be able to select his header & footer settings.

This is for now..
catch you later..

Take a look

agentrickard's picture

Take a look at the 5.x.2 release of MySite. http://drupal.org/node/145138

The new version supports items 1, 2, 3, and 5 on your list. Item #4 is handled by Drupal core.

What is the point of 6 & 7 if the user has theme selection?

--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3

The Difference

windcaller's picture

Myspace is for members (logged in user) to create their own VIEWING PAGE.
and maybe should me called myownpage or myownview.

I think what we want is user home pages. Where they get all the 1 thru 7as outlined above, where members can create your own web site page. Like what this 3rd party developer did with Joomla http://www.ravenswoodit.co.uk/index.php?option=com_content&task=blogcate...

I am putting together a club site and I want clubs to be able to have there own web site and have members of the clubs to have their own web sites.

I think this is where some of the above post are eluding to but maybe not.

I would like this, but I think it is a whole other module project.

Likely

agentrickard's picture

Yes. This is a whole other project:

I am putting together a club site and I want clubs to be able to have there own web site and have members of the clubs to have their own web sites.

It is difficult to tell sometimes what people are actually trying to define. The point I like to make is that MySite already has the framework in place for doing most of this. Adding a "page creation" function is an obvious extension for the next release cycle.

Once 'page creation' exists, it becomes pretty simple to let users organize their page collection (dashboard being the current functionality) as a mini-site within the main site. The trick is integrating with Drupal's other content creation tools (like Blog module).

So I'd advocates a MySite Pages module that extends the existing framework to add these new features. See http://drupal.org/node/145423 for some notes.

--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3

Thanks

windcaller's picture

Wow,

Thanks for the quick response and the great job your doing.

I am new at Drupal and am excited how great the Drupal Community is.

Community

Group organizers

Group categories

Community Group Freetags

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: