Prompt user to create user profile

scedwar - April 15, 2008 - 19:32
Project:Advanced Profile Kit
Version:6.x-1.x-dev
Component:User interface
Category:feature request
Priority:normal
Assigned:Unassigned
Status:active
Description

The user profile edit tab does not jump out at users - is it possible to create a link right in the middle of the profile page with logic such as:

if (current user is looking at their own profile) then display message "You have not created a user profile yet, click here to create one"

OR even a prompt on login to do this. I'm thinking of using Admin Message to prompt users about the new feature, but would rather just have a simple link on their own page.

Thanks, Stephen

#1

Michelle - April 16, 2008 - 02:41

I've been wanting to do something when there's no profile node for a while. I finally resorted to putting some fields on the registration page just so it auto creates. That's ok for my site but I'd like something for general use. I wonder if I could maybe create a content type that will only show up when there's no profile node... I'm fairly sure I know how to do that. I'll put it on my to do list and see how it goes.

Michelle

#2

ashtronaut - April 23, 2008 - 23:45

I know you probably want to build this into advanced profile's functionality without the use of other modules, but I was able to achieve something similar by creating a Rule with the workflow-ng module. Pretty much when the user registers, the rule automatically creates a userprofile node with empty fields. When the user sees his/her user profile with empty fields it may motivate them to edit their profile. You can also create an action that shows a message (that you configured) based on whatever conditions you have set (I have not tried this yet so I don't know what conditions are available.)

ash

#3

scedwar - April 24, 2008 - 15:10

Hmmm. Interesting - I'm already using workflow-ng.

User registration isn't a problem - I've got a field from user profile on the registration form, so it gets auto created for new users. The issue is for existing users (around 600) who don't have one. A batch script would be sufficient, perhaps on the install of advanced profile?

#4

Michelle - April 24, 2008 - 17:29

I'm not sure this is something advprofile should be doing. I think this should be done on the bio/nodeprofile end. I'm not completely opposed to the idea, though, so I won't rule it out entirely. My focus, though, is to find a way to make the profile page not look like crap when there is no node for the user.

Michelle

#5

scedwar - April 25, 2008 - 00:39

same objective, different means. Michelle, your approach is far more sensible if only because you don't create unnecessary (empty) nodes for users with no details in their profile.

#6

Michelle - June 20, 2008 - 03:48
Status:active» postponed

New features will go in the 6.x version.

Michelle

#7

Michelle - September 12, 2008 - 23:11
Status:postponed» won't fix

APK will not be getting new features.

Michelle

#8

Prodigy - October 21, 2008 - 20:06

Look into the " Profile Complete Percentage " module. Currently it only supports Core Profile Fields, but in the dev. they are working with CCK.

#9

Prodigy - October 29, 2008 - 05:06
Status:won't fix» needs review

Here is what I did.

I put this in block visibility. This checks to see if the user has created a profile node, or any other node ..if not it displays whatever you put into the block body where you want.

<?php
global $user;   // the current logged-in user

$result = db_query(db_rewrite_sql("SELECT nid FROM {node} n WHERE type = 'uprofile' AND uid = $user->uid"));
$rows = db_num_rows($result);
$showit = $rows ? FALSE : TRUE;

return
$showit;
?>

And something like this in block body

<?php print l('Create your user profile.', 'node/add/uprofile'); ?>

#10

Michelle - March 10, 2009 - 22:34
Version:5.x-1.x-dev» 6.x-1.x-dev
Status:needs review» postponed

I still want to do somethign with this but it's more likely to happen in 6.x-2.x.

Michelle

#11

Michelle - June 3, 2009 - 03:09
Status:postponed» active

This was a suggestion that was misplaced as a comment on a handbook page. Unfortunately, someone was doing a comment cleaning sweep and deleted the comment so I don't have a record of the contributor.

<?php
global $user;
if (
arg(1) == $user->uid)
{
$nodes1 = db_query("SELECT Count(nid) as count1 from node WHERE type = 'profile' AND uid = ". arg(1));
while (
$node1 = db_fetch_object($nodes1)) {
if (
$node1->count1 < 1)
{
print
"<div style='padding: 5px; font-weight: bold; font-size:14px;'><a href='/user/".arg(1)."/edit/profile'>You do not have a profile yet, Click here to create your profile</a></div>Other members will not be able to comment on your wall unless you fill in your profile.";
}
}
}
?>

#12

SocialNicheGuru - June 9, 2009 - 14:20

this is a great idea. I have had difficulty trying to figure out the best way to do this for the content profiles that I have setup

Edit: code did not work

How can I use this
theme_content_profile_display_add_link ($element)

this might be another way to add the link if using content profile. But what is $element? Is it just the content

http://drupal.org/node/455586

#13

silkscreen - November 4, 2009 - 06:13

Looks like this will be part of this super cool module soon.
As above a block seems like a great workaround
The body code I found was different

<?php
print l(t('edit profile'), "user/{$GLOBALS['user']->uid}/edit/uprofile");
?>

In block Page Specific Visibility Settings i am still unsure of what the correct method is.

 
 

Drupal is a registered trademark of Dries Buytaert.