首页
友情链接
精美壁纸
给我留言
更多
关于我
Search
1
uniapp Click点击事件冲突解决
4,558 阅读
2
【插件】UNI APP 实现商米打印机功能支持T1,T2,V2机型
3,871 阅读
3
【测试可用】个人码免签支付系统源码/免签支付系统/微信支付平台
1,974 阅读
4
Java Validation参数校验注解使用
1,230 阅读
5
windows10下docker:给已存在的容器添加端口映射的方法
1,219 阅读
Java
Spring Boot
Spring Mvc
Java基础
进阶知识
前端
uniapp
小程序/公众号
JavaScript
HTML/CSS
Vue
PHP
开源软件
商城
营销工具
开发工具
视频/教程
Discuz主题/插件
typecho主题/插件
SEO杂谈
数据库
MongoDB
MySQL
Redis
单片机
概念说明
电路相关
Python
devops
docker
k8s
linux
职场杂谈
登录
/
注册
Search
标签搜索
python
mysql
人人商城
php
java
docker
typecho
插件
微擎
seo
spring boot
discuz
队列
uni-app
phpcms
教程视频
开源系统
源码
工具
css
哈根达斯
累计撰写
100
篇文章
累计收到
154
条评论
首页
栏目
Java
Spring Boot
Spring Mvc
Java基础
进阶知识
前端
uniapp
小程序/公众号
JavaScript
HTML/CSS
Vue
PHP
开源软件
商城
营销工具
开发工具
视频/教程
Discuz主题/插件
typecho主题/插件
SEO杂谈
数据库
MongoDB
MySQL
Redis
单片机
概念说明
电路相关
Python
devops
docker
k8s
linux
职场杂谈
页面
友情链接
精美壁纸
给我留言
关于我
搜索到
100
篇与
哈根达斯
的结果
2021-06-29
phpcms新手教学视频下载 phpcms入门教程视频
phpcms 是国内比较有名也比较早cms系统,同类比帝国cms和织梦这些产品,phpcms代码的注释和规范更适合做二次开发,同时phpcms使用mvc架构,对开发分层和维护更加友好,用来做资源下载类,资讯类,企业官网等最适合不过目前官网已经不再维护,意味着大家可以免费使用不在需要授权,目前有其他人在维护更新新版本,做bug修复合维护更新查看最新版本: phpcms源码下载目录索引一、视频介绍 视频分为12天课程,我本人在 淘宝花5块钱 买来学习的 :@(装大款) ,目前我已经学完了并且可以直接进行开发了。 视频均为高清视频mp4格式,无须转码,兼容市场上所有播放器,下载后可直接观看。 淘宝卖家5块钱,现在只需支付5毛钱即可,当做给博主的一点点支持。适合人群 phpcms初学者,phpcms模板制作者,php初学者二、视频下载 扫码付费即可查看下载链接,同时赠送可下载phpcms操作手册.chm,和php操作手册一份,静态代码一份,便于大家学习建站使用扫码下载<!--TePass start-->链接:https://pan.baidu.com/s/1-HcbamzAlNQcDWbKODxoKg 提取码:wd28 <!--TePass end-->三、免责声明本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除,若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!31639347@qq.com
2021年06月29日
223 阅读
0 评论
0 点赞
2021-06-29
Typecho七牛插件,为您的网站访问加速
七牛是目前国内用的还算比较多的一个第三方存储平台,同比阿里云的OSS存储,它的优点就是对于认证后的开发者有10G的免费存储空间,同时每个月都有一定免费额度的流量和api次数,作为白嫖党最好不过了,同时它也可以支持图片的处理,防盗链等需求,如果您的主机空间自带的流量不大,可以考虑使用它做为博客的图片存储,加快你的网站访问速度。原插件作者Githut源码地址:https://github.com/lichaoxilcx/typecho-Plugin-QiniuFile目录索引一、插件使用第一步:下载插件并安装文字末尾处,点击网盘下载插件,并上传至typecho->usr/plugins 目录下,插件目录名QiniuFile第二步:插件激活并配置登录博客后台在控制台->插件页面处将新上传的插件激活,激活成功后点击插件设置按钮,按要求填写七牛服务的配置项。获取配置需要有七牛的账号,并通过实名认证,若果没有账号点击链接去注册, 点击前往七牛官网注册 如何秘钥获取?在七牛云平台个人中心获取秘钥信息。图片域名建议使用自定义域名,如何使用自定义域名可查看控制台相关操作,有其他疑问可在本文内留言。二、 插件使用激活插件后,文章上传附件将使用七牛存储服务,文件将自动上传至七牛,并返回图片链接,跟平时的操作没有什么区别三、下载链接隐藏内容,请前往内页查看详情四、免责声明本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除,若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!31639347@qq.com
2021年06月29日
1,157 阅读
42 评论
3 点赞
2021-06-28
【插件】UNI APP 实现商米打印机功能支持T1,T2,V2机型
uniapp 是目前比较主流的开发框架支持一套代码多端部署,本文主要讲解uniapp如何使用商米机型实现打印,扫码,开钱箱等功能实现文章索引适用机器本插件已测试商米机型 V2手持机 T1,T2 ,大家看好收银机牌子和机型,,商米收银机V2手持机 T1,T2!商米收银机V2 T1,T2!商米收银机V2 T1,T2!重要的事情要说3次,其他的机子尚未经过测试,如有问题可联系作者插件功能实现商超类型票据打印,适配58mm,80mm页面纸张类型实现收银机USB外接扫码枪获取商品条码,原理通过广播监听扫码数据,并回调通知收扫码结果,无需使用input组件。(解决input组件弹出键盘问题,失去焦点无法获取内容问题)钱箱功能切刀功能(仅支持有切刀的机型)台式机主副屏通信插件不足因为票据模板内容各方有不同的需求,无法满足各位的不同显示效果,同时为了考虑插件的易用性,尽可能封装好直接调用,大家也懒得再看一大堆的文档和参数。如何使用代码使用因为考虑需求比较简单所以再接口设计方面并未考虑太复杂1. 初始化插件//引用插件对象以来 const shangMiPrint = uni.requireNativePlugin('G5KJ-ShangMiPrint') const globalEvent = uni.requireNativePlugin('globalEvent'); //onLoad函数中执行始化插件 onLoad() { let _this=this; shangMiPrint.init(function(e){ uni.showModal({ content:"回调返回结果:"+JSON.stringify(e) }) }) //扫码返回 globalEvent.addEventListener('scancode',function(e){ uni.showModal({ content:"回调返回结果:"+JSON.stringify(e) }) _this.code=e.data }) }2. 类超市外卖小票打印//打印调用 let data={ title:"广西*****馆", subTitel:"收银小票单据", orderTotalPrice:"¥59", printUser:"收银员校长", orderId:"843905060353", saleRel:"0776-72939424 李亮", goods:[ { goodName:"植护牌压花纸纸巾/56抽", goodNum:'1', goodNo:'78905060353', goodPrice:'¥17', goodTotalPrice:'¥17' }, { goodName:"植护牌压花纸纸巾/56抽", goodNum:'1', goodNo:'78905060353', goodPrice:'¥17', goodTotalPrice:'¥17' }, ] } shangMiPrint.printTicket(data,function(e){ //打印返回结果:{code:ok} alert(JSON.stringify(e)) })打印字段字典说明data字段说明字段类型空默认注释titlevarchar(32)是 主标题subTitelvarchar(16)是 副标题orderTotalPricevarchar(20)是 实收总金额printUservarchar(20)是 收银员orderIdvarchar(32)是0订单/流水IDsaleRelvarchar(32)是0售后联系goodsarray()是0商品品列表data.goods对象字段说明字段类型空默认注释goodNamevarchar(32)是 商品名称goodNumvarchar(16)是 购买数量goodNovarchar(20)是 商品编号goodPricevarchar(20)是 商品单价goodTotalPricevarchar(32)是0合计总价3. 钱箱相关//打开钱箱 shangMiPrint.openDrawer(function(e){ // if(e.code=='ok'){ } }) //获取钱箱状态 shangMiPrint.getDrawerStatus(function(e){ //true正常 if(e.data==true){ } })4. 二维码票务打印 let printData = [] let _this = this let printTicketItem={ title: item.commodityName,//主标题 subTitle: item.saleName,//副标题 code: item.checkCode,//票码 indentId: item.indentId,// 订单Id useDate: _this.dateFormat(item.useTime, 'YYYY-MM-DD'),//使用时间 saleDate: _this.dateFormat(item.initime, 'YYYY-MM-DD'),//销售时间 'remark': '本门票仅限当天使用,欢迎您的到来' } shangMiPrint.printTicketTemplet({ templetId: 'LY01', cut: true, data: printData//传入数组 }, function(e) { //判断业务漏记 } ) 4. 主副屏通信//price 为空时,主动关闭副屏 shangMiPrint.showPriceText({ title: '总金额', content: '¥' + a, price: a + "" }, function() { } ); 客显效果图调用方法列表1. 插件初始化init(func)参数func:初始化成功回调2. 小票打印printTicket(data,func)参数data:打印数据参数func:执行回调结果3. 钱箱相关openDrawer(func)打开钱箱getDrawerStatus (func) 获取钱箱状态3. 二维码票务打印printTicketTemplet(func)打印带二维码小票(景区票务,排号码等使用)3. 主副屏通信显示价格showPriceText(func)显示价格(景区票务,排号码等使用)事件监听usb接口扫码枪返回条码scancode 事件监听回调 const globalEvent = uni.requireNativePlugin('globalEvent') onLoad(){ let _this=this globalEvent.addEventListener('scancode',function(e){ uni.showModal({ content:"回调返回结果:"+JSON.stringify(e) }) //返回内容:{code:ok,data:'条码\n'} _this.code=e.data }) } 使用注意问题插件使用调试需要先自定义打包基座,在进行测试,自定义基座可查看官方教程。https://nativesupport.dcloud.net.cn/NativePlugin/use/use使用插件无法打包检查是否使用其他商米插件,同类型插件无法共同兼容使用插件下载云插件市场可免费试用,请试用没问题后在进行付费购买,购买后不做退款处理 ,因为钱不是打给我的 :@(吐血倒地),有其他疑问请在博客中留言 商米内置打印机与扫码插件下载
2021年06月28日
3,871 阅读
10 评论
1 点赞
2021-06-28
【插件】Typecho文章目录大纲生成插件
本文介绍 一款文章目录索引生成插件,该款插件非本人开发,我也是在网上搜到的人家基于原作者做的修改目录索引一、插件使用效果下面图片为插件实现效果。点击链接即可调整至目录内容所在位置,十分方便读者阅读二、插件使用第一步:下载插件并安装文字末尾处,点击网盘下载插件,并上传至typecho->usr/plugins 目录下,插件目录名MeunTree第二步:插件激活登录博客后台在控制台->插件页面处将新上传的插件激活。三、 插件使用在编辑文章时,在编辑器内您想插入文字索引目录的地方使用以下代码,程序会自动把这个注释替换成目录树效果四、下载链接{cloud title="MeunTree插件下载" type="bd" url="https://pan.baidu.com/s/1FsMHTh1lsbaf2QHoUO58UA" password="ikls"/}五、免责声明本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除,若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!31639347@qq.com
2021年06月28日
673 阅读
1 评论
3 点赞
2021-06-28
Typecho控制台日志打印 实现Typecho系统二次开发log日志打印查看
本文主要讲解如何实现typecho博客系统实现控制台日志打印功能,方便开发者可以查看日志输入,便于开发者定位问题,并解决使用日志需要日志目录有可写权限。一、编写日志文件Logger.php作者已经在网上找了一个人家写好的日志文件类,感觉使用还是不错的,大家复制使用即可,如果喜欢复制的,可以在文章末尾下载本php日志类文件文件放置var/目录下,即var/Logger.php<?php /* * Logger 日志类 * @date 2016/12/21 * @author 300js * 简单快捷debug类 * 优点:少配置或零配置,支持任何格式数据记录,支持数G数据存储.支持在浏览或linux环境查看 * 配置: * 可以在外部更改的常量: * 支持html便捷浏览模式或纯txt查看,值html|txt defined('MINI_DEBUG_TYPE') or define('MINI_DEBUG_TYPE', 'html'); 调试模式,1可写,0不可写 defined('MINI_DEBUG_FLAG') or define('MINI_DEBUG_FLAG', 1); jquery 地址 defined('MINI_DEBUG_JSPAHT') or define('MINI_DEBUG_JSPAHT', 'http://cdn.bootcss.com/jquery/1.8.3/jquery.js'); debug 可写的目录设置,结尾一定要加 保证有可写权限 defined('MINI_DEBUG_PATH') or define('MINI_DEBUG_PATH', __DIR__ . DIRECTORY_SEPARATOR); * * 更改存储目录: define('MINI_DEBUG_PATH', __DIR__ . '/');//必须后面加斜杆 / Logger::log('err', 'myFlag'); * 存储不同的文件名: define('MINI_DEBUG_PATH', __DIR__ . '/'); Logger::setCacheFile(date('Y-m-di'));//无需设置文件后缀 Logger::log('err', 'myFlag'); * 更改存储格式: define('MINI_DEBUG_PATH', __DIR__ . '/'); define('MINI_DEBUG_TYPE', 'txt');//默认为html Logger::log('err', 'myFlag'); * 覆盖文件,相当将之前的数据删除,写入新的数据,可做清空数据用 define('MINI_DEBUG_PATH', __DIR__ . '/'); Logger::log(1, 'myFlag', false); */ class Logger { private static $config = array( 'isSetFixx' => false,//是否已追加后缀标识 'cacheFile' => 'debug',//缓存的文件名,无需设置后缀 ); private static $_cacheFile = ''; /** * 设置日志文件,可文件名,可加相对路径,无需设置后缀名称 * @param string $cacheFile */ final public static function setCacheFile($cacheFile) { self::$config['cacheFile'] = $cacheFile; } /** * 记录日志 * @param mix $data 数据 * @param string $memo 标识 * @param boolean $isPush 是否追加,默认true * @param string $titleStr title * @return boolean 成功与否 */ final public static function log($data, $memo = 'None', $isPush = true, $titleStr = '日志记录') { self::_setBaseParam(); return self::_baseLog($data, $memo, $isPush, $titleStr); } /** * 获取当前的缓存文件 * @return type */ final public static function getCacheFile() { return self::$_cacheFile; } /** * 基础的日志方法 * @param mix $data 内容 * @param string $memo 标识 * @param boolean $isPush 是否追求,默认true * @param string $titleStr Title * @return boolean|int */ private static function _baseLog($data, $memo, $isPush = true, $titleStr = '日志记录') { if(!MINI_DEBUG_FLAG) return false; $cacheFile = MINI_DEBUG_PATH . self::$config['cacheFile']; if(!$isPush) unlink ($cacheFile); switch (strtolower(MINI_DEBUG_TYPE)) { case 'txt': $str = self::_setFormatTxt($data, $memo); break; default: $str = self::_setFormatHtml($data, $memo, $cacheFile, $titleStr); break; } self::$_cacheFile = $cacheFile; try{ if($isPush) file_put_contents($cacheFile, $str, 8); else file_put_contents($cacheFile, $str); } catch (Exception $ex) { } return true; } /** * 设置html格式,可以浏览器上方便查看 * @param type $data 数据 * @param type $memo 标识 * @param type $cacheFile 缓存文件 * @param type $titleStr * @return string */ private static function _setFormatHtml($data, $memo, $cacheFile, $titleStr){ $DebugFilePath = $_SERVER["PHP_SELF"];//当前处理页面 $timespan = microtime(true);//时间戳 $sBlockHTML = "\n\n\n<div class='block' _k='".md5($memo)."' _l='".$memo."'><span style='display:none'><------orderIndex-------></span>"; /*判断是否存在头信息*/ $baseHtml = ''; if(!is_file($cacheFile)) { $baseHtml = self::_getBaseHtml(MINI_DEBUG_JSPAHT, $titleStr); } $str = ''; $str .= $baseHtml; $str .= $sBlockHTML; $str .= "<span class='no' style='color:blue;'>NO</span>:\n\n"; $str .= "<br/><span style='color:blue;'>Date</span>:\t".date("Y-m-d H:i:s")."\n"; $str .= "<br/><span style='color:blue;'>File</span>:\t".$DebugFilePath."\n"; $str .= "<br/><span class='memo' style='color:blue;'>Memo</span>:\t".$memo."<br>\n"; // $str .= "<span style='color:blue;'>Action:</span>:\t".$_SERVER['QUERY_STRING']."<br>\n"; $str .= "----------------------------------------<span class='infoswitch'><a href='javascript:void(0)' >展开/收起</a></span>\n<div class='info'>"; ob_start(); if(is_array($data)) print_r($data); elseif(is_string($data)) echo $data; else var_dump($data); $a = ob_get_contents(); ob_end_clean(); $str .= "<xmp>"; $str .= $a; $str .= "</xmp>"; $str .= "</div>\n<hr></div>\n\n\n"; return $str; } /** * 设置txt纯文本格式 * @param type $data * @param type $memo * @return type */ private static function _setFormatTxt($data, $memo) { $DebugFilePath = $_SERVER["PHP_SELF"];//当前处理页面 $str = ''; $str .= 'Memo:' . $memo; $str .= ' Time:' . date('Y-m-d H:i:s'); $str .= ' File:' . $DebugFilePath; $str .= PHP_EOL; ob_start(); if(is_array($data)) print_r($data); elseif(is_string($data)) echo $data; else var_dump ($data); $a = ob_get_contents(); ob_end_clean(); $str .= $a; $str .= PHP_EOL; return $str; } /** * 获取处理的js html * @param type $jsPath * @param type $titleStr * @return type */ private static function _getBaseHtml($jsPath, $titleStr) { $baseHtml = <<<___html <!doctype html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>{$titleStr}</title><script src="{$jsPath}" type="text/javascript"></script><style type="text/css"> body { margin: 0px; padding: 0px; height: 100%; } body, th, td { font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: #333; } </style></head><body><div id="tabs"></div></body></html> <script> $(function() { var _oMemo = {all:{label:'all', total:$("div.block").length}}; var j=1; $("div.block").each(function(){ if(typeof _oMemo[$(this).attr('_k')] == 'undefined') { _oMemo[$(this).attr('_k')] = {}; } if(typeof _oMemo[$(this).attr('_k')]['total'] == 'undefined'){ _oMemo[$(this).attr('_k')]['total'] = 1; _oMemo[$(this).attr('_k')]['label'] = $(this).attr('_l'); $(this).find(".no").html("NO:" + j); }else { _oMemo[$(this).attr('_k')]['total'] += 1; $(this).find(".no").html("NO:" + j); } j++; }); var sUl = ""; for(var k in _oMemo){ sUl += '<li><a _k="'+k+'" href="javascript:void(0)" >'+_oMemo[k]['label']+'('+_oMemo[k]['total']+')</a></li>'; } $('div#tabs').html("<ul>"+sUl+"</ul><div style=\"position:absolute;top:10px;right:20px;\" class='allinfoSwith'><a href='javascript:void(0)' >全部 展开/收起</a></div>"); $('div#tabs li a').click(function(){ var _showK = $(this).attr('_k'); if(_showK == 'all'){ var i = 1; $("div.block").each(function(){ $(this).find(".no").html("NO:" + i); i++; }); $('div.block').show(); }else{ $('div.block').hide(); $('div.block[_k="'+_showK+'"]').show(); var p = 1; $('div.block[_k="'+_showK+'"]').each(function(){ $(this).find('.no').html("NO:"+p); p++; }); } }); $('div.block span.infoswitch a').click(function(){ var _o = $(this).parents('div.block').find('div.info').eq(0); _o.toggle(); }); var allinfoSwithIndex = 0; $('div.allinfoSwith a').click(function(){ allinfoSwithIndex%2==0 ? $('div.info').hide() : $('div.info').show(); allinfoSwithIndex++; }); }); </script> ___html; return $baseHtml; } /** * 初使常量及判断 */ private static function _setBaseParam(){ /**支持html便捷浏览模式或纯txt查看,值html|txt*/ defined('MINI_DEBUG_TYPE') or define('MINI_DEBUG_TYPE', 'html'); /**调试模式,1可写,0不可写*/ defined('MINI_DEBUG_FLAG') or define('MINI_DEBUG_FLAG', 1); /**jquery 地址*/ defined('MINI_DEBUG_JSPAHT') or define('MINI_DEBUG_JSPAHT', 'http://cdn.bootcss.com/jquery/1.8.3/jquery.js'); /**debug 可写的目录设置,结尾一定要加 / */ defined('MINI_DEBUG_PATH') or define('MINI_DEBUG_PATH', __DIR__ . DIRECTORY_SEPARATOR); self::_setFileFixx(); } /** * 设置文件后缀 * @param type $cacheFile */ private static function _setFileFixx() { $_default_name = '_log'; if(stripos(self::$config['cacheFile'], 'debug') !== false) { $_default_name = ''; } $baseName = pathinfo(self::$config['cacheFile'], PATHINFO_BASENAME); if(strpos($baseName, '.') !== false && self::$config['isSetFixx'] == true) { return; } switch (strtolower(MINI_DEBUG_TYPE)) { case 'txt': self::$config['cacheFile'] .= $_default_name . '.txt'; self::$config['isSetFixx'] = true; break; default: self::$config['cacheFile'] .= $_default_name . '.html'; self::$config['isSetFixx'] = true; break; } } } 二、 include日志文件因默认框架不会自动加载文件需要在config.inc.php配置文件中加载文件日志,并定义相关配置常量1. 配置修改修改配置文件核心代码// 在24行出添加 // 定义日志文件类型:txt文本,html网页,建议开发使用网页,便于查看 define('MINI_DEBUG_TYPE', 'html'); // 定义日志文件目录 define('MINI_DEBUG_PATH', __TYPECHO_ROOT_DIR__ . '/logs/'); //在35行后添加 require_once 'Logger.php'; 三、日志使用可以在你需要输入日志的地方,使用日志// 参数1:日志内容,参数2:日志业务TAG Logger::log('测试日志','baidu'); //支持数组形式输出 Logger::log(array('url'=>'测试1','name'=>'淘宝'),'taobao'); 四、查看日志在浏览器中访问http://测试域名/logs/debug.html 即可查看日志内容五、 常见问题debug.html文件未生成答:需要检查logs日志目录是否存在需要开发者自己建目录,检查logs目录是否有读写权限六、 文件下载logger类文件下载地址{cloud title="Logger文件下载" type="bd" url="https://pan.baidu.com/s/1kex_meyPkca0dIEyuvBuQQ" password="8qpm"/}
2021年06月28日
392 阅读
0 评论
0 点赞
1
...
17
18
19
20