Discuz! X3.4论坛标题字数突破80的限制解决方法
<p>解决方法:</p><p>一、数据库修改;<br>
二、修改JS验证字符数文件;<br>
三、修改模板中写死的字符限制数;<br>
四,修改函数验证文件;<br>
五,修改语言包文件。</p>
<p>一、数据库修改,修改数据库标题字段的长度为200字符:运行下面的sql语句:<br>
(注意修改你的表的前缀)</p>
<pre>ALTER TABLE `pre_forum_post` CHANGE `subject` `subject` VARCHAR(200) NOT NULL;
ALTER TABLE `pre_forum_rsscache` CHANGE `subject` `subject` char(200) NOT NULL;
ALTER TABLE `pre_forum_thread` CHANGE `subject` `subject` char(200) NOT NULL;
</pre>
<p>二、修改JS验证字符数:<br>
1、找到文件static/js/forum_post.js的75-81行</p>
<div class="codecolorer-container javascript vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br>2<br>3<br>4<br>5<br>6<br>7<br></div></td><td><div class="javascript codecolorer"><span class="kw1">if</span><span class="br0">(</span><span class="br0">(</span>$<span class="br0">(</span><span class="st0">'postsubmit'</span><span class="br0">)</span>.<span class="me1">name</span> <span class="sy0">!=</span> <span class="st0">'replysubmit'</span> <span class="sy0">&</span>amp<span class="sy0">;&</span>amp<span class="sy0">;</span> <span class="sy0">!</span><span class="br0">(</span>$<span class="br0">(</span><span class="st0">'postsubmit'</span><span class="br0">)</span>.<span class="me1">name</span> <span class="sy0">==</span> <span class="st0">'editsubmit'</span> <span class="sy0">&</span>amp<span class="sy0">;&</span>amp<span class="sy0">;</span> <span class="sy0">!</span>isfirstpost<span class="br0">)</span> <span class="sy0">&</span>amp<span class="sy0">;&</span>amp<span class="sy0">;</span> theform.<span class="me1">subject</span>.<span class="me1">value</span> <span class="sy0">==</span> <span class="st0">""</span><span class="br0">)</span> <span class="sy0">||</span> <span class="sy0">!</span>sortid <span class="sy0">&</span>amp<span class="sy0">;&</span>amp<span class="sy0">;</span> <span class="sy0">!</span>special <span class="sy0">&</span>amp<span class="sy0">;&</span>amp<span class="sy0">;</span> trim<span class="br0">(</span>message<span class="br0">)</span> <span class="sy0">==</span> <span class="st0">""</span><span class="br0">)</span> <span class="br0">{</span><br>
showError<span class="br0">(</span><span class="st0">'抱歉,您尚未输入标题或内容'</span><span class="br0">)</span><span class="sy0">;</span><br>
<span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span><br>
<span class="br0">}</span> <span class="kw1">else</span> <span class="kw1">if</span><span class="br0">(</span>mb_strlen<span class="br0">(</span>theform.<span class="me1">subject</span>.<span class="me1">value</span><span class="br0">)</span> <span class="sy0">&</span>gt<span class="sy0">;</span> <span class="nu0">80</span><span class="br0">)</span> <span class="br0">{</span><br>
showError<span class="br0">(</span><span class="st0">'您的标题超过 80 个字符的限制'</span><span class="br0">)</span><span class="sy0">;</span><br>
<span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span><br>
<span class="br0">}</span></div></td></tr></tbody></table></div>
<p>修改为:</p>
<div class="codecolorer-container javascript vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br>2<br>3<br>4<br>5<br>6<br>7<br></div></td><td><div class="javascript codecolorer"><span class="kw1">if</span><span class="br0">(</span><span class="br0">(</span>$<span class="br0">(</span><span class="st0">'postsubmit'</span><span class="br0">)</span>.<span class="me1">name</span> <span class="sy0">!=</span> <span class="st0">'replysubmit'</span> <span class="sy0">&</span>amp<span class="sy0">;&</span>amp<span class="sy0">;</span> <span class="sy0">!</span><span class="br0">(</span>$<span class="br0">(</span><span class="st0">'postsubmit'</span><span class="br0">)</span>.<span class="me1">name</span> <span class="sy0">==</span> <span class="st0">'editsubmit'</span> <span class="sy0">&</span>amp<span class="sy0">;&</span>amp<span class="sy0">;</span> <span class="sy0">!</span>isfirstpost<span class="br0">)</span> <span class="sy0">&</span>amp<span class="sy0">;&</span>amp<span class="sy0">;</span> theform.<span class="me1">subject</span>.<span class="me1">value</span> <span class="sy0">==</span> <span class="st0">""</span><span class="br0">)</span> <span class="sy0">||</span> <span class="sy0">!</span>sortid <span class="sy0">&</span>amp<span class="sy0">;&</span>amp<span class="sy0">;</span> <span class="sy0">!</span>special <span class="sy0">&</span>amp<span class="sy0">;&</span>amp<span class="sy0">;</span> trim<span class="br0">(</span>message<span class="br0">)</span> <span class="sy0">==</span> <span class="st0">""</span><span class="br0">)</span> <span class="br0">{</span><br>
showError<span class="br0">(</span><span class="st0">'抱歉,您尚未输入标题或内容'</span><span class="br0">)</span><span class="sy0">;</span><br>
<span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span><br>
<span class="br0">}</span> <span class="kw1">else</span> <span class="kw1">if</span><span class="br0">(</span>mb_strlen<span class="br0">(</span>theform.<span class="me1">subject</span>.<span class="me1">value</span><span class="br0">)</span> <span class="sy0">&</span>gt<span class="sy0">;</span> <span class="nu0">200</span><span class="br0">)</span> <span class="br0">{</span><br>
showError<span class="br0">(</span><span class="st0">'您的标题超过 200 个字符的限制'</span><span class="br0">)</span><span class="sy0">;</span><br>
<span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span><br>
<span class="br0">}</span></div></td></tr></tbody></table></div>
<p>2、找到文件sitatic/js/forum.js的212到218行代码:</p>
<div class="codecolorer-container javascript vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br>2<br>3<br>4<br>5<br>6<br>7<br></div></td><td><div class="javascript codecolorer"><span class="kw1">if</span><span class="br0">(</span>theform.<span class="me1">message</span>.<span class="me1">value</span> <span class="sy0">==</span> <span class="st0">''</span> <span class="sy0">||</span> theform.<span class="me1">subject</span>.<span class="me1">value</span> <span class="sy0">==</span> <span class="st0">''</span><span class="br0">)</span> <span class="br0">{</span><br>
s <span class="sy0">=</span> <span class="st0">'抱歉,您尚未输入标题或内容'</span><span class="sy0">;</span><br>
theform.<span class="me1">message</span>.<span class="me1">focus</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span><br>
<span class="br0">}</span> <span class="kw1">else</span> <span class="kw1">if</span><span class="br0">(</span>mb_strlen<span class="br0">(</span>theform.<span class="me1">subject</span>.<span class="me1">value</span><span class="br0">)</span> <span class="sy0">&</span>gt<span class="sy0">;</span> <span class="nu0">80</span><span class="br0">)</span> <span class="br0">{</span><br>
s <span class="sy0">=</span> <span class="st0">'您的标题超过 80 个字符的限制'</span><span class="sy0">;</span><br>
theform.<span class="me1">subject</span>.<span class="me1">focus</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span><br>
<span class="br0">}</span></div></td></tr></tbody></table></div>
<p>修改为:</p>
<div class="codecolorer-container javascript vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br>2<br>3<br>4<br>5<br>6<br>7<br></div></td><td><div class="javascript codecolorer"><span class="kw1">if</span><span class="br0">(</span>theform.<span class="me1">message</span>.<span class="me1">value</span> <span class="sy0">==</span> <span class="st0">''</span> <span class="sy0">||</span> theform.<span class="me1">subject</span>.<span class="me1">value</span> <span class="sy0">==</span> <span class="st0">''</span><span class="br0">)</span> <span class="br0">{</span><br>
s <span class="sy0">=</span> <span class="st0">'抱歉,您尚未输入标题或内容'</span><span class="sy0">;</span><br>
theform.<span class="me1">message</span>.<span class="me1">focus</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span><br>
<span class="br0">}</span> <span class="kw1">else</span> <span class="kw1">if</span><span class="br0">(</span>mb_strlen<span class="br0">(</span>theform.<span class="me1">subject</span>.<span class="me1">value</span><span class="br0">)</span> <span class="sy0">&</span>gt<span class="sy0">;</span> <span class="nu0">80</span><span class="br0">)</span> <span class="br0">{</span><br>
s <span class="sy0">=</span> <span class="st0">'您的标题超过 80 个字符的限制'</span><span class="sy0">;</span><br>
theform.<span class="me1">subject</span>.<span class="me1">focus</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span><br>
<span class="br0">}</span></div></td></tr></tbody></table></div>
<p>三、修改模板中写死的字符限制数:<br>
1、找到文件\template\default\forum\post_editor_extra.htm的25到33行:</p>
<div class="codecolorer-container html4strict vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br></div></td><td><div class="html4strict codecolorer"><span class="sc-1"><!--{if $_GET != 'reply'}--></span><br>
<span class="sc2"><<span class="kw2">input</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">"px"</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"width: 25em;"</span> <span class="kw3">tabindex</span><span class="sy0">=</span><span class="st0">"1"</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">"text"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"$postinfo"</span> <span class="sy0">/</span>></span><br>
<span class="sc-1"><!--{else}--></span><br>
<span class="sc2"><<span class="kw2">span</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subjecthide"</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">"z"</span>></span>RE: $thread [<span class="sc2"><<span class="kw2">a</span>></span>{lang modify}<span class="sc2"><<span class="sy0">/</span><span class="kw2">a</span>></span>]<span class="sc2"><<span class="sy0">/</span><span class="kw2">span</span>></span><br>
<span class="sc2"><<span class="kw2">span</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subjectbox"</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"display: none;"</span>><<span class="kw2">input</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">"px"</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"width: 25em;"</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">"text"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">""</span> <span class="sy0">/</span>><<span class="sy0">/</span><span class="kw2">span</span>></span><br>
<span class="sc-1"><!--{/if}--></span><br>
<span class="sc2"><<span class="kw2">span</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subjectchk"</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"display: none;"</span>></span>{lang comment_message1} <span class="sc2"><<span class="kw2">strong</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"checklen"</span>></span>80<span class="sc2"><<span class="sy0">/</span><span class="kw2">strong</span>></span> {lang comment_message2}<span class="sc2"><<span class="sy0">/</span><span class="kw2">span</span>></span><br>
<span class="sc2"><<span class="kw2">script</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">"text/javascript"</span>></span>strLenCalc($('subject'), 'checklen', 80)<span class="sc2"><<span class="sy0">/</span><span class="kw2">script</span>></span><br>
<span class="sc-1"><!--{/if}--></span></div></td></tr></tbody></table></div>
<p>修改为:</p>
<div class="codecolorer-container html4strict vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br></div></td><td><div class="html4strict codecolorer"><!--<span class="br0">{</span>if $_GET<span class="br0">[</span><span class="kw3">action</span><span class="br0">]</span> !<span class="sy0">=</span> <span class="st0">'reply'</span><span class="br0">}</span>--><br>
<<span class="kw2">input</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">"px"</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"width: 25em;"</span> <span class="kw3">tabindex</span><span class="sy0">=</span><span class="st0">"1"</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">"text"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"$postinfo"</span> <span class="sy0">/</span>><br>
<!--<span class="br0">{</span>else<span class="br0">}</span>--><br>
<<span class="kw2">span</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subjecthide"</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">"z"</span>>RE: $thread<span class="br0">[</span>subject<span class="br0">]</span> <span class="br0">[</span><<span class="kw2">a</span>><span class="br0">{</span><span class="kw3">lang</span> modify<span class="br0">}</span><<span class="sy0">/</span><span class="kw2">a</span>><span class="br0">]</span><<span class="sy0">/</span><span class="kw2">span</span>><br>
<<span class="kw2">span</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subjectbox"</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"display: none;"</span>><<span class="kw2">input</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">"px"</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"width: 25em;"</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">"text"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">""</span> <span class="sy0">/</span>><<span class="sy0">/</span><span class="kw2">span</span>><br>
<!--<span class="br0">{</span><span class="sy0">/</span>if<span class="br0">}</span>--><br>
<<span class="kw2">span</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subjectchk"</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"display: none;"</span>><span class="br0">{</span><span class="kw3">lang</span> comment_message1<span class="br0">}</span> <<span class="kw2">strong</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"checklen"</span>><span class="nu0">200</span><<span class="sy0">/</span><span class="kw2">strong</span>> <span class="br0">{</span><span class="kw3">lang</span> comment_message2<span class="br0">}</span><<span class="sy0">/</span><span class="kw2">span</span>><br>
<<span class="kw2">script</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">"text/javascript"</span>>strLenCalc<span class="br0">(</span>$<span class="br0">(</span><span class="st0">'subject'</span><span class="br0">)</span>, <span class="st0">'checklen'</span>, <span class="nu0">200</span><span class="br0">)</span><<span class="sy0">/</span><span class="kw2">script</span>><br>
<!--<span class="br0">{</span><span class="sy0">/</span>if<span class="br0">}</span>--></div></td></tr></tbody></table></div>
<p>2、找到文件\template\default\forum\forumdisplay_fastpost.html的31-32行:</p>
<div class="codecolorer-container html4strict vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br>2<br></div></td><td><div class="html4strict codecolorer"><<span class="kw2">input</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">"text"</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">"px"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">""</span> <span class="kw3">onkeyup</span><span class="sy0">=</span><span class="st0">"strLenCalc(this, 'checklen', 80);"</span> <span class="kw3">tabindex</span><span class="sy0">=</span><span class="st0">"11"</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"width: 25em"</span> <span class="sy0">/</span>><br>
<<span class="kw2">span</span>><span class="br0">{</span><span class="kw3">lang</span> comment_message1<span class="br0">}</span> <<span class="kw2">strong</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"checklen"</span>><span class="nu0">80</span><<span class="sy0">/</span><span class="kw2">strong</span>> <span class="br0">{</span><span class="kw3">lang</span> comment_message2<span class="br0">}</span><<span class="sy0">/</span><span class="kw2">span</span>></div></td></tr></tbody></table></div>
<p>修改为:</p>
<div class="codecolorer-container html4strict vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br>2<br></div></td><td><div class="html4strict codecolorer"><<span class="kw2">input</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">"px"</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"width: 25em;"</span> <span class="kw3">tabindex</span><span class="sy0">=</span><span class="st0">"11"</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"subject"</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">"text"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">""</span> <span class="sy0">/</span>><br>
<span class="br0">{</span><span class="kw3">lang</span> comment_message1<span class="br0">}</span> <<span class="kw2">strong</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"checklen"</span>><span class="nu0">200</span><<span class="sy0">/</span><span class="kw2">strong</span>> <span class="br0">{</span><span class="kw3">lang</span> comment_message2<span class="br0">}</span></div></td></tr></tbody></table></div>
<p>四,修改函数验证提示:<br>
找到文件source/function/function_post.php的361-363行:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br>2<br>3<br></div></td><td><div class="php codecolorer"><span class="kw1">if</span><span class="br0">(</span>dstrlen<span class="br0">(</span><span class="re0">$subject</span><span class="br0">)</span> <span class="sy0">&</span>gt<span class="sy0">;</span> <span class="nu0">80</span><span class="br0">)</span> <span class="br0">{</span><br>
<span class="kw1">return</span> <span class="st_h">'post_subject_toolong'</span><span class="sy0">;</span><br>
<span class="br0">}</span></div></td></tr></tbody></table></div>
<p>修改为:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br>2<br>3<br></div></td><td><div class="php codecolorer"><span class="kw1">if</span><span class="br0">(</span>dstrlen<span class="br0">(</span><span class="re0">$subject</span><span class="br0">)</span> <span class="sy0">&</span>gt<span class="sy0">;</span> <span class="nu0">200</span><span class="br0">)</span> <span class="br0">{</span><br>
<span class="kw1">return</span> <span class="st_h">'post_subject_toolong'</span><span class="sy0">;</span><br>
<span class="br0">}</span></div></td></tr></tbody></table></div>
<p>五、找到语言包提示文字,打开 source/language/lang_messege.php 并找到998行改为:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br></div></td><td><div class="php codecolorer"><span class="st_h">'post_subject_toolong'</span> <span class="sy0">=&</span>gt<span class="sy0">;</span> <span class="st_h">'抱歉,您的标题超过 80 个字符修改标题长度'</span><span class="sy0">,</span></div></td></tr></tbody></table></div>
<p>修改为:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;width:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br></div></td><td><div class="php codecolorer"><span class="st_h">'post_subject_toolong'</span> <span class="sy0">=&</span>gt<span class="sy0">;</span> <span class="st_h">'抱歉,您的标题超过 200 个字符修改标题长度'</span><span class="sy0">,</span></div></td></tr></tbody></table></div>
<p>按照以上步骤全部修改完,后台——工具——更新一下缓存,问题解决。</p>
<p class="post-copyright">未经允许不得转载:<ahref="https://www.wangchao.info/">王超博客</a> » <ahref="https://www.wangchao.info/2373.html">Discuz! X3.4论坛标题字数突破80的限制解决方法</a></p>
页:
[1]