2015年12月

1、修改模板页面member\templets\index.htm头部加入js

< script language = "javascript" >
function ajaxSign() {
    $.ajax({
        type: "get",
        url: "ajax_sign.php",
        data: {
            uid: '<?php echo $cfg_ml->M_ID;?>',
            time: new Date()
        },
        success: function(data) {
            alert(data);
            if (data != '今日已签到,请勿重复提交!' || data != 'ERROR') {
                location.reload(true);
            }
        }
    });
} < /script>/

2、然后在需要显示的部分 加入

<a href="javascript:ajaxSign();" target="_self">签到</a><span>( 每天签到,赠送金币!)</span>

3、上传ajax_sign.php到member目录(可以自己建立个文本文件然后复制以下内容到文本文件里,最后该文件改名为ajax_sign.php,注意后缀名)

ajax_sign.php文件的内容为:

<?php
require_once(dirname(__FILE__).'/config.php');
$uid = isset($uid) ? (int)$uid : '';AjaxHead();
if(!empty($uid)) {    $sql = "SELECT * FROM #@__member WHERE `mid`='{$uid}' LIMIT 1";
    $dsql->Execute('me',$sql);    $arr = $dsql->GetArray('me');
     if ($arr) {  $signdate = date('Y-m-d', $arr['signtime']);
       if ($signdate < date('Y-m-d')) {   $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET `scores`=`scores`+" . $GLOBALS['cfg_score_sign'] . ", `signtime`='" . time() . "' WHERE `mid`='$uid' LIMIT 1");   echo '签到成功!积分增加' . $GLOBALS['cfg_score_sign'] . '个';
  } else {
     echo '今日已签到,请勿重复提交!';
       }        
   } else {  
    echo 'ERROR';
     }
 }

4、打开phpmyadmin,(不会用数据库的自己百度。最简单的方法,去百度一下phpadmin软件下载解压到网站根目录,然后在浏览器输入http://你的网址/phpmyadmin,PS:具体文件名和路径自己查找)

在dede_member中增加一个字段 signtime 类型为INT 长度值为:12

5、 这是最后一步,也是关键的一步: 在系统基本设置 增加新的 积分设定 :

变量名称填:cfg_score_sign

变量类型:文本

参数说明:会员签到所得积分

所属组:互动设置

设置完成后点击 保存变量即可

 

 

 

 

 

下面介绍dedecms会员空间如何调用会员头衔(积分头衔)。
首先,在站点根目录的include文件夹里找到extend.func.php这个文件,这个文件是用来添加功能扩展方法的。
用编辑器打开extend.func.php,在最后面添加一个函数:
function Getusertitle($mid)
{
    global $dsql; 
    $row = $dsql->GetOne("SELECT scores from `#@__member` where mid='$mid' ");
    $scores=$row['scores'];
    
    $arr = $dsql->GetOne("SELECT titles from `#@__scores` where integral <='$scores' order by integral desc");
    $title=$arr['titles'];
    echo $title;
    }

保存后覆盖原来的文件。

保存好后就可以调用它了,下面说明一下如何调用:
例:
比如我们要再会员空间的首页调用会员头衔,我们想显示在左侧,效果如下
用户昵称:** 最后登录:12-01-12 11:43 会员等级:注册会员 会员积分:132 分 会员头衔:少校 空间访问:297 次
那么,我们在会员空间模板里修改,比如我使用的是默认模板person,那么,我们修改目录\member\space\person下的side_icon.htm文件,用编辑器打开side_icon.htm,修改如下
<dd style='margin-top:10px;'>&nbsp;用户昵称:{dede:var.uname /}</dd>
            <dd>&nbsp;最后登录:{dede:var.logintime function="MyDate('y-m-d h:i',@me)" /}</dd>
            <dd>&nbsp;会员等级:{dede:var.membername/}</dd>
            <dd>&nbsp;会员积分:{dede:var.scores/} 分</dd>
            <dd>会员头衔:<?php Getusertitle($cfg_ml->M_ID);?></dd>
            <dd>&nbsp;空间访问:{dede:var.homecount/} 次</dd>
我在原来的基础上增加了一行 :
会员头衔:<?php Getusertitle($row['mid']);?>
保存好后,上传,就OK了。

之前一直想做一个美女图片的网站,但是苦于没有足够的硬盘和带宽一直搁浅,直到一天发现了贴图库这个网站,先点个赞!

贴图库提供免费的图片外链服务,而且付费后还可以绑定自己的域名,灰常好。

当然,最重要的是有API!有API!有API啊! 重要的事情说三遍。全自动上传不是梦!

啰嗦一大堆,下边直接上方法。

戳这里下载插件 密码: 8trs

先决条件:需要会用火车头。

首先下载压缩包

1、把压缩包里的posttietu.php放到火车头的\Plugins\LocoySpider文件夹里,任务的高级选项卡里php插件选择posttietu

2、本地配置一个php环境把uptietu.php放进去;

3、打开posttietu.php对照文件里的注释修改tokens和相册ID

4、可以开火车去浪了~

当然,如果php环境不好弄的可以直接找我,我的百度app可以先用着。

 

PS:针对不同系统下运行火车头可能会导致插件报错的问题

在插件第一行加入如下代码即可解决

 error_reporting(E_ERROR | E_WARNING | E_PARSE);

 

2016-3-21
PS:因某些不可抗的原因,在插件里把com域名修改为cn的

之前有想过做个美女图片站试试,但是一直没有机会,主要还是因为太吃硬盘和带宽的事。

偶然在嘀嗒萌工作过程中得知了贴图库这个东西,真是个好东西啊。

官方提供了api接口,只需要对接一下,就可以把图片发到贴图库了。

我之前也一直很推崇twcms,原因就在这里就不讲了,不是重点,直接上代码

打开admin/control/article_control.class.php 文件

大约在600行左右找到

private function auto_pic($table, $uid, $id = 0) {

将整个function替换为

private function auto_pic($table, $uid, $id = 0) {
		$pic_arr = $this->cms_content_attach->find_fetch(array('id'=>$id, 'uid'=>$uid, 'isimage'=>1), array(), 0, 1);
		$pic_arr = current($pic_arr);
		$cfg = $this->runtime->xget();
		$path = $pic_arr['filepath'];
		$pic = image::thumb_name($path);
		$src_file = TWCMS_PATH.$path;
		$dst_file = TWCMS_PATH.$pic;
		if(!is_file($dst_file)) {
			image::thumb($src_file, $dst_file, $cfg['thumb_'.$table.'_w'], $cfg['thumb_'.$table.'_h'], $cfg['thumb_type'], $cfg['thumb_quality']);
		}
		return $path;
	}

对接的后台发布路径

 

打开/twcms/model/cms_content_attach_model.class.php 文件

大约在45行找到

public function remote_down($uri, &$conf) {

替换整个try为

try{
			// 抓取远程图片
			$context = stream_context_create(array('http'=>array('follow_location'=>false, 'timeout'=>60))); // 不重定向抓取
			//$img = file_get_contents($uri, false, $context);

			// 图片大小验证
			$filesize = strlen($img);
			$maxSize = $conf['maxSize']*1024;
			if($filesize > $maxSize) return FALSE;

			// 创建图片目录
			//$dir = date('Ym/d/');
			//$updir = $conf['upDir'].$dir;
			//if(!is_dir($updir) && !mkdir($updir, 0755, true)) {
			//	return FALSE;
			//}

			// 图片写入自己的服务器
			//$filepath = $dir.date('His').uniqid().random(6, 3).'.'.$fileExt;
			//if(!file_put_contents($conf['upDir'].$filepath, $img)) return FALSE;
			
			//图片上传到贴图库
			$time60 =time()+60;
			$tokens = '贴图库获取到token';
			$post_data = array(  
			'Token='.$tokens,
			'deadline='.$time60,  
			'aid=相册ID',
			'fileurl='.$uri,
			); 
			//print_r($post_data);
			 $post_data = implode('&',$post_data);  
			 $url='http://up.tietuku.com/';  
			 $ch = curl_init();  
			 curl_setopt($ch, CURLOPT_POST, 1);  
			 curl_setopt($ch, CURLOPT_URL,$url);  
			 //传递一个作为HTTP “POST”操作的所有数据的字符串。  
			 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);  
			 ob_start();  
			 curl_exec($ch);  
			 $result = ob_get_contents() ;  
			 ob_end_clean(); 
			 //开始解析json
			 $exiturl=json_decode($result); 
			 //print_r($exiturl);
			 //echo '这是一个贴图库的上传演示,用以集成到cms编辑器内实现自动转存图片的功能。<br>图片地址为:'.$exiturl->linkurl;
			
			
			//图片上传结束
			$filepath = $exiturl->linkurl;
			// 记录到数据库
			$data = array(
				'cid' => $conf['cid'],
				'uid' => $conf['uid'],
				'id' => $conf['id'],
				'filename' => basename($uri),
				'filetype' => $fileExt,
				'filesize' => $filesize,
				'filepath' => $filepath,
				'dateline' => $_ENV['_time'],
				'downloads' => 0,
				'isimage' => 1,
			);
			if(!$this->create($data)) return FALSE;

			return $exiturl->linkurl;
		}

token在这里获取http://open.tietuku.com/createtoken

对应相册ID,获取token,贴入到相应位置。

进入后台清除缓存。

发布文章的时候选择远程图片本地化,会直接把图片转存到贴图库。

补:使用此方法后不得开启图片水印功能

 

 

2016-01-13

PS:由于受PHP运行和服务器配置限制,此方法已经放弃,改用火车头插件模式,保证100%不失败。传送门http://www.skyerblog.com/article/2705.html