# 语法核心
##基本语法
```
#set ($list=$data.getPicList("杂谈",60,255,0,10))//调用tag,以及确定好数量,具体语法会在下面有说明
#foreach($one in $list)//获取每一条tag数据
这里写你喜欢调用的东西 例如:
#set ($title=$one.getString("title"))//标题
#set ($picurl=$one.getString("picurl"))//图片路径
#set ($thislink=$data.getRelatedUrl($one.getString("articleid"))) //文章相对路径
....
//填充到结构里面,就是对含有文字描述的结构进行填充
$title
#end //结束循环
```
`完整代码`
```
#set ($list=$data.getPicList("杂谈",60,255,0,10))
#foreach($one in $list)
#set ($title=$one.getString("title"))
#set ($picurl=$one.getString("picurl"))
#set ($thislink=$data.getRelatedUrl($one.getString("articleid")))
$title
#end
```
所以说发布器模板(非最终文章页)最**常用**的语法核心就是**循环调用**
```
#foreach($one in $list)
循环体
#end
```
> 特别值得注意的是, 发布器的语法分析器,会根据`#end`来判断语法是否结束,所以新手使用发布器语法的时候, 很容易漏掉, 需加倍小心
## 跨专区调用
本专区调用
```
$data.getPicList(...)
$data.getList(...)
```
跨专区调用
```
$data.getPicListOther(频道id/频道中文名,...)
$data.getListOther(频道id/频道中文名,...)
```
特别需要注意的是,跨专区调用的时候,读取的新闻列表地址,不能用相对地址,要用绝对地址
```
相对地址
#set ($thislink=$data.getRelatedUrl($articleid))
绝对地址
#set ($reallink=$data.getUrl($channelid,$articleid))
```
`跨专区调用完整例子`
```
#set ($list=$data.getPicListOther("首页","试玩解说",60,255,4))
#set ($channel='首页')
#foreach($one in $list)
#set ($reallink=$data.getUrl($channel,$one.getString("articleid")))
#end
```
## 判断语句
```
#if(...)
...
#elseif
...
#end
```
同样需要注意的也是不要忘记写`#end`, **一个if就对应一个end**