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/你的生成规则



参考来源[ ]