jy程序模板标签,仿模板标签,制作模板标签

教程wudecongzi 发表了文章 • 0 个评论 • 559 次浏览 • 2018-08-01 21:18 • 来自相关话题

=====文件介绍目录介绍=====
resources    为模板目录
   web文件夹为PC端模板主题目录,wap为移动端模板主题没有,以下介绍为web文件夹下的 default 主题
└─ ? default - 程序默认主题
? │
? ├─ article资讯块模板文件
?? ├─ article_detail.html ? 资讯内容详细页面
?? ├─ cate_detail.html ? 资讯分类页面
?? ├─ index.html ? 空白页面 防止目录访问
?? ├─ index_index ? 资讯首页
?? ├─ public_common.html ? 公用布局页
?? ├─ public_header.html ? 页眉
?? ├─ public_footer.html ? 页脚
?? ├─ site_detail.html ? 关于网站等详情页面
? ├─ home 主内容模板文件
?? ├─ album_detail.html ? 专辑详细页面
?? ├─ album_index.html ? 专辑页面
?? ├─ album_type.html ? 专辑类型页面
?? ├─ artist_albums.html ? 艺人专辑页面
?? ├─ artist_detail.html ? 艺人详细页面
?? ├─ artist_index.html ? 艺人页面
?? ├─ artist_songs.html ? 艺人歌曲页面
?? ├─ genre_detail.html ? 曲风详细页面
?? ├─ genre_index.html ? 曲风页面
?? ├─ index.html ? 空白页面 防止目录访问
?? ├─ index_index.html ? 网站首页
?? ├─ music_detail.html ? 音乐详细页面
?? ├─ music_down.html ? 音乐下载页面
?? ├─ player_default.html ? 共用播放器调用也(调用方式:{include file="player/default"/}
?? ├─ public_common.html ? 共用布局页面
?? ├─ public_footer.html ? 共用页脚页面
?? ├─ public_header.html ? 共用页眉页面
?? ├─ ranks_detail.html ? 排行榜详细页面
?? ├─ ranks_index.htm ? 排行榜页面
?? ├─ search_album.html ? 搜索专辑显示页面
?? ├─ search_artist.html ? 搜索艺术家显示页面
?? ├─ search_songs.html ? 搜索音乐显示页面
?? ├─ sidebar_adver.html ? 侧边栏广告页面 可多次调用 {include file="sidebar/adver"/}
?? ├─ tag_detail.html ? 风格标签详细页面
?? ├─ tag_index.html ? 风格标签页面
? ├─ assets 资源文件
?? ├─ css ? css文件存放目录
?? ├─ images ? 图片存放目录
?? ├─ js ? js文件存放目录
?├─ user user模块内容模板
?? ├─ account_charge.html ? 账户充值页面
?? ├─ account_index ? 账户页面
?? ├─ account_upgrade.html ? 用户组升级页面
?? ├─ album_create.html ? 专辑创建页面
?? ├─ album_index.html ? 专辑显示页面
?? ├─ auth_activate.htm ? 账户激活页面
?? ├─ auth_login.html ? 用户登录页面
?? ├─ auth_pact.html ? 用户协议页面
?? ├─ auth_reset.html    用户密码重置页面
?? ├─ auth_signup.html ? 用户注册页面
?? ├─ fav_album.html ? 个人专辑收藏
?? ├─ fav_index.html ? 歌曲收藏页面
?? ├─ index.html ? 空白页面 防止目录访问
?? ├─ index_album.html ?个人空间专辑页面
?? ├─ index_common.html ? 个人空间公用页面
?? ├─ index_fans.html ? 个人空间粉丝页面
?? ├─ index_music.html ? 个人空间音乐页面
?? ├─ index_read.html ? 用户个人
?? ├─ message_index.html ? 消息中心
?? ├─ message_read.html ? 消息详情页
?? ├─ music_audit.html ? 个人音乐待审页面
?? ├─ music_back.html ? 个人音乐驳回页面
?? ├─ music_down.html ? 个人音乐下载记录
?? ├─ music_index.html ? 个人音乐记录页
?? ├─ music_share.html ? 音乐分享页面
?? ├─ musician_create.html ? 音乐人认证页面
?? ├─ notice_index.html ? 系统通知页
?? ├─ notice_read.html ? 系统通知详情页
?? ├─ public_common.html ? 中心公用页面
?? ├─ public_footer.html ? 公用页脚页
?? ├─ public_head.html ? 公用头部
?? ├─ relation_fans.html ? 个人粉丝
?? ├─ relation_follow.html ? 个人关注
?? ├─ setting_avatar.html ? 用户头像设置
?? └─ setting_index.html ? 个人资料设置页
? ├─ conf.php ? 主题配置 用于后台显示主题详细信息以及作者信息
? ├─ index.html ? 空白页面 防止目录访问
? └─ screenshot.png ? 主题截图 用于后台显示

=====模板布局=====
模板继承
Thinkphp手册说明如下:模板继承是一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上 层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并 且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义 的区块进行重载
因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块。
每个区块由 标签组成。
下面就是基础模板中的一个典型的区块设计(用于设计网站标 题):
  
{block name="title"}<title> 网站标题 </title>{/block}

block标签必须指定name属性来标识当前区块的名称,这个标识在当前模板中应该是唯一的,block标签 中可以包含任何模板内容,包括其他标签和变量,例如:
{block name="title"}<title>{$web_title}</title>{/block}
你甚至还可以在区块中加载外部文件:
{block name="include"}{include file="public/header" /}{/block}
一个模板中可以定义任意多个名称标识不重复的区块,例如下面定义了一个 Public_common.html 基础模板:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <block name="title"><title> 标题 </title></block>
    </head>
    <body>
        <block name="head"> 导航菜单 </block>
        <block name="left"> 左边分栏 </block>
        <block name="content"> 主内容 </block>
        <block name="right"> 右边分栏</block>
        <block name="footer"> 底部 </block>
    </body>
</html>
然后我们在子模板(其实是当前模块的模板)中使用继承:
    {extend name="public/common" /}
    {block name="title"}<title>{$web_title}</title>{/block}
    
    {block name="head" }
<a href="/">首页</a> 
<a href="{JY:url name='artist'}">艺术家</a> 
... 
    {/block}
    
    {block name="left"}
    左侧内容
    {/block}
 
    {block name="content"}
        <ul>
        {JY:loop name="list"  result="song">            
               <li><a href="" >{$song['name']}</a></li>   
        {/JY:loop}
        </ul>
    {/block}
    
    {block name="right"}
    右侧内容
    {/block}
    
    {block name="footer"}
         底部内容 
    {/block}
可以看到,子模板中使用了extend标签定义需要继承的模板
当然,你完全可以在public_common.html 基础模板里填写 共用的头部、底部、 右侧 、左侧或者其他共同用到的内容, 这样在你的子模板里 不需要再定义对应的区块,他会自动继承public_common.html 基础模板里的内容。
或者使用 标签来再次引用一个共用模板,调用方式如下
    {extend name="public/common" /}
    {block name="title">{$title}</block}
    
    {block name="head" }
{include file="public/header" /}
    {/block}
    
    {block name="left"}
    {include file="public/left" /}
    {/block}
 
    {block name="content"}
        <ul>
        {JY:loop name="list" result="song"}            
               <li><a href="" >{$song['name']}</a></li>   
        {/JY:loop}
        </ul>
    {/block}
    
    {block name="right"}
   {include file="public/right" /}
    {/block}
    
    {block name="footer"} 
         {include file="public/bottom" /}
    {/block}

=======全站通用标签====
resources/web/default/home //PC模板路径
resources/wap/default/home //手机模板路径
weilaidj.com/api/actions/listen.html?id=1
{$web_title}--网站标题
{:config('WEB_SITE_NAME')} ---网站名称
{:config('web_domain')} --网站域名
{:config('WEB_SITE_DESCRIPTION')} --网站介绍
{$meta_title} --网站seo标题
{$meta_keywords} --网站seo关键词
{$meta_description} --网站seo描述
{:config('web_email')} --网站邮箱
{:config('web_qq')} --网站QQ
{:config('web_phone')} ---网站手机
{:config('web_site_icp')} --网站备案号
{:config('WEB_SITE_STAT')} --网站统计
__PUBLIC__ --当前网站的公共目录 /public/
__STATIC__ --当前网站的公共目录 /public/static/
__LIBS__ --当前网站的公共目录 /public/static/libs/
__TMPL__ --当前模板主题目录  默认:/resources/default/web或wap
__ASSETS__ --当前模板主题的资源目录 /resources/[web或wap]/default/assets
__IMG__ --当前模板主题的图片资源目录 /resources/[web或wap]/default/assets/images
__CSS__ --当前模板主题的资源目录 /resources/[web或wap]/default/assets/css
__JS__ --会被替换成当前模板主题的资源目录 /resources/[web或wap]/default/assets/js
在PC模板中使用 __CSS__/css.css,就引用了 /resources/default/assets/css/css.css文件
在模板中使用 __JS__/js.js,就引用了 /resources/default/assets/js/js.css文件
全局URL标签
循输出网站默认url地址 调用方式:
//全局前台页面链接
{JY:url name="album" } //专辑页面链接
{JY:url name="album_type" } //专辑类型页面链接
{JY:url name="artist" } //艺人页面链接
{JY:url name="artist_type" } //艺人类型页面链接
{JY:url name="cate" } //音乐分类页面链接
{JY:url name="tag" } //风格标签页面链接
{JY:url name="ranks" } //排行榜页面链接
{JY:url name="search" } //搜索页面链接
//全局用户链接
{JY:url name="user_captcha" } //用户验证码
{JY:url name="user_pact" } //用户协议
{JY:url name="user_login" } //用户登录展示页面
{JY:url name="user_sign" } //用户提交登录
{JY:url name="user_signup" } //用户注册展示页面
{JY:url name="user_join" } //用户提交登录
{JY:url name="user_logout" } //用户退出登录
{JY:url name="user_findpwd" } //用户找回密码
{JY:url name="oauth_weibo" } //第三方微博登录
{JY:url name="oauth_qq" } //第三方qq登录
{JY:url name="musician_auth" } //音乐人认证展示页
{JY:url name="musician_save" } //音乐认证创建提交
{JY:url name="musician_update" } //音乐人认证更新提交
{JY:url name="user_set" } //用户资料修改展示
{JY:url name="user_send_set" } //用户提交修改资料
{JY:url name="user_avatar" } //用户头像修改展示
{JY:url name="user_send_avatar" } //用户提交头像修改
{JY:url name="user_pwd" } //用户修改密码展示
{JY:url name="user_send_pwd" } //用户提交密码修改
{JY:url name="user_account" } //用户个人账户展示
{JY:url name="user_charge" } //账户充值
{JY:url name="user_upgrade" } //升级用户组
{JY:url name="user_album" } //用户个人专辑
{JY:url name="album_create" } //用户创建专辑
{JY:url name="album_save" } //用户提交创建专辑
{JY:url name="album_edit" } //用户专辑编辑
{JY:url name="album_update" } //用户提交编辑专辑
{JY:url name="user_music" } //用户音乐页面链接
{JY:url name="user_music_audit" } //用户音乐待审
{JY:url name="user_music_back" } //用户音乐驳回
{JY:url name="user_music_down" } //用户音乐下载记录
{JY:url name="music_share" } //用户音乐上传
{JY:url name="music_save" } //用户提交上传音乐
{JY:url name="music_edit" } //用户编辑音乐展示
{JY:url name="music_update" } //用户提交音乐编辑
{JY:url name="user_fav" } //用户收藏
{JY:url name="user_fav_album" } //用户收藏专辑
{JY:url name="user_follow" } //用户关注
{JY:url name="user_fans" } //用户粉丝
{JY:url name="user_msg" } //用户消息
{JY:url name="user_notice" } //系统通知

会员数据调用(全站通用)
======songs 歌曲数据调用=====
{JY:songs result="v"   limit="12" order="create_time"}
result  --自定义定义循环结果集变量名称例如:v,vo
limit    --指定查询结果数量:如20 会 10,20 将会输出第10-20条 之间的数据
order  --指定排序方式查询数据===按照收藏排序favtime,id 倒序排序id,下载排序downoad,点赞排序digg,缓存3600秒3600,随机rank(),
key     --列表ID 注意调用时 直接使用{$i}即可,将会输出 1,2,3,4......
artist  --遍历指定艺术家所有歌曲,属性出现必须指定值
album --遍历指定专辑所有歌曲,属性出现必须指定值
genre  --遍历指定曲风下所有歌曲,属性出现必须指定值
uid      --遍历指定会员下所有歌曲,属性出现必须指定值
pos    --遍历指定推荐位下所有歌曲,属性出现必须指定值,多个推荐位将其值相加
page -1或任意字符,赋值后将会开启分页,对应page变量将会是,$xx['page']
id      --输出指定id或多个id下的歌曲,例如:11或11,22,33,44
cache -缓存时间单位秒,强烈建议使用缓存,缓存一些网站不经常更新的数据以便提升访问速度
{$i} - 循环排位
[{$v['id']} - 输出歌曲id
{$v['name']} - 输出歌曲名称
{$v['name']|msubstr=0,5} - 名称 (字符控制len)
{$v['url']} - 输出歌曲连接
{$v['down_url']} - 输出歌曲下载连接
{$v['up_uid']}  - 输分享者id
{$v['up_uname']}  - 分享者昵称
{$v['user_url']}  - 分享者空间地址
{$v['album_id']}  - 输出专辑id
{$v['album_name']}  - 输出专辑名称
{$v['album_url']}  - 输出专辑连接
{$v['artist_id']}  - 输出艺术家id
{$v['artist_name']}  - 输出艺术家名称
{$v['artist_url']}  - 输出艺术家连接
{$v['genre_id']}  - 输出曲风id
{$v['genre_name']}  - 输出曲风名称
{$v['genre_url']}  - 输出曲风连接
{$v['cover_url']}  - 输出封面地址
{$v['download']}  - 下载次数
{$v['rater']}  - 评分值
{$v['listens']}  - 试听次数
{$v['favtimes']}  - 收藏次数
{$v['digg']}  - 点赞次数
{$v['create_time']}  - 添加时间
{$v['update_time']}  - 更新时间

 分类页歌曲列表
共{$lv_total}首歌曲
分页{$lv_page}
循环输出歌曲数据集 调用方式:
{JY:songs result="v"  属性名称="属性值"  limit="12" order="create_time"}
    <ul>
        <li>{$v['name']}</li>
    </ul>
{/JY:songs}
示例:输出指定歌手id为123下12条歌曲 并按照收藏排序
<ul>
{JY:songs result="v" artist="123"  limit="12" order="favtime"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定专辑id为123下12条歌曲 并按照id 倒序排序
<ul>
{JY:songs result="v" album="123"  limit="12" order="id"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定歌手id为123下12条歌曲 并按照下载排序
<ul>
{JY:songs result="v" artist="123"  limit="12" cache="downoad"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定分类id为3下所有12条歌曲 并按照点赞排序
<ul>
{JY:songs result="v" genre="3"  limit="12" order="digg"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定用户uid为123下12条歌曲 并指定缓存3600秒
<ul>
{JY:songs result="v" uid="123"  limit="12" cache="3600"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定排行榜id为2下随机12条歌曲
<ul>
{JY:songs result="v" rank="2"  limit="12" order="rank()"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定风格标签id为2下12条歌曲
<ul>
{JY:songs result="v" tag="2"  limit="12" order="create_time"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
并且标签可以嵌套使用,可以混合嵌套使用,
混合嵌套, 曲风标签和歌曲标签 嵌套,下面的实例,将会输出每个曲风的同时输出其对应下的歌曲数据
<ul>
    {JY:genre result="g"  limit="12" order="create_time"}
        <li>{$g['name']}</li>
        <ul>
            {JY:songs result="s" genre="$g['id']" limit="12" order="listens"}
                <li><a href="{$s['url']}" >{$s['name']}</a></li>
            {/JY:songs}
        </ul>
    {/JY:genre}
</ul>
或者指定分类id为 1,2,3,4下的歌曲
<ul>
    {JY:genre result="g" id="1,2,3,4" limit="12" order="create_time"}
        <li>{$g['name']}</li>
        <ul>
            {JY:songs result="s" genre="$g['id']"   limit="12" order="listens"}
                <li><a href="{$s['url']}">{$s['name']}</a></li>
            {/JY:songs}
        </ul>
    {/JY:genre}
</ul>

================artist 艺术家标签歌手数据调用==============
//推荐歌手
{JY:artist result="v" limit="11" order="hits"}
 result 自定义定义循环结果集变量名称
limit 指定查询结果数量:如20 会 10,20 将会输出第10-20 之间的数据
order 指定递减排序方式查询数据
type 遍历指定类型下艺术家,属性出现必须指定值
id      输出指定id或多个id下的艺术家,例如:11或11,22,33,44
pos      遍历指定推荐位下所有艺术家,属性出现必须指定值
cache 缓存时间单位秒
歌手连接{$v['url']}
歌手名称{$v['name']}
歌手封面{$v['cover_url']}
{$v['id']}    输出艺人id
{$v['name']} 输出艺人名称
{$v['url']}   输出艺人链接
{$v['type_id']} 输分类型id
{$v['type_name']} 类型名称
{$v['type_url']} 类型链接地址
{$v['region']} 输出所地区名称
{$v['hits']} 点击次数
{$v['favtimes']} 收藏次数
{$v['introduce']} 艺人描述
{$v['cover_url']} 艺术家封面地址
{$v['create_time']} 添加时间
{$v['update_time']} 更新时间
{/JY:artist}
======================专辑数据调用==============
//推荐专辑
更多{JY:url name='album')}
{JY:altype result="vo" id="1" limit="1"}{$vo['name']}{/JY:altype}专辑分类
{JY:album result="v" limit="12" order="position"}
result 自定义定义循环结果集变量名称
limit 指定查询结果数量:如20 会 10,20 将会输出第10-20条之间的数据
order 指定递减排序方式查询数据
artist 遍历指定艺术家下专辑,属性出现必须指定值
type 遍历指定定分类下专辑,属性出现必须指定值
id     输出指定id或多个id下的专辑,例如:11或11,22,33,44
pos     遍历指定推荐位下所有专辑,属性出现必须指定值
cache 缓存时间单位秒
{$v['artist_name']} --所属艺人
{$v['artist_url']} --艺人连接
{$v['type_name']} --所属类型
{$v['url']} --专辑连接地址
{$v['cover_url']} --封面地址
{$v['name']}  --专辑名称
{$v['description']|msubstr=0,30} --专辑简介
{$v['company']}--唱片公司
{$v['hits']} --次浏览
{$v['create_time']|time_format='Y-m-d'} --发布时间
{$v['favtimes']} ---收藏次
{$v['id']}              输出专辑id
{$v['name']}    输出专辑名称
{$v['url']}            输出专辑连接地址
{$v['type_id']} 输分类型id
{$v['type_uname']} 分享类型昵称
{$v['artist_id']} 输出所属艺术家id
{$v['artist_name']} 输出所属艺术家名称
{$v['artist_url']} 输出所属家艺术家连接
{$v['genre_id']} 输出所属曲风id
{$v['genre_name']} 输出所属曲风名称
{$v['genre_url']} 输出所属曲风家连接
{$v['company']}    输出所属唱片公司
{$v['pub_time']} 输出发行时间
{$v['hits']} 点击次数
{$v['favtimes']} 收藏次数
{$v['rater']} 评分值
{$v['likes']} 喜欢次数
{$v['introduce']} 专辑描述
{$v['cover_url']} 专辑封面地址
{$v['create_time']} 添加时间
{$v['update_time']} 更新时间
{$v['artist']}   艺术家标签
{/JY:album}
=================友情链接标签===========
{:hook('pageFooter', ['widget'=>'links'])}
=================tag 音乐标签===========
result 自定义定义循环结果集变量名称
limit 指定查询结果数量:如20 会 10,20 将会输出第10-20 之间的数据
order 指定递减排序方式查询数据
group 遍历指定父级分类下曲风,属性出现必须指定值
cache 缓存时间单位秒
{$v['id']} 输出标签id
{$v['name']} 输出标签名称
{$v['url']} 输出标签连接地址
{$v['count']} 输出标签下所有歌曲数
{$v['create_time']} 添加时间
 {JY:tag result="v"  属性名称="属性值"  limit="12" order="add_time"}
        <li><{$v['name']}></li>
    {/JY:tag}
=================genre 分类标签分类===========
result 自定义定义循环结果集变量名称
limit 指定查询结果数量:如20 会 10,20 将会输出第10-20 之间的数据
order 指定递减排序方式查询数据
pid      遍历指定父级分类下曲风,属性出现必须指定值
id      输出指定id或多个id下的曲风,例如:11或11,22,33,44
tree 设置为1或任意值 将会生成曲风树 ,子变量名称将会是$xxx【'_child'】 注意他是个数组
cache_time 缓存时间单位秒
{JY:genre result="vo" id="1" limit="1"}{$vo['name']}{/JY:genre}
{JY:genre result="vo" limit="20"}
{$v['id']} 输出曲风id
{$v['name']} 输出曲风名称
{$v['url']} 输出曲风连接地址
{$v['pid']} 输出父级id
{$v['description']} 曲风描述
{$v['cover_url']} 曲风封面地址
{$v['create_time']} 添加时间
{$v['update_time']} 更新时间
<a href="{$vo['url']}">{$vo['name']}</a>
{/JY:genre}
//底部导航
{JY:site result="v" limit="5" cache="86400"}
<a hidefocus="true" href="{$v['url']}" target="_blank">{$v['title']}</a>
{/JY:site}
=========member 会员标签========
result 自定义定义循环结果集变量名称
limit 指定查询结果数量:如20 会 10,20 将会输出第10-20 之间的数据
order 指定递减排序方式查询数据
cache 缓存时间单位秒
{$v['uid']} 输出会员id
{$v['nickname']} 输出会员名称
{$v['url']} 输出会员连接地址
$v['songs']} 输出会员所有歌曲数
$v['listens']} 输出会员所有歌曲试听数
$v['follows']} 输出会员所有关注数
$v['fans']} 输出会员所有粉丝数
$v['sex']} 输出会员性别 0:男 1:女
$v['birthday']} 输出会员生日
$v['qq']} 输出会员qq
$v['signature']} 输出会员个人签名
$v['reg_time']} 添加时间
 {JY:member result="v"  属性名称="属性值"  limit="12" order="reg_time"}
        <li>{$v['nickname']}</li>
    {/JY:member}
=================nav一级导航===========
{JY:nav reault="nav"}
{eq name="nav.pid" value="0"}
<li class="t-nav {$nav.active ?= 'current' }">
导航连接{$nav.url}        
{eq name='nav.target' value='1'}_top{$nav.id}{else/}_self{/eq}
导航名称{$nav.title}
</a>
</li>
{/eq}
{/JY:nav}
 {JY:nav name="v" tree="1"}
        <li>
            {$v['title']}
    
            //如果子导航不为空循环子导航结果
            {notempty name="v['_child']"}
                {JY:loop name="v['_child']" result="c">
                    <li>{$c['title']}</li>
                {/JY:loop}
            {/notempty}
        </li>
    {/JY:nav}
=================下一个标签/上一个标签===========
{JY:next result="c" name="album"}
        <a>{$c['name']}</a>
        ....
    {/JY:next}
name songs 字母 输出那个类型,可填参数:album,artist,member,genre,tag...
上一个标签
    {JY:prev result="p" name="album" }
        <a><{$p['name']}></a>
        .....
    {/JY:prev}
name songs 字母 输出那个类型,可填参数:album,artist,member,genre,tag...
=========count 统计标签========
 {JY:count name="album" /}
name songs 不填写将会输出歌曲总量,可填参数:album,artist,member,genre,tag...
注意此标签 无需闭合 也就是不需要</JY:count>,仅仅输出数字

=================自己记录标签===========


=========首页标签========
//最新歌曲
{JY:songs result="v" order="create_time" limit="0,22"}
      <ul  {lt name="i" value="0"}  class="ul"{/lt}>
        <span class="icoc{$i}"></span><a href="{$v['url']}" onClick='return Listen(this.href);' target="play" title="{$v['name']}">{$v['name']}</a>
      </ul>{/JY:songs}

//歌曲标签
{JY:tags result="v" limit="11" order="hits,create_time,id"}
      <a href="{$v['url']}" target="_blank">{$v['name']|msubstr=0,30}</a>
      {/JY:tags}
//顶歌曲
{JY:songs result="v" order="digg" limit="23,12"}
      <ul>
        <i class="icoc{$i}" v="{$v['id']}"></i><a href="{$v['url']}" onClick='return Listen(this.href);' target="play" title="{$v['name']}">{$v['name']}</a>
      </ul>{/JY:songs}
//排行榜
{JY:songs result="lv" rank="fire" limit="12"  order="create_time"}
     <ul>
        <i class="icoc{$i}" v="{$lv['id']}"></i><a href="{$lv['url']}" onClick='return Listen(this.href);' target="play" title="{$lv['name']}">{$lv['name']}</a>
       </ul>{/JY:songs}
//下载排行榜
{JY:songs result="lv" rank="down" limit="12"  order="create_time"}
      <ul>
        <i class="icoc{$i}" v="{$lv['id']}"></i><a href="{$lv['url']}" onClick='return Listen(this.href);' target="play" title="{$lv['name']}">{$lv['name']}</a>
       </ul>{/JY:songs}
//收藏排行榜
{JY:songs result="lv" rank="fav" limit="12"  order="create_time"}
      <ul>
        <i class="icoc{$i}" v="{$lv['id']}"></i><a href="{$lv['url']}" onClick='return Listen(this.href);' target="play" title="{$lv['name']}">{$lv['name']}</a>
       </ul>{/JY:songs}

=========播放页标签========
指定标签出12首歌曲{JY:songs result="v" tags="$g['id']"   limit="12" order="listens"}
SEO歌曲名:{$meta_title}
歌曲名:{$data['name']}
喜欢{$data.likes}
赞:{$data.digg}
歌手:<a href="{$data['artist_url']}">{$data.artist_name}</a>
所属专辑:<a href="{$data['genre_url']}">{$data.genre_name}</a>
点击次数:{$data['listens']}
//上一曲/下一曲
{JY:next name="songs"}
<a class="btn_1" href="{$next['url']}" class="btn pull-right jp-next">下一曲</a>
{/JY:next}
{JY:prev name="songs"}
<a class="btn_1"href="{$prev['url']}" class="btn pull-right jp-previous">上一曲</a>
{/JY:prev}
//分享达人
{JY:member result="v" limit="1" order="songs"}
    <li><a href="{$v['url']}" onClick='return Listen(this.href);' target="_blank" title="{$v['nickname']}"><img src="{$v['avatar']}"><span class="txt">{$v['nickname']}</span></a></li>
{/JY:member}
=========歌曲标签========
//歌曲标签
{notempty name="data['tags']"}
 {JY:loop name="data['tags']" res="tag"}
<a href="{$tag['url']}">{$tag.name}</a>
{/JY:loop}
{/notempty}
//相似歌手歌曲:
{JY:songs result="v" artist="$data['artist_id']" limit="10"}
<li>
<a href="{$v['url']}"  title="{$v['name']}" class="goto_songs">{$v['name']}</a>
<a href="{$v['url']}" title="{$v['name']}"  class="play_icon"></a>
</li>
{/JY:songs}
//相似栏目歌曲
{JY:songs result="v" genre="$data['genre_id']" limit="10"}
<li>
<a href="{$v['url']}"  title="{$v['name']}" class="goto_songs">{$v['name']}</a>
<a href="{$v['url']}" title="{$v['name']}"  class="play_icon"></a>
</li>
{/JY:songs}

关于网站
{JY:site result="v" limit="5" cache="86400"}
<li><a class="tr_delay_hover" href="{$v['url']}">{$v['title']}</a></li>
{/JY:site}
帮助中心
{JY:site type="help" result="v" limit="5" cache="86400"}
<li><a class="tr_delay_hover" href="{$v['url']}">{$v['title']}</a></li>
{/JY:site} 查看全部

=====文件介绍目录介绍=====
resources    为模板目录
   web文件夹为PC端模板主题目录,wap为移动端模板主题没有,以下介绍为web文件夹下的 default 主题
└─ ? default - 程序默认主题
? │
? ├─ article资讯块模板文件
?? ├─ article_detail.html ? 资讯内容详细页面
?? ├─ cate_detail.html ? 资讯分类页面
?? ├─ index.html ? 空白页面 防止目录访问
?? ├─ index_index ? 资讯首页
?? ├─ public_common.html ? 公用布局页
?? ├─ public_header.html ? 页眉
?? ├─ public_footer.html ? 页脚
?? ├─ site_detail.html ? 关于网站等详情页面
? ├─ home 主内容模板文件
?? ├─ album_detail.html ? 专辑详细页面
?? ├─ album_index.html ? 专辑页面
?? ├─ album_type.html ? 专辑类型页面
?? ├─ artist_albums.html ? 艺人专辑页面
?? ├─ artist_detail.html ? 艺人详细页面
?? ├─ artist_index.html ? 艺人页面
?? ├─ artist_songs.html ? 艺人歌曲页面
?? ├─ genre_detail.html ? 曲风详细页面
?? ├─ genre_index.html ? 曲风页面
?? ├─ index.html ? 空白页面 防止目录访问
?? ├─ index_index.html ? 网站首页
?? ├─ music_detail.html ? 音乐详细页面
?? ├─ music_down.html ? 音乐下载页面
?? ├─ player_default.html ? 共用播放器调用也(调用方式:{include file="player/default"/}
?? ├─ public_common.html ? 共用布局页面
?? ├─ public_footer.html ? 共用页脚页面
?? ├─ public_header.html ? 共用页眉页面
?? ├─ ranks_detail.html ? 排行榜详细页面
?? ├─ ranks_index.htm ? 排行榜页面
?? ├─ search_album.html ? 搜索专辑显示页面
?? ├─ search_artist.html ? 搜索艺术家显示页面
?? ├─ search_songs.html ? 搜索音乐显示页面
?? ├─ sidebar_adver.html ? 侧边栏广告页面 可多次调用 {include file="sidebar/adver"/}
?? ├─ tag_detail.html ? 风格标签详细页面
?? ├─ tag_index.html ? 风格标签页面
? ├─ assets 资源文件
?? ├─ css ? css文件存放目录
?? ├─ images ? 图片存放目录
?? ├─ js ? js文件存放目录
?├─ user user模块内容模板
?? ├─ account_charge.html ? 账户充值页面
?? ├─ account_index ? 账户页面
?? ├─ account_upgrade.html ? 用户组升级页面
?? ├─ album_create.html ? 专辑创建页面
?? ├─ album_index.html ? 专辑显示页面
?? ├─ auth_activate.htm ? 账户激活页面
?? ├─ auth_login.html ? 用户登录页面
?? ├─ auth_pact.html ? 用户协议页面
?? ├─ auth_reset.html    用户密码重置页面
?? ├─ auth_signup.html ? 用户注册页面
?? ├─ fav_album.html ? 个人专辑收藏
?? ├─ fav_index.html ? 歌曲收藏页面
?? ├─ index.html ? 空白页面 防止目录访问
?? ├─ index_album.html ?个人空间专辑页面
?? ├─ index_common.html ? 个人空间公用页面
?? ├─ index_fans.html ? 个人空间粉丝页面
?? ├─ index_music.html ? 个人空间音乐页面
?? ├─ index_read.html ? 用户个人
?? ├─ message_index.html ? 消息中心
?? ├─ message_read.html ? 消息详情页
?? ├─ music_audit.html ? 个人音乐待审页面
?? ├─ music_back.html ? 个人音乐驳回页面
?? ├─ music_down.html ? 个人音乐下载记录
?? ├─ music_index.html ? 个人音乐记录页
?? ├─ music_share.html ? 音乐分享页面
?? ├─ musician_create.html ? 音乐人认证页面
?? ├─ notice_index.html ? 系统通知页
?? ├─ notice_read.html ? 系统通知详情页
?? ├─ public_common.html ? 中心公用页面
?? ├─ public_footer.html ? 公用页脚页
?? ├─ public_head.html ? 公用头部
?? ├─ relation_fans.html ? 个人粉丝
?? ├─ relation_follow.html ? 个人关注
?? ├─ setting_avatar.html ? 用户头像设置
?? └─ setting_index.html ? 个人资料设置页
? ├─ conf.php ? 主题配置 用于后台显示主题详细信息以及作者信息
? ├─ index.html ? 空白页面 防止目录访问
? └─ screenshot.png ? 主题截图 用于后台显示

=====模板布局=====
模板继承
Thinkphp手册说明如下:模板继承是一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上 层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并 且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义 的区块进行重载
因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块。
每个区块由 标签组成。
下面就是基础模板中的一个典型的区块设计(用于设计网站标 题):
  
{block name="title"}<title> 网站标题 </title>{/block}

block标签必须指定name属性来标识当前区块的名称,这个标识在当前模板中应该是唯一的,block标签 中可以包含任何模板内容,包括其他标签和变量,例如:
{block name="title"}<title>{$web_title}</title>{/block}
你甚至还可以在区块中加载外部文件:
{block name="include"}{include file="public/header" /}{/block}
一个模板中可以定义任意多个名称标识不重复的区块,例如下面定义了一个 Public_common.html 基础模板:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <block name="title"><title> 标题 </title></block>
    </head>
    <body>
        <block name="head"> 导航菜单 </block>
        <block name="left"> 左边分栏 </block>
        <block name="content"> 主内容 </block>
        <block name="right"> 右边分栏</block>
        <block name="footer"> 底部 </block>
    </body>
</html>
然后我们在子模板(其实是当前模块的模板)中使用继承:
    {extend name="public/common" /}
    {block name="title"}<title>{$web_title}</title>{/block}
    
    {block name="head" }
<a href="/">首页</a> 
<a href="{JY:url name='artist'}">艺术家</a> 
... 
    {/block}
    
    {block name="left"}
    左侧内容
    {/block}
 
    {block name="content"}
        <ul>
        {JY:loop name="list"  result="song">            
               <li><a href="" >{$song['name']}</a></li>   
        {/JY:loop}
        </ul>
    {/block}
    
    {block name="right"}
    右侧内容
    {/block}
    
    {block name="footer"}
         底部内容 
    {/block}
可以看到,子模板中使用了extend标签定义需要继承的模板
当然,你完全可以在public_common.html 基础模板里填写 共用的头部、底部、 右侧 、左侧或者其他共同用到的内容, 这样在你的子模板里 不需要再定义对应的区块,他会自动继承public_common.html 基础模板里的内容。
或者使用 标签来再次引用一个共用模板,调用方式如下
    {extend name="public/common" /}
    {block name="title">{$title}</block}
    
    {block name="head" }
{include file="public/header" /}
    {/block}
    
    {block name="left"}
    {include file="public/left" /}
    {/block}
 
    {block name="content"}
        <ul>
        {JY:loop name="list" result="song"}            
               <li><a href="" >{$song['name']}</a></li>   
        {/JY:loop}
        </ul>
    {/block}
    
    {block name="right"}
   {include file="public/right" /}
    {/block}
    
    {block name="footer"} 
         {include file="public/bottom" /}
    {/block}

=======全站通用标签====
resources/web/default/home //PC模板路径
resources/wap/default/home //手机模板路径
weilaidj.com/api/actions/listen.html?id=1
{$web_title}--网站标题
{:config('WEB_SITE_NAME')} ---网站名称
{:config('web_domain')} --网站域名
{:config('WEB_SITE_DESCRIPTION')} --网站介绍
{$meta_title} --网站seo标题
{$meta_keywords} --网站seo关键词
{$meta_description} --网站seo描述
{:config('web_email')} --网站邮箱
{:config('web_qq')} --网站QQ
{:config('web_phone')} ---网站手机
{:config('web_site_icp')} --网站备案号
{:config('WEB_SITE_STAT')} --网站统计
__PUBLIC__ --当前网站的公共目录 /public/
__STATIC__ --当前网站的公共目录 /public/static/
__LIBS__ --当前网站的公共目录 /public/static/libs/
__TMPL__ --当前模板主题目录  默认:/resources/default/web或wap
__ASSETS__ --当前模板主题的资源目录 /resources/[web或wap]/default/assets
__IMG__ --当前模板主题的图片资源目录 /resources/[web或wap]/default/assets/images
__CSS__ --当前模板主题的资源目录 /resources/[web或wap]/default/assets/css
__JS__ --会被替换成当前模板主题的资源目录 /resources/[web或wap]/default/assets/js
在PC模板中使用 __CSS__/css.css,就引用了 /resources/default/assets/css/css.css文件
在模板中使用 __JS__/js.js,就引用了 /resources/default/assets/js/js.css文件
全局URL标签
循输出网站默认url地址 调用方式:
//全局前台页面链接
{JY:url name="album" } //专辑页面链接
{JY:url name="album_type" } //专辑类型页面链接
{JY:url name="artist" } //艺人页面链接
{JY:url name="artist_type" } //艺人类型页面链接
{JY:url name="cate" } //音乐分类页面链接
{JY:url name="tag" } //风格标签页面链接
{JY:url name="ranks" } //排行榜页面链接
{JY:url name="search" } //搜索页面链接
//全局用户链接
{JY:url name="user_captcha" } //用户验证码
{JY:url name="user_pact" } //用户协议
{JY:url name="user_login" } //用户登录展示页面
{JY:url name="user_sign" } //用户提交登录
{JY:url name="user_signup" } //用户注册展示页面
{JY:url name="user_join" } //用户提交登录
{JY:url name="user_logout" } //用户退出登录
{JY:url name="user_findpwd" } //用户找回密码
{JY:url name="oauth_weibo" } //第三方微博登录
{JY:url name="oauth_qq" } //第三方qq登录
{JY:url name="musician_auth" } //音乐人认证展示页
{JY:url name="musician_save" } //音乐认证创建提交
{JY:url name="musician_update" } //音乐人认证更新提交
{JY:url name="user_set" } //用户资料修改展示
{JY:url name="user_send_set" } //用户提交修改资料
{JY:url name="user_avatar" } //用户头像修改展示
{JY:url name="user_send_avatar" } //用户提交头像修改
{JY:url name="user_pwd" } //用户修改密码展示
{JY:url name="user_send_pwd" } //用户提交密码修改
{JY:url name="user_account" } //用户个人账户展示
{JY:url name="user_charge" } //账户充值
{JY:url name="user_upgrade" } //升级用户组
{JY:url name="user_album" } //用户个人专辑
{JY:url name="album_create" } //用户创建专辑
{JY:url name="album_save" } //用户提交创建专辑
{JY:url name="album_edit" } //用户专辑编辑
{JY:url name="album_update" } //用户提交编辑专辑
{JY:url name="user_music" } //用户音乐页面链接
{JY:url name="user_music_audit" } //用户音乐待审
{JY:url name="user_music_back" } //用户音乐驳回
{JY:url name="user_music_down" } //用户音乐下载记录
{JY:url name="music_share" } //用户音乐上传
{JY:url name="music_save" } //用户提交上传音乐
{JY:url name="music_edit" } //用户编辑音乐展示
{JY:url name="music_update" } //用户提交音乐编辑
{JY:url name="user_fav" } //用户收藏
{JY:url name="user_fav_album" } //用户收藏专辑
{JY:url name="user_follow" } //用户关注
{JY:url name="user_fans" } //用户粉丝
{JY:url name="user_msg" } //用户消息
{JY:url name="user_notice" } //系统通知

会员数据调用(全站通用)
======songs 歌曲数据调用=====
{JY:songs result="v"   limit="12" order="create_time"}
result  --自定义定义循环结果集变量名称例如:v,vo
limit    --指定查询结果数量:如20 会 10,20 将会输出第10-20条 之间的数据
order  --指定排序方式查询数据===按照收藏排序favtime,id 倒序排序id,下载排序downoad,点赞排序digg,缓存3600秒3600,随机rank(),
key     --列表ID 注意调用时 直接使用{$i}即可,将会输出 1,2,3,4......
artist  --遍历指定艺术家所有歌曲,属性出现必须指定值
album --遍历指定专辑所有歌曲,属性出现必须指定值
genre  --遍历指定曲风下所有歌曲,属性出现必须指定值
uid      --遍历指定会员下所有歌曲,属性出现必须指定值
pos    --遍历指定推荐位下所有歌曲,属性出现必须指定值,多个推荐位将其值相加
page -1或任意字符,赋值后将会开启分页,对应page变量将会是,$xx['page']
id      --输出指定id或多个id下的歌曲,例如:11或11,22,33,44
cache -缓存时间单位秒,强烈建议使用缓存,缓存一些网站不经常更新的数据以便提升访问速度
{$i} - 循环排位
[{$v['id']} - 输出歌曲id
{$v['name']} - 输出歌曲名称
{$v['name']|msubstr=0,5} - 名称 (字符控制len)
{$v['url']} - 输出歌曲连接
{$v['down_url']} - 输出歌曲下载连接
{$v['up_uid']}  - 输分享者id
{$v['up_uname']}  - 分享者昵称
{$v['user_url']}  - 分享者空间地址
{$v['album_id']}  - 输出专辑id
{$v['album_name']}  - 输出专辑名称
{$v['album_url']}  - 输出专辑连接
{$v['artist_id']}  - 输出艺术家id
{$v['artist_name']}  - 输出艺术家名称
{$v['artist_url']}  - 输出艺术家连接
{$v['genre_id']}  - 输出曲风id
{$v['genre_name']}  - 输出曲风名称
{$v['genre_url']}  - 输出曲风连接
{$v['cover_url']}  - 输出封面地址
{$v['download']}  - 下载次数
{$v['rater']}  - 评分值
{$v['listens']}  - 试听次数
{$v['favtimes']}  - 收藏次数
{$v['digg']}  - 点赞次数
{$v['create_time']}  - 添加时间
{$v['update_time']}  - 更新时间

 分类页歌曲列表
共{$lv_total}首歌曲
分页{$lv_page}
循环输出歌曲数据集 调用方式:
{JY:songs result="v"  属性名称="属性值"  limit="12" order="create_time"}
    <ul>
        <li>{$v['name']}</li>
    </ul>
{/JY:songs}
示例:输出指定歌手id为123下12条歌曲 并按照收藏排序
<ul>
{JY:songs result="v" artist="123"  limit="12" order="favtime"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定专辑id为123下12条歌曲 并按照id 倒序排序
<ul>
{JY:songs result="v" album="123"  limit="12" order="id"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定歌手id为123下12条歌曲 并按照下载排序
<ul>
{JY:songs result="v" artist="123"  limit="12" cache="downoad"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定分类id为3下所有12条歌曲 并按照点赞排序
<ul>
{JY:songs result="v" genre="3"  limit="12" order="digg"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定用户uid为123下12条歌曲 并指定缓存3600秒
<ul>
{JY:songs result="v" uid="123"  limit="12" cache="3600"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定排行榜id为2下随机12条歌曲
<ul>
{JY:songs result="v" rank="2"  limit="12" order="rank()"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
示例:输出指定风格标签id为2下12条歌曲
<ul>
{JY:songs result="v" tag="2"  limit="12" order="create_time"}
        <li>{$v['name']}</li>
    {/JY:songs}
</ul>
并且标签可以嵌套使用,可以混合嵌套使用,
混合嵌套, 曲风标签和歌曲标签 嵌套,下面的实例,将会输出每个曲风的同时输出其对应下的歌曲数据
<ul>
    {JY:genre result="g"  limit="12" order="create_time"}
        <li>{$g['name']}</li>
        <ul>
            {JY:songs result="s" genre="$g['id']" limit="12" order="listens"}
                <li><a href="{$s['url']}" >{$s['name']}</a></li>
            {/JY:songs}
        </ul>
    {/JY:genre}
</ul>
或者指定分类id为 1,2,3,4下的歌曲
<ul>
    {JY:genre result="g" id="1,2,3,4" limit="12" order="create_time"}
        <li>{$g['name']}</li>
        <ul>
            {JY:songs result="s" genre="$g['id']"   limit="12" order="listens"}
                <li><a href="{$s['url']}">{$s['name']}</a></li>
            {/JY:songs}
        </ul>
    {/JY:genre}
</ul>

================artist 艺术家标签歌手数据调用==============
//推荐歌手
{JY:artist result="v" limit="11" order="hits"}
 result 自定义定义循环结果集变量名称
limit 指定查询结果数量:如20 会 10,20 将会输出第10-20 之间的数据
order 指定递减排序方式查询数据
type 遍历指定类型下艺术家,属性出现必须指定值
id      输出指定id或多个id下的艺术家,例如:11或11,22,33,44
pos      遍历指定推荐位下所有艺术家,属性出现必须指定值
cache 缓存时间单位秒
歌手连接{$v['url']}
歌手名称{$v['name']}
歌手封面{$v['cover_url']}
{$v['id']}    输出艺人id
{$v['name']} 输出艺人名称
{$v['url']}   输出艺人链接
{$v['type_id']} 输分类型id
{$v['type_name']} 类型名称
{$v['type_url']} 类型链接地址
{$v['region']} 输出所地区名称
{$v['hits']} 点击次数
{$v['favtimes']} 收藏次数
{$v['introduce']} 艺人描述
{$v['cover_url']} 艺术家封面地址
{$v['create_time']} 添加时间
{$v['update_time']} 更新时间
{/JY:artist}
======================专辑数据调用==============
//推荐专辑
更多{JY:url name='album')}
{JY:altype result="vo" id="1" limit="1"}{$vo['name']}{/JY:altype}专辑分类
{JY:album result="v" limit="12" order="position"}
result 自定义定义循环结果集变量名称
limit 指定查询结果数量:如20 会 10,20 将会输出第10-20条之间的数据
order 指定递减排序方式查询数据
artist 遍历指定艺术家下专辑,属性出现必须指定值
type 遍历指定定分类下专辑,属性出现必须指定值
id     输出指定id或多个id下的专辑,例如:11或11,22,33,44
pos     遍历指定推荐位下所有专辑,属性出现必须指定值
cache 缓存时间单位秒
{$v['artist_name']} --所属艺人
{$v['artist_url']} --艺人连接
{$v['type_name']} --所属类型
{$v['url']} --专辑连接地址
{$v['cover_url']} --封面地址
{$v['name']}  --专辑名称
{$v['description']|msubstr=0,30} --专辑简介
{$v['company']}--唱片公司
{$v['hits']} --次浏览
{$v['create_time']|time_format='Y-m-d'} --发布时间
{$v['favtimes']} ---收藏次
{$v['id']}              输出专辑id
{$v['name']}    输出专辑名称
{$v['url']}            输出专辑连接地址
{$v['type_id']} 输分类型id
{$v['type_uname']} 分享类型昵称
{$v['artist_id']} 输出所属艺术家id
{$v['artist_name']} 输出所属艺术家名称
{$v['artist_url']} 输出所属家艺术家连接
{$v['genre_id']} 输出所属曲风id
{$v['genre_name']} 输出所属曲风名称
{$v['genre_url']} 输出所属曲风家连接
{$v['company']}    输出所属唱片公司
{$v['pub_time']} 输出发行时间
{$v['hits']} 点击次数
{$v['favtimes']} 收藏次数
{$v['rater']} 评分值
{$v['likes']} 喜欢次数
{$v['introduce']} 专辑描述
{$v['cover_url']} 专辑封面地址
{$v['create_time']} 添加时间
{$v['update_time']} 更新时间
{$v['artist']}   艺术家标签
{/JY:album}
=================友情链接标签===========
{:hook('pageFooter', ['widget'=>'links'])}
=================tag 音乐标签===========
result 自定义定义循环结果集变量名称
limit 指定查询结果数量:如20 会 10,20 将会输出第10-20 之间的数据
order 指定递减排序方式查询数据
group 遍历指定父级分类下曲风,属性出现必须指定值
cache 缓存时间单位秒
{$v['id']} 输出标签id
{$v['name']} 输出标签名称
{$v['url']} 输出标签连接地址
{$v['count']} 输出标签下所有歌曲数
{$v['create_time']} 添加时间
 {JY:tag result="v"  属性名称="属性值"  limit="12" order="add_time"}
        <li><{$v['name']}></li>
    {/JY:tag}
=================genre 分类标签分类===========
result 自定义定义循环结果集变量名称
limit 指定查询结果数量:如20 会 10,20 将会输出第10-20 之间的数据
order 指定递减排序方式查询数据
pid      遍历指定父级分类下曲风,属性出现必须指定值
id      输出指定id或多个id下的曲风,例如:11或11,22,33,44
tree 设置为1或任意值 将会生成曲风树 ,子变量名称将会是$xxx【'_child'】 注意他是个数组
cache_time 缓存时间单位秒
{JY:genre result="vo" id="1" limit="1"}{$vo['name']}{/JY:genre}
{JY:genre result="vo" limit="20"}
{$v['id']} 输出曲风id
{$v['name']} 输出曲风名称
{$v['url']} 输出曲风连接地址
{$v['pid']} 输出父级id
{$v['description']} 曲风描述
{$v['cover_url']} 曲风封面地址
{$v['create_time']} 添加时间
{$v['update_time']} 更新时间
<a href="{$vo['url']}">{$vo['name']}</a>
{/JY:genre}
//底部导航
{JY:site result="v" limit="5" cache="86400"}
<a hidefocus="true" href="{$v['url']}" target="_blank">{$v['title']}</a>
{/JY:site}
=========member 会员标签========
result 自定义定义循环结果集变量名称
limit 指定查询结果数量:如20 会 10,20 将会输出第10-20 之间的数据
order 指定递减排序方式查询数据
cache 缓存时间单位秒
{$v['uid']} 输出会员id
{$v['nickname']} 输出会员名称
{$v['url']} 输出会员连接地址
$v['songs']} 输出会员所有歌曲数
$v['listens']} 输出会员所有歌曲试听数
$v['follows']} 输出会员所有关注数
$v['fans']} 输出会员所有粉丝数
$v['sex']} 输出会员性别 0:男 1:女
$v['birthday']} 输出会员生日
$v['qq']} 输出会员qq
$v['signature']} 输出会员个人签名
$v['reg_time']} 添加时间
 {JY:member result="v"  属性名称="属性值"  limit="12" order="reg_time"}
        <li>{$v['nickname']}</li>
    {/JY:member}
=================nav一级导航===========
{JY:nav reault="nav"}
{eq name="nav.pid" value="0"}
<li class="t-nav {$nav.active ?= 'current' }">
导航连接{$nav.url}        
{eq name='nav.target' value='1'}_top{$nav.id}{else/}_self{/eq}
导航名称{$nav.title}
</a>
</li>
{/eq}
{/JY:nav}
 {JY:nav name="v" tree="1"}
        <li>
            {$v['title']}
    
            //如果子导航不为空循环子导航结果
            {notempty name="v['_child']"}
                {JY:loop name="v['_child']" result="c">
                    <li>{$c['title']}</li>
                {/JY:loop}
            {/notempty}
        </li>
    {/JY:nav}
=================下一个标签/上一个标签===========
{JY:next result="c" name="album"}
        <a>{$c['name']}</a>
        ....
    {/JY:next}
name songs 字母 输出那个类型,可填参数:album,artist,member,genre,tag...
上一个标签
    {JY:prev result="p" name="album" }
        <a><{$p['name']}></a>
        .....
    {/JY:prev}
name songs 字母 输出那个类型,可填参数:album,artist,member,genre,tag...
=========count 统计标签========
 {JY:count name="album" /}
name songs 不填写将会输出歌曲总量,可填参数:album,artist,member,genre,tag...
注意此标签 无需闭合 也就是不需要</JY:count>,仅仅输出数字

=================自己记录标签===========


=========首页标签========
//最新歌曲
{JY:songs result="v" order="create_time" limit="0,22"}
      <ul  {lt name="i" value="0"}  class="ul"{/lt}>
        <span class="icoc{$i}"></span><a href="{$v['url']}" onClick='return Listen(this.href);' target="play" title="{$v['name']}">{$v['name']}</a>
      </ul>{/JY:songs}

//歌曲标签
{JY:tags result="v" limit="11" order="hits,create_time,id"}
      <a href="{$v['url']}" target="_blank">{$v['name']|msubstr=0,30}</a>
      {/JY:tags}
//顶歌曲
{JY:songs result="v" order="digg" limit="23,12"}
      <ul>
        <i class="icoc{$i}" v="{$v['id']}"></i><a href="{$v['url']}" onClick='return Listen(this.href);' target="play" title="{$v['name']}">{$v['name']}</a>
      </ul>{/JY:songs}
//排行榜
{JY:songs result="lv" rank="fire" limit="12"  order="create_time"}
     <ul>
        <i class="icoc{$i}" v="{$lv['id']}"></i><a href="{$lv['url']}" onClick='return Listen(this.href);' target="play" title="{$lv['name']}">{$lv['name']}</a>
       </ul>{/JY:songs}
//下载排行榜
{JY:songs result="lv" rank="down" limit="12"  order="create_time"}
      <ul>
        <i class="icoc{$i}" v="{$lv['id']}"></i><a href="{$lv['url']}" onClick='return Listen(this.href);' target="play" title="{$lv['name']}">{$lv['name']}</a>
       </ul>{/JY:songs}
//收藏排行榜
{JY:songs result="lv" rank="fav" limit="12"  order="create_time"}
      <ul>
        <i class="icoc{$i}" v="{$lv['id']}"></i><a href="{$lv['url']}" onClick='return Listen(this.href);' target="play" title="{$lv['name']}">{$lv['name']}</a>
       </ul>{/JY:songs}

=========播放页标签========
指定标签出12首歌曲{JY:songs result="v" tags="$g['id']"   limit="12" order="listens"}
SEO歌曲名:{$meta_title}
歌曲名:{$data['name']}
喜欢{$data.likes}
赞:{$data.digg}
歌手:<a href="{$data['artist_url']}">{$data.artist_name}</a>
所属专辑:<a href="{$data['genre_url']}">{$data.genre_name}</a>
点击次数:{$data['listens']}
//上一曲/下一曲
{JY:next name="songs"}
<a class="btn_1" href="{$next['url']}" class="btn pull-right jp-next">下一曲</a>
{/JY:next}
{JY:prev name="songs"}
<a class="btn_1"href="{$prev['url']}" class="btn pull-right jp-previous">上一曲</a>
{/JY:prev}
//分享达人
{JY:member result="v" limit="1" order="songs"}
    <li><a href="{$v['url']}" onClick='return Listen(this.href);' target="_blank" title="{$v['nickname']}"><img src="{$v['avatar']}"><span class="txt">{$v['nickname']}</span></a></li>
{/JY:member}
=========歌曲标签========
//歌曲标签
{notempty name="data['tags']"}
 {JY:loop name="data['tags']" res="tag"}
<a href="{$tag['url']}">{$tag.name}</a>
{/JY:loop}
{/notempty}
//相似歌手歌曲:
{JY:songs result="v" artist="$data['artist_id']" limit="10"}
<li>
<a href="{$v['url']}"  title="{$v['name']}" class="goto_songs">{$v['name']}</a>
<a href="{$v['url']}" title="{$v['name']}"  class="play_icon"></a>
</li>
{/JY:songs}
//相似栏目歌曲
{JY:songs result="v" genre="$data['genre_id']" limit="10"}
<li>
<a href="{$v['url']}"  title="{$v['name']}" class="goto_songs">{$v['name']}</a>
<a href="{$v['url']}" title="{$v['name']}"  class="play_icon"></a>
</li>
{/JY:songs}

关于网站
{JY:site result="v" limit="5" cache="86400"}
<li><a class="tr_delay_hover" href="{$v['url']}">{$v['title']}</a></li>
{/JY:site}
帮助中心
{JY:site type="help" result="v" limit="5" cache="86400"}
<li><a class="tr_delay_hover" href="{$v['url']}">{$v['title']}</a></li>
{/JY:site}

采集写规则

回复

教程wudecongzi 回复了问题 • 1 人关注 • 1 个回复 • 944 次浏览 • 2018-05-30 17:30 • 来自相关话题

iis7.5和iis8上传文件大小限制和上传时间限制

教程admin 发表了文章 • 0 个评论 • 331 次浏览 • 2018-02-01 20:30 • 来自相关话题

百度是最好的老师 点击查看配置教程
百度是最好的老师 点击查看配置教程

怎么取消后台验证码登入?

教程admin 回复了问题 • 2 人关注 • 1 个回复 • 505 次浏览 • 2018-01-31 15:01 • 来自相关话题

七牛云存储配置教程

教程admin 发表了文章 • 0 个评论 • 1007 次浏览 • 2018-01-03 13:23 • 来自相关话题

首先保证你在七牛已经注册用户 并且已经创建空间
如果不知道如何创建空间请 移步这里查看 创建教程


 1. 后台应用里点击设置按钮如下图所示:




 
2. 进入界面后设置配置信息如图:
 



  配置七牛AK  和 SK 
 



 如果不知道了这在哪里 请点击这里
 
 配置 Bucket名称
 Bucket名称 就是你再七牛创建的空间名称
 
 配置域名 
 你可以填写七牛分配的域名 也可以 填写自己在七牛绑定的域名
 注意填写域名必须要加上 http(s)://





上图示例是七牛分配的域名 如果多个 随便填写那个都可以
上图所在位置:七牛登录后【首页】 -> 左侧菜单【对象存储】 -> 存储空间列表【创建的空间名称】右侧可以看到
 
  查看全部


首先保证你在七牛已经注册用户 并且已经创建空间
如果不知道如何创建空间请 移步这里查看 创建教程



 1. 后台应用里点击设置按钮如下图所示:
1504352723482634.png

 
2. 进入界面后设置配置信息如图:
 
2.png

  配置七牛AK  和 SK 
 
3.png

 如果不知道了这在哪里 请点击这里
 
 配置 Bucket名称
 Bucket名称 就是你再七牛创建的空间名称
 
 配置域名 
 你可以填写七牛分配的域名 也可以 填写自己在七牛绑定的域名
 注意填写域名必须要加上 http(s)://

4.png

上图示例是七牛分配的域名 如果多个 随便填写那个都可以
上图所在位置:七牛登录后【首页】 -> 左侧菜单【对象存储】 -> 存储空间列表【创建的空间名称】右侧可以看到
 
 

HTML+CSS常用代码

教程admin 发表了文章 • 0 个评论 • 785 次浏览 • 2018-01-01 10:08 • 来自相关话题

HTML即超文本标记语言,是目前应用最为广泛的语言之一,是组成一个网页的主要语言。在现今这个HTML5华丽丽地占领了整个互联网的时候,如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的,程序猿们需要掌握一些必须知道的HTML常用代码,因为只有熟悉掌握了常用的HTML代码,程序猿们在编写网页的时候才可以做到流畅美观,用细腻的思维和创意的细节效果打动并留住网页浏览者。

html+css代码

文本设置
1、font-size: 字号大小 
2、font-style: 字体格式
3、font-weight: 字体粗细
4、颜色属性color: 文本颜色
注意使用网页安全色

超链接设置
text-decoration: 参数
参数取值范围: 
underline:为文字加下划线 
overline:为文字加上划线 
line-through:为文字加删除线 
blink:使文字闪烁 
none:不显示上述任何效果


背景
1、背景颜色
background-color: 设置背景色
2、背景图片
background-image: url(URL)
URL就是背景图片的存放路径,none表示无。
3、背景图片重复
background-repeat: 参数

参数取值范围 :
no-repeat:不重复平铺背景图片
repeat-x:使图片只在水平方向上平铺
repeat-y:使图片只在垂直方向上平铺
如果不指定背景图片重复属性,浏览器默认的是背景图片向水平和垂直两个方向平铺。
4、背景图片固定
background-attachment: 参数

背景图片固定控制背景图片是否随网页的滚动而滚动。如果不设置背景图片固定属性,浏览器默认背景图片随网页的滚动而滚动。为了避免过于花哨的背景图片在滚动时转移浏览者的注意力,一般都设为固定。

参数取值范围:
fixed:网页滚动时,背景图片相对于浏览器的窗口而言,固定不动
scroll:网页滚动时,背景图片相对于浏览器的窗口而言,一起滚动

区块
1、单词间距 
word-spacing: 单词间距 
2、字母间距 
letter-spacing: 字母间距
3、文本对齐
text-align: 参数
参数的取值:
left:左对齐
right:右对齐
center:居中对齐
justify:相对左右两端对齐
4、垂直对齐
vertical-align: 参数
top:顶对齐
bottom:底对齐
text-top:相对文本顶对齐
text-bottom:相对文本底对齐
baseline:基准线对齐
middle:中心对齐
sub:以下标的形式显示
super:以上标的形式显示
5、文本缩进
text-indent: 缩进距离
12px相当于一个文字距离
6、空格
white-space: 参数

参数取值范围: 

normal 默认,空白会被浏览器忽略

pre 保留空白

nowrap 文本不换行
7、显示样式 
display: 参数 
参数取值范围: 
block:块级元素,在对象前后都换行 
inline:在对象前后都不换行 
list-item:在对象前后都换行,增加了项目符号 
none:无显示

方框
1、height 高度
2、width 宽度
3、padding 内边距
4、margin 外边距
5、float(浮动):可以让块级元素在一行中排列,例如横向菜单。 
6、clear 清除浮动

边框
1、样式
border style 参数
边框样式的参数:
none:无边框 
dotted:边框为点线
dashed:边框为长短线
solid:边框为实线
double:边框为双线
2、宽度 border width 
3、颜色 border color

列表
list-style-type 列表样式
不同浏览器的列表符可能不相同,可能会影响到网页,所以网页中的列表大多都是由背景图片显示。
控制用户界面的样式

鼠标
cursor:鼠标形状参数 
CSS鼠标形状参数表: 
鼠标形状:CSS代码
style="cursor:hand"      手形
style="cursor:crosshair"   十字形
style="cursor:text"      文本形
style="cursor:wait"      沙漏形
style="cursor:move"     十字箭头形:
style="cursor:help"      问号形
style="cursor:e-resize"    右箭头形
style="cursor:n-resize"    上箭头形
style="cursor:nw-resize"   左上箭头形
style="cursor:w-resize"    左箭头形
style="cursor:s-resize"    下箭头形 
style="cursor:se-resize"   右下箭头形 
style="cursor:sw-resize"   左下箭头形               查看全部
HTML即超文本标记语言,是目前应用最为广泛的语言之一,是组成一个网页的主要语言。在现今这个HTML5华丽丽地占领了整个互联网的时候,如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的,程序猿们需要掌握一些必须知道的HTML常用代码,因为只有熟悉掌握了常用的HTML代码,程序猿们在编写网页的时候才可以做到流畅美观,用细腻的思维和创意的细节效果打动并留住网页浏览者。

html+css代码

文本设置
1、font-size: 字号大小 
2、font-style: 字体格式
3、font-weight: 字体粗细
4、颜色属性color: 文本颜色
注意使用网页安全色

超链接设置
text-decoration: 参数
参数取值范围: 
underline:为文字加下划线 
overline:为文字加上划线 
line-through:为文字加删除线 
blink:使文字闪烁 
none:不显示上述任何效果


背景
1、背景颜色
background-color: 设置背景色
2、背景图片
background-image: url(URL)
URL就是背景图片的存放路径,none表示无。
3、背景图片重复
background-repeat: 参数

参数取值范围 :
no-repeat:不重复平铺背景图片
repeat-x:使图片只在水平方向上平铺
repeat-y:使图片只在垂直方向上平铺
如果不指定背景图片重复属性,浏览器默认的是背景图片向水平和垂直两个方向平铺。
4、背景图片固定
background-attachment: 参数

背景图片固定控制背景图片是否随网页的滚动而滚动。如果不设置背景图片固定属性,浏览器默认背景图片随网页的滚动而滚动。为了避免过于花哨的背景图片在滚动时转移浏览者的注意力,一般都设为固定。

参数取值范围:
fixed:网页滚动时,背景图片相对于浏览器的窗口而言,固定不动
scroll:网页滚动时,背景图片相对于浏览器的窗口而言,一起滚动

区块
1、单词间距 
word-spacing: 单词间距 
2、字母间距 
letter-spacing: 字母间距
3、文本对齐
text-align: 参数
参数的取值:
left:左对齐
right:右对齐
center:居中对齐
justify:相对左右两端对齐
4、垂直对齐
vertical-align: 参数
top:顶对齐
bottom:底对齐
text-top:相对文本顶对齐
text-bottom:相对文本底对齐
baseline:基准线对齐
middle:中心对齐
sub:以下标的形式显示
super:以上标的形式显示
5、文本缩进
text-indent: 缩进距离
12px相当于一个文字距离
6、空格
white-space: 参数

参数取值范围: 

normal 默认,空白会被浏览器忽略

pre 保留空白

nowrap 文本不换行
7、显示样式 
display: 参数 
参数取值范围: 
block:块级元素,在对象前后都换行 
inline:在对象前后都不换行 
list-item:在对象前后都换行,增加了项目符号 
none:无显示

方框
1、height 高度
2、width 宽度
3、padding 内边距
4、margin 外边距
5、float(浮动):可以让块级元素在一行中排列,例如横向菜单。 
6、clear 清除浮动

边框
1、样式
border style 参数
边框样式的参数:
none:无边框 
dotted:边框为点线
dashed:边框为长短线
solid:边框为实线
double:边框为双线
2、宽度 border width 
3、颜色 border color

列表
list-style-type 列表样式
不同浏览器的列表符可能不相同,可能会影响到网页,所以网页中的列表大多都是由背景图片显示。
控制用户界面的样式

鼠标
cursor:鼠标形状参数 
CSS鼠标形状参数表: 
鼠标形状:CSS代码
style="cursor:hand"      手形
style="cursor:crosshair"   十字形
style="cursor:text"      文本形
style="cursor:wait"      沙漏形
style="cursor:move"     十字箭头形:
style="cursor:help"      问号形
style="cursor:e-resize"    右箭头形
style="cursor:n-resize"    上箭头形
style="cursor:nw-resize"   左上箭头形
style="cursor:w-resize"    左箭头形
style="cursor:s-resize"    下箭头形 
style="cursor:se-resize"   右下箭头形 
style="cursor:sw-resize"   左下箭头形              

阿里云OSS 配置教程

教程admin 发表了文章 • 0 个评论 • 893 次浏览 • 2018-01-01 09:48 • 来自相关话题

1.后台应用里点击设置按钮




2.输入以下配置信息




3.设置你的阿里云OSS允许跨域,设置如下图:




 
1.后台应用里点击设置按钮
1504352723482634.png

2.输入以下配置信息
1502497412494714.png

3.设置你的阿里云OSS允许跨域,设置如下图:
1502497553769810.png

 

JYmusic 安装教程

教程admin 发表了文章 • 0 个评论 • 1522 次浏览 • 2018-01-01 04:00 • 来自相关话题

程序安装

将【JYmusic程序文件】目录下的所有文件使用 FTP 软件以二进制方式上传到空间后,设置文件权限

├─ addons 目录(包括子目录)必须有可写权限
├─ config 文件夹 必须有可写权限
├─ app 文件夹(包括子目录) 必须有可写权限
├─ resources 目录(包括子目录)必须有可写权限
├─ storage 文件夹 必须有可写权限
├─ uploads 文件夹以及子目录必须有可写权限

 请注意 : 只需要给以上指定的文件夹及文件权限即可

使用 FTP 软件登录您的服务器,将服务器上以上目录、以及该指定目录下面的所有文件的属性设置为 777,Win 主机请设置internet 来宾帐户可读写属性 
 
开始安装
上传并设置权限完毕后,在浏览器访问你的站点地址,如图所示:




阅读协议后点击“同意并安装”,系统会自动检查环境及文件目录权限,如图所示:




系统会自动安装数据直至完毕,如图所示: 查看全部
程序安装

将【JYmusic程序文件】目录下的所有文件使用 FTP 软件以二进制方式上传到空间后,设置文件权限

├─ addons 目录(包括子目录)必须有可写权限
├─ config 文件夹 必须有可写权限
├─ app 文件夹(包括子目录) 必须有可写权限
├─ resources 目录(包括子目录)必须有可写权限
├─ storage 文件夹 必须有可写权限
├─ uploads 文件夹以及子目录必须有可写权限

 请注意 : 只需要给以上指定的文件夹及文件权限即可

使用 FTP 软件登录您的服务器,将服务器上以上目录、以及该指定目录下面的所有文件的属性设置为 777,Win 主机请设置internet 来宾帐户可读写属性 
 
开始安装
上传并设置权限完毕后,在浏览器访问你的站点地址,如图所示:
1501516005279217.jpg

阅读协议后点击“同意并安装”,系统会自动检查环境及文件目录权限,如图所示:
1501516070872125.jpg

系统会自动安装数据直至完毕,如图所示:
1501516134745561.jpg