Next: , Up: MVC [Contents]

12.1 Controllers/Views

Let’s make a controller named article:

art draw controller article show edit

show and edit are the name of methods for the controller named article.

This will generate both a controller and a view for article:

drawing controller article
working Controllers `article.scm'
create app/controllers/article.scm
working Views `article'
create app/views/article/show.html.tpl
create app/views/article/edit.html.tpl

These three files are generated:

app/controllers/article.scm
app/views/article/show.html.tpl
app/views/article/edit.html.tpl

Based on this, the controller article will have two methods mapped to the URL rule, show and edit. As part of the view component. An HTML template is generated for each method. For the show method for example, the view file show.html.tpl is created. For the controller component, you get a show method handler, as:

(article-define show
 ;; (method get/post/put/patch/page-delete/page-options) ; method type
 ;; (options ...) ; see below for options
 (lambda (rc)
 "<h1>This is article#show</h1><p>Find me in app/views/article/show.html.tpl</p>"
 ;; TODO: add controller method `show'
 ;; uncomment this line if you want to render view from template
 ;; (view-render "show")
 ))

Of course, you’re free to use or not use these templates. If you want to use the view template, just uncomment the last line (view-render "show").

NOTE: The views template generated by MVC will defaultly announce FreeJS. The reason was well explained in The Javascript Trap. It’s optional, you may remove it with your free will, but I put it there in the hope that you can support free software with us.

For more detail about template in Views, please see Layouts and Rendering in GNU Artanis.

AltStyle によって変換されたページ (->オリジナル) /