@@ -201,62 +177,126 @@ const Sections = [
),
},
{
- title: translate({
- message: 'Desktop Applications',
- id: 'homepage.sections.desktop-applications.title',
- }),
- image: {
- src: '/img/illu_DesktopApplication.png',
- width: 1108,
- height: 731.18,
- },
+ title: (
+ <>
+
),
},
{
- title: translate({
- message: 'Mobile Applications',
- id: 'homepage.sections.mobile-applications.title',
- }),
- image: {
- src: '/img/illu_MobileApplication.png',
- width: 1038.23,
- height: 693.31,
- },
+ title:(
+ <>
+
+ ),
+ },
+
];
export default Sections;
diff --git a/src/pages/index.js b/src/pages/index.js
index 7193c8a5fcbfb9..698818b8f69752 100644
--- a/src/pages/index.js
+++ b/src/pages/index.js
@@ -50,6 +50,7 @@ function Tile({
return (
+ {tile.image && tile.image.src && (
})
+ )}
{tile.title}
{tile.links}
diff --git a/src/pages/styles.module.css b/src/pages/styles.module.css
index d5ff4b94726ca1..f6efd6105ec8b8 100644
--- a/src/pages/styles.module.css
+++ b/src/pages/styles.module.css
@@ -6,6 +6,7 @@
.tilesHeading {
font-size: var(--ifm-h3-font-size);
+ font-weight: 400;
padding-top: 1rem;
}
@@ -19,7 +20,6 @@
}
.hero {
- background-color: #2b3137;
padding: 48px;
margin-bottom: 100px;
}
@@ -31,7 +31,6 @@
}
.heroProjectTagline {
- color: #fff;
font-size: 60px;
margin: 0;
}
diff --git a/versioned_docs/version-20-R10/API/SessionClass.md b/versioned_docs/version-20-R10/API/SessionClass.md
index 2240df5fe8f36f..526317eb2856e4 100644
--- a/versioned_docs/version-20-R10/API/SessionClass.md
+++ b/versioned_docs/version-20-R10/API/SessionClass.md
@@ -142,7 +142,7 @@ The `.createOTP()` function create
For more information about the OTP tokens, please refer to [this section](../WebServer/sessions.md#session-token-otp).
-By default, if the *lifespan* parameter is omitted, the token is created with the same lifespan as the [`.idleTimeOut`](#idletimeout) of the session. You can set a custom timeout by passing a value in seconds in *lifespan* (the minimum value is 10 seconds, *lifespan* is reset to 10 if a smaller value is passed). If an expired token is used to restore a web user session, it is ignored.
+By default, if the *lifespan* parameter is omitted, the token is created with the same lifespan as the [`.idleTimeOut`](#idletimeout) of the session. You can set a custom timeout by passing a value in seconds in *lifespan*. If an expired token is used to restore a web user session, it is ignored.
The returned token can then be used in exchanges with third-party applications or websites to securely identify the session. For example, the session OTP token can be used with a payment application.
diff --git a/versioned_docs/version-20-R10/Backup/log.md b/versioned_docs/version-20-R10/Backup/log.md
index 0eee46f46f4fa1..98ed9a47339927 100644
--- a/versioned_docs/version-20-R10/Backup/log.md
+++ b/versioned_docs/version-20-R10/Backup/log.md
@@ -71,7 +71,7 @@ You must create another log file if you create a new data file. You must set or
The [log file settings](settings.md#log-management) are based on two pieces of information: a boolean value and a path.
-1. **Boolean Value**: indicating whether the "Use Log File" feature is enabled or disabled within the application. By default, the boolean value is stored in *catalog.4DCatalog*. However, when the [user settings](../Desktop/user-settings.md) are activated, the *catalog.4DCatalog* file configuration is overriden, and the boolean value can then be set either in the *Backup.4DSettings* file [next to the data file](../Project/architecture.md#settings-user-data) or the *Backup.4DSettings* file [in the project folder](../Project/architecture.md#settings-user) (see also the `JournalFileEnabled` xml backup key documentation on [doc.4d.com](https://doc.4d.com)).
+1. **Boolean Value**: indicating whether the "Use Log File" feature is enabled or disabled within the application. By default, the boolean value is stored in *catalog.4DCatalog*. However, when the [user settings](../settings/overview.md#user-settings) are activated, the *catalog.4DCatalog* file configuration is overriden, and the boolean value can then be set either in the *Backup.4DSettings* file [next to the data file](../Project/architecture.md#settings-user-data) or the *Backup.4DSettings* file [in the project folder](../Project/architecture.md#settings-user) (see also the `JournalFileEnabled` xml backup key documentation on [doc.4d.com](https://doc.4d.com)).
2. **Path**: a string pointing to where the log file is located. The log file path is always stored in the linked data file.
diff --git a/versioned_docs/version-20-R10/Concepts/operators.md b/versioned_docs/version-20-R10/Concepts/operators.md
index db5792e85ccf6b..d15c09b5e9319c 100644
--- a/versioned_docs/version-20-R10/Concepts/operators.md
+++ b/versioned_docs/version-20-R10/Concepts/operators.md
@@ -95,7 +95,9 @@ The following compound assignment operators are supported:
||Time *= Number |Number |`$t1*=5 //$t1:=$t1*5`|
||Picture *= Number|Picture|`$p1*=5 //$p1:=$p1*5 (resize $p1 by 5)`|
-These operators apply on any [assignable expressions](quick-tour.md#assignable-vs-non-assignable-expressions) (except pictures as object properties or collection elements).
+These operators apply on any [assignable expressions](quick-tour.md#assignable-vs-non-assignable-expressions) except:
+- pictures as object properties or collection elements,
+- array index variables.
The operation "source `operator` value" is not strictly equivalent to "source := source `operator` value" because the expression designating the source (variable, field, object property, collection element) is only evaluated once. For example, in such expression as `getPointer()->+=1` the `getPointer` method is called only once.
diff --git a/versioned_docs/version-20-R10/Desktop/user-settings.md b/versioned_docs/version-20-R10/Desktop/user-settings.md
deleted file mode 100644
index 333e9ad838f77d..00000000000000
--- a/versioned_docs/version-20-R10/Desktop/user-settings.md
+++ /dev/null
@@ -1,130 +0,0 @@
----
-id: user-settings
-title: User Settings
----
-
-4D provides two modes of operation for project Settings:
-
-* **Standard** mode: all [settings](../settings/overview.md) are stored in the [*settings.4DSettings* file at the project level](../Project/architecture.md#sources) and are applied in all cases. This is the default mode, suitable for development phase (all applications).
-
-* **User settings** mode: part of the custom settings are stored in a *settings.4DSettings* file [in the Settings folder](../Project/architecture.md#settings-user) (for all data files) or [in the Data folder](../Project/architecture.md#settings-user-data) (for this data file) and are used instead of the structure settings. This mode is suitable for deployment phase for Desktop applications. You enable this mode using an option located on the [Security page](../settings/security.md) of the Settings.
-
-By defining user settings, you can keep custom settings between updates of your 4D applications, or manage different settings for the same 4D application deployed on several different sites. It also makes it possible to use programming to manage setting files using XML.
-
-4D can generate and use two types of user settings:
-
-- **User Settings**: They are used instead of structure settings for any data file opened with the application.
-- **User Settings for Data file**: They can be defined specifically for each data file used with your application, configuring for example the port ID or the server cache.
-
-With this option, you can easily deploy and update several copies of the same desktop application with several data files, each containing different settings.
-
-Consider for example the following configuration, where an application is duplicated and each copy uses a different Port ID setting. If this user setting is linked to the data file, you will be able to update the application without having to manually change the Port ID:
-
-
-
-## Enabling User settings
-
-To enable user settings, you need to check the **Settings** > **Security** > **Enable User Settings** option:
-
-
-
-When you check this option, the settings are separated into three dialog boxes:
-
-* **Structure Settings**
-* **User Settings**
-* **User Settings for Data file**
-
-You can access these dialog boxes using the **Design > Settings...** menu or the **Settings** button in the toolbar:
-
-
-
-You can also access these dialog boxes using the [OPEN SETTINGS WINDOW](../commands-legacy/open-settings-window.md) command with the appropriate *settingsType* selector.
-
-The Structure Settings dialog box is identical to the standard Settings, and provides access to all its properties (which can be overriden by user settings).
-
-## User Settings and User Settings for Data file
-
-The **User Settings** and **User Settings for Data File** dialog boxes contain a selection of relevant properties that can be defined for all data files or a single data file:
-
-
-
-The following table lists the pages of settings found in the **User Settings** and **User Settings for Data File** dialog boxes and describes their main differences with respect to standard settings:
-
-| **Page of Structure Settings** | **Page of User Settings** | **Page of User Settings for Data File**|
-| --- | --- | --- |
-| [General page](../settings/general.md) | N/a | N/a |
-| [Interface page](../settings/interface.md) | Identical to standard settings | Identical to standard settings |
-| [Compiler page](../settings/compiler.md) | N/a | N/a |
-| [Database/Data storage page](../settings/database.md#data-storage-page) | N/a | N/a |
-| [Database/Memory page](../settings/database.md#memory-page) | Identical to standard settings | Identical to standard settings |
-| [Backup/Scheduler page](../settings/../Backup/settings.md#scheduler) | N/a | Identical to standard settings |
-| [Backup/Configuration page](../settings/../Backup/settings.md#configuration) | N/a | Identical to standard settings |
-| [Backup/Backup & Restore page](../settings/../Backup/settings.md#backup--restore) | N/a | Identical to standard settings |
-| [Client-server/Network options page](../settings/client-server.md#network-options-page) | Identical to standard settings | Identical to standard settings |
-| [Client-server/IP configuration page](../settings/client-server.md#ip-configuration-page) | Identical to standard settings | Identical to standard settings |
-| [Web/Configuration page](../settings/web.md#configuration) | Identical to standard settings | Identical to standard settings |
-| [Web/Options (I) page](../settings/web.md#options-i) | Identical to standard settings | Identical to standard settings |
-| [Web/Options (II) page](../settings/web.md#options-ii) | Identical to standard settings | Identical to standard settings |
-| [Web/Log (type) page](../settings/web.md#log-type) | Identical to standard settings | Identical to standard settings |
-| [Web/Log (backup) page](../settings/web.md#log-backup) | Identical to standard settings | Identical to standard settings |
-| [Web/Web Services page](../settings/web.md#web-services) | Method prefixing option not available | Method prefixing option not available |
-| [SQL page](../settings/sql.md) | Identical to standard settings | Identical to standard settings |
-| [PHP page](../settings/php.md) | Identical to standard settings | Identical to standard settings |
-| [Security page](../settings/security.md) | N/a | N/a |
-| [Compatibility page](../settings/compatibility.md) | N/a | N/a |
-
-When you edit settings in this dialog box, they are automatically stored in the corresponding *settings.4DSettings* file (see below) or the *Backup.4DSettings* file (check the [Backup settings](../Backup/settings.md) page for more information).
-
-## `SET DATABASE PARAMETER` and user settings
-
-Some of the user settings are also available through the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. User settings are parameters with the **Kept between two sessions** property set to **Yes**.
-
-When the **User Settings** feature is enabled, user settings edited by the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command are automatically saved in the user settings for the data file.
-
-> `Table sequence number` is an exception; this setting value is always saved in the data file itself.
-
-## settings.4DSettings files
-
-When you [check the **Enable User Settings** option](#enabling-user-settings), user settings files are automatically created. Their location depends on the type of user settings defined.
-
-### User Settings
-
-The standard user settings file is automatically created and placed in a settings folder at the following location:
-
-[`ProjectFolder/Settings/settings.4DSettings`](../Project/architecture.md#settings-user)
-
-... where *ProjectFolder* is the name of the folder containing the project structure file.
-
-In merged applications, the user settings file is placed at the following location:
-
-* In single-user versions: ProjectFolder/Database/Settings/settings.4DSettings
-* In client/server versions: ProjectFolder/Server Database/Settings/settings.4DSettings
-
-### User Settings for Data File
-
-The user settings file linked to the data file is automatically created and placed in a settings folder at the following location:
-
-[`Data/Settings/settings.4DSettings`](../Project/architecture.md#settings-user-data)
-
-... where *Data* is the name of the folder containing the current data file of the application.
-
-> When the data file is located at the same level as the project structure file, structure-based and data-based user settings files share the same location and file. The **User Settings for Data File...** menu command is not proposed.
-
-:::note
-
-Settings files are XML files; they can be read and modified using integrated 4D XML commands or using an XML editor. This means that you can manage settings by programming, particularly in the context of applications compiled and merged with 4D Volume Desktop. When you modify this file by programming, the changes are only taken into account the next time the database is opened.
-
-:::
-
-
-## Priority of settings
-
-Settings can be stored at three levels. Each setting defined at one level overrides the same setting defined at a previous level, if any:
-
-| **Priority level** | **Name** | **Location** | **Comments** |
-|---|---|---|---|
-| 3 (lowest) | Structure settings (or Settings when "User settings" feature not enabled) | ***settings.4DSettings*** file in the Sources folder (project databases) or in the Settings folder as the same level as the structure file (binary databases) | Unique location when user settings are not enabled. Applied to all copies of the application. |
-| 2 | User settings (all data files) | ***settings.4DSettings*** file in the Settings folder at the same level as the Project folder | Overrides Structure settings. Stored within the application package. |
-| 1 (highest) | User settings (current data file) | ***settings.4DSettings*** file in the Settings folder at the same level as the data file | Overrides Structure settings and User settings. Applied only when the linked data file is used with the application. |
-
-Keep in mind that user settings files only contain a subset of relevant settings, while the structure file contains all custom settings, including core settings.
diff --git a/versioned_docs/version-20-R10/Extensions/_overview-old.md b/versioned_docs/version-20-R10/Extensions/_overview-old.md
new file mode 100644
index 00000000000000..bb550385074f30
--- /dev/null
+++ b/versioned_docs/version-20-R10/Extensions/_overview-old.md
@@ -0,0 +1,41 @@
+---
+id: overview-old
+title: Extensions
+---
+
+The 4D [project architecture](../Project/architecture.md) is modular. You can provide additional functionalities to your 4D projects by installing [**components**](Concepts/components.md) and [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be built using any language.
+
+
+## Preinstalled 4D components
+
+4D includes by default a set of built-in 4D components, that you can see in the **Component Methods** theme of the Explorer's Methods page. All these components can also be found on the [4D github repository](https://github.com/4d).
+
+
+|Component|Description|Main Features|
+|---|---|---|
+|[4D AiIKit](https://github.com/4d/4D-AIKit)|Set of classes to connect to third-party OpenAI APIs|`OpenAIChat`, `OpenAIImage`...|
+|[4D Labels](https://github.com/4d/4D-Labels)|Internal component required to build label templates||
+|[4D NetKit](https://developer.4d.com/4D-NetKit)|Set of web service tools to connect to third-party APIs|`OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` |
+|[4D Progress](https://github.com/4d/4D-Progress)|Open one or more progress bars in the same window|`Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... |
+|[4D SVG](https://github.com/4d/4D-SVG)|Create and manipulate common svg graphic objects|`SVGTool_Display_viewer`, multiple `SVG_` methods |
+|[4D ViewPro](ViewPro/getting-started.md)|Spreadsheet features in your forms|See [4D View Pro documentation](ViewPro/getting-started.md)|
+|[4D Widgets](https://github.com/4d/4D-Widgets)|Manage DatePicker, TimePicker, SearchPicker 4D widgets|`DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ...|
+|[4D WritePro Interface](https://github.com/4d/4D-WritePro-Interface)|Manage [4D Write Pro palettes](https://doc.4d.com/4Dv20R9/4D/20-R9/Entry-areas.300-7543821.en.html and [table wizard](../WritePro/writeprointerface.md#table-wizard)|`WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget`|
+
+
+## Third-party components
+
+You can develop and install your own 4D components. See [this page](develop-components.md) for more information.
+
+Many developers from the 4D community have shared 4D components that you can install and use in you projects.
+
+Browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic.
+
+
+## Plugins
+
+Plugins do things that 4D does not natively (e.g., specific platform technology), or would be very hard to write just using 4D. As described in [this page](develop-plug-ins.md), you can develop your own plug-ins.
+
+A lot of functionnalities are covered by the existing 4D plug-ins. Browse Github to have a list of public 4D plugins gathered with the [`4d-plugin`](https://github.com/topics/4d-plugin) topic.
+
+
diff --git a/versioned_docs/version-20-R10/Extensions/overview.md b/versioned_docs/version-20-R10/Extensions/overview.md
index 2fabda08c1a413..447cbacdea85fa 100644
--- a/versioned_docs/version-20-R10/Extensions/overview.md
+++ b/versioned_docs/version-20-R10/Extensions/overview.md
@@ -1,41 +1,13 @@
---
id: overview
-title: Extensions
+title: Extending 4D Applications
---
-The 4D [project architecture](../Project/architecture.md) is modular. You can provide additional functionalities to your 4D projects by installing [**components**](Concepts/components.md) and [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be built using any language.
-
-
-## Preinstalled 4D components
-
-4D includes by default a set of built-in 4D components, that you can see in the **Component Methods** theme of the Explorer's Methods page. All these components can also be found on the [4D github repository](https://github.com/4d).
-
-
-|Component|Description|Main Features|
-|---|---|---|
-|[4D AiIKit](https://github.com/4d/4D-AIKit)|Set of classes to connect to third-party OpenAI APIs|`OpenAIChat`, `OpenAIImage`...|
-|[4D Labels](https://github.com/4d/4D-Labels)|Internal component required to build label templates||
-|[4D NetKit](https://developer.4d.com/4D-NetKit)|Set of web service tools to connect to third-party APIs|`OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` |
-|[4D Progress](https://github.com/4d/4D-Progress)|Open one or more progress bars in the same window|`Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... |
-|[4D SVG](https://github.com/4d/4D-SVG)|Create and manipulate common svg graphic objects|`SVGTool_Display_viewer`, multiple `SVG_` methods |
-|[4D ViewPro](ViewPro/getting-started.md)|Spreadsheet features in your forms|See [4D View Pro documentation](ViewPro/getting-started.md)|
-|[4D Widgets](https://github.com/4d/4D-Widgets)|Manage DatePicker, TimePicker, SearchPicker 4D widgets|`DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ...|
-|[4D WritePro Interface](https://github.com/4d/4D-WritePro-Interface)|Manage [4D Write Pro palettes](https://doc.4d.com/4Dv20R9/4D/20-R9/Entry-areas.300-7543821.en.html and [table wizard](../WritePro/writeprointerface.md#table-wizard)|`WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget`|
-
-
-## Third-party components
-
-You can develop and install your own 4D components. See [this page](develop-components.md) for more information.
-
-Many developers from the 4D community have shared 4D components that you can install and use in you projects.
-
-Browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic.
-
-
-## Plugins
-
-Plugins do things that 4D does not natively (e.g., specific platform technology), or would be very hard to write just using 4D. As described in [this page](develop-plug-ins.md), you can develop your own plug-ins.
-
-A lot of functionnalities are covered by the existing 4D plug-ins. Browse Github to have a list of public 4D plugins gathered with the [`4d-plugin`](https://github.com/topics/4d-plugin) topic.
-
+The 4D architecture is open and can be extended in different ways. If you need a feature that is not available natively in 4D, you can always integrate it into your application in a variety of ways, i.e.:
+- [**System workers**](../API/SystemWorkerClass.md) allow the 4D code to call any external process (a shell command, PHP, any script, etc.) and monitor its execution.
+- [**SQL commands**](../commands/theme/SQL) allow you to connect and use various SQL data sources.
+- The [**built-in HTTP client**](../API/HTTPRequestClass.md) can request any HTTP server and process data.
+- [**Web Areas**](../FormObjects/webArea_overview.md) can give access to web pages or various HTML contents within your forms.
+- [**Components**](Concepts/components.md). Components are made of 4D code. 4D includes by default [a set of built-in 4D components](../Project/components.md#preinstalled-4d-components). You can also [develop your own 4D components](develop-components.md), or use third-party components. Many developers from the 4D community have shared 4D components (browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic).
+- [**Plug-ins**](../Concepts/plug-ins.md). Plug-ins can be built using any language. Plugins do things that 4D does not natively (e.g., specific platform technology), or would be very hard to write just using 4D. As described in [this page](develop-plug-ins.md), you can develop your own plug-ins. A lot of functionnalities are covered by the existing 4D plug-ins. Browse Github to have a list of public 4D plugins gathered with the [`4d-plugin`](https://github.com/topics/4d-plugin) topic.
diff --git a/versioned_docs/version-20-R10/ORDA/overview.md b/versioned_docs/version-20-R10/ORDA/overview.md
index 1af5cc99717b77..7874ff5325a812 100644
--- a/versioned_docs/version-20-R10/ORDA/overview.md
+++ b/versioned_docs/version-20-R10/ORDA/overview.md
@@ -1,6 +1,6 @@
---
id: overview
-title: ORDA
+title: Overview
---
ORDA stands for **Object Relational Data Access**. It is an enhanced technology allowing to access both the model and the data of a database through objects.
diff --git a/versioned_docs/version-20-R10/ORDA/privileges.md b/versioned_docs/version-20-R10/ORDA/privileges.md
index 5ba37761607d18..97f4d0003bf9dd 100644
--- a/versioned_docs/version-20-R10/ORDA/privileges.md
+++ b/versioned_docs/version-20-R10/ORDA/privileges.md
@@ -1,6 +1,6 @@
---
id: privileges
-title: Privileges
+title: Roles and Privileges
---
diff --git a/versioned_docs/version-20-R10/Preferences/overview.md b/versioned_docs/version-20-R10/Preferences/overview.md
index f50f05b23cc511..731063a3bf4834 100644
--- a/versioned_docs/version-20-R10/Preferences/overview.md
+++ b/versioned_docs/version-20-R10/Preferences/overview.md
@@ -1,6 +1,6 @@
---
id: overview
-title: Preferences
+title: Application Preferences
---
User preferences specify various settings affecting your working environment, e.g. default options, display themes, Code Editor features, shortcuts, etc. They are applied to all projects opened with your 4D or 4D Server application.
diff --git a/versioned_docs/version-20-R10/Project/architecture.md b/versioned_docs/version-20-R10/Project/architecture.md
index 21ba62863c58e6..dd618d5cd5b887 100644
--- a/versioned_docs/version-20-R10/Project/architecture.md
+++ b/versioned_docs/version-20-R10/Project/architecture.md
@@ -1,6 +1,6 @@
---
id: architecture
-title: Architecture of a project
+title: Architecture
---
A 4D project is made of several folders and files, stored within a project root folder (package folder). For example:
@@ -60,7 +60,7 @@ catalog_editor.json|Custom positions and colors of tables, fields, and links in
folders.json|Explorer folder definitions|JSON
menus.json|Menu definitions|JSON
roles.json|[Privileges, permissions](../ORDA/privileges.md#rolesjson-file) and other security settings for the project|JSON
-settings.4DSettings|*Structure* database settings. They are not taken into account if *[user settings](#settings-user)* or *[user settings for data](#settings-user-data)* are defined (see also [Priority of settings](../Desktop/user-settings.md#priority-of-settings). **Warning**: In compiled applications, structure settings are stored in the .4dz file (read-only). For deployment needs, it is necessary to [enable](../Desktop/user-settings.md#enabling-user-settings) and use *user settings* or *user settings for data* to define custom settings.|XML
+settings.4DSettings|*Structure* database settings. They are not taken into account if *[user settings](#settings-user)* or *[user settings for data](#settings-user-data)* are defined (see also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings). **Warning**: In compiled applications, structure settings are stored in the .4dz file (read-only). For deployment needs, it is necessary to [enable](../settings/overview.md#user-settings#enabling-user-settings) and use *user settings* or *user settings for data* to define custom settings.|XML
tips.json|Defined tips|JSON
lists.json|Defined lists|JSON
filters.json|Defined filters|JSON
@@ -170,9 +170,9 @@ data.match|(internal) UUID matching table number|XML
### `Settings` (user data)
-This folder contains [**user settings for data**](../Desktop/user-settings.md#user-settings-for-data-file) used for application administration.
+This folder contains [**user settings for data**](../settings/overview.md#user-settings#user-settings-for-data-file) used for application administration.
-> These settings take priority over [user settings](#settings-user) and [structure settings](#sources). See also [Priority of settings](../Desktop/user-settings.md#priority-of-settings).
+> These settings take priority over [user settings](#settings-user) and [structure settings](#sources). See also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings).
|Contents|Description|Format|
|----|----|---|
@@ -195,9 +195,9 @@ The Logs folder contains all log files used by the project. Log files include, i
## `Settings` (user)
-This folder contains [**user settings**](../Desktop/user-settings.md#user-settings) used for application administration.
+This folder contains [**user settings**](../settings/overview.md#user-settings#user-settings) used for application administration.
-> These settings take priority over [structure settings](#sources) file. However, if [user settings for data](#settings-user-data) exist, they take priority over the user settings. See also [Priority of settings](../Desktop/user-settings.md#priority-of-settings).
+> These settings take priority over [structure settings](#sources) file. However, if [user settings for data](#settings-user-data) exist, they take priority over the user settings. See also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings).
|Contents|Description|Format|
|----|----|---|
diff --git a/versioned_docs/version-20-R10/Project/code-overview.md b/versioned_docs/version-20-R10/Project/code-overview.md
index 3a9c3e2e99e2eb..2f410cdef574bb 100644
--- a/versioned_docs/version-20-R10/Project/code-overview.md
+++ b/versioned_docs/version-20-R10/Project/code-overview.md
@@ -1,6 +1,6 @@
---
id: code-overview
-title: Methods and classes
+title: Creating Methods and classes
---
@@ -37,150 +37,3 @@ To delete an existing method or class, you can:
> To delete an object method, choose **Clear Object Method** from the [Form editor](../FormEditor/formEditor.md) (**Object** menu or context menu).
-
-## Importing and exporting code
-
-You can import and export a method or a class code in the form of a file. These commands are found in the **Method** menu of the [Code editor](../code-editor/write-class-method.md).
-
-- When you select the **Export Method...** command, a standard file saving dialog box appears, allowing you to choose the name, location and format of the export file (see below). As with printing, exporting does not take the collapsed state of code structures into account and the entire code is exported.
-- When you select the **Import Method...** command, a standard file opening dialog box appears, allowing you to designate the file to be imported. Importing replaces the selected text in the method. To replace an existing method by an imported method, select the entire contents of the method before carrying out the import.
-
-The import/export function is multi-platform: a method exported under Mac OS can be imported under Windows and vice versa; 4D handles the conversion of characters when necessary.
-
-4D can export and import methods in two formats:
-
-- 4D method (extension *.c4d*): In this format, methods are exported in encoded form. The names of objects are tokenized. This format is used in particular for exchanging methods between 4D applications and plug-ins in different languages. Conversely, it is not possible to display them in a text editor.
-- Text (extension *.txt*): In this format, methods are exported in text-only form. In this case, the methods are readable using a standard text editor or a source control tool.
-
-
-## Project method properties
-
-After creating a project method, you can rename it and modify its properties. Project method properties mainly concern their access and security conditions (access by users, integrated servers or services) as well as their execution mode.
-
-The other types of methods do not have specific properties. Their properties are related to those of the objects to which they are attached.
-
-To display the **Method Properties** dialog box for a project method, you can either:
-
-- in the [Code Editor](../code-editor/write-class-method.md), select the **Method Properties...** command in the **Method** menu,
-- or on the **Methods** page of the Explorer, **right-click** on the project method and select **Method Properties...** in the context menu or options menu.
-
-
-> A batch setting function allows you to modify a property for all or part of the database project methods in a single operation (see [Batch setting for method attributes](#batch-setting-for-method-attributes)).
-
-### Name
-
-You can change the name of a project method in the **Name** area of the **Method Properties** window or in the Explorer.
-
-The new name must comply with 4D naming rules (see [Identifiers](../Concepts/identifiers.md)). If a method with the same name already exists, 4D displays a message saying that the method name has already been used. If necessary, 4D sorts the list of methods again.
-
-:::caution
-
-Changing the name of a method already used in the database can invalidate any methods or formulas that use the old method name and runs the risk of disrupting application functioning. You can rename the method manually but it is strongly recommended to use the renaming function for project methods, described in [Renaming](https://doc.4d.com/4Dv20/4D/20.2/Renaming.300-6750165.en.html). With this function, you can automatically update the name wherever the method is called throughout the Design environment.
-
-With 4D Server, the method name is changed on the server when you finish editing it. If more than one user is modifying the method name at the same time, the final method name will be the name specified by the last user to finish editing it. You may want to specify a method owner so that only certain users can change the method's name
-
-:::
-
-:::info
-
-Database methods cannot be renamed. The same goes for triggers, form methods, and object methods, which are bound to objects and take their names from the object concerned.
-
-:::
-
-### Attributes
-
-You can control how project methods are used and/or called in different contexts using attributes. Note that you can set attributes for an entire selection of project methods using the Explorer (see following section).
-
-#### Invisible
-
-If you do not want users to be able to run a project method using the **Method...** command of the **Run** menu, you can make it Invisible by checking this option. An invisible method does not appear in the method execution dialog box.
-
-When you make a project method invisible, it is still available to database programmers. It remains listed on the method list of the Explorer and of the Code Editor.
-
-#### Shared by components and host database
-
-This attribute is used within the framework of components. When it is checked, it indicates that the method will be available to components when the application is used as the host database. On the other hand, when the application is used as a component, the method will be available to the host databases.
-
-For more information about components, refer to the [Developing and installing 4D components](../Extensions/develop-components.md) chapter.
-
-#### Execute on Server
-
-This attribute is only taken into account for a 4D application in client-server mode. When this option is checked, the project method is always executed on the server, regardless of how it is called.
-
-For more information on this option, refer to [Execute on Server attribute](https://doc.4d.com/4Dv20/4D/20/Execute-on-Server-attribute.300-6330555.en.html).
-
-### Execution mode
-
-This option allows you to declare the method eligible for execution in preemptive mode. It is described in the [Preemptive processes section](../Develop/preemptive.md).
-
-### Available through
-
-Availability attributes specify the external services which are allowed to explicitly call the method.
-
-#### Web Services
-
-This attribute lets you publish the current method as a Web Service accessible via SOAP requests. For more information, refer to the [Publication and use of Web Services](https://doc.4d.com/4Dv20/4D/20.2/Publication-and-use-of-Web-Services.200-6750103.en.html) chapter. When this option is checked, the **Published in WSDL** option is enabled.
-
-In the Explorer, project methods that are offered as a Web Service are given a specific icon.
-
-**Note:** You cannot publish a method as a Web service if its name includes characters that do not comply with XML nomenclature (e.g. containing spaces). If the method name is not in keeping with this, 4D does not assign the property.
-
-#### Published in WSDL
-
-This attribute is only available when the "Web Service" attribute is checked. It lets you include the current method in the WSDL of the 4D application. For more information about this, refer to [Generation of the WSDL](https://doc.4d.com/4Dv20/4D/20.2/Publishing-a-Web-Service-with-4D.300-6750334.en.html#502689).
-
-In the Explorer, project methods that are offered as a Web Service and published in WSDL are given a specific icon.
-
-#### 4D tags and URLs (4DACTION...)
-
-This option is used to reinforce 4D Web server security: when it is not checked, the project method cannot be executed via an HTTP request containing the special [4DACTION URL](../WebServer/httpRequests.md#4daction) used for calling 4D methods, nor the special [4DSCRIPT, 4DTEXT and 4DHTML tags](../Tags/transformation-tags.md).
-
-In the Explorer, project methods with this attribute are given a specific icon.
-
-For security reasons, this option is unchecked by default. Each method that can be executed using the special Web URL or tags must be indicated individually.
-
-#### SQL
-
-When it is checked, this option allows the project method to be executed by the SQL engine of 4D. By default, it is not selected, which means that, unless explicitly authorized, 4D project methods are protected and cannot be called by the SQL engine of 4D.
-
-This property applies to all internal and external SQL queries --- executed via the ODBC driver, SQL code inserted between the [Begin SQL](../commands-legacy/begin-sql.md)/[End SQL](../commands-legacy/end-sql.md) tags or the [QUERY BY SQL](../commands-legacy/query-by-sql.md) command.
-
-**Notes:**
-
-- Even if a method has the "SQL" attribute, access rights set at the level of the database settings and method properties are taken into account for the execution of the method.
-- The ODBC **SQLProcedure** function only returns project methods with the "SQL" attribute.
-
-For more information, refer to [4D SQL engine implementation](https://doc.4d.com/4Dv20/4D/20/4D-SQL-engine-implementation.300-6342089.en.html) in the 4D SQL manual.
-
-#### REST Server
-
-*This option is deprecated. Calling code through REST calls is only supported with [ORDA data model class functions](../REST/ClassFunctions.md).*
-
-#### Batch setting for method attributes
-
-Using the "Attributes for methods" dialog box, you can modify an attribute (Invisible, Offered as a Web Service, etc.) for all or part of the database project methods in a single operation. This feature is especially useful for modifying the attributes of a large number of project methods. It can also be used during development to apply common attributes to groups of similar methods quickly.
-
-For batch setting of method attributes:
-
-1. On the [Methods Page](https://doc.4d.com/4Dv20/4D/20.2/Methods-Page.300-6750119.en.html) of the 4D Explorer, expand the options menu, then choose the **Batch setting of attributes...** command. The **Attributes for methods** dialog appears.
-
-2. In the "Matching method name:" area, enter a string that lets you designate the methods you want to modify as a batch.
-The character string is used as a search criterion for the method names.
-
-Use the wildcard character @ to help define groups of methods:
-
-- To designate methods whose names begin with..., type @ at the end of the string. For example: `web@`
-- To designate methods whose names contain..., type @ in the middle of the string. For example: `web@write`
-- To designate methods whose names end with..., type @ at the beginning of the string. For example: `@write`
-- To designate all of the methods, just type @ in the area.
-
-**Notes:**
-- The search does not take upper/lower case into account.
-- You can enter several @ characters in the string, for example `dtro_@web@pro.@`
-
-3. In the "Attribute to Modify" area, choose an attribute from the drop-down list, then click on the **True** or **False** radio button corresponding to the value to be applied.
-
-**Note:** If the "Published in WSDL" attribute is set to True, it will only be applied to project methods already containing the "Offered as a Web Service" attribute.
-
-4. Click on **Apply**. The modification is applied instantly to all the project methods designated by the character string entered.
-
diff --git a/versioned_docs/version-20-R10/Project/components.md b/versioned_docs/version-20-R10/Project/components.md
index 0401a2609f1f16..b149e7e1faf406 100644
--- a/versioned_docs/version-20-R10/Project/components.md
+++ b/versioned_docs/version-20-R10/Project/components.md
@@ -1,6 +1,6 @@
---
id: components
-title: Components
+title: Dependencies
---
A 4D component is a set of 4D code and/or 4D forms representing one or more functionalities that you can add and use in your projects. For example, the [4D SVG](https://github.com/4d/4D-SVG) component adds advanced commands and an integrated rendering engine that can be used to display SVG files.
@@ -32,6 +32,23 @@ The "Contents" folder architecture is recommended for components if you want to
:::
+## Components made by 4D
+
+
+4D includes a set of components developed in-house. They can also be found in the [4D github repository](https://github.com/4d).
+
+
+|Component|Description|Main Features|
+|---|---|---|
+|[4D AiIKit](https://github.com/4d/4D-AIKit)|Set of classes to connect to third-party OpenAI APIs|`OpenAIChat`, `OpenAIImage`...|
+|[4D Labels](https://github.com/4d/4D-Labels)|Internal component required to build label templates||
+|[4D NetKit](https://developer.4d.com/4D-NetKit)|Set of web service tools to connect to third-party APIs|`OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` |
+|[4D Progress](https://github.com/4d/4D-Progress)|Open one or more progress bars in the same window|`Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... |
+|[4D SVG](https://github.com/4d/4D-SVG)|Create and manipulate common svg graphic objects|`SVGTool_Display_viewer`, multiple `SVG_` methods |
+|[4D ViewPro](ViewPro/getting-started.md)|Spreadsheet features in your forms|See [4D View Pro documentation](ViewPro/getting-started.md)|
+|[4D Widgets](https://github.com/4d/4D-Widgets)|Manage DatePicker, TimePicker, SearchPicker 4D widgets|`DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ...|
+|[4D WritePro Interface](https://github.com/4d/4D-WritePro-Interface)|Manage [4D Write Pro palettes](https://doc.4d.com/4Dv20R9/4D/20-R9/Entry-areas.300-7543821.en.html) and [table wizard](../WritePro/writeprointerface.md#table-wizard)|`WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget`|
+
## Loading components
diff --git a/versioned_docs/version-20-R10/Project/documentation.md b/versioned_docs/version-20-R10/Project/documentation.md
index 878f0074adddb6..4e7c7830f5602c 100644
--- a/versioned_docs/version-20-R10/Project/documentation.md
+++ b/versioned_docs/version-20-R10/Project/documentation.md
@@ -1,6 +1,6 @@
---
id: documentation
-title: Documenting a project
+title: Documentation
---
diff --git a/versioned_docs/version-20-R10/Project/overview.md b/versioned_docs/version-20-R10/Project/overview.md
index 4f0db73fe8ce30..9770f98fb75c01 100644
--- a/versioned_docs/version-20-R10/Project/overview.md
+++ b/versioned_docs/version-20-R10/Project/overview.md
@@ -1,6 +1,6 @@
---
id: overview
-title: Overview
+title: 4D at a glance
---
A 4D project contains all of the source code of a 4D application, whatever its deployment type (web, mobile, or desktop), from the database structure to the user interface, including code, forms, menus, user settings, or any required resources. A 4D project is primarily made of text-based files.
@@ -24,10 +24,6 @@ Multi-user development is managed via standard **source control** repository too
## Final application
-Project files can be [compiled](compiler.md) and easily deployed. 4D allows you to create three types of applications from your projects:
-
-- [web](WebServer/webServer.md) applications,
-- [mobile](https://developer.4d.com/go-mobile/) applications,
-- [desktop](Desktop/building.md) applications (client/server or single-user).
+Project files can be [compiled](compiler.md) and easily deployed. 4D allows you to create several types of application from your projects, including [web](WebServer/webServer.md) applications, [desktop](Desktop/building.md) applications (client/server or single-user), or mobile applications.
Back end applications can be deployed using 4D Server, 4D, or [merged with 4D Volume Desktop](../Desktop/building.md).
\ No newline at end of file
diff --git a/versioned_docs/version-20-R10/Project/project-method-properties.md b/versioned_docs/version-20-R10/Project/project-method-properties.md
new file mode 100644
index 00000000000000..9ef8bcffb9516d
--- /dev/null
+++ b/versioned_docs/version-20-R10/Project/project-method-properties.md
@@ -0,0 +1,135 @@
+---
+id: project-method-properties
+title: Project Method Properties
+---
+
+
+After creating a project method, you can rename it and modify its properties. Project method properties mainly concern their access and security conditions (access by users, integrated servers or services) as well as their execution mode.
+
+The other types of methods do not have specific properties. Their properties are related to those of the objects to which they are attached.
+
+To display the **Method Properties** dialog box for a project method, you can either:
+
+- in the [Code Editor](../code-editor/write-class-method.md), select the **Method Properties...** command in the **Method** menu,
+- or on the **Methods** page of the Explorer, **right-click** on the project method and select **Method Properties...** in the context menu or options menu.
+
+
+> A batch setting function allows you to modify a property for all or part of the database project methods in a single operation (see [Batch setting for method attributes](#batch-setting-for-method-attributes)).
+
+## Name
+
+You can change the name of a project method in the **Name** area of the **Method Properties** window or in the Explorer.
+
+The new name must comply with 4D naming rules (see [Identifiers](../Concepts/identifiers.md)). If a method with the same name already exists, 4D displays a message saying that the method name has already been used. If necessary, 4D sorts the list of methods again.
+
+:::caution
+
+Changing the name of a method already used in the database can invalidate any methods or formulas that use the old method name and runs the risk of disrupting application functioning. You can rename the method manually but it is strongly recommended to use the renaming function for project methods, described in [Renaming](https://doc.4d.com/4Dv20/4D/20.2/Renaming.300-6750165.en.html). With this function, you can automatically update the name wherever the method is called throughout the Design environment.
+
+With 4D Server, the method name is changed on the server when you finish editing it. If more than one user is modifying the method name at the same time, the final method name will be the name specified by the last user to finish editing it. You may want to specify a method owner so that only certain users can change the method's name
+
+:::
+
+:::info
+
+Database methods cannot be renamed. The same goes for triggers, form methods, and object methods, which are bound to objects and take their names from the object concerned.
+
+:::
+
+## Attributes
+
+You can control how project methods are used and/or called in different contexts using attributes. Note that you can set attributes for an entire selection of project methods using the Explorer (see following section).
+
+### Invisible
+
+If you do not want users to be able to run a project method using the **Method...** command of the **Run** menu, you can make it Invisible by checking this option. An invisible method does not appear in the method execution dialog box.
+
+When you make a project method invisible, it is still available to database programmers. It remains listed on the method list of the Explorer and of the Code Editor.
+
+### Shared by components and host database
+
+This attribute is used within the framework of components. When it is checked, it indicates that the method will be available to components when the application is used as the host database. On the other hand, when the application is used as a component, the method will be available to the host databases.
+
+For more information about components, refer to the [Developing and installing 4D components](../Extensions/develop-components.md) chapter.
+
+### Execute on Server
+
+This attribute is only taken into account for a 4D application in client-server mode. When this option is checked, the project method is always executed on the server, regardless of how it is called.
+
+For more information on this option, refer to [Execute on Server attribute](https://doc.4d.com/4Dv20/4D/20/Execute-on-Server-attribute.300-6330555.en.html).
+
+## Execution mode
+
+This option allows you to declare the method eligible for execution in preemptive mode. It is described in the [Preemptive processes section](../Develop/preemptive.md).
+
+## Available through
+
+Availability attributes specify the external services which are allowed to explicitly call the method.
+
+### Web Services
+
+This attribute lets you publish the current method as a Web Service accessible via SOAP requests. For more information, refer to the [Publication and use of Web Services](https://doc.4d.com/4Dv20/4D/20.2/Publication-and-use-of-Web-Services.200-6750103.en.html) chapter. When this option is checked, the **Published in WSDL** option is enabled.
+
+In the Explorer, project methods that are offered as a Web Service are given a specific icon.
+
+**Note:** You cannot publish a method as a Web service if its name includes characters that do not comply with XML nomenclature (e.g. containing spaces). If the method name is not in keeping with this, 4D does not assign the property.
+
+### Published in WSDL
+
+This attribute is only available when the "Web Service" attribute is checked. It lets you include the current method in the WSDL of the 4D application. For more information about this, refer to [Generation of the WSDL](https://doc.4d.com/4Dv20/4D/20.2/Publishing-a-Web-Service-with-4D.300-6750334.en.html#502689).
+
+In the Explorer, project methods that are offered as a Web Service and published in WSDL are given a specific icon.
+
+### 4D tags and URLs (4DACTION...)
+
+This option is used to reinforce 4D Web server security: when it is not checked, the project method cannot be executed via an HTTP request containing the special [4DACTION URL](../WebServer/httpRequests.md#4daction) used for calling 4D methods, nor the special [4DSCRIPT, 4DTEXT and 4DHTML tags](../Tags/transformation-tags.md).
+
+In the Explorer, project methods with this attribute are given a specific icon.
+
+For security reasons, this option is unchecked by default. Each method that can be executed using the special Web URL or tags must be indicated individually.
+
+### SQL
+
+When it is checked, this option allows the project method to be executed by the SQL engine of 4D. By default, it is not selected, which means that, unless explicitly authorized, 4D project methods are protected and cannot be called by the SQL engine of 4D.
+
+This property applies to all internal and external SQL queries --- executed via the ODBC driver, SQL code inserted between the [Begin SQL](../commands-legacy/begin-sql.md)/[End SQL](../commands-legacy/end-sql.md) tags or the [QUERY BY SQL](../commands-legacy/query-by-sql.md) command.
+
+**Notes:**
+
+- Even if a method has the "SQL" attribute, access rights set at the level of the database settings and method properties are taken into account for the execution of the method.
+- The ODBC **SQLProcedure** function only returns project methods with the "SQL" attribute.
+
+For more information, refer to [4D SQL engine implementation](https://doc.4d.com/4Dv20/4D/20/4D-SQL-engine-implementation.300-6342089.en.html) in the 4D SQL manual.
+
+### REST Server
+
+*This option is deprecated. Calling code through REST calls is only supported with [ORDA data model class functions](../REST/ClassFunctions.md).*
+
+### Batch setting for method attributes
+
+Using the "Attributes for methods" dialog box, you can modify an attribute (Invisible, Offered as a Web Service, etc.) for all or part of the database project methods in a single operation. This feature is especially useful for modifying the attributes of a large number of project methods. It can also be used during development to apply common attributes to groups of similar methods quickly.
+
+For batch setting of method attributes:
+
+1. On the [Methods Page](https://doc.4d.com/4Dv20/4D/20.2/Methods-Page.300-6750119.en.html) of the 4D Explorer, expand the options menu, then choose the **Batch setting of attributes...** command. The **Attributes for methods** dialog appears.
+
+2. In the "Matching method name:" area, enter a string that lets you designate the methods you want to modify as a batch.
+The character string is used as a search criterion for the method names.
+
+Use the wildcard character @ to help define groups of methods:
+
+- To designate methods whose names begin with..., type @ at the end of the string. For example: `web@`
+- To designate methods whose names contain..., type @ in the middle of the string. For example: `web@write`
+- To designate methods whose names end with..., type @ at the beginning of the string. For example: `@write`
+- To designate all of the methods, just type @ in the area.
+
+**Notes:**
+- The search does not take upper/lower case into account.
+- You can enter several @ characters in the string, for example `dtro_@web@pro.@`
+
+3. In the "Attribute to Modify" area, choose an attribute from the drop-down list, then click on the **True** or **False** radio button corresponding to the value to be applied.
+
+**Note:** If the "Published in WSDL" attribute is set to True, it will only be applied to project methods already containing the "Offered as a Web Service" attribute.
+
+4. Click on **Apply**. The modification is applied instantly to all the project methods designated by the character string entered.
+
diff --git a/versioned_docs/version-20-R10/Users/overview.md b/versioned_docs/version-20-R10/Users/overview.md
index 5ab43252d88ab9..5b605736ba4df6 100644
--- a/versioned_docs/version-20-R10/Users/overview.md
+++ b/versioned_docs/version-20-R10/Users/overview.md
@@ -7,19 +7,21 @@ If more than one person uses an application, which is usually the case in client
4D access control strategy depends on your deployment configuration:
-- in multi-user applications, you can rely on 4D users and groups,
+- in multi-user Web and REST applications, access control is based upon [ORDA's Roles and privileges](../ORDA/privileges.md) features.
+- in multi-user desktop applications, you can rely on 4D users and groups,
- in single-user applications, user access is controlled through the system session, using commands such as [`Current system user`](../commands-legacy/current-system-user.md).
-> For an overview of 4D's security features, see the [4D Security guide](https://blog.4d.com/4d-security-guide/).
+:::tip Related Blog post
+For an overview of 4D's security features, see the [4D Security guide](https://blog.4d.com/4d-security-guide/).
+:::
-## Access control in multi-user applications
-Multi-user applications are deployed with 4D Server. They include client-server, Web, or REST applications.
+## Access control in multi-user applications
-In multi-user applications, access control is done through [4D users and groups](handling_users_groups.md). You create users, assign passwords, create access groups that have different levels of privileges in the application.
+Multi-user desktop applications are deployed with 4D Server. In multi-user applications, access control is done through [4D users and groups](handling_users_groups.md). You create users, assign passwords, create access groups that have different levels of privileges in the application.
You initiate the 4D password access control system with 4D Server by [assigning a password to the Designer user](handling_users_groups.md#designer-and-administrator). Until you give the Designer a password, all application access are done with the Designer's access rights, even if you have [set up users and groups](handling_users_groups.md) (when the application opens, no ID is required). Any part of the application can be opened.
@@ -28,6 +30,7 @@ When a password is assigned to the Designer, all the access privileges take effe
To disable the password access system, you just need to remove the Designer password.
+
## Access control in single-user applications
diff --git a/versioned_docs/version-20-R10/WebServer/gettingStarted.md b/versioned_docs/version-20-R10/WebServer/gettingStarted.md
index 70944f2fa5678e..cafea2e0afef2a 100644
--- a/versioned_docs/version-20-R10/WebServer/gettingStarted.md
+++ b/versioned_docs/version-20-R10/WebServer/gettingStarted.md
@@ -1,6 +1,6 @@
---
id: gettingStarted
-title: Web Development
+title: Getting started
---
This "Getting started" section is geared at first-time users who want an overall overview on how to go from zero to a 4D website that handles data from the database. Let's start!
diff --git a/versioned_docs/version-20-R10/WebServer/webServerObject.md b/versioned_docs/version-20-R10/WebServer/webServerObject.md
index 5b6fb9ca138964..74063641d6ffd2 100644
--- a/versioned_docs/version-20-R10/WebServer/webServerObject.md
+++ b/versioned_docs/version-20-R10/WebServer/webServerObject.md
@@ -1,10 +1,10 @@
---
id: webServerObject
-title: Web Server object
+title: Web Server instances
---
-A 4D project can start and monitor a web server for the main (host) application as well as each hosted component.
+A 4D project can start and monitor a web server for the main (host) application as well as each [hosted component](../Concepts/components.md).
For example, if you installed two components in your main application, you can start and monitor up to three independant web servers from your application:
diff --git a/versioned_docs/version-20-R10/code-editor/write-class-method.md b/versioned_docs/version-20-R10/code-editor/write-class-method.md
index 7782fb1c578ef1..5fe71f11ca8b6d 100644
--- a/versioned_docs/version-20-R10/code-editor/write-class-method.md
+++ b/versioned_docs/version-20-R10/code-editor/write-class-method.md
@@ -892,3 +892,17 @@ Strict syntax rules must be observed in order for macros files to respect the XM
- Comments of the "// my comment" type, allowed inside `
` elements in previous versions of 4D, are not compatible with the XML syntax. The lines of comments must respect the standard `""` form.
- The `<>` symbols used more particularly for interprocess object names must be encoded. For example, the `<>params` variable must be written `<>params`.
- The initial `` declaration tag could be omitted in previous versions of 4D. It is now mandatory; otherwise, the file will not be loaded.
+
+## Importing and exporting code
+
+You can import and export a method or a class code in the form of a file. These commands are found in the **Method** menu of the [Code editor](../code-editor/write-class-method.md).
+
+- When you select the **Export Method...** command, a standard file saving dialog box appears, allowing you to choose the name, location and format of the export file (see below). As with printing, exporting does not take the collapsed state of code structures into account and the entire code is exported.
+- When you select the **Import Method...** command, a standard file opening dialog box appears, allowing you to designate the file to be imported. Importing replaces the selected text in the method. To replace an existing method by an imported method, select the entire contents of the method before carrying out the import.
+
+The import/export function is multi-platform: a method exported under Mac OS can be imported under Windows and vice versa; 4D handles the conversion of characters when necessary.
+
+4D can export and import methods in two formats:
+
+- 4D method (extension *.c4d*): In this format, methods are exported in encoded form. The names of objects are tokenized. This format is used in particular for exchanging methods between 4D applications and plug-ins in different languages. Conversely, it is not possible to display them in a text editor.
+- Text (extension *.txt*): In this format, methods are exported in text-only form. In this case, the methods are readable using a standard text editor or a source control tool.
diff --git a/versioned_docs/version-20-R10/commands/command-index.md b/versioned_docs/version-20-R10/commands/command-index.md
index 225c10ff49f771..4c296f29ee1766 100644
--- a/versioned_docs/version-20-R10/commands/command-index.md
+++ b/versioned_docs/version-20-R10/commands/command-index.md
@@ -1,6 +1,6 @@
---
id: command-index
-title: Index
+title: Commands by name
---
[4D](#4D) - [A](#A) - [B](#B) - [C](#C) - [D](#D) - [E](#E) - [F](#F) - [G](#G) - [H](#H) - [I](#I) - [J](#J) - [K](#K) - [L](#L) - [M](#M) - [N](#N) - [O](#O) - [P](#P) - [Q](#Q) - [R](#R) - [S](#S) - [T](#T) - [U](#U) - [V](#V) - [W](#W) - [X](#X) - [Y](#Y) - [Z](#Z)
diff --git a/versioned_docs/version-20-R10/commands/create-deployment-license.md b/versioned_docs/version-20-R10/commands/create-deployment-license.md
index dce3cec3f0bec1..0084093004f50c 100644
--- a/versioned_docs/version-20-R10/commands/create-deployment-license.md
+++ b/versioned_docs/version-20-R10/commands/create-deployment-license.md
@@ -91,10 +91,10 @@ The command returns a *status* object containing the following properties:
Use the automatic syntax to create a single-user 4D application:
```4d
- var $status : Object
- var $application : 4D.File
- $application:=Folder(fk desktop folder).folder("myApp.app")
- $status:=Create deployment license($application;4D Volume Desktop)
+ var $status : Object
+ var $application : 4D.File
+ $application:=Folder(fk desktop folder).folder("myApp.app")
+ $status:=Create deployment license($application;4D Volume Desktop)
```
@@ -104,17 +104,17 @@ Use the automatic syntax to create a single-user 4D application:
Designate a license to use:
```4d
- var $status : Object
- var $application : 4D.File
- var $license : 4D.File
- $license:=Folder(fk licenses folder).file("4UUD200-xxx.license4D")
- $application:=Folder(fk desktop folder).folder("myApp.app")
- $status:=Create deployment license($application;$license)
+ var $status : Object
+ var $application : 4D.File
+ var $license : 4D.File
+ $license:=Folder(fk licenses folder).file("4UUD200-xxx.license4D")
+ $application:=Folder(fk desktop folder).folder("myApp.app")
+ $status:=Create deployment license($application;$license)
```
## See also
-[Blog post - Finalize an application with 4D commands](https://blog.4d.com/finalize-an-application-with-4d-commands)
+[Blog post - Build an application with 4D commands](https://blog.4d.com/build-an-application-with-4d-commands)
## Properties
diff --git a/versioned_docs/version-20-R10/commands/theme/Database_Methods.md b/versioned_docs/version-20-R10/commands/theme/Database_Methods.md
deleted file mode 100644
index 9b499e6ee0a644..00000000000000
--- a/versioned_docs/version-20-R10/commands/theme/Database_Methods.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-id: Database_Methods_theme
-title: Database Methods
-slug: /commands/theme/Database-Methods
----
-
-
-||
-|---|
-|[](../../commands-legacy/on-backup-shutdown-database-method.md)
|
-|[](../../commands-legacy/on-backup-startup-database-method.md)
|
-|[](../../commands-legacy/on-drop-database-method.md)
|
-|[](../../commands-legacy/on-exit-database-method.md)
|
-|[](../../commands-legacy/on-host-database-event-database-method.md)
|
-|[](../../commands-legacy/on-mobile-app-action-database-method.md)
|
-|[](../../commands-legacy/on-mobile-app-authentication-database-method.md)
|
-|[](../../commands-legacy/on-rest-authentication-database-method.md)
|
-|[](../../commands-legacy/on-server-close-connection-database-method.md)
|
-|[](../../commands-legacy/on-server-open-connection-database-method.md)
|
-|[](../../commands-legacy/on-server-shutdown-database-method.md)
|
-|[](../../commands-legacy/on-server-startup-database-method.md)
|
-|[](../../commands-legacy/on-sql-authentication-database-method.md)
|
-|[](../../commands-legacy/on-startup-database-method.md)
|
-|[](../../commands-legacy/on-system-event-database-method.md)
|
-|[](../../commands-legacy/on-web-authentication-database-method.md)
|
-|[](../../commands-legacy/on-web-connection-database-method.md)
|
-|[](../../commands-legacy/on-web-legacy-close-session-database-method.md)
|
diff --git a/versioned_docs/version-20-R10/settings/overview.md b/versioned_docs/version-20-R10/settings/overview.md
index 0d52cdbde7c0dc..ede138092298e2 100644
--- a/versioned_docs/version-20-R10/settings/overview.md
+++ b/versioned_docs/version-20-R10/settings/overview.md
@@ -7,8 +7,12 @@ The Settings configure how the current project functions. These parameters may b

-> 4D provides another set of parameters, called **Preferences**, that apply to the 4D IDE application. For more information, refer to [Preferences](../Preferences/general.md).
+:::info
+
+4D provides another set of parameters, called **Preferences**, that apply to the 4D IDE application. For more information, refer to [Preferences](../Preferences/general.md).
+
+:::
## Accessing the settings
@@ -18,7 +22,7 @@ You can access the Settings dialog box:
- by clicking **Settings** on the 4D toolbar
- on 4D Server, using the **Edit > Settings...** menu option
-When [**User settings** mode is enabled](../Desktop/user-settings.md), **Settings...** is renamed **Structure Settings...** and two additional menu commands are available at each location:
+When [**User settings** mode is enabled](#user-settings), **Settings...** is renamed **Structure Settings...** and two additional menu commands are available at each location:
- **User Settings...** gives you access to settings that can be stored externally in a user file. If these are modified, they are used instead of structure settings.
- **User Settings for Data File...** gives you access to settings that can be stored externally in a user file attached to the current data file. If they are modified, they are used instead of user or structure settings.
@@ -47,8 +51,137 @@ A parameter still appears in bold even when its value is replaced manually with
Most of the settings are applied immediately. However, a few of them (such as the Startup environment setting) only take effect when the database is restarted. In this case, a dialog box appears to inform you that the change will take effect at the next startup.
-## Resetting the settings
+### Resetting the settings
To reset the parameters to their default values and remove the bold style indicating that they have been customized, click **Reset to factory settings**.
This button resets all the parameters of the current page. It becomes active when at least one parameter has been modified on the current page.
+
+
+## User Settings
+
+4D provides two modes of operation for project Settings:
+
+* **Standard** mode: all settings are stored in the [*settings.4DSettings* file at the project level](../Project/architecture.md#sources) and are applied in all cases. This is the default mode, suitable for development phase (all applications).
+
+* **User settings** mode: part of the custom settings are stored in a *settings.4DSettings* file [in the Settings folder](../Project/architecture.md#settings-user) (for all data files) or [in the Data folder](../Project/architecture.md#settings-user-data) (for this data file) and are used instead of the structure settings. This mode is suitable for deployment phase for Desktop applications. You enable this mode using an option located on the [Security page](./security.md) of the Settings.
+
+By defining user settings, you can keep custom settings between updates of your 4D applications, or manage different settings for the same 4D application deployed on several different sites. It also makes it possible to use programming to manage setting files using XML.
+
+4D can generate and use two types of user settings:
+
+- **User Settings**: They are used instead of structure settings for any data file opened with the application.
+- **User Settings for Data file**: They can be defined specifically for each data file used with your application, configuring for example the port ID or the server cache.
+
+With this option, you can easily deploy and update several copies of the same desktop application with several data files, each containing different settings.
+
+Consider for example the following configuration, where an application is duplicated and each copy uses a different Port ID setting. If this user setting is linked to the data file, you will be able to update the application without having to manually change the Port ID:
+
+
+
+### Enabling User settings
+
+To enable user settings, you need to check the **Settings** > **Security** > **Enable User Settings** option:
+
+
+
+When you check this option, the settings are separated into three dialog boxes:
+
+* **Structure Settings**
+* **User Settings**
+* **User Settings for Data file**
+
+You can access these dialog boxes using the **Design > Settings...** menu or the **Settings** button in the toolbar:
+
+
+
+You can also access these dialog boxes using the [OPEN SETTINGS WINDOW](../commands-legacy/open-settings-window.md) command with the appropriate *settingsType* selector.
+
+The Structure Settings dialog box is identical to the standard Settings, and provides access to all its properties (which can be overriden by user settings).
+
+### User Settings and User Settings for Data file
+
+The **User Settings** and **User Settings for Data File** dialog boxes contain a selection of relevant properties that can be defined for all data files or a single data file:
+
+
+
+The following table lists the pages of settings found in the **User Settings** and **User Settings for Data File** dialog boxes and describes their main differences with respect to standard settings:
+
+| **Page of Structure Settings** | **Page of User Settings** | **Page of User Settings for Data File**|
+| --- | --- | --- |
+| [General page](./general.md) | N/a | N/a |
+| [Interface page](./interface.md) | Identical to standard settings | Identical to standard settings |
+| [Compiler page](./compiler.md) | N/a | N/a |
+| [Database/Data storage page](./database.md#data-storage-page) | N/a | N/a |
+| [Database/Memory page](./database.md#memory-page) | Identical to standard settings | Identical to standard settings |
+| [Backup/Scheduler page](./../Backup/settings.md#scheduler) | N/a | Identical to standard settings |
+| [Backup/Configuration page](./../Backup/settings.md#configuration) | N/a | Identical to standard settings |
+| [Backup/Backup & Restore page](./../Backup/settings.md#backup--restore) | N/a | Identical to standard settings |
+| [Client-server/Network options page](./client-server.md#network-options-page) | Identical to standard settings | Identical to standard settings |
+| [Client-server/IP configuration page](./client-server.md#ip-configuration-page) | Identical to standard settings | Identical to standard settings |
+| [Web/Configuration page](./web.md#configuration) | Identical to standard settings | Identical to standard settings |
+| [Web/Options (I) page](./web.md#options-i) | Identical to standard settings | Identical to standard settings |
+| [Web/Options (II) page](./web.md#options-ii) | Identical to standard settings | Identical to standard settings |
+| [Web/Log (type) page](./web.md#log-type) | Identical to standard settings | Identical to standard settings |
+| [Web/Log (backup) page](./web.md#log-backup) | Identical to standard settings | Identical to standard settings |
+| [Web/Web Services page](./web.md#web-services) | Method prefixing option not available | Method prefixing option not available |
+| [SQL page](./sql.md) | Identical to standard settings | Identical to standard settings |
+| [PHP page](./php.md) | Identical to standard settings | Identical to standard settings |
+| [Security page](./security.md) | N/a | N/a |
+| [Compatibility page](./compatibility.md) | N/a | N/a |
+
+When you edit settings in this dialog box, they are automatically stored in the corresponding *settings.4DSettings* file (see below) or the *Backup.4DSettings* file (check the [Backup settings](../Backup/settings.md) page for more information).
+
+### `SET DATABASE PARAMETER` and user settings
+
+Some of the user settings are also available through the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. User settings are parameters with the **Kept between two sessions** property set to **Yes**.
+
+When the **User Settings** feature is enabled, user settings edited by the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command are automatically saved in the user settings for the data file.
+
+> `Table sequence number` is an exception; this setting value is always saved in the data file itself.
+
+### settings.4DSettings files
+
+When you [check the **Enable User Settings** option](#enabling-user-settings), user settings files are automatically created. Their location depends on the type of user settings defined.
+
+#### User Settings
+
+The standard user settings file is automatically created and placed in a settings folder at the following location:
+
+[`ProjectFolder/Settings/settings.4DSettings`](../Project/architecture.md#settings-user)
+
+... where *ProjectFolder* is the name of the folder containing the project structure file.
+
+In merged applications, the user settings file is placed at the following location:
+
+* In single-user versions: ProjectFolder/Database/Settings/settings.4DSettings
+* In client/server versions: ProjectFolder/Server Database/Settings/settings.4DSettings
+
+#### User Settings for Data File
+
+The user settings file linked to the data file is automatically created and placed in a settings folder at the following location:
+
+[`Data/Settings/settings.4DSettings`](../Project/architecture.md#settings-user-data)
+
+... where *Data* is the name of the folder containing the current data file of the application.
+
+> When the data file is located at the same level as the project structure file, structure-based and data-based user settings files share the same location and file. The **User Settings for Data File...** menu command is not proposed.
+
+:::note
+
+Settings files are XML files; they can be read and modified using integrated 4D XML commands or using an XML editor. This means that you can manage settings by programming, particularly in the context of applications compiled and merged with 4D Volume Desktop. When you modify this file by programming, the changes are only taken into account the next time the database is opened.
+
+:::
+
+
+### Priority of settings
+
+Settings can be stored at three levels. Each setting defined at one level overrides the same setting defined at a previous level, if any:
+
+| **Priority level** | **Name** | **Location** | **Comments** |
+|---|---|---|---|
+| 3 (lowest) | Structure settings (or Settings when "User settings" feature not enabled) | ***settings.4DSettings*** file in the Sources folder (project databases) or in the Settings folder as the same level as the structure file (binary databases) | Unique location when user settings are not enabled. Applied to all copies of the application. |
+| 2 | User settings (all data files) | ***settings.4DSettings*** file in the Settings folder at the same level as the Project folder | Overrides Structure settings. Stored within the application package. |
+| 1 (highest) | User settings (current data file) | ***settings.4DSettings*** file in the Settings folder at the same level as the data file | Overrides Structure settings and User settings. Applied only when the linked data file is used with the application. |
+
+Keep in mind that user settings files only contain a subset of relevant settings, while the structure file contains all custom settings, including core settings.
diff --git a/versioned_docs/version-20-R10/settings/security.md b/versioned_docs/version-20-R10/settings/security.md
index 2b7ffd9cfbf12b..572de63c511aa2 100644
--- a/versioned_docs/version-20-R10/settings/security.md
+++ b/versioned_docs/version-20-R10/settings/security.md
@@ -40,7 +40,7 @@ This page contains options related to data access and protection for your deskto
- **Disabled for all**: This option disables control within formulas. When this option is checked, users have access to all the 4D commands and plug-ins as well as all project methods (except for invisible ones).
**Note:** This option takes priority over the [`SET ALLOWED METHODS`](../commands/set-allowed-methods.md) command. When it is checked, this command does nothing.
-- **Enable User Settings**: You need to check this option to be able to display separated dialog boxes for user settings. When this option is checked, up to three dialog boxes are available: **Structure Settings**, **User Settings**, and **User Settings for Data File**. For more information, refer to [User settings](../Desktop/user-settings.md).
+- **Enable User Settings**: You need to check this option to be able to display separated dialog boxes for user settings. When this option is checked, up to three dialog boxes are available: **Structure Settings**, **User Settings**, and **User Settings for Data File**. For more information, refer to [User settings](../settings/overview.md#user-settings).
- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. For security reasons, you must explicitly authorize the execution of this method in each host database. To do this, you must check this option. By default, it is not checked.
diff --git a/versioned_docs/version-20-R9/API/SessionClass.md b/versioned_docs/version-20-R9/API/SessionClass.md
index 0b4aee999a4efb..00c88a1190f68d 100644
--- a/versioned_docs/version-20-R9/API/SessionClass.md
+++ b/versioned_docs/version-20-R9/API/SessionClass.md
@@ -140,7 +140,7 @@ The `.createOTP()` function create
For more information about the OTP tokens, please refer to [this section](../WebServer/sessions.md#session-token-otp).
-By default, if the *lifespan* parameter is omitted, the token is created with the same lifespan as the [`.idleTimeOut`](#idletimeout) of the session. You can set a custom timeout by passing a value in seconds in *lifespan* (the minimum value is 10 seconds, *lifespan* is reset to 10 if a smaller value is passed). If an expired token is used to restore a web user session, it is ignored.
+By default, if the *lifespan* parameter is omitted, the token is created with the same lifespan as the [`.idleTimeOut`](#idletimeout) of the session. You can set a custom timeout by passing a value in seconds in *lifespan*. If an expired token is used to restore a web user session, it is ignored.
The returned token can then be used in exchanges with third-party applications or websites to securely identify the session. For example, the session OTP token can be used with a payment application.
diff --git a/versioned_docs/version-20-R9/Concepts/operators.md b/versioned_docs/version-20-R9/Concepts/operators.md
index db5792e85ccf6b..d15c09b5e9319c 100644
--- a/versioned_docs/version-20-R9/Concepts/operators.md
+++ b/versioned_docs/version-20-R9/Concepts/operators.md
@@ -95,7 +95,9 @@ The following compound assignment operators are supported:
||Time *= Number |Number |`$t1*=5 //$t1:=$t1*5`|
||Picture *= Number|Picture|`$p1*=5 //$p1:=$p1*5 (resize $p1 by 5)`|
-These operators apply on any [assignable expressions](quick-tour.md#assignable-vs-non-assignable-expressions) (except pictures as object properties or collection elements).
+These operators apply on any [assignable expressions](quick-tour.md#assignable-vs-non-assignable-expressions) except:
+- pictures as object properties or collection elements,
+- array index variables.
The operation "source `operator` value" is not strictly equivalent to "source := source `operator` value" because the expression designating the source (variable, field, object property, collection element) is only evaluated once. For example, in such expression as `getPointer()->+=1` the `getPointer` method is called only once.
diff --git a/versioned_docs/version-20-R9/Extensions/overview.md b/versioned_docs/version-20-R9/Extensions/overview.md
index 2fabda08c1a413..399a8481196858 100644
--- a/versioned_docs/version-20-R9/Extensions/overview.md
+++ b/versioned_docs/version-20-R9/Extensions/overview.md
@@ -13,7 +13,7 @@ The 4D [project architecture](../Project/architecture.md) is modular. You can pr
|Component|Description|Main Features|
|---|---|---|
-|[4D AiIKit](https://github.com/4d/4D-AIKit)|Set of classes to connect to third-party OpenAI APIs|`OpenAIChat`, `OpenAIImage`...|
+|[4D AIKit](https://github.com/4d/4D-AIKit)|Set of classes to connect to third-party OpenAI APIs|`OpenAIChat`, `OpenAIImage`...|
|[4D Labels](https://github.com/4d/4D-Labels)|Internal component required to build label templates||
|[4D NetKit](https://developer.4d.com/4D-NetKit)|Set of web service tools to connect to third-party APIs|`OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` |
|[4D Progress](https://github.com/4d/4D-Progress)|Open one or more progress bars in the same window|`Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... |
diff --git a/versioned_docs/version-20-R9/commands-legacy/create-deployment-license.md b/versioned_docs/version-20-R9/commands-legacy/create-deployment-license.md
index bbfa678fc58459..696c13b48bcb0d 100644
--- a/versioned_docs/version-20-R9/commands-legacy/create-deployment-license.md
+++ b/versioned_docs/version-20-R9/commands-legacy/create-deployment-license.md
@@ -45,17 +45,17 @@ The command returns a *status* object containing the following properties:
## Example
```4d
- var $status : Object
- var $application : 4D.File
- var $license : 4D.File
- $license:=Folder(fk licenses folder).file("4UUD200-xxx.license4D")
- $application:=Folder(fk desktop folder).folder("myApp.app")
- $status:=Create deployment license($application;$license)
+ var $status : Object
+ var $application : 4D.File
+ var $license : 4D.File
+ $license:=Folder(fk licenses folder).file("4UUD200-xxx.license4D")
+ $application:=Folder(fk desktop folder).folder("myApp.app")
+ $status:=Create deployment license($application;$license)
```
## See also
-[Blog post - Finalize an application with 4D commands](https://blog.4d.com/finalize-an-application-with-4d-commands)
+[Blog post - Build an application with 4D commands](https://blog.4d.com/build-an-application-with-4d-commands)
## Properties
diff --git a/versioned_docs/version-20/Concepts/operators.md b/versioned_docs/version-20/Concepts/operators.md
index ec2c69ca40b83c..52e162bb7acb9b 100644
--- a/versioned_docs/version-20/Concepts/operators.md
+++ b/versioned_docs/version-20/Concepts/operators.md
@@ -93,7 +93,9 @@ The following compound assignment operators are supported:
||Time *= Number |Number |`$t1*=5 //$t1:=$t1*5`|
||Picture *= Number|Picture|`$p1*=5 //$p1:=$p1*5 (resize $p1 by 5)`|
-These operators apply on any [assignable expressions](quick-tour.md#assignable-vs-non-assignable-expressions) (except pictures as object properties or collection elements).
+These operators apply on any [assignable expressions](quick-tour.md#assignable-vs-non-assignable-expressions) except:
+- pictures as object properties or collection elements,
+- array index variables.
The operation "source `operator` value" is not strictly equivalent to "source := source `operator` value" because the expression designating the source (variable, field, object property, collection element) is only evaluated once. For example, in such expression as `getPointer()->+=1` the `getPointer` method is called only once.
diff --git a/versioned_docs/version-20/settings/web.md b/versioned_docs/version-20/settings/web.md
index 2c8245afa2126e..847ac4ae728695 100644
--- a/versioned_docs/version-20/settings/web.md
+++ b/versioned_docs/version-20/settings/web.md
@@ -5,41 +5,37 @@ title: Web page
Using the tabs on the **Web** page, you can configure various aspects of the integrated Web server of 4D (security, startup, connections, Web services, etc.). For more information about how the 4D Web server works, see [Web server](../WebServer/webServer.md). For more information about 4D Web services, refer to the [Publication and use of Web Services](https://doc.4d.com/4Dv19/4D/19/Publication-and-use-of-Web-Services.200-5416624.en.html) chapter.
-## Configuration
+## Configuration
### Publishing Information
-#### Launch Web Server at Startup
+#### Launch Web Server at Startup
Indicates whether the Web server will be launched on startup of the 4D application. This option is described in the [Web server administration](../WebServer/webServerAdmin.md#starting-the-4d-web-server) section.
-#### Enable HTTP
+#### Enable HTTP
Indicates whether or not the Web server will accept non-secure connections. See [Enable HTTP](../WebServer/webServerConfig.md#enable-http).
-
-#### HTTP Port
+#### HTTP Port
Listening IP (TCP) port number for HTTP. See [HTTP Port](../WebServer/webServerConfig.md#http-port).
-#### IP Address
+#### IP Address
IP address on which the 4D web server will receive HTTP requests (4D local and 4D Server). See [IP Address to listen](../WebServer/webServerConfig.md#ip-address-to-listen).
-
-#### Enable HTTPS
+#### Enable HTTPS
Indicates whether or not the Web server will accept secure connections. See [Enable HTTPS](../WebServer/webServerConfig.md#enable-https).
-
-#### HTTPS Port
+#### HTTPS Port
Allows you to modify the TCP/IP port number used by the Web server for secured HTTP connections over TLS (HTTPS protocol). See [HTTPS Port](../WebServer/webServerConfig.md#https-port).
#### Allow database access through 4DSYNC URLs
-*Compatibility Note*: This option is [deprecated](../WebServer/webServerConfig.md#deprecated-settings). For database access through HTTP, it is now recommended to use ORDA remote datastore features and REST requests.
-
+_Compatibility Note_: This option is [deprecated](../WebServer/webServerConfig.md#deprecated-settings). For database access through HTTP, it is now recommended to use ORDA remote datastore features and REST requests.
### Paths
@@ -51,13 +47,9 @@ Define the default location of the Web site files and to indicate the hierarchic
Designate a default home page for the Web server. See [Default Home page](../WebServer/webServerConfig.md#default-home-page).
-
-
-
## Options (I)
-### Cache
-
+### Cache
#### Use the 4D Web cache
@@ -67,38 +59,36 @@ Enables the web page cache. See [Cache](../WebServer/webServerConfig.md#cache).
Sets the cache size. See [Cache](../WebServer/webServerConfig.md#cache).
-
-#### Clear Cache
+#### Clear Cache
At any moment, you can clear the cache of the pages and images that it contains (if, for example, you have modified a static page and you want to reload it in the cache).
To do so, you just have to click on the **Clear Cache** button. The cache is then immediately cleared.
> You can also use the special URL [/4DCACHECLEAR](../WebServer/webServerAdmin.md#4dcacheclear).
-### Web Process
+### Web Process
-This area allows you to configure how the web server will handle user sessions and their associated processes.
+This area allows you to configure how the web server will handle user sessions and their associated processes.
> The **Legacy sessions** option is only available for compatibility in databases/projects created with 4D versions prior to 4D v18 R6.
-#### Scalable sessions (multi-process sessions)
-
-When you select this option (recommended), a user session is managed through a **Session** object. See the [User sessions page](../WebServer/sessions.md#enabling-sessions).
+#### Scalable sessions (multi-process sessions)
+When you select this option (recommended), a user session is managed through a **Session** object. See the [User sessions page](../WebServer/sessions.md#enabling-sessions).
-#### No sessions
+#### No sessions
-When this option is selected, the web server does not provide any specific support for [user sessions](../WebServer/sessions.md). Successive requests from web clients are always independent and no context is maintained on the server.
+When this option is selected, the web server does not provide any specific support for [user sessions](../WebServer/sessions.md). Successive requests from web clients are always independent and no context is maintained on the server.
In this mode, you can configure additional web server setttings:
-- [Maximum Concurrent Web Processes](#maximum-concurrent-web-processes)
-- [Reuse Temporary Contexts (4D in remote mode)](#reuse-temporary-contexts)
-- [Use preemptive processes](#use-preemptive-processes)
+- [Maximum Concurrent Web Processes](#maximum-concurrent-web-processes)
+- [Reuse Temporary Contexts (4D in remote mode)](#reuse-temporary-contexts)
+- [Use preemptive processes](#use-preemptive-processes)
#### Legacy sessions (single process sessions)
-*Compatibility Note:* This option is only available in databases/projects created with a 4D version prior to 4D v18 R6.
+_Compatibility Note:_ This option is only available in databases/projects created with a 4D version prior to 4D v18 R6.
This option enables the handling of legacy user sessions by the 4D HTTP server. This mechanism is described in the [Web Sessions Management (Legacy)](https://doc.4d.com/4Dv19/4D/19/Web-Sessions-Management-Legacy.300-5391806.en.html) section. See [Keep Session](../WebServer/webServerConfig.md#keep-session).
@@ -110,31 +100,27 @@ Not available with [scalable sessions](../WebServer/sessions.md).
Strictly high limit of concurrent web processes. See [Maximum Concurrent Web Processes](../WebServer/webServerConfig.md#maximum-concurrent-web-processes).
-
#### Reuse Temporary Contexts
Not available with [scalable sessions](../WebServer/sessions.md).
Allows you to optimize the operation of the 4D Web server in remote mode. See [Reuse temporary contexts in remote mode)](../WebServer/webServerConfig.md#reuse-temporary-contexts-in-remote-mode).
-#### Use preemptive processes
+#### Use preemptive processes
-Not available with [scalable sessions](../WebServer/sessions.md).
+Not available with [scalable sessions](../WebServer/sessions.md).
Enables preemptive web processes in your compiled applications. When **Use preemptive processes** is selected, the eligibility of your web-related code (including 4D tags and web database methods) to the preemptive execution will be evaluated during the compilation. For more information, see [Using preemptive Web processes](../WebServer/preemptiveWeb.md).
-> This option does not apply to scalable sessions, REST processes (compiled mode), and web service processes (server or client). See [Enabling the preemptive mode for the web server](../WebServer/webServerConfig.md#use-preemptive-processes).
-
+> This option does not apply to scalable sessions, REST processes (compiled mode), and web service processes (server or client). See [Enabling the preemptive mode for the web server](../WebServer/webServerConfig.md#use-preemptive-processes).
-#### Inactive Process Timeout
+#### Inactive Process Timeout
-Not available with [scalable sessions](../WebServer/sessions.md).
+Not available with [scalable sessions](../WebServer/sessions.md).
Allows you to set the maximum timeout before closing for inactive Web processes on the server. See [Inactive Process Timeout](../WebServer/webServerConfig.md#inactive-process-timeout).
-
-
-### Web Passwords
+### Web Passwords
Set the authentication system that you want to apply to your Web server. Three options are proposed:
@@ -142,12 +128,11 @@ Custom (default)
Passwords with BASIC protocol
Passwords with DIGEST protocol
-Using **Custom** authentication is recommended. See [**Authentication**](../WebServer/authentication.md) chapter in the *Web Development* documentation.
-
+Using **Custom** authentication is recommended. See [**Authentication**](../WebServer/authentication.md) chapter in the _Web Development_ documentation.
## Options (II)
-### Text Conversion
+### Text Conversion
#### Send Extended Characters Directly
@@ -157,7 +142,7 @@ See [Deprecated Settings](../WebServer/webServerConfig.md#deprecated-settings).
Define the set of characters to be used by the 4D Web server. See [Character Set](../WebServer/webServerConfig.md#character-set).
-### Keep-Alive Connections
+### Keep-Alive Connections
See [Deprecated Settings](../WebServer/webServerConfig.md#keep-alive-connections).
@@ -171,36 +156,31 @@ Enables Cross-origin resource sharing (CORS) service. See [Enable CORS Service](
List of allowed hosts and methods for the CORS service. See [CORS Settings](../WebServer/webServerConfig.md#cors-settings).
-
-
## Log (type)
+### Log Format
-### Log Format
-
-Starts or stops the recording of requests received by the 4D web server in the *logweb.txt* file and sets its format. See [Log Recording](../WebServer/webServerConfig.md#log-recording).
+Starts or stops the recording of requests received by the 4D web server in the _logweb.txt_ file and sets its format. See [Log Recording](../WebServer/webServerConfig.md#log-recording).
> The activation and deactivation of the log file of requests can also be carried out by programming using the [WEB SET OPTION](https://doc.4d.com/4dv19R/help/command/en/page1210.html) command.
-
The log format menu provides the following options:
-- **No Log File**: When this option is selected, 4D will not generate a log file of requests.
-
-- **CLF (Common Log Format)**: When this option is selected, the log of requests is generated in CLF format. With the CLF format, each line of the file represents a request, such as:\
- host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\
- Each field is separated by a space and each line ends by the CR/LF sequence (character 13, character 10).
+- **No Log File**: When this option is selected, 4D will not generate a log file of requests.
- - host: IP address of the client (ex. 192.100.100.10)
- - rfc931: information not generated by 4D, it's always - (a minus sign)
- - user: user name as it is authenticated, or else it is - (a minus sign). If the user name contains spaces, they will be replaced by _ (an underscore).
- - DD: day, MMM: a 3-letter abbreviation for the month name (Jan, Feb,...), YYYY: year, HH: hour, MM: minutes, SS: seconds
+- **CLF (Common Log Format)**: When this option is selected, the log of requests is generated in CLF format. With the CLF format, each line of the file represents a request, such as:\
+ host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\
+ Each field is separated by a space and each line ends by the CR/LF sequence (character 13, character 10).
+ - host: IP address of the client (ex. 192.100.100.10)
+ - rfc931: information not generated by 4D, it's always - (a minus sign)
+ - user: user name as it is authenticated, or else it is - (a minus sign). If the user name contains spaces, they will be replaced by \_ (an underscore).
+ - DD: day, MMM: a 3-letter abbreviation for the month name (Jan, Feb,...), YYYY: year, HH: hour, MM: minutes, SS: seconds
> The date and time are local to the server.
-- request: request sent by the client (ex. GET /index.htm HTTP/1.0)
-- state: reply given by the server.
-- length: size of the data returned (except the HTTP header) or 0.
+- request: request sent by the client (ex. GET /index.htm HTTP/1.0)
+- state: reply given by the server.
+- length: size of the data returned (except the HTTP header) or 0.
> **Note:** For performance reasons, the operations are saved in a memory buffer in packets of 1Kb before being written to disk. The operations are also written to disk if no request has been sent every 5 seconds.
> The possible values of state are as follows:
@@ -214,16 +194,15 @@ The log format menu provides the following options:
> 500: Internal error
> The CLF format cannot be customized.
-- **DLF (Combined Log Format)**: When this option is selected, the request log is generated in DLF format. DLF format is similar to CLF format and uses exactly the same structure. It simply adds two additional HTTP fields at the end of each request: Referer and User-agent.
-
- - Referer: Contains the URL of the page pointing to the requested document.
- - User-agent: Contains the name and version of the browser or software of the client at the origin of the request.
+- **DLF (Combined Log Format)**: When this option is selected, the request log is generated in DLF format. DLF format is similar to CLF format and uses exactly the same structure. It simply adds two additional HTTP fields at the end of each request: Referer and User-agent.
+ - Referer: Contains the URL of the page pointing to the requested document.
+ - User-agent: Contains the name and version of the browser or software of the client at the origin of the request.
> The DLF format cannot be customized.
-- **ELF (Extended Log Format)**: When this option is selected, the request log is generated in ELF format. The ELF format is very widespread in the world of HTTP browsers. It can be used to build sophisticated logs that meet specific needs. For this reason, the ELF format can be customized: it is possible to choose the fields to be recorded as well as their order of insertion into the file.
+- **ELF (Extended Log Format)**: When this option is selected, the request log is generated in ELF format. The ELF format is very widespread in the world of HTTP browsers. It can be used to build sophisticated logs that meet specific needs. For this reason, the ELF format can be customized: it is possible to choose the fields to be recorded as well as their order of insertion into the file.
-- **WLF (WebStar Log Format)**: When this option is selected, the request log is generated in WLF format. WLF format was developed specifically for the 4D WebSTAR server. It is similar to the ELF format, with only a few additional fields. Like the ELF format, it can be customized.
+- **WLF (WebStar Log Format)**: When this option is selected, the request log is generated in WLF format. WLF format was developed specifically for the 4D WebSTAR server. It is similar to the ELF format, with only a few additional fields. Like the ELF format, it can be customized.
**Configuring the fields**
When you choose the ELF (Extended Log Format) or WLF (WebStar Log Format) format, the "Weg Log Token Selection" area displays the fields available for the chosen format. You will need to select each field to be included in the log. To do so, use the arrow buttons or simply drag and drop the desired fields into the "Selected Tokens" area.
@@ -232,30 +211,30 @@ When you choose the ELF (Extended Log Format) or WLF (WebStar Log Format) format
The following table lists the fields available for each format (in alphabetical order) and describes its contents:
-| Field | ELF | WLF | Value |
-| --- | --- | --- | --- |
-| BYTES_RECEIVED | | X | Number of bytes received by the server |
-| BYTES_SENT | X | X | Number of bytes sent by the server to the client |
-| C_DNS | X | X | IP address of the DNS (ELF: field identical to the C_IP field) |
-| C_IP | X | X | IP address of the client (for example 192.100.100.10) |
-| CONNECTION_ID | | X | Connection ID number |
-| CS(COOKIE) | X | X | Information about cookies contained in the HTTP request |
-| CS(HOST) | X | X | Host field of the HTTP request |
-| CS(REFERER) | X | X | URL of the page pointing to the requested document |
-| CS(USER_AGENT) | X | X | Information about the software and operating system of the client |
-| CS_SIP | X | X | IP address of the server |
-| CS_URI | X | X | URI on which the request is made |
-| CS_URI_QUERY | X | X | Request query parameters |
-| CS_URI_STEM | X | X | Part of request without query parameters |
-| DATE | X | X | DD: day, MMM: 3-letter abbreviation for month (Jan, Feb, etc.), YYYY: year |
-| METHOD | X | X | HTTP method used for the request sent to the server |
-| PATH_ARGS | | X | CGI parameters: string located after the "$" character |
-| STATUS | X | X | Reply provided by the server |
-| TIME | X | X | HH: hour, MM: minutes, SS: seconds |
-| TRANSFER_TIME | X | X | Time requested by server to generate the reply |
-| USER | X | X | User name if authenticated; otherwise - (minus sign). |
-| | | | If the user name contains spaces, they are replaced by _ (underlines) |
-| URL | | X | URL requested by the client |
+| Field | ELF | WLF | Value |
+| -------------- | --- | --- | -------------------------------------------------------------------------- |
+| BYTES_RECEIVED | | X | Number of bytes received by the server |
+| BYTES_SENT | X | X | Number of bytes sent by the server to the client |
+| C_DNS | X | X | IP address of the DNS (ELF: field identical to the C_IP field) |
+| C_IP | X | X | IP address of the client (for example 192.100.100.10) |
+| CONNECTION_ID | | X | Connection ID number |
+| CS(COOKIE) | X | X | Information about cookies contained in the HTTP request |
+| CS(HOST) | X | X | Host field of the HTTP request |
+| CS(REFERER) | X | X | URL of the page pointing to the requested document |
+| CS(USER_AGENT) | X | X | Information about the software and operating system of the client |
+| CS_SIP | X | X | IP address of the server |
+| CS_URI | X | X | URI on which the request is made |
+| CS_URI_QUERY | X | X | Request query parameters |
+| CS_URI_STEM | X | X | Part of request without query parameters |
+| DATE | X | X | DD: day, MMM: 3-letter abbreviation for month (Jan, Feb, etc.), YYYY: year |
+| METHOD | X | X | HTTP method used for the request sent to the server |
+| PATH_ARGS | | X | CGI parameters: string located after the "$" character |
+| STATUS | X | X | Reply provided by the server |
+| TIME | X | X | HH: hour, MM: minutes, SS: seconds |
+| TRANSFER_TIME | X | X | Time requested by server to generate the reply |
+| USER | X | X | User name if authenticated; otherwise - (minus sign). |
+| | | | If the user name contains spaces, they are replaced by \_ (underlines) |
+| URL | | X | URL requested by the client |
> Dates and times are given in GMT.
@@ -263,51 +242,50 @@ The following table lists the fields available for each format (in alphabetical
Configure the automatic backup parameters for the request log. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. You must then specify the precise moment of the backup if necessary.
-- **No Backup**: The scheduled backup function is deactivated.
-- **Every X hour(s)**: This option is used to program backups on an hourly basis. You can enter a value between 1 and 24 .
+- **No Backup**: The scheduled backup function is deactivated.
+- **Every X hour(s)**: This option is used to program backups on an hourly basis. You can enter a value between 1 and 24 .
+ - **starting at**: Used to set the time at which the first back up will begin.
- - **starting at**: Used to set the time at which the first back up will begin.
-- **Every X day(s) at X**: This option is used to program backups on a daily basis. Enter 1 if you want to perform a daily backup. When this option is checked, you must indicate the time when the backup must be started.
-- **Every X week(s), day at X**: This option is used to program backups on a weekly basis. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. For example, you can use this option to set two weekly backups: one on Wednesdays and one on Fridays.
-- **Every X month(s), Xth day at X**: This option is used to program backups on a monthly basis. Enter 1 if you want to perform a monthly backup. When this option is checked, you must indicate the day of the month and the time when the backup must be started.
-- **Every X MB**: This option is used to program backups based on the size of the current request log file. A backup is automatically triggered when the file reaches the set size. You can set a size limit of 1, 10, 100 or 1000 MB.
+- **Every X day(s) at X**: This option is used to program backups on a daily basis. Enter 1 if you want to perform a daily backup. When this option is checked, you must indicate the time when the backup must be started.
+- **Every X week(s), day at X**: This option is used to program backups on a weekly basis. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. For example, you can use this option to set two weekly backups: one on Wednesdays and one on Fridays.
+- **Every X month(s), Xth day at X**: This option is used to program backups on a monthly basis. Enter 1 if you want to perform a monthly backup. When this option is checked, you must indicate the day of the month and the time when the backup must be started.
+- **Every X MB**: This option is used to program backups based on the size of the current request log file. A backup is automatically triggered when the file reaches the set size. You can set a size limit of 1, 10, 100 or 1000 MB.
> In the case of scheduled backups, if the Web server was not launched when the backup was scheduled to occur, on the next startup 4D considers the backup as failed and applies the appropriate settings, set via the Database Settings.
-## Web Services
+## Web Services
You use the options on this tab to activate and configure Web services for the 4D project, both for their publishing (server side) and their subscription (client side).
For more information about the support of Web Services in 4D, refer to the [Publication and use of Web Services](https://doc.4d.com/What-s-new/4D-Design-Reference-19-R4/Publication-and-use-of-Web-Services.200-5736722.en.html) chapter.
-### Server Side
+### Server Side
+
+This area contains various options related to the use of 4D as a Web Services "server" i.e., publishing project methods in the form of Web Services.
-This area contains various options related to the use of 4D as a Web Services "server" i.e., publishing project methods in the form of Web Services.
+- **Allow Web Services Requests**: This option lets you initialize the publication of Web Services. If this option has not been checked, 4D refuses SOAP requests and does not generate a WSDL - even if methods have the _Published in WSDL_ attribute. When this option is checked, 4D creates the WSDL file.
+- **Web Service Name**: This area lets you change the "generic name" of the Web Service. This name is used to differentiate the services both at the SOAP server level (when the server publishes several different Web Services), as well as in the Web Services directories. By default, 4D uses the name A_WebService.
+- **Web Services Namespace**: This area is used to change the namespace of the Web Services published by 4D. Each Web Service published on the Internet must be unique. The uniqueness of the names of Web Services is ensured by using XML namespaces. A namespace is an arbitrary character string used to identify a set of XML tags in a unique way. Typically, the namespace begins with the URL of the company (http://mycompany.com/mynamespace). In this case, it is not indispensable to have anything in particular at the URL indicated; what matters is that the character string used is unique. By default, 4D uses the following namespace: http://www.4d.com/namespace/default.
-- **Allow Web Services Requests**: This option lets you initialize the publication of Web Services. If this option has not been checked, 4D refuses SOAP requests and does not generate a WSDL - even if methods have the *Published in WSDL* attribute. When this option is checked, 4D creates the WSDL file.
-- **Web Service Name**: This area lets you change the "generic name" of the Web Service. This name is used to differentiate the services both at the SOAP server level (when the server publishes several different Web Services), as well as in the Web Services directories. By default, 4D uses the name A_WebService.
-- **Web Services Namespace**: This area is used to change the namespace of the Web Services published by 4D. Each Web Service published on the Internet must be unique. The uniqueness of the names of Web Services is ensured by using XML namespaces. A namespace is an arbitrary character string used to identify a set of XML tags in a unique way. Typically, the namespace begins with the URL of the company (http://mycompany.com/mynamespace). In this case, it is not indispensable to have anything in particular at the URL indicated; what matters is that the character string used is unique. By default, 4D uses the following namespace: http://www.4d.com/namespace/default.
-
> In conformity with the XML standard for tag names, the character strings used must not contain spaces nor start with a number. Moreover, to avoid any risk of incompatibility, we recommend that you do not use any extended characters (such as accented characters).
-### Client Side
+### Client Side
This area contains various options related to the use of 4D as a Web Services "client" i.e., subscribing to services published on the network.
-- **Wizard Method Prefix**: This area lets you change the prefix that is added automatically by 4D to the name of proxy methods generated by the Web Services Wizard. Proxy project methods form a link between the 4D application and the Web Services server. By default, 4D uses the prefix "proxy_".
-
+- **Wizard Method Prefix**: This area lets you change the prefix that is added automatically by 4D to the name of proxy methods generated by the Web Services Wizard. Proxy project methods form a link between the 4D application and the Web Services server. By default, 4D uses the prefix "proxy\_".
## Web Features
This page contains the options used to enable and control advanced Web features such as the REST server.
-### Publishing
+### Publishing
#### Expose as REST server
Starts and stops the REST Server. See [REST Server Configuration](../REST/configuration.md).
-### Access
+### Access
This option specifies a group of 4D users that is authorized to establish the link to the 4D database using REST requests. See [Configuring REST access](../REST/configuration.md#configuring-rest-access).
@@ -315,4 +293,4 @@ This option specifies a group of 4D users that is authorized to establish the li
#### Enable access to the web studio
-Enables general access to the web studio. You still need to configure it at every project level.
\ No newline at end of file
+Enables general access to the web studio. You still need to configure it at every project level.
diff --git a/versioned_sidebars/version-20-R10-sidebars.json b/versioned_sidebars/version-20-R10-sidebars.json
index 7080eec733b24a..077df31748cd41 100644
--- a/versioned_sidebars/version-20-R10-sidebars.json
+++ b/versioned_sidebars/version-20-R10-sidebars.json
@@ -1,5 +1,5 @@
-{
- "docs": [
+ {
+ "docs": [
{
"type": "category",
"label": "Getting Started",
@@ -14,40 +14,52 @@
},
"items": [
"GettingStarted/installation",
- "GettingStarted/creating",
+ "Project/overview",
"Notes/updates"
]
},
{
"type": "category",
- "label": "Core Development",
+ "label": "Project & IDE",
"link": {
"type": "generated-index",
- "title": "Core Development",
- "slug": "/category/core-development",
+ "title": "Project & IDE",
+ "slug": "/category/project-ide",
"keywords": [
- "core"
+ "ide"
],
"image": "/img/docusaurus.png"
},
"items": [
- {
+ "GettingStarted/creating",
+ "Project/architecture",
+ {
+ "type": "category",
+ "label": "Dababase structure",
+ "items": [
+ "Develop/field-properties"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "Code & Methods",
+ "items": [
+ "Project/code-overview",
+ "code-editor/write-class-method",
+ "Project/project-method-properties",
+ "Project/documentation"
+ ]
+ },
+ "Project/components",
+ "Project/compiler",
+ {
"type": "category",
- "label": "Project Management",
+ "label": "Settings",
"link": {
- "type": "doc",
- "id": "Project/overview"
- },
- "items": [
- "Project/architecture",
- {
- "type": "category",
- "label": "Settings",
- "link": {
"type": "doc",
"id": "settings/overview"
- },
- "items": [
+ },
+ "items": [
"settings/general",
"settings/interface",
"settings/compiler",
@@ -60,87 +72,37 @@
"settings/security",
"settings/compatibility"
]
- },
- "Project/components",
- "Project/date-time-formats",
- "Project/documentation",
- {
- "type": "category",
- "label": "Dababase structure",
- "items": [
- "Develop/field-properties"
- ]
- }
- ]
},
- {
- "type": "category",
- "label": "Development Environment",
- "items": [
- "Project/code-overview",
- "code-editor/write-class-method",
- "Project/compiler",
- {
- "type": "category",
- "label": "Debugging",
- "link": {
+ "Desktop/building",
+ {
+ "type": "category",
+ "label": "Debugging",
+ "link": {
"type": "doc",
"id": "Debugging/basics"
},
- "items": [
+ "items": [
"Debugging/debugger",
"Debugging/breakpoints",
"Debugging/debugging-remote"
]
- },
- "Debugging/debugLogFiles",
- {
- "type": "category",
- "label": "Preferences",
- "link": {
- "type": "doc",
- "id": "Preferences/overview"
- },
- "items": [
- "Preferences/general",
- "Preferences/structure",
- "Preferences/forms",
- "Preferences/methods",
- "Preferences/shortcuts"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "ORDA",
- "link": {
- "type": "doc",
- "id": "ORDA/overview"
},
- "items": [
- "ORDA/dsmapping",
- "ORDA/ordaClasses",
- "ORDA/orda-events",
- "ORDA/entities",
- "ORDA/global-stamp",
- "ORDA/datastores",
- "ORDA/privileges",
- "ORDA/client-server-optimization",
- "ORDA/glossary"
- ]
- },
- {
- "type": "category",
- "label": "Processes",
- "items": [
- "Develop/processes",
- "Develop/preemptive-processes"
- ]
- },
- "Develop-legacy/transactions",
- "Tags/transformation-tags"
- ]
+ {
+ "type": "category",
+ "label": "Application Preferences",
+ "link": {
+ "type": "doc",
+ "id": "Preferences/overview"
+ },
+ "items": [
+ "Preferences/general",
+ "Preferences/structure",
+ "Preferences/forms",
+ "Preferences/methods",
+ "Preferences/shortcuts"
+ ]
+ }
+ ]
},
{
"type": "category",
@@ -150,7 +112,7 @@
"title": "4D Language",
"slug": "/category/4d-language",
"keywords": [
- "language"
+ "language","orda"
],
"image": "/img/docusaurus.png"
},
@@ -199,12 +161,13 @@
"Concepts/paths"
]
},
+ "commands/command-index",
{
"type": "category",
- "label": "Commands",
+ "label": "Commands by theme",
"link": {
"type": "generated-index",
- "title": "Commands",
+ "title": "Commands by theme",
"slug": "/category/commands",
"keywords": [
"commands"
@@ -212,7 +175,6 @@
"image": "/img/docusaurus.png"
},
"items": [
- "commands/command-index",
{
"type": "category",
"label": "4D Environment",
@@ -481,34 +443,6 @@
"commands-legacy/register-data-key"
]
},
- {
- "type": "category",
- "label": "Database Methods",
- "link": {
- "type": "doc",
- "id": "commands/theme/Database_Methods_theme"
- },
- "items": [
- "commands-legacy/on-backup-shutdown-database-method",
- "commands-legacy/on-backup-startup-database-method",
- "commands-legacy/on-drop-database-method",
- "commands-legacy/on-exit-database-method",
- "commands-legacy/on-host-database-event-database-method",
- "commands-legacy/on-mobile-app-action-database-method",
- "commands-legacy/on-mobile-app-authentication-database-method",
- "commands-legacy/on-rest-authentication-database-method",
- "commands-legacy/on-server-close-connection-database-method",
- "commands-legacy/on-server-open-connection-database-method",
- "commands-legacy/on-server-shutdown-database-method",
- "commands-legacy/on-server-startup-database-method",
- "commands-legacy/on-sql-authentication-database-method",
- "commands-legacy/on-startup-database-method",
- "commands-legacy/on-system-event-database-method",
- "commands-legacy/on-web-authentication-database-method",
- "commands-legacy/on-web-connection-database-method",
- "commands-legacy/on-web-legacy-close-session-database-method"
- ]
- },
{
"type": "category",
"label": "Date and Time",
@@ -2273,7 +2207,6 @@
"type": "category",
"label": "Classes",
"items": [
- "API/overview",
"API/BlobClass",
"API/ClassClass",
"API/CollectionClass",
@@ -2316,7 +2249,7 @@
],
"link": {
"type": "generated-index",
- "title": "Class Functions",
+ "title": "Classes",
"description": "List of built-in 4D classes",
"slug": "/category/class-API-reference",
"keywords": [
@@ -2329,683 +2262,140 @@
},
{
"type": "category",
- "label": "Administration",
+ "label": "Core Development",
"link": {
"type": "generated-index",
- "title": "Administration",
- "description": "How to monitor your 4D applications",
- "keywords": [
- "administration"
- ],
+ "title": "Core Development",
+ "slug": "/category/core",
"image": "/img/docusaurus.png"
},
"items": [
{
"type": "category",
- "label": "4D Server Administration Window",
+ "label": "ORDA",
"link": {
"type": "doc",
- "id": "ServerWindow/overview"
+ "id": "ORDA/overview"
},
"items": [
- "ServerWindow/monitor",
- "ServerWindow/users",
- "ServerWindow/processes",
- "ServerWindow/maintenance",
- "ServerWindow/application-server",
- "ServerWindow/sql-server",
- "ServerWindow/http-server",
- "ServerWindow/real-time-monitor",
- "ServerWindow/remote-admin"
+ "ORDA/dsmapping",
+ "ORDA/ordaClasses",
+ "ORDA/entities",
+ "ORDA/global-stamp",
+ "ORDA/datastores",
+ "ORDA/privileges",
+ "ORDA/client-server-optimization",
+ "ORDA/glossary"
]
},
{
"type": "category",
- "label": "Web Administration",
+ "label": "Processes",
"link": {
"type": "generated-index",
- "title": "Web Administration",
- "description": "4D web tools for administrating and monitoring your applications.",
- "slug": "/category/web-administration",
+ "title": "Processes",
+ "slug": "/category/processes",
"keywords": [
- "web administration"
+ "processes"
],
"image": "/img/docusaurus.png"
},
"items": [
- "Admin/webAdmin",
- "Admin/dataExplorer"
+ "Develop/processes",
+ "Develop/preemptive-processes"
]
},
- {
- "type": "doc",
- "label": "Command Line Interface",
- "id": "Admin/cli"
- },
- {
- "type": "doc",
- "label": "TLS Protocol",
- "id": "Admin/tls"
- },
- {
- "type": "doc",
- "label": "Licenses",
- "id": "Admin/licenses"
- },
{
"type": "category",
- "label": "MSC",
+ "label": "Database Methods",
"link": {
- "type": "doc",
- "id": "MSC/overview"
- },
- "items": [
- "MSC/information",
- "MSC/analysis",
- "MSC/verify",
- "MSC/backup",
- "MSC/compact",
- "MSC/rollback",
- "MSC/restore",
- "MSC/repair",
- "MSC/encrypt"
- ]
+ "type": "generated-index",
+ "title": "Database Methods",
+ "slug": "/category/database-methods",
+ "image": "/img/docusaurus.png"
+ },
+ "items": [
+ "commands-legacy/on-backup-shutdown-database-method",
+ "commands-legacy/on-backup-startup-database-method",
+ "commands-legacy/on-drop-database-method",
+ "commands-legacy/on-exit-database-method",
+ "commands-legacy/on-host-database-event-database-method",
+ "commands-legacy/on-mobile-app-action-database-method",
+ "commands-legacy/on-mobile-app-authentication-database-method",
+ "commands-legacy/on-rest-authentication-database-method",
+ "commands-legacy/on-server-close-connection-database-method",
+ "commands-legacy/on-server-open-connection-database-method",
+ "commands-legacy/on-server-shutdown-database-method",
+ "commands-legacy/on-server-startup-database-method",
+ "commands-legacy/on-sql-authentication-database-method",
+ "commands-legacy/on-startup-database-method",
+ "commands-legacy/on-system-event-database-method",
+ "commands-legacy/on-web-authentication-database-method",
+ "commands-legacy/on-web-connection-database-method",
+ "commands-legacy/on-web-legacy-close-session-database-method"
+ ]
+ },
+ "Develop-legacy/transactions",
+ "Tags/transformation-tags",
+ "Project/date-time-formats"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "Web Applications",
+ "link": {
+ "type": "generated-index",
+ "title": "Web Applications",
+ "description": "Guides for developing Web applications with 4D",
+ "keywords": [
+ "web applications"
+ ],
+ "image": "/img/docusaurus.png"
+ },
+ "items": [
+ {
+ "type": "link",
+ "label": "4D Qodly Pro",
+ "href": "https://developer.4d.com/qodly/"
},
{
"type": "category",
- "label": "Backup and Restore",
+ "label": "Web Server",
"link": {
"type": "doc",
- "id": "Backup/overview"
+ "id": "WebServer/webServer"
},
"items": [
- "Backup/backup",
- "Backup/settings",
- "Backup/log",
- "Backup/restore"
+ "WebServer/gettingStarted",
+ "WebServer/webServerConfig",
+ "WebServer/webServerAdmin",
+ "WebServer/webServerObject",
+ "WebServer/templates",
+ "WebServer/httpRequests",
+ "WebServer/http-request-handler",
+ "WebServer/allowProject",
+ "WebServer/errorPages",
+ "WebServer/authentication",
+ "WebServer/sessions",
+ "WebServer/preemptiveWeb"
]
},
- {
- "type": "doc",
- "label": "Data Collection",
- "id": "Admin/data-collect"
- }
- ]
- },
- {
- "type": "category",
- "label": "Extensions",
- "link": {
- "type": "doc",
- "id": "Extensions/overview"
- },
- "items": [
{
"type": "category",
- "label": "4D View Pro",
+ "label": "REST API",
"link": {
"type": "generated-index",
- "title": "4D View Pro",
- "slug": "/category/4d-view-pro",
+ "title": "REST API",
+ "description": "Exposing your datastore to REST and using the REST API.",
"keywords": [
- "4D View Pro"
+ "REST server"
],
"image": "/img/docusaurus.png"
},
"items": [
- "ViewPro/getting-started",
- "ViewPro/configuring",
- "ViewPro/formulas",
- "ViewPro/classes",
- "ViewPro/advanced-programming",
{
"type": "category",
- "label": "Commands",
- "link": {
- "type": "doc",
- "id": "ViewPro/commands"
- },
- "items": [
- {
- "type": "category",
- "label": "A",
- "link": {
- "type": "generated-index",
- "title": "A",
- "slug": "/commands-legacy/A"
- },
- "items": [
- "ViewPro/commands/vp-add-formula-name",
- "ViewPro/commands/vp-add-range-name",
- "ViewPro/commands/vp-add-selection",
- "ViewPro/commands/vp-add-sheet",
- "ViewPro/commands/vp-add-span",
- "ViewPro/commands/vp-add-stylesheet",
- "ViewPro/commands/vp-all"
- ]
- },
- {
- "type": "category",
- "label": "C",
- "link": {
- "type": "generated-index",
- "title": "C",
- "slug": "/commands-legacy/C"
- },
- "items": [
- "ViewPro/commands/vp-cell",
- "ViewPro/commands/vp-cells",
- "ViewPro/commands/vp-column",
- "ViewPro/commands/vp-column-autofit",
- "ViewPro/commands/vp-combine-ranges",
- "ViewPro/commands/vp-convert-from-4d-view",
- "ViewPro/commands/vp-convert-to-picture",
- "ViewPro/commands/vp-copy-to-object",
- "ViewPro/commands/vp-create-table"
- ]
- },
- {
- "type": "category",
- "label": "D",
- "link": {
- "type": "generated-index",
- "title": "D",
- "slug": "/commands-legacy/D"
- },
- "items": [
- "ViewPro/commands/vp-delete-columns",
- "ViewPro/commands/vp-delete-rows"
- ]
- },
- {
- "type": "category",
- "label": "E",
- "link": {
- "type": "generated-index",
- "title": "E",
- "slug": "/commands-legacy/E"
- },
- "items": [
- "ViewPro/commands/vp-export-document",
- "ViewPro/commands/vp-export-to-blob",
- "ViewPro/commands/vp-export-to-object"
- ]
- },
- {
- "type": "category",
- "label": "F",
- "link": {
- "type": "generated-index",
- "title": "F",
- "slug": "/commands-legacy/F"
- },
- "items": [
- "ViewPro/commands/vp-find",
- "ViewPro/commands/vp-find-table",
- "ViewPro/commands/vp-flush-commands",
- "ViewPro/commands/vp-font-to-object"
- ]
- },
- {
- "type": "category",
- "label": "G",
- "link": {
- "type": "generated-index",
- "title": "G",
- "slug": "/commands-legacy/G"
- },
- "items": [
- "ViewPro/commands/vp-get-active-cell",
- "ViewPro/commands/vp-get-binding-path",
- "ViewPro/commands/vp-get-cell-style",
- "ViewPro/commands/vp-get-column-attributes",
- "ViewPro/commands/vp-get-column-count",
- "ViewPro/commands/vp-get-current-sheet",
- "ViewPro/commands/vp-get-data-context",
- "ViewPro/commands/vp-get-default-style",
- "ViewPro/commands/vp-get-formula",
- "ViewPro/commands/vp-get-formula-by-name",
- "ViewPro/commands/vp-get-formulas",
- "ViewPro/commands/vp-get-frozen-panes",
- "ViewPro/commands/vp-get-names",
- "ViewPro/commands/vp-get-print-info",
- "ViewPro/commands/vp-get-row-attributes",
- "ViewPro/commands/vp-get-row-count",
- "ViewPro/commands/vp-get-selection",
- "ViewPro/commands/vp-get-sheet-count",
- "ViewPro/commands/vp-get-sheet-index",
- "ViewPro/commands/vp-get-sheet-name",
- "ViewPro/commands/vp-get-sheet-options",
- "ViewPro/commands/vp-get-show-print-lines",
- "ViewPro/commands/vp-get-spans",
- "ViewPro/commands/vp-get-stylesheet",
- "ViewPro/commands/vp-get-stylesheets",
- "ViewPro/commands/vp-get-table-column-attributes",
- "ViewPro/commands/vp-get-table-column-index",
- "ViewPro/commands/vp-get-table-dirty-rows",
- "ViewPro/commands/vp-get-table-range",
- "ViewPro/commands/vp-get-table-theme",
- "ViewPro/commands/vp-get-tables",
- "ViewPro/commands/vp-get-value",
- "ViewPro/commands/vp-get-values",
- "ViewPro/commands/vp-get-workbook-options"
- ]
- },
- {
- "type": "category",
- "label": "I",
- "link": {
- "type": "generated-index",
- "title": "I",
- "slug": "/commands-legacy/I"
- },
- "items": [
- "ViewPro/commands/vp-import-document",
- "ViewPro/commands/vp-import-from-blob",
- "ViewPro/commands/vp-import-from-object",
- "ViewPro/commands/vp-insert-columns",
- "ViewPro/commands/vp-insert-rows",
- "ViewPro/commands/vp-insert-table-columns",
- "ViewPro/commands/vp-insert-table-rows"
- ]
- },
- {
- "type": "category",
- "label": "M",
- "link": {
- "type": "generated-index",
- "title": "M",
- "slug": "/commands-legacy/M"
- },
- "items": [
- "ViewPro/commands/vp-move-cells"
- ]
- },
- {
- "type": "category",
- "label": "N",
- "link": {
- "type": "generated-index",
- "title": "N",
- "slug": "/commands-legacy/N"
- },
- "items": [
- "ViewPro/commands/vp-name",
- "ViewPro/commands/vp-new-document"
- ]
- },
- {
- "type": "category",
- "label": "O",
- "link": {
- "type": "generated-index",
- "title": "O",
- "slug": "/commands-legacy/O"
- },
- "items": [
- "ViewPro/commands/vp-object-to-font"
- ]
- },
- {
- "type": "category",
- "label": "P",
- "link": {
- "type": "generated-index",
- "title": "P",
- "slug": "/commands-legacy/P"
- },
- "items": [
- "ViewPro/commands/vp-paste-from-object",
- "ViewPro/commands/vp-print"
- ]
- },
- {
- "type": "category",
- "label": "R",
- "link": {
- "type": "generated-index",
- "title": "R",
- "slug": "/commands-legacy/R"
- },
- "items": [
- "ViewPro/commands/vp-recompute-formulas",
- "ViewPro/commands/vp-remove-name",
- "ViewPro/commands/vp-remove-sheet",
- "ViewPro/commands/vp-remove-span",
- "ViewPro/commands/vp-remove-stylesheet",
- "ViewPro/commands/vp-remove-table",
- "ViewPro/commands/vp-remove-table-columns",
- "ViewPro/commands/vp-remove-table-rows",
- "ViewPro/commands/vp-reset-selection",
- "ViewPro/commands/vp-resize-table",
- "ViewPro/commands/vp-resume-computing",
- "ViewPro/commands/vp-row",
- "ViewPro/commands/vp-row-autofit",
- "ViewPro/commands/vp-run-offscreen-area"
- ]
- },
- {
- "type": "category",
- "label": "S",
- "link": {
- "type": "generated-index",
- "title": "S",
- "slug": "/commands-legacy/S"
- },
- "items": [
- "ViewPro/commands/vp-set-active-cell",
- "ViewPro/commands/vp-set-allowed-methods",
- "ViewPro/commands/vp-set-binding-path",
- "ViewPro/commands/vp-set-boolean-value",
- "ViewPro/commands/vp-set-border",
- "ViewPro/commands/vp-set-cell-style",
- "ViewPro/commands/vp-set-column-attributes",
- "ViewPro/commands/vp-set-column-count",
- "ViewPro/commands/vp-set-current-sheet",
- "ViewPro/commands/vp-set-custom-functions",
- "ViewPro/commands/vp-set-data-context",
- "ViewPro/commands/vp-set-date-time-value",
- "ViewPro/commands/vp-set-date-value",
- "ViewPro/commands/vp-set-default-style",
- "ViewPro/commands/vp-set-field",
- "ViewPro/commands/vp-set-formula",
- "ViewPro/commands/vp-set-formulas",
- "ViewPro/commands/vp-set-frozen-panes",
- "ViewPro/commands/vp-set-num-value",
- "ViewPro/commands/vp-set-print-info",
- "ViewPro/commands/vp-set-row-attributes",
- "ViewPro/commands/vp-set-row-count",
- "ViewPro/commands/vp-set-selection",
- "ViewPro/commands/vp-set-sheet-count",
- "ViewPro/commands/vp-set-sheet-name",
- "ViewPro/commands/vp-set-sheet-options",
- "ViewPro/commands/vp-set-show-print-lines",
- "ViewPro/commands/vp-set-table-column-attributes",
- "ViewPro/commands/vp-set-table-theme",
- "ViewPro/commands/vp-set-text-value",
- "ViewPro/commands/vp-set-time-value",
- "ViewPro/commands/vp-set-value",
- "ViewPro/commands/vp-set-values",
- "ViewPro/commands/vp-set-workbook-options",
- "ViewPro/commands/vp-show-cell",
- "ViewPro/commands/vp-suspend-computing"
- ]
- }
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "4D Write Pro",
- "link": {
- "type": "generated-index",
- "title": "4D Write Pro",
- "slug": "/category/4d-write-pro",
- "keywords": [
- "4D Write Pro"
- ],
- "image": "/img/docusaurus.png"
- },
- "items": [
- "WritePro/writeprointerface",
- "WritePro/managing-formulas",
- "WritePro/commands-legacy/4d-write-pro-attributes",
- {
- "type": "category",
- "label": "Commands",
- "link": {
- "type": "doc",
- "id": "WritePro/commands/command-index"
- },
- "items": [
- "WritePro/commands/wp-add-picture",
- "WritePro/commands-legacy/wp-bookmark-range",
- "WritePro/commands-legacy/wp-compute-formulas",
- "WritePro/commands-legacy/wp-delete-bookmark",
- "WritePro/commands-legacy/wp-delete-footer",
- "WritePro/commands-legacy/wp-delete-header",
- "WritePro/commands-legacy/wp-delete-picture",
- "WritePro/commands/wp-delete-section",
- "WritePro/commands-legacy/wp-delete-style-sheet",
- "WritePro/commands/wp-delete-subsection",
- "WritePro/commands-legacy/wp-delete-text-box",
- "WritePro/commands/wp-export-document",
- "WritePro/commands/wp-export-variable",
- "WritePro/commands-legacy/wp-find-all",
- "WritePro/commands-legacy/wp-find-next",
- "WritePro/commands-legacy/wp-find-previous",
- "WritePro/commands-legacy/wp-freeze-formulas",
- "WritePro/commands/wp-get-attributes",
- "WritePro/commands-legacy/wp-get-body",
- "WritePro/commands-legacy/wp-get-bookmarks",
- "WritePro/commands-legacy/wp-get-breaks",
- "WritePro/commands-legacy/wp-get-data-context",
- "WritePro/commands-legacy/wp-get-element-by-id",
- "WritePro/commands-legacy/wp-get-elements",
- "WritePro/commands-legacy/wp-get-footer",
- "WritePro/commands-legacy/wp-get-formulas",
- "WritePro/commands-legacy/wp-get-frame",
- "WritePro/commands-legacy/wp-get-header",
- "WritePro/commands-legacy/wp-get-links",
- "WritePro/commands-legacy/wp-get-page-count",
- "WritePro/commands-legacy/wp-get-position",
- "WritePro/commands-legacy/wp-get-section",
- "WritePro/commands-legacy/wp-get-sections",
- "WritePro/commands-legacy/wp-get-style-sheet",
- "WritePro/commands-legacy/wp-get-style-sheets",
- "WritePro/commands-legacy/wp-get-subsection",
- "WritePro/commands-legacy/wp-get-text",
- "WritePro/commands-legacy/wp-get-view-properties",
- "WritePro/commands/wp-import-document",
- "WritePro/commands-legacy/wp-import-style-sheets",
- "WritePro/commands/wp-insert-break",
- "WritePro/commands/wp-insert-document-body",
- "WritePro/commands/wp-insert-formula",
- "WritePro/commands/wp-insert-picture",
- "WritePro/commands-legacy/wp-insert-table",
- "WritePro/commands-legacy/wp-is-font-style-supported",
- "WritePro/commands-legacy/wp-new",
- "WritePro/commands-legacy/wp-new-bookmark",
- "WritePro/commands-legacy/wp-new-footer",
- "WritePro/commands-legacy/wp-new-header",
- "WritePro/commands-legacy/wp-new-style-sheet",
- "WritePro/commands-legacy/wp-new-subsection",
- "WritePro/commands-legacy/wp-new-text-box",
- "WritePro/commands-legacy/wp-paragraph-range",
- "WritePro/commands-legacy/wp-picture-range",
- "WritePro/commands-legacy/wp-print",
- "WritePro/commands/wp-reset-attributes",
- "WritePro/commands-legacy/wp-select",
- "WritePro/commands-legacy/wp-selection-range",
- "WritePro/commands/wp-set-attributes",
- "WritePro/commands-legacy/wp-set-data-context",
- "WritePro/commands-legacy/wp-set-frame",
- "WritePro/commands-legacy/wp-set-link",
- "WritePro/commands-legacy/wp-set-text",
- "WritePro/commands-legacy/wp-set-view-properties",
- "WritePro/commands/wp-table-append-row",
- "WritePro/commands-legacy/wp-table-delete-columns",
- "WritePro/commands-legacy/wp-table-delete-rows",
- "WritePro/commands-legacy/wp-table-get-cells",
- "WritePro/commands-legacy/wp-table-get-columns",
- "WritePro/commands-legacy/wp-table-get-rows",
- "WritePro/commands-legacy/wp-table-insert-columns",
- "WritePro/commands-legacy/wp-table-insert-rows",
- "WritePro/commands-legacy/wp-table-merge-cells",
- "WritePro/commands-legacy/wp-table-range",
- "WritePro/commands-legacy/wp-table-split-cells",
- "WritePro/commands-legacy/wp-text-range",
- "WritePro/commands-legacy/wp-use-page-setup"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "4D AIKit",
- "link": {
- "type": "generated-index",
- "title": "4D AIKit",
- "slug": "/category/4d-aikit",
- "keywords": [
- "4D AIKit"
- ],
- "image": "/img/docusaurus.png"
- },
- "items": [
- "aikit/overview",
- "aikit/asynchronous-call",
- "aikit/compatible-openai",
- {
- "type": "category",
- "label": "Classes",
- "items": [
- "aikit/Classes/openai",
- "aikit/Classes/openaiapiresource",
- "aikit/Classes/openaichatapi",
- "aikit/Classes/openaichatcompletionsapi",
- "aikit/Classes/openaichatcompletionslistparameters",
- "aikit/Classes/openaichatcompletionsmessagesapi",
- "aikit/Classes/openaichatcompletionsmessagesparameters",
- "aikit/Classes/openaichatcompletionsparameters",
- "aikit/Classes/openaichatcompletionsresult",
- "aikit/Classes/openaichatcompletionsstreamresult",
- "aikit/Classes/openaichathelper",
- "aikit/Classes/openaichoice",
- "aikit/Classes/openaiembedding",
- "aikit/Classes/openaiembeddingsapi",
- "aikit/Classes/openaiembeddingsparameters",
- "aikit/Classes/openaiembeddingsresult",
- "aikit/Classes/openaierror",
- "aikit/Classes/openaiimage",
- "aikit/Classes/openaiimageparameters",
- "aikit/Classes/openaiimagesapi",
- "aikit/Classes/openaiimagesresult",
- "aikit/Classes/openaimessage",
- "aikit/Classes/openaimodel",
- "aikit/Classes/openaimodellistresult",
- "aikit/Classes/openaimodelresult",
- "aikit/Classes/openaimodelsapi",
- "aikit/Classes/openaimoderation",
- "aikit/Classes/openaimoderationitem",
- "aikit/Classes/openaimoderationresult",
- "aikit/Classes/openaimoderationsapi",
- "aikit/Classes/openaiparameters",
- "aikit/Classes/openairesult",
- "aikit/Classes/openaivision",
- "aikit/Classes/openaivisionhelper"
- ]
- }
- ]
- },
- {
- "type": "link",
- "label": "4D Mobile App Server",
- "href": "https://github.com/4d-go-mobile/4D-Mobile-App-Server"
- },
- {
- "type": "link",
- "label": "4D NetKit",
- "href": "https://developer.4d.com/4D-NetKit"
- },
- {
- "type": "link",
- "label": "4D Progress",
- "href": "https://doc.4d.com/4Dv20R10/4D/20-R10/4D-Progress.100-7614210.en.html"
- },
- {
- "type": "link",
- "label": "4D SVG",
- "href": "https://doc.4d.com/4Dv20R10/4D/20-R10/4D-SVG-Component.100-7614300.en.html"
- },
- {
- "type": "link",
- "label": "4D Widgets",
- "href": "https://doc.4d.com/4Dv20R10/4D/20-R10/4D-Widgets.100-7614949.en.html"
- },
- "Extensions/develop-components",
- "Extensions/develop-plug-ins"
- ]
- },
- {
- "type": "category",
- "label": "Web Applications",
- "link": {
- "type": "generated-index",
- "title": "Web Applications",
- "description": "Guides for developing Web applications with 4D",
- "keywords": [
- "web applications"
- ],
- "image": "/img/docusaurus.png"
- },
- "items": [
- {
- "type": "category",
- "label": "Web Server",
- "link": {
- "type": "doc",
- "id": "WebServer/webServer"
- },
- "items": [
- "WebServer/webServerConfig",
- "WebServer/webServerAdmin",
- "WebServer/webServerObject"
- ]
- },
- {
- "type": "category",
- "label": "Web Development",
- "link": {
- "type": "doc",
- "id": "WebServer/gettingStarted"
- },
- "items": [
- "WebServer/templates",
- "WebServer/httpRequests",
- "WebServer/http-request-handler",
- "WebServer/allowProject",
- "WebServer/errorPages",
- "WebServer/authentication",
- "WebServer/sessions",
- "WebServer/preemptiveWeb"
- ]
- },
- {
- "type": "category",
- "label": "Qodly Studio",
- "link": {
- "type": "generated-index",
- "title": "Qodly Studio",
- "description": "Using Qodly Studio to build powerful web interfaces.",
- "slug": "/category/qodly-studio-in-4d",
- "keywords": [
- "Qodly Studio"
- ],
- "image": "/img/docusaurus.png"
- },
- "items": [
- "WebServer/qodly-studio",
- "WebServer/from-qodlyscript-to-4d"
- ]
- },
- {
- "type": "category",
- "label": "REST API",
- "link": {
- "type": "generated-index",
- "title": "REST API",
- "description": "Exposing your datastore to REST and using the REST API.",
- "keywords": [
- "REST server"
- ],
- "image": "/img/docusaurus.png"
- },
- "items": [
- {
- "type": "category",
- "label": "Exposing your datastore in REST",
+ "label": "Exposing your datastore in REST",
"link": {
"type": "generated-index",
"title": "Exposing your datastore in REST",
@@ -3084,273 +2474,883 @@
]
}
]
- }
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "Desktop Applications",
+ "link": {
+ "type": "generated-index",
+ "title": "Desktop Applications",
+ "description": "Guides for developing Desktop applications with 4D",
+ "keywords": [
+ "desktop applications"
+ ],
+ "image": "/img/docusaurus.png"
+ },
+ "items": [
+ {
+ "type": "doc",
+ "label": "Client/Server",
+ "id": "Desktop/clientServer"
+ },
+ {
+ "type": "category",
+ "label": "Forms",
+ "link": {
+ "type": "doc",
+ "id": "FormEditor/forms"
+ },
+ "items": [
+ "FormEditor/stylesheets",
+ "FormEditor/pictures",
+ {
+ "type": "category",
+ "label": "Form Editor",
+ "link": {
+ "type": "doc",
+ "id": "FormEditor/formEditor"
+ },
+ "items": [
+ "FormEditor/macros",
+ "FormEditor/objectLibrary"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "Form Properties",
+ "link": {
+ "type": "doc",
+ "id": "FormEditor/jsonReference"
+ },
+ "items": [
+ "FormEditor/action",
+ "FormEditor/propertiesForm",
+ "FormEditor/formSize",
+ "FormEditor/markers",
+ "FormEditor/menu",
+ "FormEditor/print",
+ "FormEditor/windowSize"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "Form Objects",
+ "link": {
+ "type": "doc",
+ "id": "FormObjects/formObjectsOverview"
+ },
+ "items": [
+ "FormObjects/buttonOverview",
+ "FormObjects/buttonGridOverview",
+ "FormObjects/checkboxOverview",
+ "FormObjects/comboBoxOverview",
+ "FormObjects/dropdownListOverview",
+ "FormObjects/groupBox",
+ "FormObjects/inputOverview",
+ "FormObjects/listOverview",
+ "FormObjects/listboxOverview",
+ "FormObjects/pictureButtonOverview",
+ "FormObjects/picturePopupMenuOverview",
+ "FormObjects/pluginAreaOverview",
+ "FormObjects/progressIndicator",
+ "FormObjects/radiobuttonOverview",
+ "FormObjects/ruler",
+ "FormObjects/shapesOverview",
+ "FormObjects/spinner",
+ "FormObjects/splitters",
+ "FormObjects/staticPicture",
+ "FormObjects/stepper",
+ "FormObjects/subformOverview",
+ "FormObjects/tabControl",
+ "FormObjects/text",
+ "FormObjects/webAreaOverview",
+ "FormObjects/viewProAreaOverview",
+ "FormObjects/writeProAreaOverview"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "Form Object Properties",
+ "link": {
+ "type": "doc",
+ "id": "FormObjects/propertiesReference"
+ },
+ "items": [
+ "FormObjects/propertiesAction",
+ "FormObjects/propertiesAnimation",
+ "FormObjects/propertiesAppearance",
+ "FormObjects/propertiesBackgroundAndBorder",
+ "FormObjects/propertiesCoordinatesAndSizing",
+ "FormObjects/propertiesCrop",
+ "FormObjects/propertiesDataSource",
+ "FormObjects/propertiesDisplay",
+ "FormObjects/propertiesEntry",
+ "FormObjects/propertiesFooters",
+ "FormObjects/propertiesGridlines",
+ "FormObjects/propertiesHeaders",
+ "FormObjects/propertiesHelp",
+ "FormObjects/propertiesHierarchy",
+ "FormObjects/propertiesListBox",
+ "FormObjects/propertiesObject",
+ "FormObjects/propertiesPicture",
+ "FormObjects/propertiesPlugIns",
+ "FormObjects/propertiesPrint",
+ "FormObjects/propertiesRangeOfValues",
+ "FormObjects/propertiesResizingOptions",
+ "FormObjects/propertiesScale",
+ "FormObjects/propertiesSubform",
+ "FormObjects/propertiesText",
+ "FormObjects/propertiesTextAndPicture",
+ "FormObjects/propertiesWebArea"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "Form Events",
+ "link": {
+ "type": "doc",
+ "id": "Events/overview"
+ },
+ "items": [
+ "Events/onActivate",
+ "Events/onAfterEdit",
+ "Events/onAfterKeystroke",
+ "Events/onAfterSort",
+ "Events/onAlternativeClick",
+ "Events/onBeforeDataEntry",
+ "Events/onBeforeKeystroke",
+ "Events/onBeginDragOver",
+ "Events/onBeginUrlLoading",
+ "Events/onBoundVariableChange",
+ "Events/onClicked",
+ "Events/onCloseBox",
+ "Events/onCloseDetail",
+ "Events/onCollapse",
+ "Events/onColumnMoved",
+ "Events/onColumnResize",
+ "Events/onDataChange",
+ "Events/onDeactivate",
+ "Events/onDeleteAction",
+ "Events/onDisplayDetail",
+ "Events/onDoubleClicked",
+ "Events/onDragOver",
+ "Events/onDrop",
+ "Events/onEndUrlLoading",
+ "Events/onExpand",
+ "Events/onFooterClick",
+ "Events/onGettingFocus",
+ "Events/onHeader",
+ "Events/onHeaderClick",
+ "Events/onLoad",
+ "Events/onLoadRecord",
+ "Events/onLongClick",
+ "Events/onLosingFocus",
+ "Events/onMenuSelected",
+ "Events/onMouseEnter",
+ "Events/onMouseLeave",
+ "Events/onMouseMove",
+ "Events/onMouseUp",
+ "Events/onOpenDetail",
+ "Events/onOpenExternalLink",
+ "Events/onOutsideCall",
+ "Events/onPageChange",
+ "Events/onPlugInArea",
+ "Events/onPrintingBreak",
+ "Events/onPrintingDetail",
+ "Events/onPrintingFooter",
+ "Events/onResize",
+ "Events/onRowMoved",
+ "Events/onRowResize",
+ "Events/onScroll",
+ "Events/onSelectionChange",
+ "Events/onTimer",
+ "Events/onUnload",
+ "Events/onUrlFiltering",
+ "Events/onUrlLoadingError",
+ "Events/onUrlResourceLoading",
+ "Events/onValidate",
+ "Events/onVpRangeChanged",
+ "Events/onVpReady",
+ "Events/onWindowOpeningDenied"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "doc",
+ "label": "Labels",
+ "id": "Desktop/labels"
+ },
+ {
+ "type": "category",
+ "label": "Menus",
+ "link": {
+ "type": "doc",
+ "id": "Menus/overview"
+ },
+ "items": [
+ "Menus/creating",
+ "Menus/properties",
+ "Menus/bars",
+ "Menus/sdi"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "Access Rights",
+ "link": {
+ "type": "generated-index",
+ "title": "Access Rights",
+ "description": "Access control and user privileges for desktop applications.",
+ "slug": "/category/access-rights",
+ "keywords": [
+ "access rights"
+ ],
+ "image": "/img/docusaurus.png"
+ },
+ "items": [
+ "Users/overview",
+ "Users/editing"
+ ]
+ }
]
},
{
"type": "category",
- "label": "Desktop Applications",
+ "label": "Administration",
"link": {
"type": "generated-index",
- "title": "Desktop Applications",
- "description": "Guides for developing Desktop applications with 4D",
+ "title": "Administration",
+ "description": "How to monitor your 4D applications",
"keywords": [
- "desktop applications"
+ "administration"
],
"image": "/img/docusaurus.png"
},
"items": [
{
- "type": "doc",
- "label": "Client/Server",
- "id": "Desktop/clientServer"
+ "type": "category",
+ "label": "4D Server Administration Window",
+ "link": {
+ "type": "doc",
+ "id": "ServerWindow/overview"
+ },
+ "items": [
+ "ServerWindow/monitor",
+ "ServerWindow/users",
+ "ServerWindow/processes",
+ "ServerWindow/maintenance",
+ "ServerWindow/application-server",
+ "ServerWindow/sql-server",
+ "ServerWindow/http-server",
+ "ServerWindow/real-time-monitor",
+ "ServerWindow/remote-admin"
+ ]
},
{
"type": "category",
- "label": "Access Rights",
+ "label": "Web Administration",
"link": {
"type": "generated-index",
- "title": "Access Rights",
- "description": "Access control and user privileges for desktop applications.",
- "slug": "/category/access-rights",
+ "title": "Web Administration",
+ "description": "4D web tools for administrating and monitoring your applications.",
+ "slug": "/category/web-administration",
"keywords": [
- "access rights"
+ "web administration"
],
"image": "/img/docusaurus.png"
},
"items": [
- "Users/overview",
- "Users/editing"
+ "Admin/webAdmin",
+ "Admin/dataExplorer"
]
},
+ {
+ "type": "doc",
+ "label": "Command Line Interface",
+ "id": "Admin/cli"
+ },
+ {
+ "type": "doc",
+ "label": "TLS Protocol",
+ "id": "Admin/tls"
+ },
+ {
+ "type": "doc",
+ "label": "Licenses",
+ "id": "Admin/licenses"
+ },
+ {
+ "type": "doc",
+ "label": "Log Files",
+ "id": "Debugging/debugLogFiles"
+ },
{
"type": "category",
- "label": "Forms",
+ "label": "MSC",
"link": {
"type": "doc",
- "id": "FormEditor/forms"
+ "id": "MSC/overview"
},
"items": [
- "FormEditor/stylesheets",
- "FormEditor/pictures",
- {
- "type": "category",
- "label": "Form Editor",
- "link": {
- "type": "doc",
- "id": "FormEditor/formEditor"
- },
- "items": [
- "FormEditor/macros",
- "FormEditor/objectLibrary"
- ]
- },
- {
- "type": "category",
- "label": "Form Properties",
- "link": {
- "type": "doc",
- "id": "FormEditor/jsonReference"
- },
- "items": [
- "FormEditor/action",
- "FormEditor/propertiesForm",
- "FormEditor/formSize",
- "FormEditor/markers",
- "FormEditor/menu",
- "FormEditor/print",
- "FormEditor/windowSize"
- ]
- },
+ "MSC/information",
+ "MSC/analysis",
+ "MSC/verify",
+ "MSC/backup",
+ "MSC/compact",
+ "MSC/rollback",
+ "MSC/restore",
+ "MSC/repair",
+ "MSC/encrypt"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "Backup and Restore",
+ "link": {
+ "type": "doc",
+ "id": "Backup/overview"
+ },
+ "items": [
+ "Backup/backup",
+ "Backup/settings",
+ "Backup/log",
+ "Backup/restore"
+ ]
+ },
+ {
+ "type": "doc",
+ "label": "Data Collection",
+ "id": "Admin/data-collect"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "Extensions",
+ "link": {
+ "type": "generated-index",
+ "title": "Extensions",
+ "slug": "/category/extensions",
+ "keywords": [
+ "component, extension, plug-in"
+ ],
+ "image": "/img/docusaurus.png"
+ },
+ "items": [
{
- "type": "category",
- "label": "Form Objects",
- "link": {
- "type": "doc",
- "id": "FormObjects/formObjectsOverview"
- },
- "items": [
- "FormObjects/buttonOverview",
- "FormObjects/buttonGridOverview",
- "FormObjects/checkboxOverview",
- "FormObjects/comboBoxOverview",
- "FormObjects/dropdownListOverview",
- "FormObjects/groupBox",
- "FormObjects/inputOverview",
- "FormObjects/listOverview",
- "FormObjects/listboxOverview",
- "FormObjects/pictureButtonOverview",
- "FormObjects/picturePopupMenuOverview",
- "FormObjects/pluginAreaOverview",
- "FormObjects/progressIndicator",
- "FormObjects/radiobuttonOverview",
- "FormObjects/ruler",
- "FormObjects/shapesOverview",
- "FormObjects/spinner",
- "FormObjects/splitters",
- "FormObjects/staticPicture",
- "FormObjects/stepper",
- "FormObjects/subformOverview",
- "FormObjects/tabControl",
- "FormObjects/text",
- "FormObjects/webAreaOverview",
- "FormObjects/viewProAreaOverview",
- "FormObjects/writeProAreaOverview"
- ]
+ "type": "category",
+ "label": "Extending 4D applications",
+ "link": {
+ "type": "doc",
+ "id": "Extensions/overview"
},
+ "items": [
+ "Extensions/develop-components",
+ "Extensions/develop-plug-ins"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "4D View Pro",
+ "link": {
+ "type": "generated-index",
+ "title": "4D View Pro",
+ "slug": "/category/4d-view-pro",
+ "keywords": [
+ "4D View Pro"
+ ],
+ "image": "/img/docusaurus.png"
+ },
+ "items": [
+ "ViewPro/getting-started",
+ "ViewPro/configuring",
+ "ViewPro/formulas",
+ "ViewPro/classes",
+ "ViewPro/advanced-programming",
{
"type": "category",
- "label": "Form Object Properties",
+ "label": "Commands",
"link": {
"type": "doc",
- "id": "FormObjects/propertiesReference"
+ "id": "ViewPro/commands"
},
"items": [
- "FormObjects/propertiesAction",
- "FormObjects/propertiesAnimation",
- "FormObjects/propertiesAppearance",
- "FormObjects/propertiesBackgroundAndBorder",
- "FormObjects/propertiesCoordinatesAndSizing",
- "FormObjects/propertiesCrop",
- "FormObjects/propertiesDataSource",
- "FormObjects/propertiesDisplay",
- "FormObjects/propertiesEntry",
- "FormObjects/propertiesFooters",
- "FormObjects/propertiesGridlines",
- "FormObjects/propertiesHeaders",
- "FormObjects/propertiesHelp",
- "FormObjects/propertiesHierarchy",
- "FormObjects/propertiesListBox",
- "FormObjects/propertiesObject",
- "FormObjects/propertiesPicture",
- "FormObjects/propertiesPlugIns",
- "FormObjects/propertiesPrint",
- "FormObjects/propertiesRangeOfValues",
- "FormObjects/propertiesResizingOptions",
- "FormObjects/propertiesScale",
- "FormObjects/propertiesSubform",
- "FormObjects/propertiesText",
- "FormObjects/propertiesTextAndPicture",
- "FormObjects/propertiesWebArea"
+ {
+ "type": "category",
+ "label": "A",
+ "link": {
+ "type": "generated-index",
+ "title": "A",
+ "slug": "/commands-legacy/A"
+ },
+ "items": [
+ "ViewPro/commands/vp-add-formula-name",
+ "ViewPro/commands/vp-add-range-name",
+ "ViewPro/commands/vp-add-selection",
+ "ViewPro/commands/vp-add-sheet",
+ "ViewPro/commands/vp-add-span",
+ "ViewPro/commands/vp-add-stylesheet",
+ "ViewPro/commands/vp-all"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "C",
+ "link": {
+ "type": "generated-index",
+ "title": "C",
+ "slug": "/commands-legacy/C"
+ },
+ "items": [
+ "ViewPro/commands/vp-cell",
+ "ViewPro/commands/vp-cells",
+ "ViewPro/commands/vp-column",
+ "ViewPro/commands/vp-column-autofit",
+ "ViewPro/commands/vp-combine-ranges",
+ "ViewPro/commands/vp-convert-from-4d-view",
+ "ViewPro/commands/vp-convert-to-picture",
+ "ViewPro/commands/vp-copy-to-object",
+ "ViewPro/commands/vp-create-table"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "D",
+ "link": {
+ "type": "generated-index",
+ "title": "D",
+ "slug": "/commands-legacy/D"
+ },
+ "items": [
+ "ViewPro/commands/vp-delete-columns",
+ "ViewPro/commands/vp-delete-rows"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "E",
+ "link": {
+ "type": "generated-index",
+ "title": "E",
+ "slug": "/commands-legacy/E"
+ },
+ "items": [
+ "ViewPro/commands/vp-export-document",
+ "ViewPro/commands/vp-export-to-blob",
+ "ViewPro/commands/vp-export-to-object"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "F",
+ "link": {
+ "type": "generated-index",
+ "title": "F",
+ "slug": "/commands-legacy/F"
+ },
+ "items": [
+ "ViewPro/commands/vp-find",
+ "ViewPro/commands/vp-find-table",
+ "ViewPro/commands/vp-flush-commands",
+ "ViewPro/commands/vp-font-to-object"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "G",
+ "link": {
+ "type": "generated-index",
+ "title": "G",
+ "slug": "/commands-legacy/G"
+ },
+ "items": [
+ "ViewPro/commands/vp-get-active-cell",
+ "ViewPro/commands/vp-get-binding-path",
+ "ViewPro/commands/vp-get-cell-style",
+ "ViewPro/commands/vp-get-column-attributes",
+ "ViewPro/commands/vp-get-column-count",
+ "ViewPro/commands/vp-get-current-sheet",
+ "ViewPro/commands/vp-get-data-context",
+ "ViewPro/commands/vp-get-default-style",
+ "ViewPro/commands/vp-get-formula",
+ "ViewPro/commands/vp-get-formula-by-name",
+ "ViewPro/commands/vp-get-formulas",
+ "ViewPro/commands/vp-get-frozen-panes",
+ "ViewPro/commands/vp-get-names",
+ "ViewPro/commands/vp-get-print-info",
+ "ViewPro/commands/vp-get-row-attributes",
+ "ViewPro/commands/vp-get-row-count",
+ "ViewPro/commands/vp-get-selection",
+ "ViewPro/commands/vp-get-sheet-count",
+ "ViewPro/commands/vp-get-sheet-index",
+ "ViewPro/commands/vp-get-sheet-name",
+ "ViewPro/commands/vp-get-sheet-options",
+ "ViewPro/commands/vp-get-show-print-lines",
+ "ViewPro/commands/vp-get-spans",
+ "ViewPro/commands/vp-get-stylesheet",
+ "ViewPro/commands/vp-get-stylesheets",
+ "ViewPro/commands/vp-get-table-column-attributes",
+ "ViewPro/commands/vp-get-table-column-index",
+ "ViewPro/commands/vp-get-table-dirty-rows",
+ "ViewPro/commands/vp-get-table-range",
+ "ViewPro/commands/vp-get-table-theme",
+ "ViewPro/commands/vp-get-tables",
+ "ViewPro/commands/vp-get-value",
+ "ViewPro/commands/vp-get-values",
+ "ViewPro/commands/vp-get-workbook-options"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "I",
+ "link": {
+ "type": "generated-index",
+ "title": "I",
+ "slug": "/commands-legacy/I"
+ },
+ "items": [
+ "ViewPro/commands/vp-import-document",
+ "ViewPro/commands/vp-import-from-blob",
+ "ViewPro/commands/vp-import-from-object",
+ "ViewPro/commands/vp-insert-columns",
+ "ViewPro/commands/vp-insert-rows",
+ "ViewPro/commands/vp-insert-table-columns",
+ "ViewPro/commands/vp-insert-table-rows"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "M",
+ "link": {
+ "type": "generated-index",
+ "title": "M",
+ "slug": "/commands-legacy/M"
+ },
+ "items": [
+ "ViewPro/commands/vp-move-cells"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "N",
+ "link": {
+ "type": "generated-index",
+ "title": "N",
+ "slug": "/commands-legacy/N"
+ },
+ "items": [
+ "ViewPro/commands/vp-name",
+ "ViewPro/commands/vp-new-document"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "O",
+ "link": {
+ "type": "generated-index",
+ "title": "O",
+ "slug": "/commands-legacy/O"
+ },
+ "items": [
+ "ViewPro/commands/vp-object-to-font"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "P",
+ "link": {
+ "type": "generated-index",
+ "title": "P",
+ "slug": "/commands-legacy/P"
+ },
+ "items": [
+ "ViewPro/commands/vp-paste-from-object",
+ "ViewPro/commands/vp-print"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "R",
+ "link": {
+ "type": "generated-index",
+ "title": "R",
+ "slug": "/commands-legacy/R"
+ },
+ "items": [
+ "ViewPro/commands/vp-recompute-formulas",
+ "ViewPro/commands/vp-remove-name",
+ "ViewPro/commands/vp-remove-sheet",
+ "ViewPro/commands/vp-remove-span",
+ "ViewPro/commands/vp-remove-stylesheet",
+ "ViewPro/commands/vp-remove-table",
+ "ViewPro/commands/vp-remove-table-columns",
+ "ViewPro/commands/vp-remove-table-rows",
+ "ViewPro/commands/vp-reset-selection",
+ "ViewPro/commands/vp-resize-table",
+ "ViewPro/commands/vp-resume-computing",
+ "ViewPro/commands/vp-row",
+ "ViewPro/commands/vp-row-autofit",
+ "ViewPro/commands/vp-run-offscreen-area"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "S",
+ "link": {
+ "type": "generated-index",
+ "title": "S",
+ "slug": "/commands-legacy/S"
+ },
+ "items": [
+ "ViewPro/commands/vp-set-active-cell",
+ "ViewPro/commands/vp-set-allowed-methods",
+ "ViewPro/commands/vp-set-binding-path",
+ "ViewPro/commands/vp-set-boolean-value",
+ "ViewPro/commands/vp-set-border",
+ "ViewPro/commands/vp-set-cell-style",
+ "ViewPro/commands/vp-set-column-attributes",
+ "ViewPro/commands/vp-set-column-count",
+ "ViewPro/commands/vp-set-current-sheet",
+ "ViewPro/commands/vp-set-custom-functions",
+ "ViewPro/commands/vp-set-data-context",
+ "ViewPro/commands/vp-set-date-time-value",
+ "ViewPro/commands/vp-set-date-value",
+ "ViewPro/commands/vp-set-default-style",
+ "ViewPro/commands/vp-set-field",
+ "ViewPro/commands/vp-set-formula",
+ "ViewPro/commands/vp-set-formulas",
+ "ViewPro/commands/vp-set-frozen-panes",
+ "ViewPro/commands/vp-set-num-value",
+ "ViewPro/commands/vp-set-print-info",
+ "ViewPro/commands/vp-set-row-attributes",
+ "ViewPro/commands/vp-set-row-count",
+ "ViewPro/commands/vp-set-selection",
+ "ViewPro/commands/vp-set-sheet-count",
+ "ViewPro/commands/vp-set-sheet-name",
+ "ViewPro/commands/vp-set-sheet-options",
+ "ViewPro/commands/vp-set-show-print-lines",
+ "ViewPro/commands/vp-set-table-column-attributes",
+ "ViewPro/commands/vp-set-table-theme",
+ "ViewPro/commands/vp-set-text-value",
+ "ViewPro/commands/vp-set-time-value",
+ "ViewPro/commands/vp-set-value",
+ "ViewPro/commands/vp-set-values",
+ "ViewPro/commands/vp-set-workbook-options",
+ "ViewPro/commands/vp-show-cell",
+ "ViewPro/commands/vp-suspend-computing"
+ ]
+ }
]
- },
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "4D Write Pro",
+ "link": {
+ "type": "generated-index",
+ "title": "4D Write Pro",
+ "slug": "/category/4d-write-pro",
+ "keywords": [
+ "4D Write Pro"
+ ],
+ "image": "/img/docusaurus.png"
+ },
+ "items": [
+ "WritePro/writeprointerface",
+ "WritePro/managing-formulas",
+ "WritePro/commands-legacy/4d-write-pro-attributes",
{
"type": "category",
- "label": "Form Events",
+ "label": "Commands",
"link": {
"type": "doc",
- "id": "Events/overview"
+ "id": "WritePro/commands/command-index"
},
"items": [
- "Events/onActivate",
- "Events/onAfterEdit",
- "Events/onAfterKeystroke",
- "Events/onAfterSort",
- "Events/onAlternativeClick",
- "Events/onBeforeDataEntry",
- "Events/onBeforeKeystroke",
- "Events/onBeginDragOver",
- "Events/onBeginUrlLoading",
- "Events/onBoundVariableChange",
- "Events/onClicked",
- "Events/onCloseBox",
- "Events/onCloseDetail",
- "Events/onCollapse",
- "Events/onColumnMoved",
- "Events/onColumnResize",
- "Events/onDataChange",
- "Events/onDeactivate",
- "Events/onDeleteAction",
- "Events/onDisplayDetail",
- "Events/onDoubleClicked",
- "Events/onDragOver",
- "Events/onDrop",
- "Events/onEndUrlLoading",
- "Events/onExpand",
- "Events/onFooterClick",
- "Events/onGettingFocus",
- "Events/onHeader",
- "Events/onHeaderClick",
- "Events/onLoad",
- "Events/onLoadRecord",
- "Events/onLongClick",
- "Events/onLosingFocus",
- "Events/onMenuSelected",
- "Events/onMouseEnter",
- "Events/onMouseLeave",
- "Events/onMouseMove",
- "Events/onMouseUp",
- "Events/onOpenDetail",
- "Events/onOpenExternalLink",
- "Events/onOutsideCall",
- "Events/onPageChange",
- "Events/onPlugInArea",
- "Events/onPrintingBreak",
- "Events/onPrintingDetail",
- "Events/onPrintingFooter",
- "Events/onResize",
- "Events/onRowMoved",
- "Events/onRowResize",
- "Events/onScroll",
- "Events/onSelectionChange",
- "Events/onTimer",
- "Events/onUnload",
- "Events/onUrlFiltering",
- "Events/onUrlLoadingError",
- "Events/onUrlResourceLoading",
- "Events/onValidate",
- "Events/onVpRangeChanged",
- "Events/onVpReady",
- "Events/onWindowOpeningDenied"
+ "WritePro/commands/wp-add-picture",
+ "WritePro/commands-legacy/wp-bookmark-range",
+ "WritePro/commands-legacy/wp-compute-formulas",
+ "WritePro/commands-legacy/wp-delete-bookmark",
+ "WritePro/commands-legacy/wp-delete-footer",
+ "WritePro/commands-legacy/wp-delete-header",
+ "WritePro/commands-legacy/wp-delete-picture",
+ "WritePro/commands/wp-delete-section",
+ "WritePro/commands-legacy/wp-delete-style-sheet",
+ "WritePro/commands/wp-delete-subsection",
+ "WritePro/commands-legacy/wp-delete-text-box",
+ "WritePro/commands/wp-export-document",
+ "WritePro/commands/wp-export-variable",
+ "WritePro/commands-legacy/wp-find-all",
+ "WritePro/commands-legacy/wp-find-next",
+ "WritePro/commands-legacy/wp-find-previous",
+ "WritePro/commands-legacy/wp-freeze-formulas",
+ "WritePro/commands/wp-get-attributes",
+ "WritePro/commands-legacy/wp-get-body",
+ "WritePro/commands-legacy/wp-get-bookmarks",
+ "WritePro/commands-legacy/wp-get-breaks",
+ "WritePro/commands-legacy/wp-get-data-context",
+ "WritePro/commands-legacy/wp-get-element-by-id",
+ "WritePro/commands-legacy/wp-get-elements",
+ "WritePro/commands-legacy/wp-get-footer",
+ "WritePro/commands-legacy/wp-get-formulas",
+ "WritePro/commands-legacy/wp-get-frame",
+ "WritePro/commands-legacy/wp-get-header",
+ "WritePro/commands-legacy/wp-get-links",
+ "WritePro/commands-legacy/wp-get-page-count",
+ "WritePro/commands-legacy/wp-get-position",
+ "WritePro/commands-legacy/wp-get-section",
+ "WritePro/commands-legacy/wp-get-sections",
+ "WritePro/commands-legacy/wp-get-style-sheet",
+ "WritePro/commands-legacy/wp-get-style-sheets",
+ "WritePro/commands-legacy/wp-get-subsection",
+ "WritePro/commands-legacy/wp-get-text",
+ "WritePro/commands-legacy/wp-get-view-properties",
+ "WritePro/commands/wp-import-document",
+ "WritePro/commands-legacy/wp-import-style-sheets",
+ "WritePro/commands/wp-insert-break",
+ "WritePro/commands/wp-insert-document-body",
+ "WritePro/commands/wp-insert-formula",
+ "WritePro/commands/wp-insert-picture",
+ "WritePro/commands-legacy/wp-insert-table",
+ "WritePro/commands-legacy/wp-is-font-style-supported",
+ "WritePro/commands-legacy/wp-new",
+ "WritePro/commands-legacy/wp-new-bookmark",
+ "WritePro/commands-legacy/wp-new-footer",
+ "WritePro/commands-legacy/wp-new-header",
+ "WritePro/commands-legacy/wp-new-style-sheet",
+ "WritePro/commands-legacy/wp-new-subsection",
+ "WritePro/commands-legacy/wp-new-text-box",
+ "WritePro/commands-legacy/wp-paragraph-range",
+ "WritePro/commands-legacy/wp-picture-range",
+ "WritePro/commands-legacy/wp-print",
+ "WritePro/commands/wp-reset-attributes",
+ "WritePro/commands-legacy/wp-select",
+ "WritePro/commands-legacy/wp-selection-range",
+ "WritePro/commands/wp-set-attributes",
+ "WritePro/commands-legacy/wp-set-data-context",
+ "WritePro/commands-legacy/wp-set-frame",
+ "WritePro/commands-legacy/wp-set-link",
+ "WritePro/commands-legacy/wp-set-text",
+ "WritePro/commands-legacy/wp-set-view-properties",
+ "WritePro/commands/wp-table-append-row",
+ "WritePro/commands-legacy/wp-table-delete-columns",
+ "WritePro/commands-legacy/wp-table-delete-rows",
+ "WritePro/commands-legacy/wp-table-get-cells",
+ "WritePro/commands-legacy/wp-table-get-columns",
+ "WritePro/commands-legacy/wp-table-get-rows",
+ "WritePro/commands-legacy/wp-table-insert-columns",
+ "WritePro/commands-legacy/wp-table-insert-rows",
+ "WritePro/commands-legacy/wp-table-merge-cells",
+ "WritePro/commands-legacy/wp-table-range",
+ "WritePro/commands-legacy/wp-table-split-cells",
+ "WritePro/commands-legacy/wp-text-range",
+ "WritePro/commands-legacy/wp-use-page-setup"
]
}
]
},
{
"type": "category",
- "label": "Menus",
+ "label": "4D AIKit",
"link": {
- "type": "doc",
- "id": "Menus/overview"
+ "type": "generated-index",
+ "title": "4D AIKit",
+ "slug": "/category/4d-aikit",
+ "keywords": [
+ "4D AIKit"
+ ],
+ "image": "/img/docusaurus.png"
},
"items": [
- "Menus/creating",
- "Menus/properties",
- "Menus/bars",
- "Menus/sdi"
+ "aikit/overview",
+ "aikit/asynchronous-call",
+ "aikit/compatible-openai",
+ {
+ "type": "category",
+ "label": "Classes",
+ "items": [
+ "aikit/Classes/openai",
+ "aikit/Classes/openaiapiresource",
+ "aikit/Classes/openaichatapi",
+ "aikit/Classes/openaichatcompletionsapi",
+ "aikit/Classes/openaichatcompletionslistparameters",
+ "aikit/Classes/openaichatcompletionsmessagesapi",
+ "aikit/Classes/openaichatcompletionsmessagesparameters",
+ "aikit/Classes/openaichatcompletionsparameters",
+ "aikit/Classes/openaichatcompletionsresult",
+ "aikit/Classes/openaichatcompletionsstreamresult",
+ "aikit/Classes/openaichathelper",
+ "aikit/Classes/openaichoice",
+ "aikit/Classes/openaiembedding",
+ "aikit/Classes/openaiembeddingsapi",
+ "aikit/Classes/openaiembeddingsparameters",
+ "aikit/Classes/openaiembeddingsresult",
+ "aikit/Classes/openaierror",
+ "aikit/Classes/openaiimage",
+ "aikit/Classes/openaiimageparameters",
+ "aikit/Classes/openaiimagesapi",
+ "aikit/Classes/openaiimagesresult",
+ "aikit/Classes/openaimessage",
+ "aikit/Classes/openaimodel",
+ "aikit/Classes/openaimodellistresult",
+ "aikit/Classes/openaimodelresult",
+ "aikit/Classes/openaimodelsapi",
+ "aikit/Classes/openaimoderation",
+ "aikit/Classes/openaimoderationitem",
+ "aikit/Classes/openaimoderationresult",
+ "aikit/Classes/openaimoderationsapi",
+ "aikit/Classes/openaiparameters",
+ "aikit/Classes/openairesult",
+ "aikit/Classes/openaivision",
+ "aikit/Classes/openaivisionhelper"
+ ]
+ }
]
},
{
- "type": "doc",
- "label": "User Settings",
- "id": "Desktop/user-settings"
+ "type": "link",
+ "label": "4D Mobile App Server",
+ "href": "https://github.com/4d-go-mobile/4D-Mobile-App-Server"
},
{
- "type": "doc",
- "label": "Build Application",
- "id": "Desktop/building"
+ "type": "link",
+ "label": "4D NetKit",
+ "href": "https://developer.4d.com/4D-NetKit"
},
{
- "type": "doc",
- "label": "Labels",
- "id": "Desktop/labels"
- }
- ]
- },
- {
- "type": "category",
- "label": "Mobile Applications",
- "items": [
+ "type": "link",
+ "label": "4D Progress",
+ "href": "https://doc.4d.com/4Dv20R10/4D/20-R10/4D-Progress.100-7614210.en.html"
+ },
{
"type": "link",
- "label": "Go Mobile",
- "href": "https://developer.4d.com/go-mobile/"
+ "label": "4D SVG",
+ "href": "https://doc.4d.com/4Dv20R10/4D/20-R10/4D-SVG-Component.100-7614300.en.html"
},
{
"type": "link",
- "label": "4D for iOS (archive)",
- "href": "https://developer.4d.com/4d-for-ios"
- }
+ "label": "4D Widgets",
+ "href": "https://doc.4d.com/4Dv20R10/4D/20-R10/4D-Widgets.100-7614949.en.html"
+ },
+ {
+ "type": "link",
+ "label": "4D QPDF",
+ "href": "https://github.com/4d/4D-QPDF?tab=readme-ov-file#readme"
+ },
+ {
+ "type": "link",
+ "label": "Go Mobile with 4D",
+ "href": "https://developer.4d.com/go-mobile/"
+ },
+ {
+ "type": "link",
+ "label": "Build4D",
+ "href": "https://github.com/4d-depot/Build4D?tab=readme-ov-file#readme"
+ }
]
}
]