[support] including profile edit form on a page...

Kevin Davison kevin at quevin.com
Sun Sep 5 18:50:39 UTC 2010


global $user; in a template file wasn't my idea, but the previous developer's. Took over this project.

I would like to use panels, but I can't figure out how to create a panel page with the profile edit form in there. Anyone know how?

Can anyone also explain why the user-profile-form would "save" when clean URLs are turned off (/?q=as/22), and then it doesn't save when clean URLs are turned on (/as/22)?

   <form action="/as/22"  accept-charset="UTF-8" method="post" id="user-profile-form" enctype="multipart/form-data">

Thank you,

Kevin


On Sep 3, 2010, at 13:41 PM, Christopher M. Jones wrote:

> Maybe someone else has an idea why the code itself doesn't work. But if 
> you'll pardon my presumption, I'm not sure there's ever a situation 
> where you should be putting code like this in page.tpl.php. Maybe with 
> more information someone could suggest an alternative, more "best 
> practice" method for achieving your desired result.
> 
> For example: if I want to arbitrarily place form content on some page of 
> my choice, I'd use panels.
> 
> And failing that-- if you really can't find a tool like panels that does 
> what you want, then write a custom module to do it. For example:
> 
> mymodule.module:
> 
> mymodule_menu(){
>   $items = array();
> 
>   $item['my/custom/page'] = array(
>     'title' => t('Title of my page'),
>     'page callback' => 'drupal_get_form',
>     'page arguments' => 'user_profile_form',
>     'access arguments => array('permission the user has to have'),
>     ...
>     );
>   return $items;
> }
> 
> This code, once the module is enabled and all the cache is cleared, 
> should put the form you want on the path you just named. If you want it 
> in a block, then decalare block content in your module instead of a menu 
> entry, and place the block into a region.
> 
> 
> On 09/03/2010 04:16 PM, Kevin Davison wrote:
>> The following PHP is what I have in a page.tpl.php, and it worked before
>> I upgraded Drupal 6.14 to 6.19 and enabled clean URLs (with Pathauto).
>> 
>> Now when I submit a profile edit, the page just reloads quickly, but
>> nothing is written to the database. Anyone know why? Need more info? Thanks!
>> 
>> <?php
>> 
>>    global $user;
>>    // if the user is logged in
>>    if ($user->uid > 0) {
>>    module_load_include('inc', 'user', 'user.pages');
>>    profile_load_profile($user);
>>    print(drupal_get_form('user_profile_form', $user, 'Personal
>>    Information'));
>>    }
>>    else {
>>    // do something else
>>    }
>> 
>> ?>
>> 
>> OLD CODE...
>> 
>> <?php /*
>> global $user;
>> $uid = $user->uid;
>> if ($uid > 0) {
>> include_once drupal_get_path('module', 'user') . '/user.pages.inc';
>> // print(drupal_get_form('user_profile_form', $user));
>> profile_load_profile($user);
>> // var_dump($user);
>> print(drupal_get_form('user_profile_form', $user, 'Personal Information'));
>> }
>> */
>> ?>
>> 
> -- 
> [ Drupal support list | http://lists.drupal.org/ ]



More information about the support mailing list