dedecms自定义表单添加地区联动

我们在用dedecms制作自定义表单时,有时需要使用到联动类型,比如说城市二级三级联动,这就需要对织梦自定义表单进行二次开发。

第一:在织梦自定义表单中添加联动类型

dedecms自定义表单中默认情况下是没有联动类型这个选项,要想实现城市联动功能就必须要有联动类型,下面教你怎么调用出联动类型,原因就是织梦官方默认把联动类型在自定义表单中注释掉了,我们让他显示就可以。我们需要修改两个文件,下面是方法。

1、打开修改的文件:dede/templets/diy_field_add.htm 大概146 行,很明显已经注释掉,我们把注释去掉,

修改后如下图。改好后,保存即可!

修改后如下图。改好后,保存即可!

2、修改的文件:dede/templets/diy_field_edit.htm 大概在127行,很明显已经注释掉,我们把注释去掉,然后放到“多选框”下面。

完成以上两步操作,在自定义表单中就有了联动类型选择了。

点击自定义表单,新建一个字段,名字填好你想要的,比如说“户口所在地”,下面的字段名称要填写nativeplace,选择联动类型,而且下面的默认值也要填写nativeplace,如下图

点击确定,保存即可,然后就是前台的调用,这个就不多说了,相信会有织梦自定义表单的朋友都会吧。

第二:在织梦自定义表单做城市二级三级联动,后台类型名称显示数字解决方法

打开dede/templets/diy_list.htm文件,找到

else if($fielddata[1]==’addon’)else if($fielddata[1]==’addon’) { $fields[$field] = “<a href='{$fields[$field]}’ target=’_blank’><img src=’images/channeladd.gif’ border=’0′ /> 其它附件</a>”; }

在其下面添加如下代码else if($fielddata[1]==’stepselect’)
{
$fields[$field] = Getenums(“{$fields[$field]}”,’nativeplace’);
}

如下图所示:

继续在该文件中,找到

</form>

在其下面添加如下代码:<?php    
function Getenums($evalue=0,$egroup)
    {
    if( !isset($GLOBALS[’em_’.$egroup.’s’]) )
    {
    $cachefile = DEDEDATA.’/enums/’.$egroup.’.php’;
    if(!file_exists($cachefile))
    {
    require_once(DEDEINC.’/enums.func.php’);
    WriteEnumsCache();
    }
    if(!file_exists($cachefile))
    {
    return ”;
    }
    else
    {
    require_once($cachefile);
    }
    }
    if($evalue>=500)
    {
    if($evalue % 500 == 0)
    {
    return (isset($GLOBALS[’em_’.$egroup.’s’][$evalue]) ? $GLOBALS[’em_’.$egroup.’s’][$evalue] : ”);
    }
    else if (preg_match(“#([0-9]{1,})\.([0-9]{1,})#”, $evalue, $matchs))
    {
    $esonvalue = $matchs[1];
    $etopvalue = $esonvalue – ($esonvalue % 500);
    $esecvalue = str_replace(“.00″,”.”,$evalue);
    $GLOBALS[’em_’.$egroup.’s’][$etopvalue] = empty($GLOBALS[’em_’.$egroup.’s’][$etopvalue])? ”
    : $GLOBALS[’em_’.$egroup.’s’][$etopvalue];
    $GLOBALS[’em_’.$egroup.’s’][$esonvalue] = empty($GLOBALS[’em_’.$egroup.’s’][$esonvalue])? ”
    : $GLOBALS[’em_’.$egroup.’s’][$esonvalue];
    $GLOBALS[’em_’.$egroup.’s’][$esecvalue] = empty($GLOBALS[’em_’.$egroup.’s’][$esecvalue])? ”
    : $GLOBALS[’em_’.$egroup.’s’][$esecvalue];

 return $GLOBALS[’em_’.$egroup.’s’][$etopvalue].’ –
‘.$GLOBALS[’em_’.$egroup.’s’][$esonvalue].’ –
‘.$GLOBALS[’em_’.$egroup.’s’][$esecvalue];
    }
    else
    {
    $elimit = $evalue % 500;
    $erevalue = $evalue – $elimit;
    $GLOBALS[’em_’.$egroup.’s’][$erevalue] = empty($GLOBALS[’em_’.$egroup.’s’][$erevalue])? ”
    : $GLOBALS[’em_’.$egroup.’s’][$erevalue];
    $GLOBALS[’em_’.$egroup.’s’][$evalue] = empty($GLOBALS[’em_’.$egroup.’s’][$evalue])? ”
    : $GLOBALS[’em_’.$egroup.’s’][$evalue];
    return $GLOBALS[’em_’.$egroup.’s’][$erevalue].’ – ‘.$GLOBALS[’em_’.$egroup.’s’][$evalue];
    }
    }
    }
    ?>

如下图所示:

那你的外贸网站不应忽略这些实时洽谈工具!直接联线外国客户!捕捉到真是订单动态!难道你不想要更多​订单?

一些新建站的客户给UEESHOP反应网站订单量少的问题,其实除了要考虑营销推广外,还有一个站内的优化问题。而站内优化是可以用一个免费工具提高流量转化的,今天就分享给大家。

这个工具就是在线客户软件!可能很多外贸商家会认为只有国内的电商网站才需要,因为老外更喜欢用邮件来沟通。但是据UEESHOP调研人员的数据统计,有安装在线客服网站的订单明显比没有在线客服的要多1倍以上!即时的沟通交流更利于促成订单交易。那跨境商家应该怎么选择即时聊天软件呢?下面详细地为大家分析一下。

一.https://mylivechat.com/

想要更多订单?那你的外贸网站不应忽略这些免费工具!

mylivechat是一款有免费版和收费版的实时聊天工具。它的功能比较丰富,而且一般的商家使用免费版的功能就可以满足日常的沟通交流,很方便,推荐大家使用。

它的功能有:

1.无限次聊天;

2.定制聊天窗口,公司标志,聊天按钮和问候消息;

3.可直接发送图片和文件;

4.支持移动端聊天;

5.使用高级128位SSL加密功能,您的聊天和呼叫始终是安全的。

6.二种聊天方式展示,嵌入式聊天:访问者可以直接在网页上进行聊天,就像做Facebook聊天。弹出聊天:访客需要点击聊天按钮打开一个新的弹出聊天窗口,然后他们可以进行聊天。

7.实时了解您的访问者以及他们来自哪里。提供个人经验,将访客转化为客户。

想要更多订单?那你的外贸网站不应忽略这些免费工具!

二.https://www.tawk.to/

想要更多订单?那你的外贸网站不应忽略这些免费工具!

tawk是一款完全免费的在线客服工具,日常需要用到的功能都有涵盖:

1.实时监控网站访问者

2.从移动设备中回答聊天

3.主动吸引访客与触发器

4.自定义你的访问者小部件以适应您的网站

5.本地化您的语言中的问候语和消息

三.https://www.purechat.com/

purechat这款工具也有免费和付费两种版本,但是没有手机端,不能随时随地使用。如果你希望工作和生活分开,这款工具可以帮到你,不怕在业余时间被打扰。

想要更多订单?那你的外贸网站不应忽略这些免费工具!

对于新建的独立站商家来说,免费版本的功能已经足够使用。

这些功能包括:无限制在线聊天 – 无限用户 – 完全定制 – 互动中心 – 成绩单 – 所有集成 – 最多可以使用3个网站。

收费版本:$99元/月 – 实时分析 – 访客跟踪 – 联系人 – 无限网站 – 短信通知 – 删除品牌

四.https://livechat.com/

想要更多订单?那你的外贸网站不应忽略这些免费工具!

livechat虽然只能免费使用一个月,但是他们的界面非常清晰,而且售后服务不错,回应的速度很快。不过价格稍贵,而且按座席收费。想了解更多的商家可以访问他们的中文版官网查看。网址(https://livechat.com.cn/)

想要更多订单?那你的外贸网站不应忽略这些免费工具!
想要更多订单?那你的外贸网站不应忽略这些免费工具!

以上四种在线聊天工具都是跨境电商卖家最常用的,基本满足不同的在线客服需求,安装也比较方便。如果是UEESHOP的用户,只要将代码复制到UEESHOP后台的第三方代码里就可以使用了。如下图所示:

想要更多订单?那你的外贸网站不应忽略这些免费工具!

网站主动提交_DeDe百度主动推送Api(实时)实例教程

什么是百度主动推送(实时)?

亲爱的网站管理员你好:

sitemap实时推送功能过段时间就要下线了,我们推出了更加强大的链接提交主动推送功能作为替代。

新的主动推送功能更加强大:提交数据方式更简单,返回码达意更清晰(可立即知晓数据提交是否成功),可以做到实时向百度推送新数据。

需要注意的是:

1, 主动推送功能的入口在:工具——网页抓取——链接提交——主动推送(实时)

2, 主动推送使用了与原实时推送不同的数据接口,且需要重新获取密匙(登录后在链接提交工具界面可见)

为了保证您的数据提交效果,请及时更换接口和密匙,尽快熟悉主动推送功能,出现问题可以通过反馈中心获得百度工作人员的帮助。

使用百度主动推送(实时)可以加快收录速度,保护原创内容不被第三方采集祸害。

岑溪网站开发暂时没看到有人编写百度主动推送代码,于是岑溪网站开发跟据百度提供的PHP代码进行编写加入到DEDE后台的发表文章文件中,实现了与百度百度主动推送(实时)功能。

好了,那么我们就看代码吧:

第一在后台发表文章接口中搜索

$artUrl= MakeArt($arcID,true,true,$isremote);

然后在

if($artUrl==”)

{
$artUrl=$cfg_phpurl.”/view.php?aid=$arcID”;

}

后面加入

else{
$urls[]=’http://’.$_SERVER[‘HTTP_HOST’].$artUrl;

$api=’http://data.zz.baidu.com/urls?site=www.xker.com&token=d8ntTtXRa00CTFpx’;

$ch= curl_init();

$options=array(

CURLOPT_URL => $api,

CURLOPT_POST => true,

CURLOPT_RETURNTRANSFER => true,

CURLOPT_POSTFIELDS => implode(“\n”,$urls),

CURLOPT_HTTPHEADER => array(‘Content-Type: text/plain’),

);

curl_setopt_array($ch,$options);

$result= curl_exec($ch);

}

保存即可。如下图

服务器变成不可描述的服务者

更新系统:
yum update -y #CentOS系统命令
apt update -y #Debian系统命令
———ubuntu系统—–
启动bbr
sudo bash -c ‘echo “net.core.default_qdisc=fq” >> /etc/sysctl.conf’
sudo bash -c ‘echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf’
sysctl -p

查看bbr是否开启成功
lsmod | grep bbr

开放端口
开放所有端口
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
关闭防火墙
apt-get purge netfilter-persistent
reboot
————–centos系统————
关闭防火墙
systemctl stop firewalld.service && systemctl disable firewalld.service
开启bbr
echo “net.core.default_qdisc=fq” >> /etc/sysctl.conf
echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf
sysctl -p
sysctl -n net.ipv4.tcp_congestion_control
查看bbr是否开启成功
lsmod | grep bbr
—————搭建————–
安装组件
yum install -y wget #CentOS系统命令
apt install -y wget #Debian系统命令

xray一键安装脚本
wget -P /root -N –no-check-certificate “https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh” && chmod 700 /root/install.sh && /root/install.sh

[已解决]wordpress网站发布失败:此响应不是合法的JSON响应

wordpress网站发布失败:此响应不是合法的JSON响应

[已解决]wordpress网站发布失败:此响应不是合法的JSON响应

前两天,用WordPress搭建这个博客(https://wpthemes.pythonthree.com),服务器是阿里云香港服务器,使用宝塔控制面板,但是,当进去WordPress后台发表文章的时候,出现了如下报错:

WordPress 发布失败。错误信息:此响应不是合法的JSON响应。WordPress发布失败

WordPress版本是WordPress 5.5.1,因为是刚刚安装完毕,也没装WordPress插件,所以在网上找了些资料,看看是什么情况;

第一种情况:Wordpress编辑器插件的问题

WordPress编辑器插件的问题,网上有文章说是“新版古腾堡编辑器”的问题,如果真是这个问题,解决方法如下:

直接在模版文件的fuctions.php的600多行的样子直接添加代码

<span style="color:#3a3a3a"><code>//禁用Gutenberg编辑器add_filter('use_block_editor_for_post','__return_false');remove_action('wp_enqueue_scripts','wp_common_block_scripts_and_styles');</code></span>

wordpress网站是刚搭建的,根本没有下载、安装任何的插件(排除)

第二种情况:WordpressWPRestAPI的问题

如果发表文章的时候通过浏览器的F12功能来审查资源,你会发现WPRESTAPI会报错,这个时候可以尝试禁用WPRESTAPI来测试是否正常工作。

想要禁用WPRESTAPI,可以安装下面这个插件来实现。

WPRESTAPI插件地址:https://cn.wordpress.org/plugins/disable-wp-rest-api/

刚好这个服务器也有另一个WordPress网站,而且连程序都是从同一个服务器复制粘贴的,所以这个情况不存在(排除)

第三种情况:系统镜像的问题

有可能是系统镜像里面某个组件和新版本的WordPress不兼容导致的,如果是这样的话,就需要直接换个镜像解决的更快一点。

但是,同一个服务器,两个wp网站,一个就是正常的,新搭建的这个却不正常,不应该。(排除)

第四种情况:伪静态的问题WordPress伪静态修改

服务器的宝塔面板伪静态规则修改,在宝塔控制面板打开对应的WordPress网站,选择设置,然后选择伪静态,选择WordPress程序,点击保存即可。(解决问题)

现在,WordPress网站又可以正常运行wordpress成功发布

dedecms会员数据调用方法大全

调用12个企业会员 按 注册时间排序
{dede:sql sql=’select * from dede_member where mtype=”企业” order by mid limit 0,12′}
<a href=../member/index.php?uid=[field:userid/] target=’_blank’>[field:uname/]</a>
{/dede:sql}

调用12个个人会员 按 注册时间排序
{dede:sql sql=’select * from dede_member where mtype=”个人” order by mid limit 0,12′}
<a href=../member/index.php?uid=[field:userid/] target=’_blank’>[field:uname/]</a>
{/dede:sql}

详解

使用dede的sql标签

sql语句

select * from dede_member where mtype=”个人” order by mid limit 0,12

mtype=”个人” 判断是否为个人类型

order by mid  按mid(注册的ID编号) 排列

limit 0,12 从第0条数据开始读取 读取12条后返回

相关调用

调取所有会员中的12个

{dede:sql sql=’select * from dede_member order by mid limit 0,12′}
<a href=../member/index.php?uid=[field:userid/] target=’_blank’>[field:uname/]</a>
{/dede:sql}

调取所有会员中的12个 按最后登录时间排序

{dede:sql sql=’select * from dede_member  order by  logintime limit 0,12′}
<a href=../member/index.php?uid=[field:userid/] target=’_blank’>[field:uname/]</a>
{/dede:sql}

调取12个上传了头像的会员 按最后登录时间排序 并显示出他们的头像

{dede:sql sql=’select * from dede_member  where length(face)>0 order by logintime limit 0,12′}
<a href=../member/index.php?uid=[field:userid/] target=’_blank’><img src=[field:face/] /></a>
{/dede:sql}

以上本人都已测试成功
补充一条

调取12个推荐会员 按最后登录时间排序

{dede:sql sql=’select * from dede_member where matt=1 order by logintime limit 0,12′}
<a href=../member/index.php?uid=[field:userid/] target=’_blank’>[field:uname/]</a>
{/dede:sql}

Dede织梦图集Flash控件停用无法上传图片处理

我们知道由于Flash控件与2020年停用,导致DedeCMS织梦图集无法上传图片,尽管flash现已退出舞台了,而织梦的图集上传功用依然使用的是flash控件,现在不仅无法正常上传图像而且也不支持多实例多图集,我们来把它换一换,换成现在比较流行的layui前端框架 – layui上传模块。

现在比较流行的layui前端框架 – layui上传模块。

整合教程

第一步、下载额外所需文件,根据自己网站编码

把下载得到的文件解压吗,然后找到 layui上传模块 文件夹,然后选择自己DedeCMS编码对应的文件夹,然后把”layui”文件夹和”taglib”文件夹放到你网站include文件夹里去。

第二步、为后台图片集模型添加layui上传模块,官方原来的图集上传功能保留不动

伸手党 可以直接把下载解压后的文件夹 图集模型上传模块 下的4个文件替换即可使用(替换之前建议你备份你自己的这4个文件)

  1. /dede/templets/album_add.htm
  2. /dede/templets/album_edit.htm
  3. /dede/album_add.php
  4. /dede/album_edit.php

覆盖文件后刷新后台即可使用。

如果您使用的是默认单个图集,没有对DedeCMS图集进行开发过,下面的教程可略过无需理会【注意,二开的后台请根据教程来操作】。

二开教程

1、打开 /dede/templets/album_add.htm 找到

  1. <div id=”thumbnails”></div>

在它所在的tr标签下面加入

  1. <link href=”../include/layui/css/layui.css” rel=”stylesheet” media=”all”>
  2. <script src=”../include/layui/layui.js” type=”text/javascript”></script>
  3. <tr>
  4. <td width=”100%” height=”24″ colspan=”4″ class=”bline”>
  5. <table width=”800″ border=”0″ cellspacing=”0″ cellpadding=”0″>
  6. <tr>
  7. <td width=”80″ height=”40″>&nbsp;<b>默认图集:</b></td>
  8. <td><button type=”button” class=”layui-btn layui-btn-sm layui-btn-normal imgurls”><i class=”layui-icon layui-icon-upload”></i>上传图片</button></td>
  9. </tr>
  10. </table>
  11. </td>
  12. </tr>
  13. <tr>
  14. <td colspan=”4″ class=”bline”>
  15. <table width=’100%’>
  16. <tr>
  17. <td><div class=”layui-upload-img”><ul class=”layui-upload-list” id=”imgurls”></ul></div></td>
  18. </tr>
  19. </table>
  20. </td>
  21. </tr>
  22. <script type=”text/javascript”>
  23. layui.use(‘upload’, function(){
  24. var $ = layui.jquery
  25. ,upload = layui.upload;
  26.  
  27. // imgurls 图片上传
  28. var uploadInst = upload.render({
  29. elem: ‘.imgurls’
  30. ,url: ‘../include/layui/layuiupload.php’
  31. ,multiple: true
  32. ,accept: ‘images’
  33. ,acceptMime: ‘image/*’
  34. ,done: function(res){
  35. if(res.code == 0){
  36. return layer.msg(res.msg);
  37. }
  38. $(‘#imgurls’).append(‘<li class=”item_img”><div class=”operate”><i class=”toleft layui-icon layui-icon-left”></i><i class=”toright layui-icon layui-icon-right”></i><i class=”close layui-icon layui-icon-close-fill” data-id=”‘ + res.id + ‘”></i></div><img src=”‘ + res.img + ‘” class=”img” ><input type=”text” name=”imgurls[alt][]” value=”” class=”layui-input” /><input type=”hidden” name=”imgurls[url][]” value=”‘ + res.img + ‘” /><input type=”hidden” name=”imgurls[uaid][]” value=”‘ + res.id + ‘” /></li>’);
  39. }
  40. ,error: function(){
  41.  
  42. }
  43. });
  44.  
  45. $(“body”).on(“click”,”.close”,function(){
  46. var id = $(this).data(‘id’);
  47. $.get(‘../include/layui/layuiupload.php’,{‘dopost’:’del’,’id’:id},function(res){})
  48. $(this).closest(“li”).remove();
  49. });
  50.  
  51. $(“body”).on(“click”,”.layui-upload-img ul li .toleft”,function(){
  52. var li_index = $(this).closest(“li”).index();
  53. if(li_index >= 1){
  54. $(this).closest(“li”).insertBefore($(this).closest(“ul”).find(“li”).eq(Number(li_index)-1));
  55. }
  56. });
  57. $(“body”).on(“click”,”.layui-upload-img ul li .toright”,function(){
  58. var li_index = $(this).closest(“li”).index();
  59. $(this).closest(“li”).insertAfter($(this).closest(“ul”).find(“li”).eq(Number(li_index)+1));
  60. });
  61.  
  62. });
  63. </script>

2、打开 /dede/templets/album_edit.htm 找到

  1. <div id=”thumbnails”></div>

在它所在的tr标签下面加入

  1. <link href=”../include/layui/css/layui.css” rel=”stylesheet” media=”all”>
  2. <script src=”../include/layui/layui.js” type=”text/javascript”></script>
  3. <tr>
  4. <td width=”100%” height=”24″ colspan=”4″ class=”bline”>
  5. <table width=”800″ border=”0″ cellspacing=”0″ cellpadding=”0″>
  6. <tr>
  7. <td width=”80″ height=”40″>&nbsp;<b>默认图集:</b></td>
  8. <td><button type=”button” class=”layui-btn layui-btn-sm layui-btn-normal imgurls”><i class=”layui-icon layui-icon-upload”></i>上传图片</button></td>
  9. </tr>
  10. </table>
  11. </td>
  12. </tr>
  13. <tr>
  14. <td colspan=”4″ class=”bline”>
  15. <table width=’100%’>
  16. <tr>
  17. <td><div class=”layui-upload-img”><ul class=”layui-upload-list” id=”imgurls”></ul></div></td>
  18. </tr>
  19. </table>
  20. </td>
  21. </tr>
  22. <script type=”text/javascript”>
  23. layui.use(‘upload’, function(){
  24. var $ = layui.jquery
  25. ,upload = layui.upload;
  26.  
  27. // imgurls 图片上传
  28. var uploadInst = upload.render({
  29. elem: ‘.imgurls’
  30. ,url: ‘../include/layui/layuiupload.php’
  31. ,multiple: true
  32. ,accept: ‘images’
  33. ,acceptMime: ‘image/*’
  34. ,done: function(res){
  35. if(res.code == 0){
  36. return layer.msg(res.msg);
  37. }
  38. $(‘#imgurls’).append(‘<li class=”item_img”><div class=”operate”><i class=”toleft layui-icon layui-icon-left”></i><i class=”toright layui-icon layui-icon-right”></i><i class=”close layui-icon layui-icon-close-fill” data-id=”‘ + res.id + ‘”></i></div><img src=”‘ + res.img + ‘” class=”img” ><input type=”text” name=”imgurls[alt][]” value=”” class=”layui-input” /><input type=”hidden” name=”imgurls[url][]” value=”‘ + res.img + ‘” /><input type=”hidden” name=”imgurls[uaid][]” value=”‘ + res.id + ‘” /></li>’);
  39. }
  40. ,error: function(){
  41. //失败重传
  42.  
  43. }
  44. });
  45.  
  46. $(“body”).on(“click”,”.close”,function(){
  47. var id = $(this).data(‘id’);
  48. $.get(‘../include/layui/layuiupload.php’,{‘dopost’:’del’,’id’:id},function(res){})
  49. $(this).closest(“li”).remove();
  50. });
  51.  
  52. $(“body”).on(“click”,”.layui-upload-img ul li .toleft”,function(){
  53. var li_index = $(this).closest(“li”).index();
  54. if(li_index >= 1){
  55. $(this).closest(“li”).insertBefore($(this).closest(“ul”).find(“li”).eq(Number(li_index)-1));
  56. }
  57. });
  58. $(“body”).on(“click”,”.layui-upload-img ul li .toright”,function(){
  59. var li_index = $(this).closest(“li”).index();
  60. $(this).closest(“li”).insertAfter($(this).closest(“ul”).find(“li”).eq(Number(li_index)+1));
  61. });
  62.  
  63. });
  64. </script>

3、打开 /dede/album_add.php 找到

  1. //加入附加表

在它上面加入

  1. //图集字段 imgurls
  2. if(is_array($_POST[‘imgurls’][‘url’]))
  3. {
  4. $my_imgurls = “”;
  5. foreach($_POST[‘imgurls’][‘url’] as $key => $val)
  6. {
  7. $my_imgurls .= “{dede:img ddimg=’$val‘ text='{$_POST[‘imgurls’][‘alt’][$key]}’ width=” height=” uaid='{$_POST[‘imgurls’][‘uaid’][$key]}’}$val{/dede:img}\r\n“;
  8. }
  9. }
  10. $imgurls .= addslashes($my_imgurls);

4、打开 /dede/album_edit.php 找到

  1. //更新附加表

在它上面加入

  1. //图集字段 imgurls
  2. if(is_array($_POST[‘imgurls’][‘url’]))
  3. {
  4. $my_imgurls = “”;
  5. foreach($_POST[‘imgurls’][‘url’] as $key => $val)
  6. {
  7. $my_imgurls .= “{dede:img ddimg=’$val‘ text='{$_POST[‘imgurls’][‘alt’][$key]}’ width=” height=” uaid='{$_POST[‘imgurls’][‘uaid’][$key]}’}$val{/dede:img}\r\n“;
  8. }
  9. }
  10. $imgurls .= addslashes($my_imgurls);

第三步、内容页模板调用图集标签新写法

  1. <h2>默认图集</h2>
  2. <ul>
  3. {dede:imagelist}
  4. <li>
  5. <img src=”[field:imgsrc/]” alt=”[field:text/]” width=”220″ height=”150″>
  6. <p>[field:text/]</p>
  7. </li>
  8. {/dede:imagelist}
  9. </ul>
  10.  
  11. <h2>户型图片</h2>
  12. <ul>
  13. {dede:imagelist field=”huxing”}
  14. <li>
  15. <img src=”[field:imgsrc/]” alt=”[field:text/]” width=”220″ height=”150″>
  16. <p>[field:text/]</p>
  17. </li>
  18. {/dede:imagelist}
  19. </ul>

特别说明

  1. {dede:imagelist field=”huxing”}

field=’图片集字段’

不填的话就是调用图集默认,织梦多个图集多实例教程

在操作下面的教程之前必须确定你已经完成上面第一、第二、第三步

第一步、附加表里添加多个图集字段,例如 户型图片 字段

后台-系统-SQL工具-SQL命令行工具

  1. ALTER TABLE dede_addonimages ADD `huxing` text;

dede_addonimages 是我的图集模型附加表,注意自己的附加表,千万别写错了

第二步、打开 /dede/templets/album_add.htm 找到

  1. id=”imgurls”

在它所在的tr下面加入

  1. <tr>
  2. <td width=”100%” height=”24″ colspan=”4″ class=”bline”>
  3. <table width=”800″ border=”0″ cellspacing=”0″ cellpadding=”0″>
  4. <tr>
  5. <td width=”80″ height=”40″>&nbsp;<b>户型图片:</b></td>
  6. <td>
  7. <button type=”button” class=”layui-btn layui-btn-sm layui-btn-normal huxing”>
  8. <i class=”layui-icon layui-icon-upload”></i>上传图片
  9. </button>
  10. </td>
  11. </tr>
  12. </table>
  13. </td>
  14. </tr>
  15. <tr>
  16. <td colspan=”4″ class=”bline”>
  17. <table width=’100%’>
  18. <tr>
  19. <td>
  20. <div class=”layui-upload-img”>
  21. <ul class=”layui-upload-list” id=”huxing”></ul>
  22. </div>
  23. </td>
  24. </tr>
  25. </table>
  26. </td>
  27. </tr>

如图,注意标注的地方

继续找到

  1. // imgurls 图片上传

在它上面加入

  1. // huxing 图片上传
  2. var uploadInst = upload.render({
  3. elem: ‘.huxing’
  4. ,url: ‘../include/layui/layuiupload.php’
  5. ,multiple: true
  6. ,accept: ‘images’
  7. ,acceptMime: ‘image/*’
  8. ,done: function(res){
  9. if(res.code == 0){
  10. return layer.msg(res.msg);
  11. }
  12. $(‘#huxing’).append(‘<li class=”item_img”><div class=”operate”><i class=”toleft layui-icon layui-icon-left”></i><i class=”toright layui-icon layui-icon-right”></i><i class=”close layui-icon layui-icon-close-fill” data-id=”‘ + res.id + ‘”></i></div><img src=”‘ + res.img + ‘” class=”img” ><input type=”text” name=”huxing[alt][]” value=”” class=”layui-input” /><input type=”hidden” name=”huxing[url][]” value=”‘ + res.img + ‘” /><input type=”hidden” name=”huxing[uaid][]” value=”‘ + res.id + ‘” /></li>’);
  13. }
  14. ,error: function(){
  15. //失败重传
  16.  
  17. }
  18. });

如图,注意标注的地方

第三步、打开 /dede/templets/album_edit.htm 找到

  1. id=”imgurls”

在它所在的tr下面加入

  1. <tr>
  2. <td width=”100%” height=”24″ colspan=”4″ class=”bline”>
  3. <table width=”800″ border=”0″ cellspacing=”0″ cellpadding=”0″>
  4. <tr>
  5. <td width=”80″ height=”40″>&nbsp;<b>户型图片:</b></td>
  6. <td>
  7. <button type=”button” class=”layui-btn layui-btn-sm layui-btn-normal huxing”>
  8. <i class=”layui-icon layui-icon-upload”></i>上传图片
  9. </button>
  10. </td>
  11. </tr>
  12. </table>
  13. </td>
  14. </tr>
  15. <tr>
  16. <td colspan=”4″ class=”bline”>
  17. <table width=’100%’>
  18. <tr>
  19. <td>
  20. <div class=”layui-upload-img”>
  21. <ul class=”layui-upload-list” id=”huxing”>
  22. <?php
  23. if($addRow[‘huxing’]!=””)
  24. {
  25. $dtp = new DedeTagParse();
  26. $dtp->LoadSource($addRow[‘huxing’]);
  27. if(is_array($dtp->CTags))
  28. {
  29. $fhtml = ”;
  30. foreach($dtp->CTags as $ctag)
  31. {
  32. if($ctag->GetName()==”img”)
  33. {
  34. $bigimg = trim($ctag->GetInnerText());
  35. $text = trim($ctag->GetAtt(‘text’),’‘’);
  36. $uaid = trim($ctag->GetAtt(‘uaid’),’‘’);
  37. $fhtml .= “<li class=\”item_img\”><div class=\”operate\”><i class=\”toleft layui-icon layui-icon-left\”></i><i class=\”toright layui-icon layui-icon-right\”></i><i class=\”close layui-icon layui-icon-close-fill\” data-id=\”{$uaid}\”></i></div><img src=\”{$bigimg}\” class=\”img\” ><input type=\”text\” name=\”huxing[alt][]\” value=\”{$text}\” class=\”layui-input\” /><input type=\”hidden\” name=\”huxing[url][]\” value=\”{$bigimg}\” /><input type=\”hidden\” name=\”huxing[uaid][]\” value=\”{$uaid}\” /></li>”;
  38. }
  39. }
  40. echo $fhtml;
  41. }
  42. $dtp->Clear();
  43. }
  44. ?>
  45. </ul>
  46. </div>
  47. </td>
  48. </tr>
  49. </table>
  50. </td>
  51. </tr>

如图,注意标注的字段部分

继续找到

  1. // imgurls 图片上传

在它上面加入

  1. // huxing 图片上传
  2. var uploadInst = upload.render({
  3. elem: ‘.huxing’
  4. ,url: ‘../include/layui/layuiupload.php’
  5. ,multiple: true
  6. ,accept: ‘images’
  7. ,acceptMime: ‘image/*’
  8. ,done: function(res){
  9. if(res.code == 0){
  10. return layer.msg(res.msg);
  11. }
  12. $(‘#huxing’).append(‘<li class=”item_img”><div class=”operate”><i class=”toleft layui-icon layui-icon-left”></i><i class=”toright layui-icon layui-icon-right”></i><i class=”close layui-icon layui-icon-close-fill” data-id=”‘ + res.id + ‘”></i></div><img src=”‘ + res.img + ‘” class=”img” ><input type=”text” name=”huxing[alt][]” value=”” class=”layui-input” /><input type=”hidden” name=”huxing[url][]” value=”‘ + res.img + ‘” /><input type=”hidden” name=”huxing[uaid][]” value=”‘ + res.id + ‘” /></li>’);
  13. }
  14. ,error: function(){
  15. //失败重传
  16.  
  17. }
  18. });

如图,注意标注的字段

第四步、打开 /dede/album_add.php 找到

  1. //生成HTML

在它上面加入

  1. //新增图集字段 huxing
  2. if(is_array($_POST[‘huxing’][‘url’]))
  3. {
  4. $huxing = “”;
  5. foreach($_POST[‘huxing’][‘url’] as $key => $val)
  6. {
  7. $huxing .= “{dede:img ddimg=’$val‘ text='{$_POST[‘huxing’][‘alt’][$key]}’ width=” height=” uaid='{$_POST[‘huxing’][‘uaid’][$key]}’}$val{/dede:img}\r\n“;
  8. }
  9. if($huxing)
  10. {
  11. $huxing = addslashes($huxing);
  12. $upquery = “UPDATE `$addtable` SET `huxing`=’$huxing‘ WHERE aid=’$arcID‘ “;
  13. $dsql->ExecuteNoneQuery($upquery);
  14. }
  15. }

如图,注意标注的字段

第五步、打开 /dede/album_edit.php 找到

  1. //生成HTML

在它上面加入

  1. //新增图集字段 huxing
  2. $huxing = “”;
  3. if(is_array($_POST[‘huxing’][‘url’]))
  4. {
  5. foreach($_POST[‘huxing’][‘url’] as $key => $val)
  6. {
  7. $huxing .= “{dede:img ddimg=’$val‘ text='{$_POST[‘huxing’][‘alt’][$key]}’ width=” height=” uaid='{$_POST[‘huxing’][‘uaid’][$key]}’}$val{/dede:img}\r\n“;
  8. }
  9. }
  10. $huxing = addslashes($huxing);
  11. $upquery = “UPDATE `$addtable` SET `huxing`=’$huxing‘ WHERE aid=’$id‘ “;
  12. $dsql->ExecuteNoneQuery($upquery);

如图,注意标注的字段

第六步、内容页标签新写法参考上面,使用layui第一张图作为缩略图,打开 /dede/album_add.php 找到

  1. 生成文档ID

在它上面加入

  1. //使用layui第一张图作为缩略图
  2. if($ddisfirst==1 && $litpic==”)
  3. {
  4. if(isset($_POST[‘imgurls’][‘url’][0]))
  5. {
  6. $litpic = $_POST[‘imgurls’][‘url’][0];
  7. }
  8. }

如图,注意标注的字段

css 之 :nth-child 选择元素!奇偶数、第n个开始的直到最后、第1个到第n个、第n个到第n个

一、选择列表中的偶数标签 :nth-child(2n)

二、选择列表中的奇数标签 :nth-child(2n-1)

三、选择从第6个开始的,直到最后:nth-child(n+6)

四、选择第1个到第6个 :nth-child(-n+6)

一、两者结合使用,可以限制选择某一个范围,选择第6个到第9个 :nth-child(n+6):nth-child(-n+9)

apache缓慢的http拒绝服务攻击修改办法

在httpd.conf中添加 LoadModule reqtimeout_module modules/mod_reqtimeout.so

查看是否存在mod_reqtimeout.so模块

[root@localhost ~]# rpm -ql httpd |grep .so

/usr/lib64/httpd/modules/mod_reqtimeout.so

添加配置

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf

    RequestReadTimeout header=5-40,MinRate=500 body=20,MinRate=500

LoadModule reqtimeout_module modules/mod_reqtimeout.so

重启apache

service httpd restart

2021年超级巨惠买阿里云服务器攻略(全新阿里云小站篇)

本文首要讲经过阿里云小站便宜购买阿里云服务器的攻略,力求将可获取的优惠完好清晰的列出来,以供阿里云新老用户参考。云小站所提供的优惠包含代金券优惠、今天限时秒杀、新用户专享1折起、企业新用户特惠、心选建站以及其他抢手活动引荐。

地址:阿里云小站

一:代金券优惠
首要,有一张金额为20元的云服务器ECS代金券,虽然金额比较小,可是假如你是购买1核1G 1核2G这种装备比较低的阿里云服务器还是很有用的,这张20元的代金券是只需订单金额满100元即可运用,云小站上有一款1核2G5M带宽的云服务器,优惠价格是197.47元,运用这张代金券就能够抵扣20元,实际购买只需177.47元。
要留意的是:20元的代金券只能是新用户才能收取,并且有效期是7天,因此,收取了之后请赶快运用哦。

假如你需要购买的阿里云服务器装备比较高,那么这张20元的代金券作用就不是很大了,订单金额比较高的,就需要用到其他几张代金券了,别的几张可用于购买阿里云服务器运用的代金券金额分别是:100元云服务器专用代金券、300元云产品通用代金券、800元云产品通用代金券,小编现已收取过了,根据小编了解的方针,这几张代金券的运用订单限制是:100元的订单满1000元可运用,300元的订单满3000元可运用,800元的订单满8000元可运用。
需要留意的是:这几张代金券的有效期是30天,咱们能够收取了今后运用,可是这几张代金券仅限产品新购才能用,假如咱们是老用户,想用这个代金券去续费阿里云服务器运用,是用不了的。
代金券.png

二、今天限时秒杀
限时秒杀所推出的这几款阿里云服务器,小编觉得是最经济实惠的,详细装备和秒杀价额如下下图所示:
限时秒杀.png
假如你是个人用户,放的网站流量不是很高,也没有在线视频这些吃带宽比较高的内容,引荐购买秒杀价格只需320.20元的这款同享型s6实例2核4G1M带宽的秒杀云服务器。假如您是企业用户,对云服务器性能要求高一点,引荐购买秒杀价格为636.72元一年的这款装备为同享型s6实例4核8G5M带宽的云服务器,这个装备能够满意绝大部分企业用户的上云需求了。

三、新用户专享1折起
新用户1折起专区所展现的优惠云产品,首要汇集了当下阿里云其他优惠活动中所推出的一些爆款云产品及装备,也就是用户购买最多的一些阿里云服务器装备和其他云产品,目前现已上架了27款云产品,除了阿里云服务器之外,还有云数据库MySQL高可用版、国内通用短信套餐包、云数据库SQL Server、SSL证书等云产品。

小编比较引荐的是活动价格为1166.40元起,实例标准为核算型c5的这款2核4G1M带宽的阿里云服务器,放一些干流的网站是没问题的,比如企业官网之类的。
详细云服务器产品及价格如下表:

实例标准装备带宽云小站报价
同享型 s62核8G2M460.80元/1年 1209.60元/3年
同享型 s64核8G5M1910.16元/3年
通用型 g52核8G1-5M可选1576.80元/1年起
通用型 g62核8G1-5M可选1495.80元/1年起
通用型 g64核16G1-5M可选2791.80元/1年起
核算型 c62核4G1-5M可选1209.60元/1年起
核算型 c64核8G1-5M可选2219.40元/1年起
核算型 c52核4G1M1166.40元/1年
核算型 c54核8G5M2954.88元/1年

四、企业新用户特惠
企业新用户特惠是阿里云最近才在云小站上推出的全新板块,扣头低至2.6折,只需是企业认证且初次购买ECS的新用户均能够购买此版块的云服务器。这个专区所推出的云服务器首要以核算型c5 核算型c6和通用型g5 通用型g6为主,装备包含了2核4G、4核8G、2核8G、4核16G等,这些装备都是企业用户最常购买的一些装备。
别的,企业新用户特惠专区所推出的云服务器带宽均为1-10M带宽可选,这就给了企业用户在挑选带宽上很大的灵活空间,由于企业用户的网站一般来说流量都比较高,最高10M足能够敷衍网站的流量顶峰了。
详细云服务器产品及价格如下表:

实例标准装备带宽云小站报价
同享型 s62核4G1-10M可选301.44元/1年起
同享型 s62核8G1-10M可选572.88元/1年起
同享型 s64核8G1-10M可选731.28元/1年起
核算型 c52核4G1-10M可选699.84元/1年起 2021.76元/3年起
核算型 c54核8G1-10M可选1279.80元/1年起 3697.20元/3年起
同享型 s62核4G1-10M可选904.32元/3年起
同享型 s62核8G1-10M可选1484.28元/3年起
同享型 s64核8G1-10M可选2094.12元/3年起
通用型 g52核8G1M946.08元/1年
核算型 c52核4G1-10M可选1166.40元/1年起 2954.88元/3年起
核算型 c54核8G1-10M可选2133.00元/1年起 5403.60元/3年起
核算型 c58核16G1-10M可选4066.20元/1年起
核算型 c62核4G1-10M可选1209.60元/1年起
核算型 c64核8G1-10M可选2219.40元/1年起
核算型 c68核16G1-10M可选4239.00元/1年起
通用型 g62核8G1-10M可选1495.80元/1年起 3789.36元/3年起
通用型 g64核16G1-10M可选2791.80元/1年起
通用型 g68核32G1-10M可选5383.80元/1年起
通用型 g52核8G1-10M可选1576.80元/1年起
通用型 g54核16G1-10M可选2953.80元/1年起
通用型 g58核32G1-10M可选5707.80元/1年起

五、爆款云产品5折起
这个专区是阿里云专为老用户开设的优惠购买通道,虽然整体价格还是没有新用户那么便宜,可是提供优惠的产品还是比较丰富的,包含云服务器ECS、云数据库Mysql、CDN流量包、Web使用防火墙、短信套餐包,这些应该都是老用户经常用到的产品,别的还提供了商标注册、企业工商注册等服务。
详细云服务器产品及价格如下表:

实例标准装备带宽云小站报价
核算网络增强型sn1ne2核4G1M2386.80元/1年
核算网络增强型sn1ne4核8G1M4396.20元/1年
核算网络增强型sn1ne8核16G1M8415.00元/1年
内存网络增强型se1ne2核16G1M3671.40元/1年
内存网络增强型se1ne4核32G1M6965.40元/1年
内存网络增强型se1ne8核64G1M13553.40元/1年
通用网络增强型sn2ne2核8G1M2951.40元/1年
通用网络增强型sn2ne4核16G1M5525.40元/1年
通用网络增强型sn2ne8核32G1M10673.40元/1年

六、心选建站
心选建站是阿里云最近上架的建站产品专区,产品包含模板站根底版、模板站标准版、模板站企业版、定制站标准版、定制站高级版、定制站尊贵版。目前首要的优惠为云·企业官网类建站产品能够享受买一年送半年,下单抽iphone11奖品的优惠。

七、抢手活动引荐
这儿汇总了阿里云全站一切抢手的优惠活动,假如云小站上所展现的云产品或者装备不是自己想要的,你能够经过该板块了解阿里云当下正在进行哪些抢手活动,经过其他抢手活动去选购自己想要的阿里云服务器或者其他云产品。