winix/templatesnotify/templatesnotify.h

89 lines
1.6 KiB
C++
Executable File

/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2008-2010, Tomasz Sowa
* All rights reserved.
*
*/
#ifndef headerfilecmslutemplatestemplatesnotify
#define headerfilecmslutemplatestemplatesnotify
#include <iomanip>
#include <set>
#include <string>
#include "../core/mount.h"
#include "../core/locale.h"
#include "../templates/misc.h"
#include "ezc.h"
struct NotifyMsg
{
std::string email;
int notify_code;
Mount::Type current_mount_type;
Locale::Lang lang;
std::string doc_base_url;
std::string item_dir;
std::string item_link;
};
namespace TemplatesNotifyFunctions
{
using Ezc::Info;
enum Pat {
pat_email_notify = 0, // first should be zero
pat_last // should be last
};
typedef std::vector<std::vector<Ezc::Pattern> > Patterns;
extern Patterns patterns;
extern NotifyMsg * notify_msg;
void notify_item_added(Info & i);
void notify_item_edited(Info & i);
void notify_item_deleted(Info & i);
void notify_dir_added(Info & i);
void notify_to(Info & i);
void notify_mount_type_is_thread(Info & i);
void notify_mount_type_is_cms(Info & i);
void notify_doc_base_url(Info & i);
void notify_item_dir(Info & i);
void notify_item_link(Info & i);
} // namespace TemplatesNotifyFunctions
class TemplatesNotify
{
public:
TemplatesNotify();
void Read();
void CreateFunctions();
void Generate(Locale::Lang lang);
std::ostringstream notify_str;
private:
void Read(TemplatesNotifyFunctions::Pat pat, const std::string & dir, const char * file);
void Read(TemplatesNotifyFunctions::Pat pat, const char * file);
void ClearPatterns();
std::string temp;
};
#endif