@cms.model id=modelId!>
<#assign
model=object
fieldList=model.fieldList![]
requiredFieldList=model.requiredFfieldList![]
/>
<@cms.category id=categoryId!><#assign category=object/>@cms.category>
<#assign urlExtendFieldTypes=['file','image','video']>
<#assign privateUrlExtendFieldTypes=['privatefile','privateimage','privatevideo']>
<#assign editorExtendFieldTypes=['editor','tinymce','ckeditor']>
<#macro getExtendData extend>
<#if urlExtendFieldTypes?seq_contains(extend.inputType)>
${r'${(attribute.'+extend.id.code+r')!}'}
<#elseif editorExtendFieldTypes?seq_contains(extend.inputType)>
${r'${(attribute.'+extend.id.code+r'?no_esc)!}'}
<#elseif privateUrlExtendFieldTypes?seq_contains(extend.inputType)>
${r'${getPrivateUrl(attribute.'+extend.id.code+r')!}'}
<#elseif 'category'=extend.inputType>
<#if extend.multiple>
<#noparse><@cms.category ids=attribute.#noparse>${extend.id.code}<#noparse>>
<#list map as k,v>
${v.name} <#sep>,
#list>
@cms.category>#noparse>
<#else>
<#noparse><@cms.category id=attribute.#noparse>${extend.id.code}<#noparse>>${object.name} @cms.category>#noparse>
#if>
<#elseif 'content'=extend.inputType>
<#if extend.multiple>
<#noparse><@cms.content ids=attribute.#noparse>${extend.id.code}<#noparse>>
<#list map as k,v>
${v.title} <#sep>,
#list>
@cms.content>#noparse>
<#else>
<#noparse><@cms.content id=attribute.#noparse>${extend.id.code}<#noparse>>${object.title} @cms.content>#noparse>
#if>
<#elseif 'user'=extend.inputType>
<#if extend.multiple>
<#noparse><@sys.user ids=attribute.#noparse>${extend.id.code}<#noparse>>
<#list map as k,v>
${v.nickname} <#sep>,
#list>
@sys.user>#noparse>
<#else>
<#noparse><@sys.user id=attribute.#noparse>${extend.id.code}<#noparse>>${object.nickname}@sys.user>#noparse>
#if>
<#elseif 'tag'=extend.inputType>
<#if extend.multiple>
<#noparse><@cms.tag ids=attribute.#noparse>${extend.id.code}<#noparse>>
<#list map as k,v>
${v.name} <#sep>,
#list>
@cms.tag>#noparse>
<#else>
<#noparse><@cms.tag id=attribute.#noparse>${extend.id.code}<#noparse>>${object.name}@cms.tag>#noparse>
#if>
<#elseif 'color'=extend.inputType>
<#noparse>text #noparse>
<#elseif 'survey'=extend.inputType>
<#if extend.multiple>
<#noparse><@cms.survey ids=attribute.#noparse>${extend.id.code}<#noparse>>
<#list map as k,v>
${v.title} <#sep>,
#list>
@cms.survey>#noparse>
<#else>
<#noparse><@cms.survey id=attribute.#noparse>${extend.id.code}<#noparse>>${object.title}@cms.survey>#noparse>
#if>
<#elseif 'vote'=extend.inputType>
<#if extend.multiple>
<#noparse><@cms.vote ids=attribute.#noparse>${extend.id.code}<#noparse>>
<#list map as k,v>
${v.title} <#sep>,
#list>
@cms.vote>#noparse>
<#else>
<#noparse><@cms.vote id=attribute.#noparse>${extend.id.code}<#noparse>>${object.title}@cms.vote>#noparse>
#if>
<#elseif 'tagType'=extend.inputType>
<#if extend.multiple>
<#noparse><@cms.tagType ids=attribute.#noparse>${extend.id.code}<#noparse>>
<#list map as k,v>
${v.name} <#sep>,
#list>
@cms.tagType>#noparse>
<#else>
<#noparse><@cms.tagType id=attribute.#noparse>${extend.id.code}<#noparse>>${object.name}@cms.tagType>#noparse>
#if>
<#elseif 'categoryType'=extend.inputType>
<#if extend.multiple>
<#noparse><@cms.categoryType ids=attribute.#noparse>${extend.id.code}<#noparse>>
<#list map as k,v>
${v.name} <#sep>,
#list>
@cms.categoryType>#noparse>
<#else>
<#noparse><@cms.categoryType id=attribute.#noparse>${extend.id.code}<#noparse>>${object.name}@cms.categoryType>#noparse>
#if>
<#elseif 'dictionary'=extend.inputType>
<#if extend.multiple>
<#noparse><@cms.dictionaryData dictionaryId='#noparse>${extend.dictionaryId}<#noparse>' values=attribute.#noparse>${extend.id.code}<#noparse>>
<#list map as k,d>${k}:${d.text}<#sep>,#list>
@cms.dictionaryData>#noparse>
<#else>
<#noparse><@cms.dictionaryData dictionaryId='#noparse>${extend.dictionaryId}<#noparse>' value=attribute.#noparse>${extend.id.code}<#noparse>>${object.id.value}:${object.text}@cms.dictionaryData>#noparse>
#if>
<#elseif 'dept'=extend.inputType>
<#if extend.multiple>
<#noparse><@sys.dept ids=attribute.#noparse>${extend.id.code}<#noparse>>
<#list map as k,v>
${v.name} <#sep>,
#list>
@sys.dept>#noparse>
<#else>
<#noparse><@sys.dept id=attribute.#noparse>${extend.id.code}<#noparse>>${object.name}@sys.dept>#noparse>
#if>
<#elseif 'keyvalue'=extend.inputType>
<#noparse>
#noparse><@t.page "key"/><#noparse>
#noparse><@t.page "value"/><#noparse>
<#list attribute.#noparse>${extend.id.code}<#noparse>?split(",")?chunk(2) as row>
<#list row as a>${a} #list>
#list>
#noparse>
<#elseif 'alphaColor'=extend.inputType>
<#noparse>text
#noparse>
<#elseif 'textarea'=extend.inputType>
<#noparse><#list (attribute.#noparse>${extend.id.code}<#noparse>!"")?split("\n") as a>${a}<#sep> #list>#noparse>
<#else>
${r'${(attribute.'+extend.id.code+r')!}'}
#if>
#macro>
<#assign formContent>
<#noparse>
<@cms.model id=content.modelId><#assign model=object/>@cms.model>
<#if !category?has_content><@cms.category id=content.categoryId><#assign category=object/>@cms.category>#if>
<#macro bread category>
<#if category.parentId?has_content>
<@cms.category id=category.parentId>
<@bread object/>
${object.name} >
@cms.category>
#if>
#macro>
#noparse><@t.page 'model'/><#noparse>:
${(model.name)!}
#noparse>${(model.fieldTextMap['title'])!}<#noparse>:
${(content.copied?then('[#noparse><@t.page 'copied'/><#noparse>]',''))!} ${(content.title)!}
#noparse><@t.page 'content.score'/><#noparse>:
${content.score!}
<#if 1=content.status>
#noparse><@t.page 'inspector'/><#noparse>:
<@sys.user id=content.checkUserId;user>${(user.nickname)!}@sys.user>
#if>
#noparse><#if model.onlyUrl>${(model.fieldTextMap['url'])!}<#else><@t.page 'url'/>#if><#noparse>:
${(content.url)!}
<#if content.copied>
#noparse>${(model.fieldTextMap['source'])!}<#noparse>:
${(attribute.source)!}
#if>
#noparse><#if fieldList?seq_contains('author')><#noparse>
#noparse>${(model.fieldTextMap['author'])!}<#noparse>:
${(content.author)!}
#noparse>#if><#noparse>
#noparse><#if fieldList?seq_contains('editor')><#noparse>
#noparse>${(model.fieldTextMap['editor'])!}<#noparse>:
${(content.editor)!}
#noparse>#if><#noparse>
<#if (content.tagIds)?has_content>
#noparse>${(model.fieldTextMap['tag'])!}<#noparse>:
<@cms.tag ids=content.tagIds>
<#list map as k,tag>
${k}:${tag.name}<#sep>,
#list>
@cms.tag>
#if>
#noparse><@t.page 'publish_date'/><#noparse>:
${(content.publishDate)!}<#if content.expiryDate?has_content> - ${(content.expiryDate)!}#if>
#noparse>
<#if category?has_content&&category.extendId?has_content>
<@sys.extendFieldList extendId=category.extendId>
<#list list as extend>
<#noparse>
#noparse>${extend.name}<#noparse>:
#noparse><@getExtendData extend/><#noparse>
#noparse>
#list>
@sys.extendFieldList>
#if>
<#if model.extendList?has_content>
<#list model.extendList as extend>
<#noparse>
#noparse>${extend.name}<#noparse>:
#noparse><@getExtendData extend/><#noparse>
#noparse>
#list>
#if>
<#noparse>
<#if content.hasImages>
#noparse><@t.page 'image_list'/><#noparse>:
<@cms.contentFileList contentId=content.id fileTypes='image'>
<#list page.list as file>
${(file.description)!}
#list>
@cms.contentFileList>
#if>
<#if content.hasFiles>
#noparse><@t.page 'attach_list'/><#noparse>:
<@cms.contentFileList contentId=content.id fileTypes='video,audio,document,other'>
<#list page.list as file>
${(file.description)!}
#list>
@cms.contentFileList>
#if>
<#if content.hasProducts>
#noparse><@t.page 'product_list'/><#noparse>:
<@cms.contentProductList contentId=content.id>
<#list page.list as product>
<#if product.cover?has_content>
${product.title}
#if>
#noparse><@t.page 'title'/><#noparse>: ${product.title}
#noparse><@t.page 'product.price'/><#noparse>: ${product.price}
#noparse><@t.page 'product.inventory'/><#noparse>: ${product.inventory}
#noparse><@t.page 'product.sales'/><#noparse>: ${product.sales}
#list>
@cms.contentProductList>
#if>
<#if content.cover?has_content>
#noparse>${(model.fieldTextMap['cover'])!}<#noparse>:
#if>
<#if fieldList?seq_contains('description')>
#noparse>${(model.fieldTextMap['description'])!}<#noparse>:
<#list (content.description!'')?split('\n') as line>${line}<#sep> #list>
#if>
<#if fieldList?seq_contains('content')>
#noparse>${(model.fieldTextMap['content'])!}<#noparse>(${(attribute.wordCount)!}):
${(attribute.text?no_esc)!}
#if>
<#if page?has_content>
<#if content.url?contains('?')><#assign pageParameter="pageIndex"/>#if>
<#if !page.firstPage>
Previous page
<#else>
Previous page
#if>
<#list 1..page.totalCount as n>
<#if n=page.pageIndex>
${n}
<#else>
${n}
#if>
#list>
<#if !page.lastPage>
Next page
<#else>
Next page
#if>
#if>
<@cms.contentList categoryId=category.id endPublishDate=content.publishDate orderField='publishDate' pageIndex=2 pageSize=1><#if 2=page.pageIndex><#list page.list as a>
Previous:${a.title} #list>#if>@cms.contentList>
<@cms.contentList categoryId=category.id startPublishDate=content.publishDate orderField='publishDate' orderType='asc' pageIndex=1 pageSize=1><#list page.list as a>
Next:${a.title} #list>@cms.contentList>
<@cms.contentRelatedList contentId=content.id>
<#if page.totalCount gt 0>
#noparse><@t.page 'recommend_info'/><#noparse>:
<#list page.list as a>
${(a.title)!}
#list>
#if>
@cms.contentRelatedList>
<#macro merge name value><#if !.vars[name]??><@"<#assign ${name}=''>"?interpret />#if><#if value?has_content><@"<#assign ${name}=${name}+'${value},'>"?interpret />#if>#macro>
<@cms.commentList contentId=content.id pageSize=10>
<#list page.list as a>
<@merge 'userIds' a.userId!/>
<@merge 'userIds' a.replyUserId!/>
#list>
<@sys.user ids=userIds!><#assign userMap=map!/>@sys.user>
<#list page.list as a>
${(userMap[a.userId?string].nickname)!}<#if a.replyUserId?has_content> reply ${(userMap[a.replyUserId?string].nickname)!}#if>:
${a.text!}
#list>
@cms.commentList>
#noparse>
#assign>
@cms.model>
<@t.page 'model'/>:
${(model.name)!}
<#if category?has_content>
<@t.page 'category'/>:
${(category.name)!}
#if>
<@t.page 'source_code'/>: