Will do. I need to hunker down and sort it out soon. My last excuse disappeared a week ago and I have something even more exciting lined up for afterwards, so I need to get it finished. You'd think that cold, wet weekends would do it, but those are also the perfect time to sleep in. :-)
On Tue, May 19, 2009 at 22:35, DrunkenMonk <[email protected]> wrote: > > Will you post a link to your site when the solution is finished? I'd > love to see how this ends up. > > On May 18, 5:55 pm, The Editor <[email protected]> wrote: > > You got this just about right. Two things... I use title instead of name > > because it shows up in special cases, like [[some.page|+]] and > breadcrumbs, > > etc. > > Second thing is title, price, and size are stored as DATA vars. > Categories > > is stored as an INFO var. Data vars are stored on the same page as the > > content, but it is invisible when editing. When doing a long search > though, > > it requires BoltWire to open and parse large amounts of data (in the > index, > > actually, but it's still a lot...). Info vars are special info pages (in > > this case info.categories) and the data is store as simple text vars > (like > > PmWiki's PTV's). It's great for data you need to retrieve quickly and > search > > or sort. Because only one relatively small page needs to be read and > > retrieved. More notes below... > > > > On Mon, May 18, 2009 at 4:39 AM, Allister Jenks <[email protected] > >wrote: > > > > > > > > > OK, this gives me a lot to get going with! Should take me a while. > > > > > As a first step, I'm looking at the below with a coder's eye and have > added > > > where I think I see what it's doing. This without looking at much > > > documentation yet to fully understand the syntax. > > > > > On Mon, May 18, 2009 at 04:01, The Editor <[email protected]> wrote: > > > > >> 1) Create a page called action.storeitem with content like this: > > > > >> [if equal {p1} item] > if the first element of the page name is > "item". > > >> [form] > > >> name: [text title "{:title}"] > "title" is the field on this page, > > >> ":title" is the infovar, which populates the field here. > > > > (data vars, not info vars) > > > > > price: [text price "{:price}"] > ditto. > > >> size: [text size "{:size}"] > ditto. > > >> categories: [text categories "{info.categories::{p}}"] > I can't > figure > > >> this one out. > > > > This retrieves the text var (PTV) on page info.categories that > corresponds > > with the current page. Essentially the list of categories. > > > > > description: > > >> [box content][(source {p})][box] > gets the description from the page > > >> content. > > >> [submit] > button. > > >> [session savedata name,price,size] > saves the three fields as info > vars. > > > > Data vars... > > > > > [session edit {=content}] > sets the page text to the value of the > content > > >> box, so it shows when viewing page. > > >> [session info "field={p} value='{=categories}' > target=info.categories"] > > > >> this is the other half of the bit I don't get. > > > > This saves the value you entered into the category field {=categories) > onto > > page info.categories, with the label of the current page. That is, it > adds a > > new line, or updates an existing line on that page something like: > > > > item.12321: my,categories,here > > > > > [form] > > >> [else] > > >> <(search group=item template=[[{+p}&action=storeitem|{+:name}]])> > > lists > > >> valid pages to run storeitem against if this isn't one. > > > > Right, so go to action.storeitem, and it will list all item. Click one, > and > > then it brings up the action form for that page. Kind of cool... The > idea > > came to me as I was typing up the email. I'll need to remember that > trick. > > Double use for an action. > > > > [if] > > > > > > > > >> 2) Put this on item.footer: > > > > >> [if admin][[{p}&action=storeitem|EDIT]][if] > put storeitem action on > > >> page for admins. > > > > >> To create a new item, just create a blank page item.1231231 > > > > >> > 2) How to deal with multiple categories? > > > > >> 3) Put this on categories.header (or footer). > > > > >> [(search group=item if="inlist {p2} {info.categories::{+p}}" > > >> template="title")] > searches item.* pages using that syntax I don't > get > > >> again. Looks for second part of page name (category name) in each > > >> item.page's categories. > > > > This generates a list of all the pages in group item. To get grandchild > > pages, etc., change it to item*, otherwise it's just second level kids. > Then > > it runs each of those pages through a quick check using the conditional > > engine. Remember, you are on page categories.clothes. So it checks to > see > > if clothes {p2} is in the info var (PTV) on info vars for the current > page > > in the pagelist {+p}. If it is it returns the title of the page. You'll > > change the template of course. > > > > Read the documentation tutorial page on var's for details about the > > distinctions between the syntax of system, data, and info vars. (On the > > BoltWire site). The + in the {var} mean it's relative to the current page > in > > the search list, rather than the actual page the search function is on. > I > > can't remember the exact parallels in PmWiki. > > > > > > > > > > > > >> This will generate a list of all the pages that have the category. > > >> Note your categories should be saved as a csv list, if there are more > > >> than one, like > > >> cars,clothes,food. You will also want to create a custom template > > >> based on how you want to display the pages. You will want to also > > > > >> 4) Create a blank page for each category (categories.car, > > >> categories.clothes). To generate a list of all available categories, > > >> just do [(search group=categories)] > > > > > So there's predominantly one bit I don't get: > > > > > info.cateogories in three of the lines above, plus the other syntax > used > > > around it. > > > > > Yeah, it's pretty easy to get the hang of things. The syntax is > generally > > > > simpler than PmWiki. Just get a grasp of the different kinds of variables > > and your all set to go. > > > > Cheers, > > Dan > > > -- Allister --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "BoltWire" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/boltwire?hl=en -~----------~----~----~----~------~----~------~--~---
