Witam serdecznie. Mam zaprojektowane menu z ktorym wrecz nie moge sobie poradzic.
Oto helper w ktorym jest zdefiniowane menu. miedzy innymi. Jak moge go rpzerobic aby artykuly pokazywaly sie w kolejnosci od najwiekszej do najmniejszej czyli tak jakby po dodaniu :order =>“id DESC”. Sek w tym ze nie wiem gdzie i w jaki sposob to dodac 
[code=ruby] # menu
odpala metode url_for_xxx dla kazdego elementu w tablicodrzewie nazw, odpowiednio dla typu obiektu xxx
lub uzupelnia pole url urlem z przekierowania jesli aktywne przekierowanie
struktura tablicy => patrz modele: category, article, metoda names_tree_array
def set_object_urls! arr
arr.each do |item|
item[:url] = self.method(‘url_for_’+item[:type]).call(item[:obj])
set_object_urls! item[:sub]
end
end
wyswietlenie konkretnego menu w miejscu wywolania. kind to :articles albo :shop, objtype - typ(z configu) artykulu
dodatkowe opcje dla niektorych typow menu w opts (patrz komentarze przy realizacjach konkretnych menu ponizej)
menu sklepu jest cacheowane
def show_menu kind, objtype, opts = {}
if kind == :shop
mv = Cache.find_by_key “shop_menu”
if mv.nil?
v = generate_menu kind, objtype, opts
Cache.create :key => “shop_menu”, :value => v
return v
else
return mv.value
end
else
return generate_menu kind, objtype, opts
end
end
def generate_menu kind, objtype, opts
case kind
when :articles
menuconf = @config[‘arttypes’][objtype][:menu]
if opts[:only_additional_left]
arr = Article.names_tree_array_only_additional_left objtype, @lang
else
arr = Article.names_tree_array objtype, @lang
end
when :shop
menuconf = @config[‘shop_menu’]
arr = Category.names_tree_array @lang
end
set_object_urls! arr
case menuconf[:type]
when :dropdown
  show_xmenu2 arr, menuconf, opts
when :block
  show_blockmenu arr, menuconf, opts
when :tree
  show_treemenu arr, menuconf, opts
end
end
def show_menu_additional_left objtype, parent, opts
arr = Article.names_tree_array_only_additional_left objtype, @lang, parent
menuconf = @config[‘arttypes’][‘poziom’][:menu]
set_object_urls! arr
  #show_xmenu2 arr, menuconf, {}
  show_blockmenu arr, menuconf, opts
  #show_treemenu arr, menuconf, {}
end
#xmenu2
def show_xmenu2 arr, conf, opts
ret = "\n”
else
ret += run_blockmenu conf
end
end
def run_blockmenu conf
ret = “\n”
return ret
end
def subblock arr, level, conf, opts
ret = “”
dtpre = opts[“dt#{level}prefix”]
ddpre = opts[“dd#{level}prefix”]
dtpost = opts[“dt#{level}postfix”]
ddpost = opts[“dd#{level}postfix”]
dtpre ||= opts[“dtprefix”]
ddpre ||= opts[“ddprefix”]
dtpost ||= opts[“dtpostfix”]
ddpost ||= opts[“ddpostfix”]
dtpre ||= “”
ddpre ||= “”
dtpost ||= “”
ddpost ||= “”
arr.each do |item|
    if !item[:sub].empty? && !conf[:nodes_active]
	    ret += "<li  id='block_#{item[:obj].id}'>#{dtpre} #{h item[:obj].name}#{dtpost}</li>"
    else
	    ret += "<div id='pierwszy#{item[:obj].id}' style=\"display: none;\">
		<ul><li id='block_#{item[:obj].id}'>#{dtpre} <span class=\"naglowek2\"> #{link_to item[:name], item[:url]}</span> #{dtpost}      
		<br />
		<a href=\"#\" onclick=\"document.getElementById('drugi#{item[:obj].id}').style.display='block'; document.getElementById('pierwszy#{item[:obj].id}').style.display='none'\"> 
		
		#{
		  if @lang == 'pl'
		  @ukryj = 'Ukryj... ';
		  else
		  @ukryj = 'Hide...';
		  end
		}
		
		</a>
		<br /> #{item[:obj].content} </li><br />
	    </ul>
	    </div>
	    
	    <div id='drugi#{item[:obj].id}' >
	    <ul><li id='block_#{item[:obj].id}'>#{dtpre} <span class=\"naglowek2\"> #{link_to item[:name], item[:url]}</span> #{dtpost}      
		<br />
		<a href=\"#\" onclick=\"document.getElementById('pierwszy#{item[:obj].id}').style.display='block'; document.getElementById('drugi#{item[:obj].id}').style.display='none';\"> 
		
		#{
		  if @lang == 'pl'
		  @ukryj = 'Więcej... ';
		  else
		  @ukryj = 'More...';
		  end
		}
		
		</a>
	    <br /> #{item[:obj].trailer} </li><br />
	    </ul>  
	    </div>"
    end
  
 
end
return ret
end[/code]
Sa tu 2 menu poziome i pionowe. Mnie interesuje pionowe albo oba ;p
Dziekuje za pomoc.

 i chyba już raz przepisywany tylko że pewnie z php.