2009-04-20 00:13:21 +02:00
|
|
|
/*
|
2010-02-28 01:08:10 +01:00
|
|
|
* This file is a part of Winix
|
2009-04-20 00:13:21 +02:00
|
|
|
* and is not publicly distributed
|
|
|
|
*
|
2010-02-28 22:33:06 +01:00
|
|
|
* Copyright (c) 2008-2010, Tomasz Sowa
|
2009-04-20 00:13:21 +02:00
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "templates.h"
|
2010-02-15 01:31:14 +01:00
|
|
|
#include "misc.h"
|
2010-08-10 22:43:38 +02:00
|
|
|
#include "core/request.h"
|
|
|
|
#include "core/misc.h"
|
|
|
|
#include "functions/functions.h"
|
2009-04-21 22:50:55 +02:00
|
|
|
|
2009-04-20 00:13:21 +02:00
|
|
|
|
|
|
|
|
|
|
|
namespace TemplatesFunctions
|
|
|
|
{
|
|
|
|
|
2009-06-05 22:29:06 +02:00
|
|
|
void thread_is(Info & i)
|
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
i.res = functions->fun_thread.is_thread;
|
2009-06-05 22:29:06 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-10 22:43:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
2009-06-05 22:29:06 +02:00
|
|
|
static size_t thread_tab_index;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void thread_tab(Info & i)
|
|
|
|
{
|
|
|
|
thread_tab_index = i.iter;
|
|
|
|
|
2010-08-10 22:43:38 +02:00
|
|
|
i.res = thread_tab_index < functions->fun_thread.thread_tab.size();
|
2009-06-05 22:29:06 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void thread_tab_url(Info & i)
|
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
if( thread_tab_index < functions->fun_thread.thread_tab.size() )
|
2009-06-05 22:29:06 +02:00
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
Item * dir = system->dirs.GetDir( functions->fun_thread.thread_tab[thread_tab_index].dir_id );
|
2009-06-05 22:29:06 +02:00
|
|
|
|
|
|
|
if( dir )
|
|
|
|
{
|
|
|
|
HtmlEscape(i.out, dir->url);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
i.out << "<!-- unknown directory -->";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void thread_tab_subject(Info & i)
|
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
if( thread_tab_index < functions->fun_thread.thread_tab.size() )
|
2009-06-05 22:29:06 +02:00
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
Item * dir = system->dirs.GetDir( functions->fun_thread.thread_tab[thread_tab_index].dir_id );
|
2009-06-05 22:29:06 +02:00
|
|
|
|
|
|
|
if( dir )
|
|
|
|
{
|
2009-11-17 00:36:38 +01:00
|
|
|
if( !dir->subject.empty() )
|
|
|
|
HtmlEscape(i.out, dir->subject);
|
|
|
|
else
|
|
|
|
HtmlEscape(i.out, dir->url);
|
2009-06-05 22:29:06 +02:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
i.out << "<!-- unknown subject -->";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void thread_tab_answers(Info & i)
|
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
if( thread_tab_index < functions->fun_thread.thread_tab.size() )
|
2009-06-05 22:29:06 +02:00
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
long a = functions->fun_thread.thread_tab[thread_tab_index].items;
|
2009-06-05 22:29:06 +02:00
|
|
|
|
|
|
|
// the first is created by the author
|
|
|
|
// we count only the rest
|
|
|
|
if( a > 0 )
|
|
|
|
--a;
|
|
|
|
|
|
|
|
i.out << a;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void thread_tab_author(Info & i)
|
|
|
|
{
|
|
|
|
bool unknown = true;
|
|
|
|
|
|
|
|
|
2010-08-10 22:43:38 +02:00
|
|
|
if( thread_tab_index < functions->fun_thread.thread_tab.size() )
|
2009-06-05 22:29:06 +02:00
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
Item * dir = system->dirs.GetDir( functions->fun_thread.thread_tab[thread_tab_index].dir_id );
|
2009-06-05 22:29:06 +02:00
|
|
|
|
|
|
|
if( dir )
|
|
|
|
{
|
2010-08-10 18:12:50 +02:00
|
|
|
User * puser = system->users.GetUser(dir->user_id);
|
2009-06-05 22:29:06 +02:00
|
|
|
unknown = false;
|
|
|
|
|
|
|
|
if( puser )
|
|
|
|
HtmlEscape(i.out, puser->name);
|
|
|
|
else
|
2009-06-07 04:40:27 +02:00
|
|
|
{
|
|
|
|
i.out << "~";
|
|
|
|
|
|
|
|
if( !dir->guest_name.empty() )
|
|
|
|
HtmlEscape(i.out, dir->guest_name);
|
|
|
|
else
|
|
|
|
i.out << "guest"; // !! dodac do konfiga
|
|
|
|
}
|
2009-06-05 22:29:06 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if( unknown )
|
|
|
|
{
|
|
|
|
i.out << "<!-- unknown user -->";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void thread_tab_last_item_date_modification(Info & i)
|
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
if( thread_tab_index < functions->fun_thread.thread_tab.size() )
|
|
|
|
if( functions->fun_thread.thread_tab[thread_tab_index].last_item.id != -1 )
|
|
|
|
i.out << DateToStr( &functions->fun_thread.thread_tab[thread_tab_index].last_item.date_modification );
|
2009-06-05 22:29:06 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2010-02-15 01:31:14 +01:00
|
|
|
void thread_tab_last_item_date_modification_nice(Info & i)
|
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
if( thread_tab_index < functions->fun_thread.thread_tab.size() )
|
|
|
|
if( functions->fun_thread.thread_tab[thread_tab_index].last_item.id != -1 )
|
|
|
|
print_date_nice(i, &functions->fun_thread.thread_tab[thread_tab_index].last_item.date_modification);
|
2010-02-15 01:31:14 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2009-06-05 22:29:06 +02:00
|
|
|
void thread_tab_last_item_user(Info & i)
|
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
if( thread_tab_index < functions->fun_thread.thread_tab.size() )
|
2009-06-05 22:29:06 +02:00
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
if( functions->fun_thread.thread_tab[thread_tab_index].last_item.id != -1 )
|
2009-06-05 22:29:06 +02:00
|
|
|
{
|
2010-08-10 22:43:38 +02:00
|
|
|
User * puser = system->users.GetUser( functions->fun_thread.thread_tab[thread_tab_index].last_item.user_id );
|
2009-06-05 22:29:06 +02:00
|
|
|
|
|
|
|
if( puser )
|
|
|
|
HtmlEscape(i.out, puser->name);
|
|
|
|
else
|
2009-06-07 04:40:27 +02:00
|
|
|
{
|
|
|
|
i.out << "~";
|
|
|
|
|
2010-08-10 22:43:38 +02:00
|
|
|
if( !functions->fun_thread.thread_tab[thread_tab_index].last_item.guest_name.empty() )
|
|
|
|
HtmlEscape(i.out, functions->fun_thread.thread_tab[thread_tab_index].last_item.guest_name);
|
2009-06-07 04:40:27 +02:00
|
|
|
else
|
|
|
|
i.out << "guest"; // !! dodac do konfiga
|
|
|
|
}
|
2009-06-05 22:29:06 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void thread_can_create(Info & i)
|
|
|
|
{
|
2010-08-18 00:32:47 +02:00
|
|
|
i.res = functions->fun_createthread.HasAccess(true);
|
2009-04-20 00:13:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} // namespace TemplatesFunctions
|
|
|
|
|
|
|
|
|
|
|
|
|