I want more power of the theming the user profiles. The recent patch for profiles imporves ti a little it, but leaves one mayor issue open;
All fields in a "category' are passed along as one huge chunk. That is a pity, IMO, for you cannot really theme it anymore, exept re-use tha chunk of HTML. Or, if you really wish, you could pregreplace teh HTML.

This minor patch leaves the default result exactly as it is, yet it allows themes to do some advanced stuff, without having to do database queries in the theme.

An example is http://newsphoto.nl/user/2 where I curerntly need about 40 lines of code and two database calls, while with this simple patch, it will be theme function of only five lines!
And then it allows me to use a .tpl.php file to use reach field as a variable.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Dublin Drupaller’s picture

I agree with the objective of making profiles more themable and in an easier way. I am working with kiev1.org on a patch for flexinode that unleashes themeability control, which is not reliant on any theme engine..the work in progress patch is called FlexiMAX and a this screenshot illustrates the simplicity of how it works in a flexinode context.

Without digressing from your patch, I was thinking about applying the flexiMAX idea to the profile.module as well. i.e. a flexiMAX type layout field is displayed with Profile_fields populated and converted into simple to use tags to insert into a bespoke layout.

I like the simplicity of control and it's non-dependence on the phptemplate.engine and tpl.php overrides..putting the power back into the .CSS file and with non-php programmers or designers without much php savvy. The phptemplate engine is superb. It's just a struggle sometimes to delve into relatively heavy coding for a simple design tweak.

Just my 2eurocents.

Dub

Dublin Drupaller’s picture

sorry..I goofed on that link..

the work in progress patch is called FlexiMAX which allows simple layout control at the $content level and this screenshot illustrates how it works in a flexinode context.

Bèr Kessels’s picture

Dub.
There is still that plan to move profile data into nodes. which IMO is the route to take.
But untill that day, this few-liner is a great improment :) (IMNSO)

Bèr Kessels’s picture

Improved. I moved the array higher up. the hook user now must return a multidimensional array, each field as array item:

array('name of category' => array ('field1', 'field2'))

anohther issue and patch should deal with a default theme function for each profile field.

Bèr Kessels’s picture

Bèr Kessels’s picture

FileSize
3.54 KB

ahum. that was the wrong file. this one is correct

Bèr Kessels’s picture

while working on this. I thought It is even better to return keyed arrays

  $fields[$field->category][$field->name];
moshe weitzman’s picture

Great job, Ber. This is what we have needed for a while.

- it would be nice if we tagged with css each profile field, and not each category as we do now. requires change to theme_user_profile(). also requires that they keys in the returned array are valid css class names. one could argue that this is a documentation issue, and not a code issue. doesn't have to be part of this patch.
- theme_user_profile() has one of the few remaining instances of theme('box'). perhaps kill it now. if any core themes are overriding this function, they should change also.
- the PHPDoc for theme_user_profile() needs updating for named keys

Bèr Kessels’s picture

Status: Needs review » Needs work

I will fix the Dyxygen.

But I will leave teh prifile fields for what they are. That inded is another issiue.
one (of *many potential ones*) that would have been resuolved with the theme_wrapper. (grr)

Bèr Kessels’s picture

Status: Needs work » Needs review
FileSize
3.63 KB

Doxygen is now fixed.

Dries’s picture

Status: Needs review » Fixed

Committed to HEAD.

Anonymous’s picture

Anonymous’s picture

Status: Fixed » Closed (fixed)