Arsip

Archive for the ‘Plug In (Ruby On Rails)’ Category

Membuat Archive pada Rails

September 8, 2009 Andry Sucipto Komentar dimatikan

dengan menggunakan sebuah plugin kita mampu membangun sebuah archive yang biasanya kita temukan pada blog atau yang di sebut arsip sebiah artikel

nama plugin tersebut adalah acts_as_archivable, adpun taca pengunaan sangat mudah yaitu :

install pluginnya :

http://github.com/joshuaclayton/acts_as_archivable/tree/master

lalu setelah kita install pada model kita berikan :

acts_as_archivable :o rder => ‘DESC’

lalu setelah itu kita beralih ke controler dengan query dan def tersendiri kita berikan kode berikut:

def archive_blog
@blog = Blog.by_date :month => 8, :year => 2009
end

bisa di ganti dengan customes sebagai berikut :

Blog.by_date :year => 2007
Blog.by_date Date.today
Blog.by_date ‘5/1/2007′

Blog.oldest
Blog.newest

Blog.recent 2.weeks
Blog.recent 3.months
Blog.recent (3.months – 1.week)

Blog.between ‘5/10/2007′, Date.today

Membuat Tag pada Rails

September 8, 2009 Andry Sucipto Komentar dimatikan

untuk membuat tag pada rails kita cukup memerlukan satu plugin saja yang bernama acts_as_taggable_on_steroids adapun tatacara penggunaan sebagai berikut :

yang pertama install pluginnya dengan perintah :

script/plugin install http://svn.viney.net.nz/things/rails/plugins/acts_as_taggable_on_steroids

seteh kita install buatlah migrations nya dengan perintah :

ruby script/generatr migrations add_tag_support

lalu pada migrationsnya kita tuliskan :

class AddTagSupport < ActiveRecord::Migration
def self.up
#Table for your Tags
create_table :tags do |t|
t.column :name, :string
end

create_table :taggings do |t|
t.column :tag_id, :integer
#id of tagged object
t.column :taggable_id, :integer
#type of object tagged
t.column :taggable_type, :string
end

# Index your tags/taggings
add_index :tags, :name
add_index :taggings, [:tag_id, :taggable_id, :taggable_type]
end

def self.down
drop_table :taggings
drop_table :tags
end
end

lalu kita migrate dengan perintah:

rake db:migrate

langkah selanjutnya pada model yang akan kita beri tag, misalnya model blog,  maka pada model blog kita tambahkan

acts_as_taggable

lalu pada view/blogs file new dengan edit kita tambah :

untuk New :

<p>
<label for=”tag_name”>Add your tags <small>(separated by comma)</small></label><br/>
<%= text_field ‘tag’,'name’ %><br/>
</p>

Untuk Edit :

<p>
<label for=”tag_name”>Add your tags <small>(separated by comma)</small></label><br/>
<%= text_field ‘blog’,'tag_list’ %><br/>
</p>

lalu pada blogs_controller

def edit
blog_id = Blog.find(:all, :conditions => ["id = ? ", params[:id]]).collect {|a| a.id }
if edit_privileges?(blog_id)
@blog = Blog.find(params[:id])
else
redirect_to :action => ‘index’
end
end

# POST /blogs
# POST /blogs.xml
def create
@blog = Blog.new(params[:blog])
@blog.save
taggable_id =  @blog.id
if session[:tag_name]
collect_tag(session[:tag_name])
else
collect_tag(params[:tag][:name])
end
@tags.each do |tag|
tag_found = Tag.find_by_name(tag)
tag_found = Tag.create(:name => tag) if !tag_found
save_tagging(tag_found.id, taggable_id)
end

redirect_to :action => ‘index’

end

private

def save_tagging(tag_id, taggable_id)
Tagging.create(:tag_id => tag_id,
:taggable_id   => taggable_id,
:taggable_type => “Blog”)
end

def edit_privileges?(blog_id)
blog_id.each do |id|
return true if id == original_id(params[:id]).to_i
end
return false
end

def collect_tag(tag_input)
@collect_tag = tag_input.gsub(” “,”")
@tags = @collect_tag.split(‘,’)
end

Auto Complete pada Rails

April 4, 2009 Andry Sucipto Komentar dimatikan

cara pembuatan sangatlah mudah yang pertama kita memasang plugin Auto_complete

pada view :

<%= text_field_with_auto_complete :code, :data, {}, :skip_style => false %>

sedangkan pada controller kita beri kode :

skip_before_filter :verify_authenticity_token, :o nly => [:auto_complete_for_code_data]

def auto_complete_for_code_data
search = params[:code][:data]
@kode = Code.find(:all, :conditions => ["data LIKE ?", "%#{search}%"])
render :partial => “autocomplete”
end

sedangkan di _autocomplete.rhtml

<ul class=”allusers”>
<% for kode in @kode %>
<li class=”thisuser”><div class=”useremail”><%=h kode.data %></div></li>
<% end %></ul>

bereslah sudah autocomplete yang kita buat, selamat berkarya dengan Rails

Date Select Plug In pada Rails

Maret 31, 2009 Andry Sucipto Komentar dimatikan

plug in ini adalah berfungsi sebagai menampilkan kalender dengaan tampilan pop Up, caranya mudah sekali ikuti langkah berikut ini :

ruby script/plugin install http://calendardateselect.googlecode.com/svn/tags/calendar_date_select/

satelah itu pasang kode berikut pada layout :

<%= javascript_include_tag "calendar_date_select/calendar_date_select.js" %>
<%= stylesheet_link_tag "calendar_date_select/default.css" %>

setelah itu langkah terakhir, pasang kode berikut ini pada View :

<%= calendar_date_select_tag "post[tanggal]", nil, :embedded => true %>
<%= calendar_date_select_tag "post[tanggal]", nil, :embedded => true, :time => true %>
<%= calendar_date_select_tag "post[tanggal]" %>

pilih diantara tiga diatas
selamat mencoba, semoga berhasil !!

named_scope di rails

Maret 31, 2009 Andry Sucipto Komentar dimatikan

hari ini saya akan menjelaskan apa iru named_scope, yang sauya mudah pahami dari named_scope adalah langkah praktis yang ditulis di model masing masing untuk mengganti query range, yang biasanya kita tulist pada controller, misalnya kita akan menampilan seluruh status yang aktive atau yang lain

Contoh penggunaan :

Model Post :

named_scope :cleap, :conditions => {:id => 1}

maksud diatas dapat baca semua data yang mempunyai ID = 1 adapun outputnya masih menggunakan range, untuk pemanggilannya

@example = Post.cleap, kode ini ditulis dalam kontroller

dalaqm pemakaian paginate dalam cintroller :

@example = Post.cleap.paginate(:all,
:o rder => “id DESC”,
:per_page => 25,
:page => params[:page] )

sedangkan untuk input bisa di sisipkan lamda :

named_scope :cleap,  lamda{ |time| :conditions => {:id => time}}

sedangkan untuk pemakaian input kita bisa memakai lamda, untuk pemanggilannya :

@example = Post.cleap(1)

Mengganti Password dengan Plug In Resful Authentication

Februari 22, 2009 Andry Sucipto Komentar dimatikan

mengganti Password atau sering kita dengar (Change Password) kita bisa membuat dengan cara berikut :

pada View :

<% form_for :user, :url => (‘users/change_password_update’) do |f| -%>
Old Password<br/>
<%= password_field_tag ‘old_password’, @old_password, :size => 45, :class => ‘text’ %><br />
New Password<br />
<%= password_field_tag ‘password’, {}, :size => 45, :class => ‘text’ %><br />
Confirm new password<br />
<%= password_field_tag ‘password_confirmation’, {}, :size => 45, :class => ‘text’ %><br />
<%= submit_tag ‘Change password’ %>
<% end %>

Sedangkan Pada Controller :

def change_password
end

def change_password_update
if User.authenticate(current_user.login, params[:old_password])
if ((params[:password] == params[:password_confirmation]) && !params[:password_confirmation].blank?)
current_user.password_confirmation = params[:password_confirmation]
current_user.password = params[:password]
if current_user.save!
flash[:notice] = “Password berhasil diganti”
render :action => ‘change_password’
else
flash[:notice] = “Password not changed”
render :action => ‘change_password’
end
else
flash[:notice] = “New Password mismatch”
render :action => ‘change_password’
end
else
flash[:notice] = “Old password incorrect”
render :action => ‘change_password’
end
end

Livevalidation

Februari 7, 2009 Andry Sucipto Komentar dimatikan

Komentar langsung ketika kita menuliskan kata Install plug In nya:

svn://rubyforge.org/var/svn/livevalidation dalam model kita tuliskan seperti biasa vvaliditasnya : validates_presence_of :username

validates_uniqueness_of :username

validates_confirmation_of :password

validates_presence_of :password

validates_presence_of :password_confirmation

attr_reader :password

validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i validates_presence_of :email Lalu

di dalam view kita tuliskan :

<script type=”text/javascript”>
var username = new LiveValidation(‘username’);
username.add(Validate.Presence);
var password_confirmation = new LiveValidation(‘password_confirmation’);
password_confirmation.add( Validate.Confirmation, { match: ‘password’ } );
var email = new LiveValidation(‘email’);
email.add( Validate.Email );
email.add(Validate.Presence);
</script>

<table>
<% form_tag(:controller => ‘random’, :action => ‘register’) do %>
<tr><td>Login</td><td>:</td><td><%= text_field ‘user’, ‘username’, :live => true %></td></tr>
<tr><td>Password</td><td>:</td><td><%= password_field ‘user’, ‘password_confirmation’, :live => true %></td></tr>
<tr><td>Password again</td><td>:</td><td><%= password_field ‘user’, ‘password’, :live => true %></td></tr>
<tr><td>E-mail</td><td>:</td><td><%= text_field ‘user’, ‘email’, :live => true %></td></tr>
<tr><td colspan =”3″><%= submit_tag “Berikutnya >>” %></td></tr>
<% end %>

Contoh dan format bisa diliat di sini:  http://www.livevalidation.com/examples

Daftar Plug In – Ruby On Rails

Februari 5, 2009 Andry Sucipto Komentar dimatikan

12_hour_time http://www.nickm.org/svn/repos/rails/plugins/12_hour_time/
RailsRunner http://svn.rubaidh.com/plugins/RailsRunner/
access_control http://filetofsole.org/svn/public/projects/rails/plugins/access_control/
accessible_form_helper http://joshpeek.com/svn/plugins/accessible_form_helper/
account_location http://dev.rubyonrails.org/svn/rails/plugins/account_location/
action_cache http://craz8.com/svn/trunk/plugins/action_cache/
action_mailer http://svn.pluginaweek.org/trunk/plugins/action_mailer/
action_pack http://svn.pluginaweek.org/trunk/plugins/action_pack/
actionmailserver svn://rubyforge.org/var/svn/railsmailserver/plugins/actionmailserver/
active_merchant http://svn.toolbocks.com/plugins/active_merchant/
active_model http://terralien.com/svn/projects/plugins/active_model/
active_record http://svn.pluginaweek.org/trunk/plugins/active_record/
active_record_base_without_tablehttp://svn.viney.net.nz/things/rails/plugins/active_record_base_without_table/
active_record_context http://svn.techno-weenie.net/projects/plugins/active_record_context/
active_record_defaults http://svn.viney.net.nz/things/rails/plugins/active_record_defaults/
Read more…

Lampiran Image dengan Attachmen_fu

Januari 14, 2009 Andry Sucipto Komentar dimatikan

pada View :

<h1>New user</h1>

<% form_for (:avatar, @avatar, :url => { :action => “create” }, :html => { :multipart => true }) do %>

<p>
Login<br />
<%= text_field ‘user’, ‘login’ %>
</p>
<p>
E-Mail<br />
<%= text_field ‘user’, ‘email’ %>
</p>
<p>
Password<br />
<%= password_field ‘user’, ‘password’ %>
</p>
<p>
Image<br />
<%= file_field ‘avatar’, ‘uploaded_data’ %>
</p>
<p>
<span class=”button”><button type=”submit”>Submit</button></span>
</p>
<% end %>

<%= link_to ‘Back’, users_path %>

Read more…

Plug In acl_system

Oktober 23, 2008 Andry Sucipto Komentar dimatikan

Plug In acl_system kita install melalui command promt adapun pluinnya seperti dibawah ini :

ruby script/plugin install http://opensvn.csie.org/ezra/rails/plugins/dev/acl_system2/