ok.. let's try
NOTE this is a workaround, not tested..
1) copy 94UserWebPhp fragment to the same folder in /etc/e-smith/templates
-custom tree (you have to create the sub tree manually) and cd to the same dir
2) let's say that you want to give php5 to user john
edit the fragment in this way:
{
use esmith::AccountsDB;
$OUT = "";
my $accounts = esmith::AccountsDB->open;
my @users = $accounts->users;
foreach my $user (@users)
{
$OUT .= " <Directory /home/e-smith/files/users/".$user->key;
$OUT .= "/home/public_html> ";
$OUT .= " AddType application/x-httpd-php";
$OUT .= " .php .php3 .phtml ";
$OUT .= " AddType application/x-httpd-php-source .phps ";
if ($user == 'john') {
$OUT .= "AddHandler php5-cgi .php ";
$OUT .= "Action php5-cgi /php5-cgi/php-cgi ";
}
# Set the sandbox within which PHP is confined to play
my $tmppath = "/home/e-smith/files/users/";
$tmppath .= $user->key . "/";
my $basedir = $user->prop('PHPBaseDir') || ($tmppath);
$OUT .= " php_admin_value open_basedir $basedir ";
$OUT .= "</Directory> ";
}
}
3) save the fragment with Ctrl-X, Y (if you are working with pico)
4) signal-event user-modify john
should do the trick
please raise a NFR to ask that this feature is added to the contrib (maybe David, the mantainer, is interested

)
let us know
Ciao
Stefano