您好,欢迎来到95分类目录!站长微信:vip3632094
当前位置:95分类目录 » 站长资讯 » 35dir专区 » 文章详细 订阅RssFeed

95DIR网站目录系统 - 模板标签使用说明文档

来源:本站原创 浏览:326次 时间:2025-07-29
简介:【系统概述】 35dir系统采用Smarty模板引擎,提供强大的模板标签功能。本文档详细介绍所有可用的模板标签、 函数和变量,帮助开发者快速掌握模板开发技巧。 【模板引擎配置】 - 模板引擎:Smarty 3.x/4.x(支持版本升级) - 标签分隔符:{# 和 #}(可在 source/include/smarty.php 中修改) - 模板目录:themes/default/(
═══════════════════════════════════════════════════════════════════════════════

35DIR网站目录系统 - 模板标签使用说明文档

Version 2.0 - 详细完整版

═══════════════════════════════════════════════════════════════════════════════



【系统概述】

35dir系统采用Smarty模板引擎,提供强大的模板标签功能。本文档详细介绍所有可用的模板标签、

函数和变量,帮助开发者快速掌握模板开发技巧。



【模板引擎配置】

- 模板引擎:Smarty 3.x/4.x(支持版本升级)

- 标签分隔符:{# 和 #}(可在 source/include/smarty.php 中修改)

- 模板目录:themes/default/(前台)、themes/system/(后台)

- 编译目录:data/compile/

- 缓存目录:data/cache/

- 升级方法:覆盖 source/extend/smarty 目录即可



【标签语法规则】

1. 变量输出:{#$变量名#}

2. 函数调用:{#函数名(参数1, 参数2)#}

3. 循环语句:{#foreach from=数组 item=项目#}...{#/foreach#}

4. 条件语句:{#if 条件#}...{#else#}...{#/if#}

5. 注释语法:{#* 这是注释 *#}



═══════════════════════════════════════════════════════════════════════════════

一、网站通用标签

═══════════════════════════════════════════════════════════════════════════════



【基础站点信息】

{#$site_root#}        ─── 网站根目录路径(如:http://www.example.com/)

{#$site_name#}        ─── 网站名称(后台设置的站点名称)

{#$site_title#}       ─── 网站标题(浏览器标题栏显示)

{#$site_url#}         ─── 网站完整URL地址

{#$site_keywords#}    ─── 网站关键词(SEO用途)

{#$site_description#} ─── 网站描述信息(SEO用途)

{#$site_copyright#}   ─── 网站版权信息(支持HTML代码)

{#$site_rss#}         ─── RSS订阅链接

{#$site_path#}        ─── 当前位置导航(面包屑导航)



【系统配置信息】

{#$cfg#}              ─── 完整的系统配置数组(包含所有后台设置)

{#$cfg.参数名#}       ─── 获取特定配置参数

{#$script_time#}      ─── 页面执行时间和查询统计

{#$login_status#}     ─── 用户登录状态信息



【使用示例】

{#$site_title#}








{#$site_copyright#}



═══════════════════════════════════════════════════════════════════════════════

二、网站函数标签

═══════════════════════════════════════════════════════════════════════════════



【1. 分类列表函数 - get_categories()】

函数原型:get_categories($cate_id = 0, $top_num = 0, $is_best = false)



参数说明:

- $cate_id:分类ID,默认0表示获取根分类,指定ID获取该分类下的子分类

- $top_num:显示数量,默认0表示显示全部,指定数字限制显示条数

- $is_best:是否只显示推荐分类,true显示推荐,false显示全部



返回字段:

- $cate_id:分类ID

- $cate_name:分类名称

- $cate_mod:分类模块(如webdir)

- $cate_childcount:子分类数量

- $cate_postcount:分类下网站数量

- $cate_link:分类链接地址



使用示例:






    {#foreach from=get_categories(0, 10, false) item=cate#}






  • {#$cate.cate_name#}



    ({#$cate.cate_postcount#})




  • {#/foreach#}











{#foreach from=get_categories(0, 8, true) item=hot#}

{#$hot.cate_name#}

{#/foreach#}






【2. 网站列表函数 - get_websites()】

函数原型:get_websites($cate_id = 0, $top_num = 10, $is_pay = false, $is_best = false, $field = 'ctime', $order = 'desc')



参数说明:

- $cate_id:分类ID,0表示全部分类

- $top_num:显示数量,默认10条

- $is_pay:是否只显示付费网站

- $is_best:是否只显示推荐网站

- $field:排序字段(ctime-收录时间, views-浏览次数, instat-点入次数, outstat-点出次数)

- $order:排序方式(desc-降序, asc-升序)



返回字段:

- $web_id:网站ID

- $web_name:网站名称

- $web_url:网站URL

- $web_furl:格式化的URL

- $web_pic:网站缩略图

- $web_intro:网站简介

- $web_ai_intro:AI生成的简介

- $web_tags:网站标签数组

- $web_ctime:收录时间

- $web_utime:更新时间

- $web_views:浏览次数

- $web_grank:Google PageRank

- $web_brank:百度权重

- $web_srank:搜狗权重

- $web_arank:Alexa排名

- $web_link:网站详情页链接

- $cate_name:所属分类名称



使用示例:






{#foreach from=get_websites(0, 12, false, false, 'ctime', 'desc') item=site#}







{#$site.web_name#}








{#$site.web_name#}





{#$site.web_intro#}







{#$site.cate_name#}

浏览:{#$site.web_views#}

{#$site.web_utime#}










{#/foreach#}











{#foreach from=get_websites(0, 8, false, true, 'views', 'desc') item=rec#}



{#$rec.web_name#}

{#$rec.web_name#}



{#/foreach#}






【3. 友情链接函数 - get_links()】

函数原型:get_links()



返回字段:

- $link_id:链接ID

- $link_name:链接名称

- $link_url:链接地址

- $link_logo:链接LOGO地址



使用示例:






【4. 数据归档函数 - get_archives()】

函数原型:get_archives()



返回格式:二维数组,年份->月份->网站数量



使用示例:





数据归档




{#foreach from=get_archives() key=year item=months#}





{#$year#}年










{#/foreach#}






【5. 广告代码函数 - get_adcode()】

函数原型:get_adcode($ad_id)



参数说明:

- $ad_id:广告位ID(后台广告管理中设置)



使用示例:






{#get_adcode(1)#}


















{#get_adcode(3)#}






【6. 自定义标签 - $label】

用法:{#$label.标签名称#}



说明:调用后台自定义标签管理中添加的标签内容



使用示例:






{#$label.google_analytics#}

















{#$label.contact_info#}






【7. 站点统计 - $stat】

用法:{#$stat.统计项#}



可用统计项:

- category:分类总数

- website:网站总数(已审核)

- article:文章总数

- apply:待审核网站数

- vip:VIP网站数

- recommend:推荐网站数

- blacklist:黑名单网站数

- rejected:审核不通过网站数

- user:用户总数

- adver:广告总数

- link:友情链接总数

- feedback:反馈总数

- label:自定义标签总数

- page:单页总数



使用示例:







{#$stat.category#}

个分类







{#$stat.website#}

个网站







{#$stat.user#}

位用户















本站共收录 {#$stat.website#} 个网站,分布在 {#$stat.category#} 个分类中





其中推荐网站 {#$stat.recommend#} 个,VIP网站 {#$stat.vip#}





注册用户 {#$stat.user#} 位,待审核网站 {#$stat.apply#}









═══════════════════════════════════════════════════════════════════════════════

三、页面专用标签

═══════════════════════════════════════════════════════════════════════════════



【列表页通用标签】

适用页面:directory.html, update.html, archives.html, search.html



{#$weblist#}          ─── 网站列表数组(包含分页后的网站数据)

{#$showpage#}         ─── 分页导航HTML代码



使用示例:




{#foreach from=$weblist item=item name=list_website#}











{#$item.web_name#}





{#$item.web_intro#}







{#$item.web_url#}

{#$item.web_utime#}













PageRank:

{#$item.web_prank#}/10







AlexaRank:

{#$item.web_arank#}







人气指数:

{#$item.web_views#}







收录时间:

{#$item.web_utime#}










{#foreachelse#}


该目录下暂无内容!



{#/foreach#}













【首页专用标签 - index.html】

首页可以使用所有通用标签和函数标签,无特殊限制。



【分类页专用标签 - directory.html】

{#$category_name#}    ─── 当前分类名称

{#$child_category#}   ─── 当前分类下的子分类数组



子分类字段:

- $cate_id:分类ID

- $cate_name:分类名称

- $cate_postcount:分类下网站数量

- $cate_link:分类链接



使用示例:





{#$category_name#}







当前分类:{#$category_name#}















子分类












【更新页专用标签 - update.html】

{#$days#}             ─── 当前选择的时间周期

{#$timescope#}        ─── 时间范围选择数组



时间范围字段:

- $time_id:时间周期ID

- $time_text:时间周期名称(如:24小时内、3天内、1周内)

- $time_link:时间周期链接



使用示例:





最近更新







    {#foreach from=$timescope item=time key=k#}



    {#if $days == $time.time_id#}

    {#$time.time_text#}

    {#else#}

    {#$time.time_text#}

    {#/if#}



    {#/foreach#}










【搜索页专用标签 - search.html】

{#$search_word#}      ─── 搜索关键词

{#$search_type#}      ─── 搜索类型(website-网站搜索, tags-标签搜索)

{#$total_found#}      ─── 搜索结果总数



使用示例:








搜索结果





关键词:{#$search_word#},找到 {#$total_found#} 个相关网站
















【网站详情页专用标签 - website.html】

{#$website#}          ─── 当前网站的详细信息数组



网站详情字段:

- $web_id:网站ID

- $web_name:网站名称

- $web_url:网站URL

- $web_pic:网站缩略图

- $web_intro:网站简介

- $web_ai_intro:AI生成简介

- $web_tags:网站标签数组

- $web_ctime:收录时间

- $web_views:浏览次数

- $web_grank:Google PageRank

- $web_brank:百度权重

- $web_srank:搜狗权重

- $web_arank:Alexa排名

- $cate_name:所属分类



使用示例:
















网站简介





{#$website.web_intro#}




{#if $website.web_ai_intro#}





AI智能简介





{#$website.web_ai_intro#}







{#/if#}






{#if $website.web_tags#}





相关标签







{#foreach from=$website.web_tags item=tag#}

{#$tag.tag_name#}

{#/foreach#}







{#/if#}







网站数据










Google PR

{#$website.web_grank#}/10







百度权重

{#$website.web_brank#}







搜狗权重

{#$website.web_srank#}







Alexa排名

{#$website.web_arank#}


















═══════════════════════════════════════════════════════════════════════════════

四、Smarty内置标签

═══════════════════════════════════════════════════════════════════════════════



【循环控制】

{#foreach from=数组 item=项目 key=键名 name=循环名#}



{#if $smarty.foreach.循环名.first#}第一项{#/if#}

{#if $smarty.foreach.循环名.last#}最后一项{#/if#}

{#$smarty.foreach.循环名.iteration#}

{#$smarty.foreach.循环名.index#}     

{#foreachelse#}



{#/foreach#}



【条件判断】

{#if 条件#}



{#elseif 其他条件#}



{#else#}



{#/if#}



【变量修饰符】

{#$变量|修饰符#}

{#$变量|修饰符:参数#}



常用修饰符:

- truncate:长度 - 截取字符串

- date_format:格式 - 格式化日期

- escape - HTML转义

- nl2br - 换行转



- strip_tags - 去除HTML标签

- upper - 转大写

- lower - 转小写

- capitalize - 首字母大写



使用示例:

{#$web_intro|truncate:100:"..."|escape#}

{#$web_ctime|date_format:"%Y-%m-%d %H:%M"#}

{#$web_name|upper#}



【包含文件】

{#include file="文件名.html"#}

{#include file="header.html" title="页面标题"#}



【赋值操作】

{#assign var="变量名" value="值"#}

{#assign var="current_time" value=$smarty.now#}



═══════════════════════════════════════════════════════════════════════════════

五、高级应用技巧

═══════════════════════════════════════════════════════════════════════════════



【1. 条件显示内容】



{#foreach from=get_websites(0, 10) item=site#}





{#$site.web_name#}




{#if $site.web_isbest#}推荐{#/if#}

{#if $site.web_ispay#}VIP{#/if#}




{#/foreach#}



【2. 多条件筛选】



{#assign var="tech_sites" value=get_websites(1, 8, false, true)#}

{#if $tech_sites#}





技术推荐




{#foreach from=$tech_sites item=site#}

{#$site.web_name#}

{#/foreach#}




{#/if#}



【3. 数据统计显示】



{#foreach from=get_categories(0, 0, false) item=cate#}

{#if $cate.cate_postcount > 0#}




{#$cate.cate_name#}

{#$cate.cate_postcount#}














{#/if#}

{#/foreach#}



【4. 响应式布局】






{#assign var="site_count" value=12#}

{#* 移动端显示6个,桌面端显示12个 *#}

{#foreach from=get_websites(0, $site_count) item=site name=grid#}




{#if $smarty.foreach.grid.iteration % 3 == 0#}





{#/if#}

{#if $smarty.foreach.grid.iteration % 4 == 0#}





{#/if#}

{#if $smarty.foreach.grid.iteration % 6 == 0#}





{#/if#}

{#/foreach#}






【5. SEO优化】



{#if $category_name#}

{#assign var="page_title" value="`$category_name` - `$site_name`"#}

{#assign var="page_desc" value="`$category_name`分类下的优质网站推荐,包含`$stat.website`个精选网站"#}

{#else#}

{#assign var="page_title" value=$site_title#}

{#assign var="page_desc" value=$site_description#}

{#/if#}



{#$page_title#}







{#if $website#}



{#/if#}



【6. 缓存控制】



{#* 最新网站列表,缓存5分钟 *#}

{#assign var="cache_id" value="latest_sites_`$smarty.now|date_format:'%Y%m%d%H%i'`"#}





{#assign var="hot_cache" value="hot_sites_`$smarty.now|date_format:'%Y%m%d%H'`"#}



【7. 多语言支持】



{#assign var="lang" value=$smarty.get.lang|default:'zh'#}

{#if $lang == 'en'#}

{#assign var="site_title_lang" value=$cfg.site_title_en#}

{#else#}

{#assign var="site_title_lang" value=$cfg.site_title#}

{#/if#}



【8. 错误处理】



{#assign var="latest_sites" value=get_websites(0, 10)#}

{#if $latest_sites && count($latest_sites) > 0#}




{#foreach from=$latest_sites item=site#}



{#/foreach#}




{#else#}





暂无最新网站,请稍后再来查看。







{#/if#}



═══════════════════════════════════════════════════════════════════════════════

六、性能优化建议

═══════════════════════════════════════════════════════════════════════════════



【1. 合理使用缓存】

- 启用Smarty模板缓存:在 source/include/smarty.php 中设置

- 对于数据变化不频繁的页面,设置较长的缓存时间

- 使用 cache_id 区分不同的缓存版本



【2. 减少数据库查询】

- 在一个页面中,尽量减少函数调用次数

- 使用 assign 将函数结果赋值给变量,避免重复调用

- 合理设置函数参数,只获取需要的数据



示例:

{#assign var="hot_sites" value=get_websites(0, 8, false, true)#}

{#assign var="new_sites" value=get_websites(0, 10, false, false, 'ctime')#}



【3. 图片优化】

- 使用适当的图片尺寸

- 为图片添加 alt 属性

- 考虑使用懒加载



【4. 代码优化】

- 避免在循环中进行复杂计算

- 使用条件判断减少不必要的HTML输出

- 合理使用 strip 去除多余空白



═══════════════════════════════════════════════════════════════════════════════

七、常见问题解答

═══════════════════════════════════════════════════════════════════════════════



【Q1:如何修改模板标签分隔符?】

A:编辑 source/include/smarty.php 文件,修改以下两行:

$smarty->left_delimiter = "{#";

$smarty->right_delimiter = "#}";



【Q2:模板缓存如何清理?】

A:删除 data/cache/ 目录下的缓存文件,或在后台系统管理中清理缓存。



【Q3:如何在模板中调用自定义PHP函数?】

A:需要在相应的模块文件中定义函数,然后通过 $smarty->assign() 将结果传递给模板。



【Q4:为什么某些标签不显示内容?】

A:检查以下几点:

1. 标签语法是否正确

2. 数据是否存在

3. 权限设置是否正确

4. 缓存是否需要清理



【Q5:如何实现分页功能?】

A:使用 $weblist 和 $showpage 标签,系统会自动处理分页逻辑。



【Q6:如何自定义404页面?】

A:在模板目录中创建 404.html 文件,使用相应的模板标签。



═══════════════════════════════════════════════════════════════════════════════

八、版本更新说明

═══════════════════════════════════════════════════════════════════════════════



【Version 2.0 更新内容】

1. 新增AI智能简介字段 web_ai_intro

2. 增强网站违规检测功能

3. 优化搜索功能,支持标签搜索

4. 新增多种排序方式

5. 改进缓存机制

6. 增强SEO功能



【兼容性说明】

- 向下兼容旧版本模板

- 新增字段在旧模板中不会报错

- 建议升级模板以使用新功能



═══════════════════════════════════════════════════════════════════════════════

结语

═══════════════════════════════════════════════════════════════════════════════



本文档详细介绍了35DIR系统的所有模板标签和使用方法。在实际开发中,建议:



1. 先熟悉基础标签的使用

2. 根据页面需求选择合适的函数

3. 注意性能优化和缓存策略

4. 保持代码的可读性和维护性

5. 定期更新和备份模板文件



如有疑问,请参考Smarty官方文档或联系技术支持。



文档编写:95DIR开发团队

最后更新:2025年

版权所有:保留所有权利




  • 标签: 95DIR
  • © 版权声明

    💬 文章评论

    正在加载评论统计...

    发表评论

    0/1000字符
    正在加载评论...
    🆕最新收录 📚数据归档 🔥TOP排行 🚫黑名单 不通过 📊数据公示 🗺️站点地图

    95分类目录 - 专业的网站分类目录平台,精心收录 网站目录VIP优质网站站长资讯

    关键词:网站目录 · 网站收录 · 分类目录 · 网站推荐 · 优质网站 · 免费收录

    Monitor your Domain Rating with FrogDR
    Copyright © 2026 95dir.com All Rights Reserved · 鄂ICP备2024062716号-1 · Processed in 0.036384 second(s), 28 Queries, Gzip Enabled
    当前在线 ...| 总访客 ...| 🐧交流群
    百度统计