<% if @plugins.any? %>
<table class="list">
- <% @plugins.keys.sort {|x,y| x.to_s <=> y.to_s}.each do |plugin| %>
+ <% @plugins.each do |plugin| %>
<tr class="<%= cycle('odd', 'even') %>">
- <td><%=h @plugins[plugin].name %></td>
- <td><%=h @plugins[plugin].description %></td>
- <td><%=h @plugins[plugin].author %></td>
- <td><%=h @plugins[plugin].version %></td>
- <td><%= link_to(l(:button_configure), :controller => 'settings', :action => 'plugin', :id => plugin.to_s) if @plugins[plugin].configurable? %></td>
+ <td><%=h plugin.name %></td>
+ <td><%=h plugin.description %></td>
+ <td><%=h plugin.author %></td>
+ <td><%=h plugin.version %></td>
+ <td><%= link_to(l(:button_configure), :controller => 'settings', :action => 'plugin', :id => plugin.id) if plugin.configurable? %></td>
</tr>
<% end %>
</table>
end
end
def_field :name, :description, :author, :version, :settings
-
+ attr_reader :id
+
# Plugin constructor
- def self.register(name, &block)
- p = new
+ def self.register(id, &block)
+ p = new(id)
p.instance_eval(&block)
- Plugin.registered_plugins[name] = p
+ Plugin.registered_plugins[id] = p
+ end
+
+ def initialize(id)
+ @id = id.to_sym
+ end
+
+ def <=>(plugin)
+ self.id.to_s <=> plugin.id.to_s
end
# Adds an item to the given +menu+.