[drupal-devel] [feature] make profiles more themable: do not pass along huge chunks of HTML

Bèr Kessels drupal-devel at drupal.org
Wed Sep 14 15:16:27 UTC 2005


Issue status update for 
http://drupal.org/node/31123
Post a follow up: 
http://drupal.org/project/comments/add/31123

 Project:      Drupal
 Version:      cvs
 Component:    user system
 Category:     feature requests
 Priority:     normal
 Assigned to:  Anonymous
 Reported by:  Bèr Kessels
 Updated by:   Bèr Kessels
-Status:       patch (code needs work)
+Status:       patch (code needs review)
 Attachment:   http://drupal.org/files/issues/user_profile_themable_0_0.patch (3.63 KB)

Doxygen is now fixed.




Bèr Kessels



Previous comments:
------------------------------------------------------------------------

Tue, 13 Sep 2005 18:35:50 +0000 : Bèr Kessels

Attachment: http://drupal.org/files/issues/user_profile_themable_mutliarray.patch (1.46 KB)

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.




------------------------------------------------------------------------

Tue, 13 Sep 2005 19:40:19 +0000 : Dublin Drupaller

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 [1] 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


[1] http://drupal.org/node/30376\" title=\"click for the ongoing
discussion about the fleximax.module patch




------------------------------------------------------------------------

Tue, 13 Sep 2005 19:42:23 +0000 : Dublin Drupaller

sorry..I goofed on that link..


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


[2] http://drupal.org/node/30376\" title=\"click for the ongoing
discussion about the fleximax.module patch
[3]
http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/dublindrupaller/modules/fleximax/fleximax-screenshot.PNG?view=markup\"
title=\"a screenshot of the flexiMAX.module layout control panel




------------------------------------------------------------------------

Tue, 13 Sep 2005 20:23:41 +0000 : Bèr Kessels

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)




------------------------------------------------------------------------

Wed, 14 Sep 2005 13:28:20 +0000 : Bèr Kessels

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.




------------------------------------------------------------------------

Wed, 14 Sep 2005 13:28:57 +0000 : Bèr Kessels

Attachment: http://drupal.org/files/issues/regions_replace_not_append.patch (4.34 KB)




------------------------------------------------------------------------

Wed, 14 Sep 2005 13:30:53 +0000 : Bèr Kessels

Attachment: http://drupal.org/files/issues/user_profile_themable.patch (3.54 KB)

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




------------------------------------------------------------------------

Wed, 14 Sep 2005 13:52:23 +0000 : Bèr Kessels

Attachment: http://drupal.org/files/issues/user_profile_themable_0.patch (3.58 KB)

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

<?php
  $fields[$field->category][$field->name];
?>






------------------------------------------------------------------------

Wed, 14 Sep 2005 14:20:36 +0000 : moshe weitzman

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




------------------------------------------------------------------------

Wed, 14 Sep 2005 14:54:25 +0000 : Bèr Kessels

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)







More information about the drupal-devel mailing list