AL8 Forum
   登錄註冊幫助


標題: [D4.1] [原創] 增加三個投票功能
 小康@HK
 0027215
Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7
點擊查看 小康@HK 的詳細資料

頭銜: Moderator

暱稱: 小康

帖子: 1219

精華: 0

積分: 13955 點

現金: 261 元

存款: 1019 元

閱讀權限: 100

註冊: 2005-7-26

來自: HK

狀態: 離線
 
發表於 2006-11-22 22:34  資料  個人空間  短消息  加為好友  添加 小康@HK 為MSN好友 通過MSN和 小康@HK 交談 ICQ 狀態 Yahoo!
[原創] 增加三個投票功能

插件名稱: 增加三個投票功能
適用版本: 4.1
作  者: 小康
修  改: topicadmin.php、./include/editpost.inc.php、viewhtread.htm、post_editpost.htm
用  途:
1) 版主以上可清除指定會員的投票記錄
2) 版主以上可清除指定投票選項記錄
3) 作者可增加投票選項(原本的也可以刪除投票選項)

1) 修改viewhtread模版,找:
<option value="repair">{lang admin_repair}</option>
下加:
<!--{if $polloptions}--><option value="cleanpoll">清除投票記錄</option><!--{/if}-->
*******************************************************************
2) 修改topicadmin.php,找:
} else {

        showmessage('undefined_action', NULL, 'HALTED');

}
上加:
} elseif($action == 'cleanpoll') {

        if (!$thread['poll']) showmessage('undefined_action', NULL, 'HALTED');
        $query = $db->query("SELECT pollopts FROM {$tablepre}polls WHERE tid='$tid'");
        $pollarray = unserialize($db->result($query, 0));
        if(!is_array($pollarray) || !$pollarray) {
                showmessage('undefined_action', NULL, 'HALTED');
        }

        if (!$pollarray[voters] && !$pollarray[max]) showmessage("找不到投票的記錄,請返回!");

        if(!submitcheck('cleanmembersubmit') && !submitcheck('cleanoptionsubmit')) {

                foreach ($pollarray[voters] AS $v) {
                        if (!($n++ % 4)) $cleanmembers .= "\n</tr><tr>";
                        $cleanmembers .= "\n<td width=\"20%\"><input type=\"checkbox\" name=\"delete[]\" value=\"$v\"> <a href=\"viewpro.php?username=".rawurlencode($v)."\" target=\"_blank\">$v</a></td>";
                }

                $polloptions = array();
                foreach($pollarray['options'] as $key=>$option) {
                        $polloptions[] = array (
                                'option'        => dhtmlspecialchars(stripslashes($option[0])),
                                'votes'                => $option[1],
                                'width'                => @round($option[1] * 300 / $pollopts['max']) + 2,
                                'percent'        => @sprintf ("%01.2f", $option[1] * 100  / $pollarray['total']),
                                'voters'        => $pollarray['voterlist'][$key]
                                );
                }
                include template('topicadmin_cleanpoll');

        } elseif (submitcheck('cleanoptionsubmit')) {

                if (!$delete) showmessage("請選擇要清除的投票選項記錄,請返回!");
                $delid = $delslast[user] = $alldel = array();
                foreach ($delete AS $dels) {
                        $pollarray[total] = max(0, $pollarray[total]-$pollarray['options'][$dels][1]);
                        $pollarray['options'][$dels][1] = 0;
                        if ($pollarray[voterlist] && $cleanmem) {
                                $delsarray = explode('<option>', str_replace('</option>', '', $pollarray[voterlist][$dels]));
                                unset($delsarray[0], $delsarray[1]);
                                $alldel = array_unique(array_merge($alldel, $delsarray));
                                foreach ($delsarray AS $alluser) {
                                        $delslast[user][] = $alluser;
                                        $delslast[num][$alluser]++;
                                }
                        }
                }
                if ($pollarray[voterlist] && $cleanmem) {

                        foreach ($alldel AS $user) {
                                foreach ($pollarray[voterlist] AS $vln => $vl) {
                                        if (ereg("<option>".$user."</option>", $vl)) {
                                                $delsall[$user]++;
                                        }
                                }
                        }

                        $otheropt = array();
                        $delslast[user] = array_unique($delslast[user]);
                        foreach ($delslast[user] AS $user) {
                                if ($delsall[$user] <= $delslast[num][$user]) {
                                        $deluser = array_keys($pollarray[voters], $user);
                                        unset($pollarray[voters][$deluser[0]]);
                                }
                        }
                        foreach ($delete AS $dels) {
                                unset($pollarray[voterlist][$dels]);
                        }
                }
                $pollarray['max'] = 0;
                foreach($pollarray['options'] as $id) {
                        if($id[1] > $pollarray['max']) {
                                $pollarray['max'] = $id[1];
                        }
                }

                $pollopts = addslashes(serialize($pollarray));
                $db->query("UPDATE {$tablepre}polls SET pollopts='$pollopts' WHERE tid='$tid'", 'UNBUFFERED');

                showmessage("成功清除的指定投票選項記錄!", "viewthread.php?tid=$tid");

        } elseif (submitcheck('cleanmembersubmit')) {

                if (!$delete) showmessage("請選擇要清除的記錄,請返回!");
                $delid = array();
                foreach ($delete AS $dels) {
                        if (in_array($dels, $pollarray[voters])) {
                                $delids = array_keys($pollarray[voters], $dels);
                                unset($pollarray[voters][$delids[0]]);
                                if ($pollarray[voterlist]) {
                                        foreach ($pollarray[voterlist] AS $vln => $vl) {
                                                if (ereg("<option>".$dels."</option>", $vl)) {
                                                        $pollarray[voterlist][$vln] = str_replace("<option>".$dels."</option>", "", $pollarray[voterlist][$vln]);
                                                        $deloption++;
                                                        $pollarray[options][$vln][1]--;
                                                }
                                        }
                                }
                        }
                }
                $pollarray['max'] = 0;
                foreach($pollarray['options'] as $id) {
                        if($id[1] > $pollarray['max']) {
                                $pollarray['max'] = $id[1];
                        }
                }
                $pollarray[total] = max(0, $pollarray[total]-$deloption);

                if (!$pollarray[voters]) {
                        unset($pollarray[voterlist]);
                }

                $pollopts = addslashes(serialize($pollarray));
                $db->query("UPDATE {$tablepre}polls SET pollopts='$pollopts' WHERE tid='$tid'", 'UNBUFFERED');

                showmessage("成功清除的指定會員投票記錄!", "viewthread.php?tid=$tid");

        } else {

        }
*******************************************************************
3) 修改./include/editpost.inc.php,找:
$polloptions = unserialize($db->result($query, 0));
下加:
$pollnum = count($polloptions['options']);
$pollremain = $maxpolloptions-$pollnum;
找:
$pollarray['options'][$key][0] = $option;
下加:
$pollarray['options'][$key][1] = !$pollarray['options'][$key][1] ? 0 : $pollarray['options'][$key][1];
*******************************************************************
4) 修改post_editpost模版,找:
        <!--{loop $polloptions['options'] $key $option}-->
                <input type="text" name="polloptions[$key]" value="$option[0]" size="55"><br>
        <!--{/loop}-->

換成:
        <!--{loop $polloptions['options'] $key $option}-->
                <input type="text" name="polloptions[$key]" value="$option[0]" size="55"> <a href="javascript:deloption($key)">[-]</a><br>
        <!--{/loop}-->
        <span id="addoptionhtml"></span>
        <a href="javascript:addoption()"><span id="remaindis">[ + 增加投票選項 ({$pollremain}/{$maxpolloptions}) ]</span></a>
        <input type="hidden" name="newoption" value="0">
        <script language="javascript">
        var remain = $pollremain;
        var maxpolloptions = $maxpolloptions;
        var pollnum = $pollnum;
        var newoption = 0;
        function addoption() {
                if (remain > 0) {
                        remain--;
                        newoption++;
                        addoptionhtml.innerHTML += '<input type="text" name="polloptions['+Math.floor(pollnum+newoption-1)+']" value="" size="55"> <a href="javascript:deloption('+Math.floor(pollnum+newoption-1)+')">[-]</a> <font color="red">+</font><br>';
                        remaindis.innerText = '[ + 增加投票選項 ('+remain+'/'+maxpolloptions+') ]';
                        document.all.newoption.value = newoption;
                }
        }
        function deloption(key) {
                document.all['polloptions['+key+']'].value = '';
        }
        </script>

*******************************************************************
5) 下載附件, 把topicadmin_cleanpoll.htm上傳到./default/templates/內

完成!!!

暫時無bug...
有bug請通知!!!

[ 本帖最後由 小康@HK 於 2006-11-22 22:56 編輯 ]



 附件: 您所在的用戶組無法下載或查看附件



 AL8 Forum © All rights reserved.
頂部
 samchu1004
 0038384
 此發帖者已被禁止訪問

頭銜: Banned

暱稱: Samchu

帖子: 1860

精華: 0

積分: 1820 點

現金: 0 元

存款: 10132 元

閱讀權限: 0

註冊: 2006-1-11

狀態: 離線
 
發表於 2006-11-22 22:37  資料  個人空間  短消息  加為好友 
*** 作者被禁止或刪除 內容自動屏蔽 ***
 籃籃
 0030564
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1269

精華: 0

積分: 8920 點

現金: 0 元

存款: 245 元

閱讀權限: 70

註冊: 2005-9-11

狀態: 在線
 
發表於 2006-11-22 22:39  資料  個人空間  短消息  加為好友 
這個應該很實用 之前要加選項真沒方法
現在5.0出了 4.x已沒人再製造插件了
支持樓主
等我安裝之後回報一下




 AL8 Forum © All rights reserved.
頂部
 籃籃
 0030564
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1269

精華: 0

積分: 8920 點

現金: 0 元

存款: 245 元

閱讀權限: 70

註冊: 2005-9-11

狀態: 在線
 
發表於 2006-11-22 22:52  資料  個人空間  短消息  加為好友 
樓主  我已安裝可用沒問題




 AL8 Forum © All rights reserved.
頂部
 samchu1004
 0038384
 此發帖者已被禁止訪問

頭銜: Banned

暱稱: Samchu

帖子: 1860

精華: 0

積分: 1820 點

現金: 0 元

存款: 10132 元

閱讀權限: 0

註冊: 2006-1-11

狀態: 離線
 
發表於 2006-11-22 22:57  資料  個人空間  短消息  加為好友 
*** 作者被禁止或刪除 內容自動屏蔽 ***
 小康@HK
 0027215
Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7
點擊查看 小康@HK 的詳細資料

頭銜: Moderator

暱稱: 小康

帖子: 1219

精華: 0

積分: 13955 點

現金: 261 元

存款: 1019 元

閱讀權限: 100

註冊: 2005-7-26

來自: HK

狀態: 離線
 
發表於 2006-11-22 22:58  資料  個人空間  短消息  加為好友  添加 小康@HK 為MSN好友 通過MSN和 小康@HK 交談 ICQ 狀態 Yahoo!
QUOTE:
原帖由 samchu1004 於 2006-11-22 22:57 發表。&nbsp;

你說的是5.0嗎?

5.0裝唔倒嫁...




 AL8 Forum © All rights reserved.
頂部
 samchu1004
 0038384
 此發帖者已被禁止訪問

頭銜: Banned

暱稱: Samchu

帖子: 1860

精華: 0

積分: 1820 點

現金: 0 元

存款: 10132 元

閱讀權限: 0

註冊: 2006-1-11

狀態: 離線
 
發表於 2006-11-22 23:05  資料  個人空間  短消息  加為好友 
*** 作者被禁止或刪除 內容自動屏蔽 ***
 深藍Owen
 0046555
Rank: 3Rank: 3Rank: 3

頭銜: Conqueror

帖子: 114

精華: 0

積分: 550 點

現金: 81 元

存款: 0 元

閱讀權限: 20

註冊: 2006-6-12

狀態: 離線
 
發表於 2006-11-22 23:27  資料  個人空間  短消息  加為好友 
收起了. 遲點按裝. 謝謝~!




 AL8 Forum © All rights reserved.
頂部
 籃籃
 0030564
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1269

精華: 0

積分: 8920 點

現金: 0 元

存款: 245 元

閱讀權限: 70

註冊: 2005-9-11

狀態: 在線
 
發表於 2006-11-23 00:28  資料  個人空間  短消息  加為好友 
QUOTE:
原帖由 samchu1004 於 2006-11-22 23:05 發表。&nbsp;

我問下姐

我仍是堅持4.1的




 AL8 Forum © All rights reserved.
頂部
 B_Chong
 0037461
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 2269

精華: 0

積分: 14220 點

現金: 8235 元

存款: 0 元

閱讀權限: 70

註冊: 2005-12-24

狀態: 離線
 
發表於 2006-11-24 09:24  資料  個人空間  短消息  加為好友 
如果5.0用到就好啦~




 AL8 Forum © All rights reserved.
頂部
 benccp
 0033825
Rank: 1

頭銜: Newbie

帖子: 11

精華: 0

積分: 100 點

現金: 75 元

存款: 0 元

閱讀權限: 10

註冊: 2005-10-30

狀態: 離線
 
發表於 2007-3-17 18:37  資料  個人空間  短消息  加為好友 
裝好了,thz!




 AL8 Forum © All rights reserved.
頂部
 Eric03
 0046130
Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

頭銜: Discuz Team

暱稱: 遲去換機 ...

帖子: 6902

精華: 0

積分: -78 點

現金: 100 元

存款: 0 元

閱讀權限: 70

註冊: 2006-6-4

狀態: 離線
 
發表於 2007-3-17 23:26  資料  個人空間  短消息  加為好友  添加 Eric03 為MSN好友 通過MSN和 Eric03 交談
好插件自動加分




以上言論只是個人意見, 如有雷同, 實屬巧合, 不喜勿插
 AL8 Forum © All rights reserved.
頂部

聯繫我們 - AL8 Forum - 網頁空間由 I-SERVICES 提供 - Archiver - WAP
清除 Cookies, 當前時區 GMT+8, 現在時間是 2008-12-3 00:14
Processed in 0.038278 second(s), 7 queries , Gzip enabled
Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.