some improvement in templates

(now we have O(1) time for selecting the right html template)
added: winix function: template
for selecting a template for an item (file or dir)



git-svn-id: svn://ttmath.org/publicrep/winix/trunk@636 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2010-08-13 20:04:57 +00:00
parent 9a199cd834
commit f3cd3b88b9
40 changed files with 756 additions and 228 deletions

70
functions/template.cpp Executable file
View File

@@ -0,0 +1,70 @@
/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2010, Tomasz Sowa
* All rights reserved.
*
*/
#include "template.h"
#include "core/misc.h"
namespace Fun
{
Template::Template()
{
fun.url = "template";
}
bool Template::HasAccess()
{
if( config->template_only_root_use_template_fun )
{
// only root is allowed to change the template
return (request->session->puser && request->session->puser->super_user);
}
if( request->is_item )
return system->HasWriteAccess(request->item);
else
return system->HasWriteAccess(*request->dir_tab.back());
}
void Template::EditTemplate(Item & item)
{
html_file = request->PostVar("template");
TrimWhite(html_file);
request->status = db->EditTemplateItemById(item.id, html_file);
if( request->status == WINIX_ERR_OK )
item.html_template = html_file;
}
void Template::MakePost()
{
if( request->is_item )
{
EditTemplate(request->item);
}
else
{
EditTemplate(*request->dir_tab.back());
}
system->RedirectToLastItem();
}
} // namespace