Extension talk:Page Forms

Blank Page on Edit Save After Installation
I installed Semanatic MediaWiki with no extra configuration and waited until the database was finished updating until installing Semantic Forms. Upon my first save of a page edit, the system brought me to a blank page a with the URL: http://www.Example.com/index.php?title=TestPage&action=submit I realized after the fact that certain install requirements regarding name spaces MAY not have been met. I have Extension:SocialProfile installed but didn't think it had any new names paces, but I added the following line to my LocalSettings.php anyway. $smwgNamespaceIndex = 150; Also, I commented out the following line and saving worked for a while. include_once('extensions/SemanticForms/includes/SF_Settings.php'); I tried later and now I'm getting more errors like the following line on only some saves. Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 1966080 bytes) in /home/example/public_html/sitename/extensions/SemanticMediaWiki/languages/SMW_Messages.php on line 4843 At this point I'm figuring as a first time wiki admin that I might be doing something wrong. I can't find any uninstall features in order to reinstall Semantic Forms if I have to. Any ideas? Thanks ahead of time.

Jephrei 02:03, 3 May 2009 (UTC)


 * That last message just means that the system ran out of memory; see here for one way to fix it. Yaron Koren 03:55, 4 May 2009 (UTC)


 * Yeah. i figured that out after i posted. but nope....that fixes the mem but only with semantic forms disabled. I TRIED to disbable both or uninstall completely to reinstall but there's no uninstall documentation. if i comment out the settings in localsettings.php will it be "disabled" or do i have to rollback the database or undo the changes somehow? Also, if i didn't set the custom name space addition lines in localsettings.php before the install and instead added the lines AFTER the install, will SMW and SF work? Jephrei 20:41, 5 May 2009 (UTC)
 * I found that removing languages that I didn't need from SF_Messages.php solved all my problems.

Pointing red links to 'add data' form also for username in top-right-corner
Would it be possible to enable the feature with pointing red links to the add-data-form also for the userpage-link in the personal toolbar (the link with the small person icon next to it). We would like to see this feature so users who are new to our wiki can simply click on their (red) username and get the form.

I browsed around the code a bit and it seems to me that this link is generated in includes/SkinTemplate.php:buildPersonalUrls from the data contained in the array userpageUrlDetails, which in turn is filled by a call of the form: makeUrlDetails( $this->userpage ). Further down the call tree the hook for this function seems to be GetLocalUrl, but I guess there will be some filtering necessary to track down this link (or class of links).

Or is there any other way to make the link point to the form?? - LosWochos 08:24, 20 May 2009 (UTC)


 * You seem to have uncovered a bug - when you click on a user page, if the "User" namespace has been assigned a form, next to the "create" tab there should be an "edit with form" tab (or even better, "create with form"); but it's not there. I've found a fix, that will go into the next version; let's see how it looks after then. Yaron Koren 03:54, 21 May 2009 (UTC)


 * Uh .. yeah .. right .. this bug seems familiar to me :) I discovered it a few days before, but it didn't seem that important since we have a category defined by the template that is filled with the form and assigning the form to the category works once the user page contains the template call. We're really looking forward to the next version ;) - LosWochos 07:42, 25 May 2009 (UTC)

Problem with the database
While saving the form I'm getting the error

A database query syntax error has occurred. This may indicate a bug in the software. The last attempted database query was: (SQL query hidden) from within function "". MySQL returned error "1146: Table 'wikidb2.test_smw_ws_articles' doesn't exist (localhost)". Retrieved from "http://localhost/mediawiki-1.14.0/index.php/3"

I am using MediaWiki-1.14.0, SMW-1.4.2, Halo-1.4.3, SF-1.6


 * That's a Halo database table - you should talk to them about it. Yaron Koren 15:19, 22 May 2009 (UTC)

Dynamic dropdown lists
Hi Yaron!

Is there a plan about to extend possibilities of values parameter of parsers? My problem is that I have got a page type based on the next template: ... : ... In the form I can't filter the values of property values field by allowed values of property: ...

... standard inputs ... I think the solution needs Javascript, but because I'm not a JS magician I was looking for something else: I think I need something like this:
 * values from category needs to create a category (Category:Allowed values of property name), but some properties have String type.
 * values from concept needs a concept, but I can't create a concept that lists allowed values of a property (or can I?)
 * I can cut create page operation described above in two steps:
 * 1) When I create the new page (with a create page form) than I fill in the property name only and create a link to another form (add property value form).
 * 2) I send the property name in query string of this link to add property value form, but I can't use this value in values parameter of  parser.

Sorry about my bad english and long post, I hope it was understandable (I'm undestanding less and less). Pipi69e 23:19, 24 May 2009 (UTC)


 * Hi - there's no plan to have Semantic Forms handle the kind of free-form property-addition you're talking about. Yaron Koren 23:45, 24 May 2009 (UTC)


 * Thank You for your reply, Yaron! Now I'm trying to insert a dropdown to a form with parser function of Extension:Simple_Forms. It puts a select element in HTML source of form with suitable id and name values, but SF doesn't process the selected option. What I'm doing wrong?
 * Many thanks for your patience :) Pipi69e 10:31, 25 May 2009 (UTC)


 * Well, I'm not surprised that doesn't work; Semantic Forms only processes those inputs it knows about... I can't think of any solution to your problem, unfortunately. Yaron Koren 20:27, 25 May 2009 (UTC)


 * Hmmm... I think I must redesign my data model. Many thanks once more! Pipi69e 20:49, 25 May 2009 (UTC)

Feature request: Tool Tips on Form fields
It would be nice to have a possibility to define a tooltip text for form fields so I could give a description what the user should put into that field. F.trott 07:16, 27 May 2009 (UTC)


 * Hi, this is a very under-documented feature, but you can already do that using SMW's #info function: just add . Yaron Koren 13:06, 27 May 2009 (UTC)


 * Probably never meant to be used by anybody outside SMW, hence undocumented, but it blends in really nice with the Look&Feel of SMW and I would go for it. Alas, it does not work inside a form: The inclusion of SMW_tooltip.js is missing in the AddData special page. Could you give me a pointer where I should start hacking? F.trott 14:28, 27 May 2009 (UTC)


 * Ok, got something figured out for myself. I just changed addJavascriptAndCSS in SF_Utils.inc: Add $smwgScriptPath to the global statement and add near the end. Works like a charm - as long as you don't use autocompletion. With autocompletion you get the info-icon on a new line. Hmm... F.trott 15:19, 27 May 2009 (UTC)


 * That's strange; I thought I fixed that problem in 1.6 (by making a change like the one you did). What version are you using? Yaron Koren 16:04, 27 May 2009 (UTC)


 * Still on 1.5.4, sorry. I'll try 1.6 then. Thanks. F.trott 18:17, 27 May 2009 (UTC)


 * Ok, I installed 1.7.1. The info-function ist available now. I still have the problem, that the info-icon appears on a new line if I use a text field with autocompletion. Do you have suggestions? F.trott 07:41, 3 June 2009 (UTC)


 * Hm, that's a CSS issue... how about putting the #info call after the the input "label", and before the input itself? Yaron Koren 16:40, 3 June 2009 (UTC)


 * CSS was a good hint. I just put the input fields in a . Thx. F.trott 08:34, 4 June 2009 (UTC)

ERROR -- YAHOO is 'undefined'
I am receiving an error (YAHOO is 'undefined') when I navigate to any form that I have created within my wiki. I believe that the error has to do with autocomplete, but I do not have any properties that are typed as a 'Page' (in which autocomplete is the default). I do know that you are supposed to be able to add the "no autocomplete" parameter to the field's definition, but this effort was unsuccessful.

I am thinking that the error has something to do with the following piece of code: YAHOO.util.Event.addListener(window, "load", attachAutocompleteToAllDocumentFields); To me this looks like it is making autocomplete the default for all fields and overriding all other efforts.

Someone please give me a clue. I have searched everywhere for an answer.


 * The problem is coming from the YUI library. Did you modify your value of $sfgYUIBase, by any chance? Yaron Koren 23:47, 5 June 2009 (UTC)


 * No modifications have been made. Dgennaro 16:31, 8 June 2009 (UTC)


 * Are you using some special skin? If so, try switching to 'MonoBook' and see if the problem is still there. If not, what version of Semantic Forms are you using? Yaron Koren 17:53, 8 June 2009 (UTC)


 * Everything is working great now. We have been using the Ionic's Isapi Rewrite Filter and if I don't fully qualify the $sfgYUIBase (/wikiCode/extensions/YUI/build/" the re-write rules were building the url as 'wikiCode/Special:AddData/extensions/YUI/build/yahoo/yahoo-min.js'.  If I don't define a fully qualified path for $sfgYUIBase I need to determine a re-write rule. Wolcott 18:06, 8 June 2009 (UTC)

Question/Problem...
MediaWiki 1.14.0 PHP 5.2.9-2 (cgi-fcgi) MySQL 5.1.34-community Semantic MediaWiki (Version 1.4.2) Semantic Forms (Version 1.7.1)

I am having a problem with form parsing. Basically I have a form that Uses the same templates over and over again. For example:

I use this template subsubsection to layout these sections on the final page and classify for TOC. What is happening is that all of my sections/subsections/subsubsections are accounted for on the final page, however only the values given to the final instance of those templates are loaded for all of them. So in this instance the final page will have, given i dont enter anything on for the details field:

any thoughts besides going back and only allowing a single instance of each template on this form?

67.97.209.36 18:23, 8 June 2009 (UTC)


 * You can't have a "for template" call more than once for the same template in a form; that seems to be the problem. Yaron Koren 19:09, 8 June 2009 (UTC)


 * Anyway to add this? or is my only option to create separate templates? 67.97.209.36 20:15, 8 June 2009 (UTC)


 * I think that's your only option. What's so bad about separate templates? Yaron Koren 23:19, 8 June 2009 (UTC)
 * The sheer number of them. I think I need to go a different route, this could become unmanagable. 67.97.209.36 13:05, 9 June 2009 (UTC)
 * My main issue is have this page with mutiples of these sections/subsection/subsubsections, but also scattered around it a few multiple instance templates that i use to build a table on the final page. I could move this all to a single template if i were able to embed mutliple instance templates inside the main template. is that possible? an example below.

lets say my section template looks like this



lets say the page created looks like this

is this possible?


 * I don't really understand the example - you want to embed form-definition code in actual pages? In any case, the SF mailing list might be a better venue for this discussion. Yaron Koren 14:25, 9 June 2009 (UTC)


 * I have added what the page would like created, i hope that helps. 67.97.209.36 14:40, 9 June 2009 (UTC)
 * I have also sent an email to the users list for assistance.


 * Apparently I am not the first to want this.
 * http://groups.google.com/group/semantic-forms/browse_thread/thread/131fbc09a3dd3c55/ccf9bd970c19a093?lnk=gst&q=embed#ccf9bd970c19a093
 * 67.97.209.36 15:36, 9 June 2009 (UTC)


 * Don't know if this is any help, but you could create a dedicated page for each of your documentreferencerows (or whatever you want to include more than once) and then in the UISection template do an for all documentreferencerows pertaining to that UISection. Of course for that every documentreferencerow would have to know its UISection.


 * Or - if you want to push it a bit further - you could create pages for the documents (with name, date, author) and pages for the references (with "Has UISection", "Has document"). Thus you could reuse the documents for different UISections. Might save some effort on maintainance when a referenced document changes. F.trott 06:55, 10 June 2009 (UTC)


 * I am not sure i understand how i could create pages for these items separately. My understanding is a single form can only create a single page. these are items that are entered by a user, they are to be presented as table rows. The idea here is a single form, it is actually presented the same as our existing word doc that it used for documentation. I am actually figured out how using templates i could build this into a single template call in the resulting page, problem is with the new parser in media wiki you cannot build a template call from other templates, the result of the templates ends up being a literal string.97.100.99.167 11:45, 12 June 2009 (UTC)


 * Alas, you would not be able to do it all with one form. Instead you would have to first create the list of sections, then fill one form for each documentreferencerow. F.trott 22:47, 13 June 2009 (UTC)

Periods not used in automatic pagenames
I have a form, where the page name of the created page is derived from a text field. Alas, periods are not used and replaced by whitespaces instead. Is this a known problem? Or even a feature? :) Is there a known work around? F.trott 14:27, 19 May 2009 (UTC)


 * Any Suggestions on this? F.trott 15:02, 9 June 2009 (UTC)
 * Have you tried using the urlencode template? http://meta.wikimedia.org/wiki/Help:Parser_function#URLENCODE 67.97.209.36 15:09, 9 June 2009 (UTC)


 * Leads to closing curly braces appearing in the form and an infinite loop when I try to save the form. Since other characters are no problem (e.g. parantheses, ampersands, etc.) I do not think it's an encoding problem. I believe only the period gets replaced somewhere. F.trott 05:11, 10 June 2009 (UTC)


 * Ok, found the responsible str_replace in SF_FormPrinter.inc and just commented it out. Everything seems fine. Question is: The replace was put there explicitly. Why though? Did I just open a new problem? F.trott 06:07, 10 June 2009 (UTC)


 * Hi, sorry for not responding before. Yes, I've seen that same str_replace, and the thing is, I can't remember in the least why it's there. I'll try to figure it out, although I might take out that line anyway. I'm glad it worked for you. Yaron Koren 19:10, 10 June 2009 (UTC)


 * No problem. I'll report if I encounter any problems. F.trott 11:41, 11 June 2009 (UTC)

Illegal mix of collations
We installed SMW and Sematic Forms on MediaWiki 1.11.1. Installation went fine but when we attempted to use Special:CreateTemplate we received the following error:


 * Database error
 * A database query syntax error has occurred. This may indicate a bug in the software. The last attempted database query was:


 * (SQL query hidden)


 * from within function "SMW::getUnusedPropertySubjects". MySQL returned error "1267: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_bin,IMPLICIT) for operation '=' (***.***.com)".

I found bug 14931 which sounded related.

Our database was latin1 so we locked down MediaWiki ( $wgReadOnly = "..."; in LocalSettings.php) and connected to mysql and submitted

alter database wikidb CHARACTER SET latin1 COLLATE latin1_bin;

then unlocked. This resolved the problem for us. --DavidBiesack 16:17, 12 June 2009 (UTC)

CAPTCHA
Is there anyway to get a CAPTCHA embedded in the form? I have recently been targeted by spammers and need to add a layer of prevention. I am using the ConfirmEdit extension, but it sends users from the form page to the normal edit page.


 * SMF run as previous process, ConfirmEdit is executed when you try to "save" the document, it is possible to modify some options but all they are after submitting the form. Neoshinji 11:12, 24 June 2009 (UTC)

includeonly free text has side effects
"includeonly free text" does what is advertised: It places all template calls generated by the form within a " " tag. Alas ist also places the remaining text within " " with the effect that that text is not displayed on the original page anymore. I think the " " is unnecessary and could be removed. (Alternatively it could be replaced by ", making the " " unnecessary.) F.trott 14:54, 15 June 2009 (UTC)


 * Very interesting - I wasn't even aware of the "onlyinclude" tag until you mentioned it just now. That seems like an ideal solution for this feature - though it might mean that the SF parameter's name will have to change. :) Yaron Koren 01:21, 16 June 2009 (UTC)


 * F.Trott it is possible to need in some strange cases to use the includeonly for this purposes, if you to want to see a real case, please check the Mediawiki Support Desk (concretly the links generated when you post a new question), then I am sure you will understand why it is important this feature. ;) Neoshinji 11:05, 24 June 2009 (UTC)


 * I'm not sure that I understand what you mean. Mediawiki.org does not use semantic forms. F.trott 14:06, 24 June 2009 (UTC)


 * Okay, "includeonly free text" is now "onlyinclude free text" (though the old name still works), and it uses the "onlyinclude" tag, which definitely works better. Thanks for the suggestion. Yaron Koren 16:06, 26 June 2009 (UTC)

"uploadable" does not work with forced uploads
The "uploadable"-Option does not work when I try to upload a file with a bad file type (e.g. MSWord).

My wiki is set to allow forced uploads (i.e. issue a warning about a bad file type and allow to upload anyway). When I try uploading a file the warning is issued, the file uploaded, but I have to explicitly close the javascript window and the filename is not copied into the text field. F.trott 13:56, 24 June 2009 (UTC)


 * Yeah, that's a tough one... I don't know if there's a way around the problem, but thanks for the reminder. Yaron Koren 16:41, 24 June 2009 (UTC)


 * Have fun. ;-) I just switched off the file extension check. It's a risk, but a minor one - my wiki is in an intranet with a fairly small (hopefully not malicious) user group. Btw, is there a way to change the appearance of the upload page? F.trott 18:50, 24 June 2009 (UTC)


 * There hasn't been one recently, no... Yaron Koren 19:27, 24 June 2009 (UTC)


 * Ok, doesn't matter. Thx. F.trott


 * Oh, oops, I misread your question. The real answer is that you can make various CSS changes, through the MediaWiki:Common.css file. You could try adding "form#upload {background: gray}", for example. Yaron Koren 13:36, 28 June 2009 (UTC)


 * I'll try that. Thanks. F.trott 05:12, 29 June 2009 (UTC)

Hiding "view form"
I'd really like to be able to disable "view form" but I'm not quite sure where to do this. Any direction on this? Thanks! --Bsmithme 21:52, 27 June 2009 (UTC)


 * There's no way to do that. Why do you want to? Yaron Koren 13:24, 28 June 2009 (UTC)
 * In our setting we have no need to display "view form" to users who don't have access to the article. We are trying to trim down and clean up the pages so that it contains as few un-needed distractions as possible. --Bsmithme 17:55, 28 June 2009 (UTC)


 * Well, do you have, say, the "View source" or "History" tabs removed? If so, how? Yaron Koren 20:58, 28 June 2009 (UTC)
 * I have those removed using the CSS option and using the extension Dynamic Tabs. None of them apply to Semantic Forms, however, since it is independent. --Bsmithme 00:04, 1 July 2009 (UTC)


 * So Dynamic Tabs doesn't work on "formedit" when you try it? It seems like it might, but I wouldn't know. Yaron Koren 03:29, 1 July 2009 (UTC)
 * That's correct, DynamicTabs isn't setup to handle semantic forms tab (to my knowledge, there is no documentation). I am not that great with PHP code, but I think that if I modify (maybe comment-out) content on line 66+ of SF_FormEditTab.php I think it should be possible to eliminate "View Form"... But I am just not sure. --Bsmithme 21:05, 1 July 2009 (UTC)

Not to belabor the point, but just to clarify - did you try DynamicTabs with a "formedit" setting? Yaron Koren 21:21, 1 July 2009 (UTC)
 * Indeed I just rechecked and I do have "formedit" and also have "viewform" "viewsource" and even "edit" just to see if it would work, but "view form" still appears. --Bsmithme 23:08, 1 July 2009 (UTC)

Category Input Type: No tree displayed
Problem I created a template and a form based on DiscourseDB When I create a page using the form, I get a text box rather than the category tree selection displayed on DiscourseDB. Does Input type=category need to be enabled, or have I gone wrong somewhere?

My Versions The versions installed on my wiki are:
 * MediaWiki (1.13.2)
 * PHP (5.2.6)
 * MySQL (5.0.24)
 * Special pages
 * CategoryTree (Version r37574)
 * Replace Text (Version 0.3)
 * Semantic Forms (Version 1.3.8)
 * SphinxSearch (Version 0.6.1) Not working properly
 * Parser Hooks
 * CategoryTree (Version r37574)
 * ParserFunctions (Version 1.1.1)
 * Semantic MediaWiki (Version 1.4.0)

Template:CategorySelect This is the 'CategorySelect' template. It should be called in the following format: &lt;pre&gt;

&lt;/pre&gt; Edit the page to see the template text.

Form:CategorySelect This is the 'CategorySelect' form. To add a page with this form, enter the page name below; if a page with that name already exists, you will be sent to a form to edit that page.

Category:

This feature would be very helpful for what I am trying to accomplish.

Thanks!


 * Well, I certainly can't fault you for not giving enough information. :) You have an old version of Semantic Forms - if you upgrade, it should work. Yaron Koren 22:15, 30 June 2009 (UTC)
 * That was it. Thanks so much for the tip. The semantic extensions are powerful & elegant.

Forms terminate template calls with newlines
Form-created pages contain one template call per "for template". These template calls are terminates by newline characters. While this leads to good readability of the resulting page the newlines introduce unintended vertical space.

Example: I have a template that only sets an attribute ("document reference") without any resulting text. I use that with "multiple". This results in vertical spaces that get larger the more times I use the template, i.e. the more references I attach. F.trott 08:36, 2 July 2009 (UTC)


 * Hi, sorry, I can't reproduce that problem - would it be possible for you to try to reproduce it on scratchpad.referata.com? Yaron Koren 03:10, 9 July 2009 (UTC)


 * Done. You now have the following pages: Form:FtItem, Template:FtItem/Head, Template:FtItem/Head/Personnel, Template:FtItem/Head/Reference, Template:FtItem/Body, FtTestItem. The more personnel or references you add, the larger the space in the resulting page between the Head and the free text (the lorem ipsum in the example) becomes. (Sorry for keeping you waiting, was on holiday.) F.trott 13:11, 20 July 2009 (UTC)


 * Just found a workaround: Including a  at the very end of the template "hides" the newline from the wiki parser so it does not insert empty paragraphs. I implemented the workaround on the scratchpad in Template:FtItem/Head/Personnel, left Template:FtItem/Head/Reference alone, so you can compare. F.trott 09:24, 22 July 2009 (UTC)


 * Okay, I see the issue, thanks: the problem comes when you have a template containing only "silent" property settings. It's good that you found a workaround; that would be a good "tip" to add in the SMW Community Wiki... Yaron Koren 16:22, 23 July 2009 (UTC)


 * Done: Maybe check and edit as necessary. Thanks. F.trott 15:25, 24 July 2009 (UTC)

Case sensitivity for: field|autocomplete on category=category name
Whether this is a bug or just an omission in the documentation, users should be aware that for the various parameters of the field tag following the format:
 * autocomplete on category = Category name
 * values from category = Category name

The Category name must be capitalized. i.e. category = boats does not work but category = Boats does work

I can only assume the same applies to property = Property name and namespace = Namespace name


 * sane "sensitivity" noted for filters used in SMW queries.

Najevi 23:11, 7 July 2009 (UTC)


 * I suppose that's a bug - there's no reason why lowercasing the first letter should fail. Yaron Koren 15:03, 8 July 2009 (UTC)

#arraymap: parser function does not translate \n to a newline character
Section Multiple values for the same field states that #arraymap will treat \n in either delimiter field as a newline character. Test the following at a wiki with the Semantic Forms extension installed.


 * The markup:


 * Renders as:

Although not able to be demonstrated at this talk page, clearly, the newline substitution is not taking place. For a suitable solution see: Delimiting and #arraymap: with a newline Najevi 12:27, 8 July 2009 (UTC)


 * It works for me - what does it look like for you? Yaron Koren 15:03, 8 July 2009 (UTC)

It renders \n as a literal string. viz.
 * abc\ndef\n123\nxyz

You can see this demonstrated at http://vsk.wikia.com/wiki/User:Najevi/arraymap Najevi 06:00, 19 July 2009 (UTC)


 * Ah, I see - you're using an old version of Semantic Forms (see here). Try to get them to upgrade, if possible. Yaron Koren 14:10, 19 July 2009 (UTC)

I came across that version history while searching the SF mailing list yesterday and realized that support \n first appeared in v1.7 while my wiki host is at v1.5.1 ... Mystery solved! By the way I don't think I'd have been able to find that information at the SourceForge mailing list archives. Najevi 00:02, 20 July 2009 (UTC)


 * You can see the version history here. Yaron Koren 00:39, 20 July 2009 (UTC)

Custom output format for date/time inputs
It would be nice if the format in which the value from a date/time input field is entered into the template call could be customized. The current YYYY/MM/DD is for example very confusing when mixed with DD.MM.YYYY dates. I guess it should be no big problem since Semantic Mediawiki seems to understand many different input formats. Maybe the best would be to somehow use the Locale. - LosWochos 08:22, 14 July 2009 (UTC)


 * Well, you can already customize it by adding "$wgAmericanDates = true" to your LocalSettings.php... Yaron Koren 13:09, 14 July 2009 (UTC)

Using SF for Talk Pages
Any thoughts on this? Seems like a bad idea, but the idea has its merits, I think. --Bsmithme 01:21, 15 July 2009 (UTC)


 * I wouldn't recommend it - if the aim is just to provide more structure for discussions, there are already extensions, like LiquidThreads, that do that. Yaron Koren 19:59, 15 July 2009 (UTC)

Saves taking too long
I have a bit of a problem with Semantic Forms. When I edit and then save a page using a form, the save hangs for about 4-5 seconds while showing the little circular status thing (i.e. the circular thing that goes round and round -- I don't know what to call it). The circular stautus thing hangs (i.e. stops spinning) for 4-5 seconds, on a white background, and then the save completes. When I switch SF off, the page can be edited and saved really quickly. Any ideas? MW 1.13.5, PHP 5.2.10, MySQL 5.0.41, SMW 1.4.2, SF 1.7.3, HeaderTabs 0.6.4. - Borofkin 06:27, 22 July 2009 (UTC)


 * I understand what you're saying, although the comparison you're providing is somewhat odd - saving a form with SF, versus saving a regular page without it. :) Are regular page saves slower too when SF is installed? In any case - try removing all the language values from the SF_Messages.php file, other than English (assuming you're using English). That's obviously not a good general solution, but I have a hunch that that enormous file causes a big slowdown for some people. Yaron Koren 19:46, 22 July 2009 (UTC)
 * Hi Yaron... The "hang" occurs on pages with forms, but not pages without forms. I've removed all other languages and there is no change in the behaviour. - Borofkin 01:31, 23 July 2009 (UTC)

Confusing concepts

 * Please accept the following in the same spirit of constructive criticism with which it was thoughtfully prepared.

I first started reading about SMW and SF around May 2008. It was dry reading then, it was confusing then. I had an urgent task in mind and despite well-meaning advocates of SMW/SF urging me to use those "better" tools I chose not to because it seemed so gratuitously complex and different than the well understood and well documented templates that MediaWiki provides. So I shelved the idea of using SMW/SF back in May, 2008 and completed the task using (albeit) complex template calls instead.

So when I comment that the article in it's present form is confusing please understand that this reaction is coming from the perspective of a reader who was tardy to migrate to SMW/SF specifically because the documentation of various concepts did not successfully communicate certain key messages in a time efficient manner. I imagine that one of the goals of this wiki article is to enable a more rapid uptake of SMW and especially the SF extension than this one reader suffered.

It may be that Yaron is still in the process of reviewing a number of edits I recently made. I fully expected some degree of editorial veto - after all that is a developer's prerogative. Having just now reviewed the comparison of the two versions here I am prompted to mention below those major points of confusion that the article in it's present form has caused for me.

Terminology consistent with MediaWiki help pages

 * A form has fields. A template has parameters. Those template parameters are either numbered parameters or named parameters. By it's very section title, Extension:Semantic_Forms purports to explain how to define a semantic form which happens to have one or more elements that are described as fields. It is needlessly confusing to read about "template fields" in this section or anywhere else in the article. (Maybe "field" was a term that was once associated with MediaWiki templates but it is not consistent with contemporary help pages on the subject of templates.)
 * Data can be added to a page. A page can be added to a wiki. However within the existing MediaWiki documentation that second action is more commonly (and I think more clearly) described as:
 * A page can be created at a wiki.
 * Pages at a wiki can be edited. Data on a page can be edited. It is unfortunate that the same verb suits both purposes and sometimes the english language does that to us. The reader is left to read, play, reread, experiment some more, etc. to eventually come to an understanding of any subtle difference. The editing of data on a page via a form sometimes involves adding data to empty form fields and sometimes involves changing data found in already populated form fields. Therefore to clarify the subtle difference I would suggest that:
 * Data on page can be changed. ... and to effect that change ... A page at a wiki can be edited.
 * A user presently interfacing with a form is the current user. A user that is creating a page for the first time (albeit using a form) is the page creator.

These four bullets may come across like some petty disagreement over semantics (sic!) however I will simply say that use of the following terminology lead to sufficient confusion on behalf of this one reader that I turned my back on the tool for nearly 12 months before resolving to persevere. I wonder how many others before me reacted in a similar way but did not bother to provide feedback?
 * 1) "field" for both templates and forms
 * 2) * try "template parameter" instead of "template field"
 * 3) "edit" for both data and pages
 * 4) * with respect to data, try "change" instead of "edit"
 * 5) "add" for both pages and data
 * 6) * with respect to pages, try "create" instead of "add"
 * 7) "current user" when "page creator" was intended

That moment of revelation
My final piece of major feedback has to do with that revelation or "a-ha!" moment that each of us inevitably must experience when studying something new or different. Of course this is different for each individual. I imagine that one goal of user review of an article such as this is to reduce the median time to revelation for newcomers to the subject.

The verbose introduction suggested for Extension:Semantic_Forms (and reproduced below) was the "a-ha!" moment for me in my coming to understand how SF actually works. I concede that this fundamental concept is subtly alluded to in the Description section. If a user has the time and patience to read, experiment and then reread (and the tenacity to maybe repeat this for several days as I needed to) then eventually that moment of revelation will come. Within this introduction to SF, if some degree of repetition for the sake of emphasis can save newcomers undue delay in getting to that moment of revelation then I think it is worthwhile repetition. viz.


 * An important concept mentioned in the Description and re-emphasized here is that the Semantic Forms extension enforces the use of templates for creating and editing semantic data. It is not compatible with direct semantic markup in data pages. Nor does it support any manipulation of semantic data within a template that is called from a data page. Each template is expected to perform straight forward semantic annotations and indeed, if the Create a template form provided for that task gets used then that is exactly what will be produced.
 * Each user-defined form should be thought of as a graphical user interface designed to allow any user (even one having no knowledge of wiki markup code) to efficiently populate a pre-defined set of template calls with required (and optional) values corresponding to  named parameters expected by each template.
 * Therefore, when this section mentions preserve values or edit values that concept is really referring to data stored on the page as values assigned to named parameters in one (or more) template call(s) and does not refer to values stored as semantic data per se. If the stored semantic data is directly manipulated by some other template on the same data page or by direct semantic markup within the same data page or by any other method; then the user-defined form will disregard those changes.
 * When a form's Save page button is clicked those one (or more) template call(s) are evaluated just as they would be if the user had been editing the page source markup code and clicked save page. If mandatory data is missing or if the expected data type or value is other than what is is expected then the form does not allow the page to be saved and will direct the user to any form field(s) requiring user attention.

Finer points
I hope the various minor clarifying points suggested within those subsections describing the "form markup language" will be reviewed once again at that time when either a table view or maybe a traditional Bachus-Naur form description of syntax is adopted.

Finally, thank you Yaron for a great tool and also for your patient responses to my questions both in the IRC channel #semanticmediawiki as well as on the semediawiki-user mailing list.

-Najevi 19:01, 22 July 2009 (UTC)


 * Well, thanks for the feedback, but no need for the dramatics - maybe there are people using SF now who wouldn't have used it had the documentation been another way? There's no way to know. Anyway, I reverted your changes because I agreed with some of them and disagreed with others, and it seemed like there were too many to try to sort them all out. As to your suggestions: changing template "fields" to template "parameters" sounds like a good idea, as does talking about creating pages instead of adding pages; maybe even the 'AddPage' special page should be renamed at some point. For "current user" vs. "page creator" - they mean the same thing, given that the default only applies when creating a page; and I think "current user" sounds a little more obvious. Also, I prefer "edit data" over "change data" because I think it makes it clearer that it's being done manually, through a form. Yaron Koren 20:33, 22 July 2009 (UTC)


 * I don't think this is too dramatic. I can honestly relate to the problems described here to my own experience coming to SMW. Now that I am comfortable with the concepts, I don't really see why it took me so long - there isn't really that much to learn, but I do remember battling with the docs on more than one occasion. --Dmb 23:20, 24 July 2009 (UTC)

Any way to include forms inside forms ?
Hello. I have a wiki that has a lot of character sheets (about 300). All these sheets are managed with a "character" template that could be simplified as somthing like that

That single template is useful to order the elemnts in the page and if switching elements is needed because of a design change, it is very quick to update all the 300 pages.

In SF I was using a set number or fields to handle parameters that should have multiple values, like the voice actor part. The voice_actor1 and voice_actor_age1 bacome actually be 2 parameters of a template so the Character template actually has a number of fields like

Obviously, that method is not clean because you have to define beforehand enough 'false multiple fields' in your template and your form. Also, things like that can't be handled by the current 'allow multiple values' option of SF since it only takes values one by one, not as couples.

I tried to include a multiple instance form template inside an another form template like in the example behind, but such a thing completely fails. I was kinda hoping that the nested form would generate the template elements tags and then assign that string to the voiceAct field that would replace the set of predfinied isntances in the Character template.

ActorField:

Right now the only possibility seems to split the Character template in 5 parts, actually evertime there is a multiple instance emplate to include. That solution is not good at all, because first it would be painful to migrate all the pages to a new "split" version, and then the positioning of elemnts in a page would be decided by the form. If we need to change the sections order later it would mean editing every page, and possibly rework again all the split template parts.

Nested tempaltes would probably require a lot of changes in the parsing algorithm so at least a way to decide the positioning of multiple instance forms would be nice. for example we could have something like this:

ActorField:

actor:

age

The multiple templates generated result would be put as a string in the ActorField according to the relation created with the value_from_form and nameForInclusion parameters.


 * I'm not sure, if I understood your problem correctly, so apologies if not. Anyway, you seem to have two problems.


 * multiple values in one attribute: Maybe this helps you sorting out the problem: Help:Many-valued properties on semantic-mediawiki.org


 * Separation of data and view: I solve that problem by using separate templates for setting the attributes and for displaying the data. The templates for setting attributes do just that and nothing else. (But see Extension_talk:Semantic_Forms above for problems and workaround with that approach.) The templates for the displaying of the data take no further parameters from the form but gets all the necessary data by queries . Only thing to consider: You need two templates for displaying: One for content displayed above the free text (e.g. Headerdata), one for below (e.g. the articles body).


 * For an example including both approaches see scratchpad.referata.com. The Form Form:FtItem generates the articles. The templates Template:FtItem/Head/HeadData, Template:FtItem/Head/Personnel, Template:FtItem/Head/Reference are used to set the attributes, and finally Template:FtItem/Head and Template:FtItem/Body display the article. An example page generated with the Form is FtTestItem. It is all not very nice but really only a cooked up demo to demonstrate my problem above.


 * As for the transfer from the one-template-solution to the multiple-template-solution: The one template could call the multiple templates, so you would not have to transfer all articles at once, but only when you make changes to them.


 * (Edit: Improved the example to reflect the data-view-approach better. 15:07)


 * HTH. If not, elaborate or just tell me to shut up. ;-)   -- F.trott 14:45, 24 July 2009 (UTC)


 * Hi,
 * While I understand your approach, I don't think that matter could be handled only by semantic properties. For example, the "history" part has to hold a lot of text with any wiki markup, such as pictures, and that doesn't work very well when included in the Text type of Sementic Mediawiki. Furthermore, isn't it a waste of cpu, ram and cache to have a lot of requests asking for data that is on the same page ?


 * Looking into SF_FormPrinter.inc, it seems that a string replacement around the line 1008 would do the trick for Form submission, but extracting these multiple fields from the template and putting them outside of the general template at form edition would be a bit trickier.


 * Ok, as you might have guessed, I use the wiki for project management and information. So for me it is mostly text, nothing fancy. I never tried SMW with a lot of markup. If I had to, I would maybe try to wrap it somehow and unwrap it for display. Even more cpu-load. :-/


 * Cpu and ram: I have some concerns there, too, but so far it seems to work for me (Running the wiki on a 1.3-GHz-Laptop, 1GB ram, Win XP). Pages do not load instantaneously, but within 3 to 5 seconds, and they are a Lot more complex than the example.


 * If you wanted to minimize database queries you could maybe do something with the variables extension. But I never tried that, so I don't know, if it would work, especially as the variables would have to work across template borders. Also, in the end simple queries would probably be faster than all the string-manipulations necessary with variables.


 * Last Idea: I never tried it, but maybe defining your own input type could do the trick. Admittedly, that would be quite some effort.


 * Or Yaron could just include form nesting. :-)


 * F.trott 09:36, 25 July 2009 (UTC)


 * Well, I finished making some additions to the code and could get something that solves my problem, though it is not a nested template. A simplified version of my form looks like that:

Name: Role:

Text:


 * Basically, all the text generated by the multiple template declaration on VoiceActorTemplate (so a succsession of ...  ) is taken and agregated into the "voice" field of the Sheet template on form submission, according to the replace=voiceActor parameter that helps to identify what should go where.


 * On edit, the list of templates in the "voice" field are taken out, put at the end of the string used at the form creation and so they get parsed correctly by the tag.

Synchronize the data pre-populated into form input fields with up to date semantic data
The default use of SF results in a form's template(s) providing nothing more than straight-forward annotation of semantic properties to data values entered into form input fields by a user interacting with the form based edit view of a page.

One of the problems I came across while testing partial forms was the realization that whenever a form view of a page is displayed each input field is pre-populated with the values that were last assigned to a named parameter used by one of the form's templates and corresponding to that specific form input field.
 * If there is more than one way for the semantic data associated with a page to be changed (and this can easily the case when partial forms are put to use) then a fundamental problem arises because this pre-populated data may not always be synchronized with up to date semantic data associated with a page.

There is a way to force the form to synchronize to current semantic data however it requires the use of a javascript function to auto-populate contemporary semantic data into form fields. Of course the user of the form may then change that data any way that they see fit before saving the form and committing the data changes to the underlying page.


 * This explicit synchronization enables a form's template to do more complex data manipulation than just straight forward semantic annotation. (see Possible applications)

This is something that I had intuitively expected of a form's template but soon came to realize this was being hampered by the fundamental limitation of SF. i.e. the form does not remember up to date semantic data values, instead it remembers the last values assigned to named parameter values.


 * Delivering contemporary semantic data to the form : This can most easily be done as part of the form's markup code (not the form's template but the form itself).
 * An HTML element uses a  inline query to extract up-to-date semantic data from the underlying SQL database.
 * That HTML element is given a unique ID. (An obvious choice is to reuse name of the template named parameter that the semantic form is designed to populate. e.g. param-property-name The semantic property name itself tends to include space characters which aren't suitable for an ID attribute.)
 * That HTML element might typically be hidden however, that is optional. Use a classname based style to override the default hidden style. viz.

With these hidden DIVs within a form's HTML the javascript function to auto-populate a form's input fields becomes relatively straight forward. viz. var str = $("#param-property-name p").text; /* accesses the contemporary semantic data */ $("#bodyContent form.createbox fieldset") .find("input.createboxInput[type='text'][name$='[param-property-name]']") .val(str); /* populates the form's (input type = text) field */ Where param-property-name is whatever named parameter the form's template uses since that can be uniquely matched to the name attribute of an input field. The different input types (text, textarea, radiobutton, checkboxes, listbox, etc.) each require subtly different
 * selector based on the name attribute
 * formatting of the output from #show: however that can easily be achieved using a combination of  and wiki markup within the template. The ArrayExtension parser functions arrayUnion, arrayDiff, arrayInterection would be powerful tools in this process.

Possible applications
At least two applications come to mind immediately but the possibilities are boundless. The key enabler is allowing the wiki developer to perform complex data manipulation within a form's template before making the final annotation of semantic properties to individual data values. This was a definite "no-no" so long as a form's memory is tied to the last used values for named parameters.


 * Add to favorites / Remove from favorites : This has been my primary driver the past two weeks. It is an essential part of most online communities and a perfect "killer app" because it is a piece of functionality that just about any web user can easily relate to. The property, Is a favorite of, is annotated to the username for each person who wishes to mark a page as one of their favorites. In this case the username is the data and rightfully belongs on the page .. albeit hidden from regular page rendering but still visible via the semantic browser or the FactBox if that happens to be enabled.
 * A challenge with implementing this was to prevent clumsy users from directly accessing the list of fans who have already "subscribed" to the Is a favorite of</tt> property for the page. This is less out of concern for user privacy and more out of concern that an accidental deletion or addition of another user's name might occur. The current list of "fans" can remain hidden and so the user currently interacting with the semantic form is only presented with an Add/Remove radiobutton pair along with the buttons: Confirm (i.e save page) and Cancel.


 * Batch loading of semantic data : This is next on my list for a specific game wiki. I suspect the scenario will resonate for developers of other wiki communities.
 * Using the standard output from a program (e.g. a game client, office application, measuring instrument, file scanner or whatever else you can imagine) an XML or CSV style plain ASCII file can be prepared which basically associates values (or delimited lists of values) to various property names. There might be dozens of property/value pairs in such a file. It is simply unreasonable to expect your average wiki contributor to laboriously enter each value into a form field and then click save.
 * The data might be the results of a multi-player game, the vital statistics from a day or weeks worth of security monitoring or cargo/asset movement, log files from regular antivirus scans or firewall reports, environmental data or patient data from a routine set of monitors logging data to disk, and so on and so forth. The common characteristic of this type of data is that it is not information that requires a user to be prompted by form field titles or button labels. Indeed the user does not need to think carefully about this information as it is being entered.
 * So instead the user copies and pastes the contents of one entire file into a single textarea</tt> field (yes there are character count limitations imposed on those fields) and then saves the form. The task of fragmenting this highly regular data into  pairs is delegated to the form's template. (Not possible without synchronization.) Finally, a null string is annotated with a property corresponding to the textarea</tt> input field.
 * The next time that page is edited using the form view the user is presented with all form fields correctly populated with data that was previously entered by them using the single "cut and paste" operation followed by a Save page. Also, the textarea</tt> input field is completely blank once again - no memory of the last parameter value used because that entered data was only a transitory/interchange format.


 * Now that gives me goose bumps just writing about it.


 * Are you familiar with the Data Transfer extension? It allows for CSV import. Yaron Koren 15:12, 27 July 2009 (UTC)


 * No I am not familiar with it. I did research Extension:Data Transfer but quickly learned that it requires a user to have admin/sysop privileges to upload data in batch mode. (In this sense it is the same as mediawiki's Special:Import tool for uploading one or more entire wiki page(s) from a single XML file.) For the application I have in mind I need a method that any regular user can use to upload such batch data.
 * I hope to find a way to do this for multiple pages in the same batch operation but I doubt I'll get to look into that possibility until the end of August or early September. I imagine AutoWikiBrowser will be involved in some way.
 * -Najevi 05:01, 28 July 2009 (UTC)


 * Ah, there was definitely a gap in the Data Transfer documentation - it didn't explain how to change the permissions. I just updated it. Yaron Koren 19:21, 28 July 2009 (UTC)

So why write about this here?
I think that data pre-populated into form input fields should (by default) be synchronized to the semantic data associated with a page and not merely retrieving last used template parameter values. I (finally!) understand why the form's memory is tied to named parameters in constituent templates but I think that a more robust strategy has been described above.

The good news is that whether this synchronization gets integrated into the SF extension or not, it is something that a motivated wiki developer can do for themself. In time I will set up a demo wiki based around the already described Getting started example of books in a library to illustrate at least the above two applications of this strategy. i.e. 1) allow users to add a book or author to their list of favorites and have that list automatically appear at their user page and 2) batch upload of data about a book or an author (not a great demo since it is only a short list

Perhaps some discussion will follow and an even better solution emerge. -Najevi 19:14, 25 July 2009 (UTC)

Name of the article based on the class
Hello. Is it possible to automatically add suffix to the article basing on article class and parametres? For example, I have a class "Person" and property "Date of birth". So, I create an article using form input and enter to this input. After the semantic forms wizard ends, the article is under address (, b. ). Visor 11:44, 26 July 2009 (UTC)


 * Instead of " ", why not just have the text "person"? Yaron Koren 18:36, 26 July 2009 (UTC)


 * Yes, my bad. It should look like that: (person, b. ). Visor 21:31, 26 July 2009 (UTC)


 * Okay. Did you read this section? Yaron Koren 22:43, 26 July 2009 (UTC)

Input type radiobutton: "mandatory" does not work with default value
If you use a field of input type radiobutton the javascript function validate_mandatory_radiobutton fails, if no none-button is generated, i.e. if a default value is given.

Workaround: Leave out the "mandatory". It's pointless anyway with a default value, as you can't unselect radiobuttons. That does not help, because a "None" option is automatically added if a field is not mandatory, i.e. you can unselect it.

--F.trott 13:54, 27 July 2009 (UTC)

Solution: Only add the call to validate_mandatory_radiobutton if there is no default value given. In SF_FormPrinter.inc change line 109 from

$sfgJSValidationCalls[] = "validate_mandatory_radiobutton('$input_id', '$info_id')";

to if ($default_value == "") { $sfgJSValidationCalls[] = "validate_mandatory_radiobutton('$input_id', '$info_id')"; }

--F.trott 14:35, 28 July 2009 (UTC)


 * Ah, great. Thanks for the patch. Yaron Koren 18:32, 28 July 2009 (UTC)

Feature request: Regular expressions for validation of text fields
It would be really nice if I could set a regular expression in a field declaration for the validation of text fields.

Usage: e.g. custom date fields, custom number formats (social security number, postcode, telephone...), all kinds of ids

Problem: I'm not sure if and how it would integrate with other wiki markup, e.g. what about square brackets.

--F.trott 14:05, 27 July 2009 (UTC)


 * Well, you can always define a new input, with its own Javascript validation, by creating a new extension that hooks into Semantic Forms - there was just a discussion on the mailing list about this. But I'm not a big fan of validation for things like phone numbers, since there are so many valid ways to express it. I think just having instructions in the form on the right format to use is enough, in general. Yaron Koren 14:53, 27 July 2009 (UTC)

add optional Ending Date link
I am not sure if the following is possible, but it seems to me that this might be acheivable by using chooser, but I have been unable to actually find a place that further explains what the chooser option is capable of.

I have created a form that enables users to add upcoming events to a bulleted list. What I would like to do is add a link under (for example) the Date field that says Add Ending Date. This would add an additional date field to the form that was previously hidden and the link text would dissapear or switch to something like Single Day Event.

I am currently using Semantic Forms v1.6

Thank you!

Dgennaro 16:00, 27 July 2009 (UTC)

Warning message with 1.8.1
I get the following message with 1.8.1 installed:

Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of [runtime function name]. If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in .../SF_FormEditTab.php on line 109

It goes away when I remove the '&' symbol from line 109. --KarenK 02:55, 31 July 2009 (UTC)


 * Oh yeah, I forgot the rules for passing-by-reference (it didn't give an error message for me when I tested it out). Thanks for the bug report; it'll be fixed in the next version (though you've already found a fix, which will work fine if you're not using the "Vector" skin). Yaron Koren 03:19, 31 July 2009 (UTC)

input type=category/categories don't work with the mandatory attribute
Hi everyone. For some reason the attribute "input type=category/categories" doesn't become mandatory even though I label it with the mandatory label: What am I doing wrong?

--Gregra (UTC) 20:55, 4 August 2009 (UTC)


 * You've uncovered a bug in Semantic Forms; it'll be fixed in the next version. Yaron Koren 16:07, 6 August 2009 (UTC)
 * thanks Yaron, looking forward for the next version.--Gregra 12:38, 14 August 2009 (UTC)


 * Hi, it was already released, two days ago. Yaron Koren 12:52, 14 August 2009 (UTC)

CSS For Forms (Changing the Style of Your Forms)
Hello. First I would like to say I really like your extension, great job. Ok, I wanted to apply different custom CSS for some forms I create. I was looking through some of the files, but am finding it difficult to find where the actual html code with any classes (for style) etc is being generated. Big picture: I would like to be able to query the name of the form called for and according to which name (form), apply a custom CSS file. Any ideas or files I should look at?

Thanks so much. -Felix. 8/4/09


 * Hi, thanks. Unfortunately, what you want to do is impossible. Instead, you should use different CSS classes for each form, then define them all in one location (I'd recommend the "MediaWiki:Common.css" wiki page). If all you want to change is the look of the table in each, you can just substitute the class "formtable" in the default form with a different name for each form, then proceed that way. Yaron Koren 16:12, 6 August 2009 (UTC)


 * Thanks so much for the reply. I will take a look at your idea right now. Also, I found out that what the code does is simply create a template which is inserted every time you create a new form. So what seems to work is create my forms, then edit the template page that is generated (adding styles there) and every page where the 'form'/'table' is transposed changes automatically. No CSS files needed, well, I'm doing in-line style insertions on each template. Thanks! -Felix 8/5/09


 * Just an update. Yaron, thanks so much what you suggested, perfectly matches what I needed along with what I had found out. So basically:

Solution: Changing the Style of your Forms
 * 1) Create Your Forms
 * 2) *This creates a template which you can navigate to by going to .../Template:<Name of Form>
 * 3) *Please Note: The Template is a table, ie. What is being transcluded is a table, so table rules apply
 * 4) Change the Look one of two ways:
 * 5) Edit the Template page
 * 6) *After navigating to the Template page, edit the page and add any div's or in line style css to change the appearance of your forms.
 * 7) *Make sure you pay attention to the 'include' and 'noinclude' tags
 * 8) Edit the CSS
 * 9) *Navigate to the .../Mediawiki:Common.css page
 * 10) **Now add your custom css to the page
 * 11) *Now go to your form's template page and change its class to the one you created.

Hope this helps everyone. -Felix (NSotres)8/5/09

Preload data into multiple-instance templates?
Is there a way to preload data into multiple-instance templates via the URL query string?

When I try setting it as would set the single-instance templates (i.e. templatename[fieldname]=value) I always get

Warning: array_key_exists [function.array-key-exists]: The second argument should be either an array or an object in C:\xampp\htdocs\w\extensions\SemanticForms\includes\SF_FormPrinter.inc on line 574 --F.trott 07:15, 6 August 2009 (UTC)


 * That looks like a bug in SF; I'll look into it. Yaron Koren 17:11, 6 August 2009 (UTC)


 * Somewhat fixed in version 1.8.2, I believe - unfortunately, you still can't set a preload value for a field within a multiple-instance template (I don't know if this was ever possible), but at least it doesn't give an error message. Yaron Koren 15:57, 12 August 2009 (UTC)

Not installing namespaces
I'm not getting any errors, but my Special:AllPages does not show any of the new namespaces that should exist (like Property). When I use the Special:CreateProperty page for example, it just adds the property as a root page off the standard namespace.

Any idea what could cause this? I notice that it doesn't have any namespaces that are not listed in my LocalSettings.php $smwgNamespaceIndex = 115; include_once("$IP/extensions/SemanticMediaWiki/includes/SMW_Settings.php"); enableSemantics('telarapedia.com'); include_once('extensions/SemanticForms/includes/SF_Settings.php'); $wgExtraNamespaces = array( 	100 => 'Portal',	110 => 'NameSpace2',	111 => 'NameSpace3', ); Hope someone can figure out what is happening. :) MW 1.15.1
 * 1) updates below:


 * My guess is that it's due to your namespace-rearranging; it might be that you can fix it just by putting the $smwgNamespaceIndex line after the SMW include. Yaron Koren 17:19, 6 August 2009 (UTC)


 * I did end up fixing it after re-arranging my namespace, so thank you for that suggestion. I didn't do what you suggested, but what I did was remove that array, and then add each namespace on its own line...although I don't see why that should have mattered.  I'll try the Index one on another wiki. :)

--Ciovala 21:47, 7 August 2009 (UTC)

Setting field to pagename in template (property question)
I did some searching, and the recommendation was to set it to in the template. However, if you do this, don't you then lose the property feature? For example, let's say I had a property setup of type page. This is nice when I setup a form and field to refer to the property. How can I still use a property type when I'm resorting to using { as opposed to a custom variable (which obviously I then have to just ask the user to type the name in exactly as it was on the initial form 'submit' page)?


 * Why not something like Has title:: ? Yaron Koren 14:53, 10 August 2009 (UTC)

autocompletion problem
Hi, I don’t know if the problem is a bug or not, but I have a problem with the kilo separator. Imagine a number, say 54785 (raw format). Autocompletion show us this number "54 785" and if you click on this value, the associated field contains "54&amp;nbsp;785". As a consequence, the Special:RunQuery doesn’t found a match.

I run a French Médiawiki. To solve this problem, I changed "smw_kiloseparator" => "&amp;nbsp;" to "smw_kiloseparator" => "" in languages\SMW_Messages.php.

--LeLorrain 11:40, 10 August 2009 (UTC)

Italian translation almost completed
This is the italian translation used for my wiki http://web.rif2009.org/mediawiki. Thanks everybody! Maybe the translation is not perfect, but certainly it's better than the orginal one! :P /** Italian (Italiano) * @author Alessandro Rosà */ $messages['it'] = array(	'semanticforms-desc'                => 'Form per aggiungere e modificare dati semantici',	'specialpages-group-sf_group'        => 'Form semantici',	'createproperty'                     => 'Crea una proprietà',	'sf_createproperty_linktoform'       => 'Questa proprietà ti collegherà alla pagina che usa il seguente form:',	'sf_createproperty_allowedvalsinput' => 'Se vuoi che questa proprietà possa ammettere solo determinati valori, inserisci una lista di valori ammessi, separati da virgole (se un valore presenta una virgola, sostituiscilo con mettendoci un backslash davanti in questo modo "\,"):',	'sf_createproperty_propname' => 'Nome proprietà:',	'sf_createproperty_proptype' => 'Tipo:',	'templates'                          => 'Template',	'sf_templates_docu'                  => 'Il seguente template già esiste nel wiki.',	'sf_templates_definescat'            => 'Definisci categorie:', 'createtemplate'                    => 'Crea un nuovo template', 'sf_createtemplate_namelabel'       => 'Nome template:', 'sf_createtemplate_categorylabel'   => 'Categorie definite attraverso template (opzionale):', 'sf_createtemplate_templatefields'  => 'Campi template', 'sf_createtemplate_fieldsdesc'      => 'Per richiamare i campi di questo template non è necessario usare il loro nome, semplicemente inserisci il numero d\'\' indice del campo (per esempio 1, 2, 3, etc) al posto del nome.', 'sf_createtemplate_fieldname'       => 'Nome campo:', 'sf_createtemplate_displaylabel'    => 'Parola da mostrare:', 'sf_createtemplate_semanticproperty' => 'Proprietà semantiche:', 'sf_createtemplate_fieldislist'     => 'Questo campo può contenere una lista di valori, separati dalle virgole', 'sf_createtemplate_aggregation'     => 'Aggregazione', 'sf_createtemplate_aggregationdesc' => 'Per vedere, fra le pagine che usano questo template, tutte le pagine che hanno una proprietà che punta a questa pagina, specifica la appropriata proprietà qui sotto: ', 'sf_createtemplate_aggregationlabel' => 'Titolo per la lista:', 'sf_createtemplate_outputformat'    => 'Formato di output:', 'sf_createtemplate_standardformat'  => 'Predefinito', 'sf_createtemplate_infoboxformat'   => 'Infobox nella parte destra', 'sf_createtemplate_addfield'        => 'Aggiungi Campo', 'sf_createtemplate_deletefield' 	 => 'Cancella', 'sf_createtemplate_addtemplatebeforesave' => 'Devi aggiungere minimo un template a questo form prima di poterlo salvare.', 'forms'                             => 'Form', 'sf_forms_docu'                     => 'I seguenti form già esistono nel wiki.', 'createform'                        => 'Crea un nuovo form', 'sf_createform_nameinput'           => 'Nome form', 'sf_createform_nameinputdesc'       => '(la convenzione vuole che il nome del form venga assegnato dopo la popolazione del template principale ):', 'sf_createform_template'            => 'Template:', 'sf_createform_templatelabelinput'  => 'Nome da visualizzare del template (opzionale):', 'sf_createform_allowmultiple'       => 'Permetti multiple (nessuna) istanze di questo template nella pagina creata', 'sf_createform_field'               => 'Campo:', 'sf_createform_fieldprop'           => 'Questo campo definisce le proprietà  $1, di tipo $2.', 'sf_createform_fieldproplist'       => 'Questo campo definisce una lista di elementi che ha la proprietà $1, di tipo $2.', 'sf_createform_fieldpropunknowntype' => 'Questo campo definisce la proprietà $1, di tipo non specificato.', 'sf_createform_inputtype'           => 'Tipo input:', 'sf_createform_inputtypedefault'    => '(predefinito)', 'sf_createform_formlabel'           => 'Nome da visualizzare form:', 'sf_createform_hidden'              => 'Nascosto', 'sf_createform_restricted'          => 'Riservato (solo utenti di tipo sysop possono modificarlo)', 'sf_createform_mandatory'           => 'Obbligatorio', 'sf_createform_removetemplate'      => 'Rimuovi template', 'sf_createform_addtemplate'         => 'Aggiungi template:', 'sf_createform_beforetemplate'      => 'Template precedente:', 'sf_createform_atend'               => 'Alla fine:', 'sf_createform_add'                 => 'Aggiungi', 'sf_createform_choosefield'         => 'Scegli campo da aggiungere', 'createcategory'                    => 'Crea una categoria', 'sf_createcategory_name' 			 => 'Nome categoria:', 'sf_createcategory_defaultform'     => 'Form predefinito:', 'sf_createcategory_makesubcategory' => 'Falla diventare una sottocategoria di una categoria già presente (opzionale):', 'createclass'                       => 'Crea una classe', 'sf_createclass_docu'               => 'Aggiungi tutte le informazioni qui per creare le proprietà, template, form e le categoria per una singola classe. Per ulteriori opzioni invece vai alla pagina $1.', 'sf_createclass_allowedvalues'      => 'Valori permessi', 'sf_createclass_listofvalues'       => 'Lista di valori', 'sf_createclass_leavefieldblank'    => 'Se il nome del campo è lo stesso del nome della proprietà. non puoi lasciarli vuoti.', 'sf_createclass_missingvalues'      => 'Campi richiesti non completamente riempiti.', 'sf_createclass_success'            => 'Proprietà, template, form e categorie verranno create.', 'addpage'                           => 'Aggiungi pagina usando un form', 'sf_addpage_badform'                => 'Errore: nessun form è stato trovato alla pagina $1', 'sf_addpage_docu'                   => 'Inserisci il nome della pagina qui, per esser modificata con il form \'$1\'. Se questa pagina esiste già, verrai indirizzato ad un form che ti permette di modificarla. Altrimenti, verrai indirizzato ad un nuovo form che ti permetterà di aggiungere la nuova pagina.', 'sf_addpage_noform_docu'            => 'Inserisci il nome della pagina qui, e selezione il form con cui la vuoi modificare. Se questa pagina esiste già, verrai indirizzato ad un form che ti permette di modificarla. Altrimenti, verrai indirizzato ad un nuovo form che ti permetterà di aggiungere la nuova pagina.', 'addoreditdata'                     => 'Aggiungi o modifica', 'adddata'                           => 'Aggiungi dati', 'sf_adddata_title'                  => 'Aggiungi $1: $2', 'sf_adddata_badurl'                 => 'Questa è la pagina per modificare i dati inseriti. Devi specificare per entrambi il nome del form e indirizzo della pagina nello spazio dell \'\ URL; dovrebbe risultare una cosa di questo tipo \'Special:AddData?form=&lt;form name&gt;&target=&lt;target page&gt;\', oppure \'Special:AddData/&lt;form name&gt;/&lt;target page&gt;\'.', 'sf_adddata_altforms'               => 'Invece puoi aggiungere una pagina con uno dei seguenti form già creati:', 'sf_adddata_altformsonly'           => 'Per favore seleziona una dei seguenti form per aggiungere questa pagina:', 'editdata'                          => 'Modifica dati', 'sf_formedit'                       => 'Modifica con un form', 'sf_formcreate'                     => 'Crea con un form', 'sf_viewform'                       => 'Visualizza form', 'sf_editsource'                     => 'Modifica sorgente', 'sf_editdata_title'                 => 'Modifica $1: $2', 'sf_editdata_badurl'                => 'Questa è la pagina per modificare i dati inseriti. Devi specificare per entrambi il nome del form e indirizzo della pagina nello spazio dell \'\ URL; dovrebbe risultare una cosa di questo tipo \'Special:EditData?form=&lt;form name&gt;&target=&lt;target page&gt;\', oppure \'Special:EditData/&lt;form name&gt;/&lt;target page&gt;\'.', 'sf_editdata_morethanoneform'       => "Attenzione: Più di un form predefinito è stato definito per questa pagina.", 'sf_editdata_formwarning'           => '\'\'\'Attenzione:\'\'\' Questa pagina <a href="$1">esiste già</a>, ma non usa questo form.', 'sf_editdata_remove'                => 'Rimuovi', 'sf_editdata_addanother'            => 'Aggiungi un\'\altro', 'sf_editdata_none'                  => 'Nessuno', 'runquery'                          => 'Esegui query', 'sf_runquery_badurl'                => 'Devi specificare il nome del form nell\'\ URL; l\'\ URL dovrebbe risultare una cosa di questo tipo \'Special:RunQuery/&lt;form name&gt;\'.', 'sf_runquery_title'                 => 'Esegui query: $1', 'sf_runquery_additionalquery'       => 'Query aggiuntive',

'sf_formerrors_header'              => 'Ci sono stati degli errori nel form di input; vedi qui sotto', 'sf_blank_error'                    => 'Non può esser vuoto', 'sf_bad_url_error'                  => 'Deve avere un formato dell\'\URL corretto, completo anche di \'http\'', 'sf_bad_email_error'                => 'Deve avere un formato per di indirizzo email valido', 'sf_bad_number_error'               => 'Dev\'\esser un numero valido', 'sf_bad_integer_error'              => 'Dev\'\esser un\'\intero valido', 'sf_bad_date_error'                 => 'Dev\'\esser una data valida', 'uploadwindow'                      => 'Finestra di upload',

// content messages 'sf_property_isproperty'            => 'Questa è una proprietà di tipo $1.', 'sf_property_linkstoform'           => 'Ti collegherà alle pagine che usano il form $1.', 'sf_property_allowedvals'           => 'NaN I valori permessi per questa proprietà sonos:', 'sf_template_docu'                  => 'Questo è il template \'$1\'. Dovrebbe esser chiamato con il seguente formato:', 'sf_template_docufooter'            => 'Modificare la pagine per vedere il testo del template.', 'sf_form_docu'                      => 'Questè è il form \'$1\'. Per aggiungere una pagina con questo form, inserire il nome della pagina qui sotto; se la pagina con il nome indicato è già esistente, verrai inviato al form di modifica della pagina.', 'sf_form_freetextlabel'         => 'Testo libero', 'sf_category_hasdefaultform'        => 'Questa categoria usa il form $1.', 'sf_category_desc'                  => 'Questa è la categoria $1.', 'sf_blank_namespace'                => 'Principale', );


 * This is great, thanks a lot. For future additions and changes to this, please use http://translatewiki.net, if possible. Yaron Koren 13:18, 12 August 2009 (UTC)

Dummies guide to Semantic Forms
Is there a "Dummies guide to Semantic Forms" anywhere, e.g. a simple step-by-step 'howto' guide?

I am not a dummy but I cannot afford the time to get my head around how to make this thing work.

All I want to do is make a fairly template to make pages.

I am finding it is far too difficult to work out how to make it 'just work'.

Thanks ... --Nonegiven108 06:56, 13 August 2009 (UTC)


 * Did you see this? If not, that might help. Yaron Koren 15:40, 13 August 2009 (UTC)

Improved Preview
I cooked up an improved preview functionality. It does not reload the whole page and - more importantly - the user is not pushed back to raw wikitext input (which is pretty much unacceptable round here :-) ) but keeps the form.

What do you have to do?
 * 1) Copy the javascript code to somewhere where it is executed, e.g. the MediaWiki:Common.js page of your wiki
 * 2) Include a   in your form, i.e. a preview button (doh)
 * 3) Include a    at the spot in your form where you want the preview to appear (Without this step you get the plain old preview, i.e. that is still available if you need it.)

Problems/Caveats:
 * relies on Javascript and Ajax
 * only tested with IE6, and not too deep either
 * obviously, semantic data that depends on the page being saved is not rendered correctly; but that's not different from the behaviour of the standard preview

You can find the source code at smw.referata.com/wiki/User:F.trott/ajaxFormPreview.js.

Thanks go to Alex Smotrov on Wikipedia for his  ajaxPreview.

--F.trott 10:28, 13 August 2009 (UTC)


 * UNBELIEVABLE!! It works! I set it up on the SMW Community Wiki, where you put the source code (anyone can try it out here); and it works in Firefox, too, which I assume means it's an all-purpose solution. I don't think the fact that it relies on Javascript and Ajax is a problem - forms already use Javascript quite a bit. This is really going to change a lot, I think. Thanks for coming up with this idea! Do you mind creating a "tip" for it on the wiki? If it's a problem, I can do that. Yaron Koren 15:23, 13 August 2009 (UTC)


 * Alas... I just looked at it again, and there's one problem: if you try out that form, the checkbox inputs always show up in the preview as if all of them are checked. Do you have any idea if that can be fixed? It seems like a rather minor detail to block this whole feature. Yaron Koren 04:09, 14 August 2009 (UTC)


 * Hmm, right now I just take any form element and send it on without any checks. I'll look into it next week. Another problem occurs if there is javascript in the previewed page (e.g. timelines, google maps, ...): It is just not executed. I don't have any idea right now how this can be handled. We might also have a css problem along these lines. As a fallback I think about sending some parameter (maybe named "preview") so the template would know that it is in preview mode and could deal with it (e.g. if the "preview" parameter is set just omit problematic stuff from the output). I could include that as a feature anyway. I'll write the tip (including some dire warnings :-) ) sometime next week, too. --F.trott 18:33, 14 August 2009 (UTC)


 * Alright. As far as the tip, it might not be necessary, since if those issues are resolved I'm thinking strongly of adding this Javascript directly into SF, and adding the corresponding HTML change into the SF documentation. Yaron Koren 18:59, 14 August 2009 (UTC)


 * Ok, the script checks now, if the element is a radiobutton or a checkbox and in these cases only sends the data if the box is checked. (Don't know, if that's the right thing to do, but it seemed to work, whereas sending "false" for unchecked boxes didn't, so...)


 * Javascript remains a problem. I had hoped to somehow trick an iframe into executing it. But I can't set the HTML text directly. Instead I could set a source URL. Alas I don't have one. Right now I don't see a solution to that one short of parsing the HTML and doing an eval on every piece of script. And I'm not sure that that would work.


 * The idea of sending a "Preview" parameter to each template does not work either. I had hoped, just adding the parameter to the POST data would trick the server-side script into adding it to the article text, but no luck there. I could use a pointer which PHP script needs to be adjusted and where. --F.trott 12:33, 18 August 2009 (UTC)

Inserting Images
Hi, I just wanted to know if there was a way of inserting images into the form. ie, i want to be able to either fill in a string field or have a drop down menu allow me to select which picture to put in. So that once the page is created, it will display the picture I chose.

I know the template generates semantic code, but is there a way for it to take wikicode and have it be interpreted correctly?

Thanks.

Felix (8/14/09)


 * See the uploading files section. Yaron Koren
 * Hi, thanks yaron, I mustve just missed that.
 * Update: Actually, this functionality just uploads files into the wiki. It does not actually display a picture on the new/edited page by using the form.

-Perhaps I wasn't clear with what I wanted. I want to be able to select an image with a form and have the page I create/edit display that image I selected. Is this possible?


 * I see - you should use "autocomplete on namespace=File" or "...=Image" in the field declaration, depending on what the namespace is called in your version of MediaWiki. Yaron Koren 21:32, 14 August 2009 (UTC)


 * Hmmm.. not sure I follow, wouldn't that be the same as me putting in the wikicode for a picture inside of a string field? I am not sure if that actually works. Thanks for the idea. Ill look into it. Felix 8/17/09


 * OK after tinkering with it, it does seem to "work" how you mentioned Yaron. However, if I put in say [[Image:ExPicture.png]] into a field, then the picture does show up, but the property name also is shown as such:

PropertyName:: any ideas on how I can prevent the semantic variable and brackets from showing on the page?

Thanks

Update: On the above mentioned problem, say you have a form that is set up such as:

You can insert a picture as such:

This will result with your Image Title displaying above the image. However, there will still be two "]]" closing brackets after your image.

If you try and do something like:

Adding two "[[" open brackets after your image code, will mess up the form and it will not display properly. This is as close as I have gotten to display the image on a form. Hopefully someone else can lend a hand, but for now this is the best I got.

Felix 8/18/09


 * Sorry, what? Why so many brackets? And why not make the image caption and image name be two separate template fields? Yaron Koren 18:11, 18 August 2009 (UTC)

New 'default' code - 'page' ?
Hi Yaron

I came across a potential feature today - I have to pre-set a text field in a form with the page name by default.

Since I was not able to pass to the  parameter (it shows as 'PAGENAME'), I thought a new default code would be useful in that situation, as in '|default=page'.

My example is in a glossary situation, where I want to assign the page name as a default value for properties such as 'Has preferred label'.

- Laurent