winix/templates/doc.cpp

102 lines
1.3 KiB
C++
Executable File

/*
* This file is a part of CMSLU -- Content Management System like Unix
* and is not publicly distributed
*
* Copyright (c) 2008-2009, Tomasz Sowa
* All rights reserved.
*
*/
#include "templates.h"
#include "../core/data.h"
#include "../core/request.h"
#include "../core/misc.h"
namespace TemplatesFunctions
{
void doc_title(Info & i)
{
size_t a;
bool was_dir = false;
// from 1 means skipping the root directory
for(a = 1 ; a<request.dir_table.size() ; ++a)
{
HtmlEscape(i.out, request.dir_table[a]->subject);
was_dir = true;
if( a < request.dir_table.size()-1 )
i.out << data.title_separator;
}
if( request.is_item )
{
if( was_dir )
i.out << data.title_separator;
HtmlEscape(i.out, request.item.subject);
}
}
void doc_base_url(Info & i)
{
i.out << data.base_url;
}
void doc_base_url_auth(Info & i)
{
i.out << data.base_url_auth;
}
void doc_base_url_static(Info & i)
{
i.out << data.base_url_static;
}
void doc_base_url_common(Info & i)
{
i.out << data.base_url_common;
}
void doc_current_url(Info & i)
{
i.out << request.env_request_uri;
}
void doc_is_error(Info & i)
{
i.result = request.status != Error::ok;
}
void doc_status(Info & i)
{
i.out << static_cast<int>( request.status );
}
} // namespace TemplatesFunctions