Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

新工资系统2.04 修正版 For 2.5 BY Ninelife 最后发表日期:8-19

[复制链接]
hywuhao 发表于 2005-12-1 18:37:02 | 显示全部楼层
原帖由 ninelife 于 2005-12-1 18:31 发表
但我已经修正了啊

大家把自己的bank.php
onlinetimeupdate.php
传上来看一下好么?

九命兄是说文文的这个补丁已经不需要安装了,是吗?
我是按照8-19号的那个版本修改的,只有消息不加工资,马上我把
bank.php
onlinetimeupdate.php
传上来
回复

使用道具 举报

hywuhao 发表于 2005-12-1 18:42:14 | 显示全部楼层
onlinetimeupdate.php
  1. <?php
  2. @include DISCUZ_ROOT.'./forumdata/cache/cache_plugins.php';
  3. $online = $_DCACHE['plugins_settings']['onlinetime'];
  4. @include DISCUZ_ROOT.'./forumdata/cache/cache_plugins.php';
  5. $salarysetting = $_DCACHE['plugins_settings']['salary'];
  6. /*
  7. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  8. :: 在线时间                                                                                                            ::
  9. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  10. :: Author:  Ninelife                                                                                                         ::
  11. :: Version: 2.5F   2005/02/15 05:15                                     ::
  12. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  13. */
  14. if($discuz_uid) {
  15. $timenow = time();
  16. $monthnow = date(n);
  17. $query = $db->query("SELECT onlinetime,lastonline,onlinemonth,lastmonth FROM $tablepre"."members WHERE username='$discuz_user'");
  18. while($onlinetime = $db->fetch_array($query)) {
  19.         $last = $onlinetime[lastonline];
  20.         $lastmonth = $onlinetime[lastmonth];
  21.         }
  22. if($last==0||$lastmonth == 0||$monthnow-$lastmonth<0){
  23. $db->query("UPDATE $tablepre"."members SET lastonline = $timenow,lastmonth = $monthnow, onlinemonth = 0 WHERE username='$discuz_user'");
  24. }elseif($monthnow-$lastmonth>0){
  25. if($salarysetting[pm]){
  26.                                 $pmsubject="★工资通知★";
  27.                                 $pmmessage="亲爱的用户您好:\n为了奖励您上个月在论坛做出的杰出成绩";
  28.                                 $pmmessage.="你的工资已到帐。";
  29.                                 $pmmessage.="请到银行查收。谢谢";
  30.         $db->query("INSERT INTO $table_pms (msgfrom, msgfromid, msgtoid, folder, new, subject, dateline, message) SELECT 'SYSTEM', '0', uid, 'inbox', '1', '$pmsubject', '$timestamp', '$pmmessage' FROM $table_members ");
  31. }
  32.         $db->query("UPDATE $tablepre"."members SET lastmonth = $monthnow,onlinemonth = 0 ,lastmonthonline=onlinemonth,newpm=1");
  33. }elseif(($timenow-$last)>$online[maxtime]){
  34.         $db->query("UPDATE $tablepre"."members SET lastonline = $timenow WHERE username='$discuz_user'");
  35. }elseif(($timenow-$last)<$online[maxtime] && ($timenow-$last)>$online[mintime]){
  36. $db->query("UPDATE $tablepre"."members SET onlinetime = onlinetime + $timenow - lastonline,onlinemonth = onlinemonth + $timenow - lastonline,timeremain=timeremain + $timenow - lastonline, lastonline = $timenow WHERE username='$discuz_user'");
  37. }elseif(($timenow-$last) < 0){
  38. $db->query("UPDATE $tablepre"."members SET lastonline = $timenow WHERE username='$discuz_user'");
  39. }
  40. }
  41. function showonline($h,$m){
  42. @include DISCUZ_ROOT.'./forumdata/cache/cache_plugins.php';
  43. $online = $_DCACHE['plugins_settings']['onlinetime'];
  44. if($online[upgradetype] == 2 ){
  45.                 for($lv=0;$lv>=0;$lv++)
  46.         if((5*($lv+1)*($lv+1)+15*($lv+1))>$h)
  47.             break;
  48.         $upgrade = 5*($lv+1)*($lv+1)+15*($lv+1)-$h;
  49.         $lv = $lv + 1;
  50. }elseif($online[upgradetype]== 1 ){
  51.                         for($lv=0;$lv>=0;$lv++)
  52.         if(($online[upgradetime]*$lv)>$h)
  53.             break;
  54.         $upgrade = $online[upgradetime]*$lv-$h;
  55. }
  56. if($online[showalt]){
  57.     $alt = 'alt="等级:'.$lv.'
  58. 在线时间:'.$h.'小时'.$m.'分钟
  59. 升级还需:'.$upgrade.'小时 "';
  60. }
  61.         if($online[showform]){
  62. for($i=intval($lv/($online[sm]*$online[ms])); $i>0; $i--){
  63. echo '<a href="plugins.php?p=onlinetime"><img src=images/sun.gif '.$alt.' border=0></a>';
  64. }
  65. for($i=intval($lv%($online[sm]*$online[ms])/$online[sm]); $i>0; $i--){
  66. echo '<a href="plugins.php?p=onlinetime"><img src=images/moon.gif '.$alt.' border=0></a>';
  67. }
  68. for($i=$lv%($online[sm]*$online[ms])%$online[sm]; $i>0; $i--){
  69. echo '<a href="plugins.php?p=onlinetime"><img src=images/star.gif '.$alt.' border=0></a>';
  70. }
  71. }else{
  72. for($i=intval($lv/($online[sm]*$online[ms])); $i>0; $i--){
  73. echo '<img src=images/sun.gif '.$alt.' border=0>';
  74. }
  75. for($i=intval($lv%($online[sm]*$online[ms])/$online[sm]); $i>0; $i--){
  76. echo '<img src=images/moon.gif '.$alt.' border=0>';
  77. }
  78. for($i=$lv%($online[sm]*$online[ms])%$online[sm]; $i>0; $i--){
  79. echo '<img src=images/star.gif '.$alt.' border=0>';
  80. }
  81. }
  82. }
  83. ?>
复制代码

bank.php在附件
还有一个问题,版主管理工资隔一段时间(大概一两天,具体没统计)总是会自动清零(包括管理记录也清零)这是什么原因?

[ 本帖最后由 hywuhao 于 2005-12-1 18:45 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

 楼主| ninelife 发表于 2005-12-1 19:28:36 | 显示全部楼层
原帖由 hywuhao 于 2005-12-1 18:42 发表
onlinetimeupdate.php
[code]<?php
@include DISCUZ_ROOT.'./forumdata/cache/cache_plugins.php';
$online = $_DCACHE['plugins_settings']['onlinetime'];
@include DISCUZ_ROOT.'./forumdata/cache/cac ...

重新下载在线时间附件,你的文件版本过期了

关于管理纪录的莫名清除,原因不明,但估计不是我的问题
回复

使用道具 举报

Magic.factory 发表于 2005-12-1 19:33:53 | 显示全部楼层
你那在线时间.怎么好多人。一装完之后。.那个星星月亮图标.就出问题。.

碰到过几个人有这问题了。都找我。.........
汗.说是我写的。..好郁闷




【动作】 嚷道:“新来的,别乱欺负哦,灌水先”
回复

使用道具 举报

fhg007 发表于 2005-12-1 19:52:29 | 显示全部楼层
好象有人说下个月会发不出去
回复

使用道具 举报

shuyufeng 发表于 2005-12-1 20:20:10 | 显示全部楼层
原帖由 ninelife 于 2005-12-1 17:41 发表
收到通知了?那就好...请你们执行一下这个语句
update cdb_members set lastmonthonline=onlinemonth
看看有上月工资显示可以领吗?(前提是如果你的管理员张浩已经累积一定的在线时间)
如果不行再执行这句
...


这一句的执行结果只是把本月的工资数额带到上月去,我这里可以执行.这一句也可以写成
update cdb_members set lastmonthonline=onlinemonth*30

后面的数字可以是任意值,根据本月的天数来算,比如这个月已经过了3天,就可以写成
update cdb_members set lastmonthonline=onlinemonth*10

这样就可以尽可能接近的把以前的工资弥补过来了

但是工资发不了的问题怎么解决呢?我在bank.php里按照上面一位朋友的说法,把存款改成了现金计算,但是执行以后,页面变成了空白页.
回复

使用道具 举报

 楼主| ninelife 发表于 2005-12-1 20:45:19 | 显示全部楼层

回复 #454 Magic.factory 的帖子

有这回事么,在线时间好像好长时间没出现什么问题了,安装方面的解答么最近我也没时间解答,找我的人不多不像以前那么多呵呵
回复

使用道具 举报

 楼主| ninelife 发表于 2005-12-1 20:46:47 | 显示全部楼层

回复 #455 fhg007 的帖子

嗯...这个月你收到了么?
下个月的问题我会考虑的,这个月应该不会像前面几个月那么忙
回复

使用道具 举报

shuyufeng 发表于 2005-12-1 20:47:47 | 显示全部楼层
原帖由 ninelife 于 2005-12-1 18:31 发表
但我已经修正了啊

大家把自己的bank.php
onlinetimeupdate.php
传上来看一下好么?


我又对照几个版本看了一下,你只修正了newpm,没有修正 $lastmonthonline

造成现在的问题在于:
1,工资插件和在线时间结合的比较紧,稍有变动都会使功能受影响
2,工资插件和在线时间插件你都升级过很多次,打过很多补丁,但是没有清楚的说明每一个工资插件升级的版本,分别对应的是哪一个在线时间插件升级的版本,以至于很多会员安装错乱.至少我是没看明白.
3,两个插件升级或打了补丁以后,都没有作出相应的详细说明,至少应该在顶楼把步骤写清楚,而非顶楼的一些你自己的回复贴中的步骤,真是把人弄得头晕眼花,还不如干脆全部统一到顶楼上去.
4,升级过多,加上你生病,把你自己都弄昏了,其中一些小问题,也许在调试的时候,你都弄好了,但是没有在帖子的说明中写清楚,或者是遗漏.

建议:
建议你把这两个插件重新整理一遍,把不相关的帖子内容都清理掉,留一个最终的无错步骤,保留到顶楼,两个插件的说明要详细,并且关联紧密.我理解写插件不容易,要花很多心思和功夫,也谢谢你对DISCUZ的贡献,但是我个人觉得,既然发出来了,就要对使用者负责,条理清楚明了,一目了然,这样大家使用起来方便,你以后完善功能也会更加方便.

同时也愿你的病快点好起来.
我的论坛将近5000会员,32W的帖子,也不算个小论坛了,大家已经2个月没领到工资了,管理层已经受到了很大的压力,语言如有不妥之处,还请原谅.
回复

使用道具 举报

 楼主| ninelife 发表于 2005-12-1 20:48:12 | 显示全部楼层

回复 #456 shuyufeng 的帖子

我只是测试数据是否可以顺利读出,执行这个语句后你可以领工资了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-23 02:39 , Processed in 0.024569 second(s), 2 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表