<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf:RDF[
	<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
	<!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
	<!ENTITY owl 'http://www.w3.org/2002/07/owl#'>
	<!ENTITY swivt 'http://semantic-mediawiki.org/swivt/1.0#'>
	<!ENTITY wiki 'http://wikibase.nl/Special:URIResolver/'>
	<!ENTITY category 'http://wikibase.nl/Special:URIResolver/Category-3A'>
	<!ENTITY property 'http://wikibase.nl/Special:URIResolver/Property-3A'>
	<!ENTITY wikiurl 'https://open-csp.org/'>
]>

<rdf:RDF
	xmlns:rdf="&rdf;"
	xmlns:rdfs="&rdfs;"
	xmlns:owl ="&owl;"
	xmlns:swivt="&swivt;"
	xmlns:wiki="&wiki;"
	xmlns:category="&category;"
	xmlns:property="&property;">

	<owl:Ontology rdf:about="https://open-csp.org/Special:ExportRDF/DevOps-3ADoc/FlexForm/2.1/input/file">
		<swivt:creationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2026-04-30T18:38:35+02:00</swivt:creationDate>
		<owl:imports rdf:resource="http://semantic-mediawiki.org/swivt/1.0"/>
	</owl:Ontology>
	<swivt:Subject rdf:about="http://wikibase.nl/Special:URIResolver/DevOps-3ADoc/FlexForm/2.1/input/file">
		<rdfs:label>input/file</rdfs:label>
		<rdfs:isDefinedBy rdf:resource="https://open-csp.org/Special:ExportRDF/DevOps-3ADoc/FlexForm/2.1/input/file"/>
		<swivt:page rdf:resource="https://open-csp.org/DevOps-3ADoc/FlexForm/2.1/input/file"/>
		<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">50000</swivt:wikiNamespace>
		<swivt:wikiPageContentLanguage rdf:datatype="http://www.w3.org/2001/XMLSchema#string">en</swivt:wikiPageContentLanguage>
		<property:Class rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc</property:Class>
		<property:Doc_parent rdf:resource="&wiki;DevOps-3ADoc/FlexForm/1.0/input"/>
		<property:Doc_sort_order rdf:datatype="http://www.w3.org/2001/XMLSchema#double">110</property:Doc_sort_order>
		<property:Doc_subject rdf:resource="&wiki;DevOps-3ADoc/FlexForm"/>
		<property:Doc_synopsis rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Using file uploads</property:Doc_synopsis>
		<property:Doc_target_group rdf:datatype="http://www.w3.org/2001/XMLSchema#string">User</property:Doc_target_group>
		<property:Doc_title_with_versions rdf:datatype="http://www.w3.org/2001/XMLSchema#string">input/file (2.1,2.5)</property:Doc_title_with_versions>
		<property:Subject_version rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2.1</property:Subject_version>
		<property:Subject_version rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2.5</property:Subject_version>
		<property:Title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">input/file</property:Title>
		<property:Has_query rdf:resource="&wiki;DevOps-3ADoc/FlexForm/2.1/input/file-23_QUERY6063d8dd43d4ed9dd27cdc3fb81d7598"/>
		<swivt:wikiPageCreationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2023-02-13T21:41:20Z</swivt:wikiPageCreationDate>
		<property:Creation_date-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2459989.4037037</property:Creation_date-23aux>
		<property:Display_title_of rdf:datatype="http://www.w3.org/2001/XMLSchema#string">input/file</property:Display_title_of>
		<swivt:wikiPageModificationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2026-03-27T08:59:21Z</swivt:wikiPageModificationDate>
		<property:Modification_date-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2461126.8745486</property:Modification_date-23aux>
		<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc/FlexForm/2.1/input/file</swivt:wikiPageSortKey>
		<property:Page_creator rdf:resource="&wiki;User-3ACharlot"/>
		<property:Page_author rdf:resource="&wiki;User-3AMaintenance_script"/>
		<property:Page_author rdf:resource="&wiki;User-3ACharlot"/>
		<property:Page_author rdf:resource="&wiki;User-3AEbc16062-2Ddd09-2D4928-2D8cf3-2D821f492b0c44"/>
		<property:Page_author rdf:resource="&wiki;User-3AFd4138e7-2D8b46-2D4c8f-2D99bf-2Dd4b738ebc295"/>
		<property:Page_author rdf:resource="&wiki;User-3A944f869b-2D8467-2D464e-2D95c7-2D903362952755"/>
		<property:Page_author rdf:resource="&wiki;User-3A3f181944-2D9694-2D4c7c-2D83d3-2Da6193204adb3"/>
		<property:Page_author rdf:resource="&wiki;User-3APagesync"/>
		<property:Page_ID rdf:datatype="http://www.w3.org/2001/XMLSchema#double">389</property:Page_ID>
		<property:External_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://wikibase-solutions.com/developer-logs/flexform-multiple-file-upload</property:External_links>
		<property:External_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/enctype</property:External_links>
		<property:External_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file</property:External_links>
		<property:External_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://pandoc.org/</property:External_links>
		<property:External_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/input/file</property:External_links>
		<property:External_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://www.open-csp.org/DevOps:Doc/FlexForm/1.0/Form_options</property:External_links>
		<property:External_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://pandoc.org/lua-filters.html</property:External_links>
		<property:Internal_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">DevOps:Doc/FlexForm/2.0/Installation of FlexForm</property:Internal_links>
		<property:Parsed_text rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Name 
 file
 
 Type 
 input
 
 Synopsis 
 Using file uploads
 
 Description 
 Use a form to upload one or multiple files.
 
 Parameters 
 input type="file"
  target * : Name of the File page to be created
  id * : This must always be unique, that is, it can only occur once on a page. Do not include a hyphen ("-"), underscore ("_"), or any special characters (also no spaces).
  action * : defaults to upload . Read more below on using this to convert docx documents to pages in the wiki.
  name * : As with any input field, a name is mandatory
  pagecontent : Text content to be added on the File Page. If you are using convertfrom then any images uploading during the convert will get the pagecontent.
  comment : Text to show in recent changes or contributions list 
  force : Force images to a certain format (png, jpg or gif). When using this option, any file uploaded that is not supported will be uploaded as is.
  error_id : Id of a DOM Element where error notices will be shown
  verbose_id : Id of a DOM element where information about the file is shown
  use_label : Doesn't require a value. When an input field has a label attached to it, then the label will become the upload button and the input field will be hidden
  dropzone : Doesn't require a value. Will turn the verbose div into an additional file drop zone. If you also use_label , then the label will become the dropzone.
  parsecontent : Will force FlexForm to insert values from other form fields inside the pagecontent field. Use square brackets, like [fieldname], where values should be inserted.
  template  : If you want to store a template call inside the content of the File page, you can template=&lt;name of your template&gt; in combination with parsecontent . [flexform-template] inside your content field will be replaced by {{&lt;name of your template and [/flexform-template] will be replaced by }} . See example 3 on the examples page.
  multiple = multiple
  * = a required variable
 The target is basically the name you want to use to store the file or files. It recognizes [mwrandom] , [filename] and other form fields, by using their name with square brackets around them (see example). pagecontent can also hold form variables.
 
  action="convertfrom:????" 
 Pandoc 
 The action argument defaults to upload . If you use action="convertfrom:????" and you have Pandoc installed on your system, FlexForm will convert a document and create it as a page in the Wiki. target will then be used as a Page Title. Depending on your version of Pandoc, the results might differ. convertfrom allows all Pandoc to MediaWiki text conversions. docx would be a good example : action="convertfrom:docx". Any images uploaded during the convert can have their content of their filepages be filled using pagecontent . Since version 2.2.9 you can also add an argument slot="&lt;name of slot&gt;" to have the converted Document be save to a specific slot on the target page, instead of the main slot. Keep in mind, MediaWiki slots need to be defined in your LocalSettings.
 Since version 2.7.0 you have two new arguments when using Pandoc conversion : pandoc_prefix and pandoc_suffix . As your converted (word) document will become a Wiki page, you might want to add some text before or after the converted content ( e.g. a template ). pandoc_prefix will add content at the top of the converted page and pandoc_suffix will add it to the end of the converted document.
  Since version 2.8.0 
 
 There is now also a convertto option. You now also need to define in local settings what convertfrom is allowed and what convertto is allowed. See DevOps:Doc/FlexForm/2.0/Installation of FlexForm. There two new options for Pandoc conversion : uploadoriginalas and additional-arguments. 
 uploadoriginalas  : added by using a pipe e.g. |uploadoriginalas: This will allow the original document to also be uploaded into the wiki, besides it also having a converted version. After the ":" you type the name for the to be uploaded file. You can use [filename] to have it uploaded by its original filename. You can also use [target], it will then upload it using the same name as the converted document. 
 additional-argumen t : Lets you use additional Pandoc argument when converting. See the Pandoc documentation. You also have to define what additional arguments are allowed in the local settings. [path] inside additional-argument will be replace with the Wiki installation path. 
 Local Settings example :   $wgFlexFormConfig['pandoc-convert-to'][] = 'mediawiki'; 
 $wgFlexFormConfig['pandoc-convert-to'][] = 'html'; 
 $wgFlexFormConfig['pandoc-convert-from'][] = 'docx'; 
 $wgFlexFormConfig['pandoc-convert-from'][] = 'ppt'; 
 $wgFlexFormConfig['pandoc-allow-additional-arguments'][] = 'lua-filter'; 
  
 FlexForm convert example (using Pandoc Lua filter ) :   &lt; input  type = "file"  id = "docxUpload"  name = "docx"  target = "File:[filename].docx"  pagecontent = ""  required = "required"  action = "convertfrom:docx|uploadoriginalas:[target]|convertto:mediawiki|additional-arguments:lua-filter=[path]fix-headings.lua"  /&gt; 
  
 
 
  Excel ( since version 2.2.9 ) 
 You can also use action="convertfrom:xls" or action="convertfrom:xlsx" . This allows for converting an Excel xls or xlsx file to JSON. Images are not supported. The argument slot is supported. This conversion is not done using Pandoc and thus will work without having Pandoc installed . (just make sure you run composer update after you update FlexForm).
 As off v2.4.0 the Excel convert action has two extra parameters that allow you to choose an Excel Sheet name, if the Excel document has multiple sheets. sheet_by_id and sheet_by_name . If you do not use them, it will work as sheet_by_id="0" (making it backwards compatible). If you use both arguments, then sheet_by_name will get the priority.
 An excel document like this :
 
 
 
 options 
 
 description 
 
 HitCounter 
 
 WSStats 
 
 More 
 
 
 $wgDisableCounters
 
 automatically show hitcounts on a page and Special page
 
 yes
 
 no
 
 WSStats allows for adding this to a page using parser function
 
 
 $wgHitcounterUpdateFreq
 
 frequency of counters update
 
 yes
 
 no
 
 WSStats uses MW DB abstraction layer to update hitcount. The approach is different
 
 
 skip_user_groups
 
 Skip certain user groups in counting
 
 no
 
 yes
 
 
 
 
 count_all_usergroups
 
 Count pages independend of a user group
 
 no
 
 yes
 
 
  
 Will result in the following JSON:
 
   [ 
    { 
      "options" :   "$wgDisableCounters" , 
      "description" :   "automatically show hitcounts on a page and Special page" , 
      "HitCounter" :   "yes" , 
      "WSStats" :   "no" , 
      "More" :   "WSStats allows for adding this to a page using parser function" 
    }, 
    { 
      "options" :   "$wgHitcounterUpdateFreq" , 
      "description" :   "frequency of counters update" , 
      "HitCounter" :   "yes" , 
      "WSStats" :   "no" , 
      "More" :   "WSStats uses MW DB abstraction layer to update hitcount. The approach is different" 
    }, 
    { 
      "options" :   "skip_user_groups" , 
      "description" :   "Skip certain user groups in counting" , 
      "HitCounter" :   "no" , 
      "WSStats" :   "yes" 
    }, 
    { 
      "options" :   "count_all_usergroups" , 
      "description" :   "Count pages independend of a user group" , 
      "HitCounter" :   "no" , 
      "WSStats" :   "yes" 
    } 
 ] 
 
 
 
 HTMLtoImage 
 You can also use the field input to upload an image created from part of the page shown where the form is rendered.
 Basically, you tell FlexForm you want to render a part of your screen as an image and upload it to the wiki.
 The syntax is the same as above, but it only needs : target, name and pagecontent. The other arguments are ignored. Additionally it needs an argument called presentor="canvas" and it needs the ID of the element you want to convert to an image: canvas_source_id .
  By default the image will always be a .jpg file. We plan to support png if this is requested. 
 For example you have a DIV element with id="content-to-convert". Within this DIV you have content you want to convert to an image an upload to the Wiki.
 A FlexForm to utilize this would look something like this :
 
   &lt; div  id = "content-to-convert"  style = "width:500px" &gt; 
  &lt; h1 &gt; Test Screenshot &lt;/ h1 &gt; 
  &lt; p &gt; Lots of other content here &lt;/ p &gt; 
 &lt;/ div &gt; 

 &lt; form &gt; 
  &lt; input  type = "file"  presentor = "canvas"  id = "canvasUpload"  target = "testCanvasFile.jpg"  pagecontent = "testing"  canvas_source_id = "content-to-convert"  /&gt; 
  &lt; input  type = "submit"  value = "upload"  /&gt; 
 &lt;/ form &gt; 
 
 You cannot use both file uploads in one form. 
 
 Note 
 An input type="file" always needs a unique ID! ( do not use "-", "_", any special characters ( also no spaces ) ).
 A form that needs to upload files needs this argument : enctype="multipart/form-data" . The argument needs to be added to the Form tag, not the input tag. See also : https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/enctype 
 As FlexForm first handles File Upload, it will add the files processed to use in an _edit or a _create.
Every file upload field needs a name attribute and once a file has been uploaded you can use them in an edit or create in the following format :
 
  FFUploadedFile-UploadName- &lt;name attribute of input field&gt;  : Will hold the original file name uploaded 
 FFUploadedFile-UploadBase- &lt;name attribute of input field&gt;  : Will hold the original file name uploaded without the extension 
 FFUploadedFile-NewName- &lt;name attribute of input field&gt;  : Will hold the name of the file as it is uploaded into the Wiki ( Without the File: prefix ) 
 If you use a multiple file upload, then the above values will all be , separated.
 
 Links 
 Tutorial 
 Link to a quick tutorial video shows you how to use one FlexForm form to :
 
 upload multiple files. Docs : input file documentation 
 add a template to the source of the file pages. Docs : input file documentation 
 have form input fields be added to the arguments for the template. Docs : input file documentation 
 show a success message after upload. Docs : form options 
 add a comment line to your upload visible in the Contributions list and recent changes. Docs : form options 
 use a dropzone to drag and drop files. Docs : input file documentation 
 align form fields using a MW table. Docs : MediaWiki tables 
 add current date using Magic Words. Docs : MediaWiki magic words  
 Other links 
 https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/enctype 
  https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file 
  https://pandoc.org/</property:Parsed_text>
	</swivt:Subject>
	<swivt:Subject rdf:about="http://wikibase.nl/Special:URIResolver/DevOps-3ADoc/FlexForm/2.1/input/file-23_QUERY6063d8dd43d4ed9dd27cdc3fb81d7598">
		<swivt:masterPage rdf:resource="&wiki;DevOps-3ADoc/FlexForm/2.1/input/file"/>
		<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">50000</swivt:wikiNamespace>
		<property:Query_depth rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0</property:Query_depth>
		<property:Query_format rdf:datatype="http://www.w3.org/2001/XMLSchema#string">plainlist</property:Query_format>
		<property:Query_size rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</property:Query_size>
		<property:Query_string rdf:datatype="http://www.w3.org/2001/XMLSchema#string">[[:DevOps:Doc/FlexForm/2.1/input/file]]</property:Query_string>
		<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc/FlexForm/2.1/input/file# QUERY6063d8dd43d4ed9dd27cdc3fb81d7598</swivt:wikiPageSortKey>
	</swivt:Subject>
	<swivt:Subject rdf:about="http://wikibase.nl/Special:URIResolver/DevOps-3ADoc/FlexForm/2.1/input/file/examples">
		<rdfs:label>examples</rdfs:label>
		<rdfs:isDefinedBy rdf:resource="https://open-csp.org/Special:ExportRDF/DevOps-3ADoc/FlexForm/2.1/input/file/examples"/>
		<swivt:page rdf:resource="https://open-csp.org/DevOps-3ADoc/FlexForm/2.1/input/file/examples"/>
		<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">50000</swivt:wikiNamespace>
		<swivt:wikiPageContentLanguage rdf:datatype="http://www.w3.org/2001/XMLSchema#string">en</swivt:wikiPageContentLanguage>
		<property:Doc_parent rdf:resource="&wiki;DevOps-3ADoc/FlexForm/2.1/input/file"/>
		<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc/FlexForm/2.1/input/file/examples</swivt:wikiPageSortKey>
	</swivt:Subject>
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_parent">
		<rdfs:label>Doc parent</rdfs:label>
		<rdfs:isDefinedBy rdf:resource="https://open-csp.org/Special:ExportRDF/Property-3ADoc_parent"/>
		<swivt:page rdf:resource="https://open-csp.org/Property-3ADoc_parent"/>
		<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">102</swivt:wikiNamespace>
		<swivt:wikiPageContentLanguage rdf:datatype="http://www.w3.org/2001/XMLSchema#string">en</swivt:wikiPageContentLanguage>
		<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc parent</swivt:wikiPageSortKey>
		<swivt:type rdf:resource="http://semantic-mediawiki.org/swivt/1.0#_wpg"/>
	</owl:ObjectProperty>
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#creationDate" />
	<owl:ObjectProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#page" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiNamespace" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageContentLanguage" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AClass" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_sort_order" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_subject" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_synopsis" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_target_group" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_title_with_versions" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ASubject_version" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ATitle" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AHas_query" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageCreationDate" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ACreation_date-23aux" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADisplay_title_of" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageModificationDate" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AModification_date-23aux" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageSortKey" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_creator" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_author" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_ID" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AExternal_links" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AInternal_links" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AParsed_text" />
	<owl:ObjectProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#masterPage" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_depth" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_format" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_size" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_string" />
	<owl:ObjectProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#type" />
	<!-- Created by Semantic MediaWiki, https://www.semantic-mediawiki.org/ -->
</rdf:RDF>