sfSimplePagePlugin - 1.0.6

Enable managing static pages with symfony

You are currently browsing
the website for symfony 1

Visit the Symfony2 website


« Back to the Plugins Home

Signin


Forgot your password?
Create an account

Tools

Stats

advanced search
Information Readme Releases Changelog Contribute
Show source

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, renders 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 pages are rendered by symfony, so you can use partials, components, helpers, or any other php statement.

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 application settings.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 :

    echo link_to( 'About', '@sfSimplePageFile?file=about.html')
  • [Optional] I18n support is provided through the classical means of session user culture (sf_culture parameter)

    To enable i18n support, in application app.yml add:

    all:
      sf_simple_page_plugin:
        use_i18n: true 

    Now the session user culture (e.g. en, el) 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 the management of a sane sf_culture session variable. Read i18n support in "symfony book" for more.

  • [Optional] Use the component sfSimplePage/static ('file'=>$file) from anywhere in the view layer to embed static content on every page you desire. In case you need to provide a different file path provide a 'file_path'=><path_to_static_dir>.

    e.g. in apps/frontend/modules/product/templates/showSuccess.php

    <div id="terms">
    <?php include_component('sfSimplePage','static', array('file'=>'terms.html') ) ?>
    </div>

    will output the contents of terms.html file inside the #terms div !

Configuration

The route prefix and the static content directory can be changed from the application app.yml configuration file. Also the routes can be disabled, in this case new routes have to be defined at the main routing.yml file. The sfSimplePagePlugin parameters, along with their default values are as follows:

E.g. in apps/frontend/config/app.yml:

    [yml]
    all:
      sf_simple_page_plugin:
        template_path: '%SF_DATA_DIR%/static'
        route_prefix: static
        use_i18n: false
        routes_register: true