Website

Sidor och formulär

MarknadsplatsInnehåll och dokumentVersion 0.2.0manifest

Vad den är till för ​

Hold the content of a public website: pages, menus, blog posts and the form submissions visitors send. This app stores and organises content; something else renders it. Publishing needs approval.

Vad paketet gör och inte gör ​

Content for a public website: pages with a slug and a draft, published, archived flow, navigation menu items, blog posts with a byline and a publish date, translations of both, and the form submissions visitors send in. When the instance runs with the public site enabled it serves the published content to visitors as a server-rendered website with SEO and no login; only the fields marked public are ever visible to them. Publishing makes content public and needs a human approval, agents may only propose it. Senders are personal data and are never public.

Modeller ​

website_page ​

A page of the website

Läsgrupp: website.user. Skrivgrupp: website.user.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
titletextnonenejwebsite.useri klartextPage title
slugtextnonenejwebsite.useri klartextURL path of the page without slashes at the ends, lowercase with dashes, for example about-us. The page with slug home is the front page
bodylongtextnonenejwebsite.useri klartextPage content in Markdown (a safe subset: headings, lists, links, emphasis, code, quotes, tables)
seo_titletextnonenejwebsite.useri klartextTitle shown in search results; empty means the page title
seo_descriptiontextnonenejwebsite.useri klartextDescription shown in search results
published_ondatenonenejwebsite.useri klartextDay the page went public (YYYY-MM-DD)
stateselect (draft, published, archived)nonenejwebsite.useri klartextPage status: draft, published, archived

website_menu_item ​

An entry of the site navigation

Läsgrupp: website.user. Skrivgrupp: website.manager.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
labeltextnonenejwebsite.useri klartextText shown in the menu
urltextnonenejwebsite.useri klartextWhere the entry leads: a page slug starting with a slash or a full address
parent_idref → website_menu_itemnonenejwebsite.useri klartextThe entry this one is nested under; empty for a top-level entry
sequencenumbernonenejwebsite.useri klartextOrder among its siblings, lowest first
visibleboolnonenejwebsite.useri klartextWhether the entry is shown
new_windowboolnonenejwebsite.useri klartextWhether the link opens in a new window

website_blog_post ​

A blog post

Läsgrupp: website.user. Skrivgrupp: website.user.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
titletextnonenejwebsite.useri klartextPost title
slugtextnonenejwebsite.useri klartextURL part of the post, lowercase with dashes
author_nametextpublic_directoryjawebsite.usermaskeradName of the author, for the team's own records
bylinetextnonenejwebsite.useri klartextAuthor line shown publicly, for example the team or brand name; use a name here only if the person agreed to it
summarytextnonenejwebsite.useri klartextTeaser shown in listings
bodylongtextnonenejwebsite.useri klartextPost content in Markdown (a safe subset: headings, lists, links, emphasis, code, quotes, tables)
tagstextnonenejwebsite.useri klartextComma-separated tags, for example news,product
published_ondatenonenejwebsite.useri klartextDay the post is dated (YYYY-MM-DD)
stateselect (draft, published, archived)nonenejwebsite.useri klartextPost status: draft, published, archived

website_form_submission ​

A message a visitor sent through a form on the site

Läsgrupp: website.user. Skrivgrupp: website.user.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
form_nametextnonenejwebsite.useri klartextWhich form it came from, for example contact
sender_nametextinternaljawebsite.usermaskeradName the visitor gave
sender_emailtextinternaljawebsite.usermaskeradEmail address the visitor gave
sender_phonetextinternaljawebsite.usermaskeradPhone number the visitor gave
messagelongtextinternaljawebsite.usermaskeradWhat the visitor wrote
source_pagetextnonenejwebsite.useri klartextSlug of the page the form was on
submitted_ondatenonenejwebsite.useri klartextDay of the submission (YYYY-MM-DD)
consent_givenboolnonenejwebsite.useri klartextWhether the visitor ticked the consent box for being contacted
stateselect (new, handled, spam)nonenejwebsite.useri klartextHandling status: new, handled, spam

website_page_translation ​

A page translated into another language; the public site shows it to visitors who read that language

Läsgrupp: website.user. Skrivgrupp: website.user.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
page_idref → website_pagenonenejwebsite.useri klartextThe page this translates
langselect (en, de, fr, pl, fi, sv, es)nonenejwebsite.useri klartextLanguage of the translation: en, de, fr, pl, fi, sv or es
titletextnonenejwebsite.useri klartextTranslated page title
bodylongtextnonenejwebsite.useri klartextTranslated page content in Markdown
seo_titletextnonenejwebsite.useri klartextTranslated title shown in search results
seo_descriptiontextnonenejwebsite.useri klartextTranslated description shown in search results
publishedboolnonenejwebsite.useri klartextWhether the translation is shown; it is only reachable while its page is published

website_blog_post_translation ​

A blog post translated into another language

Läsgrupp: website.user. Skrivgrupp: website.user.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
post_idref → website_blog_postnonenejwebsite.useri klartextThe post this translates
langselect (en, de, fr, pl, fi, sv, es)nonenejwebsite.useri klartextLanguage of the translation: en, de, fr, pl, fi, sv or es
titletextnonenejwebsite.useri klartextTranslated post title
summarytextnonenejwebsite.useri klartextTranslated teaser
bodylongtextnonenejwebsite.useri klartextTranslated post content in Markdown
publishedboolnonenejwebsite.useri klartextWhether the translation is shown; it is only reachable while its post is published

Arbetsflöden ​

website_page ​

ÅtgärdFlyttarVem får köra denGodkännande
website_page.publishstate: draft → publishedwebsite.managerja
website_page.unpublishstate: published → draftwebsite.managernej
website_page.archivestate: published → archivedwebsite.managernej

website_blog_post ​

ÅtgärdFlyttarVem får köra denGodkännande
website_blog_post.publishstate: draft → publishedwebsite.managerja
website_blog_post.unpublishstate: published → draftwebsite.managernej
website_blog_post.archivestate: published → archivedwebsite.managernej

website_form_submission ​

ÅtgärdFlyttarVem får köra denGodkännande
website_form_submission.handlestate: new → handledwebsite.usernej
website_form_submission.mark_spamstate: new → spamwebsite.usernej

Behörighetsgrupper ​

Grupper som den här appen använder:

  • website.manager
  • website.user

Steg som kräver godkännande ​

Steg som en agent bara kan föreslå:

  • website_page.publish
  • website_blog_post.publish

Vad agenter kan och inte kan göra ​

En agent kan läsa, söka, skapa och uppdatera poster i den här appen, och köra de åtgärder som inte kräver godkännande, inom behörighetsgrupperna för sin token.

Den kan bara föreslå de här stegen, och en person måste godkänna dem: website_page.publish, website_blog_post.publish, website_page.delete, website_menu_item.delete, website_blog_post.delete, website_form_submission.delete, website_page_translation.delete, website_blog_post_translation.delete.

Personuppgifter maskeras som platshållare: website_blog_post.author_name, website_form_submission.sender_name, website_form_submission.sender_email, website_form_submission.sender_phone, website_form_submission.message.

Beroenden ​

Inga.

Installera ​

Installera den från appen Customize (Marknadsplats), eller från kommandoraden:

bash
obop modules install-from website

Kräver en databas och administratörsbehörighet.

Bygg din egen ​

Modulguiden visar hur appar som den här skrivs