'tickets' can use 'threads' now

git-svn-id: svn://ttmath.org/publicrep/winix/trunk@706 e52654a7-88a9-db11-a3e9-0013d4bc506e
pull/3/head
Tomasz Sowa 12 years ago
parent 3fad25b8c8
commit ab84a5169e

@ -26,6 +26,7 @@ winix: FORCE
@cd templates ; $(MAKE) -e
@cd notify ; $(MAKE) -e
@cd plugins/stats ; $(MAKE) -e
@cd plugins/thread ; $(MAKE) -e
@cd plugins/ticket ; $(MAKE) -e
@cd ../ezc/src ; $(MAKE) -e
$(CXX) -shared -o winix.so $(CXXFLAGS) core/*.o db/*.o functions/*.o templates/*.o notify/*.o ../ezc/src/ezc.a -lfcgi -lpq -lz -lpthread -lfetch
@ -42,6 +43,7 @@ clean:
@cd templates ; $(MAKE) -e clean
@cd notify ; $(MAKE) -e clean
@cd plugins/stats ; $(MAKE) -e clean
@cd plugins/thread ; $(MAKE) -e clean
@cd plugins/ticket ; $(MAKE) -e clean
@cd ../ezc/src ; $(MAKE) -e clean
@cd main ; $(MAKE) -e clean
@ -59,6 +61,7 @@ depend:
@cd templates ; $(MAKE) -e depend
@cd notify ; $(MAKE) -e depend
@cd plugins/stats ; $(MAKE) -e depend
@cd plugins/thread ; $(MAKE) -e depend
@cd plugins/ticket ; $(MAKE) -e depend
@cd ../ezc/src ; $(MAKE) -e depend
@cd main ; $(MAKE) -e depend

@ -107,6 +107,6 @@ LastTab::iterator i = FindNotLoggedOut(user_id, session_id);
}
else
{
log << log1 << "LC: there is no such a user to log out" << logend;
log << log4 << "LC: there is no such a user to log out" << logend;
}
}

@ -18,14 +18,13 @@
Mounts::Mounts()
{
pmount = 0;
pmount = &empty_mount;
}
void Mounts::CreateMountType()
{
mount_type_cms = AddMountType(L"cms");
mount_type_thread = AddMountType(L"thread");
mount_type_cms = AddMountType(L"cms");
}
@ -39,8 +38,8 @@ void Mounts::CreateMountFs()
void Mounts::CreateMountPar()
{
mount_par_page = AddMountPar(L"page");
mount_par_thread = AddMountPar(L"thread");
mount_par_createthread_on = AddMountPar(L"createthread_on");
//mount_par_thread = AddMountPar(L"thread");
//mount_par_createthread_on = AddMountPar(L"createthread_on");
mount_par_only_root_remove = AddMountPar(L"only_root_remove");
mount_par_emacs_on = AddMountPar(L"emacs_on");
mount_par_mkdir_on = AddMountPar(L"mkdir_on");
@ -56,6 +55,9 @@ void Mounts::CreateMounts()
CreateMountPar();
plugin.Call(WINIX_ADD_MOUNTS);
empty_mount.param.resize(mount_par_tab.size());
empty_mount.ClearParams();
}
@ -246,6 +248,8 @@ void Mounts::CalcCurMount()
{
std::vector<Item*>::reverse_iterator i;
pmount = &empty_mount;
// when the program starts (when the dir_tab is empty()
// we don't want to call MountCmsForRoot()
if( request->dir_tab.empty() )

@ -37,7 +37,6 @@ public:
// id of a specific mount type (the id is always valid)
int MountTypeCms() { return mount_type_cms; }
int MountTypeThread() { return mount_type_thread; }
// return -1 if there is no such a mount type
// or index otherwhise
@ -64,8 +63,8 @@ public:
const std::wstring & GetMountPar(int id);
int MountParPage() { return mount_par_page; }
int MountParThread() { return mount_par_thread; }
int MountParCreatethreadOn() { return mount_par_createthread_on; }
//int MountParThread() { return mount_par_thread; }
//int MountParCreatethreadOn() { return mount_par_createthread_on; }
int MountParOnlyRootRemove() { return mount_par_only_root_remove; }
int MountParEmacsOn() { return mount_par_emacs_on; }
int MountParMkdirOn() { return mount_par_mkdir_on; }
@ -102,16 +101,14 @@ private:
Dirs * dirs;
Request * request;
Mount empty_mount;
const std::wstring empty_str;
MountParser mount_parser;
// cms
// thread
std::vector<std::wstring> mount_type_tab;
int mount_type_cms;
int mount_type_thread;
// simplefs
// hashfs
@ -120,13 +117,11 @@ private:
int mount_fs_simplefs;
int mount_fs_hashfs;
// page
// thread
std::vector<std::wstring> mount_par_tab;
int mount_par_page;
int mount_par_thread;
int mount_par_createthread_on;
//int mount_par_thread;
//int mount_par_createthread_on;
int mount_par_only_root_remove;
int mount_par_emacs_on;
int mount_par_mkdir_on;

@ -31,8 +31,7 @@ size_t i;
Plugin::Plugin()
{
current_plugin = -1;
request = 0;
current_plugin = -1;
db = 0;
config = 0;
@ -42,6 +41,9 @@ Plugin::Plugin()
templates = 0;
synchro = 0;
session_manager = 0;
ret_false = 0;
ret_true = 0;
}
@ -284,10 +286,17 @@ void Plugin::Call(int message, Slots::iterator & slot)
void Plugin::Call(int message, void * p1_, void * p2_, long l1_, long l2_)
{
// how many plugins return 'false' and 'true'
// we are using local variables because Call() method can be called
// from a plugin too (one Call() can execute another Call())
int ret_false_loc = 0;
int ret_true_loc = 0;
int old_current_plugin = current_plugin;
Slots::iterator i = slots.lower_bound(message);
int old_current_plugin = current_plugin;
for( ; i!=slots.end() && i->first==message ; ++i )
{
@ -298,9 +307,16 @@ void Plugin::Call(int message, void * p1_, void * p2_, long l1_, long l2_)
info.l2 = l2_;
Call(message, i);
if( info.res )
++ret_true_loc;
else
++ret_false_loc;
}
current_plugin = old_current_plugin;
ret_false = ret_false_loc;
ret_true = ret_true_loc;
}
@ -352,8 +368,6 @@ void Plugin::Call(int message, void * p1_, void * p2_, long l1_)
}
size_t Plugin::Size()
{
return plugins.size();
@ -361,6 +375,19 @@ size_t Plugin::Size()
int Plugin::True()
{
return ret_true;
}
int Plugin::False()
{
return ret_false;
}
void Plugin::Assign(int message, Fun1 fun1)
{
Slot s;

@ -74,7 +74,7 @@ struct PluginInfo
// function return status
// default: false (if not set by the plugin)
bool ret;
bool res;
void Clear()
@ -89,7 +89,7 @@ struct PluginInfo
plugin_id = -1;
plugin_data_base = 0;
ret = false;
res = false;
}
};
@ -161,6 +161,14 @@ public:
// how many plugins there are
size_t Size();
// how many plugins returned 'true'
// from last Call()
int True();
// how many plugins returned 'false'
// from last Call()
int False();
// assign a function to a message
// you can assign more than one function to a specific message
void Assign(int message, Fun1);
@ -177,6 +185,9 @@ private:
Synchro * synchro;
SessionManager * session_manager;
int ret_false;
int ret_true;
std::wstring temp_path;
struct PluginsItem

@ -93,4 +93,13 @@
#define WINIX_NOTIFY_ADD_TEMPLATE 3013
// values from 4000 - 4099 reserved for 'thread' plugin
// see plugins/thread/pluginmsg.h
// values from 4100 - 4199 reserved for 'ticket' plugin
// see plugins/ticket/pluginmsg.h
#endif

@ -50,8 +50,6 @@ void Request::ClearPostFileTmp()
void Request::Clear()
{
// warning: don't clear: in, out, err, env
// id is never 0
if( ++id == 0 )
++id;
@ -80,15 +78,16 @@ void Request::Clear()
env_content_type = &char_empty;
env_http_accept_encoding = &char_empty;
session = 0;
temporary_session.Clear();
temporary_session.id = 0;
session = &temporary_session;
item_tab.clear();
item.Clear();
dir_tab.clear();
last_item = 0;
last_item = &item;
is_item = false;
function = 0;
function = 0; // !! dodac jakas empty funkcje
param_tab.clear();
status = WINIX_ERR_OK;

@ -138,6 +138,9 @@ private:
Config * config;
// session with id 0
Session temporary_session;
void ClearPostFileTmp();
// contains '\0'

@ -151,7 +151,8 @@ IndexId::iterator i;
if( i == index_id.end() )
{
i = index_id.begin();
WaitForSignalSleep(30);
WaitForSignalSleep(10);
//WaitForSignalSleep(1);
}
else
{
@ -186,19 +187,24 @@ return outdated;
// it's called from the other thread (with Lock and Unlock)
void SessionContainer::DeleteSession(SessionContainer::IndexId::iterator i)
{
Session * old_session = request->session;
Session * old_session = 0;
Session * del_session = &(*i->second);
request->session = &(*i->second);
if( del_session != request->session )
old_session = request->session;
//log << log3 << "SessionContainer: deleting outdated session, id: " << i->second->id << logend;
request->session = del_session;
if( i->second->puser )
last_container->UserLogout(i->second->puser->id, i->second->id);
log << log4 << "SessionContainer: deleting outdated session, id: " << del_session->id << logend;
if( del_session->puser )
last_container->UserLogout(del_session->puser->id, del_session->id);
table.erase(i->second);
index_id.erase(i);
table_size -= 1;
// !! tu moze byc zero
request->session = old_session;
}

@ -7,7 +7,8 @@ db.o: ../core/user.h ../core/group.h ../core/dircontainer.h
db.o: ../core/ugcontainer.h ../core/log.h ../core/misc.h
dbbase.o: dbbase.h dbconn.h dbtextstream.h ../core/textstream.h
dbbase.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h
dbbase.o: ../core/textstream.h ../core/log.h ../../ezc/src/utf8.h
dbbase.o: ../core/textstream.h ../core/log.h ../core/misc.h
dbbase.o: ../../ezc/src/utf8.h
dbconn.o: dbconn.h dbtextstream.h ../core/textstream.h ../core/misc.h
dbconn.o: ../core/item.h ../core/log.h ../core/error.h ../core/log.h
dbconn.o: ../core/textstream.h

@ -626,6 +626,14 @@ PGresult * Db::GetItemsQuery(const DbItemQuery & iq, bool skip_other_sel)
const char * if_and = "";
if( iq.where_id ) { query << R(if_and) << R("item.id=") << iq.id ; if_and = add_and; }
if( iq.id_tab && !iq.id_tab->empty() )
{
CreateIdList(*iq.id_tab, iq_id_list);
query << R(if_and) << R("item.id in ") << R(iq_id_list);
if_and = add_and;
}
if( iq.where_parent_id ){ query << R(if_and) << R("parent_id=") << iq.parent_id ; if_and = add_and; }
if( iq.where_type )

@ -23,7 +23,6 @@
#include "core/item.h"
#include "core/user.h"
#include "core/group.h"
#include "core/thread.h"
#include "core/dircontainer.h"
#include "core/ugcontainer.h"
@ -93,6 +92,7 @@ protected:
DbTextStream query, query_create_url;
std::wstring temp_url;
Item dir_temp;
std::wstring iq_id_list;
bool AddItemCreateUrlSubject(Item & item);

@ -13,9 +13,11 @@
#include "dbbase.h"
#include "core/log.h"
#include "core/error.h"
#include "core/misc.h"
#include "utf8.h"
DbBase::DbBase()
{
db_conn = 0;
@ -283,7 +285,7 @@ tm t;
if( len != 19 )
{
// the format must be like this: 2008-12-31 22:30:00
log << log1 << "DbBase: ConvertTime: unknown time format: \"" << str << "\"";
log << log1 << "DbBase: ConvertTime: unknown time format: \"" << str << "\"" << logend;
return t;
}
@ -333,7 +335,7 @@ size_t buffer_len = sizeof(buffer) / sizeof(wchar_t);
for(size_t i=0 ; i<id_tab.size() ; ++i)
{
swprintf(buffer, buffer_len, L"%lu", (unsigned long)id_tab[i]);
Toa((unsigned long)id_tab[i], buffer, buffer_len);
list += buffer;
if( i+1 < id_tab.size() )

@ -20,6 +20,7 @@ DbItemQuery::DbItemQuery()
SetAll(true, false);
id = -1;
id_tab = 0;
parent_id = -1;
type = Item::none;
file_type = WINIX_ITEM_FILETYPE_NONE;
@ -77,6 +78,11 @@ void DbItemQuery::WhereId(long id_)
}
void DbItemQuery::WhereIdIn(const std::vector<long> & id_tab_list)
{
id_tab = &id_tab_list;
}
void DbItemQuery::WhereParentId(long parent_id_)
{

@ -11,11 +11,11 @@
#define headerfile_winix_db_dbitemquery
#include <vector>
#include "core/item.h"
struct DbItemQuery
{
// id and content_id is selected always
@ -33,7 +33,7 @@ struct DbItemQuery
bool sel_file; // file_path, file_fs, file_type, has_thumb
bool sel_html_template; // template
bool where_id; //
bool where_id; //
bool where_parent_id; //
bool where_type;
bool where_file_type;
@ -46,6 +46,8 @@ struct DbItemQuery
bool file_type_equal; // if true means file_type should be equal
bool sort_asc;
const std::vector<long> * id_tab; // != 0 if WhereIdIn was used
long limit;
long offset;
@ -56,6 +58,7 @@ struct DbItemQuery
void SetAll(bool sel, bool where_);
void WhereId(long id_);
void WhereIdIn(const std::vector<long> & id_tab_list);
void WhereParentId(long parent_id_);
void WhereType(Item::Type type_, bool equal = true);
void WhereFileType(int file_t, bool equal = true);

@ -77,14 +77,7 @@ return true;
void Emacs::PostFunEmacsModifyMountPoint(bool adding)
{
if( system->mounts.pmount->type == system->mounts.MountTypeThread() && adding )
db->EditThreadAddItem(request->dir_tab.back()->id, request->item.id);
if( system->mounts.pmount->type == system->mounts.MountTypeCms() )
system->RedirectTo(request->item);
else
system->RedirectToLastDir();
system->RedirectToLastItem();
}
@ -92,8 +85,9 @@ void Emacs::PostFunEmacsModifyMountPoint(bool adding)
int Emacs::NotifyCodeEdit()
{
if( system->mounts.pmount->type == system->mounts.MountTypeThread() )
return WINIX_NOTIFY_CODE_THREAD_POST_CHANGED;
// !! nie potrzebne
// if( system->mounts.pmount->type == system->mounts.MountTypeThread() )
// return WINIX_NOTIFY_CODE_THREAD_POST_CHANGED;
return WINIX_NOTIFY_CODE_FILE_EDIT;
}
@ -103,8 +97,9 @@ return WINIX_NOTIFY_CODE_FILE_EDIT;
int Emacs::NotifyCodeAdd()
{
if( system->mounts.pmount->type == system->mounts.MountTypeThread() )
return WINIX_NOTIFY_CODE_THREAD_REPLAYED;
// !! nie potrzebne
// if( system->mounts.pmount->type == system->mounts.MountTypeThread() )
// return WINIX_NOTIFY_CODE_THREAD_REPLAYED;
return WINIX_NOTIFY_CODE_FILE_ADD;
}

@ -176,7 +176,6 @@ void Functions::CreateFunctions()
Add(fun_chown);
Add(fun_ckeditor);
Add(fun_cp);
Add(fun_createthread);
Add(fun_default);
Add(fun_download);
Add(fun_emacs);
@ -196,7 +195,6 @@ void Functions::CreateFunctions()
Add(fun_stat);
Add(fun_subject);
Add(fun_template);
Add(fun_thread);
Add(fun_tinymce);
Add(fun_uname);
Add(fun_upload);
@ -249,10 +247,12 @@ void Functions::SetDefaultFunctionForFile()
void Functions::SetDefaultFunctionForDir()
{
if( system->mounts.pmount->type == system->mounts.MountTypeThread() )
request->function = &fun_thread;
else
request->function = &fun_ls;
// !! nie potrzebne
// if( system->mounts.pmount->type == system->mounts.MountTypeThread() )
// request->function = &fun_thread;
// else
request->function = &fun_ls;
log << log3 << "Functions: default function: " << request->function->fun.url << logend;
}

@ -19,7 +19,6 @@
#include "chown.h"
#include "ckeditor.h"
#include "cp.h"
#include "createthread.h"
#include "default.h"
#include "download.h"
#include "emacs.h"
@ -38,7 +37,6 @@
#include "specialdefault.h"
#include "stat.h"
#include "subject.h"
#include "funthread.h"
#include "template.h"
#include "tinymce.h"
#include "uname.h"
@ -63,7 +61,6 @@ public:
Fun::Chown fun_chown;
Fun::Ckeditor fun_ckeditor;
Fun::Cp fun_cp;
Fun::CreateThread fun_createthread;
Fun::Default fun_default;
Fun::Download fun_download;
Fun::Emacs fun_emacs;
@ -82,7 +79,6 @@ public:
Fun::SpecialDefault fun_special_default;
Fun::Stat fun_stat;
Fun::Subject fun_subject;
Fun::FunThread fun_thread;
Fun::Template fun_template;
Fun::Tinymce fun_tinymce;
Fun::Uname fun_uname;

@ -147,7 +147,9 @@ void Rm::RemoveFileOrSymlink(Item & item)
TemplatesFunctions::pattern_cacher.DeletePattern(item);
plugin.Call(WINIX_FILE_REMOVED, item.id);
db->EditThreadRemoveItem(item.parent_id);
// !! nie potrzebne
//db->EditThreadRemoveItem(item.parent_id);
if( item.file_type != WINIX_ITEM_FILETYPE_NONE )
RemoveStaticFile(item);
@ -182,7 +184,9 @@ void Rm::RemoveDirTree(long dir_id)
if( db->DelDirById(dir_id) == WINIX_ERR_OK )
{
system->dirs.DelDir(dir_id);
db->RemoveThread(dir_id);
// !! nie potrzebne
//db->RemoveThread(dir_id);
plugin.Call(WINIX_DIR_REMOVED, dir_id);
}

@ -8,29 +8,18 @@
<legend>{form_thread_legend}</legend>
<p class="withnext">{title}:</p>
<input class="edit" type="text" name="subject" value="">
<input class="edit" type="text" name="subject" value="[item_subject]">
[# !! change names form_emacs_content_thread and form_emacs_content_ticket]
<p class="withnext">{form_emacs_content_thread}</p>
<textarea class="multitext" rows="10" cols="60" name="itemcontent"></textarea>
<p class="withnext">{form_emacs_content_type}</p>
<select name="contenttype" class="contenttype">
<option value="0">{form_emacs_content_type_text}</option>
<option selected value="1">{form_emacs_content_type_formatted_text}</option>
[if-one user_can_use_html]<option value="2">{form_emacs_content_type_html}</option>[end]
[if-one user_can_use_bbcode]<option value="3">{form_emacs_content_type_bbcode}</option>[end]
[if-one user_can_use_raw]<option value="4">{form_emacs_content_type_raw}</option>[end]
</select>
[if mount_thread_arg_is "subject"]
<p class="withnext">{suggested_url}:</p>
<input class="edit" type="text" name="url" value="[item_url]">
[end]
[include "fun_emacs_post.html"]
[if-no user_logged]
<p class="withnext">{nick}:</p>
<input class="edit" type="text" name="guestname" value="">
<input class="edit" type="text" name="guestname" value="[item_guest_name]">
<p class="withnext">{rebus_how_is_it} [rebus_question]?</p>
<input class="edit" type="text" name="rebus">
@ -39,3 +28,4 @@
<input class="submit" type="submit" value="{button_thread_submit}">
</fieldset>
</form>

@ -15,14 +15,6 @@
<input class="edit" type="text" name="url" value="[item_url]">
[end]
[if-any mount_type_is "thread" mount_thread_arg_is "subject"]
<p class="withnext">{title}:</p>
<input class="edit" type="text" name="subject" value="[item_subject]">
<p class="withnext">{suggested_url}:</p>
<input class="edit" type="text" name="url" value="[item_url]">
[end]
[include "fun_emacs_post.html"]
[if-no user_logged]

@ -0,0 +1,46 @@
<h1>{thread_header_reply}</h1>
[include "error.html"]
<form id="additem" method="post" action="[doc_base_url][dir][item_url]/reply">
<fieldset>
<legend>{form_thread_reply}</legend>
[if mount_thread_arg_is "subject"]
<p class="withnext">{title}:</p>
<input class="edit" type="text" name="subject" value="">
<p class="withnext">{suggested_url}:</p>
<input class="edit" type="text" name="url" value="">
[end]
[if mount_type_is "thread"]<p class="withnext">{form_emacs_content_thread}</p>[end]
<textarea class="multitext" rows="10" cols="60" name="itemcontent"></textarea>
<p class="withnext">{form_emacs_content_type}</p>
<select name="contenttype" class="contenttype">
<option value="0">{form_emacs_content_type_text}</option>
<option selected value="1">{form_emacs_content_type_formatted_text}</option>
[if user_can_use_html]<option value="2">{form_emacs_content_type_html}</option>[end]
[if user_can_use_bbcode]<option value="3">{form_emacs_content_type_bbcode}</option>[end]
[if user_can_use_raw]<option value="4">{form_emacs_content_type_raw}</option>[end]
</select>
[if-no user_logged]
<p class="withnext">{nick}:</p>
<input class="edit" type="text" name="guestname" value="">
<p class="withnext">{rebus_how_is_it} [rebus_question]?</p>
<input class="edit" type="text" name="rebus">
[end]
<input class="submit" type="submit" value="{add}">
</fieldset>
</form>

@ -0,0 +1,27 @@
[if mount_page_arg_is "subject"]<h1[if mount_page_arg_is "info"] class="withinfo"[end]>[dir_last_subject]</h1>[end]
[if mount_page_arg_is "info"][include "dir_last_info.html"][end]
[if thread_can_create]
<ul class="itemmenu">
<li><a href="[doc_base_url][dir]createthread">{thread_create_new}</a></li>
</ul>
[end]
[if thread_sort_tab]
<table class="forum">
<tr><th>{thread_tab_title}</th><th>{thread_tab_author}</th><th>{thread_tab_replies}</th><th>{thread_tab_last_post}</th></tr>
[for thread_sort_tab]
<tr>
<td><a href="[doc_base_url][dir][thread_sort_tab_url]">[thread_sort_tab_subject]</a></td> [# dodac sprawdzanie subject empty]
<td class="smallfont">[thread_sort_tab_user]</td><td class="smallfont">[thread_sort_tab_replies]</td>
<td class="smallfont">[thread_sort_tab_last_item_date_modification_nice] ([thread_sort_tab_last_item_user])</td>
</tr>
[end]
</table>
[end]

@ -2,7 +2,7 @@
[if mount_page_arg_is "info"][include "dir_last_info.html"][end]
[if-one ticket_can_create]
[if ticket_can_create]
<ul class="itemmenu">
<li><a href="[doc_base_url][dir]createticket">{ticket_create_new}</a></li>
</ul>
@ -17,6 +17,12 @@
[for ticket_tab]
<th>[ticket_tab_param]</th>
[end]
[if winix_has_plugin "thread"]
<th>{thread_tab_author}</th>
<th>{thread_tab_replies}</th>
<th>{thread_tab_last_post}</th>
[end]
</tr>
[for tickets_tab]
@ -29,6 +35,13 @@
<td>[tickets_tab_conf_tab_value]</td>
[end]
[end]
[if winix_has_plugin "thread"]
<td>[thread_sort_tab_user]</td>
<td>[if thread_sort_tab_has_thread][thread_sort_tab_replies][end]</td>
<td>[if thread_sort_tab_has_thread][thread_sort_tab_last_item_date_modification_nice] ([thread_sort_tab_last_item_user])[end]</td>
[end]
</tr>
[end]

@ -1,43 +1,29 @@
[if mount_page_arg_is "subject"]<h1[if mount_page_arg_is "info"] class="withinfo"[end]>[dir_last_subject]</h1>[end]
[if mount_page_arg_is "info"][include "dir_last_info.html"][end]
[if mount_page_arg_is "subject"]<h1[if mount_page_arg_is "info"] class="withinfo"[end]>[item_subject]</h1>[end]
[if mount_page_arg_is "info"][include "item_info.html"][end]
[if-one thread_can_create]
[if thread_can_reply]
<ul class="itemmenu">
[if-one thread_can_create]<li><a href="[doc_base_url][dir]createthread">{thread_create_new}</a></li>[end]
<li><a href="[doc_base_url][dir][item_url]/reply">{thread_reply_in_this_thread}</a></li>
</ul>
[end]
[if-one thread_tab]
<table class="forum">
<tr><th>{thread_tab_title}</th><th>{thread_tab_author}</th><th>{thread_tab_replies}</th><th>{thread_tab_last_post}</th></tr>
[for thread_tab]
<tr>
<td><a href="[doc_base_url][dir][thread_tab_url]">[thread_tab_subject]</a></td>
<td class="smallfont">[thread_tab_author]</td><td class="smallfont">[thread_tab_answers]</td>
<td class="smallfont">[thread_tab_last_item_date_modification_nice] ([thread_tab_last_item_user])</td>
</tr>
[end]
</table>
[end]
<div class="threadbox">
[if item_can_write]<a class="threadedit" href="[item_link]/emacs">\[{edit}\]</a>[end]
[if mount_thread_arg_is "subject"]<h2[if mount_thread_arg_is "info"] class="withinfo"[end]>[item_subject]</h2>[end]
[if mount_thread_arg_is "info"][include "item_info.html"][end]
[item_print_content]
</div>
[if-one thread_is]
[if-one dir_can_use_emacs]
<ul class="itemmenu">
<li><a href="[doc_base_url][dir]emacs">{thread_reply_in_this_thread}</a></li>
</ul>
[end]
[for item_tab]
<div class="threadbox[if-index item_tab odd] threadboxcolor[end]">
[if-one item_tab_can_use_emacs]<a class="threadedit" href="[item_tab_link]/emacs">\[{edit}\]</a>[end]
[if mount_thread_arg_is "subject"]<h2[if mount_thread_arg_is "info"] class="withinfo"[end]>[item_tab_subject]</h2>[end]
[if mount_thread_arg_is "info"][include "item_tab_info.html"][end]
[item_tab_print_content]
</div>
[end]
[for thread_sort_tab]
<div class="threadbox[if-index even] threadboxcolor[end]">
[if thread_sort_tab_can_write]<a class="threadedit" href="[thread_sort_tab_link]/emacs">\[{edit}\]</a>[end]
[if mount_thread_arg_is "subject"]<h2[if mount_thread_arg_is "info"] class="withinfo"[end]>[thread_sort_tab_subject]</h2>[end]
[if mount_thread_arg_is "info"][include "thread_sort_tab_info.html"][end]
[thread_sort_tab_print_content]
</div>
[end]

@ -35,18 +35,22 @@
[item_print_content]
</div>
[if-one dir_can_use_emacs]
[if thread_can_reply]
<ul class="itemmenu">
<li><a href="[doc_base_url][dir]emacs">{ticket_reply_in_this_thread}</a></li>
<li><a href="[doc_base_url][dir][item_url]/reply">{thread_reply_in_this_thread}</a></li>
</ul>
[end]
[for item_tab]
<div class="threadbox[if-index item_tab odd] threadboxcolor[end]">
[if mount_thread_arg_is "subject"]<h2[if mount_thread_arg_is "info"] class="withinfo"[end]>[item_tab_subject]</h2>[end]
[if mount_thread_arg_is "info"][include "item_tab_info.html"][end]
[item_tab_print_content]
[for thread_sort_tab]
<div class="threadbox[if-index even] threadboxcolor[end]">
[if thread_sort_tab_can_write]<a class="threadedit" href="[thread_sort_tab_link]/emacs">\[{edit}\]</a>[end]
[if mount_thread_arg_is "subject"]<h2[if mount_thread_arg_is "info"] class="withinfo"[end]>[thread_sort_tab_subject]</h2>[end]
[if mount_thread_arg_is "info"][include "thread_sort_tab_info.html"][end]
[thread_sort_tab_print_content]
</div>
[end]

@ -1,4 +1,4 @@
<p class="[if-index item_tab odd]itemtabinfo[else][if mount_thread_arg_is "subject"]itemtabinfo[else]itemtabinfo2[end][end]">
<p class="[if-index odd]itemtabinfo[else][if mount_thread_arg_is "subject"]itemtabinfo[else]itemtabinfo2[end][end]">
{added_by}: [item_tab_user], [item_tab_date_creation_nice][if-no item_tab_dates_equal],
{last_modified}[if-one item_tab_users_different] {by}: [item_tab_modification_user],[else]:[end]

@ -0,0 +1,8 @@
<p class="[if-index odd]itemtabinfo[else][if mount_thread_arg_is "subject"]itemtabinfo[else]itemtabinfo2[end][end]">
{added_by}: [thread_sort_tab_user], [thread_sort_tab_date_creation_nice][if-no thread_sort_tab_dates_equal],
{last_modified}[if thread_sort_tab_users_different] {by}: [thread_sort_tab_modification_user],[else]:[end]
[thread_sort_tab_date_modification_nice]
[end]
</p>

@ -150,6 +150,9 @@ thread_tab_author = Author
thread_tab_replies = Rep.
thread_tab_last_post = Last post
thread_reply_in_this_thread = Reply in this thread
form_thread_reply = Reply form
thread_header_reply = Reply
ticket_progress_image_path = ticket_progress
ticket_create_new = Create a new ticket
@ -291,7 +294,7 @@ winix_err_default = An error occured, error code:
# those errors are taken automatically by [winix_err_msg_from_locales]
winix_err_3 = Incorrect directory.
winix_err_18 = You are suspected to be a spammer,<br>you cannot send anything without logging first.
winix_err_18 = You are suspected to be a spammer, you cannot send anything without logging first.
winix_err_19 = Solve the rebus please!
winix_err_25 = Passwords are different!

@ -150,6 +150,8 @@ thread_tab_author = Autor
thread_tab_replies = Odp.
thread_tab_last_post = Ostatni post
thread_reply_in_this_thread = Odpowiedz w tym wątku
form_thread_reply = Formularz odpowiedzi w wątku
thread_header_reply = Odpowiedz w wątku
ticket_progress_image_path = ticket_progress
ticket_create_new = Załóż nowe zgłoszenie
@ -294,7 +296,7 @@ winix_err_default = Wystąpiły problemy z tą operacją, kod błędu:
# those errors are taken automatically by [winix_err_msg_from_locales]
winix_err_3 = Nieprawidłowy katalog.
winix_err_18 = Jesteś podejrzany jako spamer,<br> nie możesz nic wysłać do czasu zalogowania się!
winix_err_18 = Jesteś podejrzany jako spamer, nie możesz nic wysłać do czasu zalogowania się!
winix_err_19 = Proszę rozwiązać rebus!
winix_err_25 = Podane hasła różnią się od siebie!

@ -127,7 +127,7 @@ void SessionCreated(PluginInfo & info)
if( !info.request->IsParam(nostat_param) )
{
log << log3 << "created stats plugin data"
log << log4 << "Stats: created stats plugin data"
<< ", plugin id: " << info.plugin_id
<< ", pointer: " << d << logend;
}
@ -146,16 +146,14 @@ void RemoveSession(PluginInfo & info)
}
/*
//StatsSession * d = reinterpret_cast<StatsSession*>(info.plugin_data_base);
StatsSession * d = reinterpret_cast<StatsSession*>(info.plugin_data_base);
if( !d->nostat )
{
log << log3 << "deleting stats plugin data"
log << log4 << "Stats: deleting stats plugin data"
<< ", plugin id: " << info.plugin_id
<< ", pointer: " << info.plugin_data_base << logend;
}
*/
delete info.plugin_data_base;
}

@ -1,374 +1,294 @@
# DO NOT DELETE
createticket.o: createticket.h tdb.h ticket.h ../../db/dbbase.h
createticket.o: ../../db/dbconn.h ../../db/dbtextstream.h
createticket.o: ../../core/textstream.h ../../core/misc.h ../../core/item.h
createticket.o: ../../core/error.h ../../core/log.h ../../core/textstream.h
createticket.o: ../../functions/functionbase.h ../../core/item.h
createticket.o: ../../db/db.h ../../db/dbbase.h ../../db/dbitemquery.h
createticket.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
createticket.o: ../../core/thread.h ../../core/dircontainer.h
createticket.o: ../../core/ugcontainer.h ../../core/request.h
createticket.o: ../../core/requesttypes.h ../../core/session.h
createticket.o: ../../core/error.h ../../core/user.h ../../core/plugindata.h
createticket.o: ../../core/rebus.h ../../core/config.h
createticket.o: ../../core/confparser.h ../../core/htmlfilter.h
createticket.o: ../../templates/htmltextstream.h ../../core/config.h
createticket.o: ../../core/system.h ../../core/dirs.h
createticket.o: ../../core/dircontainer.h ../../core/request.h
createticket.o: ../../notify/notify.h ../../notify/notifypool.h
createticket.o: ../../templates/locale.h ../../core/confparser.h
createticket.o: ../../templates/misc.h ../../templates/localefilter.h
createticket.o: ../../templates/locale.h ../../../ezc/src/ezc.h
createticket.o: ../../../ezc/src/utf8.h ../../../ezc/src/generator.h
createticket.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
createticket.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
createticket.o: ../../templates/htmltextstream.h ../../notify/notifythread.h
createticket.o: ../../core/basethread.h ../../core/synchro.h
createticket.o: ../../notify/templatesnotify.h ../../core/users.h
createticket.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
createticket.o: ../../core/mounts.h ../../core/mount.h
createticket.o: ../../core/mountparser.h ../../core/users.h
createticket.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h
createticket.o: ../../core/thumb.h ../../core/basethread.h
createticket.o: ../../core/synchro.h ticketinfo.h ticketparser.h ticketconf.h
createticket.o: ../../functions/functions.h ../../functions/functionbase.h
createticket.o: ../../functions/functionparser.h ../../functions/adduser.h
createticket.o: ../../functions/cat.h ../../functions/chmod.h
createticket.o: ../../functions/privchanger.h ../../functions/chown.h
createticket.o: ../../functions/ckeditor.h ../../functions/cp.h
createticket.o: ../../functions/createthread.h ../../functions/default.h
createticket.o: ../../functions/download.h ../../functions/emacs.h
createticket.o: ../../functions/last.h ../../functions/login.h
createticket.o: ../../functions/logout.h ../../functions/ln.h
createticket.o: ../../functions/ls.h ../../functions/mkdir.h
createticket.o: ../../functions/mv.h ../../functions/node.h
createticket.o: ../../functions/priv.h ../../functions/reload.h
createticket.o: ../../functions/rm.h ../../functions/run.h
createticket.o: ../../functions/specialdefault.h ../../functions/stat.h
createticket.o: ../../functions/subject.h ../../functions/funthread.h
createticket.o: ../../functions/template.h ../../functions/tinymce.h
createticket.o: ../../functions/uname.h ../../functions/upload.h
createticket.o: ../../functions/uptime.h ../../functions/who.h
createticket.o: ../../functions/vim.h ../../core/htmlfilter.h sessiondata.h
createticket.o: ../../core/plugindata.h
editticket.o: editticket.h tdb.h ticket.h ../../db/dbbase.h ../../db/dbconn.h
editticket.o: ../../db/dbtextstream.h ../../core/textstream.h
editticket.o: ../../core/misc.h ../../core/item.h ../../core/error.h
editticket.o: ../../core/log.h ../../core/textstream.h ticketinfo.h
editticket.o: ticketparser.h ticketconf.h ../../core/item.h
editticket.o: ../../core/system.h ../../core/dirs.h ../../core/dircontainer.h
editticket.o: ../../db/db.h ../../db/dbbase.h ../../db/dbitemquery.h
editticket.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
editticket.o: ../../core/thread.h ../../core/dircontainer.h
editticket.o: ../../core/ugcontainer.h ../../core/request.h
editticket.o: ../../notify/notify.h ../../notify/notifypool.h
editticket.o: ../../templates/locale.h ../../core/confparser.h
editticket.o: ../../templates/misc.h ../../templates/localefilter.h
editticket.o: ../../templates/locale.h ../../../ezc/src/ezc.h
editticket.o: ../../../ezc/src/utf8.h ../../../ezc/src/generator.h
editticket.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
editticket.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
editticket.o: ../../templates/htmltextstream.h ../../notify/notifythread.h
editticket.o: ../../core/basethread.h ../../core/synchro.h
editticket.o: ../../notify/templatesnotify.h ../../core/config.h
editticket.o: ../../core/users.h ../../core/user.h ../../core/ugcontainer.h
editticket.o: ../../core/lastcontainer.h ../../core/mounts.h
editticket.o: ../../core/mount.h ../../core/error.h ../../core/mountparser.h
editticket.o: ../../core/config.h ../../core/confparser.h
editticket.o: ../../core/htmlfilter.h ../../core/users.h ../../core/groups.h
editticket.o: ../../core/group.h ../../core/rebus.h ../../core/loadavg.h
editticket.o: ../../core/thumb.h ../../core/basethread.h
editticket.o: ../../functions/functions.h ../../functions/functionbase.h
editticket.o: ../../functions/functionparser.h ../../core/request.h
editticket.o: ../../core/requesttypes.h ../../core/session.h
editticket.o: ../../core/plugindata.h ../../templates/htmltextstream.h
editticket.o: ../../functions/adduser.h ../../functions/cat.h
editticket.o: ../../functions/chmod.h ../../functions/privchanger.h
editticket.o: ../../functions/chown.h ../../functions/ckeditor.h
editticket.o: ../../functions/cp.h ../../functions/createthread.h
editticket.o: ../../functions/default.h ../../functions/download.h
editticket.o: ../../functions/emacs.h ../../functions/last.h
editticket.o: ../../functions/login.h ../../functions/logout.h
editticket.o: ../../functions/ln.h ../../functions/ls.h
editticket.o: ../../functions/mkdir.h ../../functions/mv.h
editticket.o: ../../functions/node.h ../../functions/priv.h
editticket.o: ../../functions/reload.h ../../functions/rm.h
editticket.o: ../../functions/run.h ../../functions/specialdefault.h
editticket.o: ../../functions/stat.h ../../functions/subject.h
editticket.o: ../../functions/funthread.h ../../functions/template.h
editticket.o: ../../functions/tinymce.h ../../functions/uname.h
editticket.o: ../../functions/upload.h ../../functions/uptime.h
editticket.o: ../../functions/who.h ../../functions/vim.h
editticket.o: ../../core/htmlfilter.h ../../functions/functionbase.h
editticket.o: ../../core/synchro.h sessiondata.h ../../core/plugindata.h
funticket.o: funticket.h tdb.h ticket.h ../../db/dbbase.h ../../db/dbconn.h
funticket.o: ../../db/dbtextstream.h ../../core/textstream.h
funticket.o: ../../core/misc.h ../../core/item.h ../../core/error.h
funticket.o: ../../core/log.h ../../core/textstream.h ticketinfo.h
funticket.o: ticketparser.h ticketconf.h ../../core/item.h
funticket.o: ../../core/system.h ../../core/dirs.h ../../core/dircontainer.h
funticket.o: ../../db/db.h ../../db/dbbase.h ../../db/dbitemquery.h
funticket.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
funticket.o: ../../core/thread.h ../../core/dircontainer.h
funticket.o: ../../core/ugcontainer.h ../../core/request.h
funticket.o: ../../notify/notify.h ../../notify/notifypool.h
funticket.o: ../../templates/locale.h ../../core/confparser.h
funticket.o: ../../templates/misc.h ../../templates/localefilter.h
funticket.o: ../../templates/locale.h ../../../ezc/src/ezc.h
funticket.o: ../../../ezc/src/utf8.h ../../../ezc/src/generator.h
funticket.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
funticket.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
funticket.o: ../../templates/htmltextstream.h ../../notify/notifythread.h
funticket.o: ../../core/basethread.h ../../core/synchro.h
funticket.o: ../../notify/templatesnotify.h ../../core/config.h
funticket.o: ../../core/users.h ../../core/user.h ../../core/ugcontainer.h
funticket.o: ../../core/lastcontainer.h ../../core/mounts.h
funticket.o: ../../core/mount.h ../../core/error.h ../../core/mountparser.h
funticket.o: ../../core/config.h ../../core/confparser.h
funticket.o: ../../core/htmlfilter.h ../../core/users.h ../../core/groups.h
funticket.o: ../../core/group.h ../../core/rebus.h ../../core/loadavg.h
funticket.o: ../../core/thumb.h ../../core/basethread.h
funticket.o: ../../functions/functions.h ../../functions/functionbase.h
funticket.o: ../../functions/functionparser.h ../../core/request.h
funticket.o: ../../core/requesttypes.h ../../core/session.h
funticket.o: ../../core/plugindata.h ../../templates/htmltextstream.h
funticket.o: ../../functions/adduser.h ../../functions/cat.h
funticket.o: ../../functions/chmod.h ../../functions/privchanger.h
funticket.o: ../../functions/chown.h ../../functions/ckeditor.h
funticket.o: ../../functions/cp.h ../../functions/createthread.h
funticket.o: ../../functions/default.h ../../functions/download.h
funticket.o: ../../functions/emacs.h ../../functions/last.h
funticket.o: ../../functions/login.h ../../functions/logout.h
funticket.o: ../../functions/ln.h ../../functions/ls.h
funticket.o: ../../functions/mkdir.h ../../functions/mv.h
funticket.o: ../../functions/node.h ../../functions/priv.h
funticket.o: ../../functions/reload.h ../../functions/rm.h
funticket.o: ../../functions/run.h ../../functions/specialdefault.h
funticket.o: ../../functions/stat.h ../../functions/subject.h
funticket.o: ../../functions/funthread.h ../../functions/template.h
funticket.o: ../../functions/tinymce.h ../../functions/uname.h
funticket.o: ../../functions/upload.h ../../functions/uptime.h
funticket.o: ../../functions/who.h ../../functions/vim.h
funticket.o: ../../core/htmlfilter.h ../../functions/functionbase.h
funticket.o: ../../core/synchro.h
init.o: tdb.h ticket.h ../../db/dbbase.h ../../db/dbconn.h
createthread.o: createthread.h ../../functions/functionbase.h
createthread.o: ../../core/item.h ../../db/db.h ../../db/dbbase.h
createthread.o: ../../db/dbconn.h ../../db/dbtextstream.h
createthread.o: ../../core/textstream.h ../../core/misc.h ../../core/item.h
createthread.o: ../../core/error.h ../../core/log.h ../../core/textstream.h
createthread.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h
createthread.o: ../../core/user.h ../../core/group.h
createthread.o: ../../core/dircontainer.h ../../core/ugcontainer.h
createthread.o: ../../core/request.h ../../core/requesttypes.h
createthread.o: ../../core/session.h ../../core/error.h ../../core/user.h
createthread.o: ../../core/plugindata.h ../../core/rebus.h
createthread.o: ../../core/config.h ../../core/confparser.h
createthread.o: ../../core/htmlfilter.h ../../templates/htmltextstream.h
createthread.o: ../../core/config.h ../../core/system.h ../../core/dirs.h
createthread.o: ../../core/dircontainer.h ../../core/request.h
createthread.o: ../../notify/notify.h ../../notify/notifypool.h
createthread.o: ../../templates/locale.h ../../core/confparser.h
createthread.o: ../../templates/misc.h ../../templates/localefilter.h
createthread.o: ../../templates/locale.h ../../../ezc/src/ezc.h
createthread.o: ../../../ezc/src/utf8.h ../../../ezc/src/generator.h
createthread.o: ../../../ezc/src/pattern.h ../../../ezc/src/functions.h
createthread.o: ../../../ezc/src/funinfo.h ../../../ezc/src/stringconv.h
createthread.o: ../../templates/htmltextstream.h ../../notify/notifythread.h
createthread.o: ../../core/basethread.h ../../core/synchro.h
createthread.o: ../../notify/templatesnotify.h ../../core/users.h
createthread.o: ../../core/ugcontainer.h ../../core/lastcontainer.h
createthread.o: ../../core/mounts.h ../../core/mount.h
createthread.o: ../../core/mountparser.h ../../core/users.h
createthread.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h
createthread.o: ../../core/thumb.h ../../core/basethread.h
createthread.o: ../../core/synchro.h tdb.h thread.h ../../db/dbbase.h
createthread.o: threadinfo.h ../../functions/functions.h
createthread.o: ../../functions/functionbase.h
createthread.o: ../../functions/functionparser.h ../../functions/adduser.h
createthread.o: ../../functions/cat.h ../../functions/chmod.h
createthread.o: ../../functions/privchanger.h ../../functions/chown.h
createthread.o: ../../functions/ckeditor.h ../../functions/cp.h
createthread.o: ../../functions/default.h ../../functions/download.h
createthread.o: ../../functions/emacs.h ../../functions/last.h
createthread.o: ../../functions/login.h ../../functions/logout.h
createthread.o: ../../functions/ln.h ../../functions/ls.h
createthread.o: ../../functions/mkdir.h ../../functions/mv.h
createthread.o: ../../functions/node.h ../../functions/priv.h
createthread.o: ../../functions/reload.h ../../functions/rm.h
createthread.o: ../../functions/run.h ../../functions/specialdefault.h
createthread.o: ../../functions/stat.h ../../functions/subject.h
createthread.o: ../../functions/template.h ../../functions/tinymce.h
createthread.o: ../../functions/uname.h ../../functions/upload.h
createthread.o: ../../functions/uptime.h ../../functions/who.h
createthread.o: ../../functions/vim.h ../../core/htmlfilter.h
funthread.o: ../../core/misc.h ../../core/item.h funthread.h
funthread.o: ../../functions/functionbase.h ../../core/item.h ../../db/db.h
funthread.o: ../../db/dbbase.h ../../db/dbconn.h ../../db/dbtextstream.h
funthread.o: ../../core/textstream.h ../../core/misc.h ../../core/error.h
funthread.o: ../../core/log.h ../../core/textstream.h ../../db/dbitemquery.h
funthread.o: ../../db/dbitemcolumns.h ../../core/user.h ../../core/group.h
funthread.o: ../../core/dircontainer.h ../../core/ugcontainer.h
funthread.o: ../../core/request.h ../../core/requesttypes.h
funthread.o: ../../core/session.h ../../core/error.h ../../core/user.h
funthread.o: ../../core/plugindata.h ../../core/rebus.h ../../core/config.h
funthread.o: ../../core/confparser.h ../../core/htmlfilter.h
funthread.o: ../../templates/htmltextstream.h ../../core/config.h
funthread.o: ../../core/system.h ../../core/dirs.h ../../core/dircontainer.h
funthread.o: ../../core/request.h ../../notify/notify.h
funthread.o: ../../notify/notifypool.h ../../templates/locale.h
funthread.o: ../../core/confparser.h ../../templates/misc.h
funthread.o: ../../templates/localefilter.h ../../templates/locale.h
funthread.o: ../../../ezc/src/ezc.h ../../../ezc/src/utf8.h
funthread.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
funthread.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
funthread.o: ../../../ezc/src/stringconv.h ../../templates/htmltextstream.h
funthread.o: ../../notify/notifythread.h ../../core/basethread.h
funthread.o: ../../core/synchro.h ../../notify/templatesnotify.h
funthread.o: ../../core/users.h ../../core/ugcontainer.h
funthread.o: ../../core/lastcontainer.h ../../core/mounts.h
funthread.o: ../../core/mount.h ../../core/mountparser.h ../../core/users.h
funthread.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h
funthread.o: ../../core/thumb.h ../../core/basethread.h ../../core/synchro.h
funthread.o: tdb.h thread.h ../../db/dbbase.h threadinfo.h
init.o: tdb.h thread.h ../../db/dbbase.h ../../core/error.h ../../core/log.h
init.o: ../../core/textstream.h reply.h ../../functions/functionbase.h
init.o: ../../core/item.h ../../db/db.h ../../db/dbbase.h ../../db/dbconn.h
init.o: ../../db/dbtextstream.h ../../core/textstream.h ../../core/misc.h
init.o: ../../core/item.h ../../core/error.h ../../core/log.h
init.o: ../../core/textstream.h funticket.h ticketinfo.h ticketparser.h
init.o: ticketconf.h ../../core/item.h ../../core/system.h ../../core/dirs.h
init.o: ../../core/dircontainer.h ../../db/db.h ../../db/dbbase.h
init.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h ../../core/user.h
init.o: ../../core/group.h ../../core/thread.h ../../core/dircontainer.h
init.o: ../../core/ugcontainer.h ../../core/request.h ../../notify/notify.h
init.o: ../../notify/notifypool.h ../../templates/locale.h
init.o: ../../core/confparser.h ../../templates/misc.h
init.o: ../../templates/localefilter.h ../../templates/locale.h
init.o: ../../../ezc/src/ezc.h ../../../ezc/src/utf8.h
init.o: ../../../ezc/src/generator.h ../../../ezc/src/pattern.h
init.o: ../../../ezc/src/functions.h ../../../ezc/src/funinfo.h
init.o: ../../../ezc/src/stringconv.h ../../templates/htmltextstream.h
init.o: ../../notify/notifythread.h ../../core/basethread.h
init.o: