风讯CMS目录路径自由选择的实现方法
这一段时间大家对F4 目录总是在/NEWS 目录下的问题报怨很多.
仔细研究了一下程序,觉得要实现目录自定义也不是难事.下面具体介绍一下方法.
1) 不要文件名是NEWS目录下,想自己定义怎么办,比如html?
\Admin\News/class_add.asp
<td class=\"hback\"><div align=\"right\">栏目保存路径:</div></td>
<td class=\"hback\"><input name=\"SavePath\" type=\"text\" id=\"SavePath\" value=\"<%=str_SavePath%>\" size=\"40\" maxlength=\"255\" readonly> 将readonly去掉,就可以手动输入了,
最终生成的HTML文件路径为/ 保存路径/栏目英文名/....
2) 上例中还没有根本解决路径的问题,
比如说有个图片栏目: 最后可能生成 pic/pic/index.html
还是多了一极栏目,那么这里怎么改呢?
现在我们去找到生成HTML文件的程序文件.\Admin\News\lib\Cls_Js.asp
DatePathStr =RsNewsObj(\"SavePath\")&\"/\"&RsNewsObj(\"ClassEName\")&\"/\"& RsNewsObj(\"FileName\") & \".\" & RsNewsObj(\"NewsFileExtName\")
RsNewsObj(\"SavePath\") 就是上例选择的\"目录路径\" RsNewsObj(\"ClassEName\") 就是栏目的英文名
现在根据你的需要,可以删掉一级目录了.
只保留栏目路径的:
DatePathStr =RsNewsObj(\"SavePath\")&\"/\"& RsNewsObj(\"FileName\") & \".\" & RsNewsObj(\"NewsFileExtName\")
只保留英文名生成路径的:
DatePathStr =&RsNewsObj(\"ClassEName\")&\"/\"& RsNewsObj(\"FileName\") & \".\" & RsNewsObj(\"NewsFileExtName\")
--------------------------------------------------------------------------------
当然最好的方法是在\"选择栏目保存路径\"栏能只接到根目录,而不是目前限定死的\"/news\"
我们再看 \Admin\News/class_add.asp 文件.
<td class=\"hback\"><div align=\"right\">栏目保存路径:</div></td>
<td class=\"hback\"><input name=\"SavePath\" type=\"text\" id=\"SavePath\" value=\"<%=str_SavePath%>\" size=\"40\" maxlength=\"255\" readonly>
<%if Request.QueryString(\"Action\")=\"add\" then%> <INPUT type=\"button\" name=\"Submit4\" value=\"选择路径\" onClick=\"OpenWindowAndSetValue('../CommPages/SelectManageDir/SelectPathFrame.asp?CurrPath=<%= Replace(sRootDir & str_newsDir,\"//\",\"/\")%>',320,280,window,document.ClassForm.SavePath);document.ClassForm.SavePath.focus();\">
<%End if%>
CurrPath 传递给 selectpathframe.asp 文件的参数,这里可以改一下,
改成什么样的呢,大家可以参考一下,\"选择模板\"
<input type=\"button\" name=\"Submit2\" value=\"选择模板\" onClick=\"OpenWindowAndSetValue('../CommPages/SelectManageDir/SelectTemplet.asp?CurrPath=<%=sRootDir %>/<% = G_TEMPLETS_DIR %>',400,300,window,document.ClassForm.NewsTemplet);document.ClassForm.NewsTemplet.focus();\">
这里: sRootDir 就是根目录了,当然选择路径里的:CurrPath=<% 不能只接用这里的CurrPath=<%=sRootDir %> 替换,因为模板传递过去的参数的文件是:SelectTemplet.asp 而选择路径传递的是\"SelectPathFrame.asp文件.
(题外话: 模板任意目录选择直接将\"/<% = G_TEMPLETS_DIR %> 去掉即可)