domma-cms 0.92.1 → 0.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +5 -3
- package/admin/css/admin.css +1 -1
- package/admin/js/app.js +2 -2
- package/admin/js/lib/action-editor-arrange.js +1 -1
- package/admin/js/lib/api-tokens-arrange.js +2 -2
- package/admin/js/lib/block-editor-arrange.js +1 -1
- package/admin/js/lib/blocks-arrange.js +1 -1
- package/admin/js/lib/collection-entries-arrange.js +1 -1
- package/admin/js/lib/components-arrange.js +1 -1
- package/admin/js/lib/dashboard-arrange.js +1 -1
- package/admin/js/lib/dates.js +1 -0
- package/admin/js/lib/forms-arrange.js +1 -1
- package/admin/js/lib/media-arrange.js +1 -1
- package/admin/js/lib/notifications-arrange.js +1 -1
- package/admin/js/lib/pages-arrange.js +1 -1
- package/admin/js/lib/related.js +1 -1
- package/admin/js/lib/timeline-builder.js +2 -2
- package/admin/js/templates/action-editor.html +6 -5
- package/admin/js/templates/actions-list.html +1 -1
- package/admin/js/templates/contacts.html +1 -1
- package/admin/js/templates/docs/api-actions.html +86 -60
- package/admin/js/templates/docs/api-authentication.html +159 -123
- package/admin/js/templates/docs/api-builder.html +197 -0
- package/admin/js/templates/docs/api-collections.html +199 -259
- package/admin/js/templates/docs/api-external.html +225 -0
- package/admin/js/templates/docs/api-forms.html +268 -0
- package/admin/js/templates/docs/api-layouts.html +70 -45
- package/admin/js/templates/docs/api-media.html +57 -80
- package/admin/js/templates/docs/api-navigation.html +66 -22
- package/admin/js/templates/docs/api-pages.html +109 -129
- package/admin/js/templates/docs/api-plugins.html +123 -61
- package/admin/js/templates/docs/api-scaffold.html +185 -0
- package/admin/js/templates/docs/api-settings.html +72 -64
- package/admin/js/templates/docs/api-users.html +74 -107
- package/admin/js/templates/docs/api-views.html +68 -54
- package/admin/js/templates/docs/components-howto.html +20 -17
- package/admin/js/templates/docs/components-reference.html +13 -16
- package/admin/js/templates/docs/components-rules.html +7 -6
- package/admin/js/templates/docs/components-walkthrough.html +19 -19
- package/admin/js/templates/docs/tutorial-crud.html +71 -40
- package/admin/js/templates/docs/tutorial-forms.html +51 -35
- package/admin/js/templates/docs/tutorial-plugin.html +132 -56
- package/admin/js/templates/docs/usage-actions.html +61 -15
- package/admin/js/templates/docs/usage-collections.html +108 -0
- package/admin/js/templates/docs/usage-cta-shortcode.html +14 -3
- package/admin/js/templates/docs/usage-dconfig.html +0 -3
- package/admin/js/templates/docs/usage-editions.html +213 -0
- package/admin/js/templates/docs/usage-media.html +22 -6
- package/admin/js/templates/docs/usage-navigation.html +74 -18
- package/admin/js/templates/docs/usage-pages.html +60 -20
- package/admin/js/templates/docs/usage-plugins.html +89 -17
- package/admin/js/templates/docs/usage-shortcodes.html +123 -70
- package/admin/js/templates/docs/usage-site-settings.html +50 -18
- package/admin/js/templates/docs/usage-tools.html +73 -0
- package/admin/js/templates/docs/usage-users-roles.html +99 -20
- package/admin/js/templates/docs/usage-views.html +36 -19
- package/admin/js/templates/documentation.html +153 -32
- package/admin/js/templates/page-editor.html +0 -5
- package/admin/js/templates/plugin-guide.html +15 -0
- package/admin/js/templates/plugin-guides.html +21 -0
- package/admin/js/templates/pro-docs.html +53 -234
- package/admin/js/templates/tutorials.html +5 -4
- package/admin/js/views/actions-list.js +3 -3
- package/admin/js/views/analytics.js +5 -5
- package/admin/js/views/api-endpoint-editor.js +2 -2
- package/admin/js/views/block-editor.js +4 -4
- package/admin/js/views/blocks.js +4 -4
- package/admin/js/views/collection-editor.js +4 -4
- package/admin/js/views/collection-entries.js +7 -7
- package/admin/js/views/component-editor.js +2 -2
- package/admin/js/views/contacts.js +22 -20
- package/admin/js/views/context-menu-editor.js +5 -5
- package/admin/js/views/doc-pages.js +1 -1
- package/admin/js/views/form-editor.js +4 -4
- package/admin/js/views/form-submissions.js +2 -2
- package/admin/js/views/index.js +1 -1
- package/admin/js/views/media.js +3 -3
- package/admin/js/views/menu-editor.js +13 -13
- package/admin/js/views/menu-locations.js +2 -2
- package/admin/js/views/my-profile.js +1 -1
- package/admin/js/views/page-editor.js +8 -8
- package/admin/js/views/plugin-guides.js +5 -0
- package/admin/js/views/project-detail.js +2 -2
- package/admin/js/views/project-settings.js +1 -1
- package/admin/js/views/role-editor.js +4 -4
- package/admin/js/views/search.js +2 -2
- package/admin/js/views/seo.js +17 -17
- package/admin/js/views/settings.js +3 -3
- package/admin/js/views/theme.js +3 -3
- package/admin/js/views/user-editor.js +1 -1
- package/admin/js/views/users.js +2 -2
- package/admin/js/views/view-editor.js +1 -1
- package/bin/cli.js +13 -13
- package/bin/lib/node-version.js +29 -0
- package/package.json +1 -1
- package/plugins/_lib/admin/mail/compose-window.js +3 -2
- package/plugins/_lib/admin/mail/reader-view.js +7 -6
- package/plugins/_lib/admin/mail/scheduling.js +4 -2
- package/plugins/_lib/admin/mail/templates.js +4 -4
- package/plugins/_lib/admin/ui/dates.js +85 -0
- package/plugins/blog/CLAUDE.md +31 -22
- package/plugins/blog/admin/views/blog.js +3 -2
- package/plugins/blog/admin/views/comments.js +2 -1
- package/plugins/blog/admin/views/post-editor.js +4 -4
- package/plugins/blog/blocks/blog-card-row.html +1 -1
- package/plugins/blog/blocks/blog-card.html +2 -2
- package/plugins/blog/blocks/blog-post-classic.html +2 -2
- package/plugins/blog/blocks/blog-post-essay.html +2 -2
- package/plugins/blog/blocks/blog-post-feature.html +2 -2
- package/plugins/blog/blocks/blog-post-minimal.html +2 -2
- package/plugins/blog/blocks/blog-post-sidebar.html +2 -2
- package/plugins/blog/blocks/blog-post-split.html +2 -2
- package/plugins/blog/docs/guide.md +205 -0
- package/plugins/blog/lib/layouts.js +3 -3
- package/plugins/blog/lib/page.js +2 -1
- package/plugins/blog/plugin.js +3 -3
- package/plugins/blog/plugin.json +4 -4
- package/plugins/blog/tests/layouts.test.js +6 -0
- package/plugins/feedback/CLAUDE.md +22 -3
- package/plugins/feedback/admin/lib/kit.js +6 -7
- package/plugins/feedback/admin/views/feedback.js +79 -10
- package/plugins/feedback/admin/views/send.js +28 -6
- package/plugins/feedback/docs/guide.md +95 -0
- package/plugins/feedback/lib/receiver.js +9 -2
- package/plugins/feedback/lib/sender.js +3 -2
- package/plugins/feedback/plugin.js +54 -6
- package/plugins/feedback/plugin.json +4 -4
- package/plugins/feedback/tests/api.test.js +74 -2
- package/plugins/free-tier.lock.json +49 -44
- package/plugins/mail-reader/CLAUDE.md +33 -18
- package/plugins/mail-reader/docs/guide.md +147 -0
- package/plugins/mail-reader/plugin.json +1 -1
- package/plugins/security/CLAUDE.md +4 -1
- package/plugins/security/admin/views/security.js +5 -5
- package/plugins/security/docs/guide.md +170 -0
- package/plugins/security/plugin.js +2 -1
- package/plugins/security/plugin.json +2 -1
- package/plugins/shopping-cart/CLAUDE.md +7 -1
- package/plugins/shopping-cart/admin/lib/kit.js +5 -2
- package/plugins/shopping-cart/admin/views/orders.js +4 -4
- package/plugins/shopping-cart/admin/views/overview.js +2 -2
- package/plugins/shopping-cart/docs/guide.md +191 -0
- package/plugins/shopping-cart/lib/render.js +2 -1
- package/plugins/shopping-cart/plugin.json +3 -3
- package/public/js/collection-browser.js +2 -2
- package/public/js/site.js +1 -1
- package/scripts/gen-instance-secret.js +3 -1
- package/scripts/setup.js +3 -1
- package/server/middleware/auth.js +2 -1
- package/server/routes/api/actions.js +47 -27
- package/server/routes/api/blocks.js +2 -1
- package/server/routes/api/collections.js +16 -52
- package/server/routes/api/contacts.js +66 -3
- package/server/routes/api/documentation.js +42 -0
- package/server/routes/api/notifications.js +3 -2
- package/server/routes/api/users.js +10 -6
- package/server/server.js +16 -1
- package/server/services/actions.js +110 -34
- package/server/services/adapterRegistry.js +169 -16
- package/server/services/adapters/FileAdapter.js +25 -0
- package/server/services/adapters/MongoAdapter.js +23 -0
- package/server/services/collections.js +104 -1
- package/server/services/connectionManager.js +12 -0
- package/server/services/dates.js +81 -0
- package/server/services/docs.js +13 -2
- package/server/services/markdown.js +75 -26
- package/server/services/notification-sources.js +6 -5
- package/server/services/passwordReset.js +2 -1
- package/server/services/permissionRegistry.js +3 -2
- package/server/services/pluginGuides.js +255 -0
- package/server/services/pluginInstaller.js +54 -13
- package/server/services/plugins.js +29 -1
- package/server/services/presetCollections.js +31 -5
- package/server/services/renderer.js +2 -2
- package/server/services/sidebarBadges.js +3 -1
- package/server/services/tools.js +4 -2
- package/server/templates/page.html +2 -2
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
<div class="view-header">
|
|
2
|
+
<h1><span data-icon="book"></span> Editions & Licences</h1>
|
|
3
|
+
<a href="#/documentation" class="btn btn-ghost btn-sm"><span data-icon="arrow-left"></span> All usage topics</a>
|
|
4
|
+
</div>
|
|
5
|
+
|
|
6
|
+
<div class="row">
|
|
7
|
+
<div class="col-12">
|
|
8
|
+
<div class="docs-body">
|
|
9
|
+
|
|
10
|
+
<p>What you get free with Domma CMS, what is paid, what "Pro" means, and how plugin licences work.
|
|
11
|
+
Prices: TBC.</p>
|
|
12
|
+
|
|
13
|
+
<h3>In short</h3>
|
|
14
|
+
<ul>
|
|
15
|
+
<li>The CMS itself is free. Every core feature works without a licence.</li>
|
|
16
|
+
<li>Some plugins are free and ship with the CMS. Others are paid and need a licence.</li>
|
|
17
|
+
<li>A "Pro" plugin adds to, or replaces, a free Tool or plugin. If its licence lapses, the free one comes back.</li>
|
|
18
|
+
<li>A licence is either a <strong>rental</strong> (a site the Domma Manager runs for you) or
|
|
19
|
+
<strong>perpetual</strong> (bought outright).</li>
|
|
20
|
+
<li>A rental stops when its term and grace period end. A perpetual licence never stops; only support and
|
|
21
|
+
updates end.</li>
|
|
22
|
+
<li>A few features need MongoDB. One plugin, MongoDB Adapter, is only for sites run by the Domma Manager.</li>
|
|
23
|
+
</ul>
|
|
24
|
+
|
|
25
|
+
<h3>What the free CMS includes</h3>
|
|
26
|
+
<p>Everything in the core CMS is free:</p>
|
|
27
|
+
<ul>
|
|
28
|
+
<li><strong>Content</strong> - pages with a visual editor, version history, drafts and share links,
|
|
29
|
+
shortcodes, blocks, components and a media library.</li>
|
|
30
|
+
<li><strong>Design</strong> - built-in themes, menus, right-click menus and a visitor theme switcher.</li>
|
|
31
|
+
<li><strong>Data</strong> - collections on file storage, saved views, a form builder, and public collection
|
|
32
|
+
displays.</li>
|
|
33
|
+
<li><strong>API</strong> - the <code>/api/v1</code> collection API, API tokens and API Builder endpoints.</li>
|
|
34
|
+
<li><strong>Admin</strong> - dashboard, notifications, in-admin docs, projects, roles and permissions.</li>
|
|
35
|
+
<li><strong>Built-in Tools</strong> - Notes, Todo, Analytics, Contacts and SEO. Each can be switched off in
|
|
36
|
+
the <a href="#/plugins">Marketplace</a> under "Built-in Tools".</li>
|
|
37
|
+
<li><strong>Marketplace</strong> - installing, updating and switching plugins.</li>
|
|
38
|
+
</ul>
|
|
39
|
+
|
|
40
|
+
<h3>Core features that need MongoDB</h3>
|
|
41
|
+
<p>These are marked "Pro" in the CMS. They are not licensed. They switch on when the site has a MongoDB
|
|
42
|
+
connection in <code>config/connections.json</code>:</p>
|
|
43
|
+
<ul>
|
|
44
|
+
<li><strong>MongoDB storage</strong> - keep any collection in MongoDB instead of files. Set it per collection
|
|
45
|
+
on the collection's Storage tab.</li>
|
|
46
|
+
<li><strong>Actions</strong> - workflows that run steps against a collection entry. Without MongoDB the
|
|
47
|
+
Actions screen says they need MongoDB.</li>
|
|
48
|
+
</ul>
|
|
49
|
+
<p>Add a connection under <strong>Data > Collections > Database connections</strong> (admins only), or
|
|
50
|
+
with <code>npm run pro enable</code>. On a site run by the Domma Manager, the MongoDB Adapter plugin sets the
|
|
51
|
+
connection up for you (see below).</p>
|
|
52
|
+
<p>The optional Redis cache driver is also described as a Pro feature. It needs Redis, not a licence.</p>
|
|
53
|
+
|
|
54
|
+
<h3>Free plugins</h3>
|
|
55
|
+
<p>These are marked <code>free</code> in their manifests and ship in the CMS <code>plugins/</code> folder.
|
|
56
|
+
Switch them on in the Marketplace.</p>
|
|
57
|
+
<ul>
|
|
58
|
+
<li><strong>Blog</strong> - posts, categories and comments.</li>
|
|
59
|
+
<li><strong>Feedback</strong> - tell Domma what is broken, missing or good, from your admin.</li>
|
|
60
|
+
<li><strong>Mail Reader</strong> - a read-only IMAP mailbox reader.</li>
|
|
61
|
+
<li><strong>Security</strong> - a health check, sign-in lockout, password rules and a sign-in log.</li>
|
|
62
|
+
<li><strong>Shopping Cart</strong> - products, a storefront, a cart and checkout.</li>
|
|
63
|
+
</ul>
|
|
64
|
+
|
|
65
|
+
<h3>Paid plugins</h3>
|
|
66
|
+
<p>Every other plugin in the Marketplace is paid. A paid plugin is marked closed source. It needs a valid
|
|
67
|
+
licence on the site, or it does not start. Paid plugins cannot be viewed or exported from the Marketplace.</p>
|
|
68
|
+
<p>A plugin you write yourself is never asked for a licence.</p>
|
|
69
|
+
|
|
70
|
+
<h3>What "Pro" means</h3>
|
|
71
|
+
<p>A Pro plugin builds on a free Tool or plugin. It does this in one of two ways:</p>
|
|
72
|
+
<ul>
|
|
73
|
+
<li><strong>It replaces it</strong> (<code>supersedes</code> in its manifest). The free one stops loading
|
|
74
|
+
while the Pro one runs, so you see one screen, not two. For a built-in Tool, the Pro plugin hides the
|
|
75
|
+
Tool's sidebar entry and takes over its screen. The Tool's data and API stay in place.</li>
|
|
76
|
+
<li><strong>It adds to it</strong> (<code>requires</code> in its manifest). Both run. If the free one is
|
|
77
|
+
switched off, the Pro one does not start.</li>
|
|
78
|
+
</ul>
|
|
79
|
+
<table class="table table-sm">
|
|
80
|
+
<thead>
|
|
81
|
+
<tr>
|
|
82
|
+
<th>Pro plugin</th>
|
|
83
|
+
<th>Relationship</th>
|
|
84
|
+
</tr>
|
|
85
|
+
</thead>
|
|
86
|
+
<tbody>
|
|
87
|
+
<tr><td>Blog Pro</td><td>Replaces Blog</td></tr>
|
|
88
|
+
<tr><td>Contacts Pro</td><td>Requires and replaces the built-in Contacts Tool</td></tr>
|
|
89
|
+
<tr><td>Email (email-pro)</td><td>Replaces Mail Reader</td></tr>
|
|
90
|
+
<tr><td>Security Pro</td><td>Replaces Security</td></tr>
|
|
91
|
+
<tr><td>SEO Pro</td><td>Requires the built-in SEO Tool</td></tr>
|
|
92
|
+
<tr><td>Shopping Cart Pro</td><td>Requires Shopping Cart</td></tr>
|
|
93
|
+
<tr><td>Analytics Pro</td><td>Separate from the built-in Analytics Tool; neither replaces the other</td></tr>
|
|
94
|
+
<tr><td>Social Media Pro</td><td>No free edition</td></tr>
|
|
95
|
+
<tr><td>Waypoint Pro</td><td>No free edition</td></tr>
|
|
96
|
+
</tbody>
|
|
97
|
+
</table>
|
|
98
|
+
|
|
99
|
+
<h3>When a Pro licence lapses</h3>
|
|
100
|
+
<p>The replacement is worked out each time the site starts. Nothing is written to your settings. So when a
|
|
101
|
+
Pro plugin stops running because its licence has lapsed:</p>
|
|
102
|
+
<ul>
|
|
103
|
+
<li>the free plugin it replaced loads again on the next start, and</li>
|
|
104
|
+
<li>a built-in Tool it took over comes back.</li>
|
|
105
|
+
</ul>
|
|
106
|
+
<p>You are never left with less than a site that never bought the Pro plugin.</p>
|
|
107
|
+
|
|
108
|
+
<h3>Where the licence lives</h3>
|
|
109
|
+
<p>A licence is a signed file called an entitlement. The CMS looks for it in two places, in this order:</p>
|
|
110
|
+
<ol>
|
|
111
|
+
<li><code>plugins/<plugin>/.entitlement.json</code> - one plugin, one licence. A
|
|
112
|
+
<code>.dcmsplugin</code> file carries it in.</li>
|
|
113
|
+
<li><code>config/entitlements/*.json</code> - site-wide licences.</li>
|
|
114
|
+
</ol>
|
|
115
|
+
<p>The file must be signed by the Domma Marketplace key. A missing, edited or wrongly signed file counts as
|
|
116
|
+
unlicensed, and the plugin does not start.</p>
|
|
117
|
+
<p>The licence is checked each time the site starts. A plugin that is refused is not switched off in your
|
|
118
|
+
settings, so renewing brings it straight back on the next start.</p>
|
|
119
|
+
|
|
120
|
+
<h3>Rental licences</h3>
|
|
121
|
+
<p>For a site run for you by the Domma Manager. The plugin is rented monthly alongside the hosting.</p>
|
|
122
|
+
<ul>
|
|
123
|
+
<li>The plugin banner shows <strong>Expires</strong> and the date.</li>
|
|
124
|
+
<li>After the end date there is a grace period. The plugin keeps running and the banner shows
|
|
125
|
+
<strong>Expired (date) (grace)</strong>. The Marketplace marks it <strong>Renew</strong>. The grace period
|
|
126
|
+
is set on the licence; the Manager issues 7 days unless told otherwise.</li>
|
|
127
|
+
<li>After the grace period the plugin does not start. The Marketplace marks it <strong>Expired</strong>. Its
|
|
128
|
+
data is kept.</li>
|
|
129
|
+
<li>A notice appears 14 days before the end date, during the grace period, and once it has stopped.</li>
|
|
130
|
+
</ul>
|
|
131
|
+
|
|
132
|
+
<h3>Perpetual licences</h3>
|
|
133
|
+
<p>For a site the Domma Manager does not run. You buy the plugin once, with a period of support.</p>
|
|
134
|
+
<ul>
|
|
135
|
+
<li>The plugin banner shows <strong>Support to</strong> and the date.</li>
|
|
136
|
+
<li>When support ends, the banner shows <strong>Support ended</strong>. The plugin keeps running for good.</li>
|
|
137
|
+
<li>What ends is support and updates. Renewing support extends it.</li>
|
|
138
|
+
<li>A notice tells you when support and updates have ended.</li>
|
|
139
|
+
</ul>
|
|
140
|
+
|
|
141
|
+
<h3>Managed-only plugins</h3>
|
|
142
|
+
<p><strong>MongoDB Adapter</strong> is only offered for sites run by the Domma Manager. The Manager creates a
|
|
143
|
+
database and a user for the site, and writes the site's connection file. On a site the Manager does not run,
|
|
144
|
+
the plugin would have nothing to do.</p>
|
|
145
|
+
<p>When the Manager removes it, the site's connection file and database user are removed. The database itself
|
|
146
|
+
is kept.</p>
|
|
147
|
+
|
|
148
|
+
<h3>Plugins that need MongoDB</h3>
|
|
149
|
+
<ul>
|
|
150
|
+
<li><strong>MongoDB Adapter</strong> - provides MongoDB to a managed site.</li>
|
|
151
|
+
<li><strong>Email (email-pro)</strong> - search, threads, rules, scheduled sends, snooze and vacation replies
|
|
152
|
+
need MongoDB. Without it, reading, filing and sending still work.</li>
|
|
153
|
+
<li><strong>Data Transfer</strong> - needs MongoDB only to move collections to or from MongoDB. Backups,
|
|
154
|
+
restores and clones work on file storage.</li>
|
|
155
|
+
<li><strong>Surveys</strong> - uses MongoDB when there is a connection, and falls back to file storage when
|
|
156
|
+
there is not.</li>
|
|
157
|
+
</ul>
|
|
158
|
+
<p>Garage and Messages work on either storage. The rest do not use MongoDB.</p>
|
|
159
|
+
|
|
160
|
+
<h3>All Marketplace plugins</h3>
|
|
161
|
+
<table class="table table-sm">
|
|
162
|
+
<thead>
|
|
163
|
+
<tr>
|
|
164
|
+
<th>Plugin</th>
|
|
165
|
+
<th>Tier</th>
|
|
166
|
+
<th>Needs MongoDB</th>
|
|
167
|
+
<th>Managed-only</th>
|
|
168
|
+
<th>Notes</th>
|
|
169
|
+
</tr>
|
|
170
|
+
</thead>
|
|
171
|
+
<tbody>
|
|
172
|
+
<tr><td>Analytics Pro</td><td>paid</td><td>No</td><td>No</td><td>Separate from the built-in Analytics Tool</td></tr>
|
|
173
|
+
<tr><td>Blog</td><td>free</td><td>No</td><td>No</td><td>Ships with the CMS</td></tr>
|
|
174
|
+
<tr><td>Blog Pro</td><td>paid</td><td>No</td><td>No</td><td>Replaces Blog</td></tr>
|
|
175
|
+
<tr><td>Calendar</td><td>paid</td><td>No</td><td>No</td><td>Uses Contacts, Notes and Todo when they are on</td></tr>
|
|
176
|
+
<tr><td>Contacts Pro</td><td>paid</td><td>No</td><td>No</td><td>Requires and replaces the built-in Contacts Tool</td></tr>
|
|
177
|
+
<tr><td>Data Transfer</td><td>paid</td><td>Only to move to or from MongoDB</td><td>No</td><td>Backups and restores work on file storage</td></tr>
|
|
178
|
+
<tr><td>Docs</td><td>paid</td><td>No</td><td>No</td><td></td></tr>
|
|
179
|
+
<tr><td>Email (email-pro)</td><td>paid</td><td>Partly</td><td>No</td><td>Replaces Mail Reader; some features need MongoDB</td></tr>
|
|
180
|
+
<tr><td>Feedback</td><td>free</td><td>No</td><td>No</td><td>Ships with the CMS</td></tr>
|
|
181
|
+
<tr><td>Garage</td><td>paid</td><td>No</td><td>No</td><td>Works on file or MongoDB storage</td></tr>
|
|
182
|
+
<tr><td>Invoices</td><td>paid</td><td>No</td><td>No</td><td>Uses Contacts</td></tr>
|
|
183
|
+
<tr><td>Job Board</td><td>paid</td><td>No</td><td>No</td><td></td></tr>
|
|
184
|
+
<tr><td>Mail Reader</td><td>free</td><td>No</td><td>No</td><td>Ships with the CMS</td></tr>
|
|
185
|
+
<tr><td>Messages</td><td>paid</td><td>No</td><td>No</td><td>File storage unless moved to MongoDB</td></tr>
|
|
186
|
+
<tr><td>MongoDB Adapter</td><td>paid</td><td>Provides it</td><td>Yes</td><td>Set up by the Domma Manager</td></tr>
|
|
187
|
+
<tr><td>Security</td><td>free</td><td>No</td><td>No</td><td>Ships with the CMS</td></tr>
|
|
188
|
+
<tr><td>Security Pro</td><td>paid</td><td>No</td><td>No</td><td>Replaces Security</td></tr>
|
|
189
|
+
<tr><td>SEO Pro</td><td>paid</td><td>No</td><td>No</td><td>Requires the built-in SEO Tool</td></tr>
|
|
190
|
+
<tr><td>Shopping Cart</td><td>free</td><td>No</td><td>No</td><td>Ships with the CMS</td></tr>
|
|
191
|
+
<tr><td>Shopping Cart Pro</td><td>paid</td><td>No</td><td>No</td><td>Requires Shopping Cart</td></tr>
|
|
192
|
+
<tr><td>Social Media Pro</td><td>paid</td><td>No</td><td>No</td><td>Uses SEO, Calendar and Blog when they are on</td></tr>
|
|
193
|
+
<tr><td>Surveys</td><td>paid</td><td>Optional</td><td>No</td><td>Falls back to file storage</td></tr>
|
|
194
|
+
<tr><td>Theme Roller</td><td>paid</td><td>No</td><td>No</td><td></td></tr>
|
|
195
|
+
<tr><td>Waypoint Pro</td><td>paid</td><td>No</td><td>No</td><td></td></tr>
|
|
196
|
+
</tbody>
|
|
197
|
+
</table>
|
|
198
|
+
|
|
199
|
+
<h3>Getting a licence</h3>
|
|
200
|
+
<p>Prices: TBC.</p>
|
|
201
|
+
<ul>
|
|
202
|
+
<li><strong>A site run by the Domma Manager</strong> - open <a href="#/plugins">Marketplace</a> >
|
|
203
|
+
Browse. It lists what your Manager offers. Install brings a plugin in already licensed. A plugin not
|
|
204
|
+
licensed yet is still listed; ask for it to be added.</li>
|
|
205
|
+
<li><strong>Any other site</strong> - buy the plugin and you receive a single <code>.dcmsplugin</code> file.
|
|
206
|
+
Use <strong>Install from file</strong> in the Marketplace banner. The same button installs later
|
|
207
|
+
updates.</li>
|
|
208
|
+
</ul>
|
|
209
|
+
<p>To buy a plugin or renew a licence, contact Domma CMS.</p>
|
|
210
|
+
|
|
211
|
+
</div>
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
@@ -7,18 +7,34 @@
|
|
|
7
7
|
<div class="col-12">
|
|
8
8
|
<div class="docs-body">
|
|
9
9
|
|
|
10
|
-
<p>Media files are stored in <code>content/media/</code>
|
|
11
|
-
|
|
10
|
+
<p>Media files are managed at <strong>Content > Media</strong>, stored in <code>content/media/</code>
|
|
11
|
+
and served publicly at <code>/media/{filename}</code>. Anything uploaded there can be opened by
|
|
12
|
+
anyone who has its address - do not upload private documents.</p>
|
|
13
|
+
|
|
14
|
+
<h3>Uploading</h3>
|
|
15
|
+
<p>Use the upload button in the banner, or drop files onto the screen. Uploading a file with the
|
|
16
|
+
same name as one already there replaces it; you are asked first. Accepted types are images
|
|
17
|
+
(JPEG, PNG, GIF, WebP, SVG, ICO, BMP, TIFF), PDF, text and CSV, Word and Excel documents, MP4,
|
|
18
|
+
WebM and Ogg video, and MP3, Ogg, WAV and WebM audio.</p>
|
|
19
|
+
|
|
20
|
+
<h3>Working with a file</h3>
|
|
21
|
+
<p>Click a file for its details: its address, a snippet to paste into a page, a rename box, and -
|
|
22
|
+
for pictures - the image editor (crop, resize, rotate, flip, colour presets, adjustments,
|
|
23
|
+
watermark, border, and saving as JPEG, PNG or WebP, as a copy or over the original).
|
|
24
|
+
Right-click a file (or use its row menu) for the same actions without opening it.</p>
|
|
25
|
+
<p>Wherever the admin asks for a picture (SEO share images, a logo, some plugin settings) the
|
|
26
|
+
<strong>Choose...</strong> button opens the Media Picker, where you can also upload.</p>
|
|
12
27
|
|
|
13
28
|
<h3>Using media in pages</h3>
|
|
14
|
-
<p>Reference uploaded files by their public URL in Markdown:</p>
|
|
29
|
+
<p>Reference uploaded files by their public URL in Markdown or HTML:</p>
|
|
15
30
|
<pre class="code-block"><code>
|
|
16
|
-
|
|
17
31
|
<img src="/media/my-image.jpg" alt="Alt text"></code></pre>
|
|
32
|
+
<p>Always give pictures alt text - SEO's audit checks for it.</p>
|
|
18
33
|
|
|
19
34
|
<h3>Upload limits</h3>
|
|
20
|
-
<p>The
|
|
21
|
-
(bytes).
|
|
35
|
+
<p>The largest file is set in <code>config/server.json</code> under
|
|
36
|
+
<code>uploads.maxFileSize</code> (bytes). The default is 10 MB. File names are limited to 200
|
|
37
|
+
characters and cleaned of unsafe characters.</p>
|
|
22
38
|
|
|
23
39
|
</div>
|
|
24
40
|
</div>
|
|
@@ -7,24 +7,80 @@
|
|
|
7
7
|
<div class="col-12">
|
|
8
8
|
<div class="docs-body">
|
|
9
9
|
|
|
10
|
-
<p>The navigation
|
|
11
|
-
|
|
12
|
-
<code>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
10
|
+
<p>The site's navigation is made of <strong>menus</strong>, edited at <strong>Content >
|
|
11
|
+
Menus</strong>. A menu is a list of links; a <strong>location</strong> (a slot) is where one is
|
|
12
|
+
shown. Each menu is a file in <code>config/menus/</code>, and the slot map is
|
|
13
|
+
<code>config/menu-locations.json</code>. Pages have no "show in navigation" switch - a page
|
|
14
|
+
appears in the navbar when a menu links to it.</p>
|
|
15
|
+
|
|
16
|
+
<h3>Locations</h3>
|
|
17
|
+
<table class="table table-sm">
|
|
18
|
+
<thead>
|
|
19
|
+
<tr>
|
|
20
|
+
<th>Slot</th>
|
|
21
|
+
<th>Where it shows</th>
|
|
22
|
+
</tr>
|
|
23
|
+
</thead>
|
|
24
|
+
<tbody>
|
|
25
|
+
<tr>
|
|
26
|
+
<td><code>navbar</code></td>
|
|
27
|
+
<td>The public site's top bar (or side rail, when the menu is vertical).</td>
|
|
28
|
+
</tr>
|
|
29
|
+
<tr>
|
|
30
|
+
<td><code>footer-primary</code>, <code>footer-legal</code></td>
|
|
31
|
+
<td>The two footer link rows.</td>
|
|
32
|
+
</tr>
|
|
33
|
+
<tr>
|
|
34
|
+
<td><code>overlay</code></td>
|
|
35
|
+
<td>Floating panels pinned to a corner or edge of the page. Several menus can share it.</td>
|
|
36
|
+
</tr>
|
|
37
|
+
<tr>
|
|
38
|
+
<td><code>admin-sidebar</code></td>
|
|
39
|
+
<td>This admin's own sidebar.</td>
|
|
40
|
+
</tr>
|
|
41
|
+
</tbody>
|
|
42
|
+
</table>
|
|
43
|
+
<p>Plugins can add slots of their own. Pick the menu for each slot under <strong>Menu
|
|
44
|
+
locations</strong>. A menu that a location uses cannot be deleted until it is taken out.</p>
|
|
45
|
+
|
|
46
|
+
<h3>Editing a menu</h3>
|
|
47
|
+
<ul>
|
|
48
|
+
<li><strong>Items</strong> - click an item to edit its label, link, icon, badge, look and who
|
|
49
|
+
sees it. Drag the grip to move an item, or drop it onto another to nest it (the navbar
|
|
50
|
+
shows nested items as a dropdown). Right-click an item for add, move, indent, duplicate,
|
|
51
|
+
hide and remove. Separators and spacers are items too.</li>
|
|
52
|
+
<li><strong>Behaviour</strong> - colour scheme, sticky, fixed, static or floating, horizontal
|
|
53
|
+
or vertical, alignment, and the hover and current-page highlight. A single item can
|
|
54
|
+
override the highlight in its own editor.</li>
|
|
55
|
+
<li><strong>Binding</strong> - let this menu take a slot over on some pages only (a project's
|
|
56
|
+
pages, or pages matching a pattern such as <code>/shop/*</code>) while the menu mapped
|
|
57
|
+
under Menu locations shows everywhere else. The most specific match wins.</li>
|
|
58
|
+
<li><strong>Meta</strong> - the menu's id, which is its file name and what
|
|
59
|
+
<code>[menu slug="..."]</code> names.</li>
|
|
60
|
+
</ul>
|
|
61
|
+
|
|
62
|
+
<h3>Links</h3>
|
|
63
|
+
<p>Use a site path (<code>/about</code>) for your own pages or a full <code>https://</code> address
|
|
64
|
+
for another site. An item with no link and sub-items is a heading. When you rename a page in
|
|
65
|
+
the page editor, every menu link to it follows it to the new address.</p>
|
|
66
|
+
|
|
67
|
+
<h3>Who sees an item</h3>
|
|
68
|
+
<p>Each item can be limited to roles, using the same ladder as page visibility: "Member and above",
|
|
69
|
+
or "Member only" (<code>=member</code>). Items a visitor may not see are left out of the page
|
|
70
|
+
on the server. See <a href="#/docs/usage/users-roles">Users & Roles</a>.</p>
|
|
71
|
+
|
|
72
|
+
<h3>Menus inside pages</h3>
|
|
73
|
+
<p>Place any menu in a page with <code>[menu slug="legal" /]</code>, or show whatever a slot holds
|
|
74
|
+
with <code>[menu location="footer-primary" /]</code>. See
|
|
75
|
+
<a href="#/docs/usage/shortcodes">Shortcodes</a>.</p>
|
|
76
|
+
|
|
77
|
+
<h3>The admin sidebar</h3>
|
|
78
|
+
<p>The <code>admin-sidebar</code> menu is this sidebar. In the Menus editor you can move Tools
|
|
79
|
+
between folders, rename them, hide them or add links of your own. Dashboard, Menus, Users and
|
|
80
|
+
My Profile can be moved but never hidden, so you can always get back from a bad edit.</p>
|
|
81
|
+
|
|
82
|
+
<p>Right-click menus on public pages are a separate feature: <strong>Content > Context
|
|
83
|
+
Menus</strong>.</p>
|
|
28
84
|
|
|
29
85
|
</div>
|
|
30
86
|
</div>
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<div class="docs-body">
|
|
9
9
|
|
|
10
10
|
<p>Pages are stored as Markdown files in <code>content/pages/</code>. Each file has a YAML frontmatter
|
|
11
|
-
block at
|
|
12
|
-
|
|
11
|
+
block at the top followed by the page body in Markdown, with shortcodes anywhere in the body.
|
|
12
|
+
Edit them at <strong>Content > Pages</strong>.</p>
|
|
13
13
|
|
|
14
14
|
<h3>URL mapping</h3>
|
|
15
15
|
<table class="table table-sm">
|
|
@@ -29,39 +29,79 @@
|
|
|
29
29
|
<td><code>/about</code></td>
|
|
30
30
|
</tr>
|
|
31
31
|
<tr>
|
|
32
|
-
<td><code>content/pages/
|
|
33
|
-
<td><code>/
|
|
32
|
+
<td><code>content/pages/services/index.md</code></td>
|
|
33
|
+
<td><code>/services</code></td>
|
|
34
34
|
</tr>
|
|
35
35
|
<tr>
|
|
36
|
-
<td><code>content/pages/
|
|
37
|
-
<td><code>/
|
|
36
|
+
<td><code>content/pages/services/design.md</code></td>
|
|
37
|
+
<td><code>/services/design</code></td>
|
|
38
|
+
</tr>
|
|
39
|
+
<tr>
|
|
40
|
+
<td><code>content/pages/404.md</code></td>
|
|
41
|
+
<td>Shown for any missing page, once published</td>
|
|
38
42
|
</tr>
|
|
39
43
|
</tbody>
|
|
40
44
|
</table>
|
|
45
|
+
<p>Changing a page's URL Path in the editor moves the file. Menu links to the page follow it,
|
|
46
|
+
and SEO (when switched on) adds a redirect from the old address.</p>
|
|
41
47
|
|
|
42
48
|
<h3>Frontmatter reference</h3>
|
|
43
49
|
<pre class="code-block"><code>---
|
|
44
50
|
title: My Page
|
|
45
|
-
description: A short description for
|
|
46
|
-
status: published # published | draft
|
|
47
|
-
layout: default # layout
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
description: A short description for search results.
|
|
52
|
+
status: published # published | draft
|
|
53
|
+
layout: default # a layout from config/presets.json
|
|
54
|
+
visibility: public # public | private | a role | =a role | a list
|
|
55
|
+
project: core # blank = inherit from the URL
|
|
56
|
+
tags: [one, two] # editorial tags - weighted in site search
|
|
57
|
+
sortOrder: 99
|
|
58
|
+
category: Guides
|
|
59
|
+
theme: ocean-light # optional per-page theme
|
|
50
60
|
---
|
|
51
|
-
|
|
52
61
|
# Page heading
|
|
53
|
-
|
|
54
62
|
Your Markdown content goes here.</code></pre>
|
|
63
|
+
<p>The editor's <strong>Page Details</strong> tab sets all of these, and the
|
|
64
|
+
<strong>SEO</strong> tab sets the page's search title and description.</p>
|
|
55
65
|
|
|
56
|
-
<h3>Drafts</h3>
|
|
57
|
-
<p>
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
<h3>Drafts and previews</h3>
|
|
67
|
+
<p>A page with <code>status: draft</code> answers 404 to visitors. Signed in with permission to
|
|
68
|
+
view pages, you see the real page at its real address with a draft banner and a Publish
|
|
69
|
+
button. New pages start as drafts.</p>
|
|
70
|
+
<ul>
|
|
71
|
+
<li><strong>Live Preview</strong> in the editor shows the unsaved page as it will look, at
|
|
72
|
+
desktop, tablet or phone width.</li>
|
|
73
|
+
<li><strong>Share link</strong> (in Live Preview) makes an expiring link that shows one
|
|
74
|
+
unpublished page to someone with no account. You can withdraw it at any time.</li>
|
|
75
|
+
</ul>
|
|
76
|
+
|
|
77
|
+
<h3>Who can see a page</h3>
|
|
78
|
+
<p><code>visibility</code> takes <code>public</code> (the default), <code>private</code> (the
|
|
79
|
+
level-0 role only), a role name ("that role and above"), <code>=role</code> ("that role
|
|
80
|
+
only"), or a list of these. A visitor who may not see a page gets a 403. A page in a disabled
|
|
81
|
+
project answers 404 to everyone. See <a href="#/docs/usage/users-roles">Users &
|
|
82
|
+
Roles</a> for how the role ladder works.</p>
|
|
83
|
+
|
|
84
|
+
<h3>Navigation</h3>
|
|
85
|
+
<p>A page is added to the navbar or footer in <strong>Content > Menus</strong>, not in the page
|
|
86
|
+
editor. See <a href="#/docs/usage/navigation">Navigation</a>.</p>
|
|
60
87
|
|
|
61
88
|
<h3>Layouts</h3>
|
|
62
|
-
<p>Layouts are defined in <code>config/presets.json</code>
|
|
63
|
-
|
|
64
|
-
|
|
89
|
+
<p>Layouts are defined in <code>config/presets.json</code>: <code>default</code>,
|
|
90
|
+
<code>with-sidebar</code>, <code>minimal</code>, <code>blank</code>, <code>landing</code>,
|
|
91
|
+
<code>article</code>, <code>product</code>, <code>dashboard</code> and <code>wide</code>. Pick
|
|
92
|
+
one per page in the editor; new pages use <code>default</code>
|
|
93
|
+
(<code>pageDefaults</code> in <code>config/content.json</code>). Manage them at
|
|
94
|
+
<strong>System > Layouts</strong>.</p>
|
|
95
|
+
|
|
96
|
+
<h3>History</h3>
|
|
97
|
+
<p>Every save keeps a version. The editor's <strong>History</strong> tab lists them with their
|
|
98
|
+
date and time (dd/mm/yyyy HH:mm) and lets you compare it with the editor, restore or delete it, or save a named version. Restoring saves a snapshot of the current page first. Unsaved
|
|
99
|
+
work is kept as a draft in your browser and offered back if you return.</p>
|
|
100
|
+
|
|
101
|
+
<h3>Custom CSS</h3>
|
|
102
|
+
<p>The editor's CSS pane edits <code>content/custom.css</code>, which applies to the whole site,
|
|
103
|
+
not just the page you are on. It is also under <strong>System > Site Settings > Custom
|
|
104
|
+
CSS</strong>.</p>
|
|
65
105
|
|
|
66
106
|
</div>
|
|
67
107
|
</div>
|
|
@@ -7,29 +7,101 @@
|
|
|
7
7
|
<div class="col-12">
|
|
8
8
|
<div class="docs-body">
|
|
9
9
|
|
|
10
|
-
<p>Plugins
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
<p>Plugins add features to the CMS: new admin screens, server routes, shortcodes and public-site
|
|
11
|
+
scripts. You get them from the <strong>Marketplace</strong> - <strong>System >
|
|
12
|
+
Plugins</strong> in the sidebar (<code>#/plugins</code>). Once switched on, a plugin is a Tool
|
|
13
|
+
and has its own place in the sidebar. Each plugin lives in a folder under
|
|
14
|
+
<code>plugins/</code>.</p>
|
|
13
15
|
|
|
14
|
-
<h3>
|
|
15
|
-
<
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
<h3>The Marketplace screen</h3>
|
|
17
|
+
<ul>
|
|
18
|
+
<li><strong>Installed</strong> lists what is on this site. The built-in Tools come first, then
|
|
19
|
+
your plugins, with filters for All, On, Off and Needs attention (a plugin that is on but
|
|
20
|
+
not licensed, or waiting for something it needs).</li>
|
|
21
|
+
<li>Click a plugin for its details and settings. Right-click it (or use the row menu, or
|
|
22
|
+
Shift+F10) to switch it on or off, configure, update, view its source, export it as a
|
|
23
|
+
<code>.dcmsplugin</code> file or uninstall it. Licensed plugins cannot be viewed or
|
|
24
|
+
exported.</li>
|
|
25
|
+
<li><strong>Browse</strong> lists what this site can get from its manager, with an Update
|
|
26
|
+
button where a newer version is available. A site that is not managed installs from a
|
|
27
|
+
file instead: <strong>Install from file</strong> in the banner.</li>
|
|
28
|
+
</ul>
|
|
29
|
+
|
|
30
|
+
<h3>Installing and updating</h3>
|
|
31
|
+
<ul>
|
|
32
|
+
<li>A new plugin arrives <strong>switched off</strong>. Switch it on when you are ready.</li>
|
|
33
|
+
<li>A paid plugin installed from Browse arrives licensed to this site. A plugin that is on
|
|
34
|
+
but has no valid licence does not run, and the Marketplace says so.</li>
|
|
35
|
+
<li>An update keeps the plugin's data. If it fails, the version you had is put back.</li>
|
|
36
|
+
<li>A plugin that needs a newer Domma CMS (its <code>minCmsVersion</code>) is refused, naming
|
|
37
|
+
both versions - update the CMS first. An update refused this way leaves the installed
|
|
38
|
+
version in place.</li>
|
|
39
|
+
<li>Installing an unsigned file, replacing a newer version with an older one, or updating
|
|
40
|
+
one already installed each asks you first. A site with
|
|
41
|
+
<code>requireSignedPlugins</code> set in <code>config/server.json</code> refuses unsigned
|
|
42
|
+
files outright.</li>
|
|
43
|
+
<li>Uninstalling removes the plugin's files and its <code>data/</code> folder, and any roles
|
|
44
|
+
it added (their users move to <code>user</code>). Switch a plugin off instead if you may
|
|
45
|
+
want it back.</li>
|
|
46
|
+
<li>Some plugins rely on extra npm packages (listed as <code>npmDependencies</code> in the
|
|
47
|
+
catalogue). The CMS does not install these for you - if a plugin says a package is
|
|
48
|
+
missing, ask whoever runs your server.</li>
|
|
49
|
+
</ul>
|
|
50
|
+
|
|
51
|
+
<h3>When a restart is needed</h3>
|
|
52
|
+
<p>A plugin's routes and screens are read when the server starts, so:</p>
|
|
53
|
+
<ul>
|
|
54
|
+
<li><strong>Switching a plugin on or off</strong> restarts the server for you when something
|
|
55
|
+
will bring it back (pm2 or the Domma manager). The screen waits and tells you when the
|
|
56
|
+
site is live again. Several switches in a row cost one restart. Set
|
|
57
|
+
<code>restartOnPluginToggle: false</code> in <code>config/server.json</code> to restart by
|
|
58
|
+
hand instead.</li>
|
|
59
|
+
<li><strong>Installing, updating or uninstalling</strong> takes effect after the next
|
|
60
|
+
restart - the screen tells you when one is due.</li>
|
|
61
|
+
<li><strong>Saving a plugin's settings</strong> never restarts anything.</li>
|
|
62
|
+
</ul>
|
|
63
|
+
|
|
64
|
+
<h3>Built-in Tools and switches</h3>
|
|
65
|
+
<p>Contacts, Notes, Todo, Analytics and SEO are part of the CMS and on unless you switch them off
|
|
66
|
+
at the top of the Installed tab. A Tool that is off disappears from the sidebar and its
|
|
67
|
+
screens and API stop answering, but nothing is deleted: switch it back on and everything is
|
|
68
|
+
where it was. A switch marked <strong>Locked</strong> is held by your site's manager and can
|
|
69
|
+
only be changed there.</p>
|
|
70
|
+
|
|
71
|
+
<h3>What plugins depend on</h3>
|
|
72
|
+
<ul>
|
|
73
|
+
<li><strong>Requires</strong> - a plugin that cannot work without a Tool or another plugin
|
|
74
|
+
goes off with it. Switching it on switches on what it needs.</li>
|
|
75
|
+
<li><strong>Uses</strong> - a plugin that only uses something (Calendar invites contact
|
|
76
|
+
groups) stays on, and you are told which feature it loses.</li>
|
|
77
|
+
<li>You are shown what a switch will change, and asked, before anything moves. A plugin whose
|
|
78
|
+
requirement is off is not started.</li>
|
|
79
|
+
<li><strong>Supersedes</strong> - a Pro edition replaces the free one it supersedes (Blog Pro
|
|
80
|
+
and Blog): while the Pro plugin runs, the free one registers nothing. A Pro plugin can
|
|
81
|
+
also take over a built-in Tool's screen (Contacts Pro and Contacts). Nothing is written
|
|
82
|
+
down, so if a licence lapses the free plugin or built-in Tool is simply back after the
|
|
83
|
+
next restart, with its data.</li>
|
|
84
|
+
</ul>
|
|
19
85
|
|
|
20
86
|
<h3>Plugin settings</h3>
|
|
21
|
-
<p>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<code>config/plugins.json</code>.</p>
|
|
87
|
+
<p>Open a plugin and choose Configure. Settings are merged with the plugin's defaults and saved to
|
|
88
|
+
<code>config/plugins.json</code>. Many plugins also have a settings cog in their own screen's
|
|
89
|
+
banner.</p>
|
|
25
90
|
|
|
26
91
|
<h3>Security</h3>
|
|
27
|
-
<p>Only files inside a plugin's <code>admin/</code> and <code>public/</code>
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
92
|
+
<p>Only files inside a plugin's <code>admin/</code> and <code>public/</code> folders are served to
|
|
93
|
+
browsers. Server files (<code>plugin.js</code>, <code>config.js</code>, <code>data/</code>)
|
|
94
|
+
are never served. A plugin's code runs on your server with full access, which is why unsigned
|
|
95
|
+
files ask before installing.</p>
|
|
31
96
|
|
|
32
|
-
<
|
|
97
|
+
<h3>See also</h3>
|
|
98
|
+
<ul>
|
|
99
|
+
<li><a href="#/docs/plugins">Plugin guides</a> - one page per installed Marketplace plugin:
|
|
100
|
+
what it does, its screens, settings and permissions.</li>
|
|
101
|
+
<li><a href="#/docs/usage/editions">Editions & Licences</a> - free and Pro, rental and
|
|
102
|
+
perpetual licences, and what happens when one ends.</li>
|
|
103
|
+
<li><a href="#/tutorials/plugin">Writing a Plugin</a> - build your own.</li>
|
|
104
|
+
</ul>
|
|
33
105
|
|
|
34
106
|
</div>
|
|
35
107
|
</div>
|