From: Leonard W. <leo...@ho...> - 2012-12-17 22:28:12
|
> Hey guys! I need some help! I have a site hosted on referata and I've gotten stuck on a few issues. I'm a newby to MW, but I learn quickly and have already learned a great deal, especially considering >how ambitious my project is. Anyway, I currently have the following questions and needs: Hello, I'll try and answer some of this. > 1) Is there an "or" operator for use with the #if function and its cousins? For instance, could I set-up an #if function that triggers a particular value if EITHER x has a value OR y has a value? In a template you do somehing like {{#if:{{{1|}}}{{{2|}}}| then | else }}, as that statement will be true if either 1 or 2 has a value.You can find more on those parser functions here: http://www.mediawiki.org/wiki/Help:Extension:ParserFunctions (this is not directly related to SMW) > 2) I have a section of one of my templates that uses #if functions to display a list of optional fields and their values, separated by commas. If one of the fields has no value, it isn't displayed. My >problem is that the way I currently have the code written, there's an extraneous comma at the end of the string unless the user selects a value for the very last field. Basically, the comma after each field >is revealed or hidden along with the field. The reason I asked question number one above was that the only way I could think to fix this was to setup separate #if functions for each comma that only >display it IF any of the following fields exist. There has to be a more elegant solution. Does anyone know one? It would help if you could link to a page where we can see what you are trying to do, but it sounds like you should have a look at the Arrays extension: http://www.mediawiki.org/wiki/Extension:Arrays > 3) I thought the point of a combobox was to be a dropdown that allowed the user to put in a custom value if desired. I have a number of comboboxes for which I've preselected values that account for>the vast majority of likely responses, BUT I also want people to be able to override those values in less common cases. For some reason my comboboxes result in errors when something is manually >typed in. Is there a way to set recommended common values but still allow alternatives? That is exactly how it should work. You can set the list of allowed values by using any of the 'values from' methods described here: http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag What kind of error message do you get? It could be that you are using the "allows value" special property on the connected property page, thereby limiting what the user can type in. > 4) Is there a way to automatically link to page names whenever they're used? If someone types the name of a page into a form, even if I'm not using a page-type property, is it possible for the page name to be automatically linkified? How? Could you please elaborate a bit on this? What kind of input are we talking about? > 5) How do the "list" and "delimiter" tags work for the field function? I thought it would allow me to use a page-type property and set the comma as a delimiter, so if anyone used a comma in the field, > it would recognize everything between each comma as separate pages from one another. Is this wrong? Is there a way to do this? You are correct. You will, however, need to use arraymap in the template recieving the value, as described here: http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Semantic_Forms_and_templates#Multiple_values_for_the_same_field > 6) I have a form that utilizes multiple templates. One of the templates it uses has the multiple tag, so the user can add as many or as few of those templates to their page as they want. In the non>-optional fixed template that precedes that, a table is generated. Is it possible to implement a field in the optional multiple template that the user can use to influence where things are placed on the >table in the non-optional fixed template? For example, template A has a table with 20 rows. The optional template B that appears later in the form has a field that lets the user choose row 1, row 2, row 3, >etc. Is there a way to pull the data from a different field within that instance of template B into the appropriate row of template A' s table selected in template B? I understand this is complex, and I can >try to explain better if this is unclear. I can try to simplify my code and post it if it makes the example clearer. This should probably be possible, but it would require you to set the values in one template, and then retrieving them with a {{#show:{{PAGENAME}}|?Property}} in the other template. If you can give us a link it would be easier to give suggestions. > 7) Using #arraymap to display multiple values for a field separated by commas is pretty straightforward. What if I want the word "and" to appear between the last two values as well, though? You can probably do some hacking with the Arrays extensions mentioned above (or http://www.mediawiki.org/wiki/Extension:HashTables) to achieve this. If you know some php it might be just as easy to create a custom result format, that corresponds to your needs. > 8) Whenever a page is created using my form that utilizes multiple templates, it doesn't seem to allow users to edit the page with the form as most form-created pages do. Why is that? Can I fix it? Please see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/The_%22edit_with_form%22_tab Best regards,Leo Wallentin |