立即注册 登录
彼岸网 返回首页

天香公主的个人空间 http://www.bian-wang.com/discuz/?10005 [收藏] [复制] [分享] [RSS] https://github.com/txgz999/discuz/wiki

评论

回复 天香公主 2020-5-5 10:16 PM 请教天香,关于点评权限的问题   (牛肉炖土豆)
牛肉炖土豆: ===============================================
嗯,不急,慢慢来就好,如图,AJAX.JS报错,我的DISCUZ程序版本是Discuz! X3.4 Release 20180101,我记得你的 ...
对,我用的是同一个版本。刚新装了一个网站,试了试没问题。把相关修改放在 http://bian-wang.com/discuz/data/userupload/10005/forum_delete_comment.zip 了。您再试试,如果还是不行,建议新装一个网站试试。
回复 天香公主 2020-5-5 09:03 PM 又有問題想請教 是關於日誌方面的   (aikato)
aikato: 欸?個人可以置頂自己寫的網誌的嗎?好像從來沒發現過有這樣的操作?
大概是想要像 Twitter 的 Pin post 效果,就是人家來我那裏搗蛋時第一眼就會看到置頂網誌的 ...
哦,你就是要在个人日志列表里置顶?在个人日志列表页上每篇日志边上都有链接状置顶按钮

http://bian-wang.com/discuz/home.php?mod=space&uid=10005&do=blog&view=me&from=space
回复 天香公主 2020-5-5 05:23 PM 又有問題想請教 是關於日誌方面的   (aikato)
现在的置顶功能只适用于个人日志列表吧?你希望作为管理员要自己发的某个日志在网站所有日志列表上置顶?如果是的话,可以改一改从数据库里提取网站所有日志列表的规则,把管理员本人的置顶日志先取出来。
回复 天香公主 2020-5-5 07:55 AM 请教天香,关于点评权限的问题   (牛肉炖土豆)
牛肉炖土豆: 刚测试,这样修改之后,无法删除,也无法发布点评
请在Chrome里看看有没有什么错误信息。

晚上我装个新的Discuz试试看。
回复 天香公主 2020-5-4 10:12 PM 请教天香,关于点评权限的问题   (牛肉炖土豆)
牛肉炖土豆: 知道了,比较好奇,管理员删除点评的时候是AJAX,它这个是仿删除帖子的,所以无法适应AJAX吗?
嗯,也许用AJAX更合理些。我试了试,可以在前面的改动的基础上做下述修改:

2. 把
    $('commentform_' + commentid).submit();
改成      
    ajaxpost('commentform_' + commentid,'return_comment', 'return_comment', 'onerror');

3. 在
    <input type="hidden" name="formhash" value="{FORMHASH}" />
之后加上
    <input type="hidden" name="handlekey" value="comment_delete_$comment[pid]" />
另外在
    <div id="comment_$post[pid]" class="cm">
之前加上
    <script type="text/javascript">
        function succeedhandle_comment_delete_$post[pid](locationhref, message, param) {
            ajaxget('forum.php?mod=misc&action=commentmore&tid=' + param['tid'] + '&pid=' + param['pid'], 'comment_' + param['pid']);
            showCreditPrompt();
        }
    </script>

4. 把
    showmessage('comment_delete_succeed', "forum.php?mod=viewthread&tid=".$postcomment['tid']."&pid=".$postcomment['pid']."&page=".$_GET['page']);
改成
    showmessage('comment_delete_succeed', "forum.php?mod=viewthread&tid=".$postcomment['tid']."&pid=".$postcomment['pid']."&page=".$_GET['page'], array('tid' => $postcomment['tid'], 'pid' => $postcomment['pid']));
回复 天香公主 2020-5-3 12:38 PM 请教天香,关于点评权限的问题   (牛肉炖土豆)
牛肉炖土豆: 已经测试,改完后也OK,不知什么BUG
改了关于commentid的几句,如
    $('delete').value = '1';
改成了
   $('delete_' + commentid).value = '1';
回复 天香公主 2020-5-2 10:31 PM 请教天香,关于点评权限的问题   (牛肉炖土豆)
牛肉炖土豆: 了解了,终于又解决了一个大麻烦,真是太感谢了~
辛苦了。
发现一个bug, 所以又改了下面的2,3,4部分,你再试试吧。
回复 天香公主 2020-5-2 07:01 PM 请教天香,关于点评权限的问题   (牛肉炖土豆)
牛肉炖土豆: 了解了,终于又解决了一个大麻烦,真是太感谢了~
辛苦了。
好。感觉可以放在模板里,各有利弊。放在js里好处是我们希望js函数集中放在js文件里,缺点是在js文件里没法调用语言包,所以四种语言版本各有各的js文件。
回复 天香公主 2020-5-2 06:53 PM 请教天香,关于点评权限的问题   (牛肉炖土豆)
牛肉炖土豆: 这回可以了,哈, ,辛苦了,卧个手~
测试完美,删除了还带扣积分。
有个疑问,第2部分的JS,可以写在模板里吗?还是必须放在forum.js里面? ...
没想过,就是模仿了删除帖子里的做法: static/js/forum_post.js 的

function deleteThread() {
        if(confirm('确定要删除该帖子吗?') != 0){
                $('delete').value = '1';
                $('postform').submit();
        }
}
回复 天香公主 2020-5-2 06:38 PM 请教天香,关于点评权限的问题   (牛肉炖土豆)
牛肉炖土豆: 去掉了之后,还是报错,错误提示页面是forum.php?mod=post&action=reply&deletesubmit=yes
第三和第四部分里有些错误,现已修正。再试试
回复 天香公主 2020-5-2 06:19 PM 请教天香,关于点评权限的问题   (牛肉炖土豆)
牛肉炖土豆: 刚测试了下,普通用户,删除自己的点评,当点击删除按钮后会提示“确定要删除该点评吗?然后点击确定,页面没反应 ...
第4部分里第一句  !submitcheck('deletesubmit') 的那个!得去掉
回复 天香公主 2020-5-2 12:48 PM 请教天香,关于点评权限的问题   (牛肉炖土豆)
我模仿Discuz用户删除帖子(template/default/forum/post.htm, template/default/forum/post_editor_attribute.htm, source/include/post/post_editpost.php)和管理员删除点评的代码(source/include/topicadmin/topicadmin_delcomment.php)做了下述修改,供参考。

1. 在 source/language/lang_message.php 里添加
  'comment_delete_succeed' => '删除点评成功',
  'comment_delete_nopermission' => '抱歉,您没有权限删除点评',

2. 在 static/js/forum.js 里添加
function deleteComment(commentid) {
    if(confirm('确定要删除该点评吗?') != 0){
        $('delete_' + commentid).value = '1';
        $('commentform_' + commentid).submit();
    }
}

3. 将 template/default/forum/viewthread_node_body.htm 下面这段
<!--{if $_G['forum']['ismoderator'] && $_G['group']['allowdelpost']}-->&nbsp;<a href="javascript:;" onclick="modaction('delcomment', $comment[id])">{lang delete}</a><!--{/if}-->
改为
<!--{if $_G['forum']['ismoderator'] && $_G['group']['allowdelpost']}-->&nbsp;<a href="javascript:;" onclick="modaction('delcomment', $comment[id])">{lang delete}</a>
<!--{elseif $comment['authorid'] == $_G['uid']}-->
<form method="post" autocomplete="off" id="commentform_$comment[id]"
        action="forum.php?mod=post&action=reply&deletesubmit=yes">
    <button type="button" class="pn xi1" onclick="deleteComment($comment[id])"><span>{lang delete}</span></button>
    <input type="hidden" name="formhash" value="{FORMHASH}" />
    <input type="hidden" name="tid" value="$comment[tid]" />
    <input type="hidden" name="pid" value="$comment[pid]" />
    <input type="hidden" name="cid" value="$comment[id]" />
    <input type="hidden" name="page" value="$_GET[page]" />
    <input type="hidden" name="delete_$comment[id]" id="delete_$comment[id]" value="0" />
</form>
<!--{/if}-->

4. 在 source/include/post/post_newreply.php 下面这段
if(!defined('IN_DISCUZ')) {
        exit('Access Denied');
}
后面添加if(!empty($_GET['delete_'.$_GET['cid']]) && submitcheck('deletesubmit') ) {
        $commentid = intval($_GET['cid']);
        $postcomment = C::t('forum_postcomment')->fetch($commentid);
        if(!$postcomment) {
                showmessage('postcomment_not_found');
        }
        if ($postcomment['authorid'] != $_G['uid']) {
            showmessage('comment_delete_nopermission', NULL);
        }
        C::t('forum_postcomment')->delete($commentid);
        $result = C::t('forum_postcomment')->count_by_pid($postcomment['pid']);
        if(!$result) {
                C::t('forum_post')->update($_G['thread']['posttableid'], $postcomment['pid'], array('comment' => 0));
        }
        if($thread['comments']) {
                C::t('forum_thread')->update($_G['tid'], array('comments' => $thread['comments'] - 1));
        }
        if(!$postcomment['rpid']) {
                updatepostcredits('-', $postcomment['authorid'], 'reply', $_G['fid']);
        }

        $totalcomment = array();
        foreach(C::t('forum_postcomment')->fetch_all_by_pid_score($postcomment['pid'], 1) as $comment) {
                if(strexists($comment['comment'], '<br />')) {
                        if(preg_match_all("/([^:]+?):\s<i>(\d+)<\/i>/", $comment['comment'], $a)) {
                                foreach($a[1] as $k => $itemk) {
                                        $totalcomment[trim($itemk)][] = $a[2][$k];
                                }
                        }
                }
        }
        $totalv = '';
        foreach($totalcomment as $itemk => $itemv) {
                $totalv .= strip_tags(trim($itemk)).': <i>'.(sprintf('%1.1f', array_sum($itemv) / count($itemv))).'</i> ';
        }

        if($totalv) {
                C::t('forum_postcomment')->update_by_pid($postcomment['pid'], array('comment' => $totalv, 'dateline' => TIMESTAMP + 1), false, false, 0);
        } else {
                C::t('forum_postcomment')->delete_by_pid($postcomment['pid'], false, 0);
        }
        C::t('forum_postcache')->delete($postcomment['pid']);
       
        showmessage('comment_delete_succeed', "forum.php?mod=viewthread&tid=".$postcomment['tid']."&pid=".$postcomment['pid']."&page=".$_GET['page']);
}
回复 天香公主 2020-5-1 07:50 AM 请教天香,关于点评权限的问题   (牛肉炖土豆)
牛肉炖土豆: 谢谢,forum_topicadmin.php文件是当3)的权限没有修改时且发点评人是非楼主时就会被这个文件拦截。

找到一个比较好的位置,

source\module\forum\forum_mis ...
Discuz允许作者删掉帖子吗?如果允许,需要在后台设置吗?

评分功能怎么用?
回复 天香公主 2020-4-30 10:31 PM 天好消息,discuz x3.5正在开发中   (牛肉炖土豆)
牛肉炖土豆: 官方独立APP我记得以前内侧过,发放过内侧邀请码,之后就不了了之了,算是失败的产品,源代码应该没有吧
找到了 https://bbs.comsenz-service.com/thread-922-1-1.html
回复 天香公主 2020-4-30 07:45 PM 请教天香,关于点评权限的问题   (牛肉炖土豆)
试了试用前面提到的改动:
1) source\include\topicadmin\topicadmin_delcomment.php
2) template\default\forum\viewthread_node_body.htm
3) template\default\forum\viewthread.htm
之后任何人都可以删点评了。要仅允许管理员和点评者删,可以在source\include\topicadmin\topicadmin_delcomment.php 里的下面这句
    C::t('forum_postcomment')->delete($commentid);
前加上你的那段
    $commentappaid = $_GET['action'] == 'delcomment' && $postcomment['authorid'] == $_G['uid'];
    if(!$commentappaid && (!$_G['uid'] || !$_G['forum']['ismoderator'])) {
        showmessage('no_privilege_delcomment');
    }

另外如果要在添加点评后立刻出现删除按钮,还需要在template\default\forum\comment_more.htm里作个类似于2)的修改。

我没修改forum_topicadmin.php,看前面的那篇博文也没提到这个文件,也许网站里还有个点评的地方用的是这个文件里的代码?

还有觉得最好是把供普通用户使用的删除点评代码分离出来放在一个单独的地方,而不是直接使用供管理员使用的文件,但放在哪最合适我也说不好。
回复 天香公主 2020-4-29 11:01 PM 请教天香,关于点评权限的问题   (牛肉炖土豆)
我按你的修改试了试,在Chrome里点击删除按钮后,Developer Tools/Console 里看到错误信息
    Uncaught ReferenceError: modaction is not defined at HTMLAnchorElement.onclick

所以你接下来要看这个modaction函数在哪个JS文件里定义,看看这个文件会不会只在管理员进入此页时才调入呢?

本页有 4 篇评论因日志作者的隐私设置或未通过审核而隐藏

小黑屋|Archiver|彼岸网  

Powered by Discuz! X3.1 © 2001-2014 Comsenz Inc.
GMT-4, 2024-3-28 08:07 AM , Processed in 0.030988 second(s), 7 queries. ,ApcOn

返回顶部