Jump to content

ICT:Cargo-Workflow: Difference between revisions

From Costa Sano MediaWiki
m Replaced content with "<includeonly> {{#cargo_declare: _table=Items, Title=String, Image=File }} '''Title:''' {{{Title}}} '''Image:''' [[File:{{{Image}}}|400px]] </includeonly>"
Tag: Replaced
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
= ICT:Cargo-Workflow – Final Working Configuration (Cargo + PageForms) =
This page documents the final, stable configuration for the postcard archive using Cargo and PageForms. 
It contains the complete working setup in one place, ready for successors.
== 1) LocalSettings.php configuration ==
<pre>
# Cargo extension
$wgCargoDBtype = "mysql";
$wgCargoDBserver = "10.10.10.2";
$wgCargoDBname = "cargodb";
$wgCargoDBuser = "cargouser";
$wgCargoDBpassword = "Mhv+mak!90";
$wgCargoDBprefix = "";
$wgCargo24HourTime = true;
wfLoadExtension( 'Cargo' );
# PageForms extension
wfLoadExtension( 'PageForms' );
$wgPageFormsUploadableFiles = true;
</pre>
'''Important:''' 
$wgPageFormsUploadableFiles = true; must appear ''after'' wfLoadExtension( 'PageForms' ).
----
== 2) Template:Item ==
This template defines the Cargo table and how each item page displays.
<pre>
&lt;includeonly&gt;
&lt;includeonly&gt;
{{#cargo_declare:
{{#cargo_declare:
Line 10: Line 44:
'''Image:''' [[File:{{{Image}}}|400px]]
'''Image:''' [[File:{{{Image}}}|400px]]
&lt;/includeonly&gt;
&lt;/includeonly&gt;
</pre>
Notes:
* Only the &lt;includeonly&gt; section is used by Cargo and PageForms. 
* The Image field must be declared as File.
----
== 3) Form:Item ==
This is the form used to create new items.
<pre>
{{{info|page name=Item_<unique number>}}}
{{{for template|Item}}}
;Title
:{{{field|Title}}}
;Image
:{{{field|Image|input type=upload|uploadable}}}
{{{end template}}}
{{{standard input|save}}}
{{{standard input|cancel}}}
</pre>
Key points:
* The info directive '''must be the first line''' (no blank lines above it). 
* input type=upload|uploadable enables the upload widget. 
* Page names are automatically generated: Item_0001, Item_0002, …
----
== 4) AddItem page ==
This page provides a simple button for club members to add new items.
<pre>
== Add a new item ==
Click the button below to add a new item.
{{#formlink:form=Item|link text=➕ Add a new item|link type=button}}
</pre>
Users never see Special:FormStart and never choose page names.
----
== 5) BrowseItems page ==
This page shows all items in a gallery.
<pre>
== Browse Items ==
{{#cargo_query:
  tables=Items
  |fields=Title,Image
  |format=gallery
  |image size=200
}}
</pre>
Notes:
* tables=Items must be on its own line. 
* All other parameters start with |. 
* Produces a clickable gallery of all postcards.
----
== 6) Final User Workflow ==
Club members now follow a simple workflow:
# Go to '''Add a new item'''
# Click the button 
# Fill in Title + upload an image 
# Save 
# The item appears automatically in '''Browse Items'''
No technical knowledge required.
----
== 7) System Status ==
The system now provides:
* A working Cargo table 
* A working PageForms form 
* Automatic page naming 
* Working file uploads 
* A clean Add Item button 
* A gallery-style Browse page 
* A stable foundation for future expansion 
----

Latest revision as of 11:36, 5 January 2026

ICT:Cargo-Workflow – Final Working Configuration (Cargo + PageForms)

This page documents the final, stable configuration for the postcard archive using Cargo and PageForms. It contains the complete working setup in one place, ready for successors.

1) LocalSettings.php configuration

# Cargo extension
$wgCargoDBtype = "mysql";
$wgCargoDBserver = "10.10.10.2";
$wgCargoDBname = "cargodb";
$wgCargoDBuser = "cargouser";
$wgCargoDBpassword = "Mhv+mak!90";
$wgCargoDBprefix = "";
$wgCargo24HourTime = true;

wfLoadExtension( 'Cargo' );

# PageForms extension
wfLoadExtension( 'PageForms' );
$wgPageFormsUploadableFiles = true;

Important: $wgPageFormsUploadableFiles = true; must appear after wfLoadExtension( 'PageForms' ).


2) Template:Item

This template defines the Cargo table and how each item page displays.

<includeonly>
{{#cargo_declare:
  _table=Items,
  Title=String,
  Image=File
}}

'''Title:''' {{{Title}}}

'''Image:''' [[File:{{{Image}}}|400px]]
</includeonly>

Notes:

  • Only the <includeonly> section is used by Cargo and PageForms.
  • The Image field must be declared as File.

3) Form:Item

This is the form used to create new items.

{{{info|page name=Item_<unique number>}}}
{{{for template|Item}}}

;Title
:{{{field|Title}}}

;Image
:{{{field|Image|input type=upload|uploadable}}}

{{{end template}}}

{{{standard input|save}}}
{{{standard input|cancel}}}

Key points:

  • The info directive must be the first line (no blank lines above it).
  • input type=upload|uploadable enables the upload widget.
  • Page names are automatically generated: Item_0001, Item_0002, …

4) AddItem page

This page provides a simple button for club members to add new items.

== Add a new item ==

Click the button below to add a new item.

{{#formlink:form=Item|link text=➕ Add a new item|link type=button}}

Users never see Special:FormStart and never choose page names.


5) BrowseItems page

This page shows all items in a gallery.

== Browse Items ==

{{#cargo_query:
  tables=Items
  |fields=Title,Image
  |format=gallery
  |image size=200
}}

Notes:

  • tables=Items must be on its own line.
  • All other parameters start with |.
  • Produces a clickable gallery of all postcards.

6) Final User Workflow

Club members now follow a simple workflow:

  1. Go to Add a new item
  2. Click the button
  3. Fill in Title + upload an image
  4. Save
  5. The item appears automatically in Browse Items

No technical knowledge required.


7) System Status

The system now provides:

  • A working Cargo table
  • A working PageForms form
  • Automatic page naming
  • Working file uploads
  • A clean Add Item button
  • A gallery-style Browse page
  • A stable foundation for future expansion