Difference between revisions of "Issuepedia:Code/lib/links"
< Issuepedia:Code | lib
Jump to navigation
Jump to search
(forgot to close func definition; also, a test) |
(→GetBrief(): updated syntax) |
||
(60 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | < | + | ===ShowLinkData()=== |
− | < | + | This is a functionalized version of the code in [[Issuepedia:Code/show/link]]. Don't use that anymore; use this. |
− | <let name= | + | <func ShowLinkData> |
− | < | + | |
− | <for | + | <let name=wtDate>{{date|</let> |
− | <let name= | + | <let name=wtDate append copy=data[Date] /> |
− | <let name= | + | <let name=wtDate append>}}{{datecat|</let> |
− | + | <let name=wtDate append copy=data[Date] /> | |
− | <let name=out>'''</let> | + | <let name=wtDate append>}}</let> |
− | <let name=out append copy=data[Date] /> | + | <if flag=$data[Author]> |
− | <let name=out append>''' | + | <let name=wtAuth>[[</let> |
− | <let name=out append copy=pg_title /> | + | <let name=wtAuth append copy=data[Author] /> |
− | <let name=out append>| | + | <let name=wtAuth append>]] ([[</let> |
− | <let name=out append copy=pg_title /> | + | <let name=wtAuth append copy=data[Author] /> |
− | <let name=out append>| | + | <let name=wtAuth append>/writings|writings]]<sub>[[:category:</let> |
+ | <let name=wtAuth append copy=data[Author] /> | ||
+ | <let name=wtAuth append>/writings|cat]]</sub>)</let> | ||
+ | |||
+ | <let name=wtAuthCat>[[category:</let> | ||
+ | <let name=wtAuthCat append copy=data[Author] /> | ||
+ | <let name=wtAuthCat append>/writings]]</let> | ||
+ | </if> | ||
+ | |||
+ | <if flag=$data[Authors]> | ||
+ | <let name=auths copy=data[Authors] /> | ||
+ | <let name=wtAuthCat null /> | ||
+ | <for xps=$auths let=author> | ||
+ | <let name=wtAuth append> [[</let> | ||
+ | <let name=wtAuth append copy=author /> | ||
+ | <let name=wtAuth append>]] ([[</let> | ||
+ | <let name=wtAuth append copy=author /> | ||
+ | <let name=wtAuth append>/writings|writings]]<sub>[[:category:</let> | ||
+ | <let name=wtAuth append copy=author /> | ||
+ | <let name=wtAuth append>/writings|cat]]</sub>)</let> | ||
+ | |||
+ | <let name=wtAuthCat append>[[category:</let> | ||
+ | <let name=wtAuthCat append copy=author /> | ||
+ | <let name=wtAuthCat append>/writings]]</let> | ||
+ | </for> | ||
+ | </if> | ||
+ | <if flag=$data[Source]> | ||
+ | <let name=wtSource>[[</let> | ||
+ | <let name=wtSource append copy=data[Source] /> | ||
+ | <let name=wtSource append>]] ([[</let> | ||
+ | <let name=wtSource append copy=data[Source] /> | ||
+ | <let name=wtSource append>/articles|articles]]<sub>[[:category:</let> | ||
+ | <let name=wtSource append copy=data[Source] /> | ||
+ | <let name=wtSource append>/articles|cat]]</sub>)</let> | ||
+ | </if> | ||
+ | |||
+ | <if flag=$docat> | ||
+ | <let name=wtDate append>[[category:</let> | ||
+ | <let name=wtDate append copy=data[Date] /> | ||
+ | <let name=wtDate append>]]</let> | ||
+ | |||
+ | <let name=wtAuth append copy=wtAuthCat /> | ||
+ | |||
+ | <let name=wtSource append>[[category:</let> | ||
+ | <let name=wtSource append copy=data[Source] /> | ||
+ | <let name=wtSource append>/articles]]</let> | ||
+ | </if> | ||
+ | |||
+ | Store data in page properties: | ||
+ | <let name=data self save /> | ||
+ | |||
+ | <let name=wtTitle>__NOEDITSECTION__ | ||
+ | ==</let> | ||
+ | <let name=wtTitle append copy=data[Title] /> | ||
+ | <let name=wtTitle append>==</let> | ||
+ | <if flag=$data[TextShort]> | ||
+ | <let name=wtTitle append> | ||
+ | ===longer text===</let> | ||
+ | <let name=wtTextShort> | ||
+ | ===shorter text=== | ||
+ | </let> | ||
+ | <let name=wtTextShort append copy=data[TextShort] /> | ||
+ | </if><else> | ||
+ | <let name=wtTextShort /> | ||
+ | </else> | ||
+ | |||
+ | <if flag=$data[wpage]> | ||
+ | <let name=wtLink>[[</let> | ||
+ | <let name=wtLink append copy=data[wpage] /> | ||
+ | <let name=wtLink append>]]</let> | ||
+ | </if><else> | ||
+ | <let name=wtLink append copy=data[URL] /> | ||
+ | </else> | ||
+ | <let name=topics copy=data[Topics] /> | ||
+ | <for xps=$topics let=topic> | ||
+ | <let name=wtTopics append> [[</let> | ||
+ | <let name=wtTopics append copy=topic /> | ||
+ | <let name=wtTopics append>]]</let> | ||
+ | |||
+ | <let name=wtCatgs append> [[:category:</let> | ||
+ | <let name=wtCatgs append copy=topic /> | ||
+ | <let name=wtCatgs append>|</let> | ||
+ | <let name=wtCatgs append copy=topic /> | ||
+ | <let name=wtCatgs append>]]</let> | ||
+ | |||
+ | <if flag=$docat> | ||
+ | <let name=wtCatgs append> [[category:</let> | ||
+ | <let name=wtCatgs append copy=topic /> | ||
+ | <let name=wtCatgs append>]]</let> | ||
+ | </if> | ||
+ | </for> | ||
+ | |||
+ | |||
+ | <if flag=$data[TitlePlain]> | ||
+ | <let name=TitleSort copy=data[TitlePlain] /> | ||
+ | </if><else> | ||
+ | <let name=TitleSort copy=data[Title] /> | ||
+ | </else> | ||
+ | <if flag=$docat> | ||
+ | <let name=cattag>[[category:data/links|</let> | ||
+ | <let name=cattag append copy=TitleSort /> | ||
+ | <let name=cattag append>]]</let> | ||
+ | </if> | ||
+ | |||
+ | <let name=display> | ||
+ | {| | ||
+ | |- | ||
+ | | align=right | '''Date''': || <get name=wtDate /> | ||
+ | |- | ||
+ | | align=right | '''Link''': || <get name=wtLink /> | ||
+ | </let> | ||
+ | |||
+ | <if flag=$wtAuth> | ||
+ | <let name=display append> | ||
+ | |- | ||
+ | | align=right | '''Author''': || <get name=wtAuth /></let> | ||
+ | </if> | ||
+ | <if flag=$wtSource> | ||
+ | <let name=display append> | ||
+ | |- | ||
+ | | align=right | '''Source''': || <get name=wtSource /></let> | ||
+ | </if> | ||
+ | <let name=display append> | ||
+ | |- | ||
+ | | align=right | '''Topics''': || <get name=wtTopics /> | ||
+ | |- | ||
+ | | align=right | '''Categories''': || <get name=wtCatgs /> | ||
+ | |} | ||
+ | </let> | ||
+ | <echo> | ||
+ | {{#set:page type=link}} | ||
+ | {{#set:format version=2.1}} | ||
+ | __NOEDITSECTION__ | ||
+ | ==Specs== | ||
+ | <get name=display /> | ||
+ | <get name=wtTitle /> | ||
+ | <get name=data index=Text /><get name=wtTextShort /><get name=cattag /><hide> | ||
+ | <let name=wtDate null /> | ||
+ | <let name=wtAuth null /> | ||
+ | <let name=wtSource null /> | ||
+ | <let name=wtTopics null /> | ||
+ | <let name=wtCatgs null /> | ||
+ | </echo> | ||
+ | </func> | ||
+ | ===GetBrief()=== | ||
+ | <func GetBrief> | ||
+ | <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]> | + | <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] /> | ||
Line 21: | Line 174: | ||
<let name=wtLink append copy=data[Title] /> | <let name=wtLink append copy=data[Title] /> | ||
<let name=wtLink append>]]</let> | <let name=wtLink append>]]</let> | ||
+ | <let name=data[wpage] null /> | ||
</if><else> | </if><else> | ||
<let name=wtLink>[</let> | <let name=wtLink>[</let> | ||
Line 29: | Line 183: | ||
</else> | </else> | ||
− | <let name=out append copy=wtLink /> | + | <let name=links.out append copy=wtLink /> |
− | <let name=out append> § </let> | + | <let name=links.out append> § </let> |
<let name=text copy=data[TextShort] /> | <let name=text copy=data[TextShort] /> | ||
Line 37: | Line 191: | ||
</else> | </else> | ||
− | <let name=out append copy=text /> | + | <let name=links.out append copy=text trim /> |
− | <let name=out append> ''[[</let> | + | <let name=links.out append> ''[[</let> |
− | <let name=out append copy=pg_title /> | + | <let name=links.out append copy=pg_title /> |
− | <let name=out append>|more...]]''</let> | + | <let name=links.out append>|more...]]''</let> |
+ | |||
+ | </func> | ||
+ | |||
+ | ===ShowRecent()=== | ||
+ | '''calls''': GetBrief() | ||
+ | <func ShowRecent 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 hide> | ||
+ | <let name=pg_title val="@row.page_title" /> | ||
+ | <let name=idx inc /> | ||
+ | <if not flag=$noLoad> | ||
+ | <load page=$pg_title nocat /> | ||
+ | </if> | ||
+ | <if flag=$data[Title]> | ||
+ | <call GetBrief /> | ||
+ | </if><else> | ||
+ | <!-- if no new-style data, just display link to page so we can fix the problem: --> | ||
+ | <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_old(iTopic,iMax)=== | ||
+ | <func ShowTopic_old iTopic iMax> | ||
+ | <let name=idx /> | ||
+ | <let name=including val=1 /> | ||
+ | <let name=topic farg=iTopic /> | ||
+ | <if not flag=topic> | ||
+ | <let name=topic parse>{{PAGENAME}}</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" 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 nocat /> | ||
+ | </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> | ||
+ | ===ShowTopic_old(topic,max)=== | ||
+ | This can be deleted if there are no problems with new ShowTopic(). | ||
+ | <func ShowTopic_old topic max> | ||
+ | <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/links') AND (q2.cl_to='</let> | ||
+ | <let name=sql append copy=topic /> | ||
+ | <let name=sql append>') ORDER BY page_title DESC</let> | ||
+ | <if flag=max> | ||
+ | <let name=sql append> LIMIT </let> | ||
+ | <let name=sql append copy=max /> | ||
+ | </if> | ||
+ | <let name=sql append copy=max /> | ||
+ | |||
+ | <let name=links.rtn null /> | ||
+ | <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 local / --> | ||
+ | <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 /> | ||
+ | <get name=data load page=$pg_title /> | ||
+ | <let name=data[Title] null /> | ||
+ | <!-- load page=$pg_name / --> | ||
+ | <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 /> | ||
+ | </for> | ||
+ | </func> | ||
+ | ===ShowTopic(topic,max)=== | ||
+ | <func ShowTopic topic max> | ||
+ | <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/links') AND (q2.cl_to='</let> | ||
+ | <let name=sql append copy=topic /> | ||
+ | <let name=sql append>') ORDER BY page_title DESC</let> | ||
+ | <if flag=max> | ||
+ | <let name=sql append> LIMIT </let> | ||
+ | <let name=sql append copy=max /> | ||
+ | </if> | ||
+ | <let name=sql append copy=max /> | ||
− | < | + | <let name=links.rtn null /> |
− | * < | + | <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_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=data null /> | ||
+ | <let name=data load array page=$pg_title /> | ||
+ | <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 /> | ||
</for> | </for> | ||
</func> | </func> | ||
− |
Latest revision as of 11:32, 13 September 2012
ShowLinkData()
This is a functionalized version of the code in Issuepedia:Code/show/link. Don't use that anymore; use this.
> function showlinkdata() <= ()
GetBrief()
> function getbrief() <= ()
ShowRecent()
calls: GetBrief()
> function showrecent() <= ()
ShowTopic_old(iTopic,iMax)
> function showtopic_old() <= ()
ShowTopic_old(topic,max)
This can be deleted if there are no problems with new ShowTopic().
> function showtopic_old() <= ()
ShowTopic(topic,max)
> function showtopic() <= ()