Difference between revisions of "HypertWiki:Code/lib/data"
Jump to navigation
Jump to search
(we always show the category now; non-category-displaying should be a separate function) |
(revised format for specs footer) |
||
(40 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==GetLinkBrief()== | |||
<func GetLinkBrief> | |||
<func | |||
<let name=links.out> | <let name=links.out> | ||
* '''</let> | * '''</let> | ||
Line 11: | Line 10: | ||
<let name=links.out append>|talk]]: </let> | <let name=links.out append>|talk]]: </let> | ||
<if flag=data[wpage]> | <if flag=$data[wpage]> | ||
<let name=wtLink>[[</let> | <let name=wtLink>[[</let> | ||
<let name=wtLink append copy=data[wpage] /> | <let name=wtLink append copy=data[wpage] /> | ||
<let name=wtLink append>|</let> | <let name=wtLink append>|</let> | ||
<let name=wtLink append copy=data[Title] /> | <let name=wtLink append copy=data[Title] /> | ||
<let name=wtLink append>]]</let> | <let name=wtLink append>]] § </let> | ||
</if><else> | </if><else> | ||
<let name=wtLink>[</let> | <let name=wtLink>[</let> | ||
Line 29: | Line 28: | ||
<let name=text copy=data[TextShort] /> | <let name=text copy=data[TextShort] /> | ||
<if flag=text></if><else> | <if flag=$text></if><else> | ||
<let name=text copy=data[Text] len=200 /> | <let name=text copy=data[Text] len=200 /> | ||
</else> | </else> | ||
Line 39: | Line 38: | ||
</func> | </func> | ||
==ShowRecentLinks(max)== | |||
<func ShowRecentLinks max> | <func ShowRecentLinks max> | ||
<let name=idx /> | <let name=idx /> | ||
<let name=including val=1 /> | <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> | <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 | <let name=pg_title val="@row.page_title" /> | ||
<let name=idx inc /> | <let name=idx inc /> | ||
<if not flag=noLoad> | <if not flag=$noLoad> | ||
<load page=$pg_title | <load page=$pg_title /> | ||
</if> | </if> | ||
<if flag=data[Title]> | <if flag=$data[Title]> | ||
<call | <call GetLinkBrief /> | ||
</if><else> | </if><else> | ||
<!-- if no new-style data, just display link to page so we can fix the problem: --> | <!-- if no new-style data, just display link to page so we can fix the problem: --> | ||
Line 63: | Line 62: | ||
</for> | </for> | ||
</func> | </func> | ||
==ShowTopic(iTopic,iMax)== | |||
This should eventually be able to show data in any format: news links, blog entries... | |||
<func ShowTopic iTopic iMax> | <func ShowTopic iTopic iMax> | ||
<let name=idx /> | <let name=idx /> | ||
<let name=including val=1 /> | <let name=including val=1 /> | ||
<let name=topic farg=iTopic /> | <let name=topic farg=iTopic /> | ||
<if not flag=topic> | <if not flag=$topic> | ||
<let name=topic parse>{{PAGENAME}}</let> | <let name=topic parse>{{PAGENAME}}</let> | ||
</if> | </if> | ||
Line 78: | Line 78: | ||
<for table="qryW3_Titles_Catgs" where=$sqlWhere sort="page_title DESC" name=pg empty="no items yet" limit=$iMax hide> | <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 | <let name=pg_title val="@row.page_title" /> | ||
<let name=idx inc /> | <let name=idx inc /> | ||
<if not flag=noLoad> | <if not flag=$noLoad> | ||
<load page=$pg_title local | <load page=$pg_title local /> | ||
</if> | </if> | ||
<if flag=data[Title]> | <if flag=$data[Title]> | ||
<call GetBrief /> | <call GetBrief /> | ||
</if><else> | </if><else> | ||
Line 96: | Line 96: | ||
</for> | </for> | ||
</func> | </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 /> | |||
<let 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><big>[[</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>]]</big>, ''</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> | ||
<let name=e.out append copy=data[Title] /> | |||
<let name=e.out append>== | |||
''<small>posted at </let> | |||
<let name= | <let name=e.out append copy=data[TimeStamp] /> | ||
<let name=e.out append></small>'' | |||
</let> | </let> | ||
<let name= | <let name=e.out append copy=data[TextAbove] /> | ||
=== | <let name=e.out append copy=BlogFoldDivider /> | ||
</let> | <let name=e.out append copy=data[TextBelow] /> | ||
<let name= | -- category display | ||
</if>< | <let name=e.out append copy=BlogFoldDivider /> | ||
<let name= | <let name=e.out append> | ||
</ | <small>'''Categories''' –</let> | ||
<let name= | <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></small></let> | |||
</small></let> | |||
</func> | |||
==ShowRecentBlogEntries(max,funcEntry)== | |||
<func ShowRecentBlogEntries max funcEntry> | |||
<let name=idx /> | |||
<if not flag=$funcEntry> | |||
<let name=funcEntry val="GetBlogEntryBrief" /> | |||
</if> | |||
<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 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,topic)== | |||
<func ShowRecentBlogEntriesByTopic max topic> | |||
<let name=topic self with="_"> </let> | |||
<let name=sql>(cl_to='</let> | |||
<let name=sql>SELECT q1.* FROM qryW3_Titles_Catgs AS q1 LEFT JOIN qryW3_Titles_Catgs AS q2 ON q1.cl_from=q2.cl_from WHERE (q1.cl_to='Data/blog/post') AND (q2.cl_to='</let> | |||
<let name=sql append copy=topic /> | |||
<let name=sql append>') ORDER BY page_title DESC LIMIT </let> | |||
<let name=sql append copy=max /> | |||
<for sql=$sql> | |||
<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=catUser copy=data[TopicsUser] /> | ||
<let name=catGlob copy=data[TopicsGlobal] /> | <let name=catGlob copy=data[TopicsGlobal] /> | ||
Line 144: | Line 287: | ||
<let name=wtCatUser append>|c]]'''</sub></let> | <let name=wtCatUser append>|c]]'''</sub></let> | ||
<let name=wtCatUser append> [[category:user/</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> | </xploop> | ||
<let name=wtCatGlob null /> | <let name=wtCatGlob null /> | ||
Line 162: | Line 307: | ||
<let name=wtCatGlob append>|c]]'''</sub></let> | <let name=wtCatGlob append>|c]]'''</sub></let> | ||
<let name=wtCatGlob append>[[category:</let> | <if not flag=$noCat> | ||
<let name=wtCatGlob append>[[category:</let> | |||
<let name=wtCatGlob append copy=topic /> | |||
<let name=wtCatGlob append>]]</let> | |||
</if> | |||
</xploop> | </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>__NOEDITSECTION__ | |||
==</let> | |||
<let name=wtTitle append copy=data[Title] /> | |||
<let name=wtTitle append>==</let> | |||
<if flag=$data[TextAbove]> | |||
<let name=wtTextBrief> | |||
<span class=blog-post-section-hdr>In Brief</span> | |||
</let> | |||
<let name=wtTextFull> | |||
<hr> | |||
<span class=blog-post-section-hdr>The Rest</span> | |||
</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>[[category:data/blog/post]]</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>__NOEDITSECTION__ | |||
<get name=wtTitle /> | |||
<get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull /> | |||
<hr> | |||
<div align=right style="font-size: 75%; line-height: 75%;">Posted by <get name=wtUser /> at <get name=PostDate />. <b>Topics</b>: <get name=wtCatUser /> <get name=wtCatGlob /></echo> | |||
</func> | |||
==ShowBlogPostPage_v2()== | |||
<func ShowBlogPostPage_v2> | |||
<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>__NOEDITSECTION__ | |||
==</let> | |||
<let name=wtTitle append copy=data[Title] /> | |||
<let name=wtTitle append>==</let> | |||
<if flag=$data[TextAbove]> | |||
<let name=wtTextBrief> | |||
<span class=blog-post-section-hdr>In Brief</span> | |||
</let> | |||
<let name=wtTextFull> | |||
<hr> | |||
<span class=blog-post-section-hdr>The Rest</span> | |||
</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>[[category:data/blog/post]]</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] /> | <let name=user copy=data[User] /> | ||
<if flag=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>__NOEDITSECTION__ | |||
<get name=wtTitle /> | |||
<get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull /> | |||
<hr> | |||
{| style="font-size: 75%; line-height: 75%;" | |||
|- | |||
| colspan=2 | | |||
==Specs== | |||
|- | |||
| align=right | '''Timestamp''': || <get name=PostDate /> | |||
|- | |||
| align=right | '''Author''': || <get name=wtUser /> | |||
|- | |||
| align=right | '''User topics''': || <get name=wtCatUser /> | |||
|- | |||
| align=right | '''Global topics''': || <get name=wtCatGlob /> | |||
|}</echo> | |||
</func> | |||
==ShowBlogPostPage_v1()== | |||
<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>__NOEDITSECTION__ | |||
==</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>[[category:data/blog/post]]</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>[[user:</let> | ||
<let name=wtUser append copy=user /> | <let name=wtUser append copy=user /> | ||
Line 182: | Line 501: | ||
| align=right | '''Timestamp''': || <get name=PostDate /> | | align=right | '''Timestamp''': || <get name=PostDate /> | ||
|- | |- | ||
| align=right | '''Author''': || <get name=wtUser / | | align=right | '''Author''': || <get name=wtUser /> | ||
|- | |- | ||
| align=right | '''User topics''': || <get name=wtCatUser /> | | align=right | '''User topics''': || <get name=wtCatUser /> | ||
Line 191: | Line 510: | ||
<get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull /></echo> | <get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull /></echo> | ||
</func> | </func> | ||
Latest revision as of 19:44, 22 January 2013
GetLinkBrief()
> function getlinkbrief() <= ()
ShowRecentLinks(max)
> function showrecentlinks() <= ()
ShowTopic(iTopic,iMax)
This should eventually be able to show data in any format: news links, blog entries...
> function showtopic() <= ()
GetBlogEntryBrief()
> function getblogentrybrief() <= ()
GetBlogEntryBriefChrisFormat()
> function getblogentrybriefchrisformat() <= ()
GetBlogEntryFull()
> function getblogentryfull() <= ()
ShowRecentBlogEntries(max,funcEntry)
> function showrecentblogentries() <= ()
ShowRecentBlogEntriesFull(max)
> function showrecentblogentriesfull() <= ()
ShowRecentBlogEntriesByTopic(max,topic)
> function showrecentblogentriesbytopic() <= ()
MakeBlogCatgs()
> function makeblogcatgs() <= ()
ShowBlogPostPage()
> function showblogpostpage() <= ()
ShowBlogPostPage_v2()
> function showblogpostpage_v2() <= ()
ShowBlogPostPage_v1()
> function showblogpostpage_v1() <= ()