Jifty::Manual::Tutorial_ja.3pm

Langue: en

Version: 2007-12-26 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

XX

Jifty::Manual::Tutorial - XXXXXXXXXXXJifty

XX

XXXXXXXXXXXXXXJiftyXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXX


XXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX

JiftyXXXXXXX

XXXXXXXXXXXXXXXXXXDRY (Don't Repeat Yourself) XXXXXXXXXXXXXXXXXXXXXXXPerlXCPANXXX XXXXXXXXXJiftyXCPANXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXCPANXXXXXXXXXXXX60XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXPerl XXXXXXXXXXPerlXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXJiftyXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXPerlXXXXXXXXXXXXXXXXJiftyXXXX XXXXXXXXXXXSQLiteXXXXXXXXOSXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX

http://download.jifty.org/pub/jifty/ XXXXXXXXXXXX XXXXXXCPANXXXXXXXXXXXXXXXXXXXCPANXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XURLXXXXXX

     http://download.jifty.org/pub/jifty/
 
 

XXXXXXXXXXXXXXXXXXXXXXX

   # tar xzvf jifty-<version>.tgz
   # cd jifty-<version>
   # perl Makefile.PL
   # make
   # make test
   # make install
 
 

XXXXXXXXXXXXXXXXXXXXXXXXX "jifty-devel@lists.jifty.org"XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX X``XXXXXX''XXXXXXXXXX

XXXXXXXXXXXXXXXXXXX

JiftyXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX

JiftyXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXjiftyXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Xbin/XXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX

XXXXXXXJiftyXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXJiftyXXXXXXXXXXXXXXXXX

   # jifty app --name MyWeblog
   Can't guess application root from current path (/your/current/directory) or bin path (/usr/bin)
   Creating new application MyWebLog
   Creating directory lib
   Creating directory lib/MyWebLog
   Creating directory bin
   Creating directory etc
   Creating directory doc
   Creating directory log
   Creating directory web
   Creating directory web/templates
   Creating directory web/static
   Creating directory lib/MyWebLog/Model
   Creating directory lib/MyWebLog/Action
   Creating directory t
   Creating configuration file MyWeblog/etc/config.yml
 
 

XXXXXXXXXXXXXXXXXX

bin
bin/XXXXXjiftyXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX"schema"XXXXXXXXXXXXXXXXX XXXX"server"XXXXXXjiftyXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX
     jifty help
 
 
etc
etc/XXXXXXXXXXXXXXXXXXXXXXXXXXJifty XXXXXXXXXXXXXXXXX
doc
JiftyXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXdoc/XXXXXXXXX
log
JiftyXLog::Log4perlXXXXXXXXXXXXXXXXXXXX XXlogXXXXXXXserver.logXerror.logXXXXXX XXXXXXX
web/templates
JiftyXHTML::MasonXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXweb/templates/XXXXX XXXXJiftyXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXshare/web/templates/XXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX

PerlXXXXJiftyXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

   perl -MJifty::Util -e 'print Jifty::Util->share_root'
 
 
web/static
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX

XXXXXXXXXXXXXXXXXweb/static/XXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX

XXXJiftyXXXXXXCSSXXXXXXXXXJavascriptXXXX XXPonyXXXXXXXXXX/usr/local/share/jifty/web/static XXXXXXXXXXX

lib/MyWebLog
JiftyXXXXXXXXXXXXXXXXXXX Jifty::Manual::ObjectModelXXXXXXXX

XXXXJiftyXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX

lib/MyWebLog/Model
XXXXXXXXXXXXXXXXXXXX "lib/XXXXXXXXX/Model"XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXJiftyXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX
lib/MyWebLog/Action
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXJiftyX XXXXXXXXXXXXXXXXXXXXXXXXXXX"CREATEX READXUPDATEXDELETE") XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX
t
JiftyXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXMyWebLogXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXRSSXAtomXXXXXXXXXXXXXXXXX

XX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX"post"XXXXXX

   # cd MyWeblog
   # jifty model --name Post
   Writing file /tmp/MyWeblog/t/00-model-Post.t
   Writing file /tmp/MyWeblog/lib/MyWeblog/Model/Post.pm
 
 

XXXXXXXXXXXPostXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXlib/MyWeblog/Model/Post.pmXXXXXXXXX

XXXXXXXXXXXXXXX

   package MyWeblog::Model::Post::Schema;
   use Jifty::DBI::Schema;
 
   # Your column definitions go here.  See L<Jifty::DBI::Schema> for
   # documentation about how to write column definitions.
 
   package MyWeblog::Model::Post;
   use base qw/MyWeblog::Record/;
 
   # Your model-specific methods go here.
 
   1;
 
 

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X"body"X"title"X"category"XXXXXXXXXXXXXX "category"X"tags"XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXX

   # Your column definitions go here.  See L<Jifty::DBI::Schema> for
   # documentation about how to write column definitions.
 
 

XXXXXXXXXX

   column title =>
         type is 'text',
         label is 'Title',
         default is 'Untitled post';
 
   column body => 
         type is 'text',
         label is 'Content',
         render_as 'Textarea';
 
 

XXXXXXXXXXXXXXXX

XXXXXXXXXXXXX

XXXXXXMyWeblogXXXXXXXXXXXXXXXXXXXXX XSQLiteXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXPostgreSQLXMySQLXXXXXXXXXetc/jifty.ymlXX XXXXXXXXXXXXXX"Jifty::Config"XXXXXXXXX XXXXXXXX

   # jifty schema --setup
   INFO - Generating SQL for application MyWeblog...
   INFO - Using MyWeblog::Model::Post
   INFO - Using Jifty::Model::Schema
   INFO - Set up version v0.0.1
 
 

JiftyXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXAJAXXXXXXXUIXX XXXXXXXXXXXXXXXXXPonyXXXXXXXXXXXX

   # ./bin/jifty server
   INFO - You can connect to your server at http://localhost:8888/
 
 

XXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX

XXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXX

   # cd web/templates/
 
 

postXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX

   <%init>
   my $action = Jifty->web->new_action(class =>'CreatePost');
   </%init>
 
   <&|/_elements/wrapper, title => "Post to your weblog" &>
   <% Jifty->web->form->start() %>
   <% Jifty->web->form->next_page( url => '/') %>
   <% $action->form_field('title') %>
   <% $action->form_field('body') %>
   <% Jifty->web->form->submit( label => 'Post' ) %>
   <% Jifty->web->form->end() %>
   </&>
 
 

XXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXAJAXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXX

web/templatesXXXXXXXindex.htmlXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX"/index.html"XXX URLXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX

   <%init>
   my $posts = MyWeblog::Model::PostCollection->new();
   $posts->unlimit();
   </%init>
 
   <&|/_elements/wrapper, title => Jifty->config->framework('ApplicationName') &>
   <dl>
   % while (my $post = $posts->next) {
    <dt><%$post->title%></dt>
    <dd><%$post->body%></dd>
   % }
   </dl>
   </&>
 
 

XXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXJiftyXXXXXXXXXXXXXXXXXX XPage regionsXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXAJAXXX"lynx"X"w3m"XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXGETXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXweb/templates/index.htmlXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

   <&|/_elements/wrapper, title => Jifty->config->framework('ApplicationName') &>
 
   <% Jifty->web->region(name => "myweblog-posts",
                         path => "/fragments/page_of_posts") %>
   </&>
 
 

XXXXXXXXXXXXXXXXXXXXXXXXX web/templates/fragments/page_of_postsXXXXXXXXXX XXXXXXXXXXXXXXXXXXX

   <%args>
   $page => 1
   </%args>
   <%init>
   my $posts = MyWeblog::Model::PostCollection->new();
   $posts->unlimit();
   $posts->set_page_info( current_page => $page,
                          per_page     => 25
                        );
   $m->out("No items found.") if ($posts->pager->total_entries == 0);
 
   </%init>
   % if ($posts->pager->last_page > 1) {
      Page <% $page %> of <% $posts->pager->last_page %>
   % }
   <dl class="list">
   % while (my $post = $posts->next) {
    <dt><%$post->title%></dt>
    <dd><%$post->body%></dd>
   % }
   </dl>
 
   % if ($posts->pager->previous_page) {
     <% Jifty->web->link( label => "Previous Page", onclick => { args => { page => $posts->pager->previous_page } } ) %>
   % }
   % if ($posts->pager->next_page) {
     <% Jifty->web->link( label => "Next Page", onclick => { args => { page => $posts->pager->next_page } } ) %>
   % }
 
 

XXXXXXXJiftyXXXXXXXXXXXXXXXXXXXXX XX"/post"XXXXXXXXXXXXXXXXXXXX

XXXXXXX

XXXXXXXXXXXXXXXURLXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX

JiftyXXXXXXXXXXXXXXPonyXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX_elements/navXXXXXX XXXXXXXX_elements/navXXXXXXXXXXXXXXX XXXXXXXXX

XXXXXXXXXweb/templatesXXXXXXXXXXX _elementsXXXXXXXXXXXXXXXX

_elementsXXXXXXXXXXXXXXXXXXXX"nav"XX XXXXXXXXXXXXXXXXXXXXXXXX

   <%init>
   my $top = Jifty->web->navigation;
   $top->child( Home => url => "/");
   $top->child( Post => url => "/post", 
                        label => "Post Article");
   </%init>
 
 

XXXXXXXXXXXXXXXXXJifty::Web::MenuXXXXXXXX

XXXXX

XXXXXXXXXXXXXXJiftyXXXXXXXXXXXXXX XXXXXXXXXXXXJiftyXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XX"jifty-devel"XXXXXXXXXXXXXXXJiftyXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX

XXXXXX


XXXXXXXXXXXXXX

"jifty-devel@lists.jifty.org"XXJiftyXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXX "jifty-devel-subscribe@lists.jifty.org"XXXXXXXXXXXXX

wikiXXX

wikiXXXXXXXXXXXXXXwikiXJiftyXXXXXXXXXXXXX

<http://jifty.org/>XXXXXXXXXXXXXXXXX

XXwikiXXWiftyXXXJiftyXXXXwikiXXXXXXXXXX XXXXXXXjiftyXsubversionXXXXXXXXXXXXXXXXX

XXXXXXX

JiftyXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX"jifty-devel@lists.jifty.org"XXXXXXXXXX

XXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXXX

XXX

XXXXX"ishigaki_at_tcool.org"X <http://www.tcool.org/>