opencart3.0后台怎么添加功能菜单

一:设置语言包变量

找到对应 1、admin\language 下的语言包文件夹,以 zh-cn 为例。

admin\language\zh-cn\common\column_left.php

追加如下:

//xuduowei 微信:weilanweb
$_['text_news'] = '新闻';  //新添加的菜单名称
$_['text_news_category'] = '新闻分类';
$_['text_news_infos'] = '新闻文章';

二、设置调用控制器

admin\controller\common\column_left.php

在需要插入目录的地方插入如下代码:

//xdw b 2019/1/10
$news = array();
//新闻分类
if ($this->user->hasPermission('access', 'catalog/category')) {
	$news[] = array(
		'name'	   => $this->language->get('text_news_category'),
		'href'     => $this->url->link('catalog/category', 'user_token=' . $this->session->data['user_token']),
		'children' => array()
	);
}


//新闻文章
if ($this->user->hasPermission('access', 'catalog/information')) {
	$news[] = array(
		'name'	   => $this->language->get('text_news_infos'),
		'href'     => $this->url->link('catalog/information', 'user_token=' . $this->session->data['user_token']),
		'children' => array()
	);
}

if ($news) {
	$data['menus'][] = array(
		'id'       => 'menu-blog',
		'icon'	   => 'fa fa-book fw',
		'name'	   => $this->language->get('text_news'),
		'href'     => '',
		'children' => $news
	);
}
//xdw end 2019/1/10

最终效果:

实际具体的新闻分类,新闻文章功能略。

浅谈windows&linux服务器安全相关软件云锁

做互联网平台开发,少不了对服务器的维护,我们常用的云服务器VPS为例!

操作系统中主要分2大阵营:1、windows;2、linux;

针对windows服务器;个人习惯用服务器安全狗或云锁。 http://www.safedog.cn/

针对linux服务器;推荐使用云锁。https://www.yunsuo.com.cn

个人亲测,linux云锁安装非常简单,最重要的是对linux各版本兼容非常好。

一、linux下云锁安装过程参见云锁官方,也可以参考我linux64,快速安装如下操作;http://help.yunsuo.com.cn/guide/Lin_inst.html

快速安装

x86:wget https://download.yunsuo.com.cn/v3/yunsuo_agent_32bit.tar.gz && tar xvzf yunsuo_agent_32bit.tar.gz && chmod +x yunsuo_install/install && yunsuo_install/install

x64:wget https://download.yunsuo.com.cn/v3/yunsuo_agent_64bit.tar.gz && tar xvzf yunsuo_agent_64bit.tar.gz && chmod +x yunsuo_install/install && yunsuo_install/install

分步安装

  1. 下载云锁安装包。x86:wget https://download.yunsuo.com.cn/v3/yunsuo_agent_32bit.tar.gz

    x64:wget https://download.yunsuo.com.cn/v3/yunsuo_agent_64bit.tar.gz

  2. 解压文件,得到安装包文件。x86:tar zxvf yunsuo_agent_32bit.tar.gz

    x64:tar zxvf yunsuo_agent_64bit.tar.gz

  3. 给云锁安装文件赋予可执行权限。
    chmod +x yunsuo_install/install
    
  4. 执行安装,直到提示“Install Yunsuo Success.”安装完成。
    yunsuo_install/install
  5. 添加服务器到云中心。
    /usr/local/yunsuo_agent/agent_smart_tool.sh -u cloud_name -p cloud_passwd
    
    

查看云锁是否运行

 ps -ef | grep yunsuo_agent

云锁服务相关命令

云锁启动/停止/重启/状态

service yunsuo start/stop/restart/status
/etc/init.d/yunsuo start/stop/restart/status

卸载云锁

/usr/local/yunsuo_agent/uninstall
安装完成后通过PC端进行管理。 https://www.yunsuo.com.cn/download.html 帮助手册参考如下: http://help.yunsuo.com.cn/guide/Lin_inst.html

 

二、我们在自己电脑上再安装一个pc客户端,就可以轻松可视化管理服务器了。

thinkPHP5 错误页面修改

1.进入手册找到错误配置文件位置和模板信息,最快速的办法是直接修改框架错误文件;

进入手册:https://www.kancloud.cn/manual/thinkphp5_1/354092

2.找到错误位置:

thinkphp/tpl/think_exception.tpl

3.进入模板,找到信息进行修改。

  <div class="copyright">
        <a title="技术支持" href="http://www.xuduowei.com" target="_blank">xuduowei[徐多蔚]</a> 
        <span>V1.0<?php //echo THINK_VERSION; ?></span> 
        <span>{ 十年磨一剑-为API开发设计的高性能框架 }</span>
    </div>

 

当tp5url有错误的时候,最终效果如下!【提示:记得关闭debug模式哦!】

nginx服务器环境下,修改了php.ini 文件 ,重启nginx是无效的,而需要重启php-fpm

Apache服务器环境,修改了php.ini配置文件,重启Apache就可以了。

nginx服务器环境下,修改了php.ini 文件 ,重启nginx是无效的,而需要重启php-fpm。

操作方法:通过远程终端登录linux服务器!

php-fmp的重启:


先执行:
killall php-fpm


再执行:
[宝塔环境]
cd进入到指定目录【/etc/init.d】后:执行命令 php-fpm &

 

先知道PHP是以什么样的模式运行的。是独立的可执行程序,或者是以模块的形式嵌入到服务器程序里运行。
如果是nginx,通常是独立进程的形式,而apache是模块的形式。
所以nginx是重启php进程php-fpm,apache是重启apache服务。

PHP运行模式:http://latrell.me/post-376.html

 

如何设置让自己的QQ能作为客服QQ

问题——​您需要添加对方为好友,才能给对方发送会话消息。
1、“您需要添加对方为好友,才能给对方发送会话消息”

2、http://shang.qq.com/widget/set.php
点击网址进入:商家沟通组件——立即免费开通

3、关闭验证

针对专业客服,若尽可能的不错过留言,建议开启“允许来消息时自动弹出窗口”。

字符串去重和数组去重

字符串去重:

<?php  
/* 
字符串去重 
*/  
/*方法一,使用内置函数*/  
//公共函数:字符串去重函数  
$str = '1,2,3,3,3,5,4,4,5,4,7,6,,4,5';  
  
function unique($str){  
    //字符串中,需要去重的数据是以数字和“,”号连接的字符串,如$str,explode()是用逗号为分割,变成一个新的数组,见打印  
    $arr = explode(',', $str);  
    $arr = array_unique($arr);//内置数组去重算法  
    $data = implode(',', $arr);  
    $data = trim($data,',');//trim — 去除字符串首尾处的空白字符(或者其他字符),假如不使用,后面会多个逗号  
    return $data;//返回值,返回到函数外部  
}  
echo unique($str);  
?>  

方法一中使用内置函数,可以很方便的得到预期的效果, 打印出来的结果如下:1,2,3,5,4,7,6

<?php  
/*方法二,用foreach循环遍历也可以*/  
//公共函数:字符串去重函数  
$str = '1,2,3,3,3,5,4,4,5,4,7,6,,4,5';  
  
function unique($str){  
    $arr = explode(',', $str);  
    $arr = array_unique($arr);  
    $data = '';  
    //使用foreach循环拼接也可以得到,得到的效果是一样的  
    foreach ($arr as $key => $value) {  
        $data .= $value.',';//拼接关键代码</span></strong>  
    }  
    $data = trim($data,',');  
    return $data;  
}  
echo unique($str);  
?> 

两者得到的结果是一样的,当然,使用php内置函数会更高效,但是方法二中,字符串的拼接思想还是值得学习的。

数组去重

使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组。

但是,如果你尝试在一个大的数组里使用array_unique()函数,它会运行地慢一些。点这里查看PHP 快速实现数组去重解决方案

总结:字符串去重和数组去重,面试中经常会问到!共同的核心函数就是:array_unique()

MySQL 数据库直接复制文件,InnoDB类型表不能用解决方案

不知道各位小伙伴有没有注意了,项目搬迁中,直接拷贝InnoDB的表文件不可用问题。解决过程如下:

一、 把data下的相关库文件拷贝至目的文件目录下;

二、再把data目录下的ibdata1拷贝至目的目录;

数据库运行ok!

总结:

如类型是MyISAM, 数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储于”/data/$databasename/”目录中.
如类型是InnoDB, 数据文件则存储在”$innodb_data_home_dir/″中的ibdata1文件中(一般情况),结构文件存在于table_name.frm中.
MySQL的数据库文件直接复制便可以使用,但是那是指“MyISAM”类型的表。

1:MyISAM类型的数据文件可以在不同操作系统中COPY,这点很重要,布署的时候方便点。(只需要拷贝 数据库名字文件夹下面的文件,这样数据库就拷贝完了)

2: InnoDB类型的 要注意多拷贝 ibdata1 , 最好不要是直接复制文件夹,而是应该用sql导入导出

整理:徐多蔚  xuduowei.com

jq:mouseover和mouseout多次触发解决办法

区别:

mouseover与mouseenter

不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。

只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。

mouseout与mouseleave

不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。

只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。

 

在#a没有子元素的情况下,两者在效果上没有区别

但是#a有子元素的情况下,为了mouseovermouseout触发的此时就可能比mouseenter,mouseleave多。

支付宝无法异步通知及异步通知常见问题注意事项

支付宝异步通知参数(notify_url)路径常见问题注意事项:

1、不能是内网或者局域网地址,必须是外网可以访问的。否则无法调用!!

2、地址不能有session拦截,支付宝主动发送,所有session会失效;cookies、session等在此页面会失效!!这个一定要注意!!!!

3、必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;

4、程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。
在25小时内完成6~10次通知(通知频率:5s,2m,10m,15m,1h,2h,6h,15h);
5、 程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,支付宝会收不到success字符,会被支付宝服务器判定为该页面程序运行出现异常,而重发处理结果通知;

支付宝异步通知返回时cookie、session为什么会失效?

当商户网站中有设置服务器异步通知页面文件(参数notify_url对应页面文件)与同步跳转返回页面文件(参数return_url对应页面文件),且在这两个文件里编写了获取cookie、session的代码。此时就会出现问题。

同步跳转返回页面文件(参数return_url对应页面文件)是买家付款完成后,当前页面从支付宝的网站自动跳转返回到商户网站的指定网页。cookie、session是从用户的客户端里获取的,此时,同步跳转返回页面是在用户的客户端里执行。因此,cookie、session不会失效。

但是,服务器异步通知页面文件(参数notify_url对应页面文件)是交易状态发生变更时,支付宝主动通知到商户网站的指定网页。cookie、session是从用户的客户端里获取,此时,交互过程是服务器与服务器间的交互,那么获取的位置则不个人用户的客户端,而是服务器里。因此,商户网站无法获取到cookie、session的信息。