Extension talk:Page Forms/Archive January to March 2008

How to Use Username Variable

I'm using the magic words extensions, and it allows for {{CURRENTUSER}} to pull the current username's variable. However, I cannot seem to get this to work with SF. I don't think it's parsing the magic word. How would I work around this, or how could I do this correctly? Thanks!

To see the page Extension:Semantic Forms/Creating calendars using DPL Calendar. There's a example introducing how to do it.--Roc michael 07:01, 5 January 2008 (UTC)Reply
Thanks! Here is the field you need to have: {{{field|author|hidden|default={{subst:CURRENTUSER}} }}} -- where 'author' is the name of the field in the template. --76.202.177.198 19:55, 5 January 2008 (UTC)Reply

Enabling users to add data

You explain in "Enabling users to add data" that it is possible to do the creation of a new page in a (risky) "one-step" process. On our wiki the precise naming of the articles is important and therefore it would be great if the page title could automatically be generated from the input in the fields of the respective form. The Vinismo wiki works in such a way (using a different extension) and I like it very much. Is there a way to do this with semantic forms too? --84.75.53.64 08:59, 9 January 2008 (UTC)Reply

It sounds like what you want is a form that looks like exactly the current one, except that the page title isn't set by the user beforehand, but rather by the system afterwards (i.e., right after the user hits "Save" or "Preview"). That sounds like a good idea, and it would also help with cases where the title doesn't matter, and the best title might be just an arbitrary random number. There's no way to do that right now, but let me think about some way that that could be implemented. Incidentally, what would the logic for the title look like in your case? Would it just be something like "[field 1 value] [field 2 value]", or would you want something more complex than that? Yaron Koren 17:32, 10 January 2008 (UTC)Reply
Yes, it would be exactly as you said something like [field 1 value] [field 2 value] probably with [field 3 value] [field 4 value]. That would be so cool becaus it would enhance the workflow for users dramatically. They would not have to think about the correct pagename anymore, but just fill in the fields and hit the save button. This is by the way exactly the case with Vinismo, but it works with a different extension which seems to be rather a for real hackers and not such greenhorns like myself... It'd be really cool if you could take care of that and it would improve most of the sites which use this extension, e.g. Placeography. The user has to type the whole address twice: once for the page name and once into the form that follows. Thanks. --84.75.81.14 20:01, 10 January 2008 (UTC)Reply

Help: Error: No form page was found at MyFormName.

I just installed 0.9.1 today from 0.8.x. I am getting an error stating that the form is not found. This was working in the previous release. If I look at Category:MyCategory, it does have the [[Has default form::Form:MyFormName]]. There is a legit form located at [[Form:MyFormName]]. [[Property:Has default form]] is of type Page.

I cannot tell what I missed in the update.

Thank you in advance for any help. Jmtmeyer 18:41, 24 January 2008 (UTC)Reply

Solution: Fixed my own problem

After you edit a form, even one that has already been in production for while, you need to go to the category that has the Has default form tag and resave the category page. Everything lines up perfectly again.

I was going through and changing <table>...</table> to proper wiki tables.

The reason you need to do all these re-saves is because of an SMW bug (which can be fixed) - it's in the SF documentation now, under "Semantic Forms issues". Yaron Koren 23:25, 24 January 2008 (UTC)Reply
I got the above error when upgrading from SMW .7 although I was upgrading to SMW Version 1.0.1, the latest version. Perhaps this should be noted in the documentation. --Tosfos 01:50, 31 March 2008 (UTC)Reply
Got it again with SMW 1.1.1 --Tosfos 03:31, 12 June 2008 (UTC)Reply

Adding Namespaces

I would like to add some namespaces to our wiki after having installed "semantic wiki" and "semantic forms". Now I am not sure which ones I can use. In the "LocalSetting.php" I put $sfgNamespaceIndex = 150. Does that mean that I can continoue with the namespace 152 ? My best, --Gollum 12:23, 26 January 2008 (UTC)Reply

Yeah, you can use a lot of namespace numbers, but 152 should work fine. Yaron Koren 02:58, 28 January 2008 (UTC)Reply

strange Characters show up on german sematic wikis

Having installed semantic forms on a german wiki (http://wiki-products.org) there are some problems with displaying some of the page titles. E.g. in special pages it says: "<createcategory>" instead of "Erstelle eine Kategorie". Also the form page itself (in the second step) (http://de.wiki-products.org/Formular:Fahrzeuge) shows a strange title e.g. "<sf_adddata_title>" instead of "Füge Seite hinzu:Audi A4 TDI". Is there anything I cn do about this? Everything else seems to be working fine. Keep up the good work! My best, --Gollum 12:48, 26 January 2008 (UTC)Reply

Hi, congratulations on releasing your wiki. What you're seeing are some language values that weren't translated. It looks like you're using an old version of SF; if you upgrade to the latest version, those problems should go away. You should probably upgrade to the latest version of SMW while you're at it. Yaron Koren 16:27, 27 January 2008 (UTC)Reply
Perfect, that worked! Thank you very much!! --Gollum 08:17, 8 February 2008 (UTC)Reply

Upgraded from Sematic 1.0-RC3 to 1.0 and Edit with Form has disappeared

I had a completely working system running Mediawiki 1.11, PHP 5.2.5, MySQL 5.45a, Semantic wiki 1.0-RC3 and Sematic Forms 0.9.2. I upgraded Semantic wiki to 1.0 and followed the upgrade procedure carefully. Now the "Edit with Form" tab has disappeared from all my templated forms. I have the categories set correctly with [[Has default form::Form:<form name>]] Any help greatly appreciated.

Fixed Sematic wiki has an upgrade script SMW_refreshData.php. Naturally I ran this after installing sematic 1.0. However, I did not run it after I upgraded Forms to 0.9.2. I ran the script again and the "Edit with Form" tab appeared again.

Errors showing after Edit with Form save

I'm running Mediawiki 1.11, PHP 5.2.5, MySQL 5.45a, Semantic wiki 1.0 and Sematic Forms 0.9.2. After clicking "Save Page" on the Edit with Form page, the following 4 notices are shown at the top of the page:

Notice: Undefined offset: 0 in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 465
Notice: Undefined offset: 1 in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 465
Notice: Undefined offset: 0 in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 465
Notice: Undefined offset: 1 in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 465
That problem should be gone in version 0.9.3 (just released). Yaron Koren 00:04, 5 February 2008 (UTC)Reply

Fast work! Thanks Yoran :) However I'm now getting the following error:

Notice: Undefined index: free text in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.in on line 456

Of course, it's only on forms that have the default free text section at the bottom.

I'm also getting the following errors when adding data with my forms:

Notice: Undefined index: Title in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 456
Notice: Undefined index: Status in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 456
Notice: Undefined index: Owner in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 456
Notice: Undefined index: EM in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 456
Notice: Undefined index: Progress in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 456
Notice: Undefined index: PTS in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 456
Notice: Undefined index: Dependencies in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 456
Notice: Undefined index: Background, Description and Business Rationale in /var/www/mediawiki/extensions/SemanticForms/includes/SF_FormPrinter.inc on line 456

There is one error for each property within the form. All forms are throwing similar errors.

Yikes! Apparently I hadn't fixed things fully for sites with PHP in debug mode. I fixed it now, so if you re-get the latest version, it should work fine (let me know if it doesn't). Also, my name's Yaron. Yaron Koren 16:50, 5 February 2008 (UTC)Reply

Fantastic. That's fixed it Yaron. Great job. Sorry about getting your name wrong. I had some sort of vowel dyslexia going on there!

Cool, I'm glad it worked. Yaron Koren 18:39, 8 February 2008 (UTC)Reply

I really like the way this form creates drop-down menues with properties that allowa only a limited range of values. It worked perfect in one case (Form for cars), but did not work in the second case (Form for Handys). I really looked carefully for any differences in the way it set up the two, but could not find any. Are there probably some less obvious reasons for this? --Gollum 21:31, 8 February 2008 (UTC)Reply

Hi, which field(s) are supposed to have a dropdown? Also, it's generally better to use the mailing list for questions like this than this talk page. Yaron Koren 22:35, 8 February 2008 (UTC)Reply

It's the "nichtmehrproduziert" field. (Sorry for posting here, I will use the mailing list in the future...) My best, --Gollum 04:38, 9 February 2008 (UTC)Reply

Hi, you've discovered a bug in SF; the first line of your "Handys" template is just a little too complex for SF to parse correctly. It reads:
{{ #ifexist:{{{Abbildung}}}|[[{{{Abbildung}}}|thumb]]|[[Bild:Kein-Handy-Bild.png|thumb|Bild hochladen:<br> [[{{{Abbildung}}}]] ]] }}
If you change it to the following, it should work:
{{ #ifexist:{{{Abbildung}}}|[[{{{Abbildung}}}|thumb]]|[[Bild:Kein-Handy-Bild.png|thumb|Bild hochladen:<br> {{{Abbildung}}} ]] }}
Eventually, SF's parsing will need to be improved. Yaron Koren 14:51, 10 February 2008 (UTC)Reply
Hi Yaron, Thank you very much. This helped a lot. I fould a nice workaround for this issue and I think now everything works just fine. My best, --Gollum 19:55, 11 February 2008 (UTC)Reply

more flexibility with autocomplete ?

Hi Yaron,

thanks for the good work on SF!

Is it possible to use non-page-type values for auto completion? As far as I understand you either have to specify a namespace or a category and the auto completion is based on a search in the 'pages' table of the wikiDB. Is there an option to check against the set of 'so-far-used' values for a property (regardless of its type)? Is it possible to have a user template exit for the auto completion feature (something like 'autocomplete by template')? The template would receive the characters typed in so far and it would return the list of suggestions, maybe as a comma separated list of values?

Algorithmix 17:39, 22 February 2008 (UTC)Reply
Hi, thanks. The first question isn't a bad idea; there's no reason why string properties shouldn't be allowed to have autocompletion. You could have a parameter in the field definition called "autocomplete on property" or even just "autocomplete", to indicate that this field should have autocompletion even though it's not a page-type property. Or maybe that should even be the default... The second question I don't understand - are you talking about a template to let you format the results of an autocompletion, so that, for instance, you could have an image show up alongside every result? Yaron Koren 20:51, 22 February 2008 (UTC)Reply

Problem with "edit with form" when using "Allow for multiple (or zero) instances" check box for templates

I first want to compliment you on a great extension.

The problem that I have is when I try to edit a form with multiples of the same template. I have created a form that has a template called "distribution". When I created the form, I selected the zero or multiple checkbox for the template. When I go and create the form for the first time, I can add multiple "distribution" templates and edit the form just fine. However, when I go back and edit the form later to add another "distribution" template, it overwrites the first "distribution" template and the rest of the templates remain intact. Is this operator error, a problem with how I created the form, or is it how the "edit with form" saves the page? Has anyone seen this before.

I am using mediawiki 1.11.1 and SF 0.9.5 and Semantic Mediawiki 1.0.1

Hi, thank you. Sorry, I don't understand your question - you edited the form to have two multiple templates, both with the name "distribution"? If so, you shouldn't do that - it'll confuse the parser. Though maybe I just didn't understand. Yaron Koren 04:08, 24 February 2008 (UTC)Reply

Yaron, I think I may know what's going on here. When I use a for template construct such as ...

{{{for template|Tag|label=Add a tag|multiple}}}
'''tag:''' {{{field|1}}}
{{{end template}}}

the entry of multiple templates works OK the first time, however when I re-edit the form and add a few more templates the first templates get replaced with the added data when it should be adding it to the end of the collection of templates. It seems to be related to the num_elements global variable starting counting from 0 and [num] being replaced with the global value. The changes below fixes the addInstance function for this addition --Ian Homer 20:24, 26 February 2008 (UTC)Reply

function addInstance(starter_div_id, main_div_id, tab_index, last_instance_num)
{
  if (!last_instance_num) var last_instance_num=0;
  ....
  children[x].name = children[x].name.replace(/\[num\]/g, '[' + (num_elements + last_instance_num) + ']');

and with passing of the instance number in to the addInstance call:

<p><input type="button" onclick="addInstance('starter_$query_template_name', 'main_$query_template_name', 
  '$sfgFieldNum', '$instance_num');" value="$add_another" tabindex="$sfgTabIndex" class="addAnother" /></p>

It seems to work even when there are two "for template" loops (with different template names) in the form even though the num_elements variable is global.

Okay, now I know what the issue is. As noted today on the mailing list, this is a bug that I accidentally introduced a few weeks ago, in version 0.9.2. It'll be fixed in the next version, coming soon; there's actually an easier fix than this one. Yaron Koren 03:42, 27 February 2008 (UTC)Reply
This bug is a very serious problem for me - it has disrupted some mission-critical operations in my student government. Will a fix be available soon? Do you recommend the hack listed above until then?
I can't tell you how much we at SUNY New Paltz appreciate your amazing work. This extension is the best thing to happen to campus activism since the cell phone. Thank you very much. RadicalHarmony 03:20, 28 February 2008 (UTC)Reply
Wow, gosh, thanks. It's funny how I usually get compliments only in the midst of bug reports - you all are subconsciously encouraging me to keep introducing bugs. :) In any case, this problem should have been fixed in the latest version, 0.9.7, released earlier today. Try upgrading to that one and see if it works. Yaron Koren 04:28, 28 February 2008 (UTC)Reply
Heh, I imagine that it's simply an effort to avoid appearing ungrateful when bitching about free (and amazing) software. If you are interested in how your extension is helping to foster the revolution, please check out www.wikipaltz.com. We are using semantic forms for more and more of our functionality, and we now use it to track every single piece of legislation in our student senate. RadicalHarmony 00:27, 7 March 2008 (UTC)Reply
Cool, that's a very interesting usage. I'm glad I can help to foster some grassroots democracy, and I hope your revolution's a peaceful one. :) Yaron Koren 03:29, 7 March 2008 (UTC)Reply

Crash when adding data to a form

I've upgraded from 0.9.3 to 0.9.7 and now one of my forms has died. When I click the Add or edit button I get:

Fatal error: Call to a member function getNamespace() on a non-object in /var/www/mediawiki/includes/Article.php on line 160

In the httpd log I see:

[Fri Feb 29 14:37:24 2008] [error] [client 127.0.0.1] PHP Fatal error:  Call to a member function getNamespace() on a non-object in /var/www/mediawiki/includes/Article.php on line 160, referer: http://localhost/mediawiki/index.php/Special:AddPage/PREQ

I have a number of forms and only one of them is doing this.

Here's the the template and form:

Template

This is the 'PREQ' template. It should be called in the following format:

{{PREQ
|PREQ=
|Title=
|PPM=
|Status=
|Primary Tech Stream=
|EM=
|Dependent Tech Stream 1=
|Dependent Tech Stream 2=
|Start Date=
|Required By=
|Total Effort=
|OS Release=
|Comments=
}}

Edit the page to see the template text.
</noinclude><includeonly>
{| border="1" cellpadding="4" cellspacing="4" 
!width="25%"|PREQ
| [[PREQ::{{{PREQ|}}}]]
|-valign="top"
! Title
| [[Title::{{{Title|}}}]]
|-valign="top"
! PPM
| [[PPM::{{{PPM|}}}]]
|-valign="top"
! Status
| [[Status::{{{Status|}}}]]
|-valign="top"
! Primary Tech Stream
| [[PTS::{{{Primary Tech Stream|}}}]]
|-valign="top"
! EM
| [[EM::{{{EM|}}}]]
|-valign="top"
! Dependent Tech Stream 1
| [[PTS::{{{Dependent Tech Stream 1|}}}]]
|-valign="top"
! Dependent Tech Stream 2
| [[PTS::{{{Dependent Tech Stream 2|}}}]]
|-valign="top"
! Start Date
| {{{Start Date|}}}
|-valign="top"
! Required By
| [[Required Date::{{{Required By|}}}]]
|-valign="top"
! Total Effort
| [[Effort::{{{Total Effort|}}}]]
|-valign="top"
! OS Release
| [[OS Release::{{{OS Release|}}}]]
|-valign="top"
! Comments
| {{{Comments|}}}
|}

[[Category:PREQ]]

Form

This is the 'PREQ' 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.

{{#forminput:PREQ}}

</noinclude><includeonly>
{{{for template|PREQ|label=PREQ}}}
<table class="formtable">
   <tr><th>PREQ:</th> <td>{{{field|PREQ|mandatory}}}</td></tr>
   <tr><th>Title:</th> <td>{{{field|Title|mandatory|input type=textarea|rows=1|cols=50}}}</td></tr>
   <tr><th>PPM:</th> <td>{{{field|PPM|mandatory}}}</td></tr>
   <tr><th>Status:</th> <td>{{{field|Status|mandatory}}}</td></tr>
   <tr><th>Primary tech stream:</th> <td>{{{field|Primary Tech Stream|mandatory}}}</td></tr>
   <tr><th>EM:</th> <td>{{{field|EM|mandatory}}}</td></tr>
   <tr><th>Dependent tech stream 1:</th> <td>{{{field|Dependent Tech Stream 1}}}</td></tr>
   <tr><th>Dependent tech stream 2:</th> <td>{{{field|Dependent Tech Stream 2}}}</td></tr>
   <tr><th>Start date:</th> <td>{{{field|Start Date|input type=date}}}</td></tr>
   <tr><th>Required by:</th> <td>{{{field|Required By|input type=date|mandatory}}}</td></tr>
   <tr><th>Total effort:</th> <td>{{{field|Total Effort}}}</td></tr>
   <tr><th>OS release:</th> <td>{{{field|OS Release}}}</td></tr>
   <tr><th>Comments:</th> <td>{{{field|Comments|input type=textarea|rows=3|cols=50}}}</td></tr>
</table>
{{{end template}}}

   <fieldset><legend>Free text</legend>
   {{{field|free text}}}
   </fieldset>

<p>{{{standard input|summary}}}</p>
<p>{{{standard input|minor edit}}} {{{standard input|watch}}}</p>
<p>{{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}}</p>

Any help greatly appreciated!

Hi, can you try removing one field at a time from the form, and seeing at what point the form starts working again? My guess is that it's one field in the form, through some combination of what's in the form definition, what's in the template, and the semantic property it covers, that's causing this error. Please let me know what you find. Yaron Koren 16:44, 29 February 2008 (UTC)Reply

Thanks for replying. So far I have removed every field in the form except the first one and it still crashes. I guess it must be the template. I'll now edit that. Update- Hmm. Deleted all but the first field in the template. Then created a whole new form from that template and it still crashes. Totally baffled now. Going to try recreating the template from scratch. Okay. created both template and form from scratch and get the same error. Also, when I created the form I got the following errors:

[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm
[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm
[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm
[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm
[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm
[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm
[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm
[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm
[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm
[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm
[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm
[Mon Mar 03 09:40:44 2008] [error] [client 10.23.132.14] PHP Notice:  Undefined variable: text in C:\\www\\webapps\\mediawiki\\extensions\\SemanticForms\\includes\\SF_FormClasses.inc on line 452, referer: http://l063193/mediawiki/index.php/Special:CreateForm

Okay. The main problem is caused by a clash with the glossary extension http://www.mediawiki.org/wiki/Extension:Glossary PREQ was a term in the glossary. I deleted the glossary term. Not giving up Semantic Forms! :)

Hi, good detective work there. Okay, so you figured out the problem. One easy solution is to just rename the template and field named "PREQ" to anything else - users never see either name, so it won't affect the display. Then you can restore that glossary term. Also, that set of "PHP Notice" errors you saw is not related to this problem, but thanks for including it - I'll fix it in the code. Yaron Koren 14:15, 3 March 2008 (UTC)Reply

Populating input type=listbox

So I've got a listbox and it corresponds to property that has a finite list of allowed values. How do I get the listbox to be populated with those values? —Sledged (talk) 19:34, 29 February 2008 (UTC)Reply

That should happen automatically... feel free to send me the form and template source, if it's not a public wiki. Yaron Koren 20:44, 29 February 2008 (UTC)Reply
Thanks. Fortunately, I was able to figure out the problem, but now I have another question. My finite list of values are links. Example:
* [[Allows value:=[[Namespace:Page|Page]]]]
This shows up in the listbox as wiki syntax ([[Namespace:Page|Page]]). Is there any way to have to have the displayed text different from the underlying value? —Sledged (talk) 20:58, 29 February 2008 (UTC)Reply
Yeah, you should have the tag instead be [[Allows value:=Namespace:Page|Page]]. Yaron Koren 21:41, 29 February 2008 (UTC)Reply
That gives me Namespace:Page displayed in the list box and the same thing for the wikitext in the created/edited page. What I want the listbox to display is Page, and produce the wiki-markup [[Namespace:Page|Page]] in the created/edited page.
I've also tried [[Allows value:=Page|[[Namespace:Page|Page]]]] and [[Allows value:=[[Namespace:Page|Page]]|Page]], neither of which gives me the results for which I'm looking. —Sledged (talk) 21:59, 29 February 2008 (UTC)Reply
Oh, I see. I think you're confusing properties and templates; I think what you want is [[Allows value:=Page]] in the property page, and [[Some property:=Namespace:{{{field name}}}|{{{field name}}}]] in the template. Yaron Koren 22:20, 29 February 2008 (UTC)Reply
Not quite. That would assume that the local name of the page to which I'm linking is the same as the text I want displayed, which is not the case for all of the values. My mistake for using such an example.
Right now, no matter what I do, the value attribute is the same as the text nested in the option tag, like so:
<option value="[[Namespace:Page|Article]]">[[Namespace:Page|Article]]</option>
<option value="Foo:Bar">Foo:Bar</option>
<option value="Hello World!">Hello World!</option>
I want the nested option tag text to be different than the text in the value attribute, so I want the underlying HTML to be produced as
<option value="[[Namespace:Page|Article]]">Article</option>
or
<option value="[[Namespace:Article|Follow Me!]]">Page</option>
or even (if I were so inclined)
<option value="Foo">[[Bar:Hello|World!]]</option>
The page name, the dislayed link text, and the displayed option text are not guaranteed to be related in any form or fashion. —Sledged (talk) 23:51, 29 February 2008 (UTC)Reply

Ah, okay, sorry for the misunderstanding. Well, unfortunately, there's no way to have the display value for an option be different from its value; such a thing might eventually be implemented, using something like the format you tried initially, but for right now I think it's impossible, alas. Yaron Koren 00:24, 1 March 2008 (UTC)Reply

subst:

So {{{for template|Some Template}}} inserts a template into a page:

{{Some Template}}

How do I get the form to preform substitution?

{{subst:Some Template}}

Sledged (talk) 17:44, 1 March 2008 (UTC)Reply

In general, the mailing list is better for these kinds of questions. But my question is, why would you want to use "subst:"? It means you can no longer edit that template through the form. Yaron Koren 14:46, 2 March 2008 (UTC)Reply
Mostly due to the headers in templates problem, and I don't necessarily want to place "__NOEDITSECTION__" in every page. Ideally, you'd always use the form to edit a page, but realistically, there's always exceptions. I'll direct semi-related comments and questions to the mailing list. Thanks. —Sledged (talk) 20:59, 2 March 2008 (UTC)Reply

using 'multiple'

Hi, Compliments and thanks for this great extension.

I have a problem in inserting a 'multiple' set of fields in my form. Here is the code I insert in the categoryExperiment:form page

<noinclude>
{{#forminput:categoryExperiment}}
</noinclude><includeonly>
{{{for template|FormCategoryMore|multiple}}}
'''Category''' : {{{field|CategoryMore}}}
{{{end template}}}
</includeonly>

Here is the code in the template:FormCategoryMore page

<noinclude>
This is the 'formCategory' template. It should be called in the following format:
{{formCategory
|Category=
}}

Edit the page to see the template text.
</noinclude><includeonly>[[Category::{{{CategoryMore}}}| ]] [[Category:{{{CategoryMore}}}]]</includeonly>
  • when I go to the page presenting the form I get the 'add another' button and clicking it I can insert my values.
  • when I click on save everything looks fine.
  • But in the final generated page there is nothing; The extension hasn't generated a single template call.

I have: MediaWiki: 1.11.0, Semantic Forms (version 0.9.7) and Semantic MediaWiki (version 1.0.1)

Please help me, I tried many things, but none seemed to work. All the other forms work properly and only the multiple thing doesn't

How could I solve this?

thank you,

--DonGiulio 23:52, 6 March 2008 (UTC)Reply

Hi, thanks. I just tested this out, and it worked for me. Are you sure that no template calls are being added to the page? Please check the source code and let me know. Yaron Koren 03:26, 7 March 2008 (UTC)Reply
Hi, thanks for getting back, I tried to generate a page using the form, I inserted three categories, and pressed save.
the resulting page doesn't even get created, and I get the message:
There is currently no text in this page, you can search for this page title in other pages or edit this page.
when I use the 'multiple' in other forms the pages do get created, containing all the templates except from all the ones from multiple blocks.
I think it's also strange that I can see the 'minor edit', 'whatch this page', 'summary' and the other buttons even if I didn't include them in the form. You can see the form at this link.
http://www.wikijava.org/index.php?title=Form:CategoryExperiment the login and password to access are Yaron Yaron (first capital). Thank you, --DonGiulio 11:21, 8 March 2008 (UTC)Reply
Hi, I can't log in now with that account... feel free to email me with further details. Yaron Koren 16:18, 9 March 2008 (UTC)Reply
Hi, thank you for your interest, the issue appears to be solved. (Magically?) I'll give you the details as soon the site will be public. thank you again, --DonGiulio 22:54, 9 March 2008 (UTC)Reply
Great, I wish every bug were so easy to fix. :) Yaron Koren 17:30, 10 March 2008 (UTC)Reply

I'm getting some weird errors

I'm getting this on my special pages page:

<adddata>
<addpage>
<createcategory>
<createform>
<createproperty>
<createtemplate>
<editdata>
<forms>
<templates>

Only, the left and right angle braces are the html equivalent, like &lt and &gt

Also, when I try to create a form or do anything associated with this extension, I get the same thing, such as:

<sf_addpage_noform_docu>

or "<addoreditdata>" as the button name. I don't know why it's doing this, but I can't get it to work. The last issue is that when I do try to create the form, I get a red error message, no matter what I do.

Something like <sf_formerrors_header>

I would like to get this sorted out, because this extension looks awesome.

Thanks in advance.

Hi, I'm guessing that this is a language issue. What language do you have set in your user preferences? Yaron Koren 02:11, 19 March 2008 (UTC)Reply
I'm using English. I've set that as the default in my Localsettings.php file, and I double checked and it's set in my preferences as English. Here's an actual screenshot.  

--Craig

Hm. Nice screenshot. Out of curiosity, what do you have in your file /languages/SF_Messages.php for the value for 'adddata' (should be around line 77)? Yaron Koren 04:03, 20 March 2008 (UTC)Reply
Here's what I have, it all looks like it should work to me. And this is in the array being passed to the messages[en] variable right around lines 76-77
	'addoreditdata'                      => 'Add or edit',
	'adddata'                            => 'Add data',
	'sf_adddata_title'                   => 'Add $1: $2',

--Craig

Two things: what version of MediaWiki are you using? And are you fairly sure that all of your files in the SF directory are the current versions? Yaron Koren 04:49, 20 March 2008 (UTC)Reply

I'm currently running 1.10.1 and all the files in my sf folder are as of the 18th of March 2008. --Craig

Don't know. Do you have SMW installed? If so, what version? Yaron Koren 21:54, 25 March 2008 (UTC)Reply

I installed it the same day, 18th of March, it's version 1.0.1 Xman 22:26, 25 March 2008 (UTC)Reply

I have no clue, then. If you want, you can post this problem to the mailing list; someone else might have seen this problem before. Yaron Koren 01:58, 26 March 2008 (UTC)Reply
Hi, if you're still reading this, I figured out what the problem was; it should be fixed in the latest version, which is 1.0.3. Yaron Koren 16:33, 15 April 2008 (UTC)Reply
I kind of moved to the latest version on another server, and it worked there, so I didn't check back. I'm curious though, was it the parser? Craig 22:42, 30 April 2008 (UTC)

How to use info tag 'page name' attribute?

Hi together,

I have upgraded the semantic forms extension in order to use the new very useful feature "info|page name" because of avoiding different (eventually ambiguous) page names. I just edited the form as follows:

<noinclude>
Please, specify the page name:
<br>
<br>
{{#forminput:Meeting}}
</noinclude>

<includeonly>

{{{info|add title=Create a new meeting|edit title=Edit a meeting|page name=Meeting with <Tpl_Meeting[Person]> at <Tpl_Meeting[MyDate]> (<unique number>)}}}

{{{for template|Tpl Meeting}}}
<table>  
   <tr><td>Person:</td> <td>{{{field|Person}}}</td></tr>
   <tr><td>Date:</td> <td>{{{field|MyDate|default=now}}}</td></tr>
   <tr><td>Topics:</td> <td>{{{field|Topics}}}</td></tr>
</table>
{{{end template}}}

Free text: <br>
{{{field|free text}}}

<p>{{{standard input|summary}}}</p>
<p>{{{standard input|minor edit}}} {{{standard input|watch}}}</p>
<p>{{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}}</p>
</includeonly>

You can see, there is an info tag within includeonly tag before fillig template (for template ...).

{{{info|add title=Create a new meeting|edit title=Edit a meeting|page name=Meeting with <Tpl_Meeting[Person]> at <Tpl_Meeting[MyDate]> (<unique number>)}}}

That means, the page title should look like that: "Meeting with Ramin at 2008-03-25 (1)". On the top the form placeholder is inserted (within noinclude tags).

The creation of a new page looks like follows:

1. Click at the link http://localhost/mediawiki/index.php?title=Form:Meeting (somewhere in the sidebar)

2. An input field appears. The user has to define the page name, for example "our meeting" (Currently, I understand why this form still appears because there is the form tag above, but I cannot remove it because in this case there would be only a blank page and I don't know how the user could load the form page without specifying the page title before. However, I think this page name defined by the user will be replaced through the values of the automatically generated key that I defined with "page name" attribute).

3. Now the form appears.

4. The user will put some values into the form. (here I can see that the info tag works correctly, because the text "Create a new meeting:..." is displayed).

5. The user sends the values. Now there is a new page "our meeting" and NOT "Meeting with Ramin at 2008-03-25 (1)"

What should I do so that the page name will be created by semantic forms with the specified formula (see 'page name' attribute)?

Thx --Wikifan 12:07, 25 March 2008 (UTC)Reply

Hi, instead of sending users to that URL, you should send them to http://localhost/mediawiki/index.php?title=Special:AddData/Meeting . I'll add something to the documentation to make this clearer. Yaron Koren 13:42, 25 March 2008 (UTC)Reply
Hi, thx for your comment. It works! But there is a problem with the title because the date value is not a part of the page title. The page title looks like "Meeting with Ramin at (1)". Probably it is ignored due to date format YYYY/MM/DD. There is also a javascript error in the function validate_madatory_field (object missing or something like NullPointerException), but I don't think It is the cause of my date problem:
function validate_mandatory_field(field_id, info_id) {
	field = document.getElementById(field_id);
	if (field.value.replace(/\s+/, '') == '') {   //NullPointerException
		infobox = document.getElementById(info_id);
		infobox.innerHTML = "Darf nicht leer sein!";
		return false;
	} else {
		return true;
	}
}

Any idea? Many thanks. --Wikifan 17:18, 25 March 2008 (UTC)Reply

You might have found a bug in SF. If you can, please try changing line 642 or so of /includes/SF_FormPrinter.inc from
             $generated_page_name = str_ireplace("<$true_input_name>", $cur_value, $generated_page_name);

to

             $generated_page_name = str_ireplace("<$true_input_name>", $cur_value_in_template, $generated_page_name);

...and let me know if that has any effect. Yaron Koren 21:57, 25 March 2008 (UTC)Reply

Hi, there are two issues I could recognize:

1. Javascript-Error (independent from the second issue):

I have a field with multiple (two) values rendered as a radiobuttongroup (sorry, my mediawiki is configured as german version, the value "Erlaubt Wert" = "Allows Value"):

Attribute configuration:

* [[Erlaubt Wert:=yes]]
* [[Erlaubt Wert:=no]]

Configuration within the form:

{{{field|Fieldname|mandatory|input type=radiobutton}}}

I suppose, there is an incompatibility with the key word (mandatory) and input type = radiobutton.

The SF extensions tries to check the value of the input field 9 ('input_9')

function validate_all() {
//....
if (! validate_mandatory_field('input_9', 'info_9')) num_errors += 1;
//....
}

... but there isn't control with the id 'input_9', because the radiobuttongroup is rendered as follows (without id, the 'yes'-value is already checked):

<span class="mandatoryFieldsSpan">
<input type="radio" tabindex="39" name="Templatename[Fieldname]" value="yes" checked="checked" /> ja
<input type="radio" tabindex="39" name="Templatename[Fieldname]" value="no" /> nein
</span>

In order to avoid this javascript error following hack has been inserted:

function validate_mandatory_field(field_id, info_id) {	
	field = document.getElementById(field_id);
	if( field == null ) return true;  //<======== HACK
	if (field.value.replace(/\s+/, '') == '') {
		infobox = document.getElementById(info_id);
		infobox.innerHTML = "$blank_error_str";
		return false;
	} else {
		return true;
	}	
}

2. The second-issue refers the date field.

The date field html representation looks like:

<select tabindex="4" id="input_4_month" name="Templatename[Fieldname][month]" >
	<option value="01">Januar</option>
	<option value="02">Februar</option>
	<option value="03" selected="selected">März</option>
	<option value="04">April</option>
	<option value="05">Mai</option>
	<option value="06">Juni</option>
	<option value="07">Juli</option>
	<option value="08">August</option>
	<option value="09">September</option>
	<option value="10">Oktober</option>
	<option value="11">November</option>
	<option value="12">Dezember</option>
	</select>
<input tabindex="4" id="input_4_day" name="Templatename[Fieldname][day]" type="text" value="26" size="2" />
<input tabindex="4" id="input_4_year" name="Template[Fieldname][year]" type="text" value="2008" size="4" />

I already tried to change the 'page name' attribute in order to reference a "part" of the date value, i.e.:

<Templatename[Fieldname][year]> 

but it didn't work. Your patch hasn't any effects, too.

What method does build the page name? I could debug it.

The version of my Semantic Wiki (perhaps necessary for further work):

  • MediaWiki: 1.11.0
  • Semantic MediaWiki (version 1.0-RC1)
  • Semantic Forms (version 1.0.1)

Thx --Wikifan 09:41, 26 March 2008 (UTC)Reply

Hi - yeah, to your first issue, there's no point making a radiobutton mandatory; but thanks for the fix. For the second, if you could debug it yourself, that would be ideal. That line I told you to change before is really where everything happens. Yaron Koren 12:52, 26 March 2008 (UTC)Reply
Hi, it seems as if there would be many problems with the date field after upgrading from 0.7.2 to 1.0.1. When I load an existing page (that has been created with the same form), the date field value is set on now-value (today).

My field definition is:

{{{field|meeting_date|input type=date|default=now}}}

--Wikifan 13:24, 26 March 2008 (UTC)Reply

Right, that's a separate issue. Yaron Koren 17:48, 26 March 2008 (UTC)Reply
Hi, I couldn't solve the issue about ignoring date for page name creating, but I could solve the issue regarding 'date reset' when loading data into the form.

Change the row

old:

              if ($input_type == 'date' || $input_type == 'datetime' ||
                  $input_type == 'datetime with timezone' ||
                  ($input_type == '' && $form_field->template_field->field_type == 'Date')) {

to:

              if ($cur_value == '' && ($input_type == 'date' || $input_type == 'datetime' ||
                  $input_type == 'datetime with timezone' ||
                  ($input_type == '' && $form_field->template_field->field_type == 'Date'))) {

Currently I don't know if this change could have negative affects. --Wikifan 16:50, 30 March 2008 (UTC)Reply

Thanks, I was hoping there'd be simple fix like that. That looks good, and I'll add it to the next version. Yaron Koren 02:25, 31 March 2008 (UTC)Reply

Trouble Preloading Freetext

I've got a "free text" field but when I use the preload option I don't see the preloaded text; any ideas?

Here is my syntax:

{{{field|free text|rows=30|preload=Template:preloadtest}}}

And Template:preloadtest just has some random characters

Hi, this works for me, so I don't know what the problem is. You're missing a bracket at the beginning, could that be it? Also, what version of SF are you using? Yaron Koren 03:56, 31 March 2008 (UTC)Reply
Thanks for the response, I got it to work; there was a syntax error above this code causing the problem.
Return to "Page Forms/Archive January to March 2008" page.