Thursday, December 18, 2025

大大赋能予CM7

CM7,是每一所学校谷歌课室管理员中的,属于科目主任的账号。账号隶属学校而不是个人拥有。试问,学校得力马/谷歌课室管理员,可以如何有效使用CM7的账号?如何大大赋能予学校12个科目的主任?建立有效的数码档案呢?

        但,在开始解说前,先了解,为什么使用CM7账户处理,而不使用副校长个人的力马电邮处理。

        站在人性心理的出发点,老师们会觉得:做得事情,都保存在副校长个人的云端硬盘中的话,确实不妥当。加上很多老师或有多疑的个性(其实都希望弄清楚而已啦),所以难免会有难以推行实践的情况。

        但,今天分享的,却是使用CM7的账户准备。然而,若想让老师们支持,就要进一步解释建设和使用过程。

        CM7的账户,是依据学校使用而不是个人使用的。老师们最不希望看见的,就是自己的心血被某学管理层夹持带走。老师们最希望的,就是自己有档案,也贡献学校(完成工作)。所以,CM7账户是依据学校的这个重点,务必要解释清楚,那就是撼动老师们支持配合的第一个切入点

        至于第二个切入点,就是要简化老师们的管理障碍。我的做法是:告知老师们CM7创建文件夹,但文件夹设为全部老师可以浏览。而科目主任就是管理员。个别科目的文件夹,将与科目主任与老师们的个人得力马户口(g-开头的户口)共享。

        那,试问如何确认回馈呢?笔者个人的话,我是告诉老师们,即将采用CM7户口建设云端学科文件夹,需要的学科,可以点击询问回馈,以便整理和准备。

        老师们看见了清楚的信息,知道是共享学校的。有了回应后,PK1就能利用CM7的账户,创建12个学科的文件夹。

        创建12个科目的文件后,请将12个文件夹,归纳在1个云端的文件夹即可。这样可以确保文件夹内,利落。

        说了那么多,我来整理步骤,让我们第一副校长,大大赋能学校12个科目的Ketua Panitia,让他们也发挥。

步骤:

  1. 发放问卷,让12个科目的主任,有选择的原因。(主要是照顾12个科目主任的ICT技巧不一情况。)
  2. 解释使用CM7创建共享云端硬盘的原因。
  3. 告知所有学科档案将与校内老师们共享。(校内老师可以登入任何文件夹,查看或提取任何科目的档案和内容。)这是建设互相信任的基础工作之一。
  4. 使用CM7创建文件夹。
  5. 依据科目,与科目主任共享文件夹。可以选择电邮通知。
  6. 文件夹中,适当限制科目主任的权限。
  7. 将文件夹的链接,适当在学校网页、Site、部落格定位。这技术上是最重要的步骤。这个步骤,是要方便科目主任,透过最容易得方法更新档案内容。
  8. 另外,记得,将个别文件夹的链接,转换成为二维码。打印二维码,传送每一个学科科目主任。
  9. 科目主任可以从学校部落格、跳板和SITE开始更新文件夹内容。
结束。建设数码学科文件夹,迈出了第一步。

学校活动看板

续上篇《生日墙 Birthday Wall》后,在脑海中,有好些奇怪的想法:

  • 学生生日墙,能不能变成学校教职员的生日墙?
  • 生日墙,是依据日期,自动显示名单。那,能不能稍微修改编码,将学生名字,更换为学校的活动呢?
  • 同样的事情,能不能再变成学术、学生事务、课外活动的看板呢?
自动化的学校活动看板有什么好处?
  • 善用校历:校历都是依据日期编排活动。倘若已在日历有校历记录,能不能让学校活动看板,直接从校历日历中导入?
  • 善用学科活动年历:每一个学科,都会安排活动。但如果将这些活动,从校历中,直接拷贝粘贴的话,日期到了,直接衔接自动显示的话,会不会节省网页管理员的工作呢?
  • 同样的,课外活动的看板,学生事务的看板,能不能照样处理呢?这样一来,学生仅需点击不同的页面,即可看见当天要进行的活动了。
  • 在某种程度上,学校管理员,能不能将学校的活动,变成类似小挑战的游戏活动,引导学生尝试完成各种小挑战(当然是针对学习和品格方便的指引咯)。
  • 从网页管理员的角度来看,这样的转变,几乎可以简化每天处理网页内容的工作。一个版面,即可自动化显示全年的活动了。我相信是可以大大简化网页管理的工作。
  • 倘若在指定的地点,有荧幕的话,仅需显示各项活动看板即可了。
要使用的编码如下:
function updateSlidesWithSheetData() {
  // --- 1. 定义您的文件 ID 和数据范围 ---
  
  // Sheet 1: 学生生日信息
  const sheet1Id = '您的第一张Sheet文件ID'; 
  const range1 = 'Sheet1!A2:D15'; // 例如 '学生生日表!A2:D15'

  // Sheet 2: 学术信息
  const sheet2Id = '您的第二张Sheet文件ID';
  const range2 = 'Sheet1!A2:E20'; // 例如 '学术数据!A2:E20'

  // Sheet 3: 课外活动信息
  const sheet3Id = '您的第三张Sheet文件ID';
  const range3 = 'Sheet1!A2:C10'; // 例如 '活动记录!A2:C10'

  // --- 2. 获取数据 ---
  const data1 = Sheets.Spreadsheets.Values.get(sheet1Id, range1).values;
  const data2 = Sheets.Spreadsheets.Values.get(sheet2Id, range2).values;
  const data3 = Sheets.Spreadsheets.Values.get(sheet3Id, range3).values;

  // --- 3. 更新 Google Slides ---
  const presentation = SlidesApp.getActivePresentation();
  
  // 更新第一张幻灯片(索引从0开始)
  const slide1 = presentation.getSlides()[0]; 
  updateTableInSlide(slide1, data1);

  // 更新第二张幻灯片
  const slide2 = presentation.getSlides()[1];
  updateTableInSlide(slide2, data2);

  // 更新第三张幻灯片
  const slide3 = presentation.getSlides()[2];
  updateTableInSlide(slide3, data3);
}

// 辅助函数:查找并更新幻灯片中的第一个表格
function updateTableInSlide(slide, data) {
  const elements = slide.getPageElements();
  for (let i = 0; i < elements.length; i++) {
    if (elements[i].asPageElement().getPlaceholderType() === SlidesApp.PlaceholderType.TABLE || elements[i].asPageElement().asTable()) {
      // 假设我们只更新找到的第一个表格
      const table = elements[i].asPageElement().asTable();
      // 清除旧数据 (可能需要更复杂的逻辑来匹配行/列)
      // 简单起见,这里假设您有一个预先画好的空表格
      // 更简单的方法是删除旧表格,然后用新数据新建一个表格
      
      // *** 警告:下面的代码需要您手动实现删除旧表格并新建一个 ***
      // 这是一个更可靠的方法:
      elements[i].asPageElement().remove();
      slide.insertTable(data.length, data[0].length, 50, 50, 100, 100).setContents(data);
      return;
    }
  }
}

下一篇,我们讨论看看,如何从学校活动看板,变成每日晨读的工具。是的,这是可行的。

重点介绍

学生课堂评估/学习进度记录

学生课堂评估/学习进度表格 样本即日起将透过 学生课堂评估/学习进度记录专页 传递。 特此告知 。(日后所有更新将在专页处理)            俗称rekod perkembangan murid (以前称为rekod transit)的东西。信息工艺TMK的部分,在年级...