changed: added Cur structure
we have there two pointers: Request * request; Session * session; these are the current request and the current session the session GC was moved to SessionManager (was in SessionContainer) git-svn-id: svn://ttmath.org/publicrep/winix/trunk@708 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
@@ -19,18 +19,18 @@ namespace TemplatesFunctions
|
||||
|
||||
void dir(Info & i)
|
||||
{
|
||||
for(size_t a=0 ; a<request->dir_tab.size() ; ++a)
|
||||
i.out << request->dir_tab[a]->url << '/';
|
||||
for(size_t a=0 ; a<cur->request->dir_tab.size() ; ++a)
|
||||
i.out << cur->request->dir_tab[a]->url << '/';
|
||||
}
|
||||
|
||||
|
||||
void dir_without_slash(Info & i)
|
||||
{
|
||||
for(size_t a=0 ; a<request->dir_tab.size() ; ++a)
|
||||
for(size_t a=0 ; a<cur->request->dir_tab.size() ; ++a)
|
||||
{
|
||||
i.out << request->dir_tab[a]->url;
|
||||
i.out << cur->request->dir_tab[a]->url;
|
||||
|
||||
if( a < request->dir_tab.size()-1 )
|
||||
if( a < cur->request->dir_tab.size()-1 )
|
||||
i.out << '/';
|
||||
}
|
||||
}
|
||||
@@ -38,32 +38,32 @@ void dir_without_slash(Info & i)
|
||||
|
||||
void dir_is_root(Info & i)
|
||||
{
|
||||
i.res = request->dir_tab.size() == 1;
|
||||
i.res = cur->request->dir_tab.size() == 1;
|
||||
}
|
||||
|
||||
|
||||
void dir_parent(Info & i)
|
||||
{
|
||||
if( request->dir_tab.empty() )
|
||||
if( cur->request->dir_tab.empty() )
|
||||
return;
|
||||
|
||||
for(size_t a=0 ; a<request->dir_tab.size()-1 ; ++a)
|
||||
for(size_t a=0 ; a<cur->request->dir_tab.size()-1 ; ++a)
|
||||
{
|
||||
i.out << request->dir_tab[a]->url << '/';
|
||||
i.out << cur->request->dir_tab[a]->url << '/';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void dir_parent_without_slash(Info & i)
|
||||
{
|
||||
if( request->dir_tab.empty() )
|
||||
if( cur->request->dir_tab.empty() )
|
||||
return;
|
||||
|
||||
for(size_t a=0 ; a<request->dir_tab.size()-1 ; ++a)
|
||||
for(size_t a=0 ; a<cur->request->dir_tab.size()-1 ; ++a)
|
||||
{
|
||||
i.out << request->dir_tab[a]->url;
|
||||
i.out << cur->request->dir_tab[a]->url;
|
||||
|
||||
if( request->dir_tab.size()>=2 && a<request->dir_tab.size()-2 )
|
||||
if( cur->request->dir_tab.size()>=2 && a<cur->request->dir_tab.size()-2 )
|
||||
i.out << '/';
|
||||
}
|
||||
}
|
||||
@@ -75,9 +75,9 @@ void dir_can_read_exec(Info & i)
|
||||
{
|
||||
bool result = true;
|
||||
|
||||
for(size_t a=0 ; a<request->dir_tab.size() ; ++a)
|
||||
for(size_t a=0 ; a<cur->request->dir_tab.size() ; ++a)
|
||||
{
|
||||
if( !system->HasReadExecAccess(*request->dir_tab[a]) )
|
||||
if( !system->HasReadExecAccess(*cur->request->dir_tab[a]) )
|
||||
{
|
||||
result = false;
|
||||
break;
|
||||
@@ -90,7 +90,7 @@ bool result = true;
|
||||
|
||||
void dir_can_write(Info & i)
|
||||
{
|
||||
i.res = system->HasWriteAccess(*request->dir_tab.back());
|
||||
i.res = system->HasWriteAccess(*cur->request->dir_tab.back());
|
||||
}
|
||||
|
||||
|
||||
@@ -99,16 +99,16 @@ void dir_can_remove(Info & i)
|
||||
bool result = true;
|
||||
|
||||
|
||||
if( request->dir_tab.size() == 1 )
|
||||
if( cur->request->dir_tab.size() == 1 )
|
||||
{
|
||||
// rm for the root dir
|
||||
// only the superuser can do it
|
||||
if( !request->session->puser || !request->session->puser->super_user )
|
||||
if( !cur->session->puser || !cur->session->puser->super_user )
|
||||
result = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Item * last_but_one_dir = *(--(--request->dir_tab.end()));
|
||||
Item * last_but_one_dir = *(--(--cur->request->dir_tab.end()));
|
||||
|
||||
if( !system->HasWriteAccess(*last_but_one_dir) )
|
||||
result = false;
|
||||
@@ -133,7 +133,7 @@ void dir_can_use_mkdir(Info & i)
|
||||
|
||||
static std::vector<Item*> dir_childs_table;
|
||||
static size_t dir_childs_index;
|
||||
// request->id is never 0 and we can start dir_childs_reqid from 0
|
||||
// cur->request->id is never 0 and we can start dir_childs_reqid from 0
|
||||
static size_t dir_childs_reqid = 0;
|
||||
|
||||
// is the first directory the parent ('..')
|
||||
@@ -142,22 +142,22 @@ static bool dir_childs_has_parent;
|
||||
|
||||
void dir_childs_tab(Info & i)
|
||||
{
|
||||
if( dir_childs_reqid != request->id )
|
||||
if( dir_childs_reqid != cur->request->id )
|
||||
{
|
||||
dir_childs_reqid = request->id;
|
||||
dir_childs_reqid = cur->request->id;
|
||||
dir_childs_table.clear();
|
||||
dir_childs_has_parent = false;
|
||||
|
||||
if( !request->dir_tab.empty() )
|
||||
if( !cur->request->dir_tab.empty() )
|
||||
{
|
||||
if( request->dir_tab.size() >= 2 && i.par == L"with_parent")
|
||||
if( cur->request->dir_tab.size() >= 2 && i.par == L"with_parent")
|
||||
{
|
||||
Item * dir_up = request->dir_tab[request->dir_tab.size()-2];
|
||||
Item * dir_up = cur->request->dir_tab[cur->request->dir_tab.size()-2];
|
||||
dir_childs_table.push_back(dir_up);
|
||||
dir_childs_has_parent = true;
|
||||
}
|
||||
|
||||
system->dirs.GetDirChilds(request->dir_tab.back()->id, dir_childs_table);
|
||||
system->dirs.GetDirChilds(cur->request->dir_tab.back()->id, dir_childs_table);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,14 +236,14 @@ static size_t dir_index;
|
||||
void dir_tab(Info & i)
|
||||
{
|
||||
dir_index = i.iter;
|
||||
i.res = dir_index < request->dir_tab.size();
|
||||
i.res = dir_index < cur->request->dir_tab.size();
|
||||
}
|
||||
|
||||
|
||||
void dir_tab_url(Info & i)
|
||||
{
|
||||
if( dir_index < request->dir_tab.size() )
|
||||
i.out << request->dir_tab[dir_index]->url;
|
||||
if( dir_index < cur->request->dir_tab.size() )
|
||||
i.out << cur->request->dir_tab[dir_index]->url;
|
||||
}
|
||||
|
||||
|
||||
@@ -251,9 +251,9 @@ void dir_tab_link(Info & i)
|
||||
{
|
||||
i.out << config->base_url;
|
||||
|
||||
for(size_t a = 0 ; a <= dir_index && a < request->dir_tab.size() ; ++a)
|
||||
for(size_t a = 0 ; a <= dir_index && a < cur->request->dir_tab.size() ; ++a)
|
||||
{
|
||||
i.out << request->dir_tab[a]->url;
|
||||
i.out << cur->request->dir_tab[a]->url;
|
||||
i.out << '/';
|
||||
}
|
||||
}
|
||||
@@ -262,25 +262,25 @@ void dir_tab_link(Info & i)
|
||||
|
||||
void dir_last_link_to(Info & i)
|
||||
{
|
||||
i.out << request->dir_tab.back()->link_to;
|
||||
i.out << cur->request->dir_tab.back()->link_to;
|
||||
}
|
||||
|
||||
|
||||
void dir_last_is_link_redirect(Info & i)
|
||||
{
|
||||
i.res = request->dir_tab.back()->link_redirect == 1;
|
||||
i.res = cur->request->dir_tab.back()->link_redirect == 1;
|
||||
}
|
||||
|
||||
|
||||
void dir_last_subject(Info & i)
|
||||
{
|
||||
i.out << request->dir_tab.back()->subject;
|
||||
i.out << cur->request->dir_tab.back()->subject;
|
||||
}
|
||||
|
||||
|
||||
void dir_last_user(Info & i)
|
||||
{
|
||||
User * puser = system->users.GetUser(request->dir_tab.back()->user_id);
|
||||
User * puser = system->users.GetUser(cur->request->dir_tab.back()->user_id);
|
||||
|
||||
if( puser )
|
||||
i.out << puser->name;
|
||||
@@ -288,8 +288,8 @@ void dir_last_user(Info & i)
|
||||
{
|
||||
i.out << "~";
|
||||
|
||||
if( !request->dir_tab.back()->guest_name.empty() )
|
||||
i.out << request->dir_tab.back()->guest_name;
|
||||
if( !cur->request->dir_tab.back()->guest_name.empty() )
|
||||
i.out << cur->request->dir_tab.back()->guest_name;
|
||||
else
|
||||
i.out << "guest"; // !! dodac do konfiga
|
||||
}
|
||||
@@ -298,47 +298,47 @@ void dir_last_user(Info & i)
|
||||
|
||||
void dir_last_url(Info & i)
|
||||
{
|
||||
i.out << request->dir_tab.back()->url;
|
||||
i.out << cur->request->dir_tab.back()->url;
|
||||
}
|
||||
|
||||
|
||||
void dir_last_url_is(Info & i)
|
||||
{
|
||||
i.res = request->dir_tab.back()->url == i.par;
|
||||
i.res = cur->request->dir_tab.back()->url == i.par;
|
||||
}
|
||||
|
||||
|
||||
void dir_last_date_creation(Info & i)
|
||||
{
|
||||
tm rtm = system->LocalTime(request->dir_tab.back()->date_creation);
|
||||
tm rtm = system->LocalTime(cur->request->dir_tab.back()->date_creation);
|
||||
i.out << DateToStr(rtm.tm_year + 1900, rtm.tm_mon + 1, rtm.tm_mday, rtm.tm_hour, rtm.tm_min, rtm.tm_sec);
|
||||
}
|
||||
|
||||
|
||||
void dir_last_date_modification(Info & i)
|
||||
{
|
||||
tm rtm = system->LocalTime(request->dir_tab.back()->date_modification);
|
||||
tm rtm = system->LocalTime(cur->request->dir_tab.back()->date_modification);
|
||||
i.out << DateToStr(rtm.tm_year + 1900, rtm.tm_mon + 1, rtm.tm_mday, rtm.tm_hour, rtm.tm_min, rtm.tm_sec);
|
||||
}
|
||||
|
||||
|
||||
void dir_last_date_creation_nice(Info & i)
|
||||
{
|
||||
print_date_nice(i, request->dir_tab.back()->date_creation);
|
||||
print_date_nice(i, cur->request->dir_tab.back()->date_creation);
|
||||
}
|
||||
|
||||
|
||||
void dir_last_date_modification_nice(Info & i)
|
||||
{
|
||||
print_date_nice(i, request->dir_tab.back()->date_modification);
|
||||
print_date_nice(i, cur->request->dir_tab.back()->date_modification);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void dir_last_dates_equal(Info & i)
|
||||
{
|
||||
tm * ptm1 = &request->dir_tab.back()->date_creation;
|
||||
tm * ptm2 = &request->dir_tab.back()->date_modification;
|
||||
tm * ptm1 = &cur->request->dir_tab.back()->date_creation;
|
||||
tm * ptm2 = &cur->request->dir_tab.back()->date_modification;
|
||||
|
||||
i.res = ptm1->tm_year == ptm2->tm_year &&
|
||||
ptm1->tm_mon == ptm2->tm_mon &&
|
||||
@@ -351,26 +351,26 @@ void dir_last_dates_equal(Info & i)
|
||||
|
||||
void dir_last_users_different(Info & i)
|
||||
{
|
||||
i.res = (request->dir_tab.back()->user_id != request->dir_tab.back()->modification_user_id);
|
||||
i.res = (cur->request->dir_tab.back()->user_id != cur->request->dir_tab.back()->modification_user_id);
|
||||
}
|
||||
|
||||
|
||||
void dir_last_modification_user(Info & i)
|
||||
{
|
||||
User * puser = system->users.GetUser(request->dir_tab.back()->modification_user_id);
|
||||
print_user_name(i, puser, request->dir_tab.back()->guest_name);
|
||||
User * puser = system->users.GetUser(cur->request->dir_tab.back()->modification_user_id);
|
||||
print_user_name(i, puser, cur->request->dir_tab.back()->guest_name);
|
||||
}
|
||||
|
||||
|
||||
void dir_last_html_template(Info & i)
|
||||
{
|
||||
i.out << request->dir_tab.back()->html_template;
|
||||
i.out << cur->request->dir_tab.back()->html_template;
|
||||
}
|
||||
|
||||
|
||||
void dir_last_has_html_template(Info & i)
|
||||
{
|
||||
i.res = !request->dir_tab.back()->html_template.empty();
|
||||
i.res = !cur->request->dir_tab.back()->html_template.empty();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user