You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
(6) |
May
(148) |
Jun
(114) |
Jul
(152) |
Aug
(47) |
Sep
(9) |
Oct
(6) |
Nov
(45) |
Dec
(44) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(69) |
Feb
(77) |
Mar
(32) |
Apr
(74) |
May
(63) |
Jun
(59) |
Jul
(91) |
Aug
(39) |
Sep
(52) |
Oct
(105) |
Nov
(94) |
Dec
(16) |
| 2009 |
Jan
(24) |
Feb
(12) |
Mar
(66) |
Apr
(8) |
May
(15) |
Jun
(31) |
Jul
(39) |
Aug
(94) |
Sep
(18) |
Oct
(16) |
Nov
(73) |
Dec
(168) |
| 2010 |
Jan
(176) |
Feb
(2) |
Mar
(1) |
Apr
(6) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
|
From: <hma...@us...> - 2010-11-24 05:25:15
|
Revision: 2104
http://ndlb.svn.sourceforge.net/ndlb/?rev=2104&view=rev
Author: hmazariegos
Date: 2010-11-24 05:25:07 +0000 (Wed, 24 Nov 2010)
Log Message:
-----------
creating shanti_knowledge_maps branch
Added Paths:
-----------
portal/ror/topical_map_builder/branches/shanti_knowledge_maps/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-04-09 04:03:34
|
Revision: 2102
http://ndlb.svn.sourceforge.net/ndlb/?rev=2102&view=rev
Author: hmazariegos
Date: 2010-04-09 04:03:28 +0000 (Fri, 09 Apr 2010)
Log Message:
-----------
moved shanti_integration plugin to rubyforge
Removed Paths:
-------------
portal/ror/plugins/shanti_integration/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-04-09 04:02:33
|
Revision: 2101
http://ndlb.svn.sourceforge.net/ndlb/?rev=2101&view=rev
Author: hmazariegos
Date: 2010-04-09 04:02:26 +0000 (Fri, 09 Apr 2010)
Log Message:
-----------
deleted shanti_engine plugin since shanti_integration will be used
Removed Paths:
-------------
portal/ror/plugins/shanti_engine/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-04-09 03:13:57
|
Revision: 2100
http://ndlb.svn.sourceforge.net/ndlb/?rev=2100&view=rev
Author: hmazariegos
Date: 2010-04-09 03:13:44 +0000 (Fri, 09 Apr 2010)
Log Message:
-----------
Integrated kmaps_engine plugin from git instead of tbm_engine from svn. and cofigured properly. Added tinymce helper method since that method is in thl_integration plugin.
Added Paths:
-----------
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/MIT-LICENSE
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/README
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/Rakefile
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/apis/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/apis/sakai_session_api.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/controllers/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/controllers/application_controller.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/controllers/categories_controller.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/controllers/descriptions_controller.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/controllers/home_controller.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/controllers/pop_up_categories_controller.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/controllers/sources_controller.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/controllers/tasks_controller.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/controllers/translated_sources_controller.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/controllers/translated_titles_controller.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/helpers/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/helpers/application_helper.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/helpers/categories_helper.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/helpers/descriptions_helper.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/helpers/home_helper.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/helpers/pop_up_categories_helper.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/helpers/sources_helper.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/helpers/tasks_helper.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/helpers/translated_sources_helper.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/helpers/translated_titles_helper.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/models/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/models/category.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/models/description.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/models/source.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/models/translated_source.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/models/translated_title.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/sweepers/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/sweepers/category_sweeper.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_associated_objects_count.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_category.csv.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_condensed_show.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_contracted.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_curators_selector.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_expanded.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_form.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_index.csv.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_index.xml.builder
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_info.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_main_edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_main_show.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_persistent_links.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_primary_selector.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_show.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_show.xml.builder
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/_title.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/iframe.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/index.csv.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/main_edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/main_index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/main_new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/main_show.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/show.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/categories/show.xml.builder
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/_authors_selector.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/_contracted.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/_edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/_expanded.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/_form.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/_index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/_new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/descriptions/show.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/home/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/home/index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/layouts/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/layouts/application.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/layouts/iframe.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/layouts/multi_column.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/pop_up_categories/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/pop_up_categories/_contracted.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/pop_up_categories/_expanded.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/pop_up_categories/_index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/pop_up_categories/_select_index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/pop_up_categories/_selectable_category.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/pop_up_categories/index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/pop_up_categories/show.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sakai_sessions/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sakai_sessions/index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/shared/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/shared/_header.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sources/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sources/_contracted.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sources/_edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sources/_expanded.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sources/_form.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sources/_index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sources/_new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sources/edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sources/index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sources/new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/sources/show.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/tasks/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/tasks/_new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/tasks/create.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/tasks/file.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/tasks/index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/tasks/new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_sources/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_sources/_authors_selector.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_sources/_edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_sources/_new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_sources/edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_sources/index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_sources/new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_sources/show.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_titles/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_titles/_authors_selector.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_titles/_edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_titles/_new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_titles/edit.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_titles/index.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_titles/new.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/app/views/translated_titles/show.html.erb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/config/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/config/locales/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/config/locales/dz/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/config/locales/dz/models.yml
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/config/locales/dz/views.yml
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/config/locales/en/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/config/locales/en/models.yml
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/config/locales/en/views.yml
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/config/routes.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/008_create_categories.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/010_create_translated_titles.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/20090216063955_create_descriptions.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/20090216064914_create_categories_curators.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/20090216065512_create_authors_descriptions.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/20090219174907_create_authors_translated_titles.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/20090313223235_add_published_to_category.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/20090430035840_add_cumulative_to_category.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/20090527215814_create_sources.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/20090719010706_add_title_to_description.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/20090729031747_create_translated_sources.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/migrate/20090731042553_create_authors_translated_sources.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/db/schema.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/init.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/install.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/lib/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/lib/array_ext.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/lib/author_attribution.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/lib/spelling.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/lib/tmb_engine.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/lib/tree.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/lib/util.rb
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/Evt3.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/Him3.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/Map3.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/Org3.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/Per3.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/Pla3.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/Pro3.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/Ref3.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/TAG.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/Tib3.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/Top3.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/Txt3.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/bookmark_add.png
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/images/rails.png
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/application.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/controls.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/dragdrop.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/effects.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/iframe.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/lightbox.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/prototype.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/service_plug.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/langs/en.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/license.txt
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advhr/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advhr/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advhr/css/advhr.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advhr/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advhr/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advhr/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advhr/js/rule.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advhr/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advhr/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advhr/rule.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/css/advimage.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/image.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/img/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/img/sample.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/js/image.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advlink/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advlink/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advlink/css/advlink.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advlink/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advlink/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advlink/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advlink/js/advlink.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advlink/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advlink/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/advlink/link.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/autosave/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/autosave/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/autosave/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/bbcode/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/compat2x/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/compat2x/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/compat2x/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/contextmenu/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/directionality/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/directionality/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/directionality/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/emotions.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cool.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cry.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-frown.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-smile.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-wink.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/img/smiley-yell.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/js/emotions.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/emotions/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/example/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/example/dialog.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/example/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/example/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/example/img/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/example/img/example.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/example/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/example/js/dialog.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/example/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/example/langs/en.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/example/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullpage/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullpage/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullpage/css/fullpage.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullpage/fullpage.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullpage/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullpage/js/fullpage.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullpage/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullpage/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullscreen/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/iespell/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/iespell/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/iespell/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/skins/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/inlinepopups/template.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/insertdatetime/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/layer/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/layer/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/layer/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/css/content.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/css/media.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/img/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/img/flash.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/img/flv_player.swf
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/img/quicktime.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/img/realmedia.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/img/shockwave.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/img/trans.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/img/windowsmedia.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/js/embed.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/js/media.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/media/media.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/nonbreaking/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/noneditable/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/pagebreak/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/pagebreak/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/pagebreak/css/content.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/pagebreak/img/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/pagebreak/img/trans.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/blank.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/css/blank.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/css/pasteword.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/js/pastetext.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/js/pasteword.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/pastetext.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/paste/pasteword.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/preview/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/preview/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/preview/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/preview/example.html
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/preview/jscripts/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/preview/jscripts/embed.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/preview/preview.html
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/print/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/print/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/print/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/safari/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/safari/blank.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/safari/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/safari/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/save/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/save/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/save/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/searchreplace/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/searchreplace/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/searchreplace/css/searchreplace.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/searchreplace/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/searchreplace/js/searchreplace.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/searchreplace/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/searchreplace/searchreplace.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/spellchecker/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/spellchecker/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/spellchecker/img/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/style/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/style/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/style/css/props.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/style/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/style/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/style/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/style/js/props.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/style/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/style/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/style/props.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/tabfocus/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/tabfocus/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/cell.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/css/cell.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/css/row.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/css/table.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/js/cell.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/js/merge_cells.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/js/row.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/js/table.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/merge_cells.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/row.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/table/table.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/template/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/template/blank.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/template/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/template/css/template.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/template/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/template/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/template/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/template/js/template.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/template/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/template/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/template/template.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/visualchars/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/advanced/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/advanced/about.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/advanced/anchor.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/advanced/charmap.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/advanced/color_picker.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/advanced/editor_template.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/advanced/image.htm
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/advanced/img/
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/kmaps_engine/public/javascripts/tiny_mce/themes/advanced/img/icons.gif
...
[truncated message content] |
|
From: <hma...@us...> - 2010-04-09 00:37:37
|
Revision: 2099
http://ndlb.svn.sourceforge.net/ndlb/?rev=2099&view=rev
Author: hmazariegos
Date: 2010-04-09 00:37:29 +0000 (Fri, 09 Apr 2010)
Log Message:
-----------
Integrated kmaps_engine plugin from git instead of tbm_engine from svn. and cofigured properly. Added tinymce helper method since that method is in thl_integration plugin.
Modified Paths:
--------------
portal/ror/topical_map_builder/branches/fathom/app/helpers/application_helper.rb
portal/ror/topical_map_builder/branches/fathom/config/environment.rb
Modified: portal/ror/topical_map_builder/branches/fathom/app/helpers/application_helper.rb
===================================================================
--- portal/ror/topical_map_builder/branches/fathom/app/helpers/application_helper.rb 2010-04-08 04:20:33 UTC (rev 2098)
+++ portal/ror/topical_map_builder/branches/fathom/app/helpers/application_helper.rb 2010-04-09 00:37:29 UTC (rev 2099)
@@ -77,4 +77,37 @@
def language_option_links
render(:partial => 'sessions/language_options')
end
+
+ def tagged_tinymce_script
+ str = "<script type='text/javascript'>"+ "\n"
+ str += "//<![CDATA[" + "\n"
+ str += "tinyMCE.init({" + "\n"
+ str += "editor_selector : 'mceEditor'," + "\n"
+ str += "height : '270px'," + "\n"
+ str += "mode : 'textareas'," + "\n"
+ str += "noneditable_leave_contenteditable : 'true'," + "\n"
+ str += "plugins : 'contextmenu,paste,media,fullscreen,template,noneditable, table, spellchecker'," + "\n"
+ str += "template_external_list_url : '/templates/templates.js'," + "\n"
+ str += "content_css : '/stylesheets/customtinymce.css'," + "\n"
+ str += "theme : 'advanced'," + "\n"
+ str += "theme_advanced_blockformats : 'p,h1,h2,h3,h4,h5,h6'," + "\n"
+ str += "theme_advanced_buttons1 : ' fullscreen,separator,bold,italic,underline,strikethrough,separator,undo,redo,separator,link,unlink,template,formatselect, code'," + "\n"
+ str += "theme_advanced_buttons2 : 'cut,copy,paste,separator,pastetext,pasteword,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifiyfull,separator,removeformat,charmap'," + "\n"
+ str += "theme_advanced_buttons3 : 'spellchecker,tablecontrols '," + "\n"
+ str += "spellchecker_languages : '+English=en'," + "\n"
+ str += "spellchecker_rpc_url : '/application/spellchecker'," + "\n"
+ str += "gecko_spellcheck : 'true'," + "\n"
+ str += "table_styles : 'Header 1=header1;Header 2=header2;Header 3=header3'," + "\n"
+ str += "table_cell_styles : 'Header 1=header1;Header 2=header2;Header 3=header3;Table Cell=tableCel1'," + "\n"
+ str += "table_row_styles : 'Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1'," + "\n"
+ str += "theme_advanced_resizing : 'true'," + "\n"
+ str += "theme_advanced_toolbar_align : 'left'," + "\n"
+ str += "theme_advanced_toolbar_location : 'top'," + "\n"
+ str += "width : '415px'" + "\n"
+ str += "});" + "\n"
+ str += "//]]>" + "\n"
+ str += "</script> "
+ return str
+ end
+
end
\ No newline at end of file
Modified: portal/ror/topical_map_builder/branches/fathom/config/environment.rb
===================================================================
--- portal/ror/topical_map_builder/branches/fathom/config/environment.rb 2010-04-08 04:20:33 UTC (rev 2098)
+++ portal/ror/topical_map_builder/branches/fathom/config/environment.rb 2010-04-09 00:37:29 UTC (rev 2099)
@@ -27,7 +27,7 @@
# Only load the plugins named here, in the order given (default is alphabetical).
# :all can be used as a placeholder for all plugins not explicitly named
- config.plugins = [:globalize2, :acts_as_tree, :tmb_engine, :shanti_integration, :all]
+ config.plugins = [:globalize2, :acts_as_tree, :kmaps_engine, :shanti_integration, :all]
# Add additional load paths for your own custom dirs
# config.load_paths += %W( #{RAILS_ROOT}/extras )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-04-08 04:20:39
|
Revision: 2098
http://ndlb.svn.sourceforge.net/ndlb/?rev=2098&view=rev
Author: hmazariegos
Date: 2010-04-08 04:20:33 +0000 (Thu, 08 Apr 2010)
Log Message:
-----------
replaced shanti_integration on load for environment.
Modified Paths:
--------------
portal/ror/topical_map_builder/branches/fathom/config/environment.rb
Modified: portal/ror/topical_map_builder/branches/fathom/config/environment.rb
===================================================================
--- portal/ror/topical_map_builder/branches/fathom/config/environment.rb 2010-04-08 03:37:41 UTC (rev 2097)
+++ portal/ror/topical_map_builder/branches/fathom/config/environment.rb 2010-04-08 04:20:33 UTC (rev 2098)
@@ -27,7 +27,7 @@
# Only load the plugins named here, in the order given (default is alphabetical).
# :all can be used as a placeholder for all plugins not explicitly named
- config.plugins = [:globalize2, :acts_as_tree, :tmb_engine, :shanti_engine, :all]
+ config.plugins = [:globalize2, :acts_as_tree, :tmb_engine, :shanti_integration, :all]
# Add additional load paths for your own custom dirs
# config.load_paths += %W( #{RAILS_ROOT}/extras )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-04-08 03:37:48
|
Revision: 2097
http://ndlb.svn.sourceforge.net/ndlb/?rev=2097&view=rev
Author: hmazariegos
Date: 2010-04-08 03:37:41 +0000 (Thu, 08 Apr 2010)
Log Message:
-----------
replaced shanti_engine plugin by shanti_integration plugin. Added configuratiion to application_helper to work with new plugin.
Modified Paths:
--------------
portal/ror/topical_map_builder/branches/fathom/app/helpers/application_helper.rb
Property Changed:
----------------
portal/ror/topical_map_builder/branches/fathom/vendor/plugins/
Modified: portal/ror/topical_map_builder/branches/fathom/app/helpers/application_helper.rb
===================================================================
--- portal/ror/topical_map_builder/branches/fathom/app/helpers/application_helper.rb 2010-03-30 02:16:04 UTC (rev 2096)
+++ portal/ror/topical_map_builder/branches/fathom/app/helpers/application_helper.rb 2010-04-08 03:37:41 UTC (rev 2097)
@@ -1,7 +1,7 @@
# Methods added to this helper will be available to all templates in the application.
module ApplicationHelper
def stylesheet_files
- super + ['tmb', 'tmb_implicit'] #['base', 'language_support', 'authenticated_system', 'tmb', 'tmb_implicit']
+ ['base', 'language_support', 'authenticated_system','tmb', 'tmb_implicit'] + super
end
def javascript_files
@@ -16,7 +16,6 @@
return javascript_include_tag(*javascript_files)
end
-
def join_with_and(list)
size = list.size
case size
@@ -26,4 +25,56 @@
when 3 then [list[0..size-2].join(', '), list[size-1]].join(', and ')
end
end
+
+ def main_navigation_items()
+ return @main_navigation_items if @main_navigation_items
+ # basic menu options
+ @main_navigation_items = [
+ { :id => :home, :text => 'Home', :link => root_path },
+ ]
+ @current_nav_item = :home
+
+ return @main_navigation_items
+ end
+
+ def site_title(opts={:html=>true})
+ opts[:html] ? 'SHANTI UVa Kmaps' : 'SHANTI UVa Kmaps'
+ end
+
+ def banner_title(opts={:html=>true})
+ opts[:html] ? 'SHANTI - Kmaps' : 'SHANTI - Kmaps'
+ end
+
+ def page_title()
+ return "" #if @current_nav_item == :users
+
+ # Supply reasonable default if no current_nav_item is given.
+ if @current_nav_item
+ main_navigation_items.select { |item| item[:id] == @current_nav_item }.first[:text]
+ else
+ ''
+ end
+ end
+
+
+ def login_status_links()
+ return "<div id=\"login-status\">" +
+ "#{login_status}#{' '*3}" +
+ language_option_links +
+ "</div>\n"
+ end
+
+ # this method relies on the authenticated_system plugin
+ def login_status
+ if !logged_in?
+ return "#{link_to 'Login', authenticated_system_login_path}."
+ else
+ return "#{current_user.login}. #{link_to 'Logout', authenticated_system_logout_path}."
+ end
+ end
+
+ # this method relies on the complex scripts plugin
+ def language_option_links
+ render(:partial => 'sessions/language_options')
+ end
end
\ No newline at end of file
Property changes on: portal/ror/topical_map_builder/branches/fathom/vendor/plugins
___________________________________________________________________
Modified: svn:externals
- acts_as_tree http://dev.rubyonrails.org/svn/rails/plugins/acts_as_tree
annotate_models http://repo.pragprog.com/svn/Public/plugins/annotate_models
complex_scripts http://ndlb.svn.sourceforge.net/svnroot/ndlb/portal/ror/plugins/complex_scripts/trunk
newrelic_rpm http://newrelic.rubyforge.org/svn/newrelic_rpm
authenticated_system https://ndlb.svn.sourceforge.net/svnroot/ndlb/portal/ror/plugins/authenticated_system/trunk
tmb_engine https://ndlb.svn.sourceforge.net/svnroot/ndlb/portal/ror/plugins/tmb_engine/trunk
places_integration https://ndlb.svn.sourceforge.net/svnroot/ndlb/portal/ror/plugins/places_integration/trunk
media_integration https://ndlb.svn.sourceforge.net/svnroot/ndlb/portal/ror/plugins/media_integration/trunk
shanti_engine https://ndlb.svn.sourceforge.net/svnroot/ndlb/portal/ror/plugins/shanti_engine/trunk
+ acts_as_tree http://dev.rubyonrails.org/svn/rails/plugins/acts_as_tree
annotate_models http://repo.pragprog.com/svn/Public/plugins/annotate_models
complex_scripts http://ndlb.svn.sourceforge.net/svnroot/ndlb/portal/ror/plugins/complex_scripts/trunk
newrelic_rpm http://newrelic.rubyforge.org/svn/newrelic_rpm
authenticated_system https://ndlb.svn.sourceforge.net/svnroot/ndlb/portal/ror/plugins/authenticated_system/trunk
tmb_engine https://ndlb.svn.sourceforge.net/svnroot/ndlb/portal/ror/plugins/tmb_engine/trunk
places_integration https://ndlb.svn.sourceforge.net/svnroot/ndlb/portal/ror/plugins/places_integration/trunk
media_integration https://ndlb.svn.sourceforge.net/svnroot/ndlb/portal/ror/plugins/media_integration/trunk
shanti_integration svn+ssh://rubyforge.org/var/svn/fathom/plugins/shanti_integration/trunk
shanti_integration http://rubyforge.org/var/svn/fathom/plugins/shanti_integration/trunk
shanti_integration svn://rubyforge.org/var/svn/fathom/plugins/shanti_integration/trunk
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-03-30 02:16:10
|
Revision: 2096
http://ndlb.svn.sourceforge.net/ndlb/?rev=2096&view=rev
Author: hmazariegos
Date: 2010-03-30 02:16:04 +0000 (Tue, 30 Mar 2010)
Log Message:
-----------
shanti_integration plugin for shanti look & feel.
Added Paths:
-----------
portal/ror/plugins/shanti_integration/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tom...@us...> - 2010-02-04 23:15:15
|
Revision: 2095
http://ndlb.svn.sourceforge.net/ndlb/?rev=2095&view=rev
Author: tombenner
Date: 2010-02-04 23:15:08 +0000 (Thu, 04 Feb 2010)
Log Message:
-----------
Made all "&"s in wiki URLs encoded in Thl::UtilsController#proxy
Modified Paths:
--------------
portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
Modified: portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
===================================================================
--- portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-02-04 22:07:57 UTC (rev 2094)
+++ portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-02-04 23:15:08 UTC (rev 2095)
@@ -10,6 +10,13 @@
url += '&' + url_params unless url_params.blank?
url = "http://www.thlib.org" + url if url[0,1] == "/"
+ # Any "&"s in the url sent to wiki_reader.php need to be replaced by "%26"
+ if url =~ /wiki_reader\.php\?url=/
+ url_split = url.split("wiki_reader.php?url=")
+ url_split[1].gsub!("&", "%26")
+ url = url_split.join("wiki_reader.php?url=")
+ end
+
# Parse the URL with URI.parse() so we can work with its parts more easily
uri = URI.parse(URI.encode(url));
requested_host = uri.host
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tom...@us...> - 2010-02-04 22:08:04
|
Revision: 2094
http://ndlb.svn.sourceforge.net/ndlb/?rev=2094&view=rev
Author: tombenner
Date: 2010-02-04 22:07:57 +0000 (Thu, 04 Feb 2010)
Log Message:
-----------
Called URI.encode() on the URL in Thl::UtilsController#proxy before passing it to URI.parse()
Modified Paths:
--------------
portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
Modified: portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
===================================================================
--- portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 21:17:33 UTC (rev 2093)
+++ portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-02-04 22:07:57 UTC (rev 2094)
@@ -10,8 +10,8 @@
url += '&' + url_params unless url_params.blank?
url = "http://www.thlib.org" + url if url[0,1] == "/"
- # Parse the URL with URI.parse() so we can work with its parts more easily
- uri = URI.parse(url)
+ # Parse the URL with URI.parse() so we can work with its parts more easily
+ uri = URI.parse(URI.encode(url));
requested_host = uri.host
headers = {}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tom...@us...> - 2010-01-29 21:17:40
|
Revision: 2093
http://ndlb.svn.sourceforge.net/ndlb/?rev=2093&view=rev
Author: tombenner
Date: 2010-01-29 21:17:33 +0000 (Fri, 29 Jan 2010)
Log Message:
-----------
Changed the proxy script's form from /thl/utils/proxy/[url] to /thl/utils/proxy/?proxy_url=[url]
Modified Paths:
--------------
portal/ror/plugins/topical_map_builder_integration/trunk/app/helpers/topical_map_categories_helper.rb
portal/ror/plugins/topical_map_builder_integration/trunk/public/javascripts/model-searcher.js
Modified: portal/ror/plugins/topical_map_builder_integration/trunk/app/helpers/topical_map_categories_helper.rb
===================================================================
--- portal/ror/plugins/topical_map_builder_integration/trunk/app/helpers/topical_map_categories_helper.rb 2010-01-29 20:34:09 UTC (rev 2092)
+++ portal/ror/plugins/topical_map_builder_integration/trunk/app/helpers/topical_map_categories_helper.rb 2010-01-29 21:17:33 UTC (rev 2093)
@@ -26,7 +26,7 @@
fieldName: '#{field_name}',
fieldLabel: '#{field_label}',
selectedObjects: [#{selected_object}]#{searcher_options},
- proxy: '#{ActionController::Base.relative_url_root}/thl/utils/proxy/'
+ proxy: '#{ActionController::Base.relative_url_root}/thl/utils/proxy/?proxy_url='
});
});
</script>"
@@ -54,7 +54,7 @@
fieldName: '#{field_name}',
fieldLabel: '',
selectedObjects: [#{selected_object}]#{searcher_options},
- proxy: '#{ActionController::Base.relative_url_root}/thl/utils/proxy/'
+ proxy: '#{ActionController::Base.relative_url_root}/thl/utils/proxy/?proxy_url='
});
});
</script>"
Modified: portal/ror/plugins/topical_map_builder_integration/trunk/public/javascripts/model-searcher.js
===================================================================
--- portal/ror/plugins/topical_map_builder_integration/trunk/public/javascripts/model-searcher.js 2010-01-29 20:34:09 UTC (rev 2092)
+++ portal/ror/plugins/topical_map_builder_integration/trunk/public/javascripts/model-searcher.js 2010-01-29 21:17:33 UTC (rev 2093)
@@ -8,7 +8,7 @@
// A script on the same subdomain. When a URL is appended to this string, the resulting URL should return the original URL's content.
// The proxy can be bypassed by using service URLs that don't begin with "http" (and are thus on the subdomain and don't need a proxy)
- proxy: "/thl/utils/proxy/",
+ proxy: "/thl/utils/proxy/?proxy_url=",
// The id attribute of the div which contains all of DOM elements for this
divId: "",
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tom...@us...> - 2010-01-29 20:34:15
|
Revision: 2092
http://ndlb.svn.sourceforge.net/ndlb/?rev=2092&view=rev
Author: tombenner
Date: 2010-01-29 20:34:09 +0000 (Fri, 29 Jan 2010)
Log Message:
-----------
Changed the routing for Thl::UtilsController#proxy to use /?proxy_url= instead of just /, to avoid issue with Apache rejecting paths with escaped "/"s that aren't in GET params
Modified Paths:
--------------
portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
portal/ror/plugins/thdl_integration/trunk/config/routes.rb
Modified: portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
===================================================================
--- portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 18:49:35 UTC (rev 2091)
+++ portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 20:34:09 UTC (rev 2092)
@@ -5,8 +5,9 @@
# We want to grab params that are part of the requested URL, but ignore ones that are supplied by Rails
ignored_params = ["proxy_url", "action", "controller"]
url_params = params.reject{|param, val| ignored_params.include?(param) }.collect{ |param, val| param + '=' + CGI.escape(val) }.join('&')
- url = params[:proxy_url].join('/')
- url += '?' + url_params unless url_params.blank?
+
+ url = params[:proxy_url]
+ url += '&' + url_params unless url_params.blank?
url = "http://www.thlib.org" + url if url[0,1] == "/"
# Parse the URL with URI.parse() so we can work with its parts more easily
Modified: portal/ror/plugins/thdl_integration/trunk/config/routes.rb
===================================================================
--- portal/ror/plugins/thdl_integration/trunk/config/routes.rb 2010-01-29 18:49:35 UTC (rev 2091)
+++ portal/ror/plugins/thdl_integration/trunk/config/routes.rb 2010-01-29 20:34:09 UTC (rev 2092)
@@ -1,7 +1,7 @@
ActionController::Routing::Routes.draw do |map|
map.namespace(:thl) do |thl|
- thl.connect 'utils/proxy/*proxy_url', :controller => 'utils', :action => 'proxy'
+ thl.connect 'utils/proxy/', :controller => 'utils', :action => 'proxy'
end
end
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tom...@us...> - 2010-01-29 18:49:42
|
Revision: 2091
http://ndlb.svn.sourceforge.net/ndlb/?rev=2091&view=rev
Author: tombenner
Date: 2010-01-29 18:49:35 +0000 (Fri, 29 Jan 2010)
Log Message:
-----------
Removed temporary debugging code in UtilsController#proxy
Modified Paths:
--------------
portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
Modified: portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
===================================================================
--- portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 18:47:36 UTC (rev 2090)
+++ portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 18:49:35 UTC (rev 2091)
@@ -2,8 +2,6 @@
def proxy
- render :text => params.to_json and return
-
# We want to grab params that are part of the requested URL, but ignore ones that are supplied by Rails
ignored_params = ["proxy_url", "action", "controller"]
url_params = params.reject{|param, val| ignored_params.include?(param) }.collect{ |param, val| param + '=' + CGI.escape(val) }.join('&')
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tom...@us...> - 2010-01-29 18:47:50
|
Revision: 2090
http://ndlb.svn.sourceforge.net/ndlb/?rev=2090&view=rev
Author: tombenner
Date: 2010-01-29 18:47:36 +0000 (Fri, 29 Jan 2010)
Log Message:
-----------
Temporarily using debugging code in UtilsController#proxy to diagnose an issue on dev
Modified Paths:
--------------
portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
Modified: portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
===================================================================
--- portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 18:15:18 UTC (rev 2089)
+++ portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 18:47:36 UTC (rev 2090)
@@ -2,6 +2,8 @@
def proxy
+ render :text => params.to_json and return
+
# We want to grab params that are part of the requested URL, but ignore ones that are supplied by Rails
ignored_params = ["proxy_url", "action", "controller"]
url_params = params.reject{|param, val| ignored_params.include?(param) }.collect{ |param, val| param + '=' + CGI.escape(val) }.join('&')
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tom...@us...> - 2010-01-29 18:15:28
|
Revision: 2089
http://ndlb.svn.sourceforge.net/ndlb/?rev=2089&view=rev
Author: tombenner
Date: 2010-01-29 18:15:18 +0000 (Fri, 29 Jan 2010)
Log Message:
-----------
Added the intra-server handling code back into UtilsController#proxy
Modified Paths:
--------------
portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
Modified: portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
===================================================================
--- portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 18:10:23 UTC (rev 2088)
+++ portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 18:15:18 UTC (rev 2089)
@@ -16,13 +16,13 @@
# Check to see if the request is for a URL on thlib.org or a subdomain; if so, and if
# this is being run on sds[3-8], make the appropriate changes to headers and uri.host
- #if requested_host =~ /thlib.org/
- # server_host = Socket.gethostname.downcase
- # if server_host =~ /sds[3-8].itc.virginia.edu/
- # headers = { 'Host' => requested_host }
- # uri.host = '127.0.0.1'
- # end
- #end
+ if requested_host =~ /thlib.org/
+ server_host = Socket.gethostname.downcase
+ if server_host =~ /sds[3-8].itc.virginia.edu/
+ headers = { 'Host' => requested_host }
+ uri.host = '127.0.0.1'
+ end
+ end
# Required for requests without paths (e.g. http://www.google.com)
uri.path = "/" if uri.path.empty?
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tom...@us...> - 2010-01-29 18:10:35
|
Revision: 2088
http://ndlb.svn.sourceforge.net/ndlb/?rev=2088&view=rev
Author: tombenner
Date: 2010-01-29 18:10:23 +0000 (Fri, 29 Jan 2010)
Log Message:
-----------
Temporarily testing UtilsController:proxy without intra-server handling for HTTP requests
Modified Paths:
--------------
portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
Modified: portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
===================================================================
--- portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 17:45:59 UTC (rev 2087)
+++ portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 18:10:23 UTC (rev 2088)
@@ -16,13 +16,13 @@
# Check to see if the request is for a URL on thlib.org or a subdomain; if so, and if
# this is being run on sds[3-8], make the appropriate changes to headers and uri.host
- if requested_host =~ /thlib.org/
- server_host = Socket.gethostname.downcase
- if server_host =~ /sds[3-8].itc.virginia.edu/
- headers = { 'Host' => requested_host }
- uri.host = '127.0.0.1'
- end
- end
+ #if requested_host =~ /thlib.org/
+ # server_host = Socket.gethostname.downcase
+ # if server_host =~ /sds[3-8].itc.virginia.edu/
+ # headers = { 'Host' => requested_host }
+ # uri.host = '127.0.0.1'
+ # end
+ #end
# Required for requests without paths (e.g. http://www.google.com)
uri.path = "/" if uri.path.empty?
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tom...@us...> - 2010-01-29 17:46:06
|
Revision: 2087
http://ndlb.svn.sourceforge.net/ndlb/?rev=2087&view=rev
Author: tombenner
Date: 2010-01-29 17:45:59 +0000 (Fri, 29 Jan 2010)
Log Message:
-----------
Improved the handling of query strings in UtilsController#proxy
Modified Paths:
--------------
portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
Modified: portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb
===================================================================
--- portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 00:59:10 UTC (rev 2086)
+++ portal/ror/plugins/thdl_integration/trunk/app/controllers/thl/utils_controller.rb 2010-01-29 17:45:59 UTC (rev 2087)
@@ -1,13 +1,19 @@
class Thl::UtilsController < ApplicationController
def proxy
+
+ # We want to grab params that are part of the requested URL, but ignore ones that are supplied by Rails
ignored_params = ["proxy_url", "action", "controller"]
url_params = params.reject{|param, val| ignored_params.include?(param) }.collect{ |param, val| param + '=' + CGI.escape(val) }.join('&')
- url = params[:proxy_url].join('/') + '?' + url_params
+ url = params[:proxy_url].join('/')
+ url += '?' + url_params unless url_params.blank?
url = "http://www.thlib.org" + url if url[0,1] == "/"
+
+ # Parse the URL with URI.parse() so we can work with its parts more easily
uri = URI.parse(url)
requested_host = uri.host
headers = {}
+
# Check to see if the request is for a URL on thlib.org or a subdomain; if so, and if
# this is being run on sds[3-8], make the appropriate changes to headers and uri.host
if requested_host =~ /thlib.org/
@@ -17,13 +23,18 @@
uri.host = '127.0.0.1'
end
end
+
# Required for requests without paths (e.g. http://www.google.com)
uri.path = "/" if uri.path.empty?
- request = Net::HTTP::Get.new(uri.path + '?' + uri.query, headers)
+
+ path = uri.query.blank? ? uri.path : uri.path + '?' + uri.query
+ request = Net::HTTP::Get.new(path, headers)
result = Net::HTTP.start(uri.host, uri.port) {|http|
http.request(request)
}
+
render :text => result.body
+
end
end
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-01-29 00:59:18
|
Revision: 2086
http://ndlb.svn.sourceforge.net/ndlb/?rev=2086&view=rev
Author: hmazariegos
Date: 2010-01-29 00:59:10 +0000 (Fri, 29 Jan 2010)
Log Message:
-----------
standardize tinymce for mms also adding spellchecking.
Modified Paths:
--------------
portal/ror/plugins/mms_engine/trunk/app/controllers/application_settings_controller.rb
portal/ror/plugins/mms_engine/trunk/app/controllers/copyrights_controller.rb
portal/ror/plugins/mms_engine/trunk/app/controllers/descriptions_controller.rb
portal/ror/plugins/mms_engine/trunk/app/controllers/documents_controller.rb
portal/ror/plugins/mms_engine/trunk/app/controllers/glossaries_controller.rb
portal/ror/plugins/mms_engine/trunk/app/controllers/media_administrative_locations_controller.rb
portal/ror/plugins/mms_engine/trunk/app/controllers/media_controller.rb
portal/ror/plugins/mms_engine/trunk/app/controllers/pictures_controller.rb
portal/ror/plugins/mms_engine/trunk/app/controllers/videos_controller.rb
portal/ror/plugins/mms_engine/trunk/app/views/application_settings/_form.html.erb
portal/ror/plugins/mms_engine/trunk/app/views/copyrights/_form.html.erb
portal/ror/plugins/mms_engine/trunk/app/views/descriptions/_form.html.erb
portal/ror/plugins/mms_engine/trunk/app/views/glossaries/_form.html.erb
portal/ror/plugins/mms_engine/trunk/app/views/media/_form.html.erb
portal/ror/plugins/mms_engine/trunk/app/views/media_administrative_locations/_form.html.erb
Modified: portal/ror/plugins/mms_engine/trunk/app/controllers/application_settings_controller.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/controllers/application_settings_controller.rb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/controllers/application_settings_controller.rb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -10,7 +10,7 @@
:theme_advanced_buttons1 => %w{fullscreen separator bold italic underline strikethrough separator undo redo separator link unlink template formatselect code},
:theme_advanced_buttons2 => %w{cut copy paste separator pastetext pasteword separator bullist numlist outdent indent separator justifyleft justifycenter justifyright justifiyfull separator removeformat charmap },
:theme_advanced_buttons3 => [],
- :plugins => %w{contextmenu paste media fullscreen template noneditable code },
+ :plugins => %w{contextmenu paste media fullscreen template noneditable },
:template_external_list_url => '/templates/templates.js',
:noneditable_leave_contenteditable => 'true',
:theme_advanced_blockformats => 'p,h1,h2,h3,h4,h5,h6'
Modified: portal/ror/plugins/mms_engine/trunk/app/controllers/copyrights_controller.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/controllers/copyrights_controller.rb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/controllers/copyrights_controller.rb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -10,7 +10,7 @@
:theme_advanced_buttons1 => %w{fullscreen separator bold italic underline strikethrough separator undo redo separator link unlink template formatselect code},
:theme_advanced_buttons2 => %w{cut copy paste separator pastetext pasteword separator bullist numlist outdent indent separator justifyleft justifycenter justifyright justifiyfull separator removeformat charmap },
:theme_advanced_buttons3 => [],
- :plugins => %w{contextmenu paste media fullscreen template noneditable code },
+ :plugins => %w{contextmenu paste media fullscreen template noneditable },
:template_external_list_url => '/templates/templates.js',
:noneditable_leave_contenteditable => 'true',
:theme_advanced_blockformats => 'p,h1,h2,h3,h4,h5,h6'
Modified: portal/ror/plugins/mms_engine/trunk/app/controllers/descriptions_controller.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/controllers/descriptions_controller.rb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/controllers/descriptions_controller.rb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -12,7 +12,7 @@
:theme_advanced_buttons1 => %w{fullscreen separator bold italic underline strikethrough separator undo redo separator link unlink template formatselect code},
:theme_advanced_buttons2 => %w{cut copy paste separator pastetext pasteword separator bullist numlist outdent indent separator justifyleft justifycenter justifyright justifiyfull separator removeformat charmap },
:theme_advanced_buttons3 => [],
- :plugins => %w{contextmenu paste media fullscreen template noneditable code },
+ :plugins => %w{contextmenu paste media fullscreen template noneditable },
:template_external_list_url => '/templates/templates.js',
:noneditable_leave_contenteditable => 'true',
:theme_advanced_blockformats => 'p,h1,h2,h3,h4,h5,h6'
Modified: portal/ror/plugins/mms_engine/trunk/app/controllers/documents_controller.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/controllers/documents_controller.rb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/controllers/documents_controller.rb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -12,7 +12,7 @@
:theme_advanced_buttons1 => %w{fullscreen separator bold italic underline strikethrough separator undo redo separator link unlink template formatselect code},
:theme_advanced_buttons2 => %w{cut copy paste separator pastetext pasteword separator bullist numlist outdent indent separator justifyleft justifycenter justifyright justifiyfull separator removeformat charmap },
:theme_advanced_buttons3 => [],
- :plugins => %w{contextmenu paste media fullscreen template noneditable code },
+ :plugins => %w{contextmenu paste media fullscreen template noneditable },
:template_external_list_url => '/templates/templates.js',
:noneditable_leave_contenteditable => 'true',
:theme_advanced_blockformats => 'p,h1,h2,h3,h4,h5,h6'
Modified: portal/ror/plugins/mms_engine/trunk/app/controllers/glossaries_controller.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/controllers/glossaries_controller.rb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/controllers/glossaries_controller.rb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -10,7 +10,7 @@
:theme_advanced_buttons1 => %w{fullscreen separator bold italic underline strikethrough separator undo redo separator link unlink template formatselect code},
:theme_advanced_buttons2 => %w{cut copy paste separator pastetext pasteword separator bullist numlist outdent indent separator justifyleft justifycenter justifyright justifiyfull separator removeformat charmap },
:theme_advanced_buttons3 => [],
- :plugins => %w{contextmenu paste media fullscreen template noneditable code },
+ :plugins => %w{contextmenu paste media fullscreen template noneditable },
:template_external_list_url => '/templates/templates.js',
:noneditable_leave_contenteditable => 'true',
:theme_advanced_blockformats => 'p,h1,h2,h3,h4,h5,h6'
Modified: portal/ror/plugins/mms_engine/trunk/app/controllers/media_administrative_locations_controller.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/controllers/media_administrative_locations_controller.rb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/controllers/media_administrative_locations_controller.rb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -13,7 +13,7 @@
:theme_advanced_buttons1 => %w{fullscreen separator bold italic underline strikethrough separator undo redo separator link unlink template formatselect code},
:theme_advanced_buttons2 => %w{cut copy paste separator pastetext pasteword separator bullist numlist outdent indent separator justifyleft justifycenter justifyright justifiyfull separator removeformat charmap },
:theme_advanced_buttons3 => [],
- :plugins => %w{contextmenu paste media fullscreen template noneditable code },
+ :plugins => %w{contextmenu paste media fullscreen template noneditable },
:template_external_list_url => '/templates/templates.js',
:noneditable_leave_contenteditable => 'true',
:theme_advanced_blockformats => 'p,h1,h2,h3,h4,h5,h6'
Modified: portal/ror/plugins/mms_engine/trunk/app/controllers/media_controller.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/controllers/media_controller.rb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/controllers/media_controller.rb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -12,7 +12,7 @@
:theme_advanced_buttons1 => %w{fullscreen separator bold italic underline strikethrough separator undo redo separator link unlink template formatselect code},
:theme_advanced_buttons2 => %w{cut copy paste separator pastetext pasteword separator bullist numlist outdent indent separator justifyleft justifycenter justifyright justifiyfull separator removeformat charmap },
:theme_advanced_buttons3 => [],
- :plugins => %w{contextmenu paste media fullscreen template noneditable code },
+ :plugins => %w{contextmenu paste media fullscreen template noneditable },
:template_external_list_url => '/templates/templates.js',
:noneditable_leave_contenteditable => 'true',
:theme_advanced_blockformats => 'p,h1,h2,h3,h4,h5,h6'
Modified: portal/ror/plugins/mms_engine/trunk/app/controllers/pictures_controller.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/controllers/pictures_controller.rb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/controllers/pictures_controller.rb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -12,7 +12,7 @@
:theme_advanced_buttons1 => %w{fullscreen separator bold italic underline strikethrough separator undo redo separator link unlink template formatselect code},
:theme_advanced_buttons2 => %w{cut copy paste separator pastetext pasteword separator bullist numlist outdent indent separator justifyleft justifycenter justifyright justifiyfull separator removeformat charmap },
:theme_advanced_buttons3 => [],
- :plugins => %w{contextmenu paste media fullscreen template noneditable code },
+ :plugins => %w{contextmenu paste media fullscreen template noneditable },
:template_external_list_url => '/templates/templates.js',
:noneditable_leave_contenteditable => 'true',
:theme_advanced_blockformats => 'p,h1,h2,h3,h4,h5,h6'
Modified: portal/ror/plugins/mms_engine/trunk/app/controllers/videos_controller.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/controllers/videos_controller.rb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/controllers/videos_controller.rb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -12,7 +12,7 @@
:theme_advanced_buttons1 => %w{fullscreen separator bold italic underline strikethrough separator undo redo separator link unlink template formatselect code},
:theme_advanced_buttons2 => %w{cut copy paste separator pastetext pasteword separator bullist numlist outdent indent separator justifyleft justifycenter justifyright justifiyfull separator removeformat charmap },
:theme_advanced_buttons3 => [],
- :plugins => %w{contextmenu paste media fullscreen template noneditable code },
+ :plugins => %w{contextmenu paste media fullscreen template noneditable },
:template_external_list_url => '/templates/templates.js',
:noneditable_leave_contenteditable => 'true',
:theme_advanced_blockformats => 'p,h1,h2,h3,h4,h5,h6'
Modified: portal/ror/plugins/mms_engine/trunk/app/views/application_settings/_form.html.erb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/views/application_settings/_form.html.erb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/views/application_settings/_form.html.erb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -5,7 +5,7 @@
height : '270px',
mode : 'textareas',
noneditable_leave_contenteditable : 'true',
-plugins : "example, contextmenu,paste,media,fullscreen,template,noneditable,code, table",
+plugins : "contextmenu,paste,media,fullscreen,template,noneditable, table, spellchecker",
template_external_list_url : '/templates/templates.js',
content_css : '/stylesheets/customtinymce.css',
theme : 'advanced',
@@ -13,7 +13,9 @@
theme_advanced_buttons1 : " fullscreen,separator,bold,italic,underline,strikethrough,separator,undo,redo,separator,link,unlink,template,formatselect, code",
theme_advanced_buttons2 : "cut,copy,paste,separator,pastetext,pasteword,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifiyfull,separator,removeformat,charmap",
theme_advanced_buttons3 : "EventButton,HimalayanButton,MapButton,OrgButton,PersonButton,PlaceButton, ProjectButton,RefButton,TibetanButton,TibTextButton, TopicButton ",
-theme_advanced_buttons4 : "tablecontrols",
+theme_advanced_buttons4 : "spellchecker,tablecontrols ",
+spellchecker_languages : "+English=en",
+spellchecker_rpc_url : '/application/spellchecker',
table_styles : "Header 1=header1;Header 2=header2;Header 3=header3",
table_cell_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Cell=tableCel1",
table_row_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1",
@@ -151,6 +153,7 @@
});
//]]>
</script>
+
<p>
<b><%= ApplicationSetting.human_attribute_name('title').s %></b><br />
<%= f.text_field :title %>
Modified: portal/ror/plugins/mms_engine/trunk/app/views/copyrights/_form.html.erb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/views/copyrights/_form.html.erb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/views/copyrights/_form.html.erb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -5,7 +5,7 @@
height : '270px',
mode : 'textareas',
noneditable_leave_contenteditable : 'true',
-plugins : "example, contextmenu,paste,media,fullscreen,template,noneditable,code, table",
+plugins : "contextmenu,paste,media,fullscreen,template,noneditable, table, spellchecker",
template_external_list_url : '/templates/templates.js',
content_css : '/stylesheets/customtinymce.css',
theme : 'advanced',
@@ -13,7 +13,9 @@
theme_advanced_buttons1 : " fullscreen,separator,bold,italic,underline,strikethrough,separator,undo,redo,separator,link,unlink,template,formatselect, code",
theme_advanced_buttons2 : "cut,copy,paste,separator,pastetext,pasteword,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifiyfull,separator,removeformat,charmap",
theme_advanced_buttons3 : "EventButton,HimalayanButton,MapButton,OrgButton,PersonButton,PlaceButton, ProjectButton,RefButton,TibetanButton,TibTextButton, TopicButton ",
-theme_advanced_buttons4 : "tablecontrols",
+theme_advanced_buttons4 : "spellchecker,tablecontrols ",
+spellchecker_languages : "+English=en",
+spellchecker_rpc_url : '/application/spellchecker',
table_styles : "Header 1=header1;Header 2=header2;Header 3=header3",
table_cell_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Cell=tableCel1",
table_row_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1",
@@ -151,6 +153,7 @@
});
//]]>
</script>
+
<p>
<%= link_to image_tag(@medium.thumbnail_image.public_filename), medium_path(@medium) %>
</p>
Modified: portal/ror/plugins/mms_engine/trunk/app/views/descriptions/_form.html.erb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/views/descriptions/_form.html.erb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/views/descriptions/_form.html.erb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -5,7 +5,7 @@
height : '270px',
mode : 'textareas',
noneditable_leave_contenteditable : 'true',
-plugins : "example, contextmenu,paste,media,fullscreen,template,noneditable,code, table",
+plugins : "contextmenu,paste,media,fullscreen,template,noneditable, table, spellchecker",
template_external_list_url : '/templates/templates.js',
content_css : '/stylesheets/customtinymce.css',
theme : 'advanced',
@@ -13,7 +13,9 @@
theme_advanced_buttons1 : " fullscreen,separator,bold,italic,underline,strikethrough,separator,undo,redo,separator,link,unlink,template,formatselect, code",
theme_advanced_buttons2 : "cut,copy,paste,separator,pastetext,pasteword,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifiyfull,separator,removeformat,charmap",
theme_advanced_buttons3 : "EventButton,HimalayanButton,MapButton,OrgButton,PersonButton,PlaceButton, ProjectButton,RefButton,TibetanButton,TibTextButton, TopicButton ",
-theme_advanced_buttons4 : "tablecontrols",
+theme_advanced_buttons4 : "spellchecker,tablecontrols ",
+spellchecker_languages : "+English=en",
+spellchecker_rpc_url : '/application/spellchecker',
table_styles : "Header 1=header1;Header 2=header2;Header 3=header3",
table_cell_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Cell=tableCel1",
table_row_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1",
@@ -151,6 +153,7 @@
});
//]]>
</script>
+
<p>
<b><%= Medium.human_name.titleize.s %></b><br />
<%= link_to image_tag(@medium.thumbnail_image.public_filename), medium_path(@medium) %>
Modified: portal/ror/plugins/mms_engine/trunk/app/views/glossaries/_form.html.erb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/views/glossaries/_form.html.erb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/views/glossaries/_form.html.erb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -5,7 +5,7 @@
height : '270px',
mode : 'textareas',
noneditable_leave_contenteditable : 'true',
-plugins : "example, contextmenu,paste,media,fullscreen,template,noneditable,code, table",
+plugins : "contextmenu,paste,media,fullscreen,template,noneditable, table, spellchecker",
template_external_list_url : '/templates/templates.js',
content_css : '/stylesheets/customtinymce.css',
theme : 'advanced',
@@ -13,7 +13,9 @@
theme_advanced_buttons1 : " fullscreen,separator,bold,italic,underline,strikethrough,separator,undo,redo,separator,link,unlink,template,formatselect, code",
theme_advanced_buttons2 : "cut,copy,paste,separator,pastetext,pasteword,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifiyfull,separator,removeformat,charmap",
theme_advanced_buttons3 : "EventButton,HimalayanButton,MapButton,OrgButton,PersonButton,PlaceButton, ProjectButton,RefButton,TibetanButton,TibTextButton, TopicButton ",
-theme_advanced_buttons4 : "tablecontrols",
+theme_advanced_buttons4 : "spellchecker,tablecontrols ",
+spellchecker_languages : "+English=en",
+spellchecker_rpc_url : '/application/spellchecker',
table_styles : "Header 1=header1;Header 2=header2;Header 3=header3",
table_cell_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Cell=tableCel1",
table_row_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1",
@@ -151,6 +153,7 @@
});
//]]>
</script>
+
<p>
<b><%= Glossary.human_attribute_name('title').s %></b><br />
<%= f.text_field :title %>
Modified: portal/ror/plugins/mms_engine/trunk/app/views/media/_form.html.erb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/views/media/_form.html.erb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/views/media/_form.html.erb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -5,7 +5,7 @@
height : '270px',
mode : 'textareas',
noneditable_leave_contenteditable : 'true',
-plugins : "example, contextmenu,paste,media,fullscreen,template,noneditable,code, table",
+plugins : "contextmenu,paste,media,fullscreen,template,noneditable, table, spellchecker",
template_external_list_url : '/templates/templates.js',
content_css : '/stylesheets/customtinymce.css',
theme : 'advanced',
@@ -13,7 +13,9 @@
theme_advanced_buttons1 : " fullscreen,separator,bold,italic,underline,strikethrough,separator,undo,redo,separator,link,unlink,template,formatselect, code",
theme_advanced_buttons2 : "cut,copy,paste,separator,pastetext,pasteword,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifiyfull,separator,removeformat,charmap",
theme_advanced_buttons3 : "EventButton,HimalayanButton,MapButton,OrgButton,PersonButton,PlaceButton, ProjectButton,RefButton,TibetanButton,TibTextButton, TopicButton ",
-theme_advanced_buttons4 : "tablecontrols",
+theme_advanced_buttons4 : "spellchecker,tablecontrols ",
+spellchecker_languages : "+English=en",
+spellchecker_rpc_url : '/application/spellchecker',
table_styles : "Header 1=header1;Header 2=header2;Header 3=header3",
table_cell_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Cell=tableCel1",
table_row_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1",
@@ -151,6 +153,7 @@
});
//]]>
</script>
+
<% klass = @medium.class %>
<p>
<b><%= klass.human_attribute_name('photographer').s %></b><br />
Modified: portal/ror/plugins/mms_engine/trunk/app/views/media_administrative_locations/_form.html.erb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/views/media_administrative_locations/_form.html.erb 2010-01-28 20:08:29 UTC (rev 2085)
+++ portal/ror/plugins/mms_engine/trunk/app/views/media_administrative_locations/_form.html.erb 2010-01-29 00:59:10 UTC (rev 2086)
@@ -5,7 +5,7 @@
height : '270px',
mode : 'textareas',
noneditable_leave_contenteditable : 'true',
-plugins : "example, contextmenu,paste,media,fullscreen,template,noneditable,code, table",
+plugins : "contextmenu,paste,media,fullscreen,template,noneditable, table, spellchecker",
template_external_list_url : '/templates/templates.js',
content_css : '/stylesheets/customtinymce.css',
theme : 'advanced',
@@ -13,7 +13,9 @@
theme_advanced_buttons1 : " fullscreen,separator,bold,italic,underline,strikethrough,separator,undo,redo,separator,link,unlink,template,formatselect, code",
theme_advanced_buttons2 : "cut,copy,paste,separator,pastetext,pasteword,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifiyfull,separator,removeformat,charmap",
theme_advanced_buttons3 : "EventButton,HimalayanButton,MapButton,OrgButton,PersonButton,PlaceButton, ProjectButton,RefButton,TibetanButton,TibTextButton, TopicButton ",
-theme_advanced_buttons4 : "tablecontrols",
+theme_advanced_buttons4 : "spellchecker,tablecontrols ",
+spellchecker_languages : "+English=en",
+spellchecker_rpc_url : '/application/spellchecker',
table_styles : "Header 1=header1;Header 2=header2;Header 3=header3",
table_cell_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Cell=tableCel1",
table_row_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1",
@@ -151,6 +153,7 @@
});
//]]>
</script>
+
<p>
<b><%= Medium.human_name.titleize.s %></b><br />
<%= f.hidden_field :medium_id %>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-01-28 20:08:36
|
Revision: 2085
http://ndlb.svn.sourceforge.net/ndlb/?rev=2085&view=rev
Author: hmazariegos
Date: 2010-01-28 20:08:29 +0000 (Thu, 28 Jan 2010)
Log Message:
-----------
removed non existing tinymce plugin reference admin units.
Modified Paths:
--------------
portal/ror/plugins/mms_engine/trunk/app/controllers/administrative_units_controller.rb
Modified: portal/ror/plugins/mms_engine/trunk/app/controllers/administrative_units_controller.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/controllers/administrative_units_controller.rb 2010-01-28 20:06:49 UTC (rev 2084)
+++ portal/ror/plugins/mms_engine/trunk/app/controllers/administrative_units_controller.rb 2010-01-28 20:08:29 UTC (rev 2085)
@@ -13,7 +13,7 @@
:theme_advanced_buttons1 => %w{fullscreen separator bold italic underline strikethrough separator undo redo separator link unlink template formatselect code},
:theme_advanced_buttons2 => %w{cut copy paste separator pastetext pasteword separator bullist numlist outdent indent separator justifyleft justifycenter justifyright justifiyfull separator removeformat charmap },
:theme_advanced_buttons3 => [],
- :plugins => %w{contextmenu paste media fullscreen template noneditable code },
+ :plugins => %w{contextmenu paste media fullscreen template noneditable },
:template_external_list_url => '/templates/templates.js',
:noneditable_leave_contenteditable => 'true',
:theme_advanced_blockformats => 'p,h1,h2,h3,h4,h5,h6'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-01-28 20:06:55
|
Revision: 2084
http://ndlb.svn.sourceforge.net/ndlb/?rev=2084&view=rev
Author: hmazariegos
Date: 2010-01-28 20:06:49 +0000 (Thu, 28 Jan 2010)
Log Message:
-----------
removed non existing tinymce plugin reference.
Modified Paths:
--------------
portal/ror/plugins/tmb_engine/trunk/app/controllers/application_controller.rb
Modified: portal/ror/plugins/tmb_engine/trunk/app/controllers/application_controller.rb
===================================================================
--- portal/ror/plugins/tmb_engine/trunk/app/controllers/application_controller.rb 2010-01-28 18:56:52 UTC (rev 2083)
+++ portal/ror/plugins/tmb_engine/trunk/app/controllers/application_controller.rb 2010-01-28 20:06:49 UTC (rev 2084)
@@ -13,7 +13,7 @@
:theme_advanced_buttons1 => %w{fullscreen separator bold italic underline strikethrough separator undo redo separator link unlink template formatselect code},
:theme_advanced_buttons2 => %w{cut copy paste separator pastetext pasteword separator bullist numlist outdent indent separator justifyleft justifycenter justifyright justifiyfull separator removeformat charmap },
:theme_advanced_buttons3 => [],
- :plugins => %w{contextmenu paste media fullscreen template noneditable code },
+ :plugins => %w{contextmenu paste media fullscreen template noneditable },
:template_external_list_url => '/templates/templates.js',
:noneditable_leave_contenteditable => 'true',
:theme_advanced_blockformats => 'p,h1,h2,h3,h4,h5,h6'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-01-28 18:56:59
|
Revision: 2083
http://ndlb.svn.sourceforge.net/ndlb/?rev=2083&view=rev
Author: hmazariegos
Date: 2010-01-28 18:56:52 +0000 (Thu, 28 Jan 2010)
Log Message:
-----------
Added spelling to lib, added spellchecker methods, added spellchecker to administrative units.
Modified Paths:
--------------
portal/ror/plugins/mms_engine/trunk/app/controllers/application_controller.rb
portal/ror/plugins/mms_engine/trunk/app/views/administrative_units/_edit.html.erb
portal/ror/plugins/mms_engine/trunk/app/views/administrative_units/_new.html.erb
Added Paths:
-----------
portal/ror/plugins/mms_engine/trunk/lib/spelling.rb
Modified: portal/ror/plugins/mms_engine/trunk/app/controllers/application_controller.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/controllers/application_controller.rb 2010-01-28 18:41:55 UTC (rev 2082)
+++ portal/ror/plugins/mms_engine/trunk/app/controllers/application_controller.rb 2010-01-28 18:56:52 UTC (rev 2083)
@@ -3,7 +3,19 @@
#require_dependency 'login_system'
class ApplicationController < ActionController::Base
+ include Spelling
+
# See ActionController::RequestForgeryProtection for details
# Uncomment the :secret if you're not using the cookie session store
- protect_from_forgery # :secret => '051292610481c0699540df094adf0f36'
+ protect_from_forgery # :secret => '051292610481c0699540df094adf0f36'
+
+ def spellchecker
+ language, words, method = params[:params][0], params[:params][1], params[:method] unless params[:params].blank?
+ return render :nothing => true if language.blank? || words.blank? || method.blank?
+ headers["Content-Type"] = "text/plain"
+ headers["charset"] = "utf-8"
+ suggestions = check_spelling(words, method, language)
+ results = {"id" => nil, "result" => suggestions, "error" => nil}
+ render :json => results
+ end
end
\ No newline at end of file
Modified: portal/ror/plugins/mms_engine/trunk/app/views/administrative_units/_edit.html.erb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/views/administrative_units/_edit.html.erb 2010-01-28 18:41:55 UTC (rev 2082)
+++ portal/ror/plugins/mms_engine/trunk/app/views/administrative_units/_edit.html.erb 2010-01-28 18:56:52 UTC (rev 2083)
@@ -5,7 +5,7 @@
height : '270px',
mode : 'textareas',
noneditable_leave_contenteditable : 'true',
-plugins : "example, contextmenu,paste,media,fullscreen,template,noneditable,code, table",
+plugins : "contextmenu,paste,media,fullscreen,template,noneditable, table, spellchecker",
template_external_list_url : '/templates/templates.js',
content_css : '/stylesheets/customtinymce.css',
theme : 'advanced',
@@ -13,7 +13,9 @@
theme_advanced_buttons1 : " fullscreen,separator,bold,italic,underline,strikethrough,separator,undo,redo,separator,link,unlink,template,formatselect, code",
theme_advanced_buttons2 : "cut,copy,paste,separator,pastetext,pasteword,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifiyfull,separator,removeformat,charmap",
theme_advanced_buttons3 : "EventButton,HimalayanButton,MapButton,OrgButton,PersonButton,PlaceButton, ProjectButton,RefButton,TibetanButton,TibTextButton, TopicButton ",
-theme_advanced_buttons4 : "tablecontrols",
+theme_advanced_buttons4 : "spellchecker,tablecontrols ",
+spellchecker_languages : "+English=en",
+spellchecker_rpc_url : '/application/spellchecker',
table_styles : "Header 1=header1;Header 2=header2;Header 3=header3",
table_cell_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Cell=tableCel1",
table_row_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1",
@@ -151,6 +153,7 @@
});
//]]>
</script>
+
<h1><%= ts 'edit.ing.record', :what => h(@element.level_name) %></h1>
<%= error_messages_for :element %>
<% if base_language? %>
Modified: portal/ror/plugins/mms_engine/trunk/app/views/administrative_units/_new.html.erb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/app/views/administrative_units/_new.html.erb 2010-01-28 18:41:55 UTC (rev 2082)
+++ portal/ror/plugins/mms_engine/trunk/app/views/administrative_units/_new.html.erb 2010-01-28 18:56:52 UTC (rev 2083)
@@ -5,7 +5,7 @@
height : '270px',
mode : 'textareas',
noneditable_leave_contenteditable : 'true',
-plugins : "example, contextmenu,paste,media,fullscreen,template,noneditable,code, table",
+plugins : "contextmenu,paste,media,fullscreen,template,noneditable, table, spellchecker",
template_external_list_url : '/templates/templates.js',
content_css : '/stylesheets/customtinymce.css',
theme : 'advanced',
@@ -13,7 +13,9 @@
theme_advanced_buttons1 : " fullscreen,separator,bold,italic,underline,strikethrough,separator,undo,redo,separator,link,unlink,template,formatselect, code",
theme_advanced_buttons2 : "cut,copy,paste,separator,pastetext,pasteword,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifiyfull,separator,removeformat,charmap",
theme_advanced_buttons3 : "EventButton,HimalayanButton,MapButton,OrgButton,PersonButton,PlaceButton, ProjectButton,RefButton,TibetanButton,TibTextButton, TopicButton ",
-theme_advanced_buttons4 : "tablecontrols",
+theme_advanced_buttons4 : "spellchecker,tablecontrols ",
+spellchecker_languages : "+English=en",
+spellchecker_rpc_url : '/application/spellchecker',
table_styles : "Header 1=header1;Header 2=header2;Header 3=header3",
table_cell_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Cell=tableCel1",
table_row_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1",
@@ -151,6 +153,7 @@
});
//]]>
</script>
+
<% if !@element.parent.nil? %>
<h1><%= ts 'new.under', :what => h(@parent.next_level_name), :where => h(@parent.title) %></h1>
<% else %>
Added: portal/ror/plugins/mms_engine/trunk/lib/spelling.rb
===================================================================
--- portal/ror/plugins/mms_engine/trunk/lib/spelling.rb (rev 0)
+++ portal/ror/plugins/mms_engine/trunk/lib/spelling.rb 2010-01-28 18:56:52 UTC (rev 2083)
@@ -0,0 +1,36 @@
+module Spelling
+ require 'net/https'
+ require 'uri'
+ require 'rexml/document'
+
+ ASPELL_WORD_DATA_REGEX = Regexp.new(/\&\s\w+\s\d+\s\d+(.*)$/)
+ #ASPELL_PATH = "/opt/local/bin/aspell"
+ ASPELL_PATH = "/usr/bin/aspell"
+
+ def check_spelling(spell_check_text, command, lang)
+ xml_response_values = Array.new
+ spell_check_text = spell_check_text.join(' ') if command == 'checkWords'
+ spell_check_response = `echo "#{spell_check_text}" | #{ASPELL_PATH} -a -l #{lang}`
+ if (spell_check_response != '')
+ spelling_errors = spell_check_response.split("\n").slice(1..-1)
+ if (command == 'checkWords')
+ for error in spelling_errors
+ error.strip!
+ if (match_data = error.match(ASPELL_WORD_DATA_REGEX))
+ arr = match_data[0].split(' ')
+ xml_response_values << arr[1]
+ end
+ end
+ elsif (command == 'getSuggestions')
+ for error in spelling_errors
+ error.strip!
+ if (match_data = error.match(ASPELL_WORD_DATA_REGEX))
+ xml_response_values << error.split(',')[1..-1].collect(&:strip!)
+ xml_response_values = xml_response_values.first
+ end
+ end
+ end
+ end
+ return xml_response_values
+ end
+end
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-01-28 18:42:26
|
Revision: 2082
http://ndlb.svn.sourceforge.net/ndlb/?rev=2082&view=rev
Author: hmazariegos
Date: 2010-01-28 18:41:55 +0000 (Thu, 28 Jan 2010)
Log Message:
-----------
added new spellchecker plugin to tinymce.
Added Paths:
-----------
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/changelog
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/EnchantSpell.php
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpell.php
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/SpellChecker.php
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/JSON.php
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/Logger.php
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/config.php
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/img/
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/includes/
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/includes/general.php
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/rpc.php
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/changelog
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/changelog (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/changelog 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1,20 @@
+Version 2.0.2 (2008-04-30)
+ Added new EnchantSpell engine class contributed by Michel Weimerskirch.
+ Added new general.remote_rpc_url option, enables you to proxy requests to another server.
+ Fixed security hole in PSpellShell.php file if PSpellShell engine was used.
+Version 2.0.1 (2008-03-07)
+ Fixed bug where spellchecker was auto focusing the editor in IE.
+Version 2.0 (2008-01-30)
+ Fixed bug where the suggestions menu was placed at an incorrect location.
+Version 2.0rc1 (2008-01-14)
+ Moved package from beta to release candidate.
+Version 2.0b3 (2007-12-xx)
+ Fixed bug where the suggestions menu could appear at the wrong location.
+Version 2.0b2 (2007-11-29)
+ Fixed bug where the spellchecker was removing the word when it was ignored.
+Version 2.0b1 (2007-11-21)
+ Moved spellchecker from alpha to beta status.
+Version 2.0a2 (2007-11-13)
+ Updated plugin so it works correctly with the TinyMCE 3.0a3 version.
+Version 2.0a1 (2007-11-01)
+ Rewritten version for TinyMCE 3.0 this new version uses JSON RPC.
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/changelog
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/EnchantSpell.php
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/EnchantSpell.php (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/EnchantSpell.php 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1,66 @@
+<?php
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * This class was contributed by Michel Weimerskirch.
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+class EnchantSpell extends SpellChecker {
+ /**
+ * Spellchecks an array of words.
+ *
+ * @param String $lang Selected language code (like en_US or de_DE). Shortcodes like "en" and "de" work with enchant >= 1.4.1
+ * @param Array $words Array of words to check.
+ * @return Array of misspelled words.
+ */
+ function &checkWords($lang, $words) {
+ $r = enchant_broker_init();
+
+ if (enchant_broker_dict_exists($r,$lang)) {
+ $d = enchant_broker_request_dict($r, $lang);
+
+ $returnData = array();
+ foreach($words as $key => $value) {
+ $correct = enchant_dict_check($d, $value);
+ if(!$correct) {
+ $returnData[] = trim($value);
+ }
+ }
+
+ return $returnData;
+ enchant_broker_free_dict($d);
+ } else {
+
+ }
+ enchant_broker_free($r);
+ }
+
+ /**
+ * Returns suggestions for a specific word.
+ *
+ * @param String $lang Selected language code (like en_US or de_DE). Shortcodes like "en" and "de" work with enchant >= 1.4.1
+ * @param String $word Specific word to get suggestions for.
+ * @return Array of suggestions for the specified word.
+ */
+ function &getSuggestions($lang, $word) {
+ $r = enchant_broker_init();
+ $suggs = array();
+
+ if (enchant_broker_dict_exists($r,$lang)) {
+ $d = enchant_broker_request_dict($r, $lang);
+ $suggs = enchant_dict_suggest($d, $word);
+
+ enchant_broker_free_dict($d);
+ } else {
+
+ }
+ enchant_broker_free($r);
+
+ return $suggs;
+ }
+}
+
+?>
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/EnchantSpell.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1,158 @@
+<?php
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+class GoogleSpell extends SpellChecker {
+ /**
+ * Spellchecks an array of words.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {Array} $words Array of words to spellcheck.
+ * @return {Array} Array of misspelled words.
+ */
+ function &checkWords($lang, $words) {
+ $wordstr = implode(' ', $words);
+ $matches = $this->_getMatches($lang, $wordstr);
+ $words = array();
+
+ for ($i=0; $i<count($matches); $i++)
+ $words[] = $this->_unhtmlentities(mb_substr($wordstr, $matches[$i][1], $matches[$i][2], "UTF-8"));
+
+ return $words;
+ }
+
+ /**
+ * Returns suggestions of for a specific word.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {String} $word Specific word to get suggestions for.
+ * @return {Array} Array of suggestions for the specified word.
+ */
+ function &getSuggestions($lang, $word) {
+ $sug = array();
+ $osug = array();
+ $matches = $this->_getMatches($lang, $word);
+
+ if (count($matches) > 0)
+ $sug = explode("\t", utf8_encode($this->_unhtmlentities($matches[0][4])));
+
+ // Remove empty
+ foreach ($sug as $item) {
+ if ($item)
+ $osug[] = $item;
+ }
+
+ return $osug;
+ }
+
+ function &_getMatches($lang, $str) {
+ $server = "www.google.com";
+ $port = 443;
+ $path = "/tbproxy/spell?lang=" . $lang . "&hl=en";
+ $host = "www.google.com";
+ $url = "https://" . $server;
+
+ // Setup XML request
+ $xml = '<?xml version="1.0" encoding="utf-8" ?><spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><text>' . $str . '</text></spellrequest>';
+
+ $header = "POST ".$path." HTTP/1.0 \r\n";
+ $header .= "MIME-Version: 1.0 \r\n";
+ $header .= "Content-type: application/PTI26 \r\n";
+ $header .= "Content-length: ".strlen($xml)." \r\n";
+ $header .= "Content-transfer-encoding: text \r\n";
+ $header .= "Request-number: 1 \r\n";
+ $header .= "Document-type: Request \r\n";
+ $header .= "Interface-Version: Test 1.4 \r\n";
+ $header .= "Connection: close \r\n\r\n";
+ $header .= $xml;
+
+ // Use curl if it exists
+ if (function_exists('curl_init')) {
+ // Use curl
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL,$url);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
+ $xml = curl_exec($ch);
+ curl_close($ch);
+ } else {
+ // Use raw sockets
+ $fp = fsockopen("ssl://" . $server, $port, $errno, $errstr, 30);
+ if ($fp) {
+ // Send request
+ fwrite($fp, $header);
+
+ // Read response
+ $xml = "";
+ while (!feof($fp))
+ $xml .= fgets($fp, 128);
+
+ fclose($fp);
+ } else
+ echo "Could not open SSL connection to google.";
+ }
+
+ // Grab and parse content
+ $matches = array();
+ preg_match_all('/<c o="([^"]*)" l="([^"]*)" s="([^"]*)">([^<]*)<\/c>/', $xml, $matches, PREG_SET_ORDER);
+
+ return $matches;
+ }
+
+ function _unhtmlentities($string) {
+ $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
+ $string = preg_replace('~&#([0-9]+);~e', 'chr(\\1)', $string);
+
+ $trans_tbl = get_html_translation_table(HTML_ENTITIES);
+ $trans_tbl = array_flip($trans_tbl);
+
+ return strtr($string, $trans_tbl);
+ }
+}
+
+// Patch in multibyte support
+if (!function_exists('mb_substr')) {
+ function mb_substr($str, $start, $len = '', $encoding="UTF-8"){
+ $limit = strlen($str);
+
+ for ($s = 0; $start > 0;--$start) {// found the real start
+ if ($s >= $limit)
+ break;
+
+ if ($str[$s] <= "\x7F")
+ ++$s;
+ else {
+ ++$s; // skip length
+
+ while ($str[$s] >= "\x80" && $str[$s] <= "\xBF")
+ ++$s;
+ }
+ }
+
+ if ($len == '')
+ return substr($str, $s);
+ else
+ for ($e = $s; $len > 0; --$len) {//found the real end
+ if ($e >= $limit)
+ break;
+
+ if ($str[$e] <= "\x7F")
+ ++$e;
+ else {
+ ++$e;//skip length
+
+ while ($str[$e] >= "\x80" && $str[$e] <= "\xBF" && $e < $limit)
+ ++$e;
+ }
+ }
+
+ return substr($str, $s, $e - $s);
+ }
+}
+
+?>
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpell.php
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpell.php (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpell.php 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1,81 @@
+<?php
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+class PSpell extends SpellChecker {
+ /**
+ * Spellchecks an array of words.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {Array} $words Array of words to spellcheck.
+ * @return {Array} Array of misspelled words.
+ */
+ function &checkWords($lang, $words) {
+ $plink = $this->_getPLink($lang);
+
+ $outWords = array();
+ foreach ($words as $word) {
+ if (!pspell_check($plink, trim($word)))
+ $outWords[] = utf8_encode($word);
+ }
+
+ return $outWords;
+ }
+
+ /**
+ * Returns suggestions of for a specific word.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {String} $word Specific word to get suggestions for.
+ * @return {Array} Array of suggestions for the specified word.
+ */
+ function &getSuggestions($lang, $word) {
+ $words = pspell_suggest($this->_getPLink($lang), $word);
+
+ for ($i=0; $i<count($words); $i++)
+ $words[$i] = utf8_encode($words[$i]);
+
+ return $words;
+ }
+
+ /**
+ * Opens a link for pspell.
+ */
+ function &_getPLink($lang) {
+ // Check for native PSpell support
+ if (!function_exists("pspell_new"))
+ $this->throwError("PSpell support not found in PHP installation.");
+
+ // Setup PSpell link
+ $plink = pspell_new(
+ $lang,
+ $this->_config['PSpell.spelling'],
+ $this->_config['PSpell.jargon'],
+ $this->_config['PSpell.encoding'],
+ $this->_config['PSpell.mode']
+ );
+
+ // Setup PSpell link
+/* if (!$plink) {
+ $pspellConfig = pspell_config_create(
+ $lang,
+ $this->_config['PSpell.spelling'],
+ $this->_config['PSpell.jargon'],
+ $this->_config['PSpell.encoding']
+ );
+
+ $plink = pspell_new_config($pspell_config);
+ }*/
+
+ if (!$plink)
+ $this->throwError("No PSpell link found opened.");
+
+ return $plink;
+ }
+}
+
+?>
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpell.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1,112 @@
+<?php
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+class PSpellShell extends SpellChecker {
+ /**
+ * Spellchecks an array of words.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {Array} $words Array of words to spellcheck.
+ * @return {Array} Array of misspelled words.
+ */
+ function &checkWords($lang, $words) {
+ $cmd = $this->_getCMD($lang);
+
+ if ($fh = fopen($this->_tmpfile, "w")) {
+ fwrite($fh, "!\n");
+
+ foreach($words as $key => $value)
+ fwrite($fh, "^" . $value . "\n");
+
+ fclose($fh);
+ } else
+ $this->throwError("PSpell support was not found.");
+
+ $data = shell_exec($cmd);
+ @unlink($this->_tmpfile);
+
+ $returnData = array();
+ $dataArr = preg_split("/[\r\n]/", $data, -1, PREG_SPLIT_NO_EMPTY);
+
+ foreach ($dataArr as $dstr) {
+ $matches = array();
+
+ // Skip this line.
+ if (strpos($dstr, "@") === 0)
+ continue;
+
+ preg_match("/\& ([^ ]+) .*/i", $dstr, $matches);
+
+ if (!empty($matches[1]))
+ $returnData[] = utf8_encode(trim($matches[1]));
+ }
+
+ return $returnData;
+ }
+
+ /**
+ * Returns suggestions of for a specific word.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {String} $word Specific word to get suggestions for.
+ * @return {Array} Array of suggestions for the specified word.
+ */
+ function &getSuggestions($lang, $word) {
+ $cmd = $this->_getCMD($lang);
+
+ if (function_exists("mb_convert_encoding"))
+ $word = mb_convert_encoding($word, "ISO-8859-1", mb_detect_encoding($word, "UTF-8"));
+ else
+ $word = utf8_encode($word);
+
+ if ($fh = fopen($this->_tmpfile, "w")) {
+ fwrite($fh, "!\n");
+ fwrite($fh, "^$word\n");
+ fclose($fh);
+ } else
+ $this->throwError("Error opening tmp file.");
+
+ $data = shell_exec($cmd);
+ @unlink($this->_tmpfile);
+
+ $returnData = array();
+ $dataArr = preg_split("/\n/", $data, -1, PREG_SPLIT_NO_EMPTY);
+
+ foreach($dataArr as $dstr) {
+ $matches = array();
+
+ // Skip this line.
+ if (strpos($dstr, "@") === 0)
+ continue;
+
+ preg_match("/\&[^:]+:(.*)/i", $dstr, $matches);
+
+ if (!empty($matches[1])) {
+ $words = array_slice(explode(',', $matches[1]), 0, 10);
+
+ for ($i=0; $i<count($words); $i++)
+ $words[$i] = trim($words[$i]);
+
+ return $words;
+ }
+ }
+
+ return array();
+ }
+
+ function _getCMD($lang) {
+ $this->_tmpfile = tempnam($this->_config['PSpellShell.tmp'], "tinyspell");
+
+ if(preg_match("#win#i", php_uname()))
+ return $this->_config['PSpellShell.aspell'] . " -a --lang=". escapeshellarg($lang) . " --encoding=utf-8 -H < " . $this->_tmpfile . " 2>&1";
+
+ return "cat ". $this->_tmpfile ." | " . $this->_config['PSpellShell.aspell'] . " -a --encoding=utf-8 -H --lang=". escapeshellarg($lang);
+ }
+}
+
+?>
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/SpellChecker.php
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/SpellChecker.php (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/SpellChecker.php 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1,61 @@
+<?php
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+class SpellChecker {
+ /**
+ * Constructor.
+ *
+ * @param $config Configuration name/value array.
+ */
+ function SpellChecker(&$config) {
+ $this->_config = $config;
+ }
+
+ /**
+ * Simple loopback function everything that gets in will be send back.
+ *
+ * @param $args.. Arguments.
+ * @return {Array} Array of all input arguments.
+ */
+ function &loopback(/* args.. */) {
+ return func_get_args();
+ }
+
+ /**
+ * Spellchecks an array of words.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {Array} $words Array of words to spellcheck.
+ * @return {Array} Array of misspelled words.
+ */
+ function &checkWords($lang, $words) {
+ return $words;
+ }
+
+ /**
+ * Returns suggestions of for a specific word.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {String} $word Specific word to get suggestions for.
+ * @return {Array} Array of suggestions for the specified word.
+ */
+ function &getSuggestions($lang, $word) {
+ return array();
+ }
+
+ /**
+ * Throws an error message back to the user. This will stop all execution.
+ *
+ * @param {String} $str Message to send back to user.
+ */
+ function throwError($str) {
+ die('{"result":null,"id":null,"error":{"errstr":"' . addslashes($str) . '","errfile":"","errline":null,"errcontext":"","level":"FATAL"}}');
+ }
+}
+
+?>
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/SpellChecker.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/JSON.php
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/JSON.php (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/JSON.php 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1,595 @@
+<?php
+/**
+ * $Id: JSON.php 40 2007-06-18 11:43:15Z spocke $
+ *
+ * @package MCManager.utils
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+define('JSON_BOOL', 1);
+define('JSON_INT', 2);
+define('JSON_STR', 3);
+define('JSON_FLOAT', 4);
+define('JSON_NULL', 5);
+define('JSON_START_OBJ', 6);
+define('JSON_END_OBJ', 7);
+define('JSON_START_ARRAY', 8);
+define('JSON_END_ARRAY', 9);
+define('JSON_KEY', 10);
+define('JSON_SKIP', 11);
+
+define('JSON_IN_ARRAY', 30);
+define('JSON_IN_OBJECT', 40);
+define('JSON_IN_BETWEEN', 50);
+
+class Moxiecode_JSONReader {
+ var $_data, $_len, $_pos;
+ var $_value, $_token;
+ var $_location, $_lastLocations;
+ var $_needProp;
+
+ function Moxiecode_JSONReader($data) {
+ $this->_data = $data;
+ $this->_len = strlen($data);
+ $this->_pos = -1;
+ $this->_location = JSON_IN_BETWEEN;
+ $this->_lastLocations = array();
+ $this->_needProp = false;
+ }
+
+ function getToken() {
+ return $this->_token;
+ }
+
+ function getLocation() {
+ return $this->_location;
+ }
+
+ function getTokenName() {
+ switch ($this->_token) {
+ case JSON_BOOL:
+ return 'JSON_BOOL';
+
+ case JSON_INT:
+ return 'JSON_INT';
+
+ case JSON_STR:
+ return 'JSON_STR';
+
+ case JSON_FLOAT:
+ return 'JSON_FLOAT';
+
+ case JSON_NULL:
+ return 'JSON_NULL';
+
+ case JSON_START_OBJ:
+ return 'JSON_START_OBJ';
+
+ case JSON_END_OBJ:
+ return 'JSON_END_OBJ';
+
+ case JSON_START_ARRAY:
+ return 'JSON_START_ARRAY';
+
+ case JSON_END_ARRAY:
+ return 'JSON_END_ARRAY';
+
+ case JSON_KEY:
+ return 'JSON_KEY';
+ }
+
+ return 'UNKNOWN';
+ }
+
+ function getValue() {
+ return $this->_value;
+ }
+
+ function readToken() {
+ $chr = $this->read();
+
+ if ($chr != null) {
+ switch ($chr) {
+ case '[':
+ $this->_lastLocation[] = $this->_location;
+ $this->_location = JSON_IN_ARRAY;
+ $this->_token = JSON_START_ARRAY;
+ $this->_value = null;
+ $this->readAway();
+ return true;
+
+ case ']':
+ $this->_location = array_pop($this->_lastLocation);
+ $this->_token = JSON_END_ARRAY;
+ $this->_value = null;
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT)
+ $this->_needProp = true;
+
+ return true;
+
+ case '{':
+ $this->_lastLocation[] = $this->_location;
+ $this->_location = JSON_IN_OBJECT;
+ $this->_needProp = true;
+ $this->_token = JSON_START_OBJ;
+ $this->_value = null;
+ $this->readAway();
+ return true;
+
+ case '}':
+ $this->_location = array_pop($this->_lastLocation);
+ $this->_token = JSON_END_OBJ;
+ $this->_value = null;
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT)
+ $this->_needProp = true;
+
+ return true;
+
+ // String
+ case '"':
+ case '\'':
+ return $this->_readString($chr);
+
+ // Null
+ case 'n':
+ return $this->_readNull();
+
+ // Bool
+ case 't':
+ case 'f':
+ return $this->_readBool($chr);
+
+ default:
+ // Is number
+ if (is_numeric($chr) || $chr == '-' || $chr == '.')
+ return $this->_readNumber($chr);
+
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ function _readBool($chr) {
+ $this->_token = JSON_BOOL;
+ $this->_value = $chr == 't';
+
+ if ($chr == 't')
+ $this->skip(3); // rue
+ else
+ $this->skip(4); // alse
+
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function _readNull() {
+ $this->_token = JSON_NULL;
+ $this->_value = null;
+
+ $this->skip(3); // ull
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function _readString($quote) {
+ $output = "";
+ $this->_token = JSON_STR;
+ $endString = false;
+
+ while (($chr = $this->peek()) != -1) {
+ switch ($chr) {
+ case '\\':
+ // Read away slash
+ $this->read();
+
+ // Read escape code
+ $chr = $this->read();
+ switch ($chr) {
+ case 't':
+ $output .= "\t";
+ break;
+
+ case 'b':
+ $output .= "\b";
+ break;
+
+ case 'f':
+ $output .= "\f";
+ break;
+
+ case 'r':
+ $output .= "\r";
+ break;
+
+ case 'n':
+ $output .= "\n";
+ break;
+
+ case 'u':
+ $output .= $this->_int2utf8(hexdec($this->read(4)));
+ break;
+
+ default:
+ $output .= $chr;
+ break;
+ }
+
+ break;
+
+ case '\'':
+ case '"':
+ if ($chr == $quote)
+ $endString = true;
+
+ $chr = $this->read();
+ if ($chr != -1 && $chr != $quote)
+ $output .= $chr;
+
+ break;
+
+ default:
+ $output .= $this->read();
+ }
+
+ // String terminated
+ if ($endString)
+ break;
+ }
+
+ $this->readAway();
+ $this->_value = $output;
+
+ // Needed a property
+ if ($this->_needProp) {
+ $this->_token = JSON_KEY;
+ $this->_needProp = false;
+ return true;
+ }
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function _int2utf8($int) {
+ $int = intval($int);
+
+ switch ($int) {
+ case 0:
+ return chr(0);
+
+ case ($int & 0x7F):
+ return chr($int);
+
+ case ($int & 0x7FF):
+ return chr(0xC0 | (($int >> 6) & 0x1F)) . chr(0x80 | ($int & 0x3F));
+
+ case ($int & 0xFFFF):
+ return chr(0xE0 | (($int >> 12) & 0x0F)) . chr(0x80 | (($int >> 6) & 0x3F)) . chr (0x80 | ($int & 0x3F));
+
+ case ($int & 0x1FFFFF):
+ return chr(0xF0 | ($int >> 18)) . chr(0x80 | (($int >> 12) & 0x3F)) . chr(0x80 | (($int >> 6) & 0x3F)) . chr(0x80 | ($int & 0x3F));
+ }
+ }
+
+ function _readNumber($start) {
+ $value = "";
+ $isFloat = false;
+
+ $this->_token = JSON_INT;
+ $value .= $start;
+
+ while (($chr = $this->peek()) != -1) {
+ if (is_numeric($chr) || $chr == '-' || $chr == '.') {
+ if ($chr == '.')
+ $isFloat = true;
+
+ $value .= $this->read();
+ } else
+ break;
+ }
+
+ $this->readAway();
+
+ if ($isFloat) {
+ $this->_token = JSON_FLOAT;
+ $this->_value = floatval($value);
+ } else
+ $this->_value = intval($value);
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function readAway() {
+ while (($chr = $this->peek()) != null) {
+ if ($chr != ':' && $chr != ',' && $chr != ' ')
+ return;
+
+ $this->read();
+ }
+ }
+
+ function read($len = 1) {
+ if ($this->_pos < $this->_len) {
+ if ($len > 1) {
+ $str = substr($this->_data, $this->_pos + 1, $len);
+ $this->_pos += $len;
+
+ return $str;
+ } else
+ return $this->_data[++$this->_pos];
+ }
+
+ return null;
+ }
+
+ function skip($len) {
+ $this->_pos += $len;
+ }
+
+ function peek() {
+ if ($this->_pos < $this->_len)
+ return $this->_data[$this->_pos + 1];
+
+ return null;
+ }
+}
+
+/**
+ * This class handles JSON stuff.
+ *
+ * @package MCManager.utils
+ */
+class Moxiecode_JSON {
+ function Moxiecode_JSON() {
+ }
+
+ function decode($input) {
+ $reader = new Moxiecode_JSONReader($input);
+
+ return $this->readValue($reader);
+ }
+
+ function readValue(&$reader) {
+ $this->data = array();
+ $this->parents = array();
+ $this->cur =& $this->data;
+ $key = null;
+ $loc = JSON_IN_ARRAY;
+
+ while ($reader->readToken()) {
+ switch ($reader->getToken()) {
+ case JSON_STR:
+ case JSON_INT:
+ case JSON_BOOL:
+ case JSON_FLOAT:
+ case JSON_NULL:
+ switch ($reader->getLocation()) {
+ case JSON_IN_OBJECT:
+ $this->cur[$key] = $reader->getValue();
+ break;
+
+ case JSON_IN_ARRAY:
+ $this->cur[] = $reader->getValue();
+ break;
+
+ default:
+ return $reader->getValue();
+ }
+ break;
+
+ case JSON_KEY:
+ $key = $reader->getValue();
+ break;
+
+ case JSON_START_OBJ:
+ case JSON_START_ARRAY:
+ if ($loc == JSON_IN_OBJECT)
+ $this->addArray($key);
+ else
+ $this->addArray(null);
+
+ $cur =& $obj;
+
+ $loc = $reader->getLocation();
+ break;
+
+ case JSON_END_OBJ:
+ case JSON_END_ARRAY:
+ $loc = $reader->getLocation();
+
+ if (count($this->parents) > 0) {
+ $this->cur =& $this->parents[count($this->parents) - 1];
+ array_pop($this->parents);
+ }
+ break;
+ }
+ }
+
+ return $this->data[0];
+ }
+
+ // This method was needed since PHP is crapy and doesn't have pointers/references
+ function addArray($key) {
+ $this->parents[] =& $this->cur;
+ $ar = array();
+
+ if ($key)
+ $this->cur[$key] =& $ar;
+ else
+ $this->cur[] =& $ar;
+
+ $this->cur =& $ar;
+ }
+
+ function getDelim($index, &$reader) {
+ switch ($reader->getLocation()) {
+ case JSON_IN_ARRAY:
+ case JSON_IN_OBJECT:
+ if ($index > 0)
+ return ",";
+ break;
+ }
+
+ return "";
+ }
+
+ function encode($input) {
+ switch (gettype($input)) {
+ case 'boolean':
+ return $input ? 'true' : 'false';
+
+ case 'integer':
+ return (int) $input;
+
+ case 'float':
+ case 'double':
+ return (float) $input;
+
+ case 'NULL':
+ return 'null';
+
+ case 'string':
+ return $this->encodeString($input);
+
+ case 'array':
+ return $this->_encodeArray($input);
+
+ case 'object':
+ return $this->_encodeArray(get_object_vars($input));
+ }
+
+ return '';
+ }
+
+ function encodeString($input) {
+ // Needs to be escaped
+ if (preg_match('/[^a-zA-Z0-9]/', $input)) {
+ $output = '';
+
+ for ($i=0; $i<strlen($input); $i++) {
+ switch ($input[$i]) {
+ case "\b":
+ $output .= "\\b";
+ break;
+
+ case "\t":
+ $output .= "\\t";
+ break;
+
+ case "\f":
+ $output .= "\\f";
+ break;
+
+ case "\r":
+ $output .= "\\r";
+ break;
+
+ case "\n":
+ $output .= "\\n";
+ break;
+
+ case '\\':
+ $output .= "\\\\";
+ break;
+
+ case '\'':
+ $output .= "\\'";
+ break;
+
+ case '"':
+ $output .= '\"';
+ break;
+
+ default:
+ $byte = ord($input[$i]);
+
+ if (($byte & 0xE0) == 0xC0) {
+ $char = pack('C*', $byte, ord($input[$i + 1]));
+ $i += 1;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xF0) == 0xE0) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2]));
+ $i += 2;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xF8) == 0xF0) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2], ord($input[$i + 3])));
+ $i += 3;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xFC) == 0xF8) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2], ord($input[$i + 3]), ord($input[$i + 4])));
+ $i += 4;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xFE) == 0xFC) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2], ord($input[$i + 3]), ord($input[$i + 4]), ord($input[$i + 5])));
+ $i += 5;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } else if ($byte < 128)
+ $output .= $input[$i];
+ }
+ }
+
+ return '"' . $output . '"';
+ }
+
+ return '"' . $input . '"';
+ }
+
+ function _utf82utf16($utf8) {
+ if (function_exists('mb_convert_encoding'))
+ return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
+
+ switch (strlen($utf8)) {
+ case 1:
+ return $utf8;
+
+ case 2:
+ return chr(0x07 & (ord($utf8[0]) >> 2)) . chr((0xC0 & (ord($utf8[0]) << 6)) | (0x3F & ord($utf8[1])));
+
+ case 3:
+ return chr((0xF0 & (ord($utf8[0]) << 4)) | (0x0F & (ord($utf8[1]) >> 2))) . chr((0xC0 & (ord($utf8[1]) << 6)) | (0x7F & ord($utf8[2])));
+ }
+
+ return '';
+ }
+
+ function _encodeArray($input) {
+ $output = '';
+ $isIndexed = true;
+
+ $keys = array_keys($input);
+ for ($i=0; $i<count($keys); $i++) {
+ if (!is_int($keys[$i])) {
+ $output .= $this->encodeString($keys[$i]) . ':' . $this->encode($input[$keys[$i]]);
+ $isIndexed = false;
+ } else
+ $output .= $this->encode($input[$keys[$i]]);
+
+ if ($i != count($keys) - 1)
+ $output .= ',';
+ }
+
+ return $isIndexed ? '[' . $output . ']' : '{' . $output . '}';
+ }
+}
+
+?>
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/JSON.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/Logger.php
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/Logger.php (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/Logger.php 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1,268 @@
+<?php
+/**
+ * $Id: Logger.class.php 10 2007-05-27 10:55:12Z spocke $
+ *
+ * @package MCFileManager.filesystems
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2005, Moxiecode Systems AB, All rights reserved.
+ */
+
+// File type contstants
+define('MC_LOGGER_DEBUG', 0);
+define('MC_LOGGER_INFO', 10);
+define('MC_LOGGER_WARN', 20);
+define('MC_LOGGER_ERROR', 30);
+define('MC_LOGGER_FATAL', 40);
+
+/**
+ * Logging utility class. This class handles basic logging with levels, log rotation and custom log formats. It's
+ * designed to be compact but still powerful and flexible.
+ */
+class Moxiecode_Logger {
+ // Private fields
+ var $_path;
+ var $_filename;
+ var $_maxSize;
+ var $_maxFiles;
+ var $_maxSizeBytes;
+ var $_level;
+ var $_format;
+
+ /**
+ * Constructs a new logger instance.
+ */
+ function Moxiecode_Logger() {
+ $this->_path = "";
+ $this->_filename = "{level}.log";
+ $this->setMaxSize("100k");
+ $this->_maxFiles = 10;
+ $this->_level = MC_LOGGER_DEBUG;
+ $this->_format = "[{time}] [{level}] {message}";
+ }
+
+ /**
+ * Sets the current log level, use the MC_LOGGER constants.
+ *
+ * @param int $level Log level instance for example MC_LOGGER_DEBUG.
+ */
+ function setLevel($level) {
+ if (is_string($level)) {
+ switch (strtolower($level)) {
+ case "debug":
+ $level = MC_LOGGER_DEBUG;
+ break;
+
+ case "info":
+ $level = MC_LOGGER_INFO;
+ break;
+
+ case "warn":
+ case "warning":
+ $level = MC_LOGGER_WARN;
+ break;
+
+ case "error":
+ $level = MC_LOGGER_ERROR;
+ break;
+
+ case "fatal":
+ $level = MC_LOGGER_FATAL;
+ break;
+
+ default:
+ $level = MC_LOGGER_FATAL;
+ }
+ }
+
+ $this->_level = $level;
+ }
+
+ /**
+ * Returns the current log level for example MC_LOGGER_DEBUG.
+ *
+ * @return int Current log level for example MC_LOGGER_DEBUG.
+ */
+ function getLevel() {
+ return $this->_level;
+ }
+
+ function setPath($path) {
+ $this->_path = $path;
+ }
+
+ function getPath() {
+ return $this->_path;
+ }
+
+ function setFileName($file_name) {
+ $this->_filename = $file_name;
+ }
+
+ function getFileName() {
+ return $this->_filename;
+ }
+
+ function setFormat($format) {
+ $this->_format = $format;
+ }
+
+ function getFormat() {
+ return $this->_format;
+ }
+
+ function setMaxSize($size) {
+ // Fix log max size
+ $logMaxSizeBytes = intval(preg_replace("/[^0-9]/", "", $size));
+
+ // Is KB
+ if (strpos((strtolower($size)), "k") > 0)
+ $logMaxSizeBytes *= 1024;
+
+ // Is MB
+ if (strpos((strtolower($size)), "m") > 0)
+ $logMaxSizeBytes *= (1024 * 1024);
+
+ $this->_maxSizeBytes = $logMaxSizeBytes;
+ $this->_maxSize = $size;
+ }
+
+ function getMaxSize() {
+ return $this->_maxSize;
+ }
+
+ function setMaxFiles($max_files) {
+ $this->_maxFiles = $max_files;
+ }
+
+ function getMaxFiles() {
+ return $this->_maxFiles;
+ }
+
+ function debug($msg) {
+ $args = func_get_args();
+ $this->_logMsg(MC_LOGGER_DEBUG, implode(', ', $args));
+ }
+
+ function info($msg) {
+ $args = func_get_args();
+ $this->_logMsg(MC_LOGGER_INFO, implode(', ', $args));
+ }
+
+ function warn($msg) {
+ $args = func_get_args();
+ $this->_logMsg(MC_LOGGER_WARN, implode(', ', $args));
+ }
+
+ function error($msg) {
+ $args = func_get_args();
+ $this->_logMsg(MC_LOGGER_ERROR, implode(', ', $args));
+ }
+
+ function fatal($msg) {
+ $args = func_get_args();
+ $this->_logMsg(MC_LOGGER_FATAL, implode(', ', $args));
+ }
+
+ function isDebugEnabled() {
+ return $this->_level >= MC_LOGGER_DEBUG;
+ }
+
+ function isInfoEnabled() {
+ return $this->_level >= MC_LOGGER_INFO;
+ }
+
+ function isWarnEnabled() {
+ return $this->_level >= MC_LOGGER_WARN;
+ }
+
+ function isErrorEnabled() {
+ return $this->_level >= MC_LOGGER_ERROR;
+ }
+
+ function isFatalEnabled() {
+ return $this->_level >= MC_LOGGER_FATAL;
+ }
+
+ function _logMsg($level, $message) {
+ $roll = false;
+
+ if ($level < $this->_level)
+ return;
+
+ $logFile = $this->toOSPath($this->_path . "/" . $this->_filename);
+
+ switch ($level) {
+ case MC_LOGGER_DEBUG:
+ $levelName = "DEBUG";
+ break;
+
+ case MC_LOGGER_INFO:
+ $levelName = "INFO";
+ break;
+
+ case MC_LOGGER_WARN:
+ $levelName = "WARN";
+ break;
+
+ case MC_LOGGER_ERROR:
+ $levelName = "ERROR";
+ break;
+
+ case MC_LOGGER_FATAL:
+ $levelName = "FATAL";
+ break;
+ }
+
+ $logFile = str_replace('{level}', strtolower($levelName), $logFile);
+
+ $text = $this->_format;
+ $text = str_replace('{time}', date("Y-m-d H:i:s"), $text);
+ $text = str_replace('{level}', strtolower($levelName), $text);
+ $text = str_replace('{message}', $message, $text);
+ $message = $text . "\r\n";
+
+ // Check filesize
+ if (file_exists($logFile)) {
+ $size = @filesize($logFile);
+
+ if ($size + strlen($message) > $this->_maxSizeBytes)
+ $roll = true;
+ }
+
+ // Roll if the size is right
+ if ($roll) {
+ for ($i=$this->_maxFiles-1; $i>=1; $i--) {
+ $rfile = $this->toOSPath($logFile . "." . $i);
+ $nfile = $this->toOSPath($logFile . "." . ($i+1));
+
+ if (@file_exists($rfile))
+ @rename($rfile, $nfile);
+ }
+
+ @rename($logFile, $this->toOSPath($logFile . ".1"));
+
+ // Delete last logfile
+ $delfile = $this->toOSPath($logFile . "." . ($this->_maxFiles + 1));
+ if (@file_exists($delfile))
+ @unlink($delfile);
+ }
+
+ // Append log line
+ if (($fp = @fopen($logFile, "a")) != null) {
+ @fputs($fp, $message);
+ @fflush($fp);
+ @fclose($fp);
+ }
+ }
+
+ /**
+ * Converts a Unix path to OS specific path.
+ *
+ * @param String $path Unix path to convert.
+ */
+ function toOSPath($path) {
+ return str_replace("/", DIRECTORY_SEPARATOR, $path);
+ }
+}
+
+?>
\ No newline at end of file
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/Logger.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/config.php
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/config.php (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/config.php 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1,22 @@
+<?php
+ // General settings
+ $config['general.engine'] = 'GoogleSpell';
+ //$config['general.engine'] = 'PSpell';
+ //$config['general.engine'] = 'PSpellShell';
+ //$config['general.remote_rpc_url'] = 'http://some.other.site/some/url/rpc.php';
+
+ // PSpell settings
+ $config['PSpell.mode'] = PSPELL_FAST;
+ $config['PSpell.spelling'] = "";
+ $config['PSpell.jargon'] = "";
+ $config['PSpell.encoding'] = "";
+
+ // PSpellShell settings
+ $config['PSpellShell.mode'] = PSPELL_FAST;
+ $config['PSpellShell.aspell'] = '/opt/local/bin/aspell';
+ $config['PSpellShell.tmp'] = '/tmp';
+
+ // Windows PSpellShell settings
+ //$config['PSpellShell.aspell'] = '"c:\Program Files\Aspell\bin\aspell.exe"';
+ //$config['PSpellShell.tmp'] = 'c:/temp';
+?>
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/config.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1 @@
+.mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;}
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1 @@
+(function(){var JSONRequest=tinymce.util.JSONRequest,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.SpellcheckerPlugin',{getInfo:function(){return{longname:'Spellchecker',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',version:"2.0.2"};},init:function(ed,url){var t=this,cm;t.url=url;t.editor=ed;ed.addCommand('mceSpellCheck',function(){if(!t.active){ed.setProgressState(1);t._sendRPC('checkWords',[t.selectedLang,t._getWords()],function(r){if(r.length>0){t.active=1;t._markWords(r);ed.setProgressState(0);ed.nodeChanged();}else{ed.setProgressState(0);ed.windowManager.alert('spellchecker.no_mpell');}});}else t._done();});ed.onInit.add(function(){if(ed.settings.content_css!==false)ed.dom.loadCSS(url+'/css/content.css');});ed.onClick.add(t._showMenu,t);ed.onContextMenu.add(t._showMenu,t);ed.onBeforeGetContent.add(function(){if(t.active)t._removeWords();});ed.onNodeChange.add(function(ed,cm){cm.setActive('spellchecker',t.active);});ed.onSetContent.add(function(){t._done();});ed.onBeforeGetContent.add(function(){t._done();});ed.onBeforeExecCommand.add(function(ed,cmd){if(cmd=='mceFullScreen')t._done();});t.languages={};each(ed.getParam('spellchecker_languages','+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv','hash'),function(v,k){if(k.indexOf('+')===0){k=k.substring(1);t.selectedLang=v;}t.languages[k]=v;});},createControl:function(n,cm){var t=this,c,ed=t.editor;if(n=='spellchecker'){c=cm.createSplitButton(n,{title:'spellchecker.desc',cmd:'mceSpellCheck',scope:t});c.onRenderMenu.add(function(c,m){m.add({title:'spellchecker.langs','class':'mceMenuItemTitle'}).setDisabled(1);each(t.languages,function(v,k){var o={icon:1},mi;o.onclick=function(){mi.setSelected(1);t.selectedItem.setSelected(0);t.selectedItem=mi;t.selectedLang=v;};o.title=k;mi=m.add(o);mi.setSelected(v==t.selectedLang);if(v==t.selectedLang)t.selectedItem=mi;})});return c;}},_walk:function(n,f){var d=this.editor.getDoc(),w;if(d.createTreeWalker){w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while((n=w.nextNode())!=null)f.call(this,n);}else tinymce.walk(n,f,'childNodes');},_getSeparators:function(){var re='',i,str=this.editor.getParam('spellchecker_word_separator_chars','\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}����������������\u201d\u201c');for(i=0;i<str.length;i++)re+='\\'+str.charAt(i);return re;},_getWords:function(){var ed=this.editor,wl=[],tx='',lo={};this._walk(ed.getBody(),function(n){if(n.nodeType==3)tx+=n.nodeValue+' ';});tx=tx.replace(new RegExp('([0-9]|['+this._getSeparators()+'])','g'),' ');tx=tinymce.trim(tx.replace(/(\s+)/g,' '));each(tx.split(' '),function(v){if(!lo[v]){wl.push(v);lo[v]=1;}});return wl;},_removeWords:function(w){var ed=this.editor,dom=ed.dom,se=ed.selection,b=se.getBookmark();each(dom.select('span').reverse(),function(n){if(n&&(dom.hasClass(n,'mceItemHiddenSpellWord')||dom.hasClass(n,'mceItemHidden'))){if(!w||dom.decode(n.innerHTML)==w)dom.remove(n,1);}});se.moveToBookmark(b);},_markWords:function(wl){var r1,r2,r3,r4,r5,w='',ed=this.editor,re=this._getSeparators(),dom=ed.dom,nl=[];var se=ed.selection,b=se.getBookmark();each(wl,function(v){w+=(w?'|':'')+v;});r1=new RegExp('(['+re+'])('+w+')(['+re+'])','g');r2=new RegExp('^('+w+')','g');r3=new RegExp('('+w+')(['+re+']?)$','g');r4=new RegExp('^('+w+')(['+re+']?)$','g');r5=new RegExp('('+w+')(['+re+'])','g');this._walk(this.editor.getBody(),function(n){if(n.nodeType==3){nl.push(n);}});each(nl,function(n){var v;if(n.nodeType==3){v=n.nodeValue;if(r1.test(v)||r2.test(v)||r3.test(v)||r4.test(v)){v=dom.encode(v);v=v.replace(r5,'<span class="mceItemHiddenSpellWord">$1</span>$2');v=v.replace(r3,'<span class="mceItemHiddenSpellWord">$1</span>$2');dom.replace(dom.create('span',{'class':'mceItemHidden'},v),n);}}});se.moveToBookmark(b);},_showMenu:function(ed,e){var t=this,ed=t.editor,m=t._menu,p1,dom=ed.dom,vp=dom.getViewPort(ed.getWin());if(!m){p1=DOM.getPos(ed.getContentAreaContainer());m=ed.controlManager.createDropMenu('spellcheckermenu',{offset_x:p1.x,offset_y:p1.y,'class':'mceNoIcons'});t._menu=m;}if(dom.hasClass(e.target,'mceItemHiddenSpellWord')){m.removeAll();m.add({title:'spellchecker.wait','class':'mceMenuItemTitle'}).setDisabled(1);t._sendRPC('getSuggestions',[t.selectedLang,dom.decode(e.target.innerHTML)],function(r){m.removeAll();if(r.length>0){m.add({title:'spellchecker.sug','class':'mceMenuItemTitle'}).setDisabled(1);each(r,function(v){m.add({title:v,onclick:function(){dom.replace(ed.getDoc().createTextNode(v),e.target);t._checkDone();}});});m.addSeparator();}else m.add({title:'spellchecker.no_sug','class':'mceMenuItemTitle'}).setDisabled(1);m.add({title:'spellchecker.ignore_word',onclick:function(){dom.remove(e.target,1);t._checkDone();}});m.add({title:'spellchecker.ignore_words',onclick:function(){t._removeWords(dom.decode(e.target.innerHTML));t._checkDone();}});m.update();});ed.selection.select(e.target);p1=dom.getPos(e.target);m.showMenu(p1.x,p1.y+e.target.offsetHeight-vp.y);return tinymce.dom.Event.cancel(e);}else m.hideMenu();},_checkDone:function(){var t=this,ed=t.editor,dom=ed.dom,o;each(dom.select('span'),function(n){if(n&&dom.hasClass(n,'mceItemHiddenSpellWord')){o=true;return false;}});if(!o)t._done();},_done:function(){var t=this,la=t.active;if(t.active){t.active=0;t._removeWords();if(t._menu)t._menu.hideMenu();if(la)t.editor.nodeChanged();}},_sendRPC:function(m,p,cb){var t=this,url=t.editor.getParam("spellchecker_rpc_url",this.url+'/rpc.php');if(url=='{backend}'){t.editor.setProgressState(0);alert('Please specify: spellchecker_rpc_url');return;}JSONRequest.sendRPC({url:url,method:m,params:p,success:cb,error:function(e,x){t.editor.setProgressState(0);t.editor.windowManager.alert(e.errstr||('Error response: '+x.responseText));}});}});tinymce.PluginManager.add('spellchecker',tinymce.plugins.SpellcheckerPlugin);})();
\ No newline at end of file
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1,338 @@
+/**
+ * $Id: editor_plugin_src.js 425 2007-11-21 15:17:39Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2008, Moxiecode Systems AB, All rights reserved.
+ */
+
+(function() {
+ var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM;
+
+ tinymce.create('tinymce.plugins.SpellcheckerPlugin', {
+ getInfo : function() {
+ return {
+ longname : 'Spellchecker',
+ author : 'Moxiecode Systems AB',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',
+ version : "2.0.2"
+ };
+ },
+
+ init : function(ed, url) {
+ var t = this, cm;
+
+ t.url = url;
+ t.editor = ed;
+
+ // Register commands
+ ed.addCommand('mceSpellCheck', function() {
+ if (!t.active) {
+ ed.setProgressState(1);
+ t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) {
+ if (r.length > 0) {
+ t.active = 1;
+ t._markWords(r);
+ ed.setProgressState(0);
+ ed.nodeChanged();
+ } else {
+ ed.setProgressState(0);
+ ed.windowManager.alert('spellchecker.no_mpell');
+ }
+ });
+ } else
+ t._done();
+ });
+
+ ed.onInit.add(function() {
+ if (ed.settings.content_css !== false)
+ ed.dom.loadCSS(url + '/css/content.css');
+ });
+
+ ed.onClick.add(t._showMenu, t);
+ ed.onContextMenu.add(t._showMenu, t);
+ ed.onBeforeGetContent.add(function() {
+ if (t.active)
+ t._removeWords();
+ });
+
+ ed.onNodeChange.add(function(ed, cm) {
+ cm.setActive('spellchecker', t.active);
+ });
+
+ ed.onSetContent.add(function() {
+ t._done();
+ });
+
+ ed.onBeforeGetContent.add(function() {
+ t._done();
+ });
+
+ ed.onBeforeExecCommand.add(function(ed, cmd) {
+ if (cmd == 'mceFullScreen')
+ t._done();
+ });
+
+ // Find selected language
+ t.languages = {};
+ each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) {
+ if (k.indexOf('+') === 0) {
+ k = k.substring(1);
+ t.selectedLang = v;
+ }
+
+ t.languages[k] = v;
+ });
+ },
+
+ createControl : function(n, cm) {
+ var t = this, c, ed = t.editor;
+
+ if (n == 'spellchecker') {
+ c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t});
+
+ c.onRenderMenu.add(function(c, m) {
+ m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+ each(t.languages, function(v, k) {
+ var o = {icon : 1}, mi;
+
+ o.onclick = function() {
+ mi.setSelected(1);
+ t.selectedItem.setSelected(0);
+ t.selectedItem = mi;
+ t.selectedLang = v;
+ };
+
+ o.title = k;
+ mi = m.add(o);
+ mi.setSelected(v == t.selectedLang);
+
+ if (v == t.selectedLang)
+ t.selectedItem = mi;
+ })
+ });
+
+ return c;
+ }
+ },
+
+ // Internal functions
+
+ _walk : function(n, f) {
+ var d = this.editor.getDoc(), w;
+
+ if (d.createTreeWalker) {
+ w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);
+
+ while ((n = w.nextNode()) != null)
+ f.call(this, n);
+ } else
+ tinymce.walk(n, f, 'childNodes');
+ },
+
+ _getSeparators : function() {
+ var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}\xA7\xA9\xAB\xAE\xB1\xB6\xB7\xB8\xBB\xBC\xBD\xBE\xBF\xD7\xF7\xA4\u201d\u201c');
+
+ // Build word separator regexp
+ for (i=0; i<str.length; i++)
+ re += '\\' + str.charAt(i);
+
+ return re;
+ },
+
+ _getWords : function() {
+ var ed = this.editor, wl = [], tx = '', lo = {};
+
+ // Get area text
+ this._walk(ed.getBody(), function(n) {
+ if (n.nodeType == 3)
+ tx += n.nodeValue + ' ';
+ });
+
+ // Split words by separator
+ tx = tx.replace(new RegExp('([0-9]|[' + this._getSeparators() + '])', 'g'), ' ');
+ tx = tinymce.trim(tx.replace(/(\s+)/g, ' '));
+
+ // Build word array and remove duplicates
+ each(tx.split(' '), function(v) {
+ if (!lo[v]) {
+ wl.push(v);
+ lo[v] = 1;
+ }
+ });
+
+ return wl;
+ },
+
+ _removeWords : function(w) {
+ var ed = this.editor, dom = ed.dom, se = ed.selection, b = se.getBookmark();
+
+ each(dom.select('span').reverse(), function(n) {
+ if (n && (dom.hasClass(n, 'mceItemHiddenSpellWord') || dom.hasClass(n, 'mceItemHidden'))) {
+ if (!w || dom.decode(n.innerHTML) == w)
+ dom.remove(n, 1);
+ }
+ });
+
+ se.moveToBookmark(b);
+ },
+
+ _markWords : function(wl) {
+ var r1, r2, r3, r4, r5, w = '', ed = this.editor, re = this._getSeparators(), dom = ed.dom, nl = [];
+ var se = ed.selection, b = se.getBookmark();
+
+ each(wl, function(v) {
+ w += (w ? '|' : '') + v;
+ });
+
+ r1 = new RegExp('([' + re + '])(' + w + ')([' + re + '])', 'g');
+ r2 = new RegExp('^(' + w + ')', 'g');
+ r3 = new RegExp('(' + w + ')([' + re + ']?)$', 'g');
+ r4 = new RegExp('^(' + w + ')([' + re + ']?)$', 'g');
+ r5 = new RegExp('(' + w + ')([' + re + '])', 'g');
+
+ // Collect all text nodes
+ this._walk(this.editor.getBody(), function(n) {
+ if (n.nodeType == 3) {
+ nl.push(n);
+ }
+ });
+
+ // Wrap incorrect words in spans
+ each(nl, function(n) {
+ var v;
+
+ if (n.nodeType == 3) {
+ v = n.nodeValue;
+
+ if (r1.test(v) || r2.test(v) || r3.test(v) || r4.test(v)) {
+ v = dom.encode(v);
+ v = v.replace(r5, '<span class="mceItemHiddenSpellWord">$1</span>$2');
+ v = v.replace(r3, '<span class="mceItemHiddenSpellWord">$1</span>$2');
+
+ dom.replace(dom.create('span', {'class' : 'mceItemHidden'}, v), n);
+ }
+ }
+ });
+
+ se.moveToBookmark(b);
+ },
+
+ _showMenu : function(ed, e) {
+ var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin());
+
+ if (!m) {
+ p1 = DOM.getPos(ed.getContentAreaContainer());
+ //p2 = DOM.getPos(ed.getContainer());
+
+ m = ed.controlManager.createDropMenu('spellcheckermenu', {
+ offset_x : p1.x,
+ offset_y : p1.y,
+ 'class' : 'mceNoIcons'
+ });
+
+ t._menu = m;
+ }
+
+ if (dom.hasClass(e.target, 'mceItemHiddenSpellWord')) {
+ m.removeAll();
+ m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+
+ t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(e.target.innerHTML)], function(r) {
+ m.removeAll();
+
+ if (r.length > 0) {
+ m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+ each(r, function(v) {
+ m.add({title : v, onclick : function() {
+ dom.replace(ed.getDoc().createTextNode(v), e.target);
+ t._checkDone();
+ }});
+ });
+
+ m.addSeparator();
+ } else
+ m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+
+ m.add({
+ title : 'spellchecker.ignore_word',
+ onclick : function() {
+ dom.remove(e.target, 1);
+ t._checkDone();
+ }
+ });
+
+ m.add({
+ title : 'spellchecker.ignore_words',
+ onclick : function() {
+ t._removeWords(dom.decode(e.target.innerHTML));
+ t._checkDone();
+ }
+ });
+
+ m.update();
+ });
+
+ ed.selection.select(e.target);
+ p1 = dom.getPos(e.target);
+ m.showMenu(p1.x, p1.y + e.target.offsetHeight - vp.y);
+
+ return tinymce.dom.Event.cancel(e);
+ } else
+ m.hideMenu();
+ },
+
+ _checkDone : function() {
+ var t = this, ed = t.editor, dom = ed.dom, o;
+
+ each(dom.select('span'), function(n) {
+ if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) {
+ o = true;
+ return false;
+ }
+ });
+
+ if (!o)
+ t._done();
+ },
+
+ _done : function() {
+ var t = this, la = t.active;
+
+ if (t.active) {
+ t.active = 0;
+ t._removeWords();
+
+ if (t._menu)
+ t._menu.hideMenu();
+
+ if (la)
+ t.editor.nodeChanged();
+ }
+ },
+
+ _sendRPC : function(m, p, cb) {
+ var t = this, url = t.editor.getParam("spellchecker_rpc_url", this.url+'/rpc.php');
+
+ if (url == '{backend}') {
+ t.editor.setProgressState(0);
+ alert('Please specify: spellchecker_rpc_url');
+ return;
+ }
+
+ JSONRequest.sendRPC({
+ url : url,
+ method : m,
+ params : p,
+ success : cb,
+ error : function(e, x) {
+ t.editor.setProgressState(0);
+ t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText));
+ }
+ });
+ }
+ });
+
+ // Register plugin
+ tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin);
+})();
\ No newline at end of file
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif
===================================================================
(Binary files differ)
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/includes/general.php
===================================================================
--- portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/includes/general.php (rev 0)
+++ portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/includes/general.php 2010-01-28 18:41:55 UTC (rev 2082)
@@ -0,0 +1,98 @@
+<?php
+/**
+ * general.php
+ *
+ * @package MCManager.includes
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+@error_reporting(E_ALL ^ E_NOTICE);
+$config = array();
+
+require_once(dirname(__FILE__) . "/../classes/utils/Logger.php");
+require_once(dirname(__FILE__) . "/../classes/utils/JSON.php");
+require_once(dirname(__FILE__) . "/../config.php");
+require_once(dirname(__FILE__) . "/../classes/SpellChecker.php");
+
+if (isset($config['general.engine']))
+ require_once(dirname(__FILE__) . "/../classes/" . $config["general.engine"] . ".php");
+
+/**
+ * Returns an request value by name without magic quoting.
+ *
+ * @param String $name Name of parameter to get.
+ * @param String $default_value Default value to return if value not found.
+ * @return String request value by name without magic quoting or default value.
+ */
+function getRequestParam($name, $default_value = false, $sanitize = false) {
+ if (!isset($_REQUEST[$name]))
+ return $default_value;
+
+ if (is_array($_REQUEST[$name])) {
+ $newarray = array();
+
+ foreach ($_REQUEST[$name] as $name => $value)
+ $newarray[formatParam($name, $sanitize)] = formatParam($value, $sanitize);
+
+ return $newarray;
+ }
+
+ return formatParam($_REQUEST[$name], $sanitize);
+}
+
+function &getLogger() {
+ global $mcLogger, $man;
+
+ if (isset($man))
+ $mcLogger = $man->getLogger();
+
+ if (!$mcLogger) {
+ $mcLogger = new Moxiecode_Logger();
+
+ // Set logger options
+ $mcLogger->setPath(dirname(__FILE__) . "/../logs");
+ $mcLogger->setMaxSize("100kb");
+ $mcLogger->setMaxFiles("10");
+ $mcLogger->setFormat("{time} - {message}");
+ }
+
+ return $mcLogger;
+}
+
+function debug($msg) {
+ $args = func_get_args();
+
+ $log = getLogger();
+ $log->debug(implode(', ', $args));
+}
+
+function info($msg) {
+ $args = func_get_args();
+
+ $log = getLogger();
+ $log->info(implode(', ', $args));
+}
+
+function error($msg) {
+ $args = func_get_args();
+
+ $log = getLogger();
+ $log->error(implode(', ', $args));
+}
+
+function warn($msg) {
+ $args = func_get_args();
+
+ $log = getLogger();
+ $log->warn(implode(', ', $args));
+}
+
+function fatal($msg) {
+ $args = func_get_args();
+
+ $log = getLogger();
+ $log->fatal(implode(', ', $args));
+}
+
+?>
\ No newline at end of file
Property changes on: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/includes/general.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/rpc.php
===...
[truncated message content] |
|
From: <hma...@us...> - 2010-01-28 18:18:29
|
Revision: 2081
http://ndlb.svn.sourceforge.net/ndlb/?rev=2081&view=rev
Author: hmazariegos
Date: 2010-01-28 18:18:22 +0000 (Thu, 28 Jan 2010)
Log Message:
-----------
removed old spellchecker plugin in mms.
Removed Paths:
-------------
portal/ror/mms/trunk/public/javascripts/tiny_mce/plugins/spellchecker/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hma...@us...> - 2010-01-28 07:25:32
|
Revision: 2080
http://ndlb.svn.sourceforge.net/ndlb/?rev=2080&view=rev
Author: hmazariegos
Date: 2010-01-28 07:25:26 +0000 (Thu, 28 Jan 2010)
Log Message:
-----------
add spellchecker plugin to tinymce public javascripts.
Added Paths:
-----------
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/changelog
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/EnchantSpell.php
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpell.php
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/SpellChecker.php
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/JSON.php
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/Logger.php
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/config.php
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/img/
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/includes/
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/includes/general.php
portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/rpc.php
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/changelog
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/changelog (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/changelog 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1,20 @@
+Version 2.0.2 (2008-04-30)
+ Added new EnchantSpell engine class contributed by Michel Weimerskirch.
+ Added new general.remote_rpc_url option, enables you to proxy requests to another server.
+ Fixed security hole in PSpellShell.php file if PSpellShell engine was used.
+Version 2.0.1 (2008-03-07)
+ Fixed bug where spellchecker was auto focusing the editor in IE.
+Version 2.0 (2008-01-30)
+ Fixed bug where the suggestions menu was placed at an incorrect location.
+Version 2.0rc1 (2008-01-14)
+ Moved package from beta to release candidate.
+Version 2.0b3 (2007-12-xx)
+ Fixed bug where the suggestions menu could appear at the wrong location.
+Version 2.0b2 (2007-11-29)
+ Fixed bug where the spellchecker was removing the word when it was ignored.
+Version 2.0b1 (2007-11-21)
+ Moved spellchecker from alpha to beta status.
+Version 2.0a2 (2007-11-13)
+ Updated plugin so it works correctly with the TinyMCE 3.0a3 version.
+Version 2.0a1 (2007-11-01)
+ Rewritten version for TinyMCE 3.0 this new version uses JSON RPC.
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/changelog
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/EnchantSpell.php
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/EnchantSpell.php (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/EnchantSpell.php 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1,66 @@
+<?php
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * This class was contributed by Michel Weimerskirch.
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+class EnchantSpell extends SpellChecker {
+ /**
+ * Spellchecks an array of words.
+ *
+ * @param String $lang Selected language code (like en_US or de_DE). Shortcodes like "en" and "de" work with enchant >= 1.4.1
+ * @param Array $words Array of words to check.
+ * @return Array of misspelled words.
+ */
+ function &checkWords($lang, $words) {
+ $r = enchant_broker_init();
+
+ if (enchant_broker_dict_exists($r,$lang)) {
+ $d = enchant_broker_request_dict($r, $lang);
+
+ $returnData = array();
+ foreach($words as $key => $value) {
+ $correct = enchant_dict_check($d, $value);
+ if(!$correct) {
+ $returnData[] = trim($value);
+ }
+ }
+
+ return $returnData;
+ enchant_broker_free_dict($d);
+ } else {
+
+ }
+ enchant_broker_free($r);
+ }
+
+ /**
+ * Returns suggestions for a specific word.
+ *
+ * @param String $lang Selected language code (like en_US or de_DE). Shortcodes like "en" and "de" work with enchant >= 1.4.1
+ * @param String $word Specific word to get suggestions for.
+ * @return Array of suggestions for the specified word.
+ */
+ function &getSuggestions($lang, $word) {
+ $r = enchant_broker_init();
+ $suggs = array();
+
+ if (enchant_broker_dict_exists($r,$lang)) {
+ $d = enchant_broker_request_dict($r, $lang);
+ $suggs = enchant_dict_suggest($d, $word);
+
+ enchant_broker_free_dict($d);
+ } else {
+
+ }
+ enchant_broker_free($r);
+
+ return $suggs;
+ }
+}
+
+?>
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/EnchantSpell.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1,158 @@
+<?php
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+class GoogleSpell extends SpellChecker {
+ /**
+ * Spellchecks an array of words.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {Array} $words Array of words to spellcheck.
+ * @return {Array} Array of misspelled words.
+ */
+ function &checkWords($lang, $words) {
+ $wordstr = implode(' ', $words);
+ $matches = $this->_getMatches($lang, $wordstr);
+ $words = array();
+
+ for ($i=0; $i<count($matches); $i++)
+ $words[] = $this->_unhtmlentities(mb_substr($wordstr, $matches[$i][1], $matches[$i][2], "UTF-8"));
+
+ return $words;
+ }
+
+ /**
+ * Returns suggestions of for a specific word.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {String} $word Specific word to get suggestions for.
+ * @return {Array} Array of suggestions for the specified word.
+ */
+ function &getSuggestions($lang, $word) {
+ $sug = array();
+ $osug = array();
+ $matches = $this->_getMatches($lang, $word);
+
+ if (count($matches) > 0)
+ $sug = explode("\t", utf8_encode($this->_unhtmlentities($matches[0][4])));
+
+ // Remove empty
+ foreach ($sug as $item) {
+ if ($item)
+ $osug[] = $item;
+ }
+
+ return $osug;
+ }
+
+ function &_getMatches($lang, $str) {
+ $server = "www.google.com";
+ $port = 443;
+ $path = "/tbproxy/spell?lang=" . $lang . "&hl=en";
+ $host = "www.google.com";
+ $url = "https://" . $server;
+
+ // Setup XML request
+ $xml = '<?xml version="1.0" encoding="utf-8" ?><spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><text>' . $str . '</text></spellrequest>';
+
+ $header = "POST ".$path." HTTP/1.0 \r\n";
+ $header .= "MIME-Version: 1.0 \r\n";
+ $header .= "Content-type: application/PTI26 \r\n";
+ $header .= "Content-length: ".strlen($xml)." \r\n";
+ $header .= "Content-transfer-encoding: text \r\n";
+ $header .= "Request-number: 1 \r\n";
+ $header .= "Document-type: Request \r\n";
+ $header .= "Interface-Version: Test 1.4 \r\n";
+ $header .= "Connection: close \r\n\r\n";
+ $header .= $xml;
+
+ // Use curl if it exists
+ if (function_exists('curl_init')) {
+ // Use curl
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL,$url);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
+ $xml = curl_exec($ch);
+ curl_close($ch);
+ } else {
+ // Use raw sockets
+ $fp = fsockopen("ssl://" . $server, $port, $errno, $errstr, 30);
+ if ($fp) {
+ // Send request
+ fwrite($fp, $header);
+
+ // Read response
+ $xml = "";
+ while (!feof($fp))
+ $xml .= fgets($fp, 128);
+
+ fclose($fp);
+ } else
+ echo "Could not open SSL connection to google.";
+ }
+
+ // Grab and parse content
+ $matches = array();
+ preg_match_all('/<c o="([^"]*)" l="([^"]*)" s="([^"]*)">([^<]*)<\/c>/', $xml, $matches, PREG_SET_ORDER);
+
+ return $matches;
+ }
+
+ function _unhtmlentities($string) {
+ $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
+ $string = preg_replace('~&#([0-9]+);~e', 'chr(\\1)', $string);
+
+ $trans_tbl = get_html_translation_table(HTML_ENTITIES);
+ $trans_tbl = array_flip($trans_tbl);
+
+ return strtr($string, $trans_tbl);
+ }
+}
+
+// Patch in multibyte support
+if (!function_exists('mb_substr')) {
+ function mb_substr($str, $start, $len = '', $encoding="UTF-8"){
+ $limit = strlen($str);
+
+ for ($s = 0; $start > 0;--$start) {// found the real start
+ if ($s >= $limit)
+ break;
+
+ if ($str[$s] <= "\x7F")
+ ++$s;
+ else {
+ ++$s; // skip length
+
+ while ($str[$s] >= "\x80" && $str[$s] <= "\xBF")
+ ++$s;
+ }
+ }
+
+ if ($len == '')
+ return substr($str, $s);
+ else
+ for ($e = $s; $len > 0; --$len) {//found the real end
+ if ($e >= $limit)
+ break;
+
+ if ($str[$e] <= "\x7F")
+ ++$e;
+ else {
+ ++$e;//skip length
+
+ while ($str[$e] >= "\x80" && $str[$e] <= "\xBF" && $e < $limit)
+ ++$e;
+ }
+ }
+
+ return substr($str, $s, $e - $s);
+ }
+}
+
+?>
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpell.php
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpell.php (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpell.php 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1,81 @@
+<?php
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+class PSpell extends SpellChecker {
+ /**
+ * Spellchecks an array of words.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {Array} $words Array of words to spellcheck.
+ * @return {Array} Array of misspelled words.
+ */
+ function &checkWords($lang, $words) {
+ $plink = $this->_getPLink($lang);
+
+ $outWords = array();
+ foreach ($words as $word) {
+ if (!pspell_check($plink, trim($word)))
+ $outWords[] = utf8_encode($word);
+ }
+
+ return $outWords;
+ }
+
+ /**
+ * Returns suggestions of for a specific word.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {String} $word Specific word to get suggestions for.
+ * @return {Array} Array of suggestions for the specified word.
+ */
+ function &getSuggestions($lang, $word) {
+ $words = pspell_suggest($this->_getPLink($lang), $word);
+
+ for ($i=0; $i<count($words); $i++)
+ $words[$i] = utf8_encode($words[$i]);
+
+ return $words;
+ }
+
+ /**
+ * Opens a link for pspell.
+ */
+ function &_getPLink($lang) {
+ // Check for native PSpell support
+ if (!function_exists("pspell_new"))
+ $this->throwError("PSpell support not found in PHP installation.");
+
+ // Setup PSpell link
+ $plink = pspell_new(
+ $lang,
+ $this->_config['PSpell.spelling'],
+ $this->_config['PSpell.jargon'],
+ $this->_config['PSpell.encoding'],
+ $this->_config['PSpell.mode']
+ );
+
+ // Setup PSpell link
+/* if (!$plink) {
+ $pspellConfig = pspell_config_create(
+ $lang,
+ $this->_config['PSpell.spelling'],
+ $this->_config['PSpell.jargon'],
+ $this->_config['PSpell.encoding']
+ );
+
+ $plink = pspell_new_config($pspell_config);
+ }*/
+
+ if (!$plink)
+ $this->throwError("No PSpell link found opened.");
+
+ return $plink;
+ }
+}
+
+?>
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpell.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1,112 @@
+<?php
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+class PSpellShell extends SpellChecker {
+ /**
+ * Spellchecks an array of words.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {Array} $words Array of words to spellcheck.
+ * @return {Array} Array of misspelled words.
+ */
+ function &checkWords($lang, $words) {
+ $cmd = $this->_getCMD($lang);
+
+ if ($fh = fopen($this->_tmpfile, "w")) {
+ fwrite($fh, "!\n");
+
+ foreach($words as $key => $value)
+ fwrite($fh, "^" . $value . "\n");
+
+ fclose($fh);
+ } else
+ $this->throwError("PSpell support was not found.");
+
+ $data = shell_exec($cmd);
+ @unlink($this->_tmpfile);
+
+ $returnData = array();
+ $dataArr = preg_split("/[\r\n]/", $data, -1, PREG_SPLIT_NO_EMPTY);
+
+ foreach ($dataArr as $dstr) {
+ $matches = array();
+
+ // Skip this line.
+ if (strpos($dstr, "@") === 0)
+ continue;
+
+ preg_match("/\& ([^ ]+) .*/i", $dstr, $matches);
+
+ if (!empty($matches[1]))
+ $returnData[] = utf8_encode(trim($matches[1]));
+ }
+
+ return $returnData;
+ }
+
+ /**
+ * Returns suggestions of for a specific word.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {String} $word Specific word to get suggestions for.
+ * @return {Array} Array of suggestions for the specified word.
+ */
+ function &getSuggestions($lang, $word) {
+ $cmd = $this->_getCMD($lang);
+
+ if (function_exists("mb_convert_encoding"))
+ $word = mb_convert_encoding($word, "ISO-8859-1", mb_detect_encoding($word, "UTF-8"));
+ else
+ $word = utf8_encode($word);
+
+ if ($fh = fopen($this->_tmpfile, "w")) {
+ fwrite($fh, "!\n");
+ fwrite($fh, "^$word\n");
+ fclose($fh);
+ } else
+ $this->throwError("Error opening tmp file.");
+
+ $data = shell_exec($cmd);
+ @unlink($this->_tmpfile);
+
+ $returnData = array();
+ $dataArr = preg_split("/\n/", $data, -1, PREG_SPLIT_NO_EMPTY);
+
+ foreach($dataArr as $dstr) {
+ $matches = array();
+
+ // Skip this line.
+ if (strpos($dstr, "@") === 0)
+ continue;
+
+ preg_match("/\&[^:]+:(.*)/i", $dstr, $matches);
+
+ if (!empty($matches[1])) {
+ $words = array_slice(explode(',', $matches[1]), 0, 10);
+
+ for ($i=0; $i<count($words); $i++)
+ $words[$i] = trim($words[$i]);
+
+ return $words;
+ }
+ }
+
+ return array();
+ }
+
+ function _getCMD($lang) {
+ $this->_tmpfile = tempnam($this->_config['PSpellShell.tmp'], "tinyspell");
+
+ if(preg_match("#win#i", php_uname()))
+ return $this->_config['PSpellShell.aspell'] . " -a --lang=". escapeshellarg($lang) . " --encoding=utf-8 -H < " . $this->_tmpfile . " 2>&1";
+
+ return "cat ". $this->_tmpfile ." | " . $this->_config['PSpellShell.aspell'] . " -a --encoding=utf-8 -H --lang=". escapeshellarg($lang);
+ }
+}
+
+?>
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/SpellChecker.php
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/SpellChecker.php (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/SpellChecker.php 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1,61 @@
+<?php
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+class SpellChecker {
+ /**
+ * Constructor.
+ *
+ * @param $config Configuration name/value array.
+ */
+ function SpellChecker(&$config) {
+ $this->_config = $config;
+ }
+
+ /**
+ * Simple loopback function everything that gets in will be send back.
+ *
+ * @param $args.. Arguments.
+ * @return {Array} Array of all input arguments.
+ */
+ function &loopback(/* args.. */) {
+ return func_get_args();
+ }
+
+ /**
+ * Spellchecks an array of words.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {Array} $words Array of words to spellcheck.
+ * @return {Array} Array of misspelled words.
+ */
+ function &checkWords($lang, $words) {
+ return $words;
+ }
+
+ /**
+ * Returns suggestions of for a specific word.
+ *
+ * @param {String} $lang Language code like sv or en.
+ * @param {String} $word Specific word to get suggestions for.
+ * @return {Array} Array of suggestions for the specified word.
+ */
+ function &getSuggestions($lang, $word) {
+ return array();
+ }
+
+ /**
+ * Throws an error message back to the user. This will stop all execution.
+ *
+ * @param {String} $str Message to send back to user.
+ */
+ function throwError($str) {
+ die('{"result":null,"id":null,"error":{"errstr":"' . addslashes($str) . '","errfile":"","errline":null,"errcontext":"","level":"FATAL"}}');
+ }
+}
+
+?>
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/SpellChecker.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/JSON.php
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/JSON.php (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/JSON.php 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1,595 @@
+<?php
+/**
+ * $Id: JSON.php 40 2007-06-18 11:43:15Z spocke $
+ *
+ * @package MCManager.utils
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+define('JSON_BOOL', 1);
+define('JSON_INT', 2);
+define('JSON_STR', 3);
+define('JSON_FLOAT', 4);
+define('JSON_NULL', 5);
+define('JSON_START_OBJ', 6);
+define('JSON_END_OBJ', 7);
+define('JSON_START_ARRAY', 8);
+define('JSON_END_ARRAY', 9);
+define('JSON_KEY', 10);
+define('JSON_SKIP', 11);
+
+define('JSON_IN_ARRAY', 30);
+define('JSON_IN_OBJECT', 40);
+define('JSON_IN_BETWEEN', 50);
+
+class Moxiecode_JSONReader {
+ var $_data, $_len, $_pos;
+ var $_value, $_token;
+ var $_location, $_lastLocations;
+ var $_needProp;
+
+ function Moxiecode_JSONReader($data) {
+ $this->_data = $data;
+ $this->_len = strlen($data);
+ $this->_pos = -1;
+ $this->_location = JSON_IN_BETWEEN;
+ $this->_lastLocations = array();
+ $this->_needProp = false;
+ }
+
+ function getToken() {
+ return $this->_token;
+ }
+
+ function getLocation() {
+ return $this->_location;
+ }
+
+ function getTokenName() {
+ switch ($this->_token) {
+ case JSON_BOOL:
+ return 'JSON_BOOL';
+
+ case JSON_INT:
+ return 'JSON_INT';
+
+ case JSON_STR:
+ return 'JSON_STR';
+
+ case JSON_FLOAT:
+ return 'JSON_FLOAT';
+
+ case JSON_NULL:
+ return 'JSON_NULL';
+
+ case JSON_START_OBJ:
+ return 'JSON_START_OBJ';
+
+ case JSON_END_OBJ:
+ return 'JSON_END_OBJ';
+
+ case JSON_START_ARRAY:
+ return 'JSON_START_ARRAY';
+
+ case JSON_END_ARRAY:
+ return 'JSON_END_ARRAY';
+
+ case JSON_KEY:
+ return 'JSON_KEY';
+ }
+
+ return 'UNKNOWN';
+ }
+
+ function getValue() {
+ return $this->_value;
+ }
+
+ function readToken() {
+ $chr = $this->read();
+
+ if ($chr != null) {
+ switch ($chr) {
+ case '[':
+ $this->_lastLocation[] = $this->_location;
+ $this->_location = JSON_IN_ARRAY;
+ $this->_token = JSON_START_ARRAY;
+ $this->_value = null;
+ $this->readAway();
+ return true;
+
+ case ']':
+ $this->_location = array_pop($this->_lastLocation);
+ $this->_token = JSON_END_ARRAY;
+ $this->_value = null;
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT)
+ $this->_needProp = true;
+
+ return true;
+
+ case '{':
+ $this->_lastLocation[] = $this->_location;
+ $this->_location = JSON_IN_OBJECT;
+ $this->_needProp = true;
+ $this->_token = JSON_START_OBJ;
+ $this->_value = null;
+ $this->readAway();
+ return true;
+
+ case '}':
+ $this->_location = array_pop($this->_lastLocation);
+ $this->_token = JSON_END_OBJ;
+ $this->_value = null;
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT)
+ $this->_needProp = true;
+
+ return true;
+
+ // String
+ case '"':
+ case '\'':
+ return $this->_readString($chr);
+
+ // Null
+ case 'n':
+ return $this->_readNull();
+
+ // Bool
+ case 't':
+ case 'f':
+ return $this->_readBool($chr);
+
+ default:
+ // Is number
+ if (is_numeric($chr) || $chr == '-' || $chr == '.')
+ return $this->_readNumber($chr);
+
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ function _readBool($chr) {
+ $this->_token = JSON_BOOL;
+ $this->_value = $chr == 't';
+
+ if ($chr == 't')
+ $this->skip(3); // rue
+ else
+ $this->skip(4); // alse
+
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function _readNull() {
+ $this->_token = JSON_NULL;
+ $this->_value = null;
+
+ $this->skip(3); // ull
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function _readString($quote) {
+ $output = "";
+ $this->_token = JSON_STR;
+ $endString = false;
+
+ while (($chr = $this->peek()) != -1) {
+ switch ($chr) {
+ case '\\':
+ // Read away slash
+ $this->read();
+
+ // Read escape code
+ $chr = $this->read();
+ switch ($chr) {
+ case 't':
+ $output .= "\t";
+ break;
+
+ case 'b':
+ $output .= "\b";
+ break;
+
+ case 'f':
+ $output .= "\f";
+ break;
+
+ case 'r':
+ $output .= "\r";
+ break;
+
+ case 'n':
+ $output .= "\n";
+ break;
+
+ case 'u':
+ $output .= $this->_int2utf8(hexdec($this->read(4)));
+ break;
+
+ default:
+ $output .= $chr;
+ break;
+ }
+
+ break;
+
+ case '\'':
+ case '"':
+ if ($chr == $quote)
+ $endString = true;
+
+ $chr = $this->read();
+ if ($chr != -1 && $chr != $quote)
+ $output .= $chr;
+
+ break;
+
+ default:
+ $output .= $this->read();
+ }
+
+ // String terminated
+ if ($endString)
+ break;
+ }
+
+ $this->readAway();
+ $this->_value = $output;
+
+ // Needed a property
+ if ($this->_needProp) {
+ $this->_token = JSON_KEY;
+ $this->_needProp = false;
+ return true;
+ }
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function _int2utf8($int) {
+ $int = intval($int);
+
+ switch ($int) {
+ case 0:
+ return chr(0);
+
+ case ($int & 0x7F):
+ return chr($int);
+
+ case ($int & 0x7FF):
+ return chr(0xC0 | (($int >> 6) & 0x1F)) . chr(0x80 | ($int & 0x3F));
+
+ case ($int & 0xFFFF):
+ return chr(0xE0 | (($int >> 12) & 0x0F)) . chr(0x80 | (($int >> 6) & 0x3F)) . chr (0x80 | ($int & 0x3F));
+
+ case ($int & 0x1FFFFF):
+ return chr(0xF0 | ($int >> 18)) . chr(0x80 | (($int >> 12) & 0x3F)) . chr(0x80 | (($int >> 6) & 0x3F)) . chr(0x80 | ($int & 0x3F));
+ }
+ }
+
+ function _readNumber($start) {
+ $value = "";
+ $isFloat = false;
+
+ $this->_token = JSON_INT;
+ $value .= $start;
+
+ while (($chr = $this->peek()) != -1) {
+ if (is_numeric($chr) || $chr == '-' || $chr == '.') {
+ if ($chr == '.')
+ $isFloat = true;
+
+ $value .= $this->read();
+ } else
+ break;
+ }
+
+ $this->readAway();
+
+ if ($isFloat) {
+ $this->_token = JSON_FLOAT;
+ $this->_value = floatval($value);
+ } else
+ $this->_value = intval($value);
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function readAway() {
+ while (($chr = $this->peek()) != null) {
+ if ($chr != ':' && $chr != ',' && $chr != ' ')
+ return;
+
+ $this->read();
+ }
+ }
+
+ function read($len = 1) {
+ if ($this->_pos < $this->_len) {
+ if ($len > 1) {
+ $str = substr($this->_data, $this->_pos + 1, $len);
+ $this->_pos += $len;
+
+ return $str;
+ } else
+ return $this->_data[++$this->_pos];
+ }
+
+ return null;
+ }
+
+ function skip($len) {
+ $this->_pos += $len;
+ }
+
+ function peek() {
+ if ($this->_pos < $this->_len)
+ return $this->_data[$this->_pos + 1];
+
+ return null;
+ }
+}
+
+/**
+ * This class handles JSON stuff.
+ *
+ * @package MCManager.utils
+ */
+class Moxiecode_JSON {
+ function Moxiecode_JSON() {
+ }
+
+ function decode($input) {
+ $reader = new Moxiecode_JSONReader($input);
+
+ return $this->readValue($reader);
+ }
+
+ function readValue(&$reader) {
+ $this->data = array();
+ $this->parents = array();
+ $this->cur =& $this->data;
+ $key = null;
+ $loc = JSON_IN_ARRAY;
+
+ while ($reader->readToken()) {
+ switch ($reader->getToken()) {
+ case JSON_STR:
+ case JSON_INT:
+ case JSON_BOOL:
+ case JSON_FLOAT:
+ case JSON_NULL:
+ switch ($reader->getLocation()) {
+ case JSON_IN_OBJECT:
+ $this->cur[$key] = $reader->getValue();
+ break;
+
+ case JSON_IN_ARRAY:
+ $this->cur[] = $reader->getValue();
+ break;
+
+ default:
+ return $reader->getValue();
+ }
+ break;
+
+ case JSON_KEY:
+ $key = $reader->getValue();
+ break;
+
+ case JSON_START_OBJ:
+ case JSON_START_ARRAY:
+ if ($loc == JSON_IN_OBJECT)
+ $this->addArray($key);
+ else
+ $this->addArray(null);
+
+ $cur =& $obj;
+
+ $loc = $reader->getLocation();
+ break;
+
+ case JSON_END_OBJ:
+ case JSON_END_ARRAY:
+ $loc = $reader->getLocation();
+
+ if (count($this->parents) > 0) {
+ $this->cur =& $this->parents[count($this->parents) - 1];
+ array_pop($this->parents);
+ }
+ break;
+ }
+ }
+
+ return $this->data[0];
+ }
+
+ // This method was needed since PHP is crapy and doesn't have pointers/references
+ function addArray($key) {
+ $this->parents[] =& $this->cur;
+ $ar = array();
+
+ if ($key)
+ $this->cur[$key] =& $ar;
+ else
+ $this->cur[] =& $ar;
+
+ $this->cur =& $ar;
+ }
+
+ function getDelim($index, &$reader) {
+ switch ($reader->getLocation()) {
+ case JSON_IN_ARRAY:
+ case JSON_IN_OBJECT:
+ if ($index > 0)
+ return ",";
+ break;
+ }
+
+ return "";
+ }
+
+ function encode($input) {
+ switch (gettype($input)) {
+ case 'boolean':
+ return $input ? 'true' : 'false';
+
+ case 'integer':
+ return (int) $input;
+
+ case 'float':
+ case 'double':
+ return (float) $input;
+
+ case 'NULL':
+ return 'null';
+
+ case 'string':
+ return $this->encodeString($input);
+
+ case 'array':
+ return $this->_encodeArray($input);
+
+ case 'object':
+ return $this->_encodeArray(get_object_vars($input));
+ }
+
+ return '';
+ }
+
+ function encodeString($input) {
+ // Needs to be escaped
+ if (preg_match('/[^a-zA-Z0-9]/', $input)) {
+ $output = '';
+
+ for ($i=0; $i<strlen($input); $i++) {
+ switch ($input[$i]) {
+ case "\b":
+ $output .= "\\b";
+ break;
+
+ case "\t":
+ $output .= "\\t";
+ break;
+
+ case "\f":
+ $output .= "\\f";
+ break;
+
+ case "\r":
+ $output .= "\\r";
+ break;
+
+ case "\n":
+ $output .= "\\n";
+ break;
+
+ case '\\':
+ $output .= "\\\\";
+ break;
+
+ case '\'':
+ $output .= "\\'";
+ break;
+
+ case '"':
+ $output .= '\"';
+ break;
+
+ default:
+ $byte = ord($input[$i]);
+
+ if (($byte & 0xE0) == 0xC0) {
+ $char = pack('C*', $byte, ord($input[$i + 1]));
+ $i += 1;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xF0) == 0xE0) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2]));
+ $i += 2;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xF8) == 0xF0) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2], ord($input[$i + 3])));
+ $i += 3;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xFC) == 0xF8) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2], ord($input[$i + 3]), ord($input[$i + 4])));
+ $i += 4;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xFE) == 0xFC) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2], ord($input[$i + 3]), ord($input[$i + 4]), ord($input[$i + 5])));
+ $i += 5;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } else if ($byte < 128)
+ $output .= $input[$i];
+ }
+ }
+
+ return '"' . $output . '"';
+ }
+
+ return '"' . $input . '"';
+ }
+
+ function _utf82utf16($utf8) {
+ if (function_exists('mb_convert_encoding'))
+ return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
+
+ switch (strlen($utf8)) {
+ case 1:
+ return $utf8;
+
+ case 2:
+ return chr(0x07 & (ord($utf8[0]) >> 2)) . chr((0xC0 & (ord($utf8[0]) << 6)) | (0x3F & ord($utf8[1])));
+
+ case 3:
+ return chr((0xF0 & (ord($utf8[0]) << 4)) | (0x0F & (ord($utf8[1]) >> 2))) . chr((0xC0 & (ord($utf8[1]) << 6)) | (0x7F & ord($utf8[2])));
+ }
+
+ return '';
+ }
+
+ function _encodeArray($input) {
+ $output = '';
+ $isIndexed = true;
+
+ $keys = array_keys($input);
+ for ($i=0; $i<count($keys); $i++) {
+ if (!is_int($keys[$i])) {
+ $output .= $this->encodeString($keys[$i]) . ':' . $this->encode($input[$keys[$i]]);
+ $isIndexed = false;
+ } else
+ $output .= $this->encode($input[$keys[$i]]);
+
+ if ($i != count($keys) - 1)
+ $output .= ',';
+ }
+
+ return $isIndexed ? '[' . $output . ']' : '{' . $output . '}';
+ }
+}
+
+?>
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/JSON.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/Logger.php
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/Logger.php (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/Logger.php 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1,268 @@
+<?php
+/**
+ * $Id: Logger.class.php 10 2007-05-27 10:55:12Z spocke $
+ *
+ * @package MCFileManager.filesystems
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2005, Moxiecode Systems AB, All rights reserved.
+ */
+
+// File type contstants
+define('MC_LOGGER_DEBUG', 0);
+define('MC_LOGGER_INFO', 10);
+define('MC_LOGGER_WARN', 20);
+define('MC_LOGGER_ERROR', 30);
+define('MC_LOGGER_FATAL', 40);
+
+/**
+ * Logging utility class. This class handles basic logging with levels, log rotation and custom log formats. It's
+ * designed to be compact but still powerful and flexible.
+ */
+class Moxiecode_Logger {
+ // Private fields
+ var $_path;
+ var $_filename;
+ var $_maxSize;
+ var $_maxFiles;
+ var $_maxSizeBytes;
+ var $_level;
+ var $_format;
+
+ /**
+ * Constructs a new logger instance.
+ */
+ function Moxiecode_Logger() {
+ $this->_path = "";
+ $this->_filename = "{level}.log";
+ $this->setMaxSize("100k");
+ $this->_maxFiles = 10;
+ $this->_level = MC_LOGGER_DEBUG;
+ $this->_format = "[{time}] [{level}] {message}";
+ }
+
+ /**
+ * Sets the current log level, use the MC_LOGGER constants.
+ *
+ * @param int $level Log level instance for example MC_LOGGER_DEBUG.
+ */
+ function setLevel($level) {
+ if (is_string($level)) {
+ switch (strtolower($level)) {
+ case "debug":
+ $level = MC_LOGGER_DEBUG;
+ break;
+
+ case "info":
+ $level = MC_LOGGER_INFO;
+ break;
+
+ case "warn":
+ case "warning":
+ $level = MC_LOGGER_WARN;
+ break;
+
+ case "error":
+ $level = MC_LOGGER_ERROR;
+ break;
+
+ case "fatal":
+ $level = MC_LOGGER_FATAL;
+ break;
+
+ default:
+ $level = MC_LOGGER_FATAL;
+ }
+ }
+
+ $this->_level = $level;
+ }
+
+ /**
+ * Returns the current log level for example MC_LOGGER_DEBUG.
+ *
+ * @return int Current log level for example MC_LOGGER_DEBUG.
+ */
+ function getLevel() {
+ return $this->_level;
+ }
+
+ function setPath($path) {
+ $this->_path = $path;
+ }
+
+ function getPath() {
+ return $this->_path;
+ }
+
+ function setFileName($file_name) {
+ $this->_filename = $file_name;
+ }
+
+ function getFileName() {
+ return $this->_filename;
+ }
+
+ function setFormat($format) {
+ $this->_format = $format;
+ }
+
+ function getFormat() {
+ return $this->_format;
+ }
+
+ function setMaxSize($size) {
+ // Fix log max size
+ $logMaxSizeBytes = intval(preg_replace("/[^0-9]/", "", $size));
+
+ // Is KB
+ if (strpos((strtolower($size)), "k") > 0)
+ $logMaxSizeBytes *= 1024;
+
+ // Is MB
+ if (strpos((strtolower($size)), "m") > 0)
+ $logMaxSizeBytes *= (1024 * 1024);
+
+ $this->_maxSizeBytes = $logMaxSizeBytes;
+ $this->_maxSize = $size;
+ }
+
+ function getMaxSize() {
+ return $this->_maxSize;
+ }
+
+ function setMaxFiles($max_files) {
+ $this->_maxFiles = $max_files;
+ }
+
+ function getMaxFiles() {
+ return $this->_maxFiles;
+ }
+
+ function debug($msg) {
+ $args = func_get_args();
+ $this->_logMsg(MC_LOGGER_DEBUG, implode(', ', $args));
+ }
+
+ function info($msg) {
+ $args = func_get_args();
+ $this->_logMsg(MC_LOGGER_INFO, implode(', ', $args));
+ }
+
+ function warn($msg) {
+ $args = func_get_args();
+ $this->_logMsg(MC_LOGGER_WARN, implode(', ', $args));
+ }
+
+ function error($msg) {
+ $args = func_get_args();
+ $this->_logMsg(MC_LOGGER_ERROR, implode(', ', $args));
+ }
+
+ function fatal($msg) {
+ $args = func_get_args();
+ $this->_logMsg(MC_LOGGER_FATAL, implode(', ', $args));
+ }
+
+ function isDebugEnabled() {
+ return $this->_level >= MC_LOGGER_DEBUG;
+ }
+
+ function isInfoEnabled() {
+ return $this->_level >= MC_LOGGER_INFO;
+ }
+
+ function isWarnEnabled() {
+ return $this->_level >= MC_LOGGER_WARN;
+ }
+
+ function isErrorEnabled() {
+ return $this->_level >= MC_LOGGER_ERROR;
+ }
+
+ function isFatalEnabled() {
+ return $this->_level >= MC_LOGGER_FATAL;
+ }
+
+ function _logMsg($level, $message) {
+ $roll = false;
+
+ if ($level < $this->_level)
+ return;
+
+ $logFile = $this->toOSPath($this->_path . "/" . $this->_filename);
+
+ switch ($level) {
+ case MC_LOGGER_DEBUG:
+ $levelName = "DEBUG";
+ break;
+
+ case MC_LOGGER_INFO:
+ $levelName = "INFO";
+ break;
+
+ case MC_LOGGER_WARN:
+ $levelName = "WARN";
+ break;
+
+ case MC_LOGGER_ERROR:
+ $levelName = "ERROR";
+ break;
+
+ case MC_LOGGER_FATAL:
+ $levelName = "FATAL";
+ break;
+ }
+
+ $logFile = str_replace('{level}', strtolower($levelName), $logFile);
+
+ $text = $this->_format;
+ $text = str_replace('{time}', date("Y-m-d H:i:s"), $text);
+ $text = str_replace('{level}', strtolower($levelName), $text);
+ $text = str_replace('{message}', $message, $text);
+ $message = $text . "\r\n";
+
+ // Check filesize
+ if (file_exists($logFile)) {
+ $size = @filesize($logFile);
+
+ if ($size + strlen($message) > $this->_maxSizeBytes)
+ $roll = true;
+ }
+
+ // Roll if the size is right
+ if ($roll) {
+ for ($i=$this->_maxFiles-1; $i>=1; $i--) {
+ $rfile = $this->toOSPath($logFile . "." . $i);
+ $nfile = $this->toOSPath($logFile . "." . ($i+1));
+
+ if (@file_exists($rfile))
+ @rename($rfile, $nfile);
+ }
+
+ @rename($logFile, $this->toOSPath($logFile . ".1"));
+
+ // Delete last logfile
+ $delfile = $this->toOSPath($logFile . "." . ($this->_maxFiles + 1));
+ if (@file_exists($delfile))
+ @unlink($delfile);
+ }
+
+ // Append log line
+ if (($fp = @fopen($logFile, "a")) != null) {
+ @fputs($fp, $message);
+ @fflush($fp);
+ @fclose($fp);
+ }
+ }
+
+ /**
+ * Converts a Unix path to OS specific path.
+ *
+ * @param String $path Unix path to convert.
+ */
+ function toOSPath($path) {
+ return str_replace("/", DIRECTORY_SEPARATOR, $path);
+ }
+}
+
+?>
\ No newline at end of file
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/classes/utils/Logger.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/config.php
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/config.php (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/config.php 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1,22 @@
+<?php
+ // General settings
+ $config['general.engine'] = 'GoogleSpell';
+ //$config['general.engine'] = 'PSpell';
+ //$config['general.engine'] = 'PSpellShell';
+ //$config['general.remote_rpc_url'] = 'http://some.other.site/some/url/rpc.php';
+
+ // PSpell settings
+ $config['PSpell.mode'] = PSPELL_FAST;
+ $config['PSpell.spelling'] = "";
+ $config['PSpell.jargon'] = "";
+ $config['PSpell.encoding'] = "";
+
+ // PSpellShell settings
+ $config['PSpellShell.mode'] = PSPELL_FAST;
+ $config['PSpellShell.aspell'] = '/opt/local/bin/aspell';
+ $config['PSpellShell.tmp'] = '/tmp';
+
+ // Windows PSpellShell settings
+ //$config['PSpellShell.aspell'] = '"c:\Program Files\Aspell\bin\aspell.exe"';
+ //$config['PSpellShell.tmp'] = 'c:/temp';
+?>
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/config.php
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1 @@
+.mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;}
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1 @@
+(function(){var JSONRequest=tinymce.util.JSONRequest,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.SpellcheckerPlugin',{getInfo:function(){return{longname:'Spellchecker',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',version:"2.0.2"};},init:function(ed,url){var t=this,cm;t.url=url;t.editor=ed;ed.addCommand('mceSpellCheck',function(){if(!t.active){ed.setProgressState(1);t._sendRPC('checkWords',[t.selectedLang,t._getWords()],function(r){if(r.length>0){t.active=1;t._markWords(r);ed.setProgressState(0);ed.nodeChanged();}else{ed.setProgressState(0);ed.windowManager.alert('spellchecker.no_mpell');}});}else t._done();});ed.onInit.add(function(){if(ed.settings.content_css!==false)ed.dom.loadCSS(url+'/css/content.css');});ed.onClick.add(t._showMenu,t);ed.onContextMenu.add(t._showMenu,t);ed.onBeforeGetContent.add(function(){if(t.active)t._removeWords();});ed.onNodeChange.add(function(ed,cm){cm.setActive('spellchecker',t.active);});ed.onSetContent.add(function(){t._done();});ed.onBeforeGetContent.add(function(){t._done();});ed.onBeforeExecCommand.add(function(ed,cmd){if(cmd=='mceFullScreen')t._done();});t.languages={};each(ed.getParam('spellchecker_languages','+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv','hash'),function(v,k){if(k.indexOf('+')===0){k=k.substring(1);t.selectedLang=v;}t.languages[k]=v;});},createControl:function(n,cm){var t=this,c,ed=t.editor;if(n=='spellchecker'){c=cm.createSplitButton(n,{title:'spellchecker.desc',cmd:'mceSpellCheck',scope:t});c.onRenderMenu.add(function(c,m){m.add({title:'spellchecker.langs','class':'mceMenuItemTitle'}).setDisabled(1);each(t.languages,function(v,k){var o={icon:1},mi;o.onclick=function(){mi.setSelected(1);t.selectedItem.setSelected(0);t.selectedItem=mi;t.selectedLang=v;};o.title=k;mi=m.add(o);mi.setSelected(v==t.selectedLang);if(v==t.selectedLang)t.selectedItem=mi;})});return c;}},_walk:function(n,f){var d=this.editor.getDoc(),w;if(d.createTreeWalker){w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while((n=w.nextNode())!=null)f.call(this,n);}else tinymce.walk(n,f,'childNodes');},_getSeparators:function(){var re='',i,str=this.editor.getParam('spellchecker_word_separator_chars','\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}����������������\u201d\u201c');for(i=0;i<str.length;i++)re+='\\'+str.charAt(i);return re;},_getWords:function(){var ed=this.editor,wl=[],tx='',lo={};this._walk(ed.getBody(),function(n){if(n.nodeType==3)tx+=n.nodeValue+' ';});tx=tx.replace(new RegExp('([0-9]|['+this._getSeparators()+'])','g'),' ');tx=tinymce.trim(tx.replace(/(\s+)/g,' '));each(tx.split(' '),function(v){if(!lo[v]){wl.push(v);lo[v]=1;}});return wl;},_removeWords:function(w){var ed=this.editor,dom=ed.dom,se=ed.selection,b=se.getBookmark();each(dom.select('span').reverse(),function(n){if(n&&(dom.hasClass(n,'mceItemHiddenSpellWord')||dom.hasClass(n,'mceItemHidden'))){if(!w||dom.decode(n.innerHTML)==w)dom.remove(n,1);}});se.moveToBookmark(b);},_markWords:function(wl){var r1,r2,r3,r4,r5,w='',ed=this.editor,re=this._getSeparators(),dom=ed.dom,nl=[];var se=ed.selection,b=se.getBookmark();each(wl,function(v){w+=(w?'|':'')+v;});r1=new RegExp('(['+re+'])('+w+')(['+re+'])','g');r2=new RegExp('^('+w+')','g');r3=new RegExp('('+w+')(['+re+']?)$','g');r4=new RegExp('^('+w+')(['+re+']?)$','g');r5=new RegExp('('+w+')(['+re+'])','g');this._walk(this.editor.getBody(),function(n){if(n.nodeType==3){nl.push(n);}});each(nl,function(n){var v;if(n.nodeType==3){v=n.nodeValue;if(r1.test(v)||r2.test(v)||r3.test(v)||r4.test(v)){v=dom.encode(v);v=v.replace(r5,'<span class="mceItemHiddenSpellWord">$1</span>$2');v=v.replace(r3,'<span class="mceItemHiddenSpellWord">$1</span>$2');dom.replace(dom.create('span',{'class':'mceItemHidden'},v),n);}}});se.moveToBookmark(b);},_showMenu:function(ed,e){var t=this,ed=t.editor,m=t._menu,p1,dom=ed.dom,vp=dom.getViewPort(ed.getWin());if(!m){p1=DOM.getPos(ed.getContentAreaContainer());m=ed.controlManager.createDropMenu('spellcheckermenu',{offset_x:p1.x,offset_y:p1.y,'class':'mceNoIcons'});t._menu=m;}if(dom.hasClass(e.target,'mceItemHiddenSpellWord')){m.removeAll();m.add({title:'spellchecker.wait','class':'mceMenuItemTitle'}).setDisabled(1);t._sendRPC('getSuggestions',[t.selectedLang,dom.decode(e.target.innerHTML)],function(r){m.removeAll();if(r.length>0){m.add({title:'spellchecker.sug','class':'mceMenuItemTitle'}).setDisabled(1);each(r,function(v){m.add({title:v,onclick:function(){dom.replace(ed.getDoc().createTextNode(v),e.target);t._checkDone();}});});m.addSeparator();}else m.add({title:'spellchecker.no_sug','class':'mceMenuItemTitle'}).setDisabled(1);m.add({title:'spellchecker.ignore_word',onclick:function(){dom.remove(e.target,1);t._checkDone();}});m.add({title:'spellchecker.ignore_words',onclick:function(){t._removeWords(dom.decode(e.target.innerHTML));t._checkDone();}});m.update();});ed.selection.select(e.target);p1=dom.getPos(e.target);m.showMenu(p1.x,p1.y+e.target.offsetHeight-vp.y);return tinymce.dom.Event.cancel(e);}else m.hideMenu();},_checkDone:function(){var t=this,ed=t.editor,dom=ed.dom,o;each(dom.select('span'),function(n){if(n&&dom.hasClass(n,'mceItemHiddenSpellWord')){o=true;return false;}});if(!o)t._done();},_done:function(){var t=this,la=t.active;if(t.active){t.active=0;t._removeWords();if(t._menu)t._menu.hideMenu();if(la)t.editor.nodeChanged();}},_sendRPC:function(m,p,cb){var t=this,url=t.editor.getParam("spellchecker_rpc_url",this.url+'/rpc.php');if(url=='{backend}'){t.editor.setProgressState(0);alert('Please specify: spellchecker_rpc_url');return;}JSONRequest.sendRPC({url:url,method:m,params:p,success:cb,error:function(e,x){t.editor.setProgressState(0);t.editor.windowManager.alert(e.errstr||('Error response: '+x.responseText));}});}});tinymce.PluginManager.add('spellchecker',tinymce.plugins.SpellcheckerPlugin);})();
\ No newline at end of file
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1,338 @@
+/**
+ * $Id: editor_plugin_src.js 425 2007-11-21 15:17:39Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2004-2008, Moxiecode Systems AB, All rights reserved.
+ */
+
+(function() {
+ var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM;
+
+ tinymce.create('tinymce.plugins.SpellcheckerPlugin', {
+ getInfo : function() {
+ return {
+ longname : 'Spellchecker',
+ author : 'Moxiecode Systems AB',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',
+ version : "2.0.2"
+ };
+ },
+
+ init : function(ed, url) {
+ var t = this, cm;
+
+ t.url = url;
+ t.editor = ed;
+
+ // Register commands
+ ed.addCommand('mceSpellCheck', function() {
+ if (!t.active) {
+ ed.setProgressState(1);
+ t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) {
+ if (r.length > 0) {
+ t.active = 1;
+ t._markWords(r);
+ ed.setProgressState(0);
+ ed.nodeChanged();
+ } else {
+ ed.setProgressState(0);
+ ed.windowManager.alert('spellchecker.no_mpell');
+ }
+ });
+ } else
+ t._done();
+ });
+
+ ed.onInit.add(function() {
+ if (ed.settings.content_css !== false)
+ ed.dom.loadCSS(url + '/css/content.css');
+ });
+
+ ed.onClick.add(t._showMenu, t);
+ ed.onContextMenu.add(t._showMenu, t);
+ ed.onBeforeGetContent.add(function() {
+ if (t.active)
+ t._removeWords();
+ });
+
+ ed.onNodeChange.add(function(ed, cm) {
+ cm.setActive('spellchecker', t.active);
+ });
+
+ ed.onSetContent.add(function() {
+ t._done();
+ });
+
+ ed.onBeforeGetContent.add(function() {
+ t._done();
+ });
+
+ ed.onBeforeExecCommand.add(function(ed, cmd) {
+ if (cmd == 'mceFullScreen')
+ t._done();
+ });
+
+ // Find selected language
+ t.languages = {};
+ each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) {
+ if (k.indexOf('+') === 0) {
+ k = k.substring(1);
+ t.selectedLang = v;
+ }
+
+ t.languages[k] = v;
+ });
+ },
+
+ createControl : function(n, cm) {
+ var t = this, c, ed = t.editor;
+
+ if (n == 'spellchecker') {
+ c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t});
+
+ c.onRenderMenu.add(function(c, m) {
+ m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+ each(t.languages, function(v, k) {
+ var o = {icon : 1}, mi;
+
+ o.onclick = function() {
+ mi.setSelected(1);
+ t.selectedItem.setSelected(0);
+ t.selectedItem = mi;
+ t.selectedLang = v;
+ };
+
+ o.title = k;
+ mi = m.add(o);
+ mi.setSelected(v == t.selectedLang);
+
+ if (v == t.selectedLang)
+ t.selectedItem = mi;
+ })
+ });
+
+ return c;
+ }
+ },
+
+ // Internal functions
+
+ _walk : function(n, f) {
+ var d = this.editor.getDoc(), w;
+
+ if (d.createTreeWalker) {
+ w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);
+
+ while ((n = w.nextNode()) != null)
+ f.call(this, n);
+ } else
+ tinymce.walk(n, f, 'childNodes');
+ },
+
+ _getSeparators : function() {
+ var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}\xA7\xA9\xAB\xAE\xB1\xB6\xB7\xB8\xBB\xBC\xBD\xBE\xBF\xD7\xF7\xA4\u201d\u201c');
+
+ // Build word separator regexp
+ for (i=0; i<str.length; i++)
+ re += '\\' + str.charAt(i);
+
+ return re;
+ },
+
+ _getWords : function() {
+ var ed = this.editor, wl = [], tx = '', lo = {};
+
+ // Get area text
+ this._walk(ed.getBody(), function(n) {
+ if (n.nodeType == 3)
+ tx += n.nodeValue + ' ';
+ });
+
+ // Split words by separator
+ tx = tx.replace(new RegExp('([0-9]|[' + this._getSeparators() + '])', 'g'), ' ');
+ tx = tinymce.trim(tx.replace(/(\s+)/g, ' '));
+
+ // Build word array and remove duplicates
+ each(tx.split(' '), function(v) {
+ if (!lo[v]) {
+ wl.push(v);
+ lo[v] = 1;
+ }
+ });
+
+ return wl;
+ },
+
+ _removeWords : function(w) {
+ var ed = this.editor, dom = ed.dom, se = ed.selection, b = se.getBookmark();
+
+ each(dom.select('span').reverse(), function(n) {
+ if (n && (dom.hasClass(n, 'mceItemHiddenSpellWord') || dom.hasClass(n, 'mceItemHidden'))) {
+ if (!w || dom.decode(n.innerHTML) == w)
+ dom.remove(n, 1);
+ }
+ });
+
+ se.moveToBookmark(b);
+ },
+
+ _markWords : function(wl) {
+ var r1, r2, r3, r4, r5, w = '', ed = this.editor, re = this._getSeparators(), dom = ed.dom, nl = [];
+ var se = ed.selection, b = se.getBookmark();
+
+ each(wl, function(v) {
+ w += (w ? '|' : '') + v;
+ });
+
+ r1 = new RegExp('([' + re + '])(' + w + ')([' + re + '])', 'g');
+ r2 = new RegExp('^(' + w + ')', 'g');
+ r3 = new RegExp('(' + w + ')([' + re + ']?)$', 'g');
+ r4 = new RegExp('^(' + w + ')([' + re + ']?)$', 'g');
+ r5 = new RegExp('(' + w + ')([' + re + '])', 'g');
+
+ // Collect all text nodes
+ this._walk(this.editor.getBody(), function(n) {
+ if (n.nodeType == 3) {
+ nl.push(n);
+ }
+ });
+
+ // Wrap incorrect words in spans
+ each(nl, function(n) {
+ var v;
+
+ if (n.nodeType == 3) {
+ v = n.nodeValue;
+
+ if (r1.test(v) || r2.test(v) || r3.test(v) || r4.test(v)) {
+ v = dom.encode(v);
+ v = v.replace(r5, '<span class="mceItemHiddenSpellWord">$1</span>$2');
+ v = v.replace(r3, '<span class="mceItemHiddenSpellWord">$1</span>$2');
+
+ dom.replace(dom.create('span', {'class' : 'mceItemHidden'}, v), n);
+ }
+ }
+ });
+
+ se.moveToBookmark(b);
+ },
+
+ _showMenu : function(ed, e) {
+ var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin());
+
+ if (!m) {
+ p1 = DOM.getPos(ed.getContentAreaContainer());
+ //p2 = DOM.getPos(ed.getContainer());
+
+ m = ed.controlManager.createDropMenu('spellcheckermenu', {
+ offset_x : p1.x,
+ offset_y : p1.y,
+ 'class' : 'mceNoIcons'
+ });
+
+ t._menu = m;
+ }
+
+ if (dom.hasClass(e.target, 'mceItemHiddenSpellWord')) {
+ m.removeAll();
+ m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+
+ t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(e.target.innerHTML)], function(r) {
+ m.removeAll();
+
+ if (r.length > 0) {
+ m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+ each(r, function(v) {
+ m.add({title : v, onclick : function() {
+ dom.replace(ed.getDoc().createTextNode(v), e.target);
+ t._checkDone();
+ }});
+ });
+
+ m.addSeparator();
+ } else
+ m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+
+ m.add({
+ title : 'spellchecker.ignore_word',
+ onclick : function() {
+ dom.remove(e.target, 1);
+ t._checkDone();
+ }
+ });
+
+ m.add({
+ title : 'spellchecker.ignore_words',
+ onclick : function() {
+ t._removeWords(dom.decode(e.target.innerHTML));
+ t._checkDone();
+ }
+ });
+
+ m.update();
+ });
+
+ ed.selection.select(e.target);
+ p1 = dom.getPos(e.target);
+ m.showMenu(p1.x, p1.y + e.target.offsetHeight - vp.y);
+
+ return tinymce.dom.Event.cancel(e);
+ } else
+ m.hideMenu();
+ },
+
+ _checkDone : function() {
+ var t = this, ed = t.editor, dom = ed.dom, o;
+
+ each(dom.select('span'), function(n) {
+ if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) {
+ o = true;
+ return false;
+ }
+ });
+
+ if (!o)
+ t._done();
+ },
+
+ _done : function() {
+ var t = this, la = t.active;
+
+ if (t.active) {
+ t.active = 0;
+ t._removeWords();
+
+ if (t._menu)
+ t._menu.hideMenu();
+
+ if (la)
+ t.editor.nodeChanged();
+ }
+ },
+
+ _sendRPC : function(m, p, cb) {
+ var t = this, url = t.editor.getParam("spellchecker_rpc_url", this.url+'/rpc.php');
+
+ if (url == '{backend}') {
+ t.editor.setProgressState(0);
+ alert('Please specify: spellchecker_rpc_url');
+ return;
+ }
+
+ JSONRequest.sendRPC({
+ url : url,
+ method : m,
+ params : p,
+ success : cb,
+ error : function(e, x) {
+ t.editor.setProgressState(0);
+ t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText));
+ }
+ });
+ }
+ });
+
+ // Register plugin
+ tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin);
+})();
\ No newline at end of file
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
___________________________________________________________________
Added: svn:executable
+ *
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif
===================================================================
(Binary files differ)
Property changes on: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/includes/general.php
===================================================================
--- portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/includes/general.php (rev 0)
+++ portal/ror/topical_map_builder/trunk/public/javascripts/tiny_mce/plugins/spellchecker/includes/general.php 2010-01-28 07:25:26 UTC (rev 2080)
@@ -0,0 +1,98 @@
+<?php
+/**
+ * general.php
+ *
+ * @package MCManager.includes
+ * @author Moxiecode
+ * @copyright Copyright \xA9 2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+@error_reporting(E_ALL ^ E_NOTICE);
+$config = array();
+
+require_once(dirname(__FILE__) . "/../classes/utils/Logger.php");
+require_once(dirname(__FILE__) . "/../classes/utils/JSON.php");
+require_once(dirname(__FILE__) . "/../config.php");
+require_once(dirname(__FILE__) . "/../classes/SpellChecker.php");
+
+if (isset($config['general.engine']))
+ require_once(dirname(__FILE__) . "/../classes/" . $config["general.engine"] . ".php");
+
+/**
+ * Returns an request value by name without magic quoting.
+ *
+ * @param String $name Name of parameter to get.
+ * @param String $default_value Default value to return if value not found.
+ * @return String request value by name without magic quoting or default value.
+ */
+function getRequestParam($name, $default_value = false, $sanitize = false) {
+ if (!isset($_REQUEST[$name]))
+ return $default_value;
+
+ if (is_array($_REQUEST[$name])) {
+ $newarray = array();
+
+ foreach ($_REQUEST[$name] as $name => $value)
+ $newarray[formatParam($name, $sanitize)] = formatParam($value, $sanitize);
+
+ return $newarray;
+ }
+
+ return formatParam($_REQUEST[$name], $sanitize);
+}
+
+function &getLogger() {
+ global $mcLogger, $man;
+
+ if (isset($man))
+ $mcLogger = $man->getLogger();
+
+ i...
[truncated message content] |
|
From: <hma...@us...> - 2010-01-28 07:08:06
|
Revision: 2079
http://ndlb.svn.sourceforge.net/ndlb/?rev=2079&view=rev
Author: hmazariegos
Date: 2010-01-28 07:07:59 +0000 (Thu, 28 Jan 2010)
Log Message:
-----------
added spelling lib
Added Paths:
-----------
portal/ror/plugins/tmb_engine/trunk/lib/spelling.rb
Added: portal/ror/plugins/tmb_engine/trunk/lib/spelling.rb
===================================================================
--- portal/ror/plugins/tmb_engine/trunk/lib/spelling.rb (rev 0)
+++ portal/ror/plugins/tmb_engine/trunk/lib/spelling.rb 2010-01-28 07:07:59 UTC (rev 2079)
@@ -0,0 +1,36 @@
+module Spelling
+ require 'net/https'
+ require 'uri'
+ require 'rexml/document'
+
+ ASPELL_WORD_DATA_REGEX = Regexp.new(/\&\s\w+\s\d+\s\d+(.*)$/)
+ #ASPELL_PATH = "/opt/local/bin/aspell"
+ ASPELL_PATH = "/usr/bin/aspell"
+
+ def check_spelling(spell_check_text, command, lang)
+ xml_response_values = Array.new
+ spell_check_text = spell_check_text.join(' ') if command == 'checkWords'
+ spell_check_response = `echo "#{spell_check_text}" | #{ASPELL_PATH} -a -l #{lang}`
+ if (spell_check_response != '')
+ spelling_errors = spell_check_response.split("\n").slice(1..-1)
+ if (command == 'checkWords')
+ for error in spelling_errors
+ error.strip!
+ if (match_data = error.match(ASPELL_WORD_DATA_REGEX))
+ arr = match_data[0].split(' ')
+ xml_response_values << arr[1]
+ end
+ end
+ elsif (command == 'getSuggestions')
+ for error in spelling_errors
+ error.strip!
+ if (match_data = error.match(ASPELL_WORD_DATA_REGEX))
+ xml_response_values << error.split(',')[1..-1].collect(&:strip!)
+ xml_response_values = xml_response_values.first
+ end
+ end
+ end
+ end
+ return xml_response_values
+ end
+end
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|