FoosunCMS-目录路径自由选择
导航:返回上一页
FoosunCMS-目录路径自由选择的实现方法
仔细研究了一下程序,觉得要实现目录自定义也不是难事.下面详细介绍一下方法.
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 %> 去掉即可)
如果你将栏目英文名作为目录的话,
其实很简单,只要将生成HTML的文件修改一下就可以了.(也就是最终忽略选择的目录路径 SavePath字段)
找到生成HTML文件的程序文件
.\Admin\News\lib\Cls_Js.asp DatePathStr =RsNewsObj("SavePath")&"/" &RsNewsObj("ClassEName")&"/"& RsNewsObj ("FileName") & "." & RsNewsObj("NewsFileExtName") RsNewsObj("SavePath") 就是选择的"目录路径" RsNewsObj("ClassEName") 就是栏目的英文名 删掉目录路径项..RsNewsObj("SavePath")
只保留英文名生成路径的:
DatePathStr =RsNewsObj("ClassEName")&"/"& RsNewsObj("FileName") & "." & RsNewsObj("NewsFileExtName")
这样最终生成的路径是:
http://www.xxx.com/ClassEname1/你的生成规则
http://www.xxx.com/ClassEname2/你的生成规则