Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Deeply Nested Categories
I’ve found this approach helpful for auto-generating nav based off of categories defined.
My question is: Does anyone use a way to auto-generate nav from deeper nesting? Nesting that goes further than one ‘level’ down?
My purpose: I’ll have users building categories willy-nilly and the nesting that occurs should be reflected in the navigation auto-generated in their public facing pages. In theory it should support infinite levels but I’ve suggested three levels max and this makes sense so if it is not possible to write for infinite support, a third level would suffice.
txtstrap (Textpattern + Twitter Bootstrap + etc…)
Offline
Re: Deeply Nested Categories
I believe I have figured it out sooner than I thought i would. This is an addition to the approach mention above in my initial post.
<ul id="menu">
<txp:category_list children="0" break="li">
<txp:category title="1" link="1" section="default" />
<txp:article_custom category='<txp:category />' break="li" wraptag="ul" limit="999">
<txp:permlink><txp:title /></txp:permlink>
</txp:article_custom>
<txp:category_list parent='<txp:category />' exclude='<txp:category />' break="" wraptag="ul">
<li><txp:category title="1" link="1" section="default" />
<txp:article_custom category='<txp:category />' wraptag="ul" limit="999">
<li><txp:permlink><txp:title /></txp:permlink></li>
</txp:article_custom></li>
<txp:category_list children="0" parent='<txp:category />' exclude='<txp:category />' break="" wraptag="ul">
<li><txp:category title="1" link="1" section="default" />
<txp:article_custom category='<txp:category />' wraptag="ul" limit="999">
<li><txp:permlink><txp:title /></txp:permlink></li>
</txp:article_custom></li>
</txp:category_list>
</txp:category_list>
</txp:category_list>
</ul>
txtstrap (Textpattern + Twitter Bootstrap + etc…)
Offline
Offline
Offline
Re: Deeply Nested Categories
You could try adi_cat_menu or stw_category_tree or azp_menugen. I have a modified version of azp_menugen
that works well (for me). If you have no luck with others, I can post it here, but have to update the help first.
Offline
#6 2013-01-25 11:14:02
- jpdupont
- Member
- Registered: 2004-10-01
- Posts: 752
Re: Deeply Nested Categories
@Oleg,
could you share your azp_menugen version ? (The original download link don’t work …)
@Josh : I use adi_cat_menu on many sites, with rss_unlimited_categories or not and it works fine.
Offline
Re: Deeply Nested Categories
Here it is:
YToxMTp7czo0OiJuYW1lIjtzOjExOiJhenBfbWVudWdlbiI7czo2OiJhdXRob3IiO3M6MTI6IkFuZHJlaSBaaW5jYSI7czoxMDoiYXV0aG9yX3VyaSI7czowOiIiO3M6NzoidmVyc2lvbiI7czo1OiIxLjByYyI7czoxMToiZGVzY3JpcHRpb24iO3M6NDI6IkdlbmVyYXRlcyBtZW51IGJhc2VkIG9uIGNhdGVnb3J5IHN0cnVjdHVyZSI7czo0OiJoZWxwIjtzOjEzODI6IjxoMj5DYXRlZ29yeSBNZW51IGdlbmVyYXRvcjwvaDI+Cgo8cD5UaGlzIHBsdWdpbiBnZW5lcmF0ZXMgYSBodG1sIGxpc3QgYmFzZWQgb24geW91ciBzaXRlIGNhdGVnb3J5IHN0cnVjdHVyZS48L3A+Cgo8aDI+TGVhcm4gYnkgZXhhbXBsZTwvaDI+Cgo8cD48Y29kZT4mbHQ7dHhwOmF6cF9tZW51Z2VuIHN0YXJ0PSJmcnVpdHMiIHNob3djb3VudD0ieWVzIiBleGNsdWRlPSJhcHBsZSIgLyZndDs8L2NvZGU+PC9wPgoKPHA+d2lsbCBnZW5lcmF0ZSBhIG1lbnUgb2YgY2F0ZWdvcnkgZnJ1aXRzIGFuZCBhbGwgaXRzIHN1YmNhdGVnb3JpZXMgZXhjZXB0IGFwcGxlIGlmIGF2YWlsYWJsZSBhbmQgc2hvdyB0aGUgYXJ0aWNsZSBjb3VudC48L3A+Cgo8cD48Y29kZT4mbHQ7dHhwOmF6cF9tZW51Z2VuIHN0YXJ0PSI/IiByb290PSJmcnVpdHMiIGRlcHRoPSIzIiBtb3JlPSIsJnJhcXVvOyIgLyZndDs8L2NvZGU+PC9wPgoKPHA+d2lsbCBnZW5lcmF0ZSBhIG1lbnUgb2YgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgY2F0ZWdvcnkgd2l0aGluIGZydWl0cyBhbmQgc2hvdyBtYXhpbXVtIHRocmVlIGxldmVscyBvZiBzdWJjYXRlZ29yaWVzLiBJdCB3aWxsIGFsc28gcHJpbnQgYXMgdGl0bGUmcmFxdW87IHRoZSBjYXRlZ29yaWVzIGhhdmluZyBjaGlsZHJlbi4gc3RhcnQgcHJvcGVydHkgaXMgYnkgZGVmYXVsdCAiPyI8L3A+Cgo8cD5BbHNvLCBhenBfbWVudWdlbiBnZW5lcmF0ZXMgWEhUTUwgY29tcGxpYW50IGxpc3QgbWVudSwgdGFncyB0aGUgYWN0aXZlIGl0ZW1zIHdpdGggdGhlIGNzcyBjbGFzcyAiYWN0aXZlIiBhbmQgdGhlIGFjdGl2ZSBwYXRoIHdpdGggImFjdGl2ZXBhdGgiLjwvcD4KCjxoMj5BdHRyaWJ1dGVzPC9oMj4KCjx1bD4KPGxpPjxiPnJvb3Q8L2I+OiAncm9vdCcuIExpbWl0IHRoZSBtZW51IHRvIHRoZSBjaGlsZHJlbiBvZiAncm9vdCcgY2F0ZWdvcnkuPC9saT4KPGxpPjxiPnN0YXJ0PC9iPjogJz8nLiBJZiBzdGFydD0nPycsIHdpbGwgc3RhcnQgd2l0aCB0aGUgY3VycmVudCBjYXRlZ29yeSwgb3Igcm9vdCBpZiBub25lLjwvbGk+CjxsaT48Yj5kZXB0aDwvYj46ICc/JzwvbGk+CjxsaT48Yj5jYXRlZ29yeTwvYj46ICcnPC9saT4KPGxpPjxiPmV4Y2x1ZGU8L2I+OiAnJzwvbGk+CjxsaT48Yj50eXBlPC9iPjogJ2FydGljbGUnPC9saT4KPGxpPjxiPm1vcmU8L2I+OiAnJy4gQ29tbWEgc2VwYXJhdGVkIGNvdXBsZSBvZiBzeW1ib2xzIHRvIGFwcGVuZCBvbiB0aGUgbGVmdCBhbmQgb24gdGhlIHJpZ2h0IG9mIGNhdGVnb3JpZXMgaGF2aW5nIGNoaWxkcmVuLjwvbGk+CjxsaT48Yj5zaG93Y291bnQ8L2I+OiAwPC9saT4KPGxpPjxiPmluY2x1ZGVhcnRpY2xlczwvYj46IDA8L2xpPgo8bGk+PGI+bGFiZWw8L2I+OiAnJzwvbGk+CjwvdWw+IjtzOjQ6ImNvZGUiO3M6MzUzMToiZnVuY3Rpb24gYXpwX2dldHRyZWUoJiR0cmVlLCAkc3RhcnQsICRkZXB0aCwgJG1vcmUsICRhbGV2ZWwsICYkYXBhdGgsICYkZXhjbHVkZSwgJHNob3djb3VudD0wLCAkaW5jbHVkZWFydGljbGVzPTAsICR0eXBlPSdhcnRpY2xlJykgew0KICBnbG9iYWwgJHByZXRleHQ7DQogIHN0YXRpYyAkaW5kPTA7DQogIGxpc3QoJGwsJHIpID0gZXhwbG9kZSgnLCcsJG1vcmUpOw0KICAkYnVmZmVyID0gJyc7DQogIHdoaWxlKGlzc2V0KCR0cmVlWyRpbmRdKSBhbmQgZXh0cmFjdCgkdHJlZVskaW5kXSkgYW5kICRsZXZlbD49JGFsZXZlbCkgew0KICAgICRpbmQrKzsNCiAgICBpZigkbmFtZT09JHN0YXJ0KSBjb250aW51ZTsNCiAgICBpZihpc3NldCgkY3V0b2ZmKSAmJiAkbGV2ZWwgPiAkY3V0b2ZmKSBjb250aW51ZTsNCiAgICBlbHNlIHVuc2V0KCRjdXRvZmYpOw0KICAgIGlmKGluX2FycmF5KCRuYW1lLCAkZXhjbHVkZSkpIHskY3V0b2ZmID0gJGxldmVsOyBjb250aW51ZTt9DQogICAgaWYoJGRlcHRoICE9ICc/JyAmJiAkbGV2ZWwgPiAkZGVwdGgpIGNvbnRpbnVlOw0KICAgICRraWRzID0gJGFydGljbGVzID0gJGFjdGl2ZXBhdGggPSAnJzsNCiAgICBpZigkY2hpbGRyZW4gJiYgKCRkZXB0aCAhPSAnPycpICYmICgkbGV2ZWwgPiAkZGVwdGgtMSkpICRjaGlsZHJlbj0wOw0KICAgIGlmICgkaW5jbHVkZWFydGljbGVzKSB7DQogICAgICAkc25hbWUgPSBkb1NsYXNoKCRuYW1lKTsNCiAgICAgICRycyA9IHNhZmVfcm93cygnSUQgYXMgdGhpc2lkLCBTZWN0aW9uIGFzIHNlY3Rpb24sIFRpdGxlIGFzIHRpdGxlLCB1cmxfdGl0bGUsIHVuaXhfdGltZXN0YW1wKFBvc3RlZCkgYXMgcG9zdGVkJywndGV4dHBhdHRlcm4nLCIoQ2F0ZWdvcnkxID0gJyRzbmFtZScgT1IgQ2F0ZWdvcnkyID0gJyRzbmFtZScpIEFORCAgU3RhdHVzID49IDQgT1JERVIgQlkgUG9zdGVkIERFU0MiKTsNCiAgICAgIGZvcmVhY2goJHJzIGFzICRhcnRpY2xlKSAkYXJ0aWNsZXMgLj0gZG9UYWcocGVybWxpbmt1cmwoJGFydGljbGUpLCAnbGknKTsNCiAgICAgIGlmKCRhcnRpY2xlcykgJGFydGljbGVzID0gZG9UYWcoJGFydGljbGVzLCd1bCcsJ2FydGljbGVsaXN0JykuIlxuIjsNCiAgICAgIGlmKCRzaG93Y291bnQpICR0aXRsZSAuPSAnKCcuY291bnQoJHJzKS4nKSc7DQogICAgfQ0KICAgIGVsc2VpZiAoJHNob3djb3VudCkgew0KICAgICAgJHNuYW1lID0gZG9TbGFzaCgkbmFtZSk7DQogICAgICAkY291bnQgPSBzYWZlX2NvdW50KCd0ZXh0cGF0dGVybicsIihDYXRlZ29yeTEgPSAnJHNuYW1lJyBPUiBDYXRlZ29yeTIgPSAnJHNuYW1lJykgQU5EICBTdGF0dXMgPj0gNCIpOw0KICAgICAgJHRpdGxlIC49ICIoJGNvdW50KSI7DQogICAgfQ0KICAgIGlmKCRjaGlsZHJlbiBhbmQgJGtpZHMgPSBhenBfZ2V0dHJlZSgkdHJlZSwgJHN0YXJ0LCAkZGVwdGgsICRtb3JlLCAkbGV2ZWwrMSwgJGFwYXRoLCAkZXhjbHVkZSwgJHNob3djb3VudCwgJGluY2x1ZGVhcnRpY2xlcywgJHR5cGUpKSB7DQogICAgICBpZigkbGV2ZWwgPCAkYXBhdGgpIHskYXBhdGggPSAkbGV2ZWw7ICRhY3RpdmVwYXRoID0gJ2FjdGl2ZXBhdGgnO30NCiAgICAgICRraWRzID0gZG9UYWcoJGtpZHMsJ3VsJywkYWN0aXZlcGF0aCk7DQogICAgICAkdGl0bGUgPSAkbC4kdGl0bGUuJHI7DQogICAgfQ0KLyogICAgaWYgKCRwcmV0ZXh0WydwZXJtbGlua19tb2RlJ10gPT0gJ21lc3N5JykgJGhyZWYgPSBodSAuICdpbmRleC5waHA/Yz0nIC4gdXJsZW5jb2RlKCRuYW1lKTsNCiAgICBlbHNlICRocmVmID0gaHUgLiAnY2F0ZWdvcnkvJyAuIHVybGVuY29kZSgkbmFtZSkgLiAnLyc7Ki8NCiAgICAkaHJlZiA9IHBhZ2VsaW5rdXJsKGFycmF5KCdzJyA9PiAnJywgJ2MnID0+ICRuYW1lLCAnY29udGV4dCcgPT4gJHR5cGUpKTsNCiAgICAkYWN0aXZlID0gKCRuYW1lID09ICRwcmV0ZXh0WydjJ10pID8gJ2FjdGl2ZScgOiAnJzsNCiAgICBpZigkYWN0aXZlKSAkYXBhdGggPSAkbGV2ZWw7DQogICAgJGJ1ZmZlciAuPSBkb1RhZyhocmVmKCR0aXRsZSwkaHJlZikuJGFydGljbGVzLiRraWRzLCdsaScsJGFjdGl2ZSwnJywnbWVudS0nLiRuYW1lKS4iXG4iOw0KICB9DQogIGlmKCFpc3NldCgkdHJlZVskaW5kXSkgJiYgJGxldmVsPT0wKSAkaW5kPTA7DQogIHJldHVybiAkYnVmZmVyOw0KfQ0KDQpmdW5jdGlvbiBhenBfbWVudWdlbigkYXR0cykgew0KICAgIGdsb2JhbCAkcHJldGV4dDsNCg0KICAgIGV4dHJhY3QobEF0dHMoYXJyYXkoDQogICAgICAgICdyb290JyAgICAgPT4gJ3Jvb3QnLA0KICAgICAgICAnc3RhcnQnICAgICA9PiAnPycsDQogICAgICAgICdsYWJlbCcgICAgID0+ICcnLA0KICAgICAgICAndHlwZScgICAgID0+ICdhcnRpY2xlJywNCiAgICAgICAgJ3Nob3djb3VudCcgPT4gJzAnLA0KICAgICAgICAnaW5jbHVkZWFydGljbGVzJyA9PiAnMCcsDQogICAgICAgICdkZXB0aCcgICAgID0+ICc/JywNCiAgICAgICAgJ21vcmUnICAgICA9PiAnJywNCiAgICAgICAgJ2NhdGVnb3J5JyAgICAgPT4gJycsDQogICAgICAgICdleGNsdWRlJyAgICAgPT4gJycNCiAgICApLCRhdHRzKSk7DQoNCi8qIGFkanVzdCBzdGFydCAqLw0KICAgIGlmICgkc3RhcnQgPT0gJz8nKSAkc3RhcnQgPSAkcHJldGV4dFsnYyddID8gJHByZXRleHRbJ2MnXSA6ICRyb290Ow0KICAgICR3aGVyZSA9ICcxPTEnOw0KICAgIGlmICgkcm9vdCAhPSAncm9vdCcgJiYgJHN0YXJ0ICE9ICRyb290KSB7DQogICAgICAkcnMgPSBzYWZlX3JvdygibGZ0IGwsIHJndCByIiwndHhwX2NhdGVnb3J5JywNCgkJCSJuYW1lPSciLmRvU2xhc2goJHJvb3QpLiInIGFuZCB0eXBlID0gJyIuZG9TbGFzaCgkdHlwZSkuIiciDQogICAgICApOw0KICAgICAgaWYgKCEkcnMpIHJldHVybiAnJzsNCiAgICAgIGV4dHJhY3QoJHJzKTsNCiAgICAgICR3aGVyZSA9ICJsZnQgPj0gJGwgYW5kICRyZ3QgPD0gJHIiOw0KICAgIH0NCiAgICBpZigkY2F0ZWdvcnkpICR3aGVyZSAuPSAiIGFuZCBuYW1lIElOICgnIi5qb2luKCInLCciLCBkb1NsYXNoKGRvX2xpc3QoJGNhdGVnb3J5KSkpLiInKSI7DQoNCg0KDQogICAgJHJzID0gZ2V0VHJlZSgkc3RhcnQsICR0eXBlLCAkd2hlcmUpOw0KLy9lY2hvICRzdGFydCwnPHByZT4nLHByaW50X3IoJHJzKSwnPC9wcmU+JzsNCiAgICBpZiAoY291bnQoJHJzKSkgew0KICAgICAgJGV4Y2x1ZGUgPSBkb19saXN0KCRleGNsdWRlKTsNCi8vICAgICAgJG9mZnNldCA9ICgkc3RhcnQ9PSAncm9vdCcgfHwgJGNhdGVnb3J5ICYmICFpbl9hcnJheSgkc3RhcnQsZG9fbGlzdCgkY2F0ZWdvcnkpKT8gMCA6IDEpOw0KICAgICAgaWYoJGxhYmVsKSAkdGl0bGU9IjxsaT4kbGFiZWw8L2xpPlxuIjsNCiAgICAgIGlmICgkYnVmZmVyPWF6cF9nZXR0cmVlKCRycywkc3RhcnQsJGRlcHRoLCRtb3JlLDAsJGFwYXRoPTAsJGV4Y2x1ZGUsJHNob3djb3VudCwkaW5jbHVkZWFydGljbGVzLCR0eXBlKSkgcmV0dXJuICJcbjx1bD5cbiIgLiAkdGl0bGUuICRidWZmZXIgLiAiXG48L3VsPlxuIjsNCiAgICB9DQogICAgcmV0dXJuICcnOw0KfQ0KIjtzOjQ6InR5cGUiO3M6MToiMCI7czo1OiJvcmRlciI7czoxOiI1IjtzOjU6ImZsYWdzIjtzOjE6IjAiO3M6MzoibWQ1IjtzOjMyOiJmMDRiOTcwNTJlZTc3MTk4NDM1MjU4MTE1YjU3MjUzNyI7fQ==
Offline
#8 2013-01-25 12:22:05
- jpdupont
- Member
- Registered: 2004-10-01
- Posts: 752
Re: Deeply Nested Categories
Thanks !
Offline
Re: Deeply Nested Categories
etc wrote:
a modified version of
azp_menugen
that works well (for me).
<txp:azp_menugen />
= :)
Thanks a lot. I don’t use categories on many projects so I was having trouble slapping native tags around and it was started to get a little too crazy.
Much appreciated.
txtstrap (Textpattern + Twitter Bootstrap + etc…)
Offline
Re: Deeply Nested Categories
Having discovered azp_menugen
can only go three category levels deep I’ve tried stw_category_tree
which appears to go deeper, maybe infinitely. I’ve tested down to 5 levels nested categories and stw_category_tree
is working fine. Any more than that would be silly.
txtstrap (Textpattern + Twitter Bootstrap + etc…)
Offline
Re: Deeply Nested Categories
whaleen wrote:
Having discovered
azp_menugen
can only go three category levels deep
There is no depth limitation in azp_menugen
, have you set its start attribute? <txp:azp_menugen start="root" />
should display the whole tree.
Offline
Re: Deeply Nested Categories
My old paper and pencil rpg site Crestar has 5 levels of categories in areas that haven’t detailed the locals and where they live yet. So it could go to 6 or more levels of nesting.
Offline