开发者模式与开发者工具

本文说明如何开启开发者模式(IS_DEV)、如何安装「开发者工具」插件,以及该插件的主要作用。二次开发、模板调试、故障排查时建议先开启开发者模式;正式上线后务必关闭,并视情况卸载高权限插件。开发者模式

系统函数/内置函数

dr_is_empty,dr_is_sys_301,dr_else_value,dr_safe_url,dr_diff,dr_array_keys,dr_array_value,dr_in_array,dr_array_intersect,dr_array_intersect_key,dr_strlen,dr_strpos,dr_stripos,dr_move_uploaded_file,dr_html2code,dr_code2html,dr_html_code,dr_oauth_list,dr_is_mobile,dr_is_admin_search_field,dr_get_array_key,dr_site_info,dr_site_value,dr_get_ftable,dr_get_ftable_array,dr_get_content_img,dr_get_content_url,dr_is_app,dr_is_module,dr_rp,dr_rp_view,dr_qrcode,dr_sec2time,dr_get_files,dr_get_image,dr_upload_temp_path,dr_star_level,dr_format_create_sql,dr_cms_domain_name,dr_is_not_null_value,dr_lang,dr_client_data,dr_ueditor_html,dr_get_domain_name,dr_save_bfb_data,dr_avatar_dir,dr_avatar_path,dr_avatar,dr_member_info,dr_member_username_info,dr_list_function,dr_linkagepos,dr_linkage,dr_linkage_json,dr_linkage_list,dr_linkage_id,dr_linkage_cname,dr_linkage_level,dr_payform,dr_fieldform,dr_block,dr_var_value,dr_get_file,dr_down_file,dr_get_file_url,dr_field_options,dr_field_setting,dr_member_auth,dr_member_auth_id,dr_zhe_price,dr_price_value,dr_sku_value_name,dr_sku_price,dr_sku_name,dr_level_next_value,dr_html_auth,dr_pay_type_html,dr_pay_name,dr_pay_type,dr_pay_status,dr_pay_money_html,dr_clear_empty,dr_list_field_order,dr_array2array,dr_array22array,dr_is_use_module,dr_site_table_prefix,dr_module_table_prefix,dr_mform_table_prefix,dr_form_table_prefix,dr_icon,dr_file,dr_file_preview_html,dr_is_image,dr_format_option_array,dr_field_input,dr_dir_map,dr_file_map,dr_return_data,dr_form_hidden,dr_get_csrf_token,dr_form_search_hidden,dr_base64_encode,dr_base64_decode,dr_get_theme,dr_randcode,dr_is_numeric,dr_dir_delete,dr_authcode,dr_now_url,dr_code,dr_sorting,dr_member_order,dr_show_stars,dr_ajax_template,dr_post_json_data,dr_catcher_data,dr_search_rewrite_encode,dr_search_rewrite_decode,dr_rewrite_encode,dr_rewrite_decode,dr_get_keyword,dr_safe_keyword,dr_safe_replace,dr_safe_filename,dr_safe_username,dr_safe_password,dr_rm_http,dr_safe_replace_path,dr_strcut,dr_wordcut,dr_random_color,dr_fdate,dr_date,dr_object2array,dr_arraycut,dr_string2array,dr_array2string,dr_mkdirs,dr_format_file_size,dr_keyword_highlight,dr_preg_html,_format_feed_content_url_length,dr_qrcode_url,dr_get_order_string,dr_discount,dr_distance,dr_square_point,dr_tpl_path,dr_array_rand,dr_array_sort,dr_get_form_post_value,dr_get_mform_post_value,dr_get_register_value,dr_tpl_file,dr_count,dr_http_prefix,dr_to_url,dr_mobile_url,dr_is_url,dr_url_prefix,dr_web_prefix,dr_url_full,dr_url_rel,dr_text_rel,dr_text_full,dr_member_group_etime,dr_member_group_dtype,dr_html2emoji,dr_clear_emoji,dr_text2py,dr_html2text,dr_htmlspecialchars,dr_is_root_path,dr_check_put_path,dr_debug,dr_code2utf8,dr_clearhtml,dr_filter_description,dr_get_description,dr_get_keywords,dr_redirect,dr_redirect_safe_check,remove_invisible_characters

自定义跨站提交验证字段

站内提交表单都会触发跨站验证程序,如果提交表单中不包含csrf_token字段就会触发禁止提交如何自定义csrf_token字段?方法一、form提交的html代码{dr_form_hidden()}

继承重写系统字段类别

当网站已经规划上线之后,数据集已经录入完成了,不方便删除重建字段的情况下,当需要改变一下系统字段的字段处理逻辑,在不破坏系统文件的前提下,可以继承系统的字段类别。比如我要把系统默认的Text字段类型,

远程附件下载入库

开发时需要将远程的文件下载到本站服务器数据库进行数据存储管理附件下载代码:// 下载远程文件$rt = \Phpcmf\Service::L('upload')->down_file([

后台顶部菜单定义

后台每个页面的顶部导航菜单的定义方法在控制器中定义菜单变量格式:\Phpcmf\Service::V()->assign([ 'menu' => \Phpcmf\Service::M('auth

重写系统Model类方法

当需要更改系统自带的Model类方法时,例如/dayrui/Fcms/Model/Member.php1、新建文件:dayrui/My/Model/Member.php2、新写方法体:<?php na

重写系统Library类方法

当需要更改系统自带的Library类方法时,例如/dayrui/Fcms/Library/Router.php1、新建文件:dayrui/My/Library/Router.php2、新写方法体:<?

自定义存储类型

针对存储类型的自定义,比如需要接入其他厂商的云存储存储类型程序定义目录:dayrui/ThirdParty/Storage准备工作:预定义一个文件名,有字母组成,例如是Test开发步骤:1、存储类型命

重组重定义后台菜单字符串

迅睿系统会根据用户在后台设置的菜单数据来生成新的菜单布局html代码,{$string},比如以下代码就是由系统生成的比如开发者需要在某些菜单里面加一个class,加一个id,加一段js代码,那么这种

CLI模式下运行你的程序

除了 通过浏览器中的URL 调用应用程序的控制器外,还可以通过命令行界面(CLI)加载它们。从命令行运行迅睿系统的原因很多,比如使交互式“任务”可以执行诸如设置权限,修剪缓存文件夹,运行备份等操作。与

自定义模板解析list标签

需要精通php的开发者使用系统自带的标签有{category **** } 获取栏目 {/category}{linkage ****} 获取联动菜单 {/linkage}{related ***

自动加载配置文件

自动加载使用场景,当你在config目录或者其他目录定义了一个数组类型的配置文件例如,config/aaa.php<?phpreturn [ 'key1' => 'v1', 'key2'

自定义入口程序

用于不带任何参数的url来访问控制器文件,例如http://www.xxx.com/aaaa.php 访问控制器 某某某http://www.xxx.com/api/bbb.php 访问控制器 某某某

格式化字段输入表单

可以在发布表单中自定义自己的字段样式,默认的,系统使用 {$myfield}等等的变量输出的系统字段布局样式: 字段中文名字 字段控件html代码情况一:如果想把系统字段布局样式改成这种呢

图片验证码验证开发

图形验证码开发流程,在网页端form体内加入图片验证码,提交之前进行图片验证码验证,可以有效的拦截垃圾消息。开发思路:1、用户输入系统生成的验证码字符串2、提交后台进行字符串对比,相同表示验证成功实现

寻找自定义字段控制文件

通过迅睿自定义字段系统,开发者可以创建各种的字段输入控件,例如:内容发布或在修改界面就可以展示出各种形态的字段输入样式,例如:二次开发中研究这些字段空间是如何输出到界面上的,他在程序里面是如何控制的,

Fcms目录主控制器二次开发

/dayrui/Fcms/Control/目录是系统主核心文件,里面的文件是不能修改的,私自修改可能会引起系统不稳定导致系统崩溃,修改后不能对cms进行升级。如果非要修改某些控制器怎么办?我们以【ad

连接多个数据库/数据源

系统可以连接多个数据库操作改配置文件config/database.php<?php// default是迅睿cms系统库$db['default'] = [ 'hostname' => '1

全局自动加载Composer类

本教程仅限于System内核使用Composer支持会自动初始化它会自动读取文件: /vendor/autoload.php 还可以自定义Composer目录,打开index.php写上:define

MySQL数据优化

数据优化是一个大学问,本节部分内容来自百度一、模板标签模板标签写法不合理时会导致cpu占用过高,网站缓慢,不推荐使用的标签module=all 全模块查询严重影响速度related 相关标签,按关键词

定义任务类型Cron

定义任务类型在二次开发使用会用到,将自己的任务加入到任务队列中执行比如我要创建一个crm测试的程序,用于登录成功后处理某某程序代码$rt = \Phpcmf\Service::M('cron')->a

调用站外数据库

在迅睿系统中可以调用除开本站以外的数据库,配置文件config/database.php<?php/** * 数据库配置文件 */ // default是站内的默认数据库$db['default']

发送手机验证码开发

用在二次开发时,处理验证码发送程序,适合精通php的程序员模板代码: 图片验证 {dr_code(120, 35)} 短信验证 获取手机验证

Table类:搜索条件的开发

适用于继承table类的控制器文件,需要精通php的开发者功能介绍:在列表搜索时,默认的搜索方式是模糊匹配,比如我需要改成以空格为分隔进行多词语搜索默认情况下会将【词语一 词语二】当成一个词语进行数据

邮件发送队列

注册邮件发送任务\Phpcmf\Service::L('Notice')->send( 'email', 'form_email_tpl', $var, [ 't

后台提醒管理员 admin_notice

用于提醒管理员将要做的任务1、发起通知任务\Phpcmf\Service::M('Member')->admin_notice($site, $type, $member, $msg, $uri);*