zhangjingyu
“上面部分的代码我没有修改(我只修改了下面”//回复操作“后面的代码),不过,按你的修改后也没什么影响。这个拆分操作400多行代码,真的够复杂的。个人猜想,可能有部分代码实际上可能用不到,比如这个帖子中说到的两个地方的代码就很相近。”(引用内容)说下我的修改方案,别笑啊,够笨的:
1.在模板中增加写入splifid;
2.帖子中第二部分的代码改为:
//回复操作
$pidsStr = S::sqlImplode($pids);
if($pw_posts == $pw_posts_tid){ //如果回复数在同一post表
if($pidsStr){
/*20170305更新,写入目标主题所在版块,解决拆分并入帖不能编辑问题*/
if ($splittype ==1 ) {/*拆分后并入,else为拆分为新帖也是原代码,编辑正常。这是两种情况,所以需要分类更新。20170306*/
$db->query("UPDATE $pw_posts_tid SET tid = ".S::sqlEscape($splitid).",fid = ".S::sqlEscape($splifid)." WHERE pid in ($pidsStr)");
}else{
$db->query("UPDATE $pw_posts_tid SET tid = ".S::sqlEscape($splitid)." WHERE pid in ($pidsStr)");
}}
/*20170306 end*/
}else{ //临界情况 回复分布在不同的post表中我是用”fid = ".S::sqlEscape($splifid)."“通过手工输入的版块fid更新,而你(注:指pw官方会员,魅惑乐趣,见115楼)的是”fid = ".S::sqlEscape($result['fid'])."“不用修改模板,更高效,更简单,更直接(我的就比较笨了)。不过,这里面我加了拆分目的判断,因为原文件拆分新帖正常,拆分并入别的主题后不能编辑;如果按你和我上面的方法强制更新版块fid会导致拆分后并入帖可以编辑了,但多帖拆分新帖后回复帖不能编辑。因为更新语句中需要强制更新版块fid,而它是通过目标主题tid获取的:
$result = $db->get_one("SELECT tid,fid,postdate,author FROM pw_threads WHERE tid = ".S::sqlEscape($splitid));这就导致版块fid无法获取,只能更新为0,所以回复帖不能编辑。所以最后,这里面需要加入拆分目的判断,分情况更新数据表。
106楼的图片调用下(2019.2.17补充调用图片)