redmine插件编写

来源:互联网 发布:java创建方法 编辑:程序博客网 时间:2024/05/16 01:33

上图简述了Redmine(Rails框架)响应用户请求的过程。
- 用户发起HTTP请求。
- 系统通过路由规则为请求寻找响应的控制器和具体的action。
- 请求被转向相应的控制器和具体的action。
- 控制器委托模型获取数据,并完成具体的任务。
- 模型查询数据库,获取数据,并返回给控制器。
- 控制器用得到的数据渲染视图。
- 渲染后的视图,也就是浏览器可识别的代码,被返回至客户端
.
├── app app 目录功能跟 Rails 的同名目录一样,比如你想在 redmine 中引入新的模型,或者加个路由,可以分别到app/models 和 app/controllers 添加。不过别忘了修改 config/routes.rb 中的规则。要加个邮件模板,也是到 app/views 下加。
│   ├── controllers
│   ├── models模型文件, 每个文件与数据库中的一张表对应, 负责数据的读取和写入以及数据的基本逻辑处理。
│   └── views
│       └── settings
├── assets assets 里的资源文件,会在应用启动时拷贝到 public/plugin_assets/$plugin 路径下
│   └── javascripts
├── config
│   └── routes.rb 在这里修改路由,相当于你在网页上输入什么网址就可以访问什么插件
├── init.rb 插件入口
├── lib
│   └── $plugin 插件的逻辑,$plugin是插件的名字
安装插件:将插件的压缩包解压到{REDMINE_ROOT}/plugins文件夹中,重启即可
添加已加好的插件
直接解压到 redmine/plugins
#bin/rake db:migrate RAILS_ENV=devepolment && bin/rake redmine:plugins:migrate RAILS_ENV=development (这里选的库是development)
修改各种样式      vim public/stylesheets/application.css
中英文对照的文件  {REDMINE_ROOT}/config/locales


1.创建新插件
{REDMINE_ROOT} #bundle exec ruby bin/rails generate redmine_plugin <plugin_name>
这个框架的结构体系就在 {REDMINE_ROOT}/plugins/report_plugin中
插件的作者和描述信息在{REDMINE_ROOT}/plugins/report_plugin/init.rb
2.插件的model层
{REDMINE_ROOT} # bundle exec ruby script/rails generate redmine_plugin_model <plugin_name> <model_name> [field[:type][:index] field[:type][:index] ...]
{REDMINE_ROOT} #vim plugins/<plugin_name>/db/migrate/001_create_<plugin_name>.rb

你可以有自己的一套,写在数据库里面
{REDMINE_ROOT} # bundle exec rake redmine:plugins:migrate
{REDMINE_ROOT} bundle exec ruby bin/rails console
>>数据库中创建需要的信息
>>exit
{REDMINE_ROOT} #vim  plugins/<plugin_name>/app/models/<model_name>.rb

3.插件的controller层
{REDMINE_ROOT} # bundle exec ruby script/rails generate redmine_plugin_controller <plugin_name> <controller_name> [<actions>]
{REDMINE_ROOT} #vim plugins/<plugin_name>/app/controllers/<controller_name>.rb
{REDMINE_ROOT} #vim plugins/<plugin_name>/app/views/<model_name>/index.html.erb
4.插件的路线
{REDMINE_ROOT} #vim plugins/<plugin_name>/config/routes.rb
5.可以添加到顶部或者其他4个菜单中
menu(menu_name, item_name, url, options={})
6.对应的中文
plugin/<plugin_name>/config/locals/zh.yml


7.其他

安装插件后需要迁移数据库:rake redmine:plugins:migrate RAILS_ENV=test NAME=#{plugin-name}
卸载插件时对数据库的操作:rake redmine:plugins:migrate NAME=#{plugin-name}  VERSION=0
测试前需要对数据库进行操作:rake db:migrate RAILS_ENV=test
设置环境变量:export RAILS_ENV=test

redmine命令:
关闭:{REDMINE_ROOT} $killall ruby
启动:{REDMINE_ROOT} $bin/rails s -b0.0.0.0 -p3000 -d
查看:{REDMINE_ROOT} $ps aux|grep ruby


原创粉丝点击