系统函数库 system.func.php
get_theme_list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**(V3.8 新增) * 获取模板主题列表 * @param string $m 模块 * @return array */ function get_theme_list( $m = 'index' ){ $theme_list = array (); $list = glob (APP_PATH. $m .DIRECTORY_SEPARATOR. 'view' .DIRECTORY_SEPARATOR. '*' , GLOB_ONLYDIR); foreach ( $list as $v ){ $theme_list [] = basename ( $v ); } return $theme_list ; } |
get_config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /**(V3.8 新增)(V6.1 更新) * 获取系统配置信息 * @param $key 键值,可为空,为空获取整个数组 * @return array|string */ function get_config( $key = '' ){ if (! $configs = getcache( 'configs' )){ $data = D( 'config' )->where( array ( 'status' =>1))->select(); $configs = array (); foreach ( $data as $val ){ $configs [ $val [ 'name' ]] = $val [ 'value' ]; } setcache( 'configs' , $configs ); } if (! $key ){ return $configs ; } else { return array_key_exists ( $key , $configs ) ? $configs [ $key ] : '' ; } } |
page_content
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**(V3.8 新增)(V6.3 更新) * 单页面标签,用于在首页或频道页调取单页的简介... * @param $catid * @param $limit * @param $strip * @param $field * @return string */ function page_content( $catid = 1, $limit = 300, $strip = true, $field = 'content' ){ global $catpage ; $catpage = isset( $catpage ) ? $catpage : D( 'page' ); $string = $catpage ->where( array ( 'catid' => $catid ))->field( $field )->find(); $string = $string ? str_cut(( $strip ? strip_tags ( $string [ $field ]) : $string [ $field ]), $limit ) : '' ; return $string ; } |
get_tags(V5.2 作废)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /**(V3.8 新增)(V5.2 作废) * 获取TAG标签 * @param $tags TAG,编辑内容时用 * @return string */ function get_tags( $tags = '' ){ $data = D( 'tag' )->field( 'id,tag,total' )->order( 'id DESC' )->select(); $string = '' ; if ( $data ){ foreach ( $data as $val ){ $str = strpos ( $tags , $val [ 'id' ]) === false ? '' : ' checked="checked" ' ; $string .= '<label>' . $val [ 'tag' ]. ' <input name="tag[]" type="checkbox" ' . $str . 'value="' . $val [ 'id' ]. '"/></label> ' ; } } $string .= '<a href="javascript:;" onclick="yzm_open(\'添加TAG\',\'' .U( 'admin/tag/add' ). '\',\'600\',\'300\')" class="yzmcms_a">点击添加</a>' ; return $string ; } |
get_modelinfo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /**(V3.8 新增)(V7.1 更新) * 获取模型信息 * @param $typeall 0只包含内容模型,1全部模型 * @return array */ function get_modelinfo( $typeall = 0){ $where = array ( 'disabled' => 0); if ( $typeall == 0){ $filename = 'modelinfo' ; $where [ 'type' ] = 0; } else { $filename = 'modelinfo_all' ; $where [ 'type!=' ] = 2; } if (! $modelinfo = getcache( $filename )){ $modelinfo = D( 'model' )->where( $where )->order( 'modelid ASC' )->select(); setcache( $filename , $modelinfo ); } return $modelinfo ; } |
sendmail
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /**(V3.8 新增)(V6.1 更新) * 发送邮件 必须做好配置邮箱 * @param $email 收件人邮箱 * @param $title 邮件标题 * @param $content 邮件内容 * @param $mailtype 邮件内容类型 * @return true or false */ function sendmail( $email , $title = '' , $content = '' , $mailtype = 'HTML' ){ if (!is_email( $email )) return false; yzm_base::load_sys_class( 'smtp' , '' , 0); $smtp = new smtp(get_config( 'mail_server' ),get_config( 'mail_port' ),get_config( 'mail_auth' ),get_config( 'mail_user' ),get_config( 'mail_pass' )); $state = $smtp ->sendmail( $email , get_config( 'mail_from' ), $title . ' - ' .get_config( 'site_name' ), $content , $mailtype ); if (! $state ) return false; return true; } |
ismobile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /**(V3.8 新增)(V6.1 更新) * 判断是否为手机访问 * @return bool */ function ismobile(){ // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ( $_SERVER [ 'HTTP_X_WAP_PROFILE' ])){ return true; } if (isset ( $_SERVER [ 'HTTP_USER_AGENT' ])){ $clientkeywords = array ( 'android' , 'iphone' , 'ipod' , 'mobile' , 'comfront' , 'midp' , 'symbianos' , 'wap' ); foreach ( $clientkeywords as $value ){ if ( stristr ( $_SERVER [ 'HTTP_USER_AGENT' ], $value )) return true; } } return false; } |
file_icon
1 2 3 4 5 6 7 8 9 10 11 | /**(V3.8 新增)(V7.1 更新) * 返回附件类型图标 * @param string $file 附件名称 * @return string */ function file_icon( $file ){ $ext_arr = array ( 'code' , 'css' , 'dir' , 'doc' , 'docx' , 'gif' , 'html' , 'jpeg' , 'jpg' , 'js' , 'mp3' , 'mp4' , 'pdf' , 'php' , 'png' , 'ppt' , 'pptx' , 'psd' , 'rar' , 'sql' , 'swf' , 'txt' , 'xls' , 'xlsx' , 'xml' , 'zip' ); $ext = fileext( $file ); if (in_array( $ext , $ext_arr )) return STATIC_URL. 'images/ext/' . $ext . '.png' ; return STATIC_URL. 'images/ext/hlp.png' ; } |
url_referer
1 2 3 4 5 6 7 8 9 10 11 | /**(V3.8 新增)(V7.2 更新) * 会员登录/退出跳转url * @param $is_login 1登录,0退出 * @return string */ function url_referer( $is_login = 1, $referer = '' ){ $referer = $referer ? urlencode( $referer ) : urlencode(get_url()); $url = $is_login ? U( 'member/index/login' ) : U( 'member/index/logout' ); return $url .( strstr ( $url , '?' ) ? '&' : '?' ). 'referer=' . $referer ; } |
adver
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /**(V3.8 新增)(V6.8 更新) * 广告调用 * @param $id * @return string */ function adver( $id ){ global $adver ; $adver = isset( $adver ) ? $adver : D( 'adver' ); $data = $adver ->field( 'start_time, end_time, code' )->where( array ( 'id' => $id ))->find(); if (! $data ) return '广告位不存在' ; if ( $data [ 'start_time' ]!=0 && $data [ 'start_time' ]>SYS_TIME){ return '广告未开始' ; } if ( $data [ 'end_time' ]!=0 && $data [ 'end_time' ]<SYS_TIME){ return '广告已过期' ; } return $data [ 'code' ]; } |
select_category
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | /**(V3.8 新增)(V6.9 更新) * 获取栏目的select * @param $name select的名称 * @param $value 选中的id,用于修改 * @param $root 顶级分类名称 * @param $member_publish 是否仅显示投稿栏目 * @param $attribute 外加属性 * @param $parent_disabled 是否禁父级栏目 * @param $disabled 是否禁单页和外部链接 * @param $modelid modelid * @return string */ function select_category( $name = 'parentid' , $value = '0' , $root = '' , $member_publish =0, $attribute = '' , $parent_disabled =true, $disabled =true, $modelid =0){ if ( $root == '' ) $root = '≡ 作为一级栏目 ≡' ; $categorys = array (); $html = '<select id="select" name="' . $name . '" class="select" ' . $attribute . '>' ; $html .= '<option value="0">' . $root . '</option>' ; $tree = yzm_base::load_sys_class( 'tree' ); $data = D( 'category' )->field( 'catid AS id,catname AS name,parentid,arrparentid,arrchildid,type,modelid,member_publish' )->where( array ( 'siteid' =>get_siteid()))->order( 'listorder ASC,catid ASC' )->select(); $arrparentid = array (); if ( $modelid ){ foreach ( $data as $catinfo ){ if ( $catinfo [ 'modelid' ]!= $modelid ) continue ; $key = md5( $catinfo [ 'arrparentid' ]); $arrparentid [ $key ] = isset( $arrparentid [ $key ]) ? $arrparentid [ $key ]. ',' . $catinfo [ 'id' ] : $catinfo [ 'arrparentid' ]. ',' . $catinfo [ 'id' ]; } $arrparentid = array_unique ( explode ( ',' , join( ',' , $arrparentid ))); } $publish_arr = array (); if ( $member_publish ){ foreach ( $data as $catinfo ){ if ( $catinfo [ 'member_publish' ]==0) continue ; $key = md5( $catinfo [ 'arrparentid' ]); $publish_arr [ $key ] = isset( $publish_arr [ $key ]) ? $publish_arr [ $key ]. ',' . $catinfo [ 'id' ] : $catinfo [ 'arrparentid' ]. ',' . $catinfo [ 'id' ]; } $publish_arr = array_unique ( explode ( ',' , join( ',' , $publish_arr ))); } foreach ( $data as $val ){ if ( $modelid && ! array_search ( $val [ 'id' ], $arrparentid )) continue ; if ( $member_publish && ! array_search ( $val [ 'id' ], $publish_arr )) continue ; $val [ 'html_disabled' ] = 0; if ( $parent_disabled && strpos ( $val [ 'arrchildid' ], ',' )) $val [ 'html_disabled' ] = 1; if ( $disabled && $val [ 'type' ]) $val [ 'html_disabled' ] = 1; $categorys [ $val [ 'id' ]] = $val ; } $tree ->init( $categorys ); $tree ->icon = array ( ' │ ' , ' ├─ ' , ' └─ ' ); $tree ->nbsp = ' ' ; $html .= $tree ->get_tree_category(0, "<option value='\$id' \$selected>\$spacer\$name</option>" , "<optgroup label='\$spacer \$name'></optgroup>" , $value ); $html .= '</select>' ; return $html ; } |
get_category
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | /**(V3.8 新增)(V6.3 更新) * 获取栏目信息 * * @param int $catid * @param string $parameter * @param bool $all * @return array or string */ function get_category( $catid = 0, $parameter = '' , $all = false){ if ( $all ){ $where = array (); $filename = 'categoryinfo' ; } else { $siteid = get_siteid(); $where = array ( 'siteid' => $siteid ); $filename = 'categoryinfo_siteid_' . $siteid ; } if (! $categoryinfo = getcache( $filename )){ $categoryinfo = D( 'category' )->where( $where )->order( 'listorder ASC, catid ASC' )->select(); setcache( $filename , $categoryinfo ); } if ( $catid ){ $catid_arr = yzm_array_column( $categoryinfo , null, 'catid' ); if (!isset( $catid_arr [ $catid ])) { return $parameter ? '' : array (); } return $parameter ? (isset( $catid_arr [ $catid ][ $parameter ]) ? $catid_arr [ $catid ][ $parameter ] : '' ) : $catid_arr [ $catid ]; } else { return $categoryinfo ; } } |
get_catname
1 2 3 4 5 6 7 8 9 10 11 12 | /**(V3.8 新增)(V6.3 更新) * 根据栏目ID获取栏目名称 * * @param int $catid * @return string */ function get_catname( $catid ){ $catid = intval ( $catid ); $data = get_category( $catid , '' , true); if (! $data ) return '' ; return $data [ 'catname' ]; } |
get_childcat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /**(V3.8 新增)(V6.8 更新) * 根据栏目ID获取子栏目信息 * * @param int $catid * @param bool $is_show 前端不显示栏目是否显示 * @param int $limit 限制数量 * @return array */ function get_childcat( $catid , $is_show = false, $limit = 0){ $catid = intval ( $catid ); $data = get_category(); $r = array (); foreach ( $data as $v ){ if (! $v [ 'display' ] && ! $is_show ) continue ; if ( $v [ 'parentid' ] == $catid ) $r [] = $v ; } return $limit ? array_slice ( $r , 0, $limit ) : $r ; } |
get_location
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | /**(V3.8 新增)(V7.2 更新) * 根据栏目ID获取当前位置 * * @param int $catid * @param bool $is_mobile 是否为手机版 * @param bool $self 是否包含本身 false为不包含 * @param string $symbol 栏目间隔符 * @return string */ function get_location( $catid , $is_mobile =false, $self =true, $symbol = ' > ' ){ $catid = intval ( $catid ); $data = $catid ? explode ( ',' , get_category( $catid , 'arrparentid' )) : array (); if ( $is_mobile ){ $str = '<a href="' .U( 'mobile/index/init' ). '">' .L( 'home_page' ). '</a>' ; foreach ( $data as $v ){ if ( $v ) $str .= $symbol . '<a href="' .U( 'mobile/index/lists' , array ( 'catid' => $v )). '">' .get_category( $v , 'mobname' ). '</a>' ; } if ( $self ) $str .= $symbol . '<a href="' .U( 'mobile/index/lists' , array ( 'catid' => $catid )). '">' .get_category( $catid , 'mobname' ). '</a>' ; } else { $str = '<a href="' .SITE_URL. '">' .L( 'home_page' ). '</a>' ; foreach ( $data as $v ){ if ( $v ) $str .= $symbol . '<a href="' .get_category( $v , 'pclink' ). '">' .get_category( $v , 'catname' ). '</a>' ; } if ( $catid && $self ) $str .= $symbol . '<a href="' .get_category( $catid , 'pclink' ). '">' .get_category( $catid , 'catname' ). '</a>' ; } return $str ; } |
get_model
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /**(V3.8 新增)(V7.1 更新) * 根据模型ID获取model信息 * * @param int $modelid * @param bool $parameter 获取键名称 * @param bool $is_site 是否只加载当前站点信息 * @return string */ function get_model( $modelid , $parameter = 'tablename' , $is_site = false){ $modelinfo = $is_site ? get_site_modelinfo() : get_modelinfo(1); $modelarr = array (); foreach ( $modelinfo as $val ){ $modelarr [ $val [ 'modelid' ]] = $val ; } if (!isset( $modelarr [ $modelid ])) return false; return $parameter ? $modelarr [ $modelid ][ $parameter ] : $modelarr [ $modelid ]; } |
get_groupinfo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | /**(V3.8 新增)(V6.1 更新) * 获取组别信息 * * @param int $groupid * @return array */ function get_groupinfo( $groupid = '' ){ if (! $member_group = getcache( 'member_group' )){ $data = D( 'member_group' )->select(); $member_group = array (); foreach ( $data as $val ){ $member_group [ $val [ 'groupid' ]] = $val ; } setcache( 'member_group' , $member_group ); } if ( $groupid ){ return array_key_exists ( $groupid , $member_group ) ? $member_group [ $groupid ] : array (); } else { return $member_group ; } } |
get_groupname
1 2 3 4 5 6 7 8 9 10 11 12 | /**(V3.8 新增) * 根据组别ID获取组别名称 * * @param int $catid * @return string */ function get_groupname( $groupid ){ $groupid = intval ( $groupid ); $data = get_groupinfo( $groupid ); if (! $data ) return '' ; return $data [ 'name' ]; } |
get_memberavatar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /**(V3.8 新增)(V7.1 更新) * 获取用户头像 * @param $user userid或者username * @param $type 1为根据userid查询,其他为根据username查询, 建议根据userid查询 * @param default 如果用户头像为空,是否显示默认头像 * @return string */ function get_memberavatar( $user , $type =1, $default =true) { if (! $user ) return STATIC_URL. 'images/default.gif' ; global $member_detail ; $member_detail = isset( $member_detail ) ? $member_detail : D( 'member_detail' ); if ( $type == 1){ $data = $member_detail ->field( 'userpic' )->where( array ( 'userid' => $user ))->find(); } else { $data = $member_detail ->field( 'userpic' )->join( 'yzmcms_member b ON yzmcms_member_detail.userid=b.userid' )->where( array ( 'username' => $user ))->find(); } return $data && $data [ 'userpic' ] ? $data [ 'userpic' ] : ( $default ? STATIC_URL. 'images/default.gif' : '' ); } |
set_mapping
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | /**(V3.8 新增)(V6.7 更新) * 设置路由映射 * @param string $m 模块名 */ function set_mapping( $m ) { $siteid = get_siteid(); $site_mapping = 'site_mapping_' . $m . '_' . $siteid ; if (! $mapping = getcache( $site_mapping )){ $data = D( 'category' )->field( 'catid,`type`,catdir,arrchildid' )->where( array ( 'siteid' => $siteid , '`type`<' => 2))->order( 'catid ASC' )->select(); $mapping = array (); foreach ( $data as $val ){ $mapping [ '^' . str_replace ( '/' , '\/' , $val [ 'catdir' ]). '$' ] = $m . '/index/lists/catid/' . $val [ 'catid' ]; if ( $val [ 'type' ]) continue ; $mapping [ '^' . str_replace ( '/' , '\/' , $val [ 'catdir' ]). '\/list_(\d+)$' ] = $m . '/index/lists/catid/' . $val [ 'catid' ]. '/page/$1' ; if ( strpos ( $val [ 'arrchildid' ], ',' )) continue ; $mapping [ '^' . str_replace ( '/' , '\/' , $val [ 'catdir' ]). '\/(\d+)$' ] = $m . '/index/show/catid/' . $val [ 'catid' ]. '/id/$1' ; } //结合自定义URL规则 $route_rules = get_urlrule(); if (! empty ( $route_rules )) $mapping = array_merge ( $route_rules , $mapping ); setcache( $site_mapping , $mapping ); } return array_merge ( $mapping , C( 'route_rules' )); } |
get_urlrule
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /**(V3.8 新增)(V6.1 更新) * 获取自定义URL规则 * @return array */ function get_urlrule() { if (! $urlrule = getcache( 'urlrule' )){ $data = D( 'urlrule' )->order( 'listorder ASC,urlruleid ASC' )->limit(300)->select(); $urlrule = array (); foreach ( $data as $val ){ $val [ 'urlrule' ] = '^' . str_replace ( '/' , '\/' , $val [ 'urlrule' ]). '$' ; $urlrule [ $val [ 'urlrule' ]] = $val [ 'route' ]; } setcache( 'urlrule' , $urlrule ); } return $urlrule ; } |
get_memberinfo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | /**(V3.8 新增)(V7.1 更新) * 获取用户所有信息 * @param $userid * @param $additional 是否获取附表信息 * @return array|false */ function get_memberinfo( $userid , $additional =false){ $memberinfo = array (); if (! $userid ) return $memberinfo ; global $member ; $member = isset( $member ) ? $member : D( 'member' ); $memberinfo = $member ->field( 'username,regdate,lastdate,lastip,loginnum,email,groupid,amount,experience,point,status,vip,overduedate,email_status' )->where( array ( 'userid' => $userid ))->find(); if (! $memberinfo ) return false; if ( $additional ){ global $member_detail ; $member_detail = isset( $member_detail ) ? $member_detail : D( 'member_detail' ); $data = $member_detail ->where( array ( 'userid' => $userid ))->find(); $memberinfo = array_merge ( $memberinfo , $data ); } return $memberinfo ; } |
password
1 2 3 4 5 6 7 8 | /**(V3.8 新增)(V6.1 更新) * 对用户的密码进行加密 * @param $pass 字符串 * @return string */ function password( $pass ) { return md5( substr (md5(trim( $pass )), 3, 26)); } |
format_keyval(V5.4 作废)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /**(V5.3 新增)(V5.4 作废) * 格式化数组,根据传入的key/value,返回对应关系 * @param array 二维数组 * @param 数组中的值,如 name * @param 数组中的主键,如 id * @return array */ function format_keyval( $arr , $value = '' , $key = 'id' ){ if (! is_array ( $arr )) return array (); if (! $value ) return $arr ; $data = array (); foreach ( $arr as $val ) { $data [ $val [ $key ]] = $val [ $value ]; } return $data ; } |
get_content_url
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**(V5.4 新增)(V7.2 更新) * 获取内容页URL * @param $catid * @param $id */ function get_content_url( $catid , $id ){ if (! $catid || ! $id ) return '' ; $catinfo = get_category( $catid ); $url_mode = get_config( 'url_mode' ); $system_str = URL_MODEL==3 ? '' : 'index.php?s=' ; if ( $url_mode ==1 || $url_mode ==2){ return get_site_url(). $system_str . $catinfo [ 'catdir' ]. '/' . $id .C( 'url_html_suffix' ); } return SITE_PATH. $system_str . $catinfo [ 'catdir' ]. '/' . $id .C( 'url_html_suffix' ); } |
tag_url
1 2 3 4 5 6 7 8 9 10 11 12 13 | /**(V5.5 新增)(V6.5 更新) * 生成Tag URL * @param $tid * @param $domain * @return string */ function tag_url( $tid , $domain =null){ if ( $domain ){ $domain = rtrim( $domain , '/' ); return $domain .U( 'search/index/tag' , array ( 'id' => $tid ),false); } return U( 'search/index/tag' , array ( 'id' => $tid ), $domain ); } |
mobile_url
1 2 3 4 5 6 7 8 9 | /**(V5.5 新增) * 生成手机版内容URL * @param $catid * @param $id * @return string */ function mobile_url( $catid , $id ){ return U( 'mobile/index/show' , array ( 'catid' => $catid , 'id' => $id )); } |
title_color
1 2 3 4 5 6 7 8 9 10 | /**(V5.5 新增) * 渲染title颜色 * @param $title * @param $color * @return string */ function title_color( $title , $color = '' ){ if (! $color ) return '<span class="title_color">' . $title . '</span>' ; return '<span class="title_color" style="color:' . $color . '">' . $title . '</span>' ; } |
get_thumb
1 2 3 4 5 6 7 8 9 10 | /**(V5.5 新增)(V6.3 更新) * 获取内容缩略图 * @param $thumb * @param $default * @return string */ function get_thumb( $thumb , $default = '' ){ if ( $thumb ) return $thumb ; return $default ? $default : SITE_PATH. 'common/static/images/nopic.jpg' ; } |
get_comment_total
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**(V5.5 新增) * 获取内容评论数 * * @param int $id * @param int $catid * @param int $modelid * @return string */ function get_comment_total( $id , $catid = 0, $modelid = 1){ if (! $catid ) return 0; $commentid = $modelid . '_' . $catid . '_' . $id ; $total = D( 'comment_data' )->field( 'total' )->where( array ( 'commentid' => $commentid ))->one(); return $total ? $total : 0; } |
get_content_keyword
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**(V5.6 新增)(V6.1 更新) * 获取内容关键字 * * @param int $catid * @param string $parameter * @return array or string */ function get_content_keyword(){ $res = getcache( 'keyword_link' ); if ( $res === false){ $res = D( 'keyword_link' )->field( 'keyword,url' )->order( 'id DESC' )->limit(500)->select(); setcache( 'keyword_link' , $res ); } return $res ; } |
field_order
1 2 3 4 5 6 7 8 9 10 11 12 | /**(V5.6 新增) * 字段排序 * @param $field 字段名 * @return string */ function field_order( $field ){ $str = isset( $_GET [ 'of' ])&& $_GET [ 'of' ]== $field &&in_array( $_GET [ 'or' ], array ( 'ASC' , 'DESC' )) ? strtolower ( $_GET [ 'or' ]) : '' ; unset( $_GET [ 'm' ], $_GET [ 'c' ], $_GET [ 'a' ], $_GET [ 'page' ]); return '<span class="yzm-caret-wrapper ' . $str .'"> <a class = "yzm-sort-caret yzm-ascending" href= "'.U(ROUTE_A, array_merge($_GET, array('of'=>$field,'or'=>'ASC'))).'" title= "正序排列" ></a><a class = "yzm-sort-caret yzm-descending" href= "'.U(ROUTE_A, array_merge($_GET, array('of'=>$field,'or'=>'DESC'))).'" title= "倒序排列" ></a> </span>'; } |
get_default_model
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /**(V6.2 新增)(V6.5 更新) * 获取当前站点默认模型 * @param $key 获取的key */ function get_default_model( $key = false){ $default_model = array (); $data = get_site_modelinfo(); foreach ( $data as $value ) { if ( $value [ 'isdefault' ]){ $default_model = $value ; break ; } } if ( $data && empty ( $default_model )) $default_model = array_shift ( $data ); return $key ? (isset( $default_model [ $key ]) ? $default_model [ $key ] : null) : $default_model ; } |
get_seo_suffix
1 2 3 4 5 6 7 8 9 10 | /**(V6.3 新增) * 获取系统SEO后缀 * @return string */ function get_seo_suffix(){ $site_seo_division = get_config( 'site_seo_division' ); $siteid = get_siteid(); $site = $siteid ? get_site( $siteid ) : get_config(); return $site [ 'site_seo_suffix' ] ? $site_seo_division . $site [ 'site_seo_suffix' ] : $site_seo_division . $site [ 'site_name' ]; } |
get_site_url
1 2 3 4 5 6 7 8 9 10 | /**(V6.3 新增) * 获取当前站点首页URL * @return string */ function get_site_url(){ $siteid = get_siteid(); if (! $siteid ) return get_config( 'site_url' ); $site_url = get_site( $siteid , 'site_url' ); return $site_url ? $site_url : get_config( 'site_url' ); } |
get_site_seo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /**(V6.3 新增) * 获取当前站点SEO * @return string */ function get_site_seo( $siteid = null, $title = '' , $keyword = '' , $site_description = '' ){ $siteid = $siteid ===null ? get_siteid() : $siteid ; $siteinfo = $siteid ? get_site( $siteid ) : get_config(); $site_name = ( $title ? $title : $siteinfo [ 'site_name' ]).get_seo_suffix(); $site_keyword = $keyword ? $keyword . ',' . $siteinfo [ 'site_keyword' ] : $siteinfo [ 'site_keyword' ]; $site_description = $site_description ? $site_description : $siteinfo [ 'site_description' ]; return array ( $site_name , $site_keyword , $site_description ); } |
get_site_modelinfo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**(V6.3 新增) * 获取当前站点模型信息 * @return array */ function get_site_modelinfo(){ $siteid = get_siteid(); $filename = 'modelinfo_siteid_' . $siteid ; if (! $modelinfo = getcache( $filename )){ $modelinfo = D( 'model' )->where( array ( 'disabled' =>0, 'type' =>0, 'siteid' => $siteid ))->order( 'modelid ASC' )->select(); setcache( $filename , $modelinfo ); } return $modelinfo ; } |
content_list_tag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**(V6.3 新增) * 获取内容列表页TAG标签 * @param int $catid * @param int $id * @param int $limit * @return array */ function content_list_tag( $catid = 0, $id = 0, $limit = 5){ if (! $catid || ! $id ) return false; $modelid = get_category( $catid , 'modelid' , true); if (! $modelid ) return false; $id = intval ( $id ); return D( 'tag_content' )->alias( 'a' )->field( 'id,tag' )->join( 'yzmcms_tag AS b ON a.tagid=b.id' )->where( "modelid=$modelid AND aid=$id" )->order( 'id ASC' )->limit( $limit )->select(); } |
update_attachment
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /**(V6.3 新增) * 更新内容附件 * @param $modelid * @param $id */ function update_attachment( $modelid , $id ){ $attachmentid = isset( $_SESSION [ 'roleid' ])&&isset( $_SESSION [ 'attachmentid' ]) ? $_SESSION [ 'attachmentid' ] : get_cookie( 'attachmentid' ); if (! $attachmentid ) return false; $attachment = D( 'attachment' ); $arr = explode ( '|' , $attachmentid ); foreach ( $arr as $attid ){ $attachment ->update( array ( 'contentid' => $modelid . '_' . $id ), array ( 'id' => intval ( $attid ))); } if (isset( $_SESSION [ 'roleid' ])){ unset( $_SESSION [ 'attachmentid' ]); } else { del_cookie( 'attachmentid' ); } return true; } |
delete_attachment
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /**(V6.3 新增) * 删除内容附件 * @param $modelid * @param $id */ function delete_attachment( $modelid , $id ){ if (!get_config( 'att_relation_content' )) return false; $attachment = D( 'attachment' ); $upload_type = C( 'upload_type' , 'host' ); yzm_base::load_model( $upload_type , 'attachment' , 0); if (! class_exists ( $upload_type )) return false; $res = $attachment ->field( 'id,filepath,filename' )->where( array ( 'contentid' => $modelid . '_' . $id ))->select(); $upload = new $upload_type (); foreach ( $res as $val ){ $res = $upload ->deletefile( $val ); if (! $res ) continue ; $attachment -> delete ( array ( 'id' => $val [ 'id' ])); } return true; } |
get_siteid
1 2 3 4 5 6 7 8 9 10 11 12 | /**(V6.3 新增)(V6.5 新增) * 获取当前的站点ID * 兼容站群模块/联系QQ:214243830 */ function get_siteid() { if (! is_file (APP_PATH. 'site/common/function/function.php' )) return 0; include_once APP_PATH. 'site/common/function/function.php' ; return public_get_siteid(); } |
get_site
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | /**(V6.3 新增)(V6.5 新增) * 获取站点信息 * 兼容站群模块/联系QQ:214243830 * @param int $siteid * @param string $parameter * @return array or string */ function get_site( $siteid = 0, $parameter = '' ){ $siteid = intval ( $siteid ); if (! is_file (APP_PATH. 'site/common/function/function.php' )) { if ( $siteid ){ return $parameter ? '' : array (); } else { return array (); } } include_once APP_PATH. 'site/common/function/function.php' ; return public_get_site( $siteid , $parameter ); } |
get_copyfrom
1 2 3 4 5 6 7 8 9 10 11 12 13 | /**(V6.6 新增) (V6.7 更新) * 获取来源 * @param $modelid * @return array */ function get_copyfrom( $modelid = 1){ $arr = array ( '网络' , '原创' ); $db = get_model( $modelid ); if (! $db ) return $arr ; $res = D( $db )->field( 'copyfrom' )->order( 'id DESC' )->limit(100)->select(); $res = yzm_array_column( $res , 'copyfrom' ); return array_unique ( array_merge ( array_filter ( $res ), $arr )); } |
is_childid
1 2 3 4 5 6 7 8 9 10 | /**(V6.6 新增)(V6.9 更新) * 是否存在子栏目 * @param array $data 栏目信息或栏目ID * @return boolean */ function is_childid( $data ){ if ( is_numeric ( $data )) $data = get_category( $data ); if (! is_array ( $data ) || !isset( $data [ 'arrchildid' ])) return false; return strpos ( $data [ 'arrchildid' ], ',' ); } |
down_remote_img
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | /**(V6.7 新增)(V6.8 更新) * 下载远程图片 * @param string $content * @param string $targeturl * @return string */ function down_remote_img( $content , $targeturl = '' ){ preg_match_all( "/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png|webp))\\2/i" , $content , $img_array ); $img_array = isset( $img_array [3]) ? array_unique ( $img_array [3]) : array (); if ( $img_array ) { $path = C( 'upload_file' ). '/' . date ( 'Ym/d' ); $urlpath = SITE_PATH. $path ; $imgpath = YZMPHP_PATH. $path ; if (! is_dir ( $imgpath )) @ mkdir ( $imgpath , 0777, true); } $down_ignore_domain = get_config( 'down_ignore_domain' ); $down_ignore_domain = $down_ignore_domain ? explode ( ',' , $down_ignore_domain ) : array (); array_push ( $down_ignore_domain , HTTP_HOST); foreach ( $img_array as $value ){ foreach ( $down_ignore_domain as $ignore_domain ){ if ( stristr ( $value , $ignore_domain )) continue 2; } $val = $value ; if ( strpos ( $value , 'http' ) === false){ if (! $targeturl ) continue ; $value = $targeturl . $value ; } if ( strpos ( $value , '?' )){ $value = explode ( '?' , $value ); $value = $value [0]; } $ext = fileext( $value ); if (!is_img( $ext )) continue ; $imgname = date ( 'YmdHis' ).rand(100,999). '.' . $ext ; $filename = $imgpath . '/' . $imgname ; $urlname = $urlpath . '/' . $imgname ; ob_start(); readfile( $value ); $data = ob_get_contents(); ob_end_clean(); $len = $data ? file_put_contents ( $filename , $data ) : 0; if ( $len ){ $arr = array ( 'siteid' => get_siteid(), 'originname' => '远程下载-' .htmlspecialchars( basename ( $value )), 'filename' => $imgname , 'filepath' => $urlpath . '/' , 'filesize' => $len , 'fileext' => $ext , 'module' => ROUTE_M, 'isimage' => 1, 'userid' => isset( $_SESSION [ 'adminid' ]) ? $_SESSION [ 'adminid' ] : $_SESSION [ '_userid' ], 'username' => isset( $_SESSION [ 'adminname' ]) ? $_SESSION [ 'adminname' ] : $_SESSION [ '_username' ], 'uploadtime' => SYS_TIME, 'uploadip' => getip() ); D( 'attachment' )->insert( $arr ); $content = str_replace ( $val , $urlname , $content ); } } return $content ; } |
content_total
1 2 3 4 5 6 7 8 9 10 11 | /** (V6.7 新增)(V6.9 更新) * 获取内容总数 * @param $modelid * @param $catid * @return int */ function content_total( $modelid , $catid = 0){ $where = array ( 'modelid' => $modelid , 'status' => 1); if ( $catid ) $where [ 'catid' ] = $catid ; return D( 'all_content' )->where( $where )->total(); } |
get_field_val
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | /** (V6.7 新增) * 获取自定义多选字段生成的value值 * 调用方式如:get_field_val($systems, 'systems', $modelid) * @param $value * @param $field * @param $modelid * @return string */ function get_field_val( $value , $field , $modelid ){ $modelinfo = getcache( $modelid . '_model' ); if ( $modelinfo === false){ if (!D( 'model' )->where( array ( 'modelid' => $modelid ))->find()) return $value ; $modelinfo = D( 'model_field' )->where( array ( 'modelid' => $modelid , 'disabled' => 0))->order( 'listorder ASC,fieldid ASC' )->select(); setcache( $modelid . '_model' , $modelinfo ); } $data = yzm_array_column( $modelinfo , null, 'field' ); if (!isset( $data [ $field ])) return $value ; $arr = string2array( $data [ $field ][ 'setting' ]); $data = array (); foreach ( $arr as $val ){ $varr = explode ( ':' , $val ); if (isset( $varr [1])){ $data [ $varr [0]] = $varr [1]; } } if (! $data ) return $value ; return isset( $data [ $value ]) ? $data [ $value ] : $value ; } |
handle_upload_types
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /** (V6.9 新增) * 处理上传文件类型 * @param $type 1图片类型,2附件类型 * @return array */ function handle_upload_types( $type = 1){ $arr = explode ( '|' , ( $type ==1 ? get_config( 'upload_image_types' ) : get_config( 'upload_types' ))); $allow = array ( 'png' , 'gif' , 'jpg' , 'jpeg' , 'webp' , 'bmp' , 'ico' , 'zip' , 'rar' , '7z' , 'gz' , 'doc' , 'docx' , 'xls' , 'xlsx' , 'ppt' , 'pptx' , 'pdf' , 'txt' , 'csv' , 'mp3' , 'mp4' , 'avi' , 'wmv' , 'rmvb' , 'flv' , 'wma' , 'wav' , 'amr' , 'ogg' , 'ogv' , 'webm' , 'swf' , 'mkv' , 'torrent' ); foreach ( $arr as $key => $val ){ if (!in_array( $val , $allow )) unset( $arr [ $key ]); } return $arr ; } |