Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
#1 2021-05-21 05:20:37
- ibadullah
- Member
- From: Kabul, Afghanistan
- Registered: 2017-09-16
- Posts: 49
Advance Search plugin for textpattern
hi
i am looking for advance Search plugin for public side where it have two or three fields, and a person can search the article by category, and keywords.
Offline
Re: Advance Search plugin for textpattern
<txp:article_custom>
can filter by category and section and keywords. All you need to do is send the values from your input boxes to the URL (e.g. ?c=marvel&key=iron-man,thor
then you can use <txp:page_url />
to capture those and construct article tags with appropriate options based on the content passed to the page via URL.
But first I’d check out etc_search and see how well you can bend that to your needs. It’s possible to customize the queries quite heavily, iirc.
The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.
Txp Builders – finely-crafted code, design and Txp
Offline
Re: Advance Search plugin for textpattern
Why not use <txp:article />
itself? You will get the category filter for free, sending ?c=cat
from your search input form to the search page URL. To filter by keywords, call
<txp:article keywords='<txp:page_url type="key" />' />
and send
?c=cat&key=some,keywords,list or ?c=cat&key[]=some&key[]=keywords&key[]=list
etc_search
looks a bit overkill here.
Offline
Re: Advance Search plugin for textpattern
Good point. Forgot that <txp:article>
now also had those superpowers. Nice solution!
The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.
Txp Builders – finely-crafted code, design and Txp
Offline
Re: Advance Search plugin for textpattern
This should be even easier in 4.8.6: just send ?c=cat&keywords=some,keywords,list
to
<txp:article match="category, keywords" />
Or, if you need to fine-tune, ?c1=cat&key[]=some&key[]=keywords&key[]=list
to
<txp:article match="category1=c1, keywords=key" />
Offline
Re: Advance Search plugin for textpattern
Sweet!
For documentation/genealogy purposes, btw, was match
introduced to the article tag at the same time as it was for <txp:article_custom>
(i.e. 4.6.0ish)? And also, what options are available to match
? Is it any field, or just specific ones?
I’m just updating the article(_custom) tag docs now to capture this example and figured I might as well update the entire tag attribute set while I’m at it.
The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.
Txp Builders – finely-crafted code, design and Txp
Offline
Re: Advance Search plugin for textpattern
Bloke wrote #330238:
was
match
introduced to the article tag at the same time as it was for<txp:article_custom>
(i.e. 4.6.0ish)? And also, what options are available tomatch
? Is it any field, or just specific ones?
Yes, article_custom
has inherited match
from related_articles
when absorbing the latter (which was its near clone). Since article
and article_custom
share their code (up to few attributes), they both accept match
now.
IIRC, match
in this context can be a list of
'category', 'category1', 'category2', 'keywords' + custom fields
or field=alias
items. The latter form is roughly equivalent to field='<txp:page_url type="alias" />'
attribute if alias
URL variable is set.
Offline
Re: Advance Search plugin for textpattern
Cool, thanks. That’s kinda what I figured. I’ve updated the tag doc and hopefully it’s up-to-date now, but if I’ve missed any attributes, feel free to fix the page or let me know and I’ll do it. Ta!
The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.
Txp Builders – finely-crafted code, design and Txp
Offline
Re: Advance Search plugin for textpattern
Any idea what am I doing wrong with this, Oleg? Probably something obvious…
I have a bunch of articles and have used the keywords field to list various characters like batman, tron, iron man, green lantern, …
On a fresh install in my archive
Page template if I change the if_article_list article tag to:
<txp:article keywords='<txp:page_url type="keywords" />' class="article-list" form="article_listing" limit="10" wraptag="ul" />
It’s all good. If I manually add ?keywords=iron man, batman
to the URL then I only see the articles that match any of the keywords (not all, but we can have that discussion about how to let people choose any/all another time when we turbocharge keywords to act more like tags).
However, if I alter the tag to this:
<txp:article match="keywords" class="article-list" form="article_listing" limit="10" wraptag="ul" />
and then pass in ?keywords=iron man, batman
on the URL, I always get all articles, regardless of what URL filters I add. The query isn’t adding the keyparts:
First query:
SELECT *, UNIX_TIMESTAMP(Posted) AS uPosted, UNIX_TIMESTAMP(Expires) AS uExpires, UNIX_TIMESTAMP(LastMod) AS uLastMod FROM textpattern WHERE 1 AND `Posted` <= from_unixtime(2147483647) AND (Expires IS NULL OR from_unixtime(2147483647) <= Expires) AND Section IN ('articles') AND Status IN (4) AND (FIND_IN_SET('batman', Keywords) or FIND_IN_SET('iron man', Keywords)) ORDER BY Posted DESC LIMIT 0, 10
Second query:
SELECT *, UNIX_TIMESTAMP(Posted) AS uPosted, UNIX_TIMESTAMP(Expires) AS uExpires, UNIX_TIMESTAMP(LastMod) AS uLastMod FROM textpattern WHERE 1 AND `Posted` <= from_unixtime(2147483647) AND (Expires IS NULL OR from_unixtime(2147483647) <= Expires) AND Section IN ('articles') AND Status IN (4) ORDER BY Posted DESC LIMIT 0, 10
Do I need to do anything else to wire it up?
The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.
Txp Builders – finely-crafted code, design and Txp
Offline
Re: Advance Search plugin for textpattern
P.S. If you sprinkle your site with rah_repeat, the following works wonderfully well in your default article form to simulate hashtag searches in the keywords field that will then find articles that match the clicked tag in the current section:
TAGS: <rah::repeat value='<txp:keywords />'>
<a href="<txp:site_url /><txp:section />/?keywords=<rah::repeat_value />">#<rah::repeat_value /></a>
</rah::repeat>
It only currently works with <txp:article keywords='<txp:page_url type="keywords" />' />
as mentioned above, but it’s ace!
The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.
Txp Builders – finely-crafted code, design and Txp
Offline
Offline
Re: Advance Search plugin for textpattern
Still time… that’s what this final testing phase is for :) I’ll get on it now.
The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.
Txp Builders – finely-crafted code, design and Txp
Offline