资讯类小程序制作过程:
在服务器的动易SF端,主要涉及到模板制作,有以下2个主要模板:
1、栏目列表页模板:
{"pages":"{PE.Label id="分页数2" nodeid="4" pagesz="4" /}","articles":[{PE.Label id="简讯信息列表" nodeid="4" page="true" pagesize="4" urlpage="true" /}]}
其中2个标签的内容:
“分页数2”标签:
<?xml version="1.0" encoding="utf-8"?>
<root>
<LabelType>接口类</LabelType>
<LabelIntro>
</LabelIntro>
<OutType>sin</OutType>
<LabelDataType>sql_sysquery</LabelDataType>
<EnabelAjax>False</EnabelAjax>
<Version officialVersion="" modifiedVersions="5904" compatibleVersion="" />
<LabelTemplate><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pe="labelproc" exclude-result-prefixes="pe">
<xsl:param name="pagesz" />
<xsl:output method="html" />
<xsl:template match="/">
<xsl:variable name="total" select="count(/NewDataSet/Table)"/>
<xsl:variable name="_P1">
<xsl:value-of select="substring-before(format-number($total div $pagesz,'#.00'),'.')" />
</xsl:variable>
<xsl:variable name="_P2">
<xsl:value-of select="$total mod $pagesz"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$_P2 > 0">
<xsl:value-of select="$_P1 + 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$_P1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>]]></LabelTemplate>
<attributes>
<name>nodeid</name>
<datatype>sql.int</datatype>
<default>4</default>
<intro>参数说明</intro>
</attributes>
<IsXsltSql>false</IsXsltSql>
<IsXsltCountSql>false</IsXsltCountSql>
<LabelSqlString><![CDATA[select CM.GeneralID from PE_CommonModel CM where CM.NodeID in (select * From SplitID((select arrChildID from PE_Nodes where NodeID=@nodeid),','))]]></LabelSqlString>
<attributes>
<name>pagesz</name>
<datatype>supersql</datatype>
<default>4</default>
<intro>参数说明</intro>
</attributes>
</root>
“简讯信息列表”标签:
<?xml version="1.0" encoding="utf-8"?>
<root>
<LabelType>接口类</LabelType>
<LabelIntro>
</LabelIntro>
<OutType>sin</OutType>
<LabelDataType>sql_sysquery</LabelDataType>
<EnabelAjax>False</EnabelAjax>
<Version officialVersion="" modifiedVersions="5287" compatibleVersion="" />
<attributes>
<name>nodeid</name>
<datatype>supersql</datatype>
<default>1</default>
<intro>节点ID</intro>
</attributes>
<UsePage>True</UsePage>
<IsXsltSql>true</IsXsltSql>
<IsXsltCountSql>true</IsXsltCountSql>
<LabelSqlString><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:param name="nodeid"/>
<xsl:param name="orderno"/>
<xsl:param name="filter"/>
<xsl:template match="/">
<root>
<sql>
select top @pagesize CM.* From PE_CommonModel CM where CM.GeneralID not in
(select top @startrow ICM.GeneralID from PE_CommonModel ICM where ICM.NodeID in (select * From SplitID((select arrChildID from PE_Nodes where NodeID=@nodeid),',')) and ICM.Status = 99 order by ICM.Updatetime desc) and CM.NodeID in (select * From SplitID((select arrChildID from PE_Nodes where NodeID=@nodeid),',')) and CM.Status = 99 order by CM.Updatetime desc
</sql>
<countsql>
select count(CM.GeneralID) from PE_CommonModel CM where CM.NodeID in (select * From SplitID((select arrChildID from PE_Nodes where NodeID=@nodeid),','))
</countsql>
</root>
</xsl:template>
</xsl:transform>]]></LabelSqlString>
<LabelSqlCount><![CDATA[请在上面的<countsql></countsql>标记之间写分页SQL查询语句
select count(id) from database]]></LabelSqlCount>
<LabelTemplate><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pe="labelproc" exclude-result-prefixes="pe">
<xsl:output method="html" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:param name="titleLength"/>
<xsl:param name="displayNewSign" />
<xsl:template match="NewDataSet">
<xsl:choose>
<xsl:when test="Table">
<xsl:for-each select="Table">
<xsl:variable name="defaultPic">https://www.whxsxsy.com<xsl:choose>
<xsl:when test="DefaultPicUrl != ''">
<xsl:value-of select="pe:ConvertAbsolutePath(pe:GetAnySizePic(DefaultPicUrl,60,60))"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="pe:UpLoadDir()"/>wutu.jpg
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
{"id":"<xsl:value-of select="GeneralID"/>","defaultpic":"<xsl:value-of select="pe:ToUX4($defaultPic)"/>","date":"<xsl:value-of select="pe:FormatDate(UpdateTime, 'yyyy-mm-dd')"/>","title":"<xsl:value-of select="Title"/>"}
<xsl:if test="position()!=last()">,</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<span class="missing_data">还没有任何内容!</span>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>]]></LabelTemplate>
<attributes>
<name>orderno</name>
<datatype>supersql</datatype>
<default>3</default>
<intro>排序方式</intro>
</attributes>
<attributes>
<name>outnum</name>
<datatype>sql.int</datatype>
<default>5</default>
<intro>参数说明</intro>
</attributes>
<attributes>
<name>displayNewSign</name>
<datatype>supersql</datatype>
<default>5</default>
<intro>参数说明</intro>
</attributes>
<attributes>
<name>titleLength</name>
<datatype>int</datatype>
<default>50</default>
<intro>标题长度</intro>
</attributes>
</root>
2、内容页模板:
{PE.DataSource id="cone" datasource="文章_内容页" itemId="@RequestInt_id" xslt="true" /}
{"content":"{PE.Field id="cone" fieldname="Content2" /}","title":"{PE.Field id="cone" fieldname="Title2" /}","date":"{PE.Field id="cone" fieldname="UpdateTime" /}","copyfrom":"{PE.Field id="cone" fieldname="CopyFrom" /}"}
“文章_内容页”标签的内容:
<?xml version="1.0" encoding="utf-8"?>
<root>
<LabelDataType>sql_sysquery</LabelDataType>
<LabelType>数据源</LabelType>
<LabelImage>../../Admin/Images/LabelIco/GetPicArticle.gif</LabelImage>
<LabelIntro>
</LabelIntro>
<LabelSqlString> SELECT TOP 1 *
FROM
PE_CommonModel CM
INNER JOIN PE_U_Article UT ON (CM.ItemID = UT.ID)
WHERE
CM.GeneralID = @itemId AND
CM.Status = 99
</LabelSqlString>
<LabelTemplate><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pe="labelproc" exclude-result-prefixes="pe">
<xsl:output method="xml" />
<xsl:param name="itemId"/>
<xsl:template match="/">
<root>
<!--FieldTipsStart-->
<GeneralID>
<xsl:value-of select="/NewDataSet/Table/GeneralID"/>
</GeneralID>
<NodeID>
<xsl:value-of select="/NewDataSet/Table/NodeID"/>
</NodeID>
<Title>
<xsl:value-of select="/NewDataSet/Table/Title"/>
</Title>
<TitleIntact>
<xsl:choose>
<xsl:when test="/NewDataSet/Table/TitleIntact !=''">
<xsl:value-of select="/NewDataSet/Table/TitleIntact"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="/NewDataSet/Table/Title"/>
</xsl:otherwise>
</xsl:choose>
</TitleIntact>
<Subheading>
<xsl:value-of select="/NewDataSet/Table/Subheading"/>
</Subheading>
<Content>
<xsl:choose>
<xsl:when test="/NewDataSet/Table/PaginationType = '手动分页'">
{PE.ContentPage id="contentpage" mode="manual" pagesize="<xsl:value-of select="/NewDataSet/Table/MaxCharPerPage" />" urlpage="true"}
</xsl:when>
<xsl:when test="/NewDataSet/Table/PaginationType = '自动分页'">
{PE.ContentPage id="contentpage" mode="auto" pagesize="<xsl:value-of select="/NewDataSet/Table/MaxCharPerPage" />" urlpage="true"}
</xsl:when>
<xsl:otherwise>
{PE.ContentPage id="contentpage" mode="none"}
</xsl:otherwise>
</xsl:choose>
<xsl:value-of disable-output-escaping="yes" select="pe:ContentRemoveXss(pe:FiltText(pe:FiltInsideLink(/NewDataSet/Table/Content)))" />
{/PE.ContentPage}
</Content>
<Vote>
<xsl:value-of select="pe:GetVoteForm(/NewDataSet/Table/GeneralID)"/>
</Vote>
<LinkAuthor>
<xsl:value-of select="pe:EncodeText(/NewDataSet/Table/Author,'urlencode')"/>
</LinkAuthor>
<Author>
<xsl:value-of select="/NewDataSet/Table/Author"/>
</Author>
<Intro>
<xsl:value-of select="pe:EncodeText(/NewDataSet/Table/Intro,'htmlencode')"/>
</Intro>
<Keyword>
<xsl:value-of select="pe:Trim(pe:EncodeText(pe:ReplaceText(/NewDataSet/Table/Keyword,'|',','),'htmlencode'),',')"/>
</Keyword>
<LinkCopyFrom>
<xsl:value-of select="pe:EncodeText(/NewDataSet/Table/CopyFrom,'urlencode')"/>
</LinkCopyFrom>
<CopyFrom>
<xsl:choose>
<xsl:when test="/NewDataSet/Table/CopyFrom!=''">
<xsl:value-of select="/NewDataSet/Table/CopyFrom"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="pe:ToUX4('未知')"/>
</xsl:otherwise>
</xsl:choose>
</CopyFrom>
<UpdateTime>
<xsl:value-of select="pe:FormatDate(/NewDataSet/Table/UpdateTime,'yyyy-mm-dd')"/>
</UpdateTime>
<TitleFontColor>
color:<xsl:value-of select="/NewDataSet/Table/TitleFontColor"/>
</TitleFontColor>
<TitleFontType>
{PE.Label id="转换标题字型" titleFontType="<xsl:value-of select="/NewDataSet/Table/TitleFontType"/>" /}
</TitleFontType>
<ArticleProtect>
<xsl:value-of select="pe:GetNodeEnableProtect(/NewDataSet/Table/NodeID)" />
</ArticleProtect>
<Hits>
<script language="JavaScript" type="text/JavaScript" src="<xsl:value-of select="pe:InstallDir()" />Common/GetHits.aspx?id=<xsl:value-of select="/NewDataSet/Table/GeneralID"/>"></script>
</Hits>
<DayHits>
<xsl:value-of select="/NewDataSet/Table/DayHits"/>
</DayHits>
<WeekHits>
<xsl:value-of select="/NewDataSet/Table/WeekHits"/>
</WeekHits>
<MonthHits>
<xsl:value-of select="/NewDataSet/Table/MonthHits"/>
</MonthHits>
<!--FieldTipsEnd-->
<Content2>
<xsl:value-of select="pe:ToUX4(/NewDataSet/Table/Content)" />
</Content2>
<Title2>
<xsl:value-of select="pe:ToUX4(/NewDataSet/Table/Title)"/>
</Title2>
</root>
</xsl:template>
</xsl:transform>]]></LabelTemplate>
<attributes>
<name>itemId</name>
<datatype>sql.int</datatype>
<default>5</default>
<intro>文章ID{默认值:1,传入值:@RequestInt_Id}</intro>
</attributes>
<OutType>
</OutType>
<CacheTime>0</CacheTime>
<EnabelAjax>False</EnabelAjax>
<IsXsltSql>false</IsXsltSql>
<IsXsltCountSql>false</IsXsltCountSql>
<Version officialVersion="" modifiedVersions="5601" compatibleVersion="" />
</root>
网友评论