Textpattern Forum

You are not logged in. Register | Login | Help

#91 2010-03-17 11:50:35

THE BLUE DRAGON
Member
From: Israel
Registered: 2007-11-16
Posts: 542
Website

Re: [plugin] [ORPHAN] cbs_live_search

whaleen wrote:

How to limit search to one section?

Take a look 6 posts above

Offline

#92 2010-03-17 19:01:28

whaleen
Member
From: Portland
Registered: 2006-05-11
Posts: 372
Website

Re: [plugin] [ORPHAN] cbs_live_search

Take a look 6 posts above

I cannot do that. Sections should be searchable on demand. Some instances I need to only search one section and in others other sections. An example attribute would be limit_search_to_section and it’s value could be a single section name or multiple comma separated.

Example:

<txp:cbs_live_search limit_search_to_section="people" />

If:

Someone who was willing could develop the plugin further to have this functionality.

Then:

Feature requests:

  • limit_search_to_section attribute
  • form attribute (use a form to output results)

txtstrap (Textpattern + Twitter Bootstrap + etc…)

Offline

#93 2010-03-30 09:38:46

mrjysta
Member
Registered: 2008-09-22
Posts: 89

Re: [plugin] [ORPHAN] cbs_live_search

Yes also the ability to search specific categories would also be great, the plug-in works nice but keeps bringing up headings and items which are unwanted as a user searching the site. i.e. just searching articles in ‘blog’ section with a category of ‘design’ :

<txp:cbs_live_search cbs_section=“blog” cbs_category=“design” />

Offline

#94 2012-03-08 10:04:51

kvnmcwebn
Member
From: Ireland
Registered: 2007-01-27
Posts: 724
Website

Re: [plugin] [ORPHAN] cbs_live_search

I started using this because live search stopped working after my last upgrade. It works fine but I really wish there was some info that showed up in the visitor logs after a user does a search. That was a nice feature in live search.


its a bad hen that wont scratch itself.
photogallery

Offline

#95 2012-05-11 21:19:20

etc
Plugin Author
Registered: 2010-11-11
Posts: 1,230
Website

Re: [plugin] [ORPHAN] cbs_live_search

EDIT: Don’t take the code from this post, there’s a link to the plugin’s own topic one post below!

I have tweaked this plugin some time ago to enable more elaborated searches. In its simplest form it treats a search string like term1 !term2, term3 as (term1 AND NOT term2) OR term3, but you can implement your own rules and query for virtually any information in your database. I have not modified the original plugin’s help, but if someone is interested, I could post it here.

Plugin code:

YToxMTp7czo0OiJuYW1lIjtzOjE1OiJjYnNfbGl2ZV9zZWFyY2giO3M6NjoiYXV0aG9yIjtzOjE2OiJDaHJpc3RvcGhlIEJleWxzIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIzOiJodHRwOi8vd3d3LmRpZ2l0YWxpYS5iZSI7czo3OiJ2ZXJzaW9uIjtzOjQ6IjAuOGIiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjA6IiI7czo0OiJoZWxwIjtzOjE0ODg2OiIJPGgzPkRlc2NyaXB0aW9uPC9oMz4KCgk8cD5UaGlzIHBsdWdpbiBkaXNwbGF5cyBhIHNlYXJjaCBib3ggc2ltaWxhcmx5IHRvIDxjb2RlPiZsdDt0eHA6c2VhcmNoX2lucHV0IC8mZ3Q7PC9jb2RlPi4gSWYgSmF2YXNjcmlwdCBpcyBlbmFibGVkLCBhIHJlc3VsdHMgbGlzdCB3aWxsIGZhZGUgaW4gYW5kIHJlc2l6ZSBpbiByZWFsIHRpbWUgYmVsb3cgdGhlIHNlYXJjaCBib3ggd2l0aCBhIG5pY2UgYW5pbWF0aW9uIGVmZmVjdCBhcyB0aGUgdXNlciB0eXBlcyBoaXMgcXVlcnkuPC9wPgoKCTxwPk9wdGlvbmFseSwgYSBjbGlja2FibGUgaW1hZ2UgY2FuIGJlIGRpc3BsYXllZCBhdCB0aGUgcmlnaHQgb2YgdGhlIHNlYXJjaCBib3ggdG8gY2xlYXIgaXRzIGNvbnRlbnQuIFdoZW4gdGhlIHNlYXJjaCBib3ggaXMgZW1wdHkgb3IgY29udGFpbnMgbGVzcyB0aGFuIDMgY2hhcmFjdGVycywgdGhlIHJlc3VsdHMgbGlzdCBzaHJpbmtzIGFuZCBmYWRlcyBvdXQuPC9wPgoKCTxwPkFsc28sIGFuIGltYWdlIChzdWNoIGFzIGEgc3Bpbm5lcikgY2FuIGJlIGRpc3BsYXllZCBhdCB0aGUgcmlnaHQgb2YgdGhlIHNlYXJjaCBib3ggd2hlbiBhIHNlYXJjaCBpcyBpbiBwcm9ncmVzcywgYW5kIGRpc2FwcGVhcnMgd2hlbiB0aGUgcmVzdWx0cyBhcmUgc2hvd24uPC9wPgoKCTxwPldoZW4gdGhlIHVzZXIgaGl0cyB0aGUgRW50ZXIga2V5IGhlIGdldHMgcmVkaXJlY3RlZCB0byBhIHRyYWRpdGlvbmFsIHNlYXJjaCByZXN1bHRzIHBhZ2UsIHNvIHRoZSBwbHVnaW4gYWxzbyBkZWdyYWRlcyBuaWNlbHkgaW4gbm9uLUphdmFzY3JpcHQgYnJvd3NlcnMuPC9wPgoKCTxoMz5SZXF1aXJlbWVudHM8L2gzPgoKCTxwPlNpbmNlIHZlcnNpb24gMC44LCBjYnNfbGl2ZV9zZWFyY2ggY2FuIHVzZSBlaXRoZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly9qcXVlcnkuY29tLyI+alF1ZXJ5PC9hPiBvciA8YSBocmVmPSJodHRwOi8vbW9vdG9vbHMubmV0LyI+TW9vVG9vbHM8L2E+IGphdmFzY3JpcHQgZnJhbWV3b3JrLjxiciAvPgo8c3Ryb25nPkp1c3QgcGljayB5b3VyIGZhdm9yaXRlIG9uZTo8L3N0cm9uZz48L3A+CgoJPGg0PmpRdWVyeTwvaDQ+CgoJPHA+alF1ZXJ5IDxzdHJvbmc+MS4yPC9zdHJvbmc+IG9yIG1vcmUgcmVjZW50IGlzIHJlcXVpcmVkLjwvcD4KCgk8cD5Zb3UgY2FuIHVzZSB0aGUgPGNvZGU+anF1ZXJ5LmpzPC9jb2RlPiBqYXZhc2NyaXB0IGZpbGUgd2hpY2ggaXMgYnVuZGxlZCB3aXRoIFRleHRwYXR0ZXJuIGFuZCB5b3UgbmVlZCB0byB1cGxvYWQgdGhlIHByb3ZpZGVkIDxjb2RlPmxpdmVzZWFyY2guanF1ZXJ5LmpzPC9jb2RlPiBmaWxlIHRvIHlvdXIgd2ViIHNlcnZlciAoZm9yIGV4YW1wbGUgaW4gYSBmb2xkZXIgY2FsbGVkICYjODIyMDsvanMvJiM4MjIxOykgYW5kIGluY2x1ZGUgYm90aCBvZiB0aGVzZSBmaWxlcyBpbiB0aGUgaGVhZGVyIG9mIHRoZSB3ZWIgcGFnZXMgd2hlcmUgeW91IHdhbnQgdG8gdXNlIHRoZSBwbHVnaW46PC9wPgoKPHByZT48Y29kZT4mbHQ7c2NyaXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7IHNyYz0mcXVvdDsvdGV4dHBhdHRlcm4vanF1ZXJ5LmpzJnF1b3Q7Jmd0OyZsdDsvc2NyaXB0Jmd0OwombHQ7c2NyaXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7IHNyYz0mcXVvdDsvanMvbGl2ZXNlYXJjaC5qcXVlcnkuanMmcXVvdDsmZ3Q7Jmx0Oy9zY3JpcHQmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD48ZW0+UmVtYXJrczo8L2VtPgoJPG9sPgoJCTxsaT5JZiB5b3UgYXJlIGFscmVhZHkgdXNpbmcgalF1ZXJ5LCBkb24mIzgyMTc7dCBpbmNsdWRlIGl0IHR3aWNlITwvbGk+CgkJPGxpPklmIHlvdSBhbHNvIHVzZSBvdGhlciBqYXZhc2NyaXB0IGZyYW1ld29ya3MgKFByb3RvdHlwZSwgRG9qbywgPHNwYW4gY2xhc3M9ImNhcHMiPllVSTwvc3Bhbj4sIGV0Yy4pLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSBpbmNsdWRlIGpRdWVyeSA8ZW0+Zmlyc3Q8L2VtPi4gY2JzX2xpdmVfc2VhcmNoIGlzIGFsc28gY29tcGF0aWJsZSB3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vZG9jcy5qcXVlcnkuY29tL0NvcmUvalF1ZXJ5Lm5vQ29uZmxpY3QiPmpRdWVyeS5ub0NvbmZsaWN0KCk8L2E+IG1vZGUuPC9saT4KCTwvb2w+PC9wPgoKCTxoND5Nb29Ub29sczwvaDQ+CgoJPHA+TW9vVG9vbHMgPHN0cm9uZz4xLjI8L3N0cm9uZz4gb3IgbW9yZSByZWNlbnQgaXMgcmVxdWlyZWQuIEJlY2F1c2UgTW9vVG9vbHMgaXMgbW9kdWxhciwgeW91IGNhbiBtYWtlIHlvdXIgZG93bmxvYWQgc21hbGxlciBieSBvbmx5IGRvd25sb2FkaW5nIHRoZSBtb2R1bGVzIHRoYXQgeW91ciBzY3JpcHRzIGFyZSBhY3R1YWxseSB1c2luZywgdGhhbmtzIHRvIHRoZSA8YSBocmVmPSJodHRwOi8vbW9vdG9vbHMubmV0L2NvcmUiPkNvcmUgQnVpbGRlcjwvYT4uIEhlcmUgYXJlIHRoZSBNb29Ub29scyBDb3JlIG1vZHVsZXMgcmVxdWlyZWQgYnkgY2JzX2xpdmVfc2VhcmNoOjwvcD4KCgk8dWw+CgkJPGxpPjxzdHJvbmc+TmF0aXZlOjwvc3Ryb25nPiBhbGw8L2xpPgoJCTxsaT48c3Ryb25nPkNsYXNzOjwvc3Ryb25nPiBhbGw8L2xpPgoJCTxsaT48c3Ryb25nPkVsZW1lbnQ6PC9zdHJvbmc+IEVsZW1lbnQuRXZlbnQsIEVsZW1lbnQuU3R5bGU8L2xpPgoJCTxsaT48c3Ryb25nPkZ4Ojwvc3Ryb25nPiBGeC5Nb3JwaDwvbGk+CgkJPGxpPjxzdHJvbmc+UmVxdWVzdDo8L3N0cm9uZz4gUmVxdWVzdDwvbGk+Cgk8L3VsPgoKCTxwPlRoZSBjYnNfbGl2ZV9zZWFyY2ggcGx1Z2luIGNvbWVzIGJ1bmRsZWQgd2l0aCBhIGZpbGUgbmFtZWQgPGNvZGU+bW9vdG9vbHMuanM8L2NvZGU+IHdoaWNoIGNvbnRhaW5zIHRoZXNlIG1pbmltYWwgZGVwZW5kZW5jaWVzIG9ubHkuIFRoaXMgZW5zdXJlcyB0aGUgc21hbGxlc3QgZG93bmxvYWQgc2l6ZSBmb3IgeW91ciB2aXNpdG9ycyBpZiB5b3UgZG9uJiM4MjE3O3QgdXNlIE1vb1Rvb2xzIG9yIGpRdWVyeSBhdCBhbGwgZm9yIG90aGVyIGZlYXR1cmVzIG9uIHlvdXIgcHVibGljIHdlYnNpdGUuPC9wPgoKCTxwPllvdSBuZWVkIHRvIHVwbG9hZCB0aGUgamF2YXNjcmlwdCBmaWxlcyA8Y29kZT5tb290b29scy5qczwvY29kZT4gYW5kIHRoZSBwcm92aWRlZCA8Y29kZT5saXZlc2VhcmNoLm1vb3Rvb2xzLmpzPC9jb2RlPiB0byB5b3VyIHdlYiBzZXJ2ZXIgKGZvciBleGFtcGxlIGluIGEgZm9sZGVyIGNhbGxlZCAmIzgyMjA7L2pzLyYjODIyMTspIGFuZCBpbmNsdWRlIHRoZW0gaW4gdGhlIGhlYWRlciBvZiB0aGUgd2ViIHBhZ2VzIHdoZXJlIHlvdSB3YW50IHRvIHVzZSB0aGUgcGx1Z2luOjwvcD4KCjxwcmU+PGNvZGU+Jmx0O3NjcmlwdCB0eXBlPSZxdW90O3RleHQvamF2YXNjcmlwdCZxdW90OyBzcmM9JnF1b3Q7L2pzL21vb3Rvb2xzLmpzJnF1b3Q7Jmd0OyZsdDsvc2NyaXB0Jmd0OwombHQ7c2NyaXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7IHNyYz0mcXVvdDsvanMvbGl2ZXNlYXJjaC5tb290b29scy5qcyZxdW90OyZndDsmbHQ7L3NjcmlwdCZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPjxlbT5SZW1hcmtzOjwvZW0+Cgk8b2w+CgkJPGxpPklmIHlvdSBhcmUgYWxyZWFkeSB1c2luZyBNb29Ub29scywgZG9uJiM4MjE3O3QgaW5jbHVkZSBpdCB0d2ljZSE8L2xpPgoJCTxsaT5JZiB5b3UgdXNlIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnByb3RvdHlwZWpzLm9yZy8iPlByb3RvdHlwZTwvYT4gZnJhbWV3b3JrIGZvciBvdGhlciBzY3JpcHRzLCBpbmNsdWRlIGl0IDxlbT5iZWZvcmU8L2VtPiBNb29Ub29scy48L2xpPgoJPC9vbD48L3A+CgoJPGgzPlN5bnRheDwvaDM+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6Y2JzX2xpdmVfc2VhcmNoIC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDM+QXR0cmlidXRlczwvaDM+CgoJPGg0PlJlcXVpcmVkPC9oND4KCgk8cD5ub25lLjwvcD4KCgk8aDQ+T3B0aW9uYWw8L2g0PgoKCTx1bD4KCQk8bGk+PHN0cm9uZz5zZWN0aW9uPC9zdHJvbmc+OiBOYW1lIG9mIHRoZSBzZWN0aW9uIHRvIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHdoZW4gaGUgaGl0cyB0aGUgRW50ZXIga2V5LCBpbiBvcmRlciB0byBkaXNwbGF5IHRoZSBzdGFuZGFyZCBzZWFyY2ggcmVzdWx0cyBwYWdlLiBEZWZhdWx0IGlzIHRoZSA8Y29kZT5kZWZhdWx0PC9jb2RlPiBzZWN0aW9uIChob21lIHBhZ2UpLjwvbGk+CgkJPGxpPjxzdHJvbmc+aHRtbF9pZDwvc3Ryb25nPjogPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGUgdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIHNlYXJjaCBmb3JtLiBEZWZhdWx0IGlzIDxjb2RlPmxpdmVfc2VhcmNoPC9jb2RlPi4gWW91IG5lZWQgdG8gc2V0IHRoaXMgYXR0cmlidXRlIHRvIGRpZmZlcmVudCB2YWx1ZXMgaWYgeW91IHVzZSBtb3JlIHRoYW4gb25lIGxpdmUgc2VhcmNoIGJveCBpbnNpZGUgdGhlIHNhbWUgd2ViIHBhZ2UuPC9saT4KCQk8bGk+PHN0cm9uZz5sYWJlbDwvc3Ryb25nPjogRGlzcGxheXMgYSBsYWJlbCBhYm92ZSB0aGUgc2VhcmNoIGJveCB3aXRoIHRoZSBzcGVjaWZpZWQgdGV4dC4gRGVmYXVsdCBpcyBubyBsYWJlbC48L2xpPgoJCTxsaT48c3Ryb25nPnNpemU8L3N0cm9uZz46IFNpemUgb2YgdGhlIHNlYXJjaCBib3ggKG51bWJlciBvZiBjaGFyYWN0ZXJzKS4gRGVmYXVsdCBpcyA8Y29kZT4xNTwvY29kZT4uPC9saT4KCQk8bGk+PHN0cm9uZz5kZWZhdWx0X3ZhbHVlPC9zdHJvbmc+OiBJbnZpdGF0aW9uIHRleHQgdGhhdCB3aWxsIGRlIGRpc3BsYXllZCBpbiB0aGUgYm94IHdoZW4gSmF2YXNjcmlwdCBpcyBlbmFibGVkLiBUaGlzIHRleHQgZGlzYXBwZWFycyB3aGVuIHRoZSBib3ggZ2V0cyB0aGUgZm9jdXMgb3Igd2hlbiB0aGUgdXNlciBoYXMgdHlwZWQgc29tZXRoaW5nIGludG8gaXQuIERlZmF1bHQgaXMgZW1wdHkuPC9saT4KCQk8bGk+PHN0cm9uZz53cmFwdGFnPC9zdHJvbmc+OiA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gdGFnIHRvIHdyYXAgdGhlIG9wdGlvbmFsIGxhYmVsLCB0aGUgc2VhcmNoIGZpZWxkIGFuZCB0aGUgcmVzZXQgYW5kIHdhaXQgaW1hZ2VzIHdpdGgsIGluc2lkZSB0aGUgZm9ybS4gRGVmYXVsdCBpcyA8Y29kZT5wPC9jb2RlPiAoYSBwYXJhZ3JhcGgpLjwvbGk+CgkJPGxpPjxzdHJvbmc+c2FmYXJpPC9zdHJvbmc+OiBXaGVuIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgdGhlIGNsYXNzaWMgaW5wdXQgYm94IHdpbGwgYmUgcmVwbGFjZWQgYnkgYSBNYWMgT1MgWCBzZWFyY2ggd2lkZ2V0IGluIFNhZmFyaSBpZiBKYXZhc2NyaXB0IGlzIGVuYWJsZWQuIFRoZSByZXNldCBpbWFnZSAoc2VlIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBTdHlsaW5nIHNlY3Rpb24pIHdpbGwgdGhlbiA8c3Ryb25nPm5ldmVyPC9zdHJvbmc+IGJlIGRpc3BsYXllZCBpbiB0aGVzZSBicm93c2Vycy4gT3RoZXIgYnJvd3NlcnMgd2lsbCBzZWUgdGhlIGNsYXNzaWMgaW5wdXQgYm94LiBEZWZhdWx0IGlzIDxjb2RlPmZhbHNlPC9jb2RlPi48L2xpPgoJCTxsaT48c3Ryb25nPnJlc3VsdHNfYnJlYWs8L3N0cm9uZz46IDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiB0YWcgdG8gYmUgdXNlZCBmb3IgbGluZSBicmVha3MgaW4gdGhlIGNvbnRlbnQgaW5zaWRlIHRoZSBsaXZlIHJlc3VsdHMgbGlzdCwgd2l0aG91dCBicmFja2V0cy4gRGVmYXVsdCBpcyA8Y29kZT5icjwvY29kZT4uPC9saT4KCQk8bGk+PHN0cm9uZz5yZXN1bHRzX3dyYXB0YWc8L3N0cm9uZz46IDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiB0YWcgdG8gYmUgdXNlZCBhcyB0aGUgd3JhcHRhZyBmb3IgdGhlIGNvbnRlbnQgaW5zaWRlIHRoZSBsaXZlIHJlc3VsdHMgbGlzdCwgd2l0aG91dCBicmFja2V0cy4gRGVmYXVsdCBpcyA8Y29kZT5wPC9jb2RlPi48L2xpPgoJCTxsaT48c3Ryb25nPnJlc3VsdHNfbWF4PC9zdHJvbmc+OiBNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIGluIHRoZSBsaXZlIHJlc3VsdHMgbGlzdC4gRGVmYXVsdCBpcyA8Y29kZT41PC9jb2RlPi48L2xpPgoJCTxsaT48c3Ryb25nPnJlc3VsdHNfZXhjZXJwdHM8L3N0cm9uZz46IFdoZW4gc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBkaXNwbGF5cyBleGNlcnB0cyBvZiB0aGUgYXJ0aWNsZXMgY29udGFpbmluZyB0aGUgc2VhcmNoIHRlcm1zLiBTZWFyY2ggdGVybXMgd2lsbCBiZSB3cmFwcGVkIGluIDxjb2RlPiZsdDtzdHJvbmcmZ3Q7PC9jb2RlPiB0YWdzLiBEZWZhdWx0IGlzIDxjb2RlPmZhbHNlPC9jb2RlPi48L2xpPgoJCTxsaT48c3Ryb25nPnJlc3VsdHNfZGF0ZXM8L3N0cm9uZz46IFdoZW4gc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBkaXNwbGF5cyB0aGUgYXJ0aWNsZSBkYXRlIGF0IHRoZSBib3R0b20gb2YgZWFjaCByZXN1bHQgZW50cnkuIERlZmF1bHQgaXMgPGNvZGU+ZmFsc2U8L2NvZGU+LjwvbGk+CgkJPGxpPjxzdHJvbmc+bm9fcmVzdWx0czwvc3Ryb25nPjogVGV4dCB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBsaXZlIHJlc3VsdHMgbGlzdCB3aGVuIG5vIGFydGljbGVzIGFyZSBmb3VuZC4gRGVmYXVsdCBpcyAmIzgyMjA7MCBhcnRpY2xlcyBmb3VuZCYjODIyMTsgbG9jYWxpemVkIGluIHRoZSBsYW5ndWFnZSBvZiB5b3VyIFRleHRwYXR0ZXJuIGluc3RhbGxhdGlvbi48L2xpPgoJPC91bD4KCgk8aDM+PHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gU3R5bGluZzwvaDM+CgoJPHA+VGhlIGxpdmUgc2VhcmNoIGNvbnNpc3RzIG9mIGEgZm9ybSB3aXRoIHRoZSBkZWZhdWx0IDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGUgdmFsdWUgJiM4MjIwO2xpdmVfc2VhcmNoJiM4MjIxOyAod2hpY2ggY2FuIGJlIGNoYW5nZWQgdXNpbmcgdGhlICYjODIyMDtodG1sX2lkJiM4MjIxOyBwYXJhbWV0ZXIpLiBUaGlzIGZvcm0gY29udGFpbnMgdHdvIHpvbmVzLiBZb3UgY2FuIHN0eWxlIGFueSBlbGVtZW50IGJ5IHJlZmVyZW5jaW5nIHRoZSBpZCBhdHRyaWJ1dGUgb2YgdGhlIGZvcm0gYW5kIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBvZiB0aGUgZWxlbWVudCAob3IgaXRzIHRhZykgaW4geW91ciA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPi48L3A+CgoJPHA+SWYgeW91IGRlZmluZSBhIGxhYmVsLCB5b3UgY2FuIGNob29zZSB0byBtYWtlIGl0IGludmlzaWJsZSBieSBzZXR0aW5nIGl0cyBkaXNwbGF5IHByb3BlcnR5IHRvICYjODIyMDtub25lJiM4MjIxOyBpbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4sIHNvIGl0IHdpbGwgb25seSBiZSBkaXNwbGF5ZWQgaW4gbm9uLTxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGJyb3dzZXJzIHRoYXQgd2lsbCB1c3VhbGx5IG5vdCBiZSBhYmxlIHRvIGRpc3BsYXkgdGhlIHRleHQgb2YgdGhlICYjODIyMDtkZWZhdWx0X3ZhbHVlJiM4MjIxOyBwYXJhbWV0ZXIgKHNlZSBhYm92ZSkuPC9wPgoKCTxwPjxlbT5FeGFtcGxlOjwvZW0+PC9wPgoKPHByZT48Y29kZT4jbGl2ZV9zZWFyY2ggbGFiZWwgewogICAgZGlzcGxheTogbm9uZTsKfQo8L2NvZGU+PC9wcmU+CgoJPGg0PlRoZSBzZWFyY2ggem9uZTwvaDQ+CgoJPHA+VGhlIGZpcnN0IHpvbmUgaXMgYSBibG9jayB3aXRoIHRoZSBhcHBsaWVkIGNsYXNzICYjODIyMDtsc19zZWFyY2gmIzgyMjE7IHdoaWNoIGNvbnRhaW5zOiB0aGUgb3B0aW9uYWwgbGFiZWwgKGZvbGxvd2VkIGJ5IGEgbGluZSBicmVhayBpZiBkZWZpbmVkKSwgdGhlIHRleHQgaW5wdXQgYm94IGFuZCB0aGUgcmVzZXQgYW5kIHdhaXQgaW1hZ2VzLiBUaGUgdGFnIG9mIHRoaXMgYmxvY2sgaXMgZGVmaW5lZCBieSB0aGUgJiM4MjIwO3dyYXB0YWcmIzgyMjE7IHBhcmFtZXRlciAoZGUgZmF1bHQgaXMgPGNvZGU+cDwvY29kZT4pLjwvcD4KCgk8cD5UaGUgc2VhcmNoIGJveCBpcyBhbiBpbnB1dCB0YWcuIElmIHlvdSB3YW50LCB5b3UgY2FuIHN0eWxlIGl0IHVzaW5nIGEgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gcnVsZSBsaWtlIHRoaXMgb25lOjwvcD4KCjxwcmU+PGNvZGU+I2xpdmVfc2VhcmNoIGlucHV0IHsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGNvbG9yOiAjMDAwOwp9CjwvY29kZT48L3ByZT4KCgk8cD5XaGVuIHRoZSBzZWFyY2ggYm94IGlzIGluYWN0aXZlIChlbXB0eSB3aXRoIG5vIGZvY3VzKSwgdGhlICYjODIyMDtsc19pbmFjdGl2ZSYjODIyMTsgY2xhc3MgaXMgYXBwbGllZCB0byBpdCwgc28geW91IGNhbiBzdHlsZSBpdCBkaWZmZXJlbnRseSB3aGlsZSBpdCBpcyBpbiB0aGlzIHN0YXRlLCB0eXBpY2FsbHkgYnkgbWFraW5nIHRoZSBmb250IGJyaWdodGVyLjwvcD4KCgk8cD48ZW0+RXhhbXBsZTo8L2VtPjwvcD4KCjxwcmU+PGNvZGU+I2xpdmVfc2VhcmNoIGlucHV0LmxzX2luYWN0aXZlIHsKICAgIGNvbG9yOiAjNjY2Owp9CjwvY29kZT48L3ByZT4KCgk8cD5JZiB5b3Ugc2V0IHRoZSAmIzgyMjA7c2FmYXJpJiM4MjIxOyBwYXJhbWV0ZXIgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gYW5kIHRoZSBicm93c2VyIGlzIGRldGVjdGVkIGFzIFNhZmFyaSwgdGhlIHNlYWNoIGJveCB3aWxsIGJlIHJlcGxhY2VkIGJ5IGEgTWFjIE9TIFggc2VhcmNoIHdpZGdldCBhbmQgdGhlIHJlc2V0IGltYWdlIHdpbGwgbm90IGJlIHNob3duIGJlY2F1c2UgdGhpcyBzcGVjaWFsIHNlYXJjaCB3aWRnZXQgYWxyZWFkeSBoYXMgb25lLCBhbmQgdGhlICYjODIyMDtsc19zYWZhcmkmIzgyMjE7IGNsYXNzIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgPHN0cm9uZz5mb3JtPC9zdHJvbmc+LiBUaGlzIGFsbG93cyB5b3UgdG8gc3R5bGUgdGhlIGZvcm0gYW5kIGl0cyBzdWJlbGVtZW50cyBkaWZmZXJlbnRseSB3aGVuIGRpc3BsYXlpbmcgdGhlIE1hYyB3aWRnZXQsIGZvciBleGFtcGxlIGJ5IG1ha2luZyB0aGUgc2VhcmNoIHdpZGdldCBsYXJnZXIgYmVjYXVzZSB5b3Uga25vdyB0aGF0IHRoZSByZXNldCBpbWFnZSB3aWxsIG5vdCBiZSBzaG93bi48L3A+CgoJPHA+SW1tZWRpYXRlbHkgdG8gdGhlIHJpZ2h0IG9mIHRoZSBzZWFyY2ggYm94LCBzdGlsbCBpbnNpZGUgdGhlIGJsb2NrLCB5b3UgaGF2ZSB0aGUgcmVzZXQgaW1hZ2UgYW5kIHRoZW4gdGhlIHdhaXQgaW1hZ2UuIFRoZXNlIGltYWdlcyBhcmUgZmFjdWx0YXRpdmUgYW5kIG11c3QgYmUgZGVmaW5lZCB1c2luZyA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBpZiB5b3Ugd2FudCB0byB1c2UgdGhlbS4gSWYgeW91IGRvbiYjODIxNzt0IGRlY2xhcmUgYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IHJ1bGUgZm9yIG9uZSBvZiB0aGVzZSBpbWFnZXMsIGl0IHdpbGwgbmV2ZXIgYXBwZWFyLjwvcD4KCgk8cD5UaGUgcmVzZXQgaW1hZ2UgaXMgYSA8Y29kZT4mbHQ7c3BhbiZndDs8L2NvZGU+IHRhZyB3aXRoIHRoZSBjbGFzcyAmIzgyMjA7bHNfcmVzZXRfaW1hZ2UmIzgyMjE7IHdoaWNoIGlzIHZpc2libGUgd2hlbiB0aGUgc2VhcmNoIGJveCBpcyBub3QgZW1wdHkuIENsaWNraW5nIG9uIHRoaXMgaW1hZ2Ugd2lsbCBjbGVhciB0aGUgc2VhcmNoIGJveCBsaWtlIGEgcmVzZXQgYnV0dG9uLiBOb3RlIHRoYXQgZXZlbiBpZiB5b3UgZGVmaW5lIGEgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gcnVsZSBmb3IgYSByZXNldCBpbWFnZSwgaXQgd2lsbCBuZXZlciBiZSBkaXNwbGF5ZWQgaW4gU2FmYXJpIGJyb3dzZXJzIHdoZW4gdGhlICYjODIyMDtzYWZhcmkmIzgyMjE7IHBhcmFtZXRlciBpcyBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gKHNlZSBhYm92ZSkuPC9wPgoKCTxwPlRoZSB3YWl0IGltYWdlIGlzIGEgPGNvZGU+Jmx0O3NwYW4mZ3Q7PC9jb2RlPiB0YWcgd2l0aCB0aGUgY2xhc3MgJiM4MjIwO2xzX3dhaXRfaW1hZ2UmIzgyMjE7IHdoaWNoIGlzIHZpc2libGUgb25seSBkdXJpbmcgYSBzZWFyY2ggb3BlcmF0aW9uIGFuZCBkaXNhcHBlYXJzIGFzIHNvb24gYXMgdGhlIHJlc3VsdHMgYXJlIHNob3duLiBUeXBpY2FsbHksIHRoaXMgaW1hZ2UgaXMgYSBzcGlubmVyIG9yIGEgaG91cmdsYXNzLjwvcD4KCgk8cD5XaGVuIHlvdSBkZWZpbmUgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IHJ1bGVzIGZvciB0aGVzZSBpbWFnZXMsIHlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz46PC9wPgoKCTx1bD4KCQk8bGk+U2V0IHRoZSBkaXNwbGF5IHByb3BlcnR5IHRvICYjODIyMDtpbmxpbmUtYmxvY2smIzgyMjE7LDwvbGk+CgkJPGxpPlNldCB0aGUgd2lkdGggYW5kIGhlaWdodCBwcm9wZXJ0aWVzIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBpbWFnZSAoaW4gcGl4ZWxzKSw8L2xpPgoJCTxsaT5TZXQgdGhlIGJhY2tncm91bmQgcHJvcGVydHkgdG8gdGhlIGltYWdlIGZpbGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4sPC9saT4KCQk8bGk+Rm9yIHRoZSByZXNldCBpbWFnZSBvbmx5LCBzZXQgdGhlIGN1cnNvciBwcm9wZXJ0eSB0byAmIzgyMjA7cG9pbnRlciYjODIyMTsgc28gdGhhdCB0aGUgbW91c2UgY3Vyc29yIGluZGljYXRlcyB0byB0aGUgdXNlciB0aGF0IGl0IHdvcmtzIGxpa2UgYSBidXR0b24uPC9saT4KCTwvdWw+CgoJPHA+QWxzbywgaXQgaXMgYSBnb29kIGlkZWEgdG8gZGVmaW5lIGEgbWFyZ2luIGZvciBzb21lIG9mIHRoZXNlIGVsZW1lbnRzIGluIG9yZGVyIHRvIGFkZCBzb21lIHNwYWNlIGJldHdlZW4gdGhlIGlucHV0IGJveCBhbmQgdGhlIGltYWdlcy48L3A+CgoJPHA+PGVtPkV4YW1wbGU6PC9lbT48L3A+Cgo8cHJlPjxjb2RlPiNsaXZlX3NlYXJjaCAubHNfcmVzZXRfaW1hZ2UKewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDE0cHg7CiAgICBoZWlnaHQ6IDE0cHg7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vaW1nL3Jlc2V0LmdpZikgbm8tcmVwZWF0IGNlbnRlcjsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIG1hcmdpbi1sZWZ0OiAxMHB4Owp9CjwvY29kZT48L3ByZT4KCjxwcmU+PGNvZGU+I2xpdmVfc2VhcmNoIC5sc193YWl0X2ltYWdlCnsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2ltZy9zcGlubmVyLmdpZikgbm8tcmVwZWF0IGNlbnRlcjsKICAgIG1hcmdpbi1sZWZ0OiAxMHB4Owp9CjwvY29kZT48L3ByZT4KCgk8cD48c3Ryb25nPlJlbWFyazo8L3N0cm9uZz4gQnJvd3NlcnMgdXNpbmcgcHJldmlvdXMgdmVyc2lvbnMgb2YgdGhlIEdlY2tvIGVuZ2luZSBsaWtlIEZpcmVmb3ggMSBvciAyIG5vcm1hbGx5IGRvIG5vdCBzdXBwb3J0IHRoZSAmIzgyMjA7aW5saW5lLWJsb2NrJiM4MjIxOyB2YWx1ZSBidXQgY2JzX2xpdmVfc2VhcmNoIGluY2x1ZGVzIGEgamF2YXNjcmlwdCBmaXggdG8gbWFrZSBpdCB3b3JrIGluIHRoZXNlIGJyb3dzZXJzLCBzbyB5b3UgZG9uJiM4MjE3O3QgbmVlZCB0byB3b3JyeSBhYm91dCBpdC48L3A+CgoJPHA+RW5zdXJlIHRoYXQgeW91IGhhdmUgZW5vdWdoIHNwYWNlIHRvIGRpc3BsYXkgYWxsIGVsZW1lbnRzIG9mIHRoaXMgYmxvY2sgaW4gdGhlIHNhbWUgcm93IChieSB1c2luZyBjb3JyZWN0bHkgc2l6ZWQgaW1hZ2VzIGFuZCBzZXR0aW5nIGVsZW1lbnRzIG1hcmdpbnMgYW5kIHRoZSBzZWFyY2ggYm94IHdpZHRoIHdpdGggY29ycmVjdCB2YWx1ZXMgZm9yIGV4YW1wbGUpLjwvcD4KCgk8aDQ+VGhlIHJlc3VsdHMgem9uZTwvaDQ+CgoJPHA+VGhlIHJlc3VsdHMgem9uZSBpcyBhIDxjb2RlPiZsdDtkaXYmZ3Q7PC9jb2RlPiBibG9jayB3aXRoIHRoZSBjbGFzcyAmIzgyMjA7bHNfcmVzdWx0cyYjODIyMTssIGNvbnRhaW5pbmcgdGhlIHJlc3VsdHMgbGlzdC48L3A+CgoJPHA+WW91IGNhbiBjaG9vc2UgdG8gc3R5bGUgdGhpcyA8Y29kZT4mbHQ7ZGl2Jmd0OzwvY29kZT4gYmxvY2sgYXMgeW91IHdhbnQsIGJ1dCB0aGV5IGFyZSBhIGZldyBjb25zdHJhaW50czo8L3A+CgoJPG9sPgoJCTxsaT5Zb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNldCBhIG5vbi10cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGZvciBpdCAoYSBjb2xvciBhbmQgb3B0aW9ubmFseSBhbiBpbWFnZSksIG90aGVyd2lzZSBpZiB5b3Uga2VlcCB0aGUgZGVmYXVsdCB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kLCB0aGUgZGl2IHdpbGwgZGlzcGxheSB3cm9uZyBpbiBJbnRlcm5ldCBFeHBsb3Jlci48L2xpPgoJCTxsaT5Zb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNldCB0aGUgJiM4MjIwO292ZXJmbG93JiM4MjIxOyBwcm9wZXJ0eSB0byAmIzgyMjA7aGlkZGVuJiM4MjIxOywgb3RoZXJ3aXNlIHRoZSBlZmZlY3Qgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZC48L2xpPgoJCTxsaT5Zb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNldCB0aGUgJiM4MjIwO3dpZHRoJiM4MjIxOyBPUiAmIzgyMjA7aGVpZ2h0JiM4MjIxOyBvZiB0aGUgPGNvZGU+Jmx0O2RpdiZndDs8L2NvZGU+IGJsb2NrIChub3QgYm90aCkuIElmIHlvdSBzZXQgdGhlIHdpZHRoLCBlbnN1cmUgdGhhdCBpdCBjYW4gZXhwYW5kIHZlcnRpY2FsbHkuIElmIHlvdSBzZXQgdGhlIGhlaWdodCwgZW5zdXJlIHRoYXQgaXQgY2FuIGV4cGFuZCBob3Jpem9udGFsbHkuPC9saT4KCQk8bGk+WW91IDxzdHJvbmc+bXVzdCBub3Q8L3N0cm9uZz4gc2V0IGl0cyBwYWRkaW5nIChsZWF2ZSBpdCB0byB6ZXJvLCBhcyBpdCBpcyBieSBkZWZhdWx0KSwgb3RoZXJ3aXNlIHRoZSBzY3JpcHQgd2lsbCBub3QgYmUgYWJsZSB0byBjb21wdXRlIHRoZSByaWdodCBzaXplIGZvciB0aGUgc2NhbGUgZWZmZWN0LiBJbnN0ZWFkLCB5b3UgbWF5IHNldCBhIG1hcmdpbiBmb3IgdGhlIGNvbnRlbnQgb2YgdGhlIDxjb2RlPiZsdDtkaXYmZ3Q7PC9jb2RlPiBibG9jayAoc2VlIGJlbG93IGhvdyB0byBzdHlsZSB0aGUgY29udGVudCkuPC9saT4KCQk8bGk+WW91IDxzdHJvbmc+bXVzdCBub3Q8L3N0cm9uZz4gc2V0ICYjODIyMDtkaXNwbGF5JiM4MjIxOyBhbmQgJiM4MjIwO3Zpc2liaWxpdHkmIzgyMjE7IHByb3BlcnRpZXMuIFRoZSBibG9jayB3aWxsIHNpbXBseSBub3QgYXBwZWFyIGF0IGFsbCB3aGVuIEphdmFzY3JpcHQgaXMgZGlzYWJsZWQuPC9saT4KCTwvb2w+CgoJPHA+WW91IDxzdHJvbmc+bWF5PC9zdHJvbmc+IHNldCBhbnkgYm9yZGVyIHRvIGFueSBzaWRlLiBFbnZlbnR1YWxseSwgeW91IGNhbiBjaG9vc2UgdG8gc3R5bGUgdGhpcyA8Y29kZT4mbHQ7ZGl2Jmd0OzwvY29kZT4gYmxvY2sgd2l0aCBhbiBhYnNvbHV0ZSBwb3NpdGlvbiBvciBub3QuIElmIHlvdSBjaG9vc2UgYWJzb2x1dGUgKHNwZWNpZnkgPGNvZGU+cG9zaXRpb246IGFic29sdXRlOzwvY29kZT4pLCBpdCB3aWxsIGZhZGUgaW4gYWJvdmUgeW91ciBwYWdlIGxpa2UgYSBwb3B1cC48L3A+CgoJPHA+PGVtPkV4YW1wbGUgMSAobm9ybWFsIHBvc2l0aW9uaW5nKTo8L2VtPjwvcD4KCjxwcmU+PGNvZGU+I2xpdmVfc2VhcmNoIC5sc19yZXN1bHRzCnsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgd2lkdGg6IDIwMHB4Owp9CjwvY29kZT48L3ByZT4KCgk8cD48ZW0+RXhhbXBsZSAyIChhYnNvbHV0ZSBwb3NpdGlvbmluZyk6PC9lbT48L3A+Cgo8cHJlPjxjb2RlPiNsaXZlX3NlYXJjaCAubHNfcmVzdWx0cwp7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAwOwogICAgdG9wOiAwOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB3aWR0aDogNTAwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmOwp9CjwvY29kZT48L3ByZT4KCgk8cD5UaGUgY29udGVudCBvZiB0aGUgcmVzdWx0cyBibG9jayB3aWxsIGJlIGVpdGhlcjo8L3A+CgoJPG9sPgoJCTxsaT48ZW0+QXQgbGVhc3Qgb25lIHJlc3VsdCBpcyBmb3VuZDo8L2VtPiBBIGxpc3Qgd2l0aCB3cmFwIGFuZCBicmVhayB0YWdzIGFjY29yZGluZyB0byB5b3VyICYjODIyMDt3cmFwdGFnJiM4MjIxOyBhbmQgJiM4MjIwO2JyZWFrJiM4MjIxOyBwYXJhbWV0ZXJzIChzZWUgYWJvdmUpLiBUaGUgdGl0bGUgb2YgdGhlIGFydGljbGVzIHdpbGwgYmUgd3JhcHBlZCBpbiBhIGxpbmssIHNvIHlvdSBjYW4gc3R5bGUgdGhlIHRpdGxlIGRpZmZlcmVudGx5IGZyb20gdGhlIChvcHRpb25hbCkgZXhjZXJwdCBiYXNlZCBvbiB0aGUgPGNvZGU+Jmx0O2EmZ3Q7PC9jb2RlPiB0YWcgKGV4YW1wbGU6IDxjb2RlPiNsaXZlX3NlYXJjaCAubHNfcmVzdWx0cyBhOmxpbmssICNsaXZlX3NlYXJjaCAubHNfcmVzdWx0cyBhOnZpc2l0ZWQgeyAuLi4gfTwvY29kZT4pLiBUaGUgc2VhcmNoIGV4cHJlc3Npb24gd2lsbCBiZSB3cmFwcGVkIGluIGEgPGNvZGU+Jmx0O3N0cm9uZyZndDs8L2NvZGU+IHRhZyBpbnNpZGUgdGhlIGV4Y2VycHRzLjwvbGk+CgkJPGxpPjxlbT5ObyByZXN1bHRzIGZvdW5kOjwvZW0+IEEgbWVzc2FnZSAoYWNjb3JkaW5nIHRvIHRoZSAmIzgyMjA7bm9yZXN1bHRzJiM4MjIxOyBwYXJhbWV0ZXIgZGVzY3JpYmVkIGFib3ZlKSB3cmFwcGVkIGluIGEgcGFyYWdyYXBoICg8Y29kZT4mbHQ7cCZndDs8L2NvZGU+IHRhZykuPC9saT4KCTwvb2w+CgoJPHA+WW91IGNhbiBzdHlsZSB0aGUgcmVzdWx0cyBjb250ZW50IGFzIHlvdSB3YW50IHdpdGggbm8gbGltaXRhdGlvbnMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHNldCBhIG1hcmdpbiBiZWNhdXNlIGl0cyBjb250YWluZXIgKHRoZSA8Y29kZT4mbHQ7ZGl2Jmd0OzwvY29kZT4gYmxvY2sgd2l0aCB0aGUgY2xhc3MgJiM4MjIwO2xzX3Jlc3VsdHMmIzgyMjE7KSBtdXN0IG5vdCBoYXZlIGFueSBwYWRkaW5nLjwvcD4KCgk8cD48ZW0+RXhhbXBsZTo8L2VtPjwvcD4KCjxwcmU+PGNvZGU+I2xpdmVfc2VhcmNoIC5sc19yZXN1bHRzIHAKewogICAgbWFyZ2luOiAxMHB4Owp9CjwvY29kZT48L3ByZT4iO3M6NDoiY29kZSI7czo3MDY3OiJyZWdpc3Rlcl9jYWxsYmFjaygnY2JzX3NlYXJjaF9yZXN1bHRzJywgJ3RleHRwYXR0ZXJuJyk7DQoNCmZ1bmN0aW9uIGNic19vcF9xdWVyeSgkc3RyaW5nLCRmaWVsZHMsJG9wcz1udWxsKQ0Kew0KICBpZighJGZpZWxkcyB8fCAhJHN0cmluZykgcmV0dXJuICcwJzsNCiAgJHdoZXJlPWFycmF5KCk7DQogIGlmKCEkb3BzIHx8ICFpc19hcnJheSgkb3BzKSkgew0KICAgICRwYXR0ZXJucyA9IGV4cGxvZGUoJ3wnLCRmaWVsZHMpOw0KICAgICRmaWVsZHMgPSBhcnJheSgpOw0KICAgICRzdHJpbmcgPSBwcmVnX3JlcGxhY2UoJy9eXFxcIiguKylcXFwiJC8nLCAnJDEnLCAkc3RyaW5nKTsNCiAgICBmb3JlYWNoKCRwYXR0ZXJucyBhcyAkcGF0dGVybikgew0KICAgICAgbGlzdCgkZmxkcywkcGF0LCRyZXAsJGNvbXApID0gZXhwbG9kZSgnOicsJHBhdHRlcm4pICsgYXJyYXlfZmlsbCgwLDQsbnVsbCk7DQogICAgICBpZighaXNzZXQoJHBhdCkgfHwgcHJlZ19tYXRjaCgkcGF0LCRzdHJpbmcpKSB7DQogICAgICAgIGlmKGVtcHR5KCRjb21wKSkgJGNvbXAgPSAiTElLRSAnJSolJyI7DQogICAgICAgICRmaWVsZHNbXSA9IGFycmF5KCRmbGRzLCAkY29tcCk7DQogICAgICAgIGlmKGlzc2V0KCRyZXApKSAkc3RyaW5nID0gcHJlZ19yZXBsYWNlKCRwYXQsICRyZXAsICRzdHJpbmcpOw0KICAgICAgfQ0KICAgIH0NCiAgICBpZighJGZpZWxkcykgcmV0dXJuICcwJzsNCiAgICAkbm90ID0gZmFsc2U7DQogICAgd2hpbGUoJHN0cmluZyAmJiAkc3RyaW5nWzBdPT0nIScpIHskbm90ID0gISRub3Q7ICRzdHJpbmc9c3Vic3RyKCRzdHJpbmcsMSk7fQ0KICAgIGZvcmVhY2goJGZpZWxkcyBhcyAkZmxpc3QpIHsNCiAgICAkd2hyPWFycmF5KCk7DQogICAgJGZsZHMgPSBkb19saXN0KCRmbGlzdFswXSk7DQogICAgJGNvbXAgPSBwcmVnX3JlcGxhY2UoIi9cKi8iLCAkc3RyaW5nLCAkZmxpc3RbMV0pOw0KICAgIGlmKCRub3QpIHskbm90PSdOT1QnOyAkb3A9J0FORCc7fQ0KICAgIGVsc2UgeyRub3Q9Jyc7ICRvcD0nT1InO30gDQogICAgZm9yZWFjaCgkZmxkcyBhcyAkZmllbGQpICR3aHJbXSA9IiRub3QgJGZpZWxkICRjb21wIjsNCiAgICAkd2hlcmVbXSA9IGltcGxvZGUoIiAkb3AgIiwkd2hyKTsNCiAgICB9DQogICAgcmV0dXJuICcoJy5pbXBsb2RlKCIgJG9wICIsJHdoZXJlKS4nKSc7DQogIH0NCg0KICBAbGlzdCgkc2VwLCRvcCkgPSBleHBsb2RlKCc6JyxhcnJheV9wb3AoJG9wcykpOw0KDQogICRzZXBhciA9ICRzZXAuIioiLiRzZXA7DQogICRzdHJpbmcgPSBwcmVnX3NwbGl0KCcvKFxcXCIuK1xcXCIpL1UnLCAkc3RyaW5nLCBudWxsLCBQUkVHX1NQTElUX0RFTElNX0NBUFRVUkUpOw0KICBmb3JlYWNoKCRzdHJpbmcgYXMgJGtleT0+JHZhbHVlKSANCglpZighcHJlZ19tYXRjaCgnL15cXFwiLitcXFwiJC8nLCAkdmFsdWUpKSAkc3RyaW5nWyRrZXldID0gc3RyX3JlcGxhY2UoJHNlcCwgJHNlcGFyLCAkdmFsdWUpOw0KICAkc3RyaW5nID0gaW1wbG9kZSgnJywgJHN0cmluZyk7DQoNCiAgZm9yZWFjaChkb19saXN0KCRzdHJpbmcsICRzZXBhcikgYXMgJHZhbHVlKQ0KICB7DQogICAgaWYoc3RybGVuKCR2YWx1ZSk+MSkgJHdoZXJlW10gPSBjYnNfb3BfcXVlcnkoJHZhbHVlLCRmaWVsZHMsJG9wcyk7DQogIH0NCiAgc3dpdGNoIChjb3VudCgkd2hlcmUpKSB7DQogIGNhc2UgMDoNCiAgICByZXR1cm4gJzAnOw0KICBjYXNlIDE6DQogICAgcmV0dXJuICR3aGVyZVswXTsNCiAgZGVmYXVsdDoNCiAgICByZXR1cm4gJygnLmltcGxvZGUoIiAkb3AgIiwkd2hlcmUpLicpJzsNCiAgfQ0KICByZXR1cm4gJzAnOw0KfQ0KDQpmdW5jdGlvbiBjYnNfZGVmYXVsdF9xdWVyeSgmJG8sICRxPW51bGwsICRmaWx0ZXI9JycsICRsaW1pdD0nJywgJGV4Y2VycHRzPW51bGwsICRkYXRlcz1udWxsLCAkd2hlcmU9bnVsbCkNCnsNCmlmKCEkcSB8fCAkd2hlcmU9PT0nMCcpIHJldHVybjsNCmlmKCEkd2hlcmUpICR3aGVyZSA9ICJUaXRsZSBMSUtFICclJHElJyBPUiBCb2R5IExJS0UgJyUkcSUnIjsNCiRycyA9IHNhZmVfcm93cygNCiAgICAoJGV4Y2VycHRzPyJCb2R5X2h0bWwsIjonJykuIklELCBUaXRsZSwgU2VjdGlvbiwgdW5peF90aW1lc3RhbXAoUG9zdGVkKSBBUyBwb3N0ZWQsIE1BVENIIChUaXRsZSxCb2R5KSBBR0FJTlNUICgnJHEnKSBBUyBzY29yZSIsDQogICAgJ3RleHRwYXR0ZXJuJywNCiAgICAiKCR3aGVyZSkkZmlsdGVyIEFORCBTdGF0dXMgPj0gNCBBTkQgUG9zdGVkIDw9IG5vdygpIEFORCAoRXhwaXJlcz0nMDAwMC0wMC0wMCAwMDowMDowMCcgT1IgRXhwaXJlcz49bm93KCkpIE9SREVSIEJZIHNjb3JlIERFU0MiLiRsaW1pdA0KKTsNCg0KaWYoJHJzKSB7DQogIGdsb2JhbCAkcHJlZnM7DQogICRjb25jYXQgPSAnJzsNCiAgZm9yZWFjaCgkcnMgYXMgJGEpIHsNCiAgICAkaHVybCA9IHBlcm1saW5rdXJsKCRhKTsNCg0KICAgIGlmKCRleGNlcnB0cykgew0KICAgICAgJHEgPSBwcmVnX3F1b3RlKHN0cl9yZXBsYWNlKCInIiwgJyYjODIxNzsnLCBodG1sc3BlY2lhbGNoYXJzKCRxKSksICcvJyk7DQogICAgICAkcmVzdWx0ID0gcHJlZ19yZXBsYWNlKCcvPlxzKzwvJywgJz4gPCcsICRhWydCb2R5X2h0bWwnXSk7DQogICAgICBwcmVnX21hdGNoX2FsbCgnLyg/Ol58XHMpLnswLDUwfScuJHEuJy57MCw1MH0oPzpcc3wkKS9pJywgJHJlc3VsdCwgJGNvbmNhdCk7DQogICAgICAkY29uY2F0ID0gam9pbignIC4uLiAnLCAkY29uY2F0WzBdKTsNCiAgICAgICRjb25jYXQgPSBzdHJpcF90YWdzKCRjb25jYXQpOw0KICAgICAgJGNvbmNhdCA9IHByZWdfcmVwbGFjZSgnLyg/Ol5bXj5dKj58PFtePF0qJCkvVScsICcnLCAkY29uY2F0KTsNCiAgICAgICRjb25jYXQgPSBwcmVnX3JlcGxhY2UoJy8oJy4kcS4nKS9pJywgJzxzdHJvbmc+JDE8L3N0cm9uZz4nLCAkY29uY2F0KTsNCiAgICAgIGlmKCRjb25jYXQpICRjb25jYXQgPSAnPGJyIC8+Li4uICcuJGNvbmNhdC4nIC4uLic7DQogICAgfQ0KICAgICRvW10gPSAnPGEgaHJlZj0iJy4kaHVybC4nIj4nLiRhWydUaXRsZSddLic8L2E+Jy4kY29uY2F0DQogICAgICAgICAgICAuKCgkZGF0ZXMpID8gJzxiciAvPiYjODIxMjsgJy5zYWZlX3N0cmZ0aW1lKCRwcmVmc1snYXJjaGl2ZV9kYXRlZm9ybWF0J10sICRhWydwb3N0ZWQnXSkgOiAnJyk7DQogIH0NCn0NCnJldHVybjsNCn0NCg0KZnVuY3Rpb24gY2JzX3NlYXJjaF9yZXN1bHRzKCRldmVudCwgJHN0ZXApDQp7DQogIGlmKCgkcSA9IHBzKCdxJykpID09ICcnKSB7DQogICAgICByZXR1cm47DQogIH0NCg0KICAkYnJlYWsgPSBwcygnYicpOw0KICAkd3JhcHRhZyA9IHBzKCd3Jyk7DQogIGlmKCEoJG1heCA9IGludHZhbChwcygnbScpKSkpIHsNCiAgICAgICRtYXggPSA1Ow0KICB9DQogICRsaW1pdCA9ICgkbWF4PDA/Jyc6IiBMSU1JVCAkbWF4Iik7DQogICRleGNlcnB0cyA9IHBzKCdlJyk7DQogICRkYXRlcyA9IHBzKCdkJyk7DQogICRxaGFzaCA9IHBzKCdoJyk7DQogICRxdWVyeSA9IHJhd3VybGRlY29kZShwcygnZicpKTsNCiAgJGhhc2g9Z2V0X3ByZWYoJ2Nic19zZWFyY2hfaGFzaCcpOw0KICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC94bWwnKTsNCg0KICAkcSA9IHRyaW0oJHEpOw0KICBpZihlbXB0eSgkcSkgfHwgIXByZWdfbWF0Y2goIi9cdy8iLCRxKSB8fCAkcWhhc2ggIT0gbWQ1KCRoYXNoLiRxdWVyeSkpIHsNCiAgICAgIGV4aXQoJzxub25lIC8+Jyk7DQogIH0NCiAgJG8gPSBhcnJheSgpOw0KICANCi8vJG9bXT0iPCEtLSAkcXVlcnkgJHFoYXNoICIubWQ1KCRoYXNoLiRxdWVyeSkuIiAtLT4iOw0KICAkcTIgPSBhZGRjc2xhc2hlcygkcSwgJ1wnIlxcJV8nKTsNCi8vJG9bXSA9ICRxMjsNCg0KICAkcnMgPSBzYWZlX2NvbHVtbignbmFtZScsICd0eHBfc2VjdGlvbicsICJzZWFyY2hhYmxlICE9ICcxJyIpOw0KICBpZigkcnMpIHsNCiAgICAgIGZvcmVhY2goJHJzIGFzICRuYW1lKSB7DQogICAgICAgICAgJGZpbHRlcnNbXSA9ICIgQU5EIFNlY3Rpb24gIT0gJyRuYW1lJyI7DQogICAgICB9DQogICAgICAkc19maWx0ZXIgPSBqb2luKCcnLCAkZmlsdGVycyk7DQogIH0gZWxzZSB7DQogICAgICAkc19maWx0ZXIgPSAnJzsNCiAgfQ0KDQogICAgJG9wcz1leHBsb2RlKCd8JyxnZXRfcHJlZignY2JzX3NlYXJjaF9vcHMnKSk7DQovLyAgJG9wcz1hcnJheSgnIDpBTkQnLCcsOk9SJyk7DQoNCiAgZm9yZWFjaChleHBsb2RlKCd8fHwnLCAkcXVlcnkpIGFzICRxcnkpIHsNCiAgICBsaXN0KCR3aGF0LCAkd2hlcmUsICRmb3JtKSA9IGV4cGxvZGUoJ3x8JywgJHFyeSkgKyBhcnJheV9maWxsKDAsMyxudWxsKTsNCiAgICBsaXN0KCRmaWx0ZXIsICRmaWVsZHMsICR0YWJsZSwgJHNvcnQpID0gZXhwbG9kZSgnOicsICR3aGF0KSArIGFycmF5X2ZpbGwoMCw0LG51bGwpOw0KICAgIGlmKCR3aGVyZSkgJHdoZXJlID0gY2JzX29wX3F1ZXJ5KCRxMiwkd2hlcmUsJG9wcyk7DQoNCi8vJG9bXT0iJHdoZXJlIjsNCg0KICAgIGlmKCEkZmllbGRzIHx8ICEkdGFibGUpIHtjYnNfZGVmYXVsdF9xdWVyeSgkbywgJHEyLCAkc19maWx0ZXIuKCRmaWx0ZXI/IiBBTkQgKCRmaWx0ZXIpIjonJyksICRsaW1pdCwgJGV4Y2VycHRzLCAkZGF0ZXMsICR3aGVyZSk7fQ0KICAgIGVsc2UgaWYoJHdoZXJlICYmICRmb3JtKSB7DQogICAgICAkcnMgPSBzYWZlX3Jvd3MoDQogICAgICAgICAgJGZpZWxkcywNCiAgICAgICAgICAkdGFibGUsDQogICAgICAgICAgIigkd2hlcmUpIi4oJHRhYmxlPT0ndGV4dHBhdHRlcm4nPyRzX2ZpbHRlcjonJykuKCRmaWx0ZXI/IiBBTkQgKCRmaWx0ZXIpIjonJykuKCRzb3J0PyIgT1JERVIgQlkgJHNvcnQiOicnKQ0KICAgICAgKTsNCiAgICAgIGlmKCRycykgew0KICAgICAgICAkZm9ybSA9IHByZWdfcmVwbGFjZSgnL3soLispfS9VJywgIlwkYVskMV0iLCAkZm9ybSk7DQogICAgICAgIGV2YWwoImZvcmVhY2goXCRycyBhcyBcJGEpIFwkb1tdID0gXCIkZm9ybVwiOyIpOw0KICAgICAgfQ0KICAgIH0NCiAgfQ0KICANCiAgaWYoIWNvdW50KCRvKSkgew0KICAgICAgZXhpdCgnPG5vbmUgLz4nKTsNCiAgfQ0KICBlY2hvKCc8P3htbCB2ZXJzaW9uPVwnMS4wXCcgZW5jb2Rpbmc9XCd1dGYtOFwnID8+Jyk7DQogIGV4aXQoZG9XcmFwKCRvLCAkd3JhcHRhZywgJGJyZWFrKSk7DQp9DQoNCmZ1bmN0aW9uIGNic19saXZlX3NlYXJjaCgkYXR0cykNCnsNCiAgZXh0cmFjdChsQXR0cyhhcnJheSgNCiAgICAgICdzZWN0aW9uJyAgICAgICAgID0+IGZhbHNlLA0KICAgICAgJ2h0bWxfaWQnICAgICAgICAgPT4gJ2xpdmVfc2VhcmNoJywNCiAgICAgICdsYWJlbCcgICAgICAgICAgID0+IGZhbHNlLA0KICAgICAgJ3NpemUnICAgICAgICAgICAgPT4gMTUsDQogICAgICAnZGVmYXVsdF92YWx1ZScgICA9PiAnJywNCiAgICAgICd3cmFwdGFnJyAgICAgICAgID0+ICdwJywNCiAgICAgICdxdWVyeScgICAgICAgICAgID0+ICd8fFRpdGxlLEJvZHknLA0KICAgICAgJ3NhZmFyaScgICAgICAgICAgPT4gZmFsc2UsDQogICAgICAncmVzdWx0c19icmVhaycgICA9PiAnYnInLA0KICAgICAgJ3Jlc3VsdHNfd3JhcHRhZycgPT4gJ3AnLA0KICAgICAgJ3Jlc3VsdHNfbWF4JyAgICAgPT4gZmFsc2UsDQogICAgICAncmVzdWx0c19leGNlcnB0cyc9PiBmYWxzZSwNCiAgICAgICdyZXN1bHRzX2RhdGVzJyAgID0+IGZhbHNlLA0KICAgICAgJ25vX3Jlc3VsdHMnICAgICAgPT4gJzAgJy5nVHh0KCdhcnRpY2xlc19mb3VuZCcpDQogICksJGF0dHMpKTsNCiAgJHNlY3Rpb24gPSAkc2VjdGlvbiA/IHBhZ2VsaW5rdXJsKGFycmF5KCdzJz0+JHNlY3Rpb24pKSA6IHJodTsNCiAgJHNhZmFyaSA9ICgkc2FmYXJpID09ICd0cnVlJykgPyAxIDogMDsNCiAgaWYoISgkaGFzaCA9IGdldF9wcmVmKCdjYnNfc2VhcmNoX2hhc2gnLCBudWxsKSkpIHsNCiAgICAkaGFzaCA9IG1kNShtdF9yYW5kKCkpOw0KICAgIHNldF9wcmVmKCdjYnNfc2VhcmNoX2hhc2gnLCAkaGFzaCwgJ2Nic19zZWFyY2gnLCBQUkVGX0hJRERFTik7DQogIH0NCiAgaWYoIWdldF9wcmVmKCdjYnNfc2VhcmNoX29wcycpKSANCiAgICBzZXRfcHJlZignY2JzX3NlYXJjaF9vcHMnLCAnIDpBTkR8LDpPUicsICdjYnNfc2VhcmNoJywgUFJFRl9ISURERU4pOw0KICAkcmVzdWx0c19vcHRzID0gYXJyYXkoKTsNCiAgaWYoJHJlc3VsdHNfYnJlYWspICRyZXN1bHRzX29wdHNbXSA9J2I6IicuJHJlc3VsdHNfYnJlYWsuJyInOw0KICBpZigkcmVzdWx0c193cmFwdGFnKSAkcmVzdWx0c19vcHRzW10gPSAndzoiJy4kcmVzdWx0c193cmFwdGFnLiciJzsNCiAgaWYoJHJlc3VsdHNfbWF4KSAkcmVzdWx0c19vcHRzW10gPSAnbTonLiRyZXN1bHRzX21heDsNCiAgaWYoJHJlc3VsdHNfZXhjZXJwdHMpICRyZXN1bHRzX29wdHNbXSA9ICdlOjEnOw0KICBpZigkcmVzdWx0c19kYXRlcykgJHJlc3VsdHNfb3B0c1tdID0gJ2Q6MSc7DQogIGlmKCRxdWVyeSkgeyRyZXN1bHRzX29wdHNbXSA9J2g6IicubWQ1KCRoYXNoLiRxdWVyeSkuJyInOyAkcmVzdWx0c19vcHRzW10gPSdmOiInLnJhd3VybGVuY29kZSgkcXVlcnkpLiciJzt9DQoNCiAgcmV0dXJuICc8Zm9ybSBpZD0iJy4kaHRtbF9pZC4nIiBtZXRob2Q9ImdldCIgYWN0aW9uPSInLiRzZWN0aW9uLiciPicubg0KICAgICAgLmRvVGFnKCAoJGxhYmVsID8gJzxsYWJlbD4nLiRsYWJlbC4nPGJyIC8+PC9sYWJlbD4nIDogJycpDQogICAgICAuJzxpbnB1dCB0eXBlPSJzZWFyY2giIG5hbWU9InEiIHNpemU9IicuJHNpemUuJyIgcGxhY2Vob2xkZXI9IicuJGRlZmF1bHRfdmFsdWUuJyIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9mb2N1cyAvPicsICR3cmFwdGFnLCAibHNfc2VhcmNoIiApLm4uJzwvZm9ybT4nDQogICAgICAuJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWycubi4nJChmdW5jdGlvbiAoKSB7Jy5uLidjYnNfbGl2ZV9zZWFyY2goIicuJGh0bWxfaWQuJyIsIicuJGRlZmF1bHRfdmFsdWUNCiAgICAgIC4nIiwiJy4kbm9fcmVzdWx0cy4nIiwnLiRzYWZhcmkuJyx7Jy5qb2luKCcsJywgJHJlc3VsdHNfb3B0cykuJ30pO30pOycubi4nLy9dXT48L3NjcmlwdD4nOw0KfSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToiOSI7czo1OiJmbGFncyI7czoxOiIwIjtzOjM6Im1kNSI7czozMjoiMmRjYjRkMjdmYjIzYzRjZTM2NjkzZTY4ZGNiZDk1OGEiO30=

Javascript:

/*
	cbs_live_search v0.8 for jQuery 1.2
	(c) 2006-2008 Christophe Beyls <http://www.digitalia.be>
	MIT-style licence
*/
var cbs_live_search=(function(d){var f="",q,a,m,n,p,b,o,c,r,h,j;function g(){o.value="";k();o.focus()}function e(){clearTimeout(n);i(r);if(a){a=0;d(h).hide(600)}}function i(t,s){if(t){return t.css("visibility",s?"":"hidden")}}function k(){var s=o.value;if(s!=f){f=s;i(c,s);s=d.trim(s);if(s!=q.q){if(b){b.abort()}if((q.q=s).length<3){e()}else{i(r,1);b=d.ajax(d.extend(p,{data:q}))}}}}function l(){var s={width:j.clientWidth,height:j.clientHeight};if(!a){a=1;d(h).queue(function(){d(h).css(s).dequeue()}).show(600)}else{d(h).animate(s,600)}}return function(v,s,u,w,t){u="<p>"+u+"</p>";q=t;v=d("#"+v).append(d([j=i(d("<div />")).css("position","absolute")[0],h=d("<div />").css("display","none")[0]]).addClass("ls_results"))[0];o=d("input",v).focus(function(){if(d(o).hasClass("ls_inactive")){d(o).removeClass("ls_inactive");o.value=""}m=setTimeout(k,1000)}).blur(function(){clearTimeout(m);k();if(!o.placeholder&&(o.value=="")){d(o).addClass("ls_inactive");o.value=s}}).keyup(function(x){if(x.keyCode==27){g()}else{clearTimeout(m);m=setTimeout(k,600)}})[0];r=i(d('<span class="ls_wait_image" />')).insertAfter(o);c=!w&&i(d('<span class="ls_reset_image" />')).click(g).insertAfter(o);if(d.browser.mozilla&&!document.getElementsByClassName){r.add(c).css("display","-moz-inline-stack")}d(o).attr({autocomplete:"off"});if(!o.placeholder){d(o).attr({value:s}).addClass("ls_inactive")}p={url:v.action,type:"POST",dataType:"html",success:function(x){clearTimeout(n);i(r);d([j,h]).html((x=="<none />")?u:x);n=setTimeout(l,50)},error:e}}})(jQuery);

Last edited by uli (2012-11-14 20:55:03)


etc_[ query | search | pagination | date | tree | url ]

Offline

#96 2012-10-08 16:08:04

etc
Plugin Author
Registered: 2010-11-11
Posts: 1,230
Website

Re: [plugin] [ORPHAN] cbs_live_search

etc_search is out.

mrjysta wrote:

Yes also the ability to search specific categories would also be great : <txp:cbs_live_search cbs_section="blog" cbs_category="design" />

This is possible with etc_search:

<txp:etc_search query="{Title,Body} AND Section='blog' AND (Category1='design' OR Category2='design')" />

Last edited by etc (2012-10-08 19:40:45)


etc_[ query | search | pagination | date | tree | url ]

Offline

Board footer

Powered by FluxBB