Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#13 2012-05-06 10:07:47

etc
Developer
Registered: 2010-11-11
Posts: 5,157
Website GitHub

Re: etc_query: all things Textpattern

Version 0.75: enables PHP functions in replace values.

Offline

#14 2012-05-09 17:45:57

etc
Developer
Registered: 2010-11-11
Posts: 5,157
Website GitHub

Re: etc_query: all things Textpattern

Version 8: now can also query databases, JSON objects and (even if it does not make much sense) serialized arrays.

Offline

#15 2012-05-22 11:51:17

etc
Developer
Registered: 2010-11-11
Posts: 5,157
Website GitHub

Re: etc_query: all things Textpattern

Version 0.87: enhanced special patterns with default values.

Offline

#16 2012-05-24 18:51:42

etc
Developer
Registered: 2010-11-11
Posts: 5,157
Website GitHub

Re: etc_query: all things Textpattern

Version 0.88: enhanced special patterns with sanitizer functions (many thanks to Gocom for alerting me). Dropped preparse attribute.

Offline

#17 2012-05-26 05:21:38

maruchan
Member
From: Ukiah, California
Registered: 2010-06-12
Posts: 595
Website

Re: etc_query: all things Textpattern

Is there a way to do both numbered links and prev/next links in article_custom pagination? I’d like to use it for that, but thought I’d ask first.

Offline

#18 2012-05-26 10:43:43

etc
Developer
Registered: 2010-11-11
Posts: 5,157
Website GitHub

Re: etc_query: all things Textpattern

maruchan wrote:

Is there a way to do both numbered links and prev/next links in article_custom pagination? I’d like to use it for that, but thought I’d ask first.

You mean prev/next page? With one query it is tricky (in the current version), since we have to display some nodes twice, with different attributes. But with two queries it is possible (takes less than 0.005 extra seconds).

Suppose the navigation is driven by some url variable, say pgc. We firstly create the pagination list and store it in some variable:

<txp:variable name="pgc_list">
<txp:etc_query
  data='<txp:article_custom limit="999"><a href=''<txp:permlink />''><txp:title /></a></txp:article_custom>'
  query="a[position() mod 10 = 1]"
>
<a href="?pgc={#row}">{#row}</a>
</txp:etc_query>
</txp:variable>

Then in the article form put

<txp:if_individual_article>
<txp:variable name="pgc_list" />
<txp:else />
<txp:etc_query
  data='<txp:variable name="pgc_list" />'
  query="a[{?pgc|1|intval}]"
  globals="_GET"
  replace="preceding-sibling::a[position()=1]=Previous;following-sibling::a[position()=1]=Next"
>
{preceding-sibling::a[position()=1]}
<txp:variable name="custom_list" />
{following-sibling::a[position()=1]}
</txp:etc_query>
</txp:if_individual_article>

The article form can be completed with current page articles, enhanced with first/last links, restricted to showing at most n page links, and so on Please feel free to experiment, I will be glad to help .

Offline

#19 2012-05-26 10:45:30

etc
Developer
Registered: 2010-11-11
Posts: 5,157
Website GitHub

Re: etc_query: all things Textpattern

Version 0.89: some minor (but annoying) bugfixes, please update.

Offline

#20 2012-05-26 17:28:01

maruchan
Member
From: Ukiah, California
Registered: 2010-06-12
Posts: 595
Website

Re: etc_query: all things Textpattern

Thank you, I’m trying that code out now. I’m going to try to troubleshoot, but I’m getting this error. Any advice is appreciated.

Tag error: <txp:etc_query
  data='<txp:variable name="pgc_list" />'
  query="a[{?pgc|1|intval}]"
  globals="_GET"
  replace="preceding-sibling::a[position()=1]=Previous;following-sibling::a[position()=1]=Next"
> ->  Warning: DOMDocument::saveHTML() expects exactly 0 parameters, 1 given  on line 369
textpattern/lib/txplib_misc.php(653) : eval()'d code:369 DOMDocument->saveHTML()
textpattern/publish.php:1188 etc_query()
textpattern/publish.php:1113 processTags()
textpattern/publish/taghandlers.php:3219 parse()
textpattern/publish.php:1188 if_individual_article()
textpattern/publish.php:1113 processTags()
textpattern/lib/txplib_misc.php(653) : eval()'d code:42 parse()
textpattern/publish.php:1188 rah_output_section_form()
textpattern/publish.php:1100 processTags()
textpattern/lib/txplib_misc.php(653) : eval()'d code:18 parse()
Tag error: <txp:variable name="custom_list" /> ->  Notice: Undefined index:  custom_list  on line 4465
textpattern/publish.php:1188 variable()
textpattern/publish.php:1100 processTags()
textpattern/lib/txplib_misc.php(653) : eval()'d code:380 parse()
textpattern/publish.php:1188 etc_query()
textpattern/publish.php:1113 processTags()
textpattern/publish/taghandlers.php:3219 parse()
textpattern/publish.php:1188 if_individual_article()
textpattern/publish.php:1113 processTags()
textpattern/lib/txplib_misc.php(653) : eval()'d code:42 parse()
textpattern/publish.php:1188 rah_output_section_form()

Offline

#21 2012-05-26 20:11:26

etc
Developer
Registered: 2010-11-11
Posts: 5,157
Website GitHub

Re: etc_query: all things Textpattern

What is your os and php version? I had this error on wamp until v4.3.10.

Offline

#22 2012-05-26 20:39:31

etc
Developer
Registered: 2010-11-11
Posts: 5,157
Website GitHub

Re: etc_query: all things Textpattern

Oh my, I have a typo in the example, sorry, this should be <txp:variable name="pgc_list" />, and not <txp:variable name="custom_list" />. But this alone would not cause the problem.

Last edited by etc (2012-05-26 20:42:11)

Offline

#23 2012-05-26 22:56:02

maruchan
Member
From: Ukiah, California
Registered: 2010-06-12
Posts: 595
Website

Re: etc_query: all things Textpattern

Thanks for checking. I thought I was running PHP 5.3.8 but it was 5.2.17. So I’ve sent support a request, because I know it’s available. For the pagination, what I’m looking for is:

[Prev] 1 2 _3_ 4 5 6 7 [Next] [View All]

So “Next” would take you to page 4 if you were on page 3…etc. But the number links still work.

Last edited by maruchan (2012-05-26 22:59:56)

Offline

#24 2012-05-27 09:38:04

etc
Developer
Registered: 2010-11-11
Posts: 5,157
Website GitHub

Re: etc_query: all things Textpattern

Yes, that’s what this part

<txp:etc_query
  data='<txp:variable name="pgc_list" />'
  query="a[{?pgc|1|intval}]"
  globals="_GET"
  replace="preceding-sibling::a[position()=1]=[Prev];following-sibling::a[position()=1]=[Next];@@class=current"
>
{preceding-sibling::a[position()=1]}
<txp:variable name="pgc_list" />
{following-sibling::a[position()=1]}
<a href="???">[View All]</a>
</txp:etc_query>

will do, additionally setting the class of the current page to “current”. But that’s all it will do, you will still have to display the articles of the current page using the pgc value in some way (offset?), which depends on your context.

Offline

Board footer

Powered by FluxBB