added: to misc:

bool IsWhite(const wchar_t * str, bool treat_new_line_as_white)
       bool IsWhite(const std::wstring & str, bool treat_new_line_as_white)
       return true if the whole string is white (or an empty string)
added: global variable in admin environment for an user: "display_name"
       if defined it is used to display an user's name instead of its login
       it is used in: void print_user_name(Info & i, User & user);
       (tickets, threads, cat function etc)





git-svn-id: svn://ttmath.org/publicrep/winix/trunk@895 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
Tomasz Sowa 2012-09-26 07:18:32 +00:00
parent 7f48d1eb2e
commit dfcf6b29c0
6 changed files with 78 additions and 6 deletions

View File

@ -561,6 +561,40 @@ return false;
/*
return true if the whole string has only white characters
an empty string is treated as white
*/
bool IsWhite(const wchar_t * str, bool treat_new_line_as_white)
{
for( ; *str != 0 ; ++str )
{
if( *str == '\n' )
{
if( !treat_new_line_as_white )
return false;
}
else
if( !IsWhite(*str) )
return false;
}
return true;
}
/*
return true if the whole string has only white characters
*/
bool IsWhite(const std::wstring & str, bool treat_new_line_as_white)
{
return IsWhite(str.c_str(), treat_new_line_as_white);
}
bool IsLastSlash(const std::wstring & path)
{

View File

@ -227,6 +227,8 @@ const char * DateToStrCookie(time_t t);
const wchar_t * IpToStr(unsigned int ip_);
bool IsWhite(wchar_t s);
bool IsWhite(const wchar_t * str, bool treat_new_line_as_white = false);
bool IsWhite(const std::wstring & str, bool treat_new_line_as_white = false);
bool IsLastSlash(const std::wstring & path);
template<class StringType>

View File

@ -7,6 +7,9 @@ charset = UTF-8
logged_as = logged as
logged_as_long = You are logged as
display_guest_name = guest
account_not_activated = This account is not activated yet.
account_suspended = This account is temporarily suspended
account_banned = This account has been banned

View File

@ -8,6 +8,8 @@ charset = UTF-8
logged_as = zalogowany jako
logged_as_long = Aktualnie jesteś zalogowany jako
display_guest_name = gość
account_not_activated = To konto nie jest jeszcze aktywowane
account_suspended = To konto jest tymczasowo zablokowane
account_banned = To konto zostało wyłączone

View File

@ -86,20 +86,34 @@ void print_date_nice(Info & i, const PT::Date & date)
}
void print_user_name(Info & i, const User * puser, const std::wstring & guest_name)
// cannot be a const reference at the moment (PT::Space is used)
void print_user_name(Info & i, User & user)
{
std::wstring * dname = user.aenv.GetValue(L"display_name");
if( dname && !IsWhite(*dname, true) )
i.out << *dname;
else
i.out << user.name;
}
void print_user_name(Info & i, User * puser, const std::wstring & guest_name)
{
if( puser )
{
i.out << puser->name;
print_user_name(i, *puser);
}
else
{
i.out << "~";
if( !guest_name.empty() )
if( !guest_name.empty() && !IsWhite(guest_name) )
i.out << guest_name;
else
i.out << "guest"; // !! dodac do konfiga
i.out << locale.Get(L"display_guest_name");
}
}

View File

@ -39,7 +39,24 @@ void HtmlEscapeFormTxt(HtmlTextStream & out, const std::wstring & in);
void print_hour_min(Info & i, time_t time);
void print_date_nice(Info & i, const PT::Date & date);
void print_user_name(Info & i, const User * puser, const std::wstring & guest_name);
/*
print a user name -- it is trying to use 'display_name' from user's admin env
if it not find it or if the 'display_name' is all white (consists of all white characters)
then the login name is printed
*/
void print_user_name(Info & i, User & user);
/*
puser can be null -- in such a case guest_name is used
if guest_name is empty then 'display_guest_name' from locales is printed
*/
void print_user_name(Info & i, User * puser, const std::wstring & guest_name);
} // namespace TemplatesFunctions