dd/evolutioncms-plugins-managermanager-mm_ddmultiplefields
Composer 安装命令:
composer require dd/evolutioncms-plugins-managermanager-mm_ddmultiplefields
包简介
Widget for plugin ManagerManager that allows you to add any number of fields values (TV) in one document (values are written in field as a JSON object). For example: a few images.
关键字:
README 文档
README
Widget for plugin ManagerManager that allows you to add any number of fields values (TV) in one document (values are written in field as a JSON object). For example: a few images.
Capabilities:
- Save several images, text fields, selects, etc to a document field.
- Create several columns with different (or identical) data types. For example: images with titles (
$params->columns). - Number of rows may be fixed, dynamic or may lay in the special range (
$params->minRowsNumber,$params->maxRowsNumber). - Rows sorting by drag and drop.
- Generating of an unique ID for each row.
- List of predefined values for a column (
$params->columns[i]['type']=='select').
Requires
- PHP >= 5.4
- (MODX)EvolutionCMS.plugins.ManagerManager >= 0.7
Installation
To install you must unzip the archive to /assets/plungins/managermanager/widgets/ddmultiplefields/.
You may also read this documentation:
- (MODX)EvolutionCMS.plugins.ManagerManager.
- (MODX)EvolutionCMS.modules.ddMMEditor.
- (MODX)EvolutionCMS.snippets.ddGetMultipleField.
Type of TV must be textarea.
Parameters description
-
$params- Desctription: Parameters, the pass-by-name style is used.
- Valid values:
stdClassarrayAssociative
- Required
-
$params->fields- Desctription: Names of TV for which the widget is applying.
- Valid values:
stringCommaSeparated - Required
-
$params->columns- Desctription: Columns.
- Valid values:
array - Default value:
[ ['type' => 'text'] ]
-
$params->columns[i]- Desctription: Column.
- Valid values:
arrayAssociative - Required
-
$params->columns[i]['type']- Desctription: Column type.
- Valid values:
'text'—<input type="text">column'textarea'—<textarea>column'richtext'— column with rich text editor'image'— image column'file'— file column'date'— date column'select'—<select>column (see$params->columns[i]['data'])
- Required
-
$params->columns[i]['title']- Desctription: Column title.
- Valid values:
string - Default value:
''
-
$params->columns[i]['alias']- Desctription: An unique column alias. If empty, just numeric index will be used.
- Valid values:
string - Default value: —
-
$params->columns[i]['width']- Desctription: Column width, px.
- Valid values:
integer - Default value:
180
-
$params->columns[i]['data']- Desctription: Valid values (for the
'select'column type) - Valid values:
stringJsonArray - Default value: —
- Desctription: Valid values (for the
-
$params->columns[i]['data'][i]- Desctription: Item.
- Valid values:
arrayAssociative - Required
-
$params->columns[i]['data'][i]['value']- Desctription: Item value.
- Valid values:
string - Required
-
$params->columns[i]['data'][i]['title']- Desctription: Item title.
- Valid values:
string - Default value: ==
$params->columns[i]['data'][i]['value']
-
$params->columns[i]['defaultValue']- Desctription: Column default value.
For now it is used only to check when deleting empty rows. - Valid values:
string - Default value:
''
- Desctription: Column default value.
-
$params->minRowsNumber- Desctription: Minimum number of rows.
- Valid values:
integer - Default value:
0
-
$params->maxRowsNumber- Desctription: Maximum number of rows.
- Valid values:
integer0— unlimited
- Default value:
0
-
$params->previewWidth- Desctription: Maximum value of image preview width (for the
'image'columns). - Valid values:
integer - Default value:
300
- Desctription: Maximum value of image preview width (for the
-
$params->previewHeight- Desctription: Maximum value of image preview height (for the
'image'columns). - Valid values:
integer - Default value:
100
- Desctription: Maximum value of image preview height (for the
-
$params->roles- Desctription: The CMS user roles that the widget is applied to.
- Valid values:
stringCommaSeparated''— when this parameter is empty then widget is applied to the all roles
- Default value:
''
-
$params->roles[i]- Desctription: CMS user role.
- Valid values:
integer - Required
-
$params->templates- Desctription: Document templates IDs for which the widget is applying to.
- Valid values:
stringCommaSeparated''— empty value means the widget is applying to all templates
- Default value:
''
-
$params->templates[i]- Desctription: Templates ID.
- Valid values:
integer - Required
CMS events
OnDocFormPrerenderOnDocFormRender
Output format
The widget saves value to a TV as JSON object with the following structure:
{
"1590412453247": {
"0": "First row, first column value",
"customAlias": "First row, second column value"
},
"1590412497589": {
"0": "Second row, first column value",
"customAlias": "Second row, Second column value"
}
}
Where:
1590412453247,1590412497589— the unique auto generated row IDs (JS(new Date).getTime()is used while creating rows).0,customAlias— column index or alias (if set).
Rows objects with empty column values will not be saved.
If all columns and all rows are empty, an empty string ('') will be saved instead of an empty JSON ojbect ('{}').
It is strongly recommend to use (MODX)EvolutionCMS.snippets.ddGetMultipleField >= 3.5 for rendering TVs on site.
Examples
Make the TV someImages available for adding several number of images
Create the TV someImages, set it's type equal to textarea.
mm_ddMultipleFields([ 'fields' => 'someImages', 'columns' => [ //Only one column [ 'type' => 'image' ] ] ]);
Create 2 columns: images with titles
mm_ddMultipleFields([ 'fields' => 'someImage', 'columns' => [ [ 'type' => 'image', 'title' => 'Photo' ], [ 'type' => 'text', 'title' => 'Title' ] ] ]);
Using column aliases ($params->columns[i]['alias'])
mm_ddMultipleFields([ 'fields' => 'photos', 'columns' => [ [ 'type' => 'image', 'title' => 'Photo', 'alias' => 'src' ], [ 'type' => 'text', 'title' => 'Title' 'alias' => 'alt' ], //In the same time we can use columns without aliases, numeric index will be used in this case [ 'type' => 'textarea' 'title' => 'Notes' ] ] ]);
Will be save something like this:
{
"1590412453247": {
"src": "assets/images/ElonMusk.jpg",
"alt": "Elon Reeve Musk",
"2": "Business magnate and investor"
},
"1590412497589": {
"src": "assets/images/YuryDud.jpg",
"alt": "Yury Aleksandrovich Dud",
"2": "Russian journalist and YouTuber"
}
}
Table of employees contacts
Create the TV employees, set it's type equal to textarea.
mm_ddMultipleFields([ 'fields' => 'employees', 'columns' => [ [ 'type' => 'text', 'title' => 'Name', 'width' => 250 ], [ 'type' => 'text', 'title' => 'Phone' 'width' => 100 ], [ 'type' => 'text', 'title' => 'Job title' 'width' => 200 ] ], //Minimum 2 employee is required 'minRowsNumber' => 2, //And maximum 10 'maxRowsNumber' => 10 ]);
<select> column type
mm_ddMultipleFields([ 'fields' => 'employees', 'columns' => [ [ 'type' => 'text', 'title' => 'Name', 'width' => 250 ], [ 'type' => 'text', 'title' => 'Phone' 'width' => 100 ], [ 'type' => 'select', 'title' => 'Job title' 'data' => '[ { "value": "Founder" }, { "value": "SEO" }, { "value": "Designer" }, { "value": "Product manager" }, { "value": "Developer" } ]' ] ] ]);
Links
dd/evolutioncms-plugins-managermanager-mm_ddmultiplefields 适用场景与选型建议
dd/evolutioncms-plugins-managermanager-mm_ddmultiplefields 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 12 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「multiple field」 「modx」 「MODX Evo」 「evo」 「modx evolution」 「evo cms」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 dd/evolutioncms-plugins-managermanager-mm_ddmultiplefields 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 dd/evolutioncms-plugins-managermanager-mm_ddmultiplefields 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 dd/evolutioncms-plugins-managermanager-mm_ddmultiplefields 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
ConfirmationField is a form field for Atk14 applications. It's like the BooleanField (checkbox) but the ConfirmationField must be ticked.
Field for number with restricted count of digits and decimal places
A simple state dropdown field for SilverStripe forms
Extensions for laravel's database abstraction layer
This bundle offers a simple backend explanation form field (inputType).
Extension of Magento2 Sales Rule to allow multiple coupon usage.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2020-12-19