美文网首页工作生活
利用动易SF制作资讯类小程序(1)

利用动易SF制作资讯类小程序(1)

作者: 吴加明 | 来源:发表于2019-07-04 18:19 被阅读0次

资讯类小程序制作过程:
在服务器的动易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 &gt; 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>
    &lt;script language="JavaScript" type="text/JavaScript" src="<xsl:value-of select="pe:InstallDir()" />Common/GetHits.aspx?id=<xsl:value-of select="/NewDataSet/Table/GeneralID"/>"&gt;&lt;/script&gt;
   </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>

相关文章

网友评论

    本文标题:利用动易SF制作资讯类小程序(1)

    本文链接:https://www.haomeiwen.com/subject/aetdhctx.html