calendar.php乱码,Moodle 中文日历显示乱码问题的解决详解

(一)、安装moodle中文包并选择简体中文后,日历显示是乱码,上网找了,但是方法是否都不能根本解决问题。

发现繁体中文包没有这个问题,对比了一下繁体包和简体包 langconfig.php 文件的区别,发现繁体包中注释了三行:

{{{

//$string['localewin'] = 'Chinese_Taiwan.950';

//$string['localewincharset'] = 'CP950';

//$string['oldcharset'] = 'BIG5';

}}}

moodle中文乱码解决集锦

2009-09-16 19:32

1、不要像网上大多数人介绍的那样把moodle/lang文件夹中的langconfig.php文件编码形式改为ANSI,保留Moodle中文包里的原文件不变;

意见:我这里是修改成ANSI的

2、将moodle/php文件夹内的php.ini文件中的default_charset="iso-8859-1"改为default_charset="utf-8"。

意见:这方法可行,我也这样做了

3、上传文件不能有中文文件名的问题

在config.php里加一句:

$CFG->unicodecleanfilename = true;

意见:方法可行

4、下载文件中中文文件名乱码问题

修改 file.php

查找下列字符,并删除

$filename = $args[count($args)-1];

意见:不可行,这样做后会出现很多问题,例如会出现无法直接打开上传的文件,也无法下载,下载后会自动丢失扩展名,不可取这方法。

个人认为肯定是编码的问题

1.进入moodledata\ lang\zh_cn_utf8这个文件夹,点击进去后,找到langconfig.php,用记事本将其打开;

2.点击文件\另存为,在弹出的窗口中把【编码】栏改为ANSI,单击保存,这时提示你是否替换,选择【是】

重新回到moodle网站首页,刷新,问题解决。

是的,这个可以解决日历中的乱码问题,但是,在语言选择的那一栏,“简体中文”这几个字就会以小方框的形式出现。我有一次,在langconfig.php中重新输入这几个字,问题解决,可在1.8.3中,还是不行。不知老兄可否遇到过此问题。

这个问题是由于编码导致的,用记事本打开langconfig.php,然后另存,编码选择"ANSI"即可.

对于选择语言的下来菜单变乱码可以这样折衷的解决,另存前在langconfig.php里将"简体中文"改为"Chinese".

下拉菜单乱码解决办法:

在 \lib\weblib.php中将, $width = $THEME->navmenuwidth; 改为 $width =

$THEME->navmenuwidth+25;

后面的数字(3*n+1)按自己情况做调整.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Moodle-mod_hvp是Moodle平台上的一种插件,它可以用于创建交互式H5P内容。而在moodle-mod_hvp中,embed.php文件则用于将H5P内容嵌入到Moodle中。 下面是embed.php文件的详解: 1. 首先,通过require_once函数引入Moodle的config.php文件,以便在后面使用Moodle的全局变量和函数。 ``` require_once(dirname(dirname(dirname(__FILE__))) . '/config.php'); ``` 2. 接着,获取当前用户的上下文信息,并根据上下文信息确定当前用户是否有权限查看该H5P内容。 ``` $cmid = required_param('id', PARAM_INT); $course_module = get_coursemodule_from_id('hvp', $cmid, 0, false, MUST_EXIST); $course = $DB->get_record('course', array('id' => $course_module->course), '*', MUST_EXIST); $hvp = $DB->get_record('hvp', array('id' => $course_module->instance), '*', MUST_EXIST); $context = context_module::instance($course_module->id); require_login($course, true, $course_module); require_capability('mod/hvp:view', $context); ``` 3. 接下来,根据H5P内容的类型(package类型或content类型)决定如何获取H5P内容的数据。 ``` if ($hvp->embedtype == 'package') { $fs = get_file_storage(); $files = $fs->get_area_files($context->id, 'mod_hvp', 'package', $hvp->package, 'id'); if (count($files) !== 1) { print_error('embedfilenotfound', 'mod_hvp', '', $hvp->package); } $file = reset($files); send_stored_file($file, 0, 0, true); } else { $json = hvp_print_content($hvp, true); $position = strpos($json, '{'); $json = substr($json, $position); $json = json_decode($json, true); $content = $json['library']['embedTypes'][0]['url']; echo html_writer::start_tag('iframe', array( 'src' => $content, 'frameborder' => 0, 'allowfullscreen' => true, 'webkitallowfullscreen' => true, 'mozallowfullscreen' => true, 'width' => $hvp->width, 'height' => $hvp->height )); echo html_writer::end_tag('iframe'); } ``` 4. 如果H5P内容的类型是package类型,则从文件存储中获取H5P包,如果获取失败,则输出错误信息;如果H5P内容的类型是content类型,则通过调用hvp_print_content函数获取H5P内容的数据,并从中解析出H5P内容的URL,最后通过iframe将H5P内容嵌入到Moodle中。 以上就是embed.php文件的详解,希望可以帮助你理解该文件的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值