drupal8 统计计算模块

math_field
数学字段(数学表达式字段格式化程序)
一个简单的词法分析器和解析器,可以使用最基本的运算符`+,-,*,/`计算简单的数学运算,并且可以正确处理括号()和浮点运算(小数)。当前无法处理负数或一元运算。
它作为Drupal 8服务模块实现,并提供文本字段格式化程序。
格式化程序当前内联显示错误。
要求
* Drupal 8.x版本
安装
下载,安装并按通常的方式启用在drupal.org上托管的Drupal 8模块
composer require drupal/math_field
drush en math_field
用法
启用模块后,在您的内容类型中创建一个“文本字段”,然后选择“数学字段格式器”作为格式器,网址为 admin/structure/types/manage/CONTENT_TYPE/display
格式化程序将同时显示表达式和结果(或错误消息):
(1 + 2) * 4  = 12
结果将在鼠标悬停时显示,并带有延迟的CSS动画。
特征
1.解析器需要能够使用最基本的运算符(+,-,*,/)来计算简单的数学运算,而无需使用eval()。
例如:“ 10 + 20-30 + 15 * 5”应返回75。2
.确保使用后缀符号注意运算符的优先级。
3.在使用该服务的Drupal 8模块中提供一个字段格式化程序插件。
4.使用git存储库中的自定义模块将工作作为Drupal 8站点交付。
5.使用数据提供程序(@dataProvider)提供一个简单的单元测试,以测试令牌化(词法化)和几种不同计算的解析。
6.提供GraphQL字段格式化程序,以便可以通过GraphQL在前端使用该字段。(正在开发中)
7.以您选择的模板语言(Twig,React)添加一个前端组件,该组件将使前端中的计算动起来,即,首先显示整个公式,然后将鼠标悬停在该文本上,转换为计算结果。
computed_field_plugin
该模块允许开发人员通过Drupal插件API创建计算字段。它添加了一个名为的字段类型computed_render_array。
其背后的想法是简化和统一我们的编码方式。我们受到https://www.drupal.org/project/extra_field的启发。现在,无论是块,额外字段还是计算字段,我们都可以使用插件和更少的钩子。
计算字段的工作方式与其他字段类似,但是它们更加灵活,因为您仍然可以使用本机字段设置(包括格式化程序)。
您可以使用它来合并显示中的多个字段,也可以仅渲染一个块,一个实体...

例如,您有两个链接字段要显示在同一HTML块中。您可以为此创建一个计算字段。如果需要,您仍然可以使用常规字段显示,这不会影响原始字段。
另一个用例可能是在内容字段之间渲染一个块。您还可以决定根据另一个字段值显示块。
要求
无特殊要求。
推荐模块
没有具体建议,您可以按原样使用此模块。
路线图
该模块的维护最少。如果需要,它将进行更新,但是没有进一步的开发计划。我们将尝试使其与核心版本保持最新,以实现到D9的平稳过渡(如果该模块仍然适用)。
已知问题
Layout Builder不支持额外的字段或整个计算字段。请参阅核心问题或该模块中的问题以获取更新,但目前无法同时使用两者。

相似的项目及其不同之处
计算字段:此模块提供数据库存储和后台界面,以创建具有一组字段类型的计算字段。
我们的模块仅允许开发人员使用插件API创建计算字段,就像他们创建一个块一样。没有数据库存储或用户界面,并且可以扩展任何类型的字段。
依存关系
没有依赖性,此模块与Drupal核心一起使用。

computed_field
计算字段是功能非常强大的字段模块,可让您向内容类型添加自定义“计算字段”。这些计算字段将填充您通过PHP代码定义的值。您可以使用任何可用于Drupal的东西,包括其他字段,当前用户,数据库表,即可为其命名。(感觉还强大吗?:))您还可以选择将计算的字段值与其他内容字段一起存储在数据库中,还是在节点视图期间即时“计算”它们。(尽管您应该注意,使用Views需要数据库存储值。)此字段实际上是瑞士军刀字段。因此,开始准备基于PHP的值!
安全警告
PHP开发人员可以使用此模块在Drupal网站上插入和执行PHP代码。除了将您的工作代码插入此文本区域之外,它不提供宏接口,代码生成器或任何其他功能。您需要具有PHP和Drupal API的良好使用知识才能使用此模块。为了获得最佳效果,请在Drupal的Page的Body字段中预先测试您的PHP代码。
请注意,不建议将PHP代码输入数据库,因为如果有人能够绕过Web前端上的访问控制,则存在安全风险。此外,该代码也不是受版本控制的,任何错误都可能导致该站点崩溃。
支持
请不要在问题队列中发布问题,以获取有关您特定的PHP代码段的无偿帮助。它们通常将被忽略或关闭。使用计算字段代码段获取代码示例并寻求帮助。如果您还有另一个有用的(或说明性的)示例,请将其添加到手册页中,如果您想获得支持,请在那儿回答支持问题。
如果您正在寻找付费支持,则可以在这样标记的问题队列中发布支持请求。这些可能会被任何人拿走,因为当前的维护者没有时间来处理此类问题。
packaging
提供用于将订单包装到盒子中的一组通用算法。插件体系结构允许其他模块定义自己的打包算法。
电子商务应用程序需要弄清楚如何将订单中的实体产品分成用于运输的容器。对于确定要向客户收取多少运费(包裹数量明显影响成本)以及对于实际发货(商店所有者希望通过使用尽可能少的盒子来最大程度地减少运费)而言,此任务是必需的。
此模块定义的策略均未确定最佳拟合。真正减少包装数量是一个计算难题,而且这是不希望的,因为在现实世界中,很少(如果有的话)以最佳方式包装盒子。相反,提供的策略使用试探法来逼近实际包装。
因为每个电子商务站点都有独特的包装需求,所以必须有各种各样的通用包装策略。同样,包装策略必须高度可定制,这一点至关重要。该模块将打包过程从电子商务应用程序中抽象出来,以满足这些目标。它不依赖于任何特定的电子商务应用程序,而是可扩展的,因此可以满足任何特定于站点的要求。特别是,它经过了设计和测试,可同时适用于Ubercart 和 Drupal Commerce,但不仅限于这些用途。
-dev发行版中的代码当前正在运行,并且具有全套的单元测试。我目前正在修改联邦快递和加拿大邮政的模块,以依赖于Packaging,并且我希望基于该练习,Packaging会有一些体系结构上的更改。
views_cumulative_field
此模块创建一个“ 视图”字段处理程序,使您能够计算视图中另一个字段的累积值。这对于“ 图表”模块创建的“视图”显示非常有用,但可用于任何允许字段的“视图”。
虽然此模块允许您直接在内部视图中使用PHP,这对于快速简便的解决方案可能很有用,但强烈建议在可用时使用常规处理程序和插件(甚至自己创建一个)。
使用说明
启用此模块后:
创建/编辑您的视图。
添加一个输出数字的字段。就本模块而言,这被视为“数据字段”。
添加“全局:累积字段”字段(由此模块创建)
在“累积字段”的字段设置中,从无线电中选择要为其累积值的字段(“数据字段”)。
而已!“累积字段”应将前一行的所有值与当前行的值相加。

评论

查看简单数学字段
Twig可以进行数学运算,因此这可能是您的最佳选择。对于希望避免使用Twig或拥有诸如Charts这样的模块比重写字段响应更好的模块的站点构建者,此字段特别有用。
使用说明
启用此模块后(您可能需要运行cron / clear缓存):
创建/编辑您的视图。
添加两个输出数字的字段。这将是您将对其执行操作的两个值。
添加“全局:简单数学字段”字段(由此模块创建)
选择两个字段和要执行的操作。
而已!
版本号
2.x
此版本允许用户将多个字段和操作添加到同一公式中。它利用了“ Eval-math”库。当前没有从1.x升级到2.x的升级路径,但是在更新(编辑视图,配置字段,保存)后,重新配置现有的Views Simple Math字段相对容易。希望有人为升级做出贡献!这是2.x字段的样子

dashan 答复于