Wikisphere extensions: Difference between revisions

From Wikisphere
Jump to navigation Jump to search
No edit summary
No edit summary
Line 4: Line 4:
* easily set an empty title for pages, without having to resort in solutions [https://www.hostknox.com/knowledgebase/703/How-to-hide-page-titles-in-MediaWiki.html#hide-page-titles-with-magic-word-DISPLAYTITLE like the following]
* easily set an empty title for pages, without having to resort in solutions [https://www.hostknox.com/knowledgebase/703/How-to-hide-page-titles-in-MediaWiki.html#hide-page-titles-with-magic-word-DISPLAYTITLE like the following]
* easily assign display title, language, content model, and SEO metadata to each page and its sub-pages
* easily assign display title, language, content model, and SEO metadata to each page and its sub-pages
* assign one or more admin, editor or reader to a page and its sub-pages (this is generally referenced as "page ownership")
* assign one or more user as editor, moderator, admin, or reader to a page and its sub-pages (this is generally referenced as "page ownership")
*assign an editor to a page for a given period, e.g. until your team members are affiliated to your organization
*assign an user to a page for a given period, e.g. until your team members are affiliated to your organization
* ... (to be completed)
* ... (to be completed)


Line 145: Line 145:
*displays the list of personal pages on the left navigation panel
*displays the list of personal pages on the left navigation panel
*implements the parser function "wikisphere_userpages" to print the list of pages owned by the logged-in user
*implements the parser function "wikisphere_userpages" to print the list of pages owned by the logged-in user
*implements the special page PageOwnership in order to assign admins, editors or readers to specific pages and their subpages
*implements the special page PageOwnership in order to assign editors, moderators, admins or readers to specific pages and their sub-pages




Line 159: Line 159:


== Use-cases ==
== Use-cases ==
Users can edit only owned pages (real name and timestamp of account creation) and pages created through forms.
 
* A page with the user's real name and one with timestamp of account creation as titles, are automatically created and the user is assigned to them as "editor" (an editor can edit a page but cannot edit its properties, including its publishing state)
* Regular users cannot create new pages, except sub-pages of personal/owned pages, and pages created through forms
* All the pages without an owner are visible other users, and the published state of pages with an owner has to be set to true in order to let other users to access them





Revision as of 15:16, 5 December 2021

Through the following set of Wikisphere extensions you can:

  • enforce an "indirect moderation" on your wiki. You don't moderate pages (or even page's versions) one by one as in FlaggedRevs or Approved_Revs, instead, you assign a page and its sub-pages to an owner who can edit its draft state. The owner will be a moderator before the page is approved, and the page creator(s) when ready for publishing
  • easily set an empty title for pages, without having to resort in solutions like the following
  • easily assign display title, language, content model, and SEO metadata to each page and its sub-pages
  • assign one or more user as editor, moderator, admin, or reader to a page and its sub-pages (this is generally referenced as "page ownership")
  • assign an user to a page for a given period, e.g. until your team members are affiliated to your organization
  • ... (to be completed)


Modules

(each module is technically an autonomous extension)

name description required extensions
Wikisphere common Common methods required from the various Wikisphere extensions Semantic Mediawiki/PageForms
Wikisphere PageProperties Allows to easily edit display title, language and content model of a page. Provides support for SEO and published/draft state of pages Wikisphere common
Wikisphere PageOwnership Provides support for page ownership and attribution Wikisphere common
Wikisphere Subpages Provides the list of subpages on the navigation panel, a magic word to display subpages of a given page, and a special page to navigate through suppages none
Wikisphere FileInclusion A simple extension to display the content of authorized files within pages SyntaxHighlight (optionally)
Wikisphere PreloadContent (not yet developed) Automatically creates pages upon form submission based on the regular expressions


Configuration

variable possible values description
$wgWikisphereUploadDisableWarnings true/false disables "was-deleted", "duplicate" and "duplicate-archive" warnings on file upload (requires the patches in the file includes/upload/UploadBase.php)
$wgWikisphereUploadUnderCurrentPage true/false uploads images under the current page. E.g. A picture named "cover.png" will be uploaded in the path Book name/cover.png rather than without any path (as in standard WIKIs). It allows the use of generic name for pictures, which are by contrast characterized by their path. (requires the patches described here). This feature is currently used with a patched version of MsUpload and PageForms, input with "uploadable" parameter and $wgPageFormsSimpleUpload set to true, and it works also with the "one-step process" using page name formulas.
$wgWikisphereAllowEditRegularPages true/false if set to true or the Wikisphere PageOwnership extension is not installed, logged in users can edit/create whatever page on the wiki as long as they are not owned by somebody else.
$wgWikisphereAutoAssignNewRegularPages moderator, editor, none if different than "none" every newly created page is assigned to the logged-in user as moderator or editor. A moderator can access the Page Properties (therefore setting the page publishing state) while an editor cannot.
$wgWikisphereCreateOwnedPageRealName true/false if the extension Wikisphere PageOwnership is installed, automatically creates an owned page corresponding to the user's real name as soon as an user signs in
$wgWikisphereCreateOwnedPageTimestamp true/false if the extension Wikisphere PageOwnership is installed, automatically creates an owned page corresponding to the timestamp of the user's account creation as soon as an user signs in
$wgWikispherePostOnWikisphere true/false posts the semantic content on the global wikisphere.org database (front-end)
$wgWikisphereHandleDraftState none, new, all, owned requires the extension Wikisphere PageProperties. If set to "none" the pages don't need to be explicitly published through the page Properties (reachable from the dropdown of page actions, see picture ...) to be accessible to everybody. If set to "new" only new pages need to be explicitly published to be accessible to everybody. If set to "owned" only owned pages and sub-pages need to be published in order to be accessible to everybody or to be posted on the global wikisphere.org database (front-end)


Magic Words / Parser functions

name use case description extension
wikisphere_userpages {{#wikisphere_userpages: }} prints the list of pages owned by the logged-in user (to be used in forms, in order to create new pages under pages owned by the creator) Wikisphere PageOwnership
wikisphere_subpages {{#wikisphere_subpages: }} prints the list of subpages of a given page Wikisphere Subpages
noparse {{#noparse: <a href="">my link</a>}} can be used to print raw html within the page when $wgRawHtml is disabled Wikisphere common
hostname {{#hostname:}} prints the host name, currently used by Pdf thumbnail to open display the pdf file from the pdf viewer of the browser Wikisphere common


Features

Wikisphere Common

  • Displays the list of forms on the left navigation panel
  • outputs script global variables on page head
  • implements "userCan" on behalf of other Wikisphere extensions
  • displays "Powered by WikiSphere" icon
  • implements magic words "noparse" and "hostname"
  • implements basic functions required by other Wikisphere extensions
  • implements the hooks necessary to move the files uploaded using the "one-step process" of PageForms under the target page (if the configuration variable $wgWikisphereUploadUnderCurrentPage is set to true)


PageProperties

  • implements the special page PageProperties in order to assign properties like display_title, language, published state, meta (Html metadata), and more, to any page
  • displays the action "Properties" in the page's dropdown menu
  • prints HTML metadata in the head of the page
  • handles the link rendered in each page according to the saved display_title
  • retrieves and saves the page's semantic data on the global Wikisphere database (if the variable $wgWikispherePostOnWikisphere is enabled)


PageOwnership

  • creates default owned pages (real name and account creation timestamp)
  • displays the action "Ownership" in the page's dropdown menu
  • displays the list of personal pages on the left navigation panel
  • implements the parser function "wikisphere_userpages" to print the list of pages owned by the logged-in user
  • implements the special page PageOwnership in order to assign editors, moderators, admins or readers to specific pages and their sub-pages


Subpages

  • implements the parser function "wikisphere_subpages"
  • displays the list of subpages of the current page on the left navigation panel
  • implements the special page WikisphereSubpages in order to display and navigate through subpages of a given page


Preload content

Use-cases

  • A page with the user's real name and one with timestamp of account creation as titles, are automatically created and the user is assigned to them as "editor" (an editor can edit a page but cannot edit its properties, including its publishing state)
  • Regular users cannot create new pages, except sub-pages of personal/owned pages, and pages created through forms
  • All the pages without an owner are visible other users, and the published state of pages with an owner has to be set to true in order to let other users to access them


Installed extensions: Wikisphere common, Wikisphere PageProperties, Wikisphere PageOwenrship

Configuration
variable value
$wgWikisphereAllowEditRegularPages false
$wgWikisphereHandleDraftState owned
$wgWikisphereCreateOwnedPageRealName true
$wgWikisphereCreateOwnedPageTimestamp true