Commit Graph

150 Commits

Author SHA1 Message Date
Matt Fu 26cd6951db change view and action for announcement ,Lin checked. Also add validation for object_auth make sure for each object,the object will be unique for each action. 2012-02-17 17:50:23 +08:00
Matthew Kaito Juyuan Fu d2689bc59c fix bugs with token 2012-02-16 13:57:28 +08:00
Matthew Kaito Juyuan Fu 5640e07733 First version for App and Object auth.Taking Announcement as experiment 2012-02-15 18:20:44 +08:00
Matthew Kaito Juyuan Fu 17caa7cb1b Exp with object_auth 2012-02-13 17:33:48 +08:00
Matthew Kaito Juyuan Fu c88e1c8419 Merge branch 'obj_auth' into announcement_dev_view_and_auth 2012-02-12 23:24:50 +08:00
unknown 338d18e909 announcement path error 2012-02-09 14:58:59 +08:00
Matthew Kaito Juyuan Fu 3a8dbd6af4 first commit for object auth,will take new_blog for experiment 2012-02-07 16:16:48 +08:00
Matthew Kaito Juyuan Fu 394099c388 Ad banner close complete,need validation 2012-02-04 09:37:23 +08:00
Matthew Kaito Juyuan Fu 68cea1ea49 AdBanner is now working 2012-02-04 09:37:23 +08:00
Matthew Kaito Juyuan Fu d107d54a82 Ad banner close complete,need validation 2012-02-03 15:14:42 +08:00
Matthew Kaito Juyuan Fu f530eb7112 Revert "mistake commit"
This reverts commit 2608b72d65.
2012-02-03 14:39:15 +08:00
Matthew Kaito Juyuan Fu 2608b72d65 mistake commit 2012-02-03 14:28:08 +08:00
Matthew Kaito Juyuan Fu 5cebb638ce AdBanner is now working 2012-02-02 09:55:09 +08:00
Matthew Kaito Juyuan Fu a980847eb3 Basic function for AdBanner 2012-02-01 14:27:51 +08:00
Christophe Vilayphiou ccbde122df Fix bugs in design.
The static js were loaded after the page js.
parser_back_end.rb wasn't changed for the new routes.
The themes weren't parsed and saved correctly.
2012-01-31 16:38:25 +08:00
Christophe Vilayphiou 762c2f5e8a Add key in module_app.rb to use instead of title for authorization 2012-01-30 18:12:18 +08:00
Christophe Vilayphiou 46db173e0b Modifications in the Design code: the uploader works but the edit is broken 2012-01-26 12:05:25 +08:00
Christophe Vilayphiou 6a196c5d3d Embedded to referenced for users 2012-01-24 15:12:06 +08:00
Christophe Vilayphiou 83827f82ec Fix custom image class 2012-01-24 15:11:42 +08:00
Matthew Fu 4ed8a2164c First complete with manager and submanager 2012-01-24 12:28:32 +08:00
Matthew Fu 18a82d7f47 Manger and SubManager 2012-01-24 12:28:32 +08:00
Christophe Vilayphiou 9fcf8280fa Change "_filename" to "_identifier" for carrierwave 2012-01-24 11:57:27 +08:00
Christophe Vilayphiou bfd55277d7 Embed attribute_fields and sub_roles 2012-01-24 11:57:27 +08:00
chris2tof 4be97f6ea6 Merge branch 'fix_it'
Conflicts:
	app/assets/javascripts/page_edit.js
	app/assets/javascripts/rss.js
	app/assets/stylesheets/admin.css.erb
	app/assets/stylesheets/admin_back_end.css.erb
	app/controllers/admin/app_auths_controller.rb
	app/controllers/admin/module_apps_controller.rb
	app/controllers/admin/users_controller.rb
	app/controllers/application_controller.rb
	app/models/app_auth.rb
	app/models/user/user.rb
	app/views/admin/app_auths/index.html.erb
	app/views/admin/attributes/_attribute_field.html.erb
	app/views/admin/designs/_new.html.erb
	app/views/admin/designs/new.html.erb
	app/views/admin/infos/_form.html.erb
	app/views/admin/module_apps/_app_selector.html.erb
	app/views/admin/module_apps/index.html.erb
	app/views/admin/pages/_form.html.erb
	app/views/admin/roles/_form.html.erb
	app/views/admin/roles/_sub_role.html.erb
	app/views/admin/users/_form.html.erb
	app/views/admin/users/_show_sub_role.html.erb
	app/views/admin/users/_sub_role.html.erb
	app/views/admin/users/edit.html.erb
	app/views/admin/users/index.html.erb
	app/views/admin/users/new.html.erb
	app/views/admin/users/show.html.erb
	app/views/layouts/admin.html.erb
	lib/fraisier/layout.html
	lib/parsers/parser_back_end.rb
	lib/parsers/parser_layout.rb
	lib/tasks/dev.rake
	spec/models/app_auth_basic.rb
	vendor/built_in_modules/NewBlog/.gitignore
	vendor/built_in_modules/NewBlog/Gemfile
	vendor/built_in_modules/NewBlog/Gemfile.lock
	vendor/built_in_modules/NewBlog/MIT-LICENSE
	vendor/built_in_modules/NewBlog/NewBlog.gemspec
	vendor/built_in_modules/NewBlog/README.rdoc
	vendor/built_in_modules/NewBlog/Rakefile
	vendor/built_in_modules/NewBlog/app/assets/images/NewBlog/.gitkeep
	vendor/built_in_modules/NewBlog/app/assets/javascripts/NewBlog/.gitkeep
	vendor/built_in_modules/NewBlog/app/assets/stylesheets/NewBlog/.gitkeep
	vendor/built_in_modules/NewBlog/app/assets/stylesheets/NewBlog/application.css
	vendor/built_in_modules/NewBlog/app/assets/stylesheets/NewBlog/production.css
	vendor/built_in_modules/NewBlog/app/controllers/.gitkeep
	vendor/built_in_modules/NewBlog/app/controllers/application_controller.rb
	vendor/built_in_modules/NewBlog/app/controllers/panel/blog/back_end/posts_controller.rb
	vendor/built_in_modules/NewBlog/app/helpers/.gitkeep
	vendor/built_in_modules/NewBlog/app/helpers/application_helper.rb
	vendor/built_in_modules/NewBlog/app/mailers/.gitkeep
	vendor/built_in_modules/NewBlog/app/models/.gitkeep
	vendor/built_in_modules/NewBlog/app/models/comment.rb
	vendor/built_in_modules/NewBlog/app/models/post.rb
	vendor/built_in_modules/NewBlog/app/views/.gitkeep
	vendor/built_in_modules/NewBlog/app/views/layouts/application.html.erb
	vendor/built_in_modules/NewBlog/app/views/layouts/edit_view.html.erb
	vendor/built_in_modules/NewBlog/app/views/layouts/production.html.erb
	vendor/built_in_modules/NewBlog/app/views/panel/blog/back_end/posts/_form.html.erb
	vendor/built_in_modules/NewBlog/app/views/panel/blog/back_end/posts/index.html.erb
	vendor/built_in_modules/NewBlog/app/views/panel/blog/back_end/posts/latest_post.html.erb
	vendor/built_in_modules/NewBlog/app/views/panel/blog/back_end/posts/new.html.erb
	vendor/built_in_modules/NewBlog/app/views/panel/blog/back_end/posts/show.html.erb
	vendor/built_in_modules/NewBlog/app/views/panel/blog/front_end/posts/show.html.erb
	vendor/built_in_modules/NewBlog/app/views/panel/blog/widget/posts/index.html.erb
	vendor/built_in_modules/NewBlog/app/views/panel/blog/widget/posts/latest_post.html.erb
	vendor/built_in_modules/NewBlog/config/locales/en.yml
	vendor/built_in_modules/NewBlog/lib/NewBlog.rb
	vendor/built_in_modules/NewBlog/lib/NewBlog/engine.rb
	vendor/built_in_modules/NewBlog/lib/NewBlog/version.rb
	vendor/built_in_modules/NewBlog/lib/tasks/NewBlog_tasks.rake
	vendor/built_in_modules/NewBlog/script/rails
	vendor/built_in_modules/NewBlog/test/NewBlog_test.rb
	vendor/built_in_modules/NewBlog/test/dummy/Rakefile
	vendor/built_in_modules/NewBlog/test/dummy/app/assets/javascripts/application.js
	vendor/built_in_modules/NewBlog/test/dummy/app/assets/stylesheets/application.css
	vendor/built_in_modules/NewBlog/test/dummy/app/controllers/application_controller.rb
	vendor/built_in_modules/NewBlog/test/dummy/app/helpers/application_helper.rb
	vendor/built_in_modules/NewBlog/test/dummy/app/mailers/.gitkeep
	vendor/built_in_modules/NewBlog/test/dummy/app/models/.gitkeep
	vendor/built_in_modules/NewBlog/test/dummy/app/views/layouts/application.html.erb
	vendor/built_in_modules/NewBlog/test/dummy/config.ru
	vendor/built_in_modules/NewBlog/test/dummy/config/application.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/boot.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/database.yml
	vendor/built_in_modules/NewBlog/test/dummy/config/environment.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/environments/development.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/environments/production.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/environments/test.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/initializers/backtrace_silencers.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/initializers/inflections.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/initializers/mime_types.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/initializers/secret_token.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/initializers/session_store.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/initializers/wrap_parameters.rb
	vendor/built_in_modules/NewBlog/test/dummy/config/locales/en.yml
	vendor/built_in_modules/NewBlog/test/dummy/config/mongoid.yml
	vendor/built_in_modules/NewBlog/test/dummy/config/routes.rb
	vendor/built_in_modules/NewBlog/test/dummy/lib/assets/.gitkeep
	vendor/built_in_modules/NewBlog/test/dummy/log/.gitkeep
	vendor/built_in_modules/NewBlog/test/dummy/public/404.html
	vendor/built_in_modules/NewBlog/test/dummy/public/422.html
	vendor/built_in_modules/NewBlog/test/dummy/public/500.html
	vendor/built_in_modules/NewBlog/test/dummy/public/favicon.ico
	vendor/built_in_modules/NewBlog/test/dummy/script/rails
	vendor/built_in_modules/NewBlog/test/integration/navigation_test.rb
	vendor/built_in_modules/NewBlog/test/test_helper.rb
	vendor/built_in_modules/blog/app/controllers/application_controller.rb
	vendor/built_in_modules/blog/app/controllers/panel/blog/posts_controller.rb
	vendor/built_in_modules/blog/app/helpers/application_helper.rb
	vendor/built_in_modules/blog/app/models/comment.rb
	vendor/built_in_modules/blog/app/models/post.rb
	vendor/built_in_modules/blog/app/views/layouts/application.html.erb
	vendor/built_in_modules/blog/app/views/panel/blog/posts/_form.html.erb
	vendor/built_in_modules/blog/app/views/panel/blog/posts/index.html.erb
	vendor/built_in_modules/blog/app/views/panel/blog/posts/show.html.erb
	vendor/built_in_modules/blog/config/initializers/backtrace_silencers.rb
	vendor/built_in_modules/blog/config/initializers/inflections.rb
	vendor/built_in_modules/blog/config/initializers/mime_types.rb
	vendor/built_in_modules/blog/public/404.html
	vendor/built_in_modules/blog/public/422.html
	vendor/built_in_modules/blog/public/500.html
	vendor/built_in_modules/blog/public/favicon.ico
	vendor/built_in_modules/blog/public/stylesheets/.gitkeep
	vendor/built_in_modules/blog/script/rails
	vendor/built_in_modules/blog/vendor/plugins/.gitkeep
	vendor/built_in_modules/new_blog/.gitignore
	vendor/built_in_modules/new_blog/Gemfile
	vendor/built_in_modules/new_blog/Gemfile.lock
	vendor/built_in_modules/new_blog/MIT-LICENSE
	vendor/built_in_modules/new_blog/README.rdoc
	vendor/built_in_modules/new_blog/Rakefile
	vendor/built_in_modules/new_blog/app/assets/images/NewBlog/.gitkeep
	vendor/built_in_modules/new_blog/app/assets/javascripts/NewBlog/.gitkeep
	vendor/built_in_modules/new_blog/app/assets/stylesheets/NewBlog/.gitkeep
	vendor/built_in_modules/new_blog/app/assets/stylesheets/NewBlog/application.css
	vendor/built_in_modules/new_blog/app/assets/stylesheets/NewBlog/production.css
	vendor/built_in_modules/new_blog/app/controllers/.gitkeep
	vendor/built_in_modules/new_blog/app/controllers/application_controller.rb
	vendor/built_in_modules/new_blog/app/controllers/panel/new_blog/back_end/posts_controller.rb
	vendor/built_in_modules/new_blog/app/helpers/.gitkeep
	vendor/built_in_modules/new_blog/app/mailers/.gitkeep
	vendor/built_in_modules/new_blog/app/models/.gitkeep
	vendor/built_in_modules/new_blog/app/models/comment.rb
	vendor/built_in_modules/new_blog/app/models/post.rb
	vendor/built_in_modules/new_blog/app/views/.gitkeep
	vendor/built_in_modules/new_blog/app/views/layouts/application.html.erb
	vendor/built_in_modules/new_blog/app/views/layouts/edit_view.html.erb
	vendor/built_in_modules/new_blog/app/views/layouts/production.html.erb
	vendor/built_in_modules/new_blog/app/views/panel/new_blog/back_end/posts/_form.html.erb
	vendor/built_in_modules/new_blog/app/views/panel/new_blog/back_end/posts/index.html.erb
	vendor/built_in_modules/new_blog/app/views/panel/new_blog/back_end/posts/latest_post.html.erb
	vendor/built_in_modules/new_blog/app/views/panel/new_blog/back_end/posts/new.html.erb
	vendor/built_in_modules/new_blog/app/views/panel/new_blog/back_end/posts/show.html.erb
	vendor/built_in_modules/new_blog/app/views/panel/new_blog/front_end/posts/show.html.erb
	vendor/built_in_modules/new_blog/app/views/panel/new_blog/widget/posts/index.html.erb
	vendor/built_in_modules/new_blog/app/views/panel/new_blog/widget/posts/latest_post.html.erb
	vendor/built_in_modules/new_blog/config/locales/en.yml
	vendor/built_in_modules/new_blog/lib/new_blog/version.rb
	vendor/built_in_modules/new_blog/lib/tasks/NewBlog_tasks.rake
	vendor/built_in_modules/new_blog/new_blog.gemspec
	vendor/built_in_modules/new_blog/script/rails
	vendor/built_in_modules/new_blog/test/NewBlog_test.rb
	vendor/built_in_modules/new_blog/test/dummy/Rakefile
	vendor/built_in_modules/new_blog/test/dummy/app/assets/javascripts/application.js
	vendor/built_in_modules/new_blog/test/dummy/app/assets/stylesheets/application.css
	vendor/built_in_modules/new_blog/test/dummy/app/controllers/application_controller.rb
	vendor/built_in_modules/new_blog/test/dummy/app/helpers/application_helper.rb
	vendor/built_in_modules/new_blog/test/dummy/app/mailers/.gitkeep
	vendor/built_in_modules/new_blog/test/dummy/app/models/.gitkeep
	vendor/built_in_modules/new_blog/test/dummy/app/views/layouts/application.html.erb
	vendor/built_in_modules/new_blog/test/dummy/config.ru
	vendor/built_in_modules/new_blog/test/dummy/config/application.rb
	vendor/built_in_modules/new_blog/test/dummy/config/boot.rb
	vendor/built_in_modules/new_blog/test/dummy/config/database.yml
	vendor/built_in_modules/new_blog/test/dummy/config/environment.rb
	vendor/built_in_modules/new_blog/test/dummy/config/environments/development.rb
	vendor/built_in_modules/new_blog/test/dummy/config/environments/production.rb
	vendor/built_in_modules/new_blog/test/dummy/config/environments/test.rb
	vendor/built_in_modules/new_blog/test/dummy/config/initializers/backtrace_silencers.rb
	vendor/built_in_modules/new_blog/test/dummy/config/initializers/inflections.rb
	vendor/built_in_modules/new_blog/test/dummy/config/initializers/mime_types.rb
	vendor/built_in_modules/new_blog/test/dummy/config/initializers/secret_token.rb
	vendor/built_in_modules/new_blog/test/dummy/config/initializers/session_store.rb
	vendor/built_in_modules/new_blog/test/dummy/config/initializers/wrap_parameters.rb
	vendor/built_in_modules/new_blog/test/dummy/config/locales/en.yml
	vendor/built_in_modules/new_blog/test/dummy/config/mongoid.yml
	vendor/built_in_modules/new_blog/test/dummy/config/routes.rb
	vendor/built_in_modules/new_blog/test/dummy/lib/assets/.gitkeep
	vendor/built_in_modules/new_blog/test/dummy/log/.gitkeep
	vendor/built_in_modules/new_blog/test/dummy/public/404.html
	vendor/built_in_modules/new_blog/test/dummy/public/422.html
	vendor/built_in_modules/new_blog/test/dummy/public/500.html
	vendor/built_in_modules/new_blog/test/dummy/public/favicon.ico
	vendor/built_in_modules/new_blog/test/dummy/script/rails
	vendor/built_in_modules/new_blog/test/integration/navigation_test.rb
	vendor/built_in_modules/new_blog/test/test_helper.rb
	vendor/plugins/NewBlog/.gitignore
	vendor/plugins/NewBlog/Gemfile
	vendor/plugins/NewBlog/Gemfile.lock
	vendor/plugins/NewBlog/MIT-LICENSE
	vendor/plugins/NewBlog/NewBlog.gemspec
	vendor/plugins/NewBlog/README.rdoc
	vendor/plugins/NewBlog/Rakefile
	vendor/plugins/NewBlog/app/assets/images/NewBlog/.gitkeep
	vendor/plugins/NewBlog/app/assets/javascripts/NewBlog/.gitkeep
	vendor/plugins/NewBlog/app/assets/stylesheets/NewBlog/.gitkeep
	vendor/plugins/NewBlog/app/assets/stylesheets/NewBlog/application.css
	vendor/plugins/NewBlog/app/assets/stylesheets/NewBlog/production.css
	vendor/plugins/NewBlog/app/controllers/.gitkeep
	vendor/plugins/NewBlog/app/helpers/.gitkeep
	vendor/plugins/NewBlog/app/mailers/.gitkeep
	vendor/plugins/NewBlog/app/models/.gitkeep
	vendor/plugins/NewBlog/app/views/.gitkeep
	vendor/plugins/NewBlog/app/views/layouts/edit_view.html.erb
	vendor/plugins/NewBlog/app/views/layouts/production.html.erb
	vendor/plugins/NewBlog/app/views/panel/blog/posts/index.html.erb
	vendor/plugins/NewBlog/app/views/panel/blog/posts/latest_post.html.erb
	vendor/plugins/NewBlog/app/views/panel/blog/posts/new.html.erb
	vendor/plugins/NewBlog/app/views/panel/blog/posts/show.html.erb
	vendor/plugins/NewBlog/app/views/panel/blog/posts/widget_index.html.erb
	vendor/plugins/NewBlog/app/views/panel/blog/posts/widget_latest_post.html.erb
	vendor/plugins/NewBlog/config/locales/en.yml
	vendor/plugins/NewBlog/lib/NewBlog/version.rb
	vendor/plugins/NewBlog/lib/tasks/NewBlog_tasks.rake
	vendor/plugins/NewBlog/script/rails
	vendor/plugins/NewBlog/test/NewBlog_test.rb
	vendor/plugins/NewBlog/test/dummy/Rakefile
	vendor/plugins/NewBlog/test/dummy/app/assets/javascripts/application.js
	vendor/plugins/NewBlog/test/dummy/app/assets/stylesheets/application.css
	vendor/plugins/NewBlog/test/dummy/app/controllers/application_controller.rb
	vendor/plugins/NewBlog/test/dummy/app/mailers/.gitkeep
	vendor/plugins/NewBlog/test/dummy/app/models/.gitkeep
	vendor/plugins/NewBlog/test/dummy/app/views/layouts/application.html.erb
	vendor/plugins/NewBlog/test/dummy/config.ru
	vendor/plugins/NewBlog/test/dummy/config/application.rb
	vendor/plugins/NewBlog/test/dummy/config/boot.rb
	vendor/plugins/NewBlog/test/dummy/config/database.yml
	vendor/plugins/NewBlog/test/dummy/config/environment.rb
	vendor/plugins/NewBlog/test/dummy/config/environments/development.rb
	vendor/plugins/NewBlog/test/dummy/config/environments/production.rb
	vendor/plugins/NewBlog/test/dummy/config/environments/test.rb
	vendor/plugins/NewBlog/test/dummy/config/initializers/secret_token.rb
	vendor/plugins/NewBlog/test/dummy/config/initializers/session_store.rb
	vendor/plugins/NewBlog/test/dummy/config/initializers/wrap_parameters.rb
	vendor/plugins/NewBlog/test/dummy/config/locales/en.yml
	vendor/plugins/NewBlog/test/dummy/config/mongoid.yml
	vendor/plugins/NewBlog/test/dummy/config/routes.rb
	vendor/plugins/NewBlog/test/integration/navigation_test.rb
	vendor/plugins/NewBlog/test/test_helper.rb
2012-01-12 18:15:43 +08:00
Matthew Fu 7b40706aed fixing for app_auth 2012-01-05 16:20:51 +08:00
chris2tof 62aaf79491 Merge with sub_roles 2011-12-23 18:34:21 +08:00
chris2tof a9f06b9517 Divide parser into sub-parsers 2011-12-22 16:23:48 +08:00
chris2tof d465febca7 merge with november_presentation 2011-12-22 15:43:38 +08:00
chris2tof a09f8e4551 merge with november_presentation 2011-12-20 16:47:17 +08:00
chris2tof afbffe37d5 Users can now be saved with sub_roles 2011-12-20 14:35:28 +08:00
chris2tof 4108ebf06d Fix mongoid deeply nested polimorphic
Got the commit from github. The roles and sub_roles save.
2011-12-19 21:22:26 +08:00
chris2tof d27d7a623c Changes for sub_roles
Issues: update doesn't create new i18n_variables, role form has bugs
2011-12-18 10:07:42 +08:00
chris2tof b7ac5478b4 Change role structure
Still needs to: change the views and create sub_roles in the dev.rake
2011-12-10 18:12:39 +08:00
chris2tof 962bf03af2 Remove snippet 2011-12-05 10:27:22 +08:00
chris2tof 66bc0ce560 Modified dev.rake 2011-11-20 03:16:35 +08:00
chris2tof ad9f9bbf5c Final Ray's modifications 2011-11-19 21:47:18 +08:00
chris2tof dac6348402 Integration of module_app workflow 2011-11-19 14:33:26 +08:00
chris2tof 65349796d0 Ray's modifications 2011-11-18 16:43:14 +08:00
chris2tof 861237d65b Integration of Ray' modifications 2011-11-17 20:02:58 +08:00
Matthew Fu 84ebc8306b APP zip package placed in lib now can be unzip into vendor
APP zip package placed in lib now can be unzip into vendor,however
server can not restart
2011-11-16 15:21:31 +08:00
chris2tof c1d77fa6d6 Changes for purchases - handle different type of purchases 2011-11-14 10:22:31 +08:00
chris2tof d9d7099da6 Fix bug: users can now be saved 2011-11-12 17:54:45 +08:00
chris2tof 2e86d8081f Modifications for images in html code 2011-10-18 11:21:24 +08:00
chris2tof 0ca354cfd0 Clean code and new image uploader 2011-09-14 15:11:50 +08:00
chris2tof f2e3cb00db Fix bug when editing a page, the theme wasn't including blank 2011-09-13 14:03:03 +08:00
chris2tof 4db88282a1 Modification in Design structure_css -> default_css 2011-09-13 11:57:20 +08:00
chris2tof 07ccacb7d7 Modifications of the JS in Design 2011-09-09 15:40:13 +08:00
chris2tof 77b8fcdd1d Fix previous workaround for the uploaded Design 2011-09-09 13:44:43 +08:00
chris2tof a571d1dcff Clean code and workaround mongoid embedded with carrierwave 2011-09-08 18:12:04 +08:00
chris2tof 22c9ca4c74 Handle "reset.css" and add link in the generated menu 2011-09-05 16:06:17 +08:00