YTCMS是一款强大的插件,可以轻易地把ZBLOG打造成一款强大的CMS程序.
但是,现在很多主题开发者都走入了误区.
滥用YTCMS,会大大降低ZBLOG的运行效率.
优先使用系统标签和JavaScript
如以下代码:
<div class="l">{eval set art2 = new TArticle}
{if art2.LoadInfoByID(<#article/id#>)}
{eval Set objRS=objConn.Execute("SELECT TOP 1 [log_ID] FROM [blog_Article] WHERE ([log_Level]>2) AND ([log_Type]=0) AND ([log_PostTime]<" & ZC_SQL_POUND_KEY & art2.PostTime & ZC_SQL_POUND_KEY &") ORDER BY [log_PostTime] DESC")}
{if (Not objRS.bof) And (Not objRS.eof)}
{if art2.LoadInfoByID(objRS("log_ID"))}
上一篇: <a href="{$art2.url}">{$art2.title}</a> {/if}
{else}
上一篇:没有了...
{/if}
{/if}</div>
此代码用于实现"上一篇".
以上代码可直接使用<#template:article_navbar_l#>和<#template:article_navbar_r#>替代。若考虑到“没有了”三个字,可以使用JS:(放于footer.html)
<script type="text/javascript">$(document).ready(function(){if($(".r").length==0){$(".l").after("<a class='r' href='javascript:void(0)'>没有了</a>")}else if($(".l").length==0){$(".r").after("<a class='r' href='javascript:void(0)'>没有了</a>")}})</script>
切忌使用LoadInfo\SQL查询 <div class="newsinfo">{eval set art=new TArticle}
{if art.LoadInfoByID(<#article/id#>)}
{$left(replace(TransferHTML(art.intro,"[nohtml]")," ",""),130)&"......"}
{/if}
{eval set art=nothing}
</div>
摘要去除HTML功能事实上没什么必要,且这里的执行方式也有待商酌。首先摘要模板是catalog\default这几个模板都要用的,一个页面要调用多次。默认10次。
这里又进行了一次LoadInfoById,10次即进行了10次LoadInfo,
最短100ms。其他也不多说了。
同样,文章最早所提出的代码,动态模式下打开一篇文章
最短也要60ms,静态模式下1000篇文章文件重建
至少加一分钟。
还是那句话,系统的才是最好的,一切对象也请优先引用YTCMS内置对象,这样子既可以省代码,又可以提高主题效率。
这段代码,可以改为:
<div class="newsinfo"> {$left(replace(TransferHTML(Article.intro,"[nohtml]")," ",""),130)&"......"}
</div>
不理世事