winix/templates/misc.cpp

118 lines
2.2 KiB
C++
Executable File

/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2010, Tomasz Sowa
* All rights reserved.
*
*/
#include "templates.h"
#include "misc.h"
#include "core/misc.h"
#include "core/request.h"
namespace TemplatesFunctions
{
void print_date_nice(Ezc::Info & i, const tm & rtm)
{
time_t t = Time(rtm);
time_t now = std::time(0);
time_t one_day = 60 * 60 * 24;
tm ltm = system->LocalTime(rtm);
if( t + one_day > now )
i.out << DateToStr(ltm.tm_year + 1900, ltm.tm_mon + 1, ltm.tm_mday, ltm.tm_hour, ltm.tm_min, ltm.tm_sec);
else
i.out << DateToStr(ltm.tm_year + 1900, ltm.tm_mon + 1, ltm.tm_mday);
}
void print_user_name(Ezc::Info & i, const User * puser, const std::string & guest_name)
{
if( puser )
{
HtmlEscape(i.out, puser->name);
}
else
{
i.out << "~";
if( !guest_name.empty() )
HtmlEscape(i.out, guest_name);
else
i.out << "guest"; // !! dodac do konfiga
}
}
int ParseCKeditorFun()
{
ckeditor_getparser.fun_num = 2; // default if there is a problem with parsing info
if( !request->get_tab.empty() )
{
size_t last = request->get_tab.size()-1;
if( !request->get_tab[last].empty() )
{
const char * str = request->get_tab[last].c_str() + 1; // the first char is '?'
ckeditor_getparser.Parse(str);
}
}
return ckeditor_getparser.fun_num;
}
// those functions from here are used in the second thread too
void Read(Patterns & patterns, size_t pat, Locale & locale, LocaleFilter & locale_filter, const char * file, bool delete_white)
{
size_t i;
size_t len = patterns.size();
for(i=0 ; i<len ; ++i)
{
if( pat < patterns[i].size() )
{
patterns[i][pat].DeleteWhiteTextItems(delete_white);
patterns[i][pat].Directory(config->templates_dir, config->templates_dir_default);
patterns[i][pat].ParseFile(file);
locale_filter.Filter(patterns[i][pat], locale, static_cast<Locale::Lang>(i));
}
}
}
void ClearPatterns(Patterns & patterns, size_t len)
{
size_t loc, pat;
patterns.resize(Locale::lang_unknown);
for(loc=0 ; loc < static_cast<size_t>(Locale::lang_unknown) ; ++loc)
{
patterns[loc].resize(len);
for(pat=0 ; pat<len ; ++pat)
patterns[loc][pat].Clear();
}
}
} // namespace TemplatesFunctions