Template talk:3.5e Bloodline

From Dungeons and Dragons Wiki
Jump to: navigation, search

Bloodline Strength[edit]

It's looking like you've been busy... did you want to make it not show higher strength bloodlines if they're not written up? - TarkisFlux 18:28, February 5, 2010 (UTC)

I worked on it last night, didn't want to risk forgetting suggestions/ideas by falling asleep :)
What would you suggest re showing only the Minor or Intermediate sections when the bloodline is not statted through Major strength? Other than figuring out the coding to use, my only concern is a user inputting a Minor bloodline and then someone later deciding the bloodline warrants a higher strength - given we are using a template, how easy would it be for someone to input the new info?--Be well 19:30, February 5, 2010 (UTC)
Prodigious use of {#if:}. You already have them down in the ability descriptions, you would need to also add it in to the table sections so that it left off the entire second column if you didn't specify special 4 or whatever, and so that it left off the entire third column if you didn't specify special 6 or whatever. You'd also need to replace table formatting inside the {#if:} with {{!}} or {{!!}} (which evaluate to | and || after the if is run, so the table syntax doesn't get in the way of the {#if:} syntax), but that's easier to show if you decide you want to do it.
As to later updating, if the form uses subst:{template} like I set it to do now it's really hard to add it in later. The subst: prefix means that it makes a copy of the template in the form it's in when it's called the first time, so the page looks like the template with the template variables filled in. After you finish filling in the form you don't even see the template call, just like you never see the template call with the 3.5e Flaw form after you save it (even though it uses a template). Which is a lot cleaner on the end and allows for custom formatting where it's needed (since templates are pretty much static things), but means that if you use {#if:} to hide columns that you have to manually add them back in later, and that kinda sucks. If it's not set to do a subst:, then it's as easy as filling in the missing template parameters, we just can't do custom formatting on it. - TarkisFlux 19:45, February 5, 2010 (UTC)
The Form looks like it would allow the user to input the new info when it is called for an existing bloodline. I didn't quite understand what you wrote re 'subst:'. I don't see any ability to do custom formatting with the output from the form as it is now (Dragon, Amethyst Bloodline (3.5e Bloodline)), only to alter the info that is passed to the template.--Be well 19:56, February 5, 2010 (UTC)
Ah, that would be because you saved that bloodline before I made the change. Try it again now, you should see what I mean. - TarkisFlux 20:00, February 5, 2010 (UTC)
Huh... learn something new everyday. I thought the {#if:} would be evaluated and left out of the final page on a subst, not tossed in there like it is. That's... disappointing, but it's also strong reason to leave it as a regular template call. I'll go change it back, but that means the formatting needs to be set and pretty and worky for the vast majority of cases. - TarkisFlux 20:40, February 5, 2010 (UTC)
I've been testing it - but now I don't know if I finished my testing before you changed it back.
My results - I was able to both enter and remove info which triggered the #if functions with no difficulty. I only had <br>, but the line breaks were added and removed as if the template was freshly called. When I directly edited the output page (not through the Form), I was able to see the formatting code - which leads me to believe I did my testing before you made a change back to what it originally was.
If I interpreted my test properly, we get the best of both worlds with the changed setup - we get custom formatting with new data re-triggering the #if function. I don't see any reason to change it back (assuming we stay with the UA presentation in the future.)--Be well 20:49, February 5, 2010 (UTC)
Your testing is fine, because you made the page before I changed the form back. You seem to be missing the part where you have to edit everything manually and the ifs aren't actually doing anything besides taking up space and making it harder to read though. If statements based on variable presence don't really work directly in pages because you can't use variables directly. If you want to do a subst: on the template to allow for straight editting, the ifs should be removed from the template. - TarkisFlux 21:08, February 5, 2010 (UTC)
I was able to edit through the Form for adding a new Bloodline.--Be well 21:13, February 5, 2010 (UTC)
Ok, I think I -finally- understand what you were getting at. Editing through the Form, it makes no difference how the template is called/copied. Editing on the output page is what you were describing. From my current perspective - its nice to be able to change the variables. However, if you feel there is significant advantage to being able to custom format the output for a Bloodline, then go ahead and change it.--Be well 21:24, February 5, 2010 (UTC)
I found an overriding reason why we want to be able to edit the page formatting directly - to insert SRD and other Wikia links. Attempting to do it via the variables made a mess.--Be well 22:52, February 5, 2010 (UTC)
If you're talking about the SRD links in the table as abilities, the problem with that is that you have the variable already set inside of in-page linking. You could possibly do it with a different if construction and som string functions, but I think you're better off just using the in page linking and using SpecialInfoX for the SRD linking and explanation. - TarkisFlux 23:31, February 5, 2010 (UTC)
Its exactly those links. I'd like to use SpecialInfoX only for things that might be unique, linking to the SRD for more common concepts. I have an idea based on what you did with the Author template.--Be well 14:09, February 6, 2010 (UTC)

(indent revert)

My idea was to use checkboxes to indicate the Special was an SRD Feat and then #if functions to add an anchor only when it is not. However, I think its better to work out the Minor/Intermediate/Major functionality as we discussed - once that is working, I hope to revisit the Feat SRD links. Meanwhile, it might be best to go the subst route, to allow users to set the links and strip the #if functions manually - its no more work than what they would have to do with the preload. A non-technical user would only be interested in the output which isn't affected (other than some SRD links missing), and they can always request assistance on the discussion page.--Be well 15:25, February 6, 2010 (UTC)

Update - with the updated Template, it is possible to include links for any SpecialX that does not have a corresponding SpecialInfoX. It is also possible to include a link for the Affinity creatures. It is still not perfect, but now there is less need for subst.--Be well 22:09, February 6, 2010 (UTC)

Coding[edit]

How does one insert line breaks within the {{#if}} command?--Be well 19:40, February 5, 2010 (UTC)

You can try <br>, or you can just hit enter a few times after the | that starts your output (while still inside of the double braces). Everything after the | and before the next | or the }} (if there isn't going to be another pipe) will be output when the condition is satisfied. There's no requirement that you keep it on the same line or anything. - TarkisFlux 19:45, February 5, 2010 (UTC)
No combination of hitting enter within the #if statement made any difference, but <br> worked fine, thanks.--Be well 20:01, February 5, 2010 (UTC)

---

When editing from the Form, I notice that the Author Template variables are filled in, but not the Bloodlines Template variables. Is there some way to have all the variables filled in from the existing page? - Making changes would be easier if the user only had to change a single variable, rather than having to freshly enter all the variables. It seems like old data is being dumped to the Free Talk section.--Be well 21:30, February 5, 2010 (UTC)

---

I am able to use !! to identify a new column within the table header (Minor/Intermediate/Major), but not within the body of the table (row 1st/2nd/etc). Any idea why this might be so?--Be well 19:43, February 6, 2010 (UTC)

You need to put the {!!} inside of the if statements. Here's an example from the template:
| class="right" | 3rd || — || {{#if:{{{Special3|}}}|—}} || {{#if:{{{Special6|}}}|[[SRD:{{{Ability1}}}|{{{Ability1}}}]] +1}}
 |- 
And we need to turn it into:
| class="right" | 3rd || — {{#if:{{{Special3|}}}| {{!!}} — }}{{#if:{{{Special6|}}}| {{!!}} [[SRD:{{{Ability1}}}|{{{Ability1}}}]] +1}}
 |- 
Note that the table formatting is completely removed after the first column, which has to be there, and only shows up as the {!!} inside the {if} statement. So you don't get those column breaks, and thus don't get the columns at all, if the if condition is not satisfied. You could even take it one step further:
| class="right" | 3rd || — {{#if:{{{Special3|}}}| {{!!}} — }}{{#if:{{{Special6|}}}| {{!!}} [[SRD:{{{Ability1}}}|{{{Ability1}}}]] +1}}
 |- 
and put the second if inside of the first one, so you can't get the third column if you don't also satisfy conditions for the second column. Otherwise, if you satisfied the 3rd but not the 2nd, the 3rd would trigger and show up in the 2nd column. It's not required of course, it's just more idiot proof. - TarkisFlux 20:48, February 6, 2010 (UTC)
Sorry, let's be explicit for a second. {{!!}} is a special template that evaluates to || after the {if} statement is completed. This is necessary because the || used for table formatting will be interpreted by the if statement as breaking up results, and get in the way. This way, your if statement completes itself properly, and afterwards you get the || for the table formatting. If that still doesnt' make any sense I'll just rewrite it later, no time atm. - TarkisFlux 20:50, February 6, 2010 (UTC)
I see my error now. I thought !! was just regular syntax. Now that I know it is a template and needs the {{}}, it is easy to use. Still, it is odd that it seemed to work in the table headers without the {{}}. Thanks for clearing that up.--Be well 22:04, February 6, 2010 (UTC)
!! is table code for same line header column breaks :-). - 76.87.72.48 04:13, February 7, 2010 (UTC)
Ah, cool, thanks. Building this has been a crash course in wiki syntax :) --Be well 05:10, February 8, 2010 (UTC)

---

My attempts to limit the table rows output for non-Major and non-Int/Maj bloodlines have yielded functional but not entirely satisfactory results. Is there a way to include all the syntax for a new table row within an #if statement? --Be well 18:39, February 8, 2010 (UTC)

Sure. It looks something like:
{{#if: <stuff> | 
 {{!}}-
 {{!}} class="right" {{!}} 3rd {{!!}} — {{#if:{{{Special3|}}}| {{!!}} — }}{{#if:{{{Special6|}}}| {{!!}} [[SRD:{{{Ability1}}}|{{{Ability1}}}]] +1}} }} 
I think. I'd have to actually test it to confirm, but you basically stick the whole thing after the if in whatever output section you want (so after a | somewhere), and replace all of the table pipping with {{!}} for | or {{!!}} for ||. You do have to maintain your table line breaks as normal though, which means you have to keep it all after a | and before the relevant }} that closes the if statement. - TarkisFlux 18:51, February 8, 2010 (UTC)
We're getting there :) Thanks for all your help on this TarxisFlux. Any thoughts on improvements? --Be well 19:25, February 8, 2010 (UTC)

Form[edit]

You guys are using a form to do something it really can't do. Use a preload instead. Surgo 22:19, February 5, 2010 (UTC)

I know, I've been down this road before. But he wanted to try, and I'm willing to help so long as it isn't a substantial amount of work on my end. - TarkisFlux 22:58, February 5, 2010 (UTC)
My thought was to make it as easy as possible for a user to create a new bloodline.--Be well 23:12, February 5, 2010 (UTC)
I really sympathize with that design goal, but Semantic Forms just can't support it. We'd need a new, custom forms extension. Surgo 23:23, February 5, 2010 (UTC)
I think bloodlines are all close enough in format that this template reddir wrote works well enough in an input form (as long as it's not a subst, because {#if}s in pages sucks). And after stripping the breadcrumb from the formatting template, I was able to stick a free text box after the formatting template call and then follow it with the a no-input breadcrumb template call. So we get the simple fill in the box formatting that reddir wanted for it, with an extra space at the bottom for any additional notes. Which isn't bad for something this straightforward actually. - TarkisFlux 05:22, February 6, 2010 (UTC)
Surgo, I think we might be able to get this right. It works well enough now, and I think we can add a bit more functionality to it. Perhaps you'd consider reevaluating it in a few days?--Be well 15:16, February 6, 2010 (UTC)