修改开源项目管理系统 Redmine 代码

更新日期: 2023-08-17 阅读次数: 1316 字数: 291 分类: 管理

修改顶部菜单

实际上就是先搜索页面内的 class name, 然后根据模板代码中的变量名,搜索 ruby 代码。

例如,顶部菜单的代码文件

grep "top_menu" -r ./
./lib/redmine/plugin.rb:    # +name+ parameter can be: :top_menu, :account_menu, :application_menu or :project_menu
./lib/redmine/preparation.rb:      MenuManager.map :top_menu do |menu|
./test/unit/lib/redmine_test.rb:  def test_top_menu

./lib/redmine/plugin.rb

MenuManager.map :top_menu do |menu|
	menu.push :home, :home_path
	menu.push :my_page, {:controller => 'my', :action => 'page'},
			  :if => Proc.new {User.current.logged?}
	menu.push :projects, {:controller => 'projects', :action => 'index'},
			  :caption => :label_project_plural
	menu.push :administration, {:controller => 'admin', :action => 'index'},
			  :if => Proc.new {User.current.admin?}, :last => true
	menu.push :help, Info.help_url, :last => true
end

ruby 代码注释

# 这是一个单行注释

单行注释符,跟 python 的一样。

重启服务

测试了一下,仅仅修改代码是无法立即生效的,估计是需要重启 unicorn_rails 服务。

通过

ps auxw | grep unicorn

找到 PID

kill -9 PID
unicorn_rails -D -E production -c config/unicorn.rb

刷新一下浏览器,确实生效了。脚本语言线上直接改代码确实比较爽。

注意:按照 chatgpt 的建议,使用

kill -HUP PID

虽然子进程重启了,但是代码更新并没有生效。

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式

tags: redmine