Posts Tagged Freego

preview per Freego

Da quando uso Typo per il blog, mi sono abituato alla preview: quando sto inserendo un articolo, questo viene visualizzato “al volo” così come dovrebbe apparire nel blog.

Ho pensato, quindi, di aggiungerlo a Freego, che essendo scritto in Ruby on Rails mi facilita il “porting” di questa feature. Tra l’altro su Freego mi torna utile: le news che inserisco li’, infatti, sono spesso piene di link e non ci si accorge di errori sull’html se non visualizzando la news già salvata.

Aggiungere la preview di una news (o qualsiasi altra cosa simile) è stato molto semplice.

Nella view news/new.rhtml ho aggiunto (partendo dallo scaffold):

<%= javascript_include_tag :defaults %>

Il start_form_tag ora ha un id, per poterlo identificare:

<%= start_form_tag ({:action => 'create'}, :id => 'form_edit_news') %>
  <%= render :partial => 'form' %>
  <%= submit_tag "Invia" %>
<%= end_form_tag %>

Poi ho aggiunto una chiamata AJAX:

<%= observe_form "form_edit_news",
                    :frequency => 3.0,
                    :update    => 'ajaxWrapper',
                    :loading_text => "Retrieving data...",
                    :complete  => "Element.hide('spinner')",
                    :before    => " Element.show('spinner')",
                    :url       => {:action=>'preview', :o nly_path => false} %>

Questa chiamata controlla modifiche al form per l’editing della news, ogni 3.0 secondi, e aggiorna l’elemento ‘ajaxWrapper’, chiamando l’azione ‘preview’. Quello che segue è l’elemento ‘ajaxWrapper’, che tramite un partial rende la preview della news.

<div id='ajaxWrapper'>
<%= render :partial=>'preview', :o bject => @new_news, :layout => false %>
</div>

Piuttosto banale, eh? Qui ho descritto solo le parti fondamentali; se qualcuno vuole proprio vedere il codice intero, ricordo che Freego è GPL.

, ,

No Comments

mod_rewrite per Freego

Il vecchio codice di Freego rispondeva alle chiamate del tipo:

/news.php?show=12

il che visualizzava la news numero 12.

Il nuovo codice basato su Ruby On Rails riproduce la stessa azione con questa chiamata:

/news/show/12

C’è poca differenza e dato che molti accedono da fuori con i link vecchi, ho pensato di mettere un banale RewriteRule su apache per reinderizzare le URL. Al solito, le cose banali non mi riescono e ci ho perso una mattinata.

Le regole che ho aggiunto sono queste:

        RewriteCond %{QUERY_STRING} ^show=([^&]+)$
        RewriteRule   ^/news.php    /news/show/%1?   [R]
        RewriteRule   ^/articles.php    /articles/show/%1?   [R]
        RewriteRule   ^/summary.php    /summaries/show/%1?   [R]

Quello che continuavo a sbagliare è il fatto che inizialmente non pensavo di concentrarmi sulla QUERY_STRING e secondo, che se non si usa il carattere ‘?’ alla fine della RewriteRule, la QUERY_STRING viene appiccipata alla fine nuovamente, creando una URL del tipo:

/news/show/12?show=12

che funzionava lo stesso, ma non era corretta.

,

1 Comment

Freego su Ruby On Rails

Freego è online da oggi, con la nuova versione software riscritta con Ruby On Rails.

Mi manca di sistemare diverse cose qui e la’, ma il più dovrebbe essere fatto.

,

No Comments