winix/functions/functions.h

153 lines
3.1 KiB
C++
Executable File

/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2010, Tomasz Sowa
* All rights reserved.
*
*/
#ifndef headerfilecmslucontentfunctions
#define headerfilecmslucontentfunctions
#include <string>
#include "functionbase.h"
#include "functionparser.h"
#include "adduser.h"
#include "cat.h"
#include "chmod.h"
#include "chown.h"
#include "ckeditor.h"
#include "cp.h"
#include "createthread.h"
#include "default.h"
#include "download.h"
#include "emacs.h"
#include "last.h"
#include "login.h"
#include "logout.h"
#include "ls.h"
#include "mkdir.h"
#include "mv.h"
#include "node.h"
#include "priv.h"
#include "reload.h"
#include "rm.h"
#include "run.h"
#include "subject.h"
#include "funthread.h"
#include "template.h"
#include "tinymce.h"
#include "uname.h"
#include "upload.h"
#include "uptime.h"
#include "who.h"
#include "core/htmlfilter.h"
class Templates;
class Functions
{
public:
Fun::AddUser fun_adduser;
Fun::Cat fun_cat;
Fun::Chmod fun_chmod;
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;
Fun::Last fun_last;
Fun::Login fun_login;
Fun::Logout fun_logout;
Fun::Ls fun_ls;
Fun::Mkdir fun_mkdir;
Fun::Mv fun_mv;
Fun::Node fun_node;
Fun::Priv fun_priv;
Fun::Reload fun_reload;
Fun::Rm fun_rm;
Fun::Run fun_run;
Fun::Subject fun_subject;
Fun::FunThread fun_thread;
Fun::Template fun_template;
Fun::Tinymce fun_tinymce;
Fun::Uname fun_uname;
Fun::Upload fun_upload;
Fun::Uptime fun_uptime;
Fun::Who fun_who;
typedef std::map<std::string, FunctionBase*> Table;
typedef Table::iterator Iterator;
void Create();
void Parse();
size_t FunctionsSize();
Iterator Begin();
Iterator End();
void MakeGet();
void MakePost();
void SetConfig(Config * pconfig);
void SetRequest(Request * prequest);
void SetDb(Db * pdb);
void SetSystem(System * psystem);
void SetTemplates(Templates * ptemplates);
void SetNotify(Notify * pnotify);
FunctionBase * Find(const std::string & function_name);
Error CheckSpecialFile(const Item & item);
void PrepareUrl(Item & item);
void SetDefaultFunction();
void CheckGetPostTimes(time_t difference = 10);
// !! dac lepsze nazwy
void ReadItemFilterHtml(Item & item);
void ReadItemContent(Item & item, const std::string & content_type);
void ReadItemContentWithType(Item & item);
// if item.url is not empty and there is not a post variable "url"
// then the item.url will not be changed
// (the same is for item.subject and "subject" post variable)
void ReadItem(Item & item, Item::Type item_type);
void SetUser(Item & item);
void Add(FunctionBase * fun);
void Add(FunctionBase & fun);
private:
Config * config;
Request * request;
Db * db;
System * system;
Templates * templates;
Notify * notify;
std::string temp;
HTMLFilter html_filter;
void SetObjects(FunctionBase * fun);
void SetDefaultFunctionForFile();
void SetDefaultFunctionForDir();
void ReadItemUrlSubject(Item & item, Item::Type item_type);
Table table;
FunctionParser function_parser;
};
#endif