sfSimplePagePlugin
Overview
The sfSimplePagePlugin allows you to manage like static pages with symfony.
for example, if the request is like this
http://example.com/frontend_dev.php/static/sample.html
the module of this plugin, which is sfSimplePage module, render the sample.html in ./data/static directory.
if the request is like this
http://example.com/frontend_dev.php/static/hoge/sample2.html
render the sample2.html in ./data/static/hoge directory.
These page is rendered by symfony, so you can use view system of partial, component, helper...
Installation
Install plugin:
symfony plugin-install http://plugins.symfony-project.com/sfSimplePagePlugin
or through Subversion:
svn co http://svn.symfony-project.com/plugins/sfSimplePagePlugin/trunk
(only symfony 1.2) Enable this plugin in ProjectConfiguration.class.php
public function setup()
{
$this->enablePlugins('sfSimplePagePlugin');
}
Enable this sfSimplePage module in your setting.yml
all:
.settings:
enabled_modules: [default, sfSimplePage]
Make "static" directory in data directory
mkdir ./data/static
Deploy your template in ./data/static directory
Clear cache
./symfony cc
[Optional] Use the sfSimplePageFile routing rule to create links to files in the static root dir
e.g.in template :
><php echo link_to( 'About', '@sfSimplePageFile?file=about.html')>
[Optional] I18n support is provided through the classical means of session user culture (sf_culture parameter)
In application app.yml add
sf_simple_page_plugin_use_i18n: true
to enable i18n support
Now the session user culture (e.g. en, gr) is interpreted as a first implicit directory
Also when the static file is not found under the culture dir a final attempt is made on the static folder
before giving a 404 error.
Example contents of static folder
>static/
> en/
> help.html
> /about.html
> el/
> help.html
> about.html
The application is responsible for management of a sane sf_culture session variable.
Read i18n support in "symfony book".
[Optional] Use the component sfSimplePage/static ('file'=>$file) from anywhere in the view layer to embed static
content on every page you desire.
e.g. in apps/frontend/modules/product/templates/showSuccess.php
[...]
>< php include_component('sfSimplePage','static', array('file'=>'terms.html') ) >
>
will output the contents of terms.html file inside the #terms div !
NOTES: