Grantlee 0.1.9
Public Member Functions
Grantlee::FileSystemTemplateLoader Class Reference

The FileSystemTemplateLoader loads Templates from the file system. More...

#include <grantlee/templateloader.h>

Inheritance diagram for Grantlee::FileSystemTemplateLoader:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 FileSystemTemplateLoader ()
virtual ~FileSystemTemplateLoader ()
bool canLoadTemplate (const QString &name) const
QPair< QString, QString > getMediaUri (const QString &fileName) const
Template loadByName (const QString &name, Engine const *engine) const
void setTemplateDirs (const QStringList &dirs)
void setTheme (const QString &themeName)
QStringList templateDirs () const
QString themeName () const

Detailed Description

This template loader works by traversing a list of directories to find templates. Directories are checked in order, and the first match hit is parsed and returned.

    loader->setTemplateDirs(QStringList() << "/home/user/app/templates" << "/usr/local/share/app/templates" );
    engine->setTemplateLoader( loader );

    // This will try /home/user/app/templates/mytemplate.html
    // followed by /usr/local/share/app/templates/mytemplate.html
    engine->loadByName( "mytemplate.html" );

Additionally, a themeName may be set on the template loader, which will be appended to search paths before the template name.

    loader->setTemplateDirs(QStringList() << "/home/user/app/templates" << "/usr/local/share/app/templates" );
    loader->setTheme( "simple_theme" );
    engine->setTemplateLoader( loader );

    // This will try /home/user/app/templates/simple_theme/mytemplate.html
    // followed by /usr/local/share/app/templates/simple_theme/mytemplate.html
    engine->loadByName( "mytemplate.html" );

Media URIs may be retrieved for media relative to the directories searched queried for templates.

    loader->setTemplateDirs(QStringList() << "/home/user/app/templates" << "/usr/local/share/app/templates" );
    loader->setTheme( "simple_theme" );
    engine->setTemplateLoader( loader );

    // This will try /home/user/app/templates/simple_theme/logo.png
    // followed by /usr/local/share/app/templates/simple_theme/logo.png
    // and return the first one that exists.
    engine->mediaUri( "logo.png" );

The template files loaded by a FileSystemTemplateLoader must be UTF-8 encoded.

See also:
Deploying Templates

Definition at line 123 of file templateloader.h.


Constructor & Destructor Documentation

Grantlee::FileSystemTemplateLoader::FileSystemTemplateLoader ( )

Constructor

virtual Grantlee::FileSystemTemplateLoader::~FileSystemTemplateLoader ( ) [virtual]

Destructor


Member Function Documentation

bool Grantlee::FileSystemTemplateLoader::canLoadTemplate ( const QString &  name) const [virtual]

Return true if a Template identified by name exists and can be loaded.

Implements Grantlee::AbstractTemplateLoader.

QPair<QString, QString> Grantlee::FileSystemTemplateLoader::getMediaUri ( const QString &  fileName) const [virtual]

Return a complete URI for media identified by fileName.

Implements Grantlee::AbstractTemplateLoader.

Template Grantlee::FileSystemTemplateLoader::loadByName ( const QString &  name,
Engine const *  engine 
) const [virtual]

Load a Template called name. Return an invalid Template if no content by that name exists.

Implements Grantlee::AbstractTemplateLoader.

void Grantlee::FileSystemTemplateLoader::setTemplateDirs ( const QStringList &  dirs)

Sets the directories to look for template files to dirs.

Reimplemented in Grantlee::LocalizedFileSystemTemplateLoader.

void Grantlee::FileSystemTemplateLoader::setTheme ( const QString &  themeName)

Sets the theme of this loader to themeName

Reimplemented in Grantlee::LocalizedFileSystemTemplateLoader.

QStringList Grantlee::FileSystemTemplateLoader::templateDirs ( ) const

The directories this TemplateLoader looks in for template files.

QString Grantlee::FileSystemTemplateLoader::themeName ( ) const

The themeName of this TemplateLoader