# 语法核心

##基本语法


```
#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")))  //文章相对路径
....
//填充到结构里面，就是对含有文字描述的结构进行填充
    <li>
        <a href="$thislink" class="mod-vedioList__link">
            <img src="$picurl"  alt="$title">
            <em class="mod-vedioList__tit">$title</em>
        </a>
    </li>
#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")))
<li>
    <a href="$thislink" class="mod-vedioList__link">
        <img src="$picurl"  alt="$title">
        <em class="mod-vedioList__tit">$title</em>
    </a>
</li>
#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")))
    <li>
        <a href="$reallink"></a>
    </li>
#end
```

## 判断语句

```
#if(...)
    ...
#elseif
    ...
#end

```

同样需要注意的也是不要忘记写`#end`, **一个if就对应一个end**