学习moodle 页面知识点


文章目录

  • 学习moodle 页面知识点
  • 一.简单的页面布局
  • 二.设置页面URL的三种方式
  • 三.为页面设置上下文
  • 四.页面布局
    • 1、设置页面title标题
    • 2、设置页面head标题
    • 3、设置活动记录
    • 4、设置块编辑功能
    • 5、设置按钮
    • 6、设置缓存
    • 7、设置首页课程
    • 8、设置课程模块
    • 9、设置课程
    • 10、设置文档路径
    • 11、设置集中控制
    • 12、设置标题菜单
    • 13、
    • 14、 设置页面类型
    • 设置页面布局
    • 15、
    • 16、
    • 17、设置子页面
    • 18、给页面body添加类名
    • 19、给页面body添加一组类名
    • 20、
    • 21、在现在的navbar中再添加一项
  • 五 获取页面信息
  • 六 常用函数
    • 1、get_string
    • 2、admin_externalpage_setup
    • 3、get_renderer
    • 4、
    • 5、
    • 6、
  • 七、页面布局
    • 八、Javascript模块

一.简单的页面布局

代码如下(示例):

// File: /mod/mymodulename/view.php
require_once('../../config.php');
$cmid = required_param('id', PARAM_INT);
$cm = get_coursemodule_from_id('mymodulename', $cmid, 0, false, MUST_EXIST);
$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);require_login($course, true, $cm);
$PAGE->set_url('/mod/mymodulename/view.php', array('id' => $cm->id));//设置页面URL$PAGE->set_title('My modules page title');//设置页面标题。很可能会显示在 <title> 标签中。
$PAGE->set_heading('My modules page heading');//设置页面标题。最有可能在页眉中使用。// The rest of your code goes below this.

二.设置页面URL的三种方式

代码如下(示例):

$PAGE->set_url(new moodle_url('/path/to/your/file.php', array('key' => 'value', 'id' => 3)));
$PAGE->set_url('/path/to/your/file.php', array('key' => 'value', 'id' => 3));
$PAGE->set_url('/path/to/your/file.php?key=value&id=3');

前两种方法中的任何一种都是首选方法,因为它在处理 URL 时提供 100% 的准确性。在内部 set_url() 将你给它的任何东西转换成一个moodle_url 对象。 您提供给页面的 URL 将被许多 Moodle 核心 API 使用。最重要的是,它将用于为您的页面创建导航,因此准确设置它非常重要。

三.为页面设置上下文

在许多情况下,它会由Moodle设置好。

在某些情况下,会自动为您设置。比如,您的脚本调用requir_login(),那么您不需要再手动调用set_context()。这是因为require_login()会为您处理好。

如果您的脚本没有调用 require_login,或者您没有使用课程和/或模块调用它,那么您将需要手动设置上下文,如下所示:

在 Moodle 2.2 及更高版本中,代码如下(示例):

// Moodle 2.2 及更高版本
$PAGE -> set_context ( context_system :: instance ());
$PAGE -> set_context ( context_coursecat :: instance ( $categoryid ));
$PAGE -> set_context ( context_course :: instance ( $courseid ));
$PAGE -> set_context ( context_module :: instance ( $moduleid ));

在 Moodle 2.0+ 和 Moodle 2.1+ 中,代码如下(示例):

// Moodle 2.0 和 2.1
$PAGE -> set_context ( get_system_context ());
$PAGE -> set_context ( get_context_instance ( CONTEXT_COURSECAT ,  $categoryid ));
$PAGE -> set_context ( get_context_instance ( CONTEXT_COURSE ,  $courseid ));
$PAGE -> set_context ( get_context_instance ( CONTEXT_MODULE ,  $moduleid ));

四.页面布局

1、设置页面title标题

$PAGE->set_title('My modules page title');
  必须设置,设置页面标题时,您只需提供要用于标题的字符串。它应该是一个基本字符串并且不包含 HTML。任何 HTML 都将被删除,因为在 HTML 头部的 <title> 标签中使用了标题。

2、设置页面head标题

$ PAGE - > set_heading (get_string ('pluginname''local_myplugin' ));

必须设置,不管布局如何。显示在页面顶部。设置标题时只有一个参数,即用于标题的字符串。它应该是一个基本字符串并且不包含 HTML。

3、设置活动记录

$PAGE -> set_activity_record ( $activityrecord );

如果您使用课程模块调用了 require_login,或者您在 $PAGE 上手动设置了一个课程模块,那么您可能想做的另一件事是在 $PAGE 上设置活动模块记录。
当您已经自己获取活动记录时,最好这样做,在这种情况下,手动设置活动记录可能会将页面的查询次数减少 1。

4、设置块编辑功能

$PAGE -> set_blocks_editing_capability ( $strcapability );

使用此方法,您可以设置用户在能够编辑此页面上的块之前必须拥有的附加功能。
默认情况下使用“moodle/site:manageblocks”,但有时有理由使用不同的功能。

5、设置按钮

$PAGE -> set_button ( $htmlstring );

这允许您设置一些 HTML,这些 HTML 将显示在“打开编辑”按钮通常所在的导航栏中。

6、设置缓存

$PAGE -> set_cacheable ( true / false );

通过将此设置为 false,页面将与标题一起发送,以防止客户端缓存页面。默认为真。

7、设置首页课程

$PAGE -> set_category_by_id ( $categoryid );

允许您设置此页面显示的类别。调用此方法将强制将 $PAGE->course 设置为首页课程。

8、设置课程模块

$PAGE -> set_cm ( $coursemodulerecord );

像上面的设置页面一样,有时您需要手动设置 $PAGE 的课程模块。如果您调用它,您必须再次将上下文设置为课程模块的上下文。

9、设置课程

$PAGE -> set_course ( $ courserecord );

这允许您设置页面所属的课程。通常,当您调用 require_login 时,您提供的课程会自动发送到 $PAGE。
但是,如果您不想要求登录课程,但在 $PAGE 中需要它,那么您可以调用 set_course 并提供它。
请注意,如果您这样做,则在调用 set_context() 时必须使用课程的上下文

10、设置文档路径

$PAGE -> set_docs_path ( $strpath );

通常这会自动为您构建,但在某些情况下您可能需要手动设置它。
这允许您有多个页面都指向同一个文档页面,而不是每个页面都需要一个文档页面。
文档页面链接通常由页脚中的主题显示。

11、设置集中控制

$PAGE -> set_focuscontrol ( $ controlid );

如果您传递此方法,则当页面在客户端上加载时,元素 id 将转移到具有相应 id 的元素。
在大多数情况下,使用此功能是一个非常糟糕的主意,因为在浏览器中自动更改焦点对于视力受损者和使用屏幕阅读器的人来说是一场噩梦。

12、设置标题菜单

$PAGE -> set_headingmenu ( $htmlstring );

13、

$PAGE -> set_other_editing_capability ( $strcapability );

14、 设置页面类型

$PAGE -> set_pagetype ( $strpagetype );

设置页面布局

$PAGE -> set_pagelayout ( $strpagetype );

15、

$PAGE -> set_periodic_refresh_delay ( $intdelay );

16、

$PAGE -> set_popup_notification_allowed ( true / false );

17、设置子页面

$PAGE -> set_subpage ( $strsubpage );

18、给页面body添加类名

$PAGE -> add_body_class ( $strcssclass );

将 CSS 类添加到将由输出 API 作为标题的一部分打印的正文标记。
这对于向描述页面内容的 body 标签添加类很有用,并且可能需要为整个页面设置样式,或者包含可能对在 JavaScript 中查找有用的指示符类。

19、给页面body添加一组类名

$PAGE -> add_body_classes ( $arrayofclasses );

将一组 CSS 类添加到 body 标记。有关更多详细信息,请查看上面对 add_body_class 的评论。

20、

$PAGE -> force_settings_menu ();

Theme boost 最好为您的活动/资源找到一个放置设置齿轮的地方,但是如果由于某种原因它没有显示,您可以手动设置要在页面上显示的设置齿轮。这应该在显示主要内容之前调用。此设置当前仅显示 theme_boost 上的设置齿轮。

21、在现在的navbar中再添加一项

    $strdeletingcourse = get_string("deletingcourse", "", $vpsimages_name);$PAGE->navbar->add($strdeletingcourse);

五 获取页面信息

$var = $PAGE->activityrecord;

$var = $PAGE->blockmanager;

$var = $PAGE->bodyid;

$var = $PAGE->categories;

$var = $PAGE->category;

$var = $PAGE->cm;

$var = $PAGE->course;

$var = $PAGE->devicetypeinuse;

$var = $PAGE->headerprinted;

$var = $PAGE->heading;

$var = $PAGE->navbar;

$var = $PAGE->requires;

$var = $PAGE->settingsnav;

$var = $PAGE->theme;

$var = $PAGE->title;

$var = $PAGE->url;
$PAGE->navbar->includesettingsbase = true;
$PAGE->navigation->extend_for_user($user);

六 常用函数

1、get_string

get_string ( 'userpreferences' ,  'certificate' );

根据所使用的语言获取适当的字符串,如果当前语言是英语,或文本的相关翻译,函数调用get_string(‘editingquiz’, ‘mod_quiz’)将返回“Editing quiz”。这里的字符串标识符是“editingquiz”,字符串由“mod_quiz”组件(即测验活动模块)提供。

2、admin_externalpage_setup

admin_externalpage_setup('tooldemo');
admin_externalpage_setup('editusers');

admin_externalpage_setup(‘tooldemo’),它调用 require_login 并对管理页面执行权限检查。

3、get_renderer

$PAGE -> get_renderer ( 'tool_demo' );

这将获取 plugin_renderer_base 类的一个实例,我们用它来为我们的页面创建所有输出。Themers 可以子类化这个渲染器来覆盖特定的渲染方法,以便自定义 Moodle 的输出。见Output_renderers获取更多信息,并Overriding_a_renderer有关主题制作怎么能自定义渲染器的信息。

4、

5、

6、


七、页面布局

根据 大多数向后兼容的布局没有块。这是默认使用的布局。
标准 带块的标准布局,推荐用于大多数具有一般信息的页面
课程 课程主页使用这种布局。
课程类别 类别课程列表。
在课上 用于课程中的区域,通常用于模块。如果 $cm 在 require_login() 中指定,则默认页面布局。
首页 站点主页使用此。
行政 管理和设置页面以及服务器管理脚本。
我的仪表板 用户仪表板。
我的公众号 用户公共配置文件使用此布局。
登录 登录画面。
弹出 出现在弹出窗口中的页面,通常没有导航、块或标题。
框架 用于用框架构建的页面的最外层内容。通常没有块和最少的页脚。
嵌入式 嵌入式页面,例如 iframe/对象的内容。需要尽可能多的空间,通常没有块、页眉或页脚。
维护 在升级、安装和启用维护模式时使用。
打印 在打印页面时使用。通常只是一个简单的标题,没有块。
重定向 重定向期间使用的特殊布局。通常只有内容。
报告 用于 Moodle 中的报告。旨在以一种很好的方式处理水平滚动的特殊布局。

base 根据 大多数向后兼容的布局没有块。这是默认使用的布局。
standard 标准 带块的标准布局,推荐用于大多数具有一般信息的页面
course 课程 课程主页使用这种布局。
coursecategory 课程类别 类别课程列表。
incourse 在课上 用于课程中的区域,通常用于模块。如果 $cm 在 require_login() 中指定,则默认页面布局。
frontpage 首页 站点主页使用此。
admin 行政 管理和设置页面以及服务器管理脚本。
mydashboard 我的仪表板 用户仪表板。
mypublic 我的公众号 用户公共配置文件使用此布局。
login 登录 登录画面。
popup 弹出 出现在弹出窗口中的页面,通常没有导航、块或标题。
frametop 框架 用于用框架构建的页面的最外层内容。通常没有块和最少的页脚。
embedded 嵌入式 嵌入式页面,例如 iframe/对象的内容。需要尽可能多的空间,通常没有块、页眉或页脚。
maintenance 维护 在升级、安装和启用维护模式时使用。
print 打印 在打印页面时使用。通常只是一个简单的标题,没有块。
redirect 重定向 重定向期间使用的特殊布局。通常只有内容。
report 报告 用于 Moodle 中的报告。旨在以一种很好的方式处理水平滚动的特殊布局。

八、Javascript模块

$PAGE -> requires -> js_call_amd( 'block_iomad_company_admin/department_select' ,  'init' ,  array ( $first ,  $last ));

学习moodle 页面pageApi知识点相关推荐

  1. vue中集合取第一个_快速学习Vue框架(知识点集合)

    学习Vue的小伙伴速度看过来,快速学习Vue框架知识点集合贴来啦.建议收藏,尤其基础并不是很扎实的同学,本篇集合贴就是你日后工作的参考手册. 基础知识: ·vue的生命周期:beforeCreate/ ...

  2. 学习PLC的重要知识点,你知道哪些?

    工业自动化从业人员都知道,工业转型升级都离不开自动化,而自动化的实现大部分是由PLC完成的.PLC可以广义地理解为:集中的继电器延伸控制柜,实际的生产应用当中,PLC大大节省了工业控制的成本,加强了设 ...

  3. 《密码编码学与网络安全》William Stalling著---学习笔记(二)【知识点速过】【数字签名+密钥管理分发+用户认证】

    提示:博文有点长,请保持耐心哦~ 前一篇文章: <密码编码学与网络安全>William Stalling著-学习笔记(一)[知识点速过][传统密码+经典对称加密算法+经典公钥密码算法+密码 ...

  4. 《密码编码学与网络安全》William Stalling著---学习笔记(三)【知识点速过】【网络安全与Internet安全概览】

    提示:博文有点长,请保持耐心哦~ 前两篇文章: <密码编码学与网络安全>William Stalling著-学习笔记(一)[知识点速过][传统密码+经典对称加密算法+经典公钥密码算法+密码 ...

  5. 加载动画php,CSS3学习之页面加载动画(二)

    本篇文章给大家分享6种css3的页面加载动画.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 在之前的文章[CSS3学习之页面加载动画(一)]中已经分享了四个CSS3的加载动画,今天 ...

  6. 深度学习算法工程师面试知识点总结(四)

    这是算法工程师面试知识点总结的第四篇,有兴趣的朋友可以看看前三篇的内容: 深度学习算法工程师面试知识点总结(一) 深度学习算法工程师面试知识点总结(二) 深度学习算法工程师面试知识点总结(三) 基于t ...

  7. 深度学习tensorflow数据流图基础知识点

    一.深度学习与机器学习区别 (一)特征提取方面 1.机器学习的特征工程步骤是要靠手动完成的,而且需要大量领域专业知识 深度学习通常由多个层组成,它们通常将更简单的模型组合在一起,通过将数 据从一层传 ...

  8. HTML5前端开发学习路线建议,学习前端的必备知识点

    Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师.主要进行网站开发,优化,完善的工作.网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览 ...

  9. 掌握神经网络,我应该学习哪些至关重要的知识点?

    人工智能作为计算机科学领域的一个分支,在互联网+和大数据的时代浪潮中显现出其巨大的潜力和蓬勃的活力,类似电子医生.无人驾驶等新名词纷纷涌现. 人工智能凭借着它无与伦比的发展优势,推动了各大产业和技术的 ...

最新文章

  1. 小学生python-现在连小学生都会Python了吗?
  2. 深入出不来nodejs源码-V8引擎初探
  3. hexo评论_Hexo系列 | Hexo的基本使用
  4. 大蚂蚁在64位系统下,右键没有快发的解决方案
  5. 3W | 跟着小小学会这些 Java 工程师面试题,月薪至少 3 W
  6. 设置windows引导linux分区,windows下安装grub引导Linux
  7. lua与python结合_从Python到Lua
  8. 总是通过加班,来完成工作,那都是假象
  9. 电脑计算机c盘缓存清理,电脑C盘缓存文件怎么删除
  10. 金蝶K3 webservice接口
  11. Office基础操作:Word、PPT 表格文字居中
  12. 网页微博连接不上服务器,新浪微博网络出错加载不了怎么办
  13. 《郭论—捡史》郭德纲/著 读后得
  14. 我来告诉你,一个草根程序员如何逆袭,成功进入BAT!
  15. 武汉大学 计算机学院 许传奇,许永超 - 教师简历 CV- 武汉大学计算机学院
  16. 由温度转换实例学习python基本语法元素
  17. 可口可乐市场调查失败的原因_可口可乐失败案例
  18. 电阻上下拉是最常见的用法,那你是不是真的吃透了它?给小白讲讲上拉电阻和下拉电阻!----------------源自玩转单片机与嵌入式
  19. 《教学综合管理系统》学术论文
  20. 大学里 信息领域的专业 名称解释

热门文章

  1. [vue] nodejs安装教程
  2. java用减号分割地址与参数_//与/与\与\\
  3. (PCB系列三)AD六层板布线经验累积
  4. secureCRT脚本编写
  5. input函数和类型转换
  6. 【查找算法】哈希查找法
  7. SQL Server中的LAG函数与LEAD函数介绍
  8. python析构函数
  9. 4D产品(DLG、DEM、DOM、DRG)介绍及区别
  10. 一台XPS 13 9365 2-in-1的自我救赎之路