/* * 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 thread_is(Info & i) { i.result = request.is_thread; } static size_t thread_tab_index; void thread_tab(Info & i) { thread_tab_index = i.iter; i.result = thread_tab_index < request.thread_tab.size(); } void thread_tab_url(Info & i) { if( thread_tab_index < request.thread_tab.size() ) { Item * dir = data.dirs.GetDir( request.thread_tab[thread_tab_index].dir_id ); if( dir ) { HtmlEscape(i.out, dir->url); } else { i.out << ""; } } } void thread_tab_subject(Info & i) { if( thread_tab_index < request.thread_tab.size() ) { Item * dir = data.dirs.GetDir( request.thread_tab[thread_tab_index].dir_id ); if( dir ) { if( !dir->subject.empty() ) HtmlEscape(i.out, dir->subject); else HtmlEscape(i.out, dir->url); } else { i.out << ""; } } } void thread_tab_answers(Info & i) { if( thread_tab_index < request.thread_tab.size() ) { long a = request.thread_tab[thread_tab_index].items; // the first is created by the author // we count only the rest if( a > 0 ) --a; i.out << a; } } void thread_tab_author(Info & i) { bool unknown = true; if( thread_tab_index < request.thread_tab.size() ) { Item * dir = data.dirs.GetDir( request.thread_tab[thread_tab_index].dir_id ); if( dir ) { User * puser = data.users.GetUser(dir->user_id); unknown = false; if( puser ) HtmlEscape(i.out, puser->name); else { i.out << "~"; if( !dir->guest_name.empty() ) HtmlEscape(i.out, dir->guest_name); else i.out << "guest"; // !! dodac do konfiga } } } if( unknown ) { i.out << ""; } } void thread_tab_last_item_date_modification(Info & i) { if( thread_tab_index < request.thread_tab.size() ) if( request.thread_tab[thread_tab_index].last_item.id != -1 ) i.out << DateToStr( &request.thread_tab[thread_tab_index].last_item.date_modification ); } void thread_tab_last_item_user(Info & i) { if( thread_tab_index < request.thread_tab.size() ) { if( request.thread_tab[thread_tab_index].last_item.id != -1 ) { User * puser = data.users.GetUser( request.thread_tab[thread_tab_index].last_item.user_id ); if( puser ) HtmlEscape(i.out, puser->name); else { i.out << "~"; if( !request.thread_tab[thread_tab_index].last_item.guest_name.empty() ) HtmlEscape(i.out, request.thread_tab[thread_tab_index].last_item.guest_name); else i.out << "guest"; // !! dodac do konfiga } } } } void thread_can_create(Info & i) { i.result = request.CanCreateThread(true); } } // namespace TemplatesFunctions