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

文章目录

    修改顶部菜单

    实际上就是先搜索页面内的 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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式