成员
方法
#setCourseMaterialsComponent(课程材料部分)
设置一个组件,覆盖在BuddyBoss网站> Learndash LMS > Courses > [Selected course] > Settings中添加的课程材料字段的内容。
参数:
的名字 | 类型 | 描述 |
---|---|---|
CourseMaterialsComponent |
React.ComponentType。<CourseMaterialsProps> |
例子
//在custom_code/components/CourseMaterial.js中导入React, {useState} from ' React ';import {View, Text, Alert, Dimensions} from 'react-native';import {useSelector} from "react-redux";从"react-native-render-html"导入HTML;import {WebView} from 'react-native-webview';import {documentFilename, isInExtensionList, htmlHandleClicks} from "@src/utils";import {previewDocument} from "@src/utils/previewFiles";Const ent = require("ent");const DEVICE_WIDTH = Dimensions.get("window").width;const CourseMaterial = (props) => {const {tagsStyles, materialsStyles, baseFontStyle, materials, navigation, t} = props; const user = useSelector((state) => state.user.userObject); const online = useSelector((state) => state.network.online); const [opening, setOpening] = useState(false); const [progress, setProgress] = useState(0); const onLinkPress = async (evt, url) => { //Get auth from available screen props const { auth } = navigation.getScreenProps(); //Checks if extension added in url is supported for preview if (isInExtensionList(url)) { return await previewDocument({ url, localName: documentFilename(url), token: auth.token, t, beginCallback: () => { setProgress(0); setOpening(true); }, progressCallback: setProgress, doneCallback: localFile => { setTimeout(() => { setOpening(false); }, 1000); }, failCallback: () => { setTimeout(() => { setOpening(false); }, 1000); } }); } if (online) { //If online, handle urls using app's helper function return htmlHandleClicks(navigation, false)(evt, url); } Alert.alert(t("course:materialRequiresConnection")); }; return user.id === 1 ? //Use a new component for SpecialUserComponent <>
} export default CourseMaterial; //In custom_code/index.js ... import CourseMaterial from "./components/CourseMaterial"; export const applyCustomCode = externalCodeSetup => { externalCodeSetup.courseSingleApi.setCourseMaterialsComponent((props) =>Welcome back {user.name}! We prepared the materials for you. > : //Use app's default component for RegularUserComponent ) }
#setFilterIncomingCourseProps(筛选即将到来的课程计划)
设置回调函数filterIncomingCourseProps
用于过滤进入课程单屏幕组件的道具
参数:
的名字 | 类型 | 描述 |
---|---|---|
filterIncomingCourseProps |
CoursePropsFilterCallback |
例子
externalcodeseup . coursesingleap. setfilterincomingcourseprops ((props) => {return{…props, date: new date ()}};
#setHeaderAuthorRenderer(渲染器)
设置组件以覆盖默认的课程作者组件。
参数:
的名字 | 类型 | 描述 |
---|---|---|
渲染器 |
React.ComponentType。<HeaderAuthorComponentProps> |
例子
//在custom_code/components/CourseAuthor.js中,从'React'导入React;从'React native'导入{View,Text};从“@src/components/AppAvatar”导入AppAvatar;从“@src/components/AppTouchableOpacity”导入apptoucableOpacity;从“@src/utils/CCDataUtil”导入{getBestImageVariant};从“@src/components/hocs/withUserClickHandler”;//使用BuddyBoss HOC更易于导航const CourseAuthor=(props)=>{const{user,global,lightStyle,toUserBasedOnSettings}=props;//由于使用HOC const boundCallback=React.useMoo(()=>toUserBasedOnSettings.bind包装组件,因此可以导航到`user`的配置文件(null,null,user),[user]);//使用BuddyBoss getBestImageVariant帮助函数获取组件const userAvatarUrl=React.UseMoom(()=>!!user?user.avatar_URL?getBestImageVariant(user.avatar_URL,96):user?.avatar?thumb:,[user]);返回{user&&()} {user&(<>>)} }使用UserClickHandler导出默认值(CourseAuthor);//在自定义代码/index.js中…从“/components/CourseAuthor”导入CourseAuthor;导出常量applyCustomCode=externalCodeSetup=>{externalCodeSetup.CourseSingelAPI.setHeaderAuthorRenderer((props)=> )
#设置TransformCourseActionButtons(transformCourseActionButtons)
您可以通过将默认的课程操作按钮替换为首选的操作按钮,来转换开始、购买或继续课程的默认课程操作按钮。
参数:
的名字 | 类型 | 描述 |
---|---|---|
transformCourseActionButtons |
TransformCourseActionButtonsCallback |
例子
从“@src/components/Course/CourseActionButton”导入CourseActionButton;导出常量applyCustomCode=externalCodeSetup=>{externalCodeSetup.CourseSingelAPI.setTransformCourseActionButtons((CourseActionBtn、courseVM、t、颜色、全局、产品、导航、startCourse、continueCourse、priceComponentRender)=>{常量信息=要继续课程,请点击下面的按钮 const Redirect=导航(“课程屏幕”)}样式={{backgroundColor:“青色”}/> return[Info,CourseActionBtn,Redirect];})