学无止境

学习的记录
posts(147) comments(135) trackbacks(0)
  • 博客园
  • 联系
  • 订阅 订阅
  • 管理

与我联系

  • 发短消息

搜索

 

常用链接

  • 我的参与
  • 我的新闻
  • 最新评论
  • 我的标签

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • .NET编程技巧(22)
  • e-learning(4)
  • IIS(4)
  • Java(2)
  • Office使用(7)
  • PHP(4)
  • WINDOWS操作系统(2)
  • 版本控制(1)
  • 辅助编程小工具(1)
  • 工具-PowerDesinger使用(1)
  • 管理学(1)
  • 计算机使用技巧(2)
  • 技术学习(69)
  • 借鉴经验(2)
  • 设计、美工(2)
  • 数据库(20)
  • 虚拟机(2)
  • 学习感想(13)

随笔档案

  • 2009年7月 (1)
  • 2009年6月 (2)
  • 2009年5月 (1)
  • 2009年4月 (2)
  • 2008年12月 (1)
  • 2008年10月 (5)
  • 2008年8月 (2)
  • 2008年6月 (2)
  • 2008年5月 (2)
  • 2008年4月 (7)
  • 2008年3月 (2)
  • 2008年2月 (4)
  • 2008年1月 (3)
  • 2007年12月 (5)
  • 2007年11月 (7)
  • 2007年10月 (2)
  • 2007年9月 (2)
  • 2007年8月 (4)
  • 2007年6月 (4)
  • 2007年5月 (9)
  • 2007年4月 (2)
  • 2007年2月 (1)
  • 2007年1月 (1)
  • 2006年12月 (3)
  • 2006年11月 (1)
  • 2006年10月 (1)
  • 2006年8月 (1)
  • 2006年7月 (3)
  • 2006年6月 (5)
  • 2006年5月 (2)
  • 2006年4月 (30)
  • 2006年3月 (13)
  • 2006年2月 (6)
  • 2006年1月 (3)
  • 2005年12月 (8)

朋友Blog

  • Sharper代码人生
  • 牧心-关注敏捷,关注人
  • 项目管理

文章

  • Windows Workflow Foundation之旅
  • WWF(Windows Workflow Foundation)的简介[翻译]

站内Blog

  • Wayfarer's Prattle
  • wolf's cave

最新评论

  • 1. re: excel冻结窗格--冻结行列标题
  • 谢谢,高手
  • --冰 冰
  • 2. re: 如何修复Windows XP系统中删除文件不提示确认对话框?
  • 游记回收站-》属性
    然后你就知道怎么做了
  • --保长
  • 3. re: excel冻结窗格--冻结行列标题
  • 谢谢!
  • --ffgwl
  • 4. re: excel冻结窗格--冻结行列标题
  • 如名
  • --很好很强大
  • 5. re: 如何制作ppt模板
  • 谢谢!
  • --哦哦哦

阅读排行榜

  • 1. 如何制作ppt模板(34181)
  • 2. excel冻结窗格--冻结行列标题(7375)
  • 3. 如何在照片上加文字? -photoshop初学(3536)
  • 4. 如何查看sqlserver的操作日志?(2433)
  • 5. 如何开启 Windows 2000 Server 上的远程桌面功能(1828)

评论排行榜

  • 1. 如何制作ppt模板(35)
  • 2. excel冻结窗格--冻结行列标题(33)
  • 3. workflow初接触(6)
  • 4. 数据库中“钱”数据类型如何设计?(5)
  • 5. 30个优秀.net在线学习资源站点(4)

60天内阅读排行

  • 1. 认识GTD(getting things done)(52)
  • 2. [转]程序员的十层楼(12)
  • 3. 交互原型设计软件 Axure RP Pro 5(6)
  • 4. 加紧补习(2)

View Post

Claroline中修改tinyMCE中的路径和生成的HTML

近来在研究开源的在线学习系统Claroline,一个非常简单和实用的一个e-learning系统。
可以很容易的创建课程讲义和课程。通过“学习路径”可以创建进度跟踪的学习方式。
其中,遇到的问题是:创建一个media为主的课程讲义的时候,插入的流媒体文件路径会被系统替换掉。

问题描述:
1、claroline中使用了JS的在线编辑器tinyMCE作为讲义的编辑工具。
2、在tinyMCE中点击“insert/edit embedded media”后打开了一个插入流媒体文件的页面,页面上有一个输入文件名的地方和一个预览的地方。
3、插入media文件的页面时tinyMCE的htm文件,在tinyMCE目录下面,而课程中的视频文件是放在各个客户目录下面的,两个目录一点关系都没有。
4、选择文件的方式非常简单,只要把文件名输入在file文本输入框中即可。
5、问题出现:
   当我保存这个讲义时,自动生成一个htm文件,这个文件中带有一个media player的播放器,找到文件就可以播放。
   但是,在我提交了选择的文件的时候,发现编辑器中的html如下:
   <object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" width="400" height="400">
 <param name="src" value="/Claroline/claroline/document/10.wmv" />
 <param name="width" value="400" />
 <param name="height" value="400" />
 <embed type="application/x-mplayer2" src="/Claroline/claroline/document/10.wmv" width="400" height="400"></embed>
</object>

   问题出来了
   第一:参数只有<param name="src",不能播放,需要参数<param name="url"
   第二:文件路径错误,保存的路径是tinyMCE编辑器文件所在的目录,而需要的是课程的目录。


   那么解决的方法:
   第一个:在写html的时候把"src"修改为"url";
   第二个:修改那个预览和保存时候的路径,找到课程的目录;


第一个问题的解决:
1、在编辑器的目录下有一个editor_plugin.js文件,还有一个editor_plug_src.js两个文件
  文件中的内容基本一样,只是editor_plug_src.js文件中的内容很规整,但是editor_plug.js文件内容没有排版,无法读懂。
2、在两个文件中都有一个方法_getEmbed(),实在提交讲义的时候生成html文件的方法
   方法的参数P就是各个param的参数名和数值。
   在这个_getEmbed()方法中整合完整的<object>...</object>
   于是我打算在其中加入<param name='url',它的value和'src'的value一致。
3、到底修改那个js
   一开始我始终修改editor_plugin_src.js因为我觉得这个很工整,应该修改这个。
   但是同学的话给了我提示:“编辑器都有俩到三种编辑模式,每种编辑模式都会有自己的js”。
   于是我想:是不是带有_src的js是在html模式下使用的js呢?于是我对照editor_plugin_src.js在editor_plugin.js中找到修改的地方,增加url的param。
4、问题解决。
5、看来对于在线编辑器的实现还有待进一步的学习和了解阿。


第二个问题:
1、为什么保存的时候会加上编辑器所在目录的路径呢?
   依然是对tinyMCE的解读。
2、在editor.class.php中有一个tinyMCE.Init方法,设定了很多的参数
   其中有参数convert_urls 和relative_urls。这两个参数默认是false,即默认使用绝对路径。
3、修改上面两个参数为true,则修改使用相对路径
4、这个时候再增加视频文件,发现路径中的/Claroline/claroline/document/自动消失了,不会自动加入代码中。有进展。
5、那么在课程中播放是可以了,但是预览会有问题
6、读取media.htm文件,发现预览调用了media.js中的generatePreview()方法。
7、generatePreview()方法中,调用了一个转换路径的方法
   pl.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], pl.src);
   pl.src就是制定了预览的时候视频的位置
8、其中tinyMCE.settings['base_href']不知道base_href参数不知道如何设置的,也许默认就是编辑器所在路径。
9、第三点中提到使用了相对路径后,tinyMCE可是设定一个参数document_base_url
   当我设定了这个参数后,可以用tinyMCE.settings['document_base_url'] 在js中获取设定的值
10、那么我就把课程文件的路径放入其中就可以了
11、问题又出现了,每个课程的名字是不定的,如何把课程名字传到这个路径中呢?
12、联想到进入一个课程后,在课程的各个栏目中切换,系统都会知道进入的是那个课程,那么一定有地方保存了课程的信息。
13、发现系统中有这么一个语句
    $_course = claro_get_current_course_data();
    从语句看来就是得到当前课程的数据
    用php的echo $_course发现$_course是一个array
    那么一定有一个数组值是课程名字的
14、在文件夹中查找有$_course["name"]存放了课程的名字
15、于是在editor.class.php的tinyMCE.init中设置
     $_course = claro_get_current_course_data();
     $_courseName=$_course['name'];
     document_base_url : "/Claroline/courses/"+ "'.$_courseName.'"+"/document", '."\n"
16、修改media.js中generatePreview()方法中的语句
   pl.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], pl.src);
   为
   pl.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['document_base_url'], pl.src);
17、预览搞定
18、保存的时候是相对路径,那么讲义的制作也搞定了。

发现几个需要注意的问题:
1、讲义的文件名不能以数字开头
2、讲义的文件名不要写成中文

 

posted on 2008-10-13 16:27 littlebamboo 阅读(170) 评论(0)  编辑 收藏 网摘 所属分类: 学习感想PHPe-learning

刷新评论列表  刷新页面  返回页首
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

验证码: 验证码 看不清,换一个

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1310162

链接:切换模板
导航:网站首页 社区 新闻 博问 闪存 网摘 招聘 找找看 Google搜索



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务

相关文章:

最新IT新闻:
Google Voice 上手
Google号召社区力量为互联网加速
Twitter无处不在 魔兽世界Twitter发送器插件发布
Firefox 3.5匆忙推出漏洞多 Mozilla本月将更新
预测:Twitter最可能收购的十家公司

相关链接:
 
Powered by:
博客园
Copyright © littlebamboo