Difference between revisions of "VbzWiki:Code/lib/data"

From VbzWiki
Jump to navigation Jump to search
(→‎GetBlogEntryBrief(): syntax update)
(→‎ShowRecentBlogEntries(max, funcEntry): bug fix - was including listing page and repeating entries many times (this fix may not be complete))
 
(One intermediate revision by the same user not shown)
Line 199: Line 199:
 
</func>
 
</func>
 
==ShowRecentBlogEntries(max, funcEntry)==
 
==ShowRecentBlogEntries(max, funcEntry)==
 +
Calls GetBlogEntryBrief() by default; $funcEntry overrides that.
 
<func ShowRecentBlogEntries max funcEntry>
 
<func ShowRecentBlogEntries max funcEntry>
 
   <let name=idx />
 
   <let name=idx />
Line 204: Line 205:
 
     <let name=funcEntry val="GetBlogEntryBrief" />
 
     <let name=funcEntry val="GetBlogEntryBrief" />
 
   </if>
 
   </if>
   <let name=including val=1 />
+
   <let name=sqlFilt>(cl_to='Data/blog/post') AND (page_id != </let>
   <for table="categorylinks AS cl LEFT JOIN page AS p ON cl_from=page_id" where="(cl_to='Data/blog/post')" sort="page_title DESC" limit=$max name=pg hide>
+
  <let name=sqlFilt append val=@title.id />
 +
  <let name=sqlFilt append>)</let>
 +
   <for table="categorylinks AS cl LEFT JOIN page AS p ON cl_from=page_id" where=$sqlFilt sort="page_title DESC" limit=$max name=pg hide>
 
     <let name=pg_nspace_code>{{ns:</let>
 
     <let name=pg_nspace_code>{{ns:</let>
 
     <let name=pg_nspace_code append val=@row.page_namespace />
 
     <let name=pg_nspace_code append val=@row.page_namespace />

Latest revision as of 17:10, 6 October 2013

GetLinkBrief()

<func GetLinkBrief>

   <let name=links.out>
  • </let>
   <let name=links.out append copy=data[Date] />
   <let name=links.out append> :[[</let>
   <let name=links.out append copy=pg_title />
   <let name=links.out append>|more]]:[[Talk:</let>
   <let name=links.out append copy=pg_title />
   <let name=links.out append>|talk]]: </let>
   <if flag=data[wpage]>
     <let name=wtLink>[[</let>
     <let name=wtLink append copy=data[wpage] />
     <let name=wtLink append>|</let>
     <let name=wtLink append copy=data[Title] />
     <let name=wtLink append>]] § </let>
   </if><else>
     <let name=wtLink>[</let>
     <let name=wtLink append copy=data[URL] />
     <let name=wtLink append> </let>
     <let name=wtLink append copy=data[Title] />
     <let name=wtLink append>]</let>
   </else>
   <let name=links.out append copy=wtLink />
   <let name=links.out append> § </let>
   <let name=text copy=data[TextShort] />
   <if flag=text></if><else>
     <let name=text copy=data[Text] len=200 />
   </else>
   <let name=links.out append copy=text trim />
   <let name=links.out append> [[</let>
   <let name=links.out append copy=pg_title />
   <let name=links.out append>|more...]]</let>

</func>

ShowRecentLinks(max)

<func ShowRecentLinks max>

 <let name=idx />
 <let name=including val=1 />
 <for table="qryW3_Titles_Catgs" where="(cl_to='Data/links') AND (page_namespace=0)" sort="page_title DESC" limit=$max name=pg hide>
   <let name=pg_title val="@row.page_title" />
   <let name=idx inc />
   <if not flag=noLoad>
     <load page=$pg_title />
   </if>
   <if flag=data[Title]>
     <call GetLinkBrief />
   </if><else>
     <let name=links.out>
  • [[</let>
     <let name=links.out append copy=pg_title />
     <let name=links.out append>]]</let>
   </else>
   <let name=links.rtn append copy=links.out />
   <let name=links.out />
   <let name=data />
 </for>

</func>

ShowTopic(iTopic,iMax)

This should eventually be able to show data in any format: news links, blog entries... <func ShowTopic iTopic iMax>

 <let name=idx />
 <let name=including val=1 />
 <let name=topic farg=iTopic />
 <if not flag=topic>
   <let name=topic parse>Code/lib/data</let>
 </if>
 <let name=topic self with="_"> </let>
 <let name=sqlWhere>(page_namespace=0) AND (cl_to='</let>
 <let name=sqlWhere append copy=topic />
 <let name=sqlWhere append>')</let>
 <for table="qryW3_Titles_Catgs" where=$sqlWhere sort="page_title DESC" name=pg empty="no items yet" limit=$iMax hide>
   <let name=pg_title val="@row.page_title" />
   <let name=idx inc />
   <if not flag=noLoad>
     <load page=$pg_title local />
   </if>
   <if flag=data[Title]>
     <call GetBrief />
   </if><else>
     <let name=links.out>
  • [[</let>
     <let name=links.out append copy=pg_title />
     <let name=links.out append>]]</let>
   </else>
   <let name=exclude val=0 />
   <let name=links.rtn append copy=links.out />
   <let name=data null />
 </for>

</func>

GetBlogEntryBrief()

<func GetBlogEntryBrief> INPUT:

 data[*] - from blog entry page
 pg_name - full name of page being displayed (including namespace)
   <if not flag=$noLoad>
     <load page=$pg_name />
   </if>
   <let name=e.out>
  • </let>
   <let name=e.out append copy=data[TimeStamp] />
   <let name=e.out append> [[</let>
   <let name=e.out append copy=pg_name />
   <let name=e.out append>|</let>
   <let name=e.out append copy=data[Title] />
   <let name=e.out append>]] § </let>
   <let name=text copy=data[TextAbove] />
   <if flag=$text></if><else>
     <let name=text copy=data[TextBelow] len=200 />
   </else>
   <let name=e.out append copy=text trim />
   <let name=e.out append> [[</let>
   <let name=e.out append copy=pg_name />
   <let name=e.out append>|more...]]</let>

</func>

GetBlogEntryBriefChrisFormat()

<func GetBlogEntryBriefChrisFormat> INPUT:

 data[*] - from blog entry page
 pg_name - full name of page being displayed (including namespace)
   <if not flag=noLoad>
     <load page=$pg_name />
   </if>
   <let name=e.out></let>
   <let name=e.out append>[[</let>
   <let name=e.out append copy=pg_name />
   <let name=e.out append>|</let>
   <let name=e.out append copy=data[Title] />
   <let name=e.out append>]], </let>
   <let name=e.out append copy=data[TimeStamp] />
   <let name=e.out append>

</let>

   <let name=text copy=data[TextAbove] />
   <if flag=text></if><else>
     <let name=text copy=data[TextBelow] len=200 />
   </else>
   <let name=e.out append copy=text trim />
   <let name=e.out append> [[</let>
   <let name=e.out append copy=pg_name />
   <let name=e.out append>|more...]]

</let> </func>

GetBlogEntryFull()

<func GetBlogEntryFull> INPUT:

 data[*] - from blog entry page
 pg_name - full name of page being displayed (including namespace)
   <if not flag=noLoad>
     <load page=$pg_name />
   </if>
   <let name=e.out>

==</let>

   <let name=e.out append copy=data[Title] />
   <let name=e.out append>==

posted at </let>

   <let name=e.out append copy=data[TimeStamp] />
   <let name=e.out append>

</let>

   <let name=e.out append copy=data[TextAbove] />
   <let name=e.out append copy=BlogFoldDivider />
   <let name=e.out append copy=data[TextBelow] />

-- category display

   <let name=e.out append copy=BlogFoldDivider />
   <let name=e.out append>

Categories –</let>

   <let name=noCat val=1 />
   <call MakeBlogCatgs />
   <if flag=wtCatGlob>
     <let name=e.out append> general: </let>
     <let name=e.out append copy=wtCatGlob>
   </if>
   <if flag=wtCatUser>
     <let name=e.out append> user: </let>
     <let name=e.out append copy=wtCatUser>
   </if>
   <let name=e.out append></let>

</let> </func>

ShowRecentBlogEntries(max, funcEntry)

Calls GetBlogEntryBrief() by default; $funcEntry overrides that. <func ShowRecentBlogEntries max funcEntry>

 <let name=idx />
 <if not flag=$funcEntry>
   <let name=funcEntry val="GetBlogEntryBrief" />
 </if>
 <let name=sqlFilt>(cl_to='Data/blog/post') AND (page_id != </let>
 <let name=sqlFilt append val=@title.id />
 <let name=sqlFilt append>)</let>
 <for table="categorylinks AS cl LEFT JOIN page AS p ON cl_from=page_id" where=$sqlFilt sort="page_title DESC" limit=$max name=pg hide>
   <let name=pg_nspace_code>{{ns:</let>
   <let name=pg_nspace_code append val=@row.page_namespace />
   <let name=pg_nspace_code append>}}</let>
   <let name=pg_nspace copy=pg_nspace_code parse />
   <let name=pg_title val="@row.page_title" />
   <let name=pg_name copy=pg_nspace />
   <let name=pg_name append>:</let>
   <let name=pg_name append copy=pg_title />
   <let name=idx inc />
   <call func=$funcEntry />
   <let name=e.rtn append copy=e.out />
   <let name=data />
 </for>

</func>

ShowRecentBlogEntriesFull(max)

<func ShowRecentBlogEntriesFull max>

 <let name=idx />
 <let name=including val=1 />
 <for table="qryW3_Titles_Catgs" where="(cl_to='Data/blog/post')" sort="page_title DESC" limit=$max name=pg hide>
   <let name=pg_nspace_code>{{ns:</let>
   <let name=pg_nspace_code append val=@row.page_namespace />
   <let name=pg_nspace_code append>}}</let>
   <let name=pg_nspace copy=pg_nspace_code parse />
   <let name=pg_title val="@row.page_title" />
   <let name=pg_name copy=pg_nspace />
   <let name=pg_name append>:</let>
   <let name=pg_name append copy=pg_title />
   <let name=idx inc />
   <call GetBlogEntryFull />
   <let name=e.rtn append copy=e.out />
   <let name=data />
 </for>

</func>

ShowRecentBlogEntriesByTopic(max,iTopic)

<func ShowRecentBlogEntriesByTopic max iTopic>

 <let name=idx />
 <let name=including val=1 />
 <let name=topic farg=iTopic />
 <let name=topic self with="_"> </let>
 <let name=sqlWhere>(cl_to='</let>
 <let name=sqlWhere append copy=topic />
 <let name=sqlWhere append>')</let>
 <let name=noLoad val=1 />
 <for table="qryW3_Titles_Catgs" where=$sqlWhere sort="page_title DESC" limit=$max hide>
   <let name=pg_nspace_code>{{ns:</let>
   <let name=pg_nspace_code append val=@row.page_namespace />
   <let name=pg_nspace_code append>}}</let>
   <let name=pg_nspace copy=pg_nspace_code parse />
   <let name=pg_title val="@row.page_title" />
   <let name=pg_name copy=pg_nspace />
   <let name=pg_name append>:</let>
   <let name=pg_name append copy=pg_title />
   <let name=idx inc />
   <let name=data[Title] null />
   <load page=$pg_name />
   <if flag=data[Title]>
     <call GetBlogEntryBrief />
     <let name=e.rtn append copy=e.out />
   </if>
   <let name=data />
 </for>

</func>

MakeBlogCatgs()

<func MakeBlogCatgs>

 <let name=catUser copy=data[TopicsUser] />
 <let name=catGlob copy=data[TopicsGlobal] />
 <let name=wtCatUser null />
 <xploop list=$catUser var=topic>
   <let name=wtCatUser append> [[user:</let>
   <let name=wtCatUser append copy=data[User] />
   <let name=wtCatUser append>/</let>
   <let name=wtCatUser append copy=topic />
   <let name=wtCatUser append>|</let>
   <let name=wtCatUser append copy=topic />
   <let name=wtCatUser append>]]</let>
   <let name=wtCatUser append>[[:category:user/</let>
   <let name=wtCatUser append copy=data[User] />
   <let name=wtCatUser append>/</let>
   <let name=wtCatUser append copy=topic />
   <let name=wtCatUser append>|c]]</let>
   <if not flag=noCat>
     <let name=wtCatUser append> [[category:user/</let>
     <let name=wtCatUser append copy=data[User] />
     <let name=wtCatUser append>/</let>
     <let name=wtCatUser append copy=topic />
     <let name=wtCatUser append>|</let>
     <let name=wtCatUser append copy=topic />
     <let name=wtCatUser append>]]</let>
   </if>
 </xploop>
 <let name=wtCatGlob null />
 <xploop list=$catGlob var=topic>
   <let name=wtCatGlob append> [[</let>
   <let name=wtCatGlob append copy=topic />
   <let name=wtCatGlob append>]]</let>
   <let name=wtCatGlob append>[[:category:</let>
   <let name=wtCatGlob append copy=topic />
   <let name=wtCatGlob append>|c]]</let>
   <if not flag=noCat>
     <let name=wtCatGlob append>[[category:</let>
     <let name=wtCatGlob append copy=topic />
     <let name=wtCatGlob append>]]</let>
   </if>
 </xploop>

</func>

ShowBlogPostPage()

<func ShowBlogPostPage>

 <let name=PostDate copy=data[TimeStamp] len=10 />
 <let name=wtDate>[[</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>]] ([[:category:</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>|category]])</let>
 <let name=wtDate append>[[category:</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>]]</let>
 <let name=wtTitle>

==</let>

 <let name=wtTitle append copy=data[Title] />
 <let name=wtTitle append>==</let>
 <if flag=data[TextAbove]>
   <let name=wtTextBrief>

In Brief </let>

   <let name=wtTextFull>

The Rest </let>

   <let name=wtTextBrief append copy=data[TextAbove] />
 </if><else>
   <let name=wtTextBrief null />
 </else>
 <let name=wtTextFull append copy=data[TextBelow] />
 <call MakeBlogCatgs />

General categories for blog posts: -- the fact that it's a post:

 <let name=wtCatGlob append></let>

-- date:

 <let name=wtCatGlob append>[[category:</let>
 <let name=wtCatGlob append copy=PostDate len=10 /> -- just the date for the category
 <let name=wtCatGlob append>|]]</let>
 <let name=wtCatGlob append copy=PostDate /> -- full timestamp for sorting
 <let name=wtCatGlob append>]]</let>
 <let name=user copy=data[User] />
 <if flag=user>
   <let name=wtUser>[[user:</let>
   <let name=wtUser append copy=user />
   <let name=wtUser append>|</let>
   <let name=wtUser append copy=user />
   <let name=wtUser append>]]</let>
 </if><else>
   <let name=wtUser>unknown</let>
 </else>
 <echo>

<get name=wtTitle /> <get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull />


Specs

Timestamp: <get name=PostDate />
Author: <get name=wtUser />
User topics: <get name=wtCatUser />
Global topics: <get name=wtCatGlob />

</echo>

</func> <func ShowBlogPostPage_v1>

 <let name=PostDate copy=data[TimeStamp] len=10 />
 <let name=wtDate>[[</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>]] ([[:category:</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>|category]])</let>
 <let name=wtDate append>[[category:</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>]]</let>
 <let name=wtTitle>

==</let>

 <let name=wtTitle append copy=data[Title] />
 <let name=wtTitle append>==</let>
 <if flag=data[TextAbove]>
   <let name=wtTextBrief>

In Brief

</let>

   <let name=wtTextFull>

Full Story

</let>

   <let name=wtTextBrief append copy=data[TextAbove] />
 </if><else>
   <let name=wtTextBrief null />
 </else>
 <let name=wtTextFull append copy=data[TextBelow] />
 <call MakeBlogCatgs />

General categories for blog posts: -- the fact that it's a post:

 <let name=wtCatGlob append></let>

-- date:

 <let name=wtCatGlob append>[[category:</let>
 <let name=wtCatGlob append copy=PostDate len=10 /> -- just the date for the category
 <let name=wtCatGlob append>|]]</let>
 <let name=wtCatGlob append copy=PostDate /> -- full timestamp for sorting
 <let name=wtCatGlob append>]]</let>
 <let name=user copy=data[User] />
 <if flag=user>
   <let name=wtUser>[[user:</let>
   <let name=wtUser append copy=user />
   <let name=wtUser append>|</let>
   <let name=wtUser append copy=user />
   <let name=wtUser append>]]</let>
 </if><else>
   <let name=wtUser>unknown</let>
 </else>
 <echo>

Specs

Timestamp: <get name=PostDate />
Author: <get name=wtUser />
User topics: <get name=wtCatUser />
Global topics: <get name=wtCatGlob />

<get name=wtTitle /> <get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull /></echo> </func>