W3TPL/recipes: Difference between revisions
< W3TPL
Jump to navigation
Jump to search
(→Listing Pages in a Category: wikitext - working example) |
m (→Wikitext: +hide (now required for using echo tags)) |
||
Line 9: | Line 9: | ||
<pre> | <pre> | ||
<let name=including val="1" /> | <let name=including val="1" /> | ||
</hide><for table="qryW3_Titles_Catgs" where="(cl_to='Data/target') AND (page_namespace=0)" name=pg> | </hide><for table="qryW3_Titles_Catgs" where="(cl_to='Data/target') AND (page_namespace=0)" name=pg hide> | ||
<let name=pg_title val="@row.pg.page_title" /> | <let name=pg_title val="@row.pg.page_title" /> | ||
<load page=$pg_title /> | <load page=$pg_title /> |
Revision as of 16:16, 14 September 2008
Listing Pages in a Category
This bit is for a feature-in-development. I'll probably be adding full SQL capability at some point, but I want to make sure it is secure (and can be disabled in LocalSettings) before putting it in; for now, W3 is going to have data access only by filtering tables -- which can also be data views, i.e. potentially very complex SQL but only if you have db permission to create views.
SQL
<mysql>CREATE OR REPLACE VIEW qryW3_Titles_Catgs AS
SELECT * FROM categorylinks AS cl LEFT JOIN page AS p ON cl_from=page_id;</mysql>
- Very similar to the dpl_clview view used by DPL
Wikitext
<let name=including val="1" /> </hide><for table="qryW3_Titles_Catgs" where="(cl_to='Data/target') AND (page_namespace=0)" name=pg hide> <let name=pg_title val="@row.pg.page_title" /> <load page=$pg_title /> <let name=title_link>[[</let> <let name=title_link append copy=pg_title /> <let name=title_link append>|</let> <let name=title_link append copy=keyname /> <let name=title_link append>]]</let> <echo> * <get name=title_link />: "<get name=title />": <get name=source /></echo> </for>
- Replace "Data/target" with the name of the category you want to list
- Alter the line which begins with Template:Xmltag (i.e. everything between the Template:Xmltag tags) to display what you want; "title" and "source" are from an actual live installation (PsyCrit) and are defined within the pages in that category, so each output line gives a little information about the page (effectively a mini-"report")
- The "including" variable tells the included pages not to show their category, so that this page won't think it is also in that same category.