нифига не правильный.
<?php
$shop = new shop();
$param['site_id'] = 1;
$param['xsl_name'] = 'СписокЛицевыхСчетов ';
// Если есть модуль "Пользователи сайта", получим текущего пользователя
if (class_exists('SiteUsers'))
{
$SiteUsers = & singleton('SiteUsers');
$site_users_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
$site_users_id = 0; // здесь не должно быть комментария! иначе в случае, когда юзер не авторизован, переменная будет не определена!
//$param['site_users_id'] = $site_users_id; // а вот этой строки тут быть не
//может! потому что в вашем коде получается, что id текущего пользователя
//никогда не будет передан в метод ShowSiteUsersAccount.
}
$param['site_users_id'] = $site_users_id; // а эта строка должна быть здесь!
// а то ересь какая-то получается.
$shop->ShowSiteUsersAccount($param);
?>
А вообще, по логике, если юзер не залогинен, то информация о балансе отображаться не должна.
поэтому правильнее всего будет так:
<?php
// Если есть модуль "Пользователи сайта",
if (class_exists('SiteUsers'))
{
// то получим текущего пользователя
$SiteUsers = &singleton('SiteUsers');
$site_users_id = $SiteUsers->GetCurrentSiteUser();
// если пользователь залогинен (т.е. его id > 0)
if ($site_users_id > 0)
{
//то только тогда создадим объект $shop, передадим ему id текущего пользователя и покажем информацию о балансе
$shop = &singleton('shop');
$param['site_id'] = 1;
$param['xsl_name'] = 'СписокЛицевыхСчетов';
$param['site_users_id'] = $site_users_id;
$shop->ShowSiteUsersAccount($param);
}
// если же юзер не залогинился, то можно его об этом попросить:
else
{
echo 'Пожалуйста, залогиньтесь :-)'
}
}
?>