作者归档:佛山企业网站设计

DEDE判断文章是否有‘头条’、‘推荐’等属性,然后加上相应的小图标或标志

以下的代码的目的是给加了自定义属性的文章动态的添加一个相应的小图标或者其他的标志,如果只给文章循环列表加一个flag=’c’这类的 属性,在最终的文章列表里只能显示加了有相应自定义属性的文章,而其他文章或加了其他属性的文章则不会显示出来,这显然不是我想要的效果,我想要的效果是不管文章加没有加属性或者加的是什么属性,都要在文章列表里显示出来,并且将加有属性的文章用相应的图标或标准区分开来。效果图如下:

第一种样式:
[field:flag runphp='yes']
$a=explode(',','@me');
if($a[0]=='c'){
@me='<span class="badge pull-right" style="background-color:#00F03D">推荐</span>';
}else if($a[0]=='h'){
@me='<span class="badge pull-right" style="background-color:#8080FF">头条</span>';
}else if($a[0]=='a'){
@me='<span class="badge pull-right" style="background-color:#FF8040">热门</span>';
}else{
@me='';
}
[/field:flag]

第二种样式:
[field:flag runphp='yes']
if(stristr(@me,"c")) @me = "[^_^推荐]";
else if(stristr(@me,"a")) @me = "[^_^热门]";
else if(stristr(@me,"h")) @me = "[^_^头条]";
else @me = '';
[/field:flag]

织梦DeDeCMS v5.7添加自定义属性的实现方法(图文详解)

很多时候大家做网站都需要通过建立N多的二级栏目达到文章的分类,栏目少还好,如果一个栏目牵扯到2级或者3级的栏目,那么随着栏目的增多,日后添加文章都是一个非常大的困难,今天小编通过实战教给大家如果通过添加文章自定义属性来解决繁琐的文章分类问题。

自定义属性使用的好,可以完全解决一篇文章属于多个栏目,或者栏目下出现2-3级的子栏目等问题!

环境:目前DEDE更新到了5.7的版本,在此之前的老版本就不在讲述了,我们以DEDE5.7作为修改的基础。

首先,我们先看一下如何批量添加自定义的文章属性。

比较安全和快速的添加方式是通过SQL写入的方式:后台-系统-SQL命令行工具。

 

insert into `dede_arcatt`(sortid,att,attname) values(9,’d’,’标签’);
alter table `dede_archives` modify `flag` set (‘c’,’h’,’p’,’f’,’s’,’j’,’a’,’b’,’d’) default NULL;

 

1

这里我们需要说一下,因为DEDE本身就已经有了8个默认属性,所以我们从第9个栏目开始增加,往后以此类推,“d”是区分我们前台通过flag=’d’来调用时候的标签,只要不重复即可。

 

上面的是我们添加一个属性,如果我们有非常多的属性来代替二级三级栏目,如何操作呢?直接看实力

 

insert into `dede_arcatt`(sortid,att,attname) values(9,’d’,’标签1′);
insert into `dede_arcatt`(sortid,att,attname) values(9,’d1′,’标签2′);
insert into `dede_arcatt`(sortid,att,attname) values(9,’d2′,’标签3′);

……

alter table `dede_archives` modify `flag` set (‘c’,’h’,’p’,’f’,’s’,’j’,’a’,’b’,’d’,’d1′,’d2′) default NULL;

 

 

通过这个方法就能完全解决批量添加文章属性的问题!

2

我们可以看到,这个就是我们批量增加后的效果,但是大家有没有发现,添加的属性已经和以前的自带的属性混在了一起,小编添加起来会很麻烦,我们在这里给一个小技巧:

我们在默认的属性标签和需要添加的属性标签前面增加一个不用属性标签!然后我们通过数据库里把这个标签做一点手脚。

3 4 5

大家有没有看懂呢?其实就是利用这个小符号和换行,把自己添加的文章自定义属性给隔离开,让小编添加内容的时候可以一目了然。

关于利用这个自定义属性完美操作栏目分类的问题,我们会在接下来的内容中慢慢不愁。

织梦dedecms手机版 上一篇 下一篇出错Request Error!

最新的织梦dedecms程序手机版下一篇变上一篇而且还出错Request Error!,这是因为官方写错了一个地方

打开 /include/arc.archives.class.php 找到

$mlink = ‘view.php?aid=’.$preRow[‘id’];

 

注意:这个文件里面有2个上面的代码,真正要改的是大概在 839 行

改成

$mlink = ‘view.php?aid=’.$nextRow[‘id’];

 

该实例调用函数并输出 < 1 的随机值

<!DOCTYPE html>
<html>
<body>

<p>该实例调用函数并输出 < 1 的随机值:</p>

<p id=”demo”>随机数</p>
<p><br></p>

<h1>比较a 和 b 两个随机数的大小</h1>
<span id=”maxwo”>比较a 和 b 两个随机数的大小,循环</span>
<hr>
<h2>提示2: 此次生成的随机数A为</h2>
<span id=”aa”></span>
<hr>
<h2>提示3: 此次生成的随机数B为</h2>
<span id=”bb”></span>
<script>
function myFunction() {
return Math.random();
}

document.getElementById(“demo”).innerHTML = myFunction();

var a=Math.random();
var b=Math.random();
function nB(){

if(a>b){
return “A 大于 B”;

}
else{
return “B 大于 A”;
}

}
document.getElementById(“maxwo”).innerHTML = nB();
document.getElementById(“aa”).innerHTML=a;
document.getElementById(“bb”).innerHTML=b;
</script>

</body>
</html>

DEDECMS 自定义表单导出EXCEL的方法-新增功能(hero亲测整理)

【1.第一种方法】–华哥强烈推荐你使用第一种! by www.maxwo.com
首先在后台找到/dede/templets/diy_main.htm,查找:

<a href=”../plus/diy.php?action=list&diyid={dede:field.diyid/}” target=”_blank”><img src=’images/gtk-tmp.png’ title=’预览’ alt=’预览’ />前台预览</a>

在后面加上

&nbsp;|&nbsp;<a href=’diy_list.php?action=excel&diyid={dede:field.diyid/}’ target=”_blank”>导出表单Excel</a>

2、修改diy_list.php,在其中搜索: 继续阅读

dedecms织梦jquery+ajax方式提交自定义表单-可用

我们可以借助jquery ajax提交dedecms自定义表单到后台。

此例只做为参考,实际项目中根据自己的情况酌情修改。
html部分
<form action=”/plus/diy.php” enctype=”multipart/form-data” method=”post” id=”diyform”>
<input type=”hidden” name=”action” value=”post” />
<input type=”hidden” name=”diyid” value=”1″ />
<input type=”hidden” name=”do” value=”2″ />
<input type=”hidden” name=”dede_fields” value=”mail_name,text;mail_phone;mail_content,multitext” />
<input type=”hidden” name=”dede_fieldshash” value=”86d34525cf75f8652022f6446152028d” />
<input type=”hidden” name=”setup” value=”ajax” />
<div class=”mail_rdd”>
<div class=”mail_content”>
<table border=”1″ width=”100%” class=”mail_form”>
<tr>
<td width=”50″>
姓名:
</td>
<td class=”mail_input_bg1″>
<input type=”text” name=”mail_name” id=”mail_name” maxlength=”20″ />
</td>
</tr>
<tr>
<td>
电话:
</td>
<td class=”mail_input_bg1″>
<input type=”text” name=”mail_phone” id=”mail_phone” maxlength=”20″ />
</td>
</tr>
<tr style=”height:240px”>
<td>
留言:
</td>
<td class=”mail_input_bg3″>
<textarea name=”mail_content” id=”mail_content”></textarea>
</td>
</tr>
</table>
<div class=”mail_button_bar”>
<div class=”mail_button confirm” onclick=”send()”>
</div>
</div>
</div>
</div>
</form>

js部分
<script type=”text/javascript” src=”http://apps.bdimg.com/libs/jquery/1.6.4/jquery.min.js”></script>
<script>
function send() {
$.ajax({
cache: true,
type: “POST”,
url: “/plus/diy.php”,
data: $(‘#mail_form’).serialize(), // 你的form id www.lol9.cn织梦模板网
success: function(data) {
if (data == “success”) {
alert(‘发送成功!’);
} else {
alert(‘发送失败!’);
}
}
});
}
</script>

 

/plus/diy.php 修改
找到

showMsg($bkmsg,-1,0,3000);

改成
if($setup == ‘ajax’)
{
echo “success”;
exit;
}
else
{
showMsg($bkmsg,-1,0,3000);
}

织梦dedecms自定义表单通过ajax提交

分享下 通过 自定义表单通过ajax判断,提交不用跳转页面,提高用户体验。具体方法如下:
html表单代码部分,就提交按钮改成botton,,添加onclick事件

 

前端表单代码
<form action=”javascript:;” enctype=”multipart/form-data” method=”post”>
<input type=”hidden” name=”action” value=”post” />
<input type=”hidden” name=”diyid” value=”1″ />
<input type=”hidden” name=”do” value=”2″ />

<label>姓名:<input type=”text” id=”name” name=”name” value=”” /></label>
<label>电话:<input type=”text” id=”tel” name=”tel” value=”” /></label>
<label>手机:<input type=”text” id=”iphone” name=”iphone” value=”” /></label>
<label>邮箱:<input type=”text” id=”email” name=”email” value=”” /></label>
<table>
<tr>
<td valign=”top”>留言:</td>
<td><textarea id=”liuyan” name=”liuyan”></textarea></td>
</tr>
</table>
<input type=”hidden” name=”dede_fields” value=”name,textchar;tel,textchar;iphone,textchar;email,textchar;liuyan,multitext” />
<input type=”button” class=”submit fr” value=”提 交” onclick=”add_ajaxmessage()”/>
</form>

 

js代码(这个代码之前一定要引入jQuery库):

<script id=”jquery_183″ type=”text/javascript” class=”library” src=”http://code.jquery.com/jquery-1.8.3.min.js”></script>

<script>
function add_ajaxmessage(){

var name=document.getElementById(“name”);
var tel =document.getElementById(“tel”);
var iphone=document.getElementById(“iphone”);
var email=document.getElementById(“email”);
var liuyan=document.getElementById(“liuyan”);

//定义变量接收上面表单每项的值和几个dede隐藏的input的值
var dataString = ‘name=’+ name.value + ‘&tel=’ + tel.value + ‘&iphone=’ + iphone.value + ‘&email=’ + email.value + ‘&liuyan=’+ liuyan.value +’&action=post’+ ‘&diyid=1&do=2&dede_fields=name,textchar;tel,textchar;iphone,textchar;email,textchar;liuyan,multitext’;
$.ajax({
type: “POST”,
url: “/plus/diy.php”, //提交到后台文件
data: dataString, //传值
success: function(data) {

alert(data);//成功打印PHP返回的值

}
});
return false;

}

</script>

 

 

 

修改diy.php文件

找到:if(!empty($dede_fields))
{
//在里面加入判断语句,不判断也可以

if($name==””){
echo “请填写您的姓名!”;//注意:输出用echo输出,不要用showMsg();
exit();
}
}

找到:$goto = !empty($cfg_cmspath) ? $cfg_cmspath : ‘/’;
$bkmsg = ‘发布成功,请等待管理员处理…’;
这两句,改成:echo “提交成功!”;

删掉下面这一句:showmsg($bkmsg, $goto);

使用phpexcel导出到xls文件的时候出现乱码解决

<?php
include ‘global.php’;
$ids = $_GET[‘ids’];

$sql = “select * from crm_cost_end where id in ( {$ids} )”;
$result = $db->findAll($sql);
//echo $result[1][‘sn’];

//创建一个excel对象
$objPHPExcel = new PHPExcel();
// Set properties

$objPHPExcel->getProperties()->setCreator(“ctos”)
->setLastModifiedBy(“ctos”)
->setTitle(“Office 2007 XLSX Test Document”)
->setSubject(“Office 2007 XLSX Test Document”)
->setDescription(“Test document for Office 2007 XLSX, generated using PHP classes.”)
->setKeywords(“office 2007 openxml php”)
->setCategory(“Test result file”);

//set width
$objPHPExcel->getActiveSheet()->getColumnDimension(‘A’)->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘B’)->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘C’)->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘D’)->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘E’)->setWidth(50);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘F’)->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘G’)->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘H’)->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘I’)->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘J’)->setWidth(30); 继续阅读

dede怎么让同一篇文章在两个(或者多个)栏目显示呢

我们在用织梦建站的过程中可能会遇到要分类   根据价格  风格  模型等,我们就需要建立不同的栏目,那每个栏目下边都有很多一样的文章,重复度会很高,那么我们应该怎么办呢?不知道您在发布文章的时候是否发现有个文章副栏目的选项,通过这个我们就可以实现同一篇文章出现在多个栏目里边喽!下来我把自己的经验分享一下:

1.首先确定某一篇文章要放到哪个栏目下边

选择栏目
2.发布一篇文章 进行设置
选择副栏目
3.点击副栏目 进行选择
确定栏目

4.然后保存就可以喽

dedecms注入漏洞filter.inc.php,pm.php,mtypes.php的解决方法

补丁文件:/include/filter.inc.php

补丁来源:阿里云云盾自研

漏洞描述:dedecms的变量覆盖漏洞导致注入漏洞,/include/filter.inc.php这个文件在系统配置文件之后,里面有foreach循环创建变量,所以可以覆盖系统变量, 在/member目录的大部分文件都包含这么一个文件,也就是说/member目录的大部分文件都受此漏洞影响可以覆盖系统变量

解决方法
  1. 搜索如下代码(46行):
      1. return $svar;

    如下图:

    技术分享

  2. 修改 46 行代码,修改代码如下:
      1. return addslashes($svar);

    修改后如下图

    技术分享


补丁文件:/member/pm.php

补丁来源:阿里云云盾自研

漏洞描述:dedecms会员中心注入漏洞

解决方法
  1. 搜索如下代码(65 行):
      1. $row = $dsql->GetOne("SELECT * FROM `#@__member_pms` WHERE id=‘$id‘ AND (fromid=‘{$cfg_ml->M_ID}‘ OR toid=‘{$cfg_ml->M_ID}‘)");

    如下图:

    技术分享

  2. 在 65 行代码前,添加代码如下:
      1. $id = intval($id);

    修改后如下图

    技术分享


补丁文件:/member/mtypes.php

补丁来源:阿里云云盾自研

漏洞描述:dedecms会员中心注入漏洞

解决方法
  1. 搜索如下代码(71 行):
      1. $query = "UPDATE `#@__mtypes` SET mtypename=‘$name‘ WHERE mtypeid=‘$id‘ AND mid=‘$cfg_ml->M_ID‘";

    如下图:

    技术分享

  2. 在 71 行代码前,添加代码如下:
      1. $id = intval($id);

    修改后如下图

    技术分享