如何使用Maestro模块在Drupal-Commons中跳过管理/用户的工作流程启动? -- 7 领域 drupal 相关 的问题

How to Skip the Workflow Launch by admin/user in Drupal-Commons using Maestro Module?


5
vote

问题

中文

我已安装并配置Drupal Commons中的"Maestro" 模块。

在Maestro模块中每次加载工作流程时,它将逐步逐步:

  1. admin :发布工作流程负载
  2. user1 :分析添加新内容
  3. user2 :审查内容
  4. user3 :发布内容

如何删除第一步?当用户创建新内容时,它应该自动进行审核。

我的工作流 工作流的框图

使用规则模块可以在创建新内容时定义任何规则意味着单击"添加内容" 工作流程自动加载....

英文原文

I have installed and configure the "Maestro" Module in Drupal Commons.

In Maestro Module every time we should Load the Workflow and it will go through step by step:

  1. Admin: Publishing Workflow Load
  2. User1: Assigend to add new Content
  3. User2: Review Content
  4. User3: Publish Content

How can I remove first step? When user creates new content, it should automatically go for review.

My Workflow Block diagram of workflow

Using the rules module Can I define any rule when New Content is created means click on "Add Content" Workflow automatic Load....

  
 
 

回答列表

3
 
vote
vote
最佳答案
 

我们在需要使用菜单项时使用的解决方案使用EntityForm启动菜单项的工作流程以进行费用批准。菜单URL只需要通过Maestro Workflow template_id

菜单挂钩的回调函数启动工作流程,然后在Maestro模板中执行频率浏览到用户的第一个交互式任务(填写表单)。它将用户重定向到任务控制台,并自动打开要填写的费用表单。可以将以下代码添加到自定义模块中,并为您的使用重新设计。

  /**  * Implements hook_menu()  */ function MODULE_NAME_menu() {   $items = array();    $items['pi_workflow/launch_eform'] = array(     'title' => 'Launch Entityform Workflow',     'page callback' => 'nextide_launch_eform_workflow',     'page arguments' => array(2) ,      // Passing in wildcard which should be the maestro workflow template_id     'type' => MENU_CALLBACK,     'access arguments' => array('maestro taskconsole')   );     return $items; }   /* Launch an entityform workflow where the first task  * after the start task is the entityform task.  * User will be redirected to the taskconsole and launch the first task (open form for editing)  */ function nextide_launch_eform_workflow($template) {   if (intval($template) > 0) {     $sec_token = drupal_get_token('maestro_user');     $new_process_id = maestro_launch_workflow($template, $sec_token);      // Run the orchestrator to execute the first task after the start task which is the interactive entityform task     maestro_orchestrator();     $maestro = Maestro::createMaestroObject(1);     $process_data = $maestro->engine()->getQueueHistory($new_process_id);      $task = MaestroTask::createTaskObject($process_data[1]->id);     $data = $task->prepareTask();     $task_data = unserialize($data['serialized_data']);      // Default will be to redirect user to the task console unless overlay module is available     $link = 'maestro/taskconsole';     $options = array();     // Test that we have valid process data and then test for the task we are looking for to get the task id     if (is_array($process_data) AND isset($process_data[1])) {       // If overlay module is enabled and user has overlay permission, open entityform up in overlay       if (module_exists('overlay') && overlay_get_mode() ) {         $options = array('fragment' => "overlay=eform/submit/{$task_data['entityform_id']}/maestro/" . $process_data[1]->id);       }     }     drupal_goto($link, $options);   } else {     drupal_set_message(t("New Process Code FAIL! - No Template ID Given"));   }  }   
 

A solution we have used where we needed to have a menu item launch a workflow for expense approval using an entityform. The menu URL just needed to pass in the maestro workflow template_id

The callback function for the menu hook launches the workflow and then executes past the START task in the maestro template, to the first interactive task for the user (fill out form). It redirects the user to the task console and automatically opens the expense form to be filled in. The following code can be added to a custom module and re-purposed for your use.

/**  * Implements hook_menu()  */ function MODULE_NAME_menu() {   $items = array();    $items['pi_workflow/launch_eform'] = array(     'title' => 'Launch Entityform Workflow',     'page callback' => 'nextide_launch_eform_workflow',     'page arguments' => array(2) ,      // Passing in wildcard which should be the maestro workflow template_id     'type' => MENU_CALLBACK,     'access arguments' => array('maestro taskconsole')   );     return $items; }   /* Launch an entityform workflow where the first task  * after the start task is the entityform task.  * User will be redirected to the taskconsole and launch the first task (open form for editing)  */ function nextide_launch_eform_workflow($template) {   if (intval($template) > 0) {     $sec_token = drupal_get_token('maestro_user');     $new_process_id = maestro_launch_workflow($template, $sec_token);      // Run the orchestrator to execute the first task after the start task which is the interactive entityform task     maestro_orchestrator();     $maestro = Maestro::createMaestroObject(1);     $process_data = $maestro->engine()->getQueueHistory($new_process_id);      $task = MaestroTask::createTaskObject($process_data[1]->id);     $data = $task->prepareTask();     $task_data = unserialize($data['serialized_data']);      // Default will be to redirect user to the task console unless overlay module is available     $link = 'maestro/taskconsole';     $options = array();     // Test that we have valid process data and then test for the task we are looking for to get the task id     if (is_array($process_data) AND isset($process_data[1])) {       // If overlay module is enabled and user has overlay permission, open entityform up in overlay       if (module_exists('overlay') && overlay_get_mode() ) {         $options = array('fragment' => "overlay=eform/submit/{$task_data['entityform_id']}/maestro/" . $process_data[1]->id);       }     }     drupal_goto($link, $options);   } else {     drupal_set_message(t("New Process Code FAIL! - No Template ID Given"));   }  } 
 
 

相关问题

0  主题某些系统块,如用户取消  ( Theming certain system block like user cancellation ) 
我对主题用户取消表单(用户/%/取消)有困难。 基本上我正在努力实现: 添加h1标签 在div中的包装形式 在按钮之间添加文本 虽然此表单具有ID =用户取消确认表单,但我不能与用户配置文件页面(用户/%/编辑)相同的方式。 这是打印$ var ['block']在preprocess_block告诉我:...

0  新内容不符合自定义图像样式  ( Custom image style is not honored on new content ) 
在Drupal 7上我创建了两种新的图像样式。现在,当我保存新内容时,我希望新的图像在新的图像样式中保存,但这不会发生。图像仅存在于普通缩略图,中,大型和方形缩略图尺寸。 如何使新的图像样式成为荣获? 编辑:因此mołot和bala明确表示必须调用某种图像样式来生成那种风格的图像。然而,我想调用代码中的较小图像,然...

2  来自分类学术语字段的自动填充物  ( Autofill from taxonomy term fields ) 
我正在尝试将分类项的字段与内容类型的字段连接,如下所示: 自动填充内容类型到另一个 我在节点上尝试了它,它的工作,但现在我对分类学术语有一些问题,是为了这个部分? // load node by nid $node = node_load($nid); 我是否必须在此指定分类?但我真的不知道要放入什么....

1  私人文件丢失文件名  ( Private files missing filename ) 
我最近从版本7.12到7.23升级drupal。升级后,我注意到下载私有文件时,我在浏览器中选择"另存为" 时,我将不再获得正确的文件名。 这些是我遵循的步骤: 我在节点的文件字段中上传文件("testfile.pdf" ) 我查看节点,右键单击该文件,然后选择"另存为" 下载对话框中的文件名(应该是"test...

0  始终包含URL中的语言代码  ( Always include language code in url ) 
用于SEO的原因,我需要我的网站始终在URL中使用语言代码。目前,MySite.com/en/news还可以通过MySite.com/news访问,根据我的SEO联系,MySite.com/news应该返回内容。 如何实现此行为? ...

2  如何创建新的管理子页面以及如何使其出现在管理员菜单中?  ( How do i create a new admin sub page and how to make it appear in the admin menu ) 
假设我必须只创建一个额外的用户管理视图块,仅用于贡献者角色,具有一些不同的列,过滤器和动作。 如何创建一个简单的页面,该页面仅限于某些角色,并自动具有后端主题将我的视图块放在那里? (我始终将视图块放在页面上,它使编辑意见更轻松) 最后,如何使该页面显示在管理工具栏中作为admin / people的子项? 我是否必...

2  创建可更新的可编辑表  ( Creating an editable table which can be updated ) 
我有一个大约150个用户的网站。我将实施一个系统,他们在现实世界中所做的事情(这是一个健身公司),如参加会议,推出新客户等。 我想创建一个带3列的表: 名称|点|更新 所以这样的东西: 是我的客户端(编辑器角色)可以登录并修改每个用户所拥有的要点,然后单击"更新" 以修改每行。如果表格底部只有一个"更新" 按钮,...

0  Drupal Commerce:Line_Item字段在用户配置文件中?  ( Drupal commerce line item field in user profile ) 
im尝试实现添加到收藏夹函数,但我不能引用Commerce_Product / Product_Display,因为我的情况销售的项目由用户自定义(添加文本,图像,无论如何)定制。 我有一个称为自定义的自定义线项类型,其中我添加了字段来处理我的用户可以做的自定义。 对于添加到收藏夹功能,我想在用户配置文件中添加一个...

3  如何使用规则延迟发送电子邮件,以避免被视为垃圾邮件?  ( How to delay sending emails using rules to avoid being considered as a spammer ) 
我为用户创建了一个规则,谁订阅另一个用户以获取此用户新内容的消息: Events EVENT After saving new content Conditions ELEMENTS None Actions ELEMENTS Fetch users who have fla...

2  模块设置积分/点  ( Modules to set credits points ) 
我正在寻找一个模块,允许自己或其他主持人为每个站点成员设置学分/点。站点成员可以使用信用来购买商店中的物品。我不想为交易使用任何现实的货币,只需虚拟点。 本网站是在线公会。我的希望是建立一个奖励系统,并给出每个成员在公会中活跃,他们可以转身并使用点来在游戏中获得其角色的内容。 是否有任何模块可以帮助我实现这一目标? ...

2  对WebForm提交的分类和排序  ( Categorizing and sorting webform submissions ) 
我正在尝试找到一个有效的方法来分类和排序WebForm提交。我已经让它们在视图中显示,但希望进一步拍摄它。以下是目标: 匿名用户可以在我们的网站上填写就业申请(通过WebForm)。我们的招聘人员希望能够通过这些应用程序进行排序,并通过一次选择多个,然后将批处理电子邮件发送给申请人来进行分类(接受,拒绝等)。 我已...

0  将饲料分类为自动分类术语  ( Categorize feeds with taxonomy terms automatically ) 
我想从各种RSS源中获取内容到我的站点中以在一节中显示它们。我已经安装了Feeds模块并创建了Feed以获取,以及将托管获取的新闻的内容类型,但我想对它们进行分类,以便使用视图显示在不同的组中(即:'新闻' ,'技术','体育'等)。 是有没有办法告诉进料模块将值添加到生成的节点的"类别" 字段(这是一个分类学期或...

0  烫伤获得原子的用法  ( Scald get usage for an atom ) 
在Drupal 7使用 scald ,是可以获得给定原子的用法示例引用它的节点? ...

1  如何显示“登录或注册到发表评论”消息,无需评论内容?  ( How to show log in or register to post comments message when no comments on co ) 
"登录或注册到发表评论" 消息在没有评论的内容上没有注释时不显示。 但是,它确实显示了至少一个注释时。 在评论模块代码中查看,"登录或注册到发表评论" 消息在于仅在存在一个或多个评论时才能运行! 怎么样?!当没有评论时,是否有模块或现有的方法来制作此显示? 我可以在自己的模块中编写一个钩子以覆盖这一点,但如果已经完成...

0  如何将手机上的菜单项设置为堆叠的全宽项目?  ( How to set menu items on mobile as stacked full width items ) 
我正在使用超级小鱼,我的菜单非常适合普通显示器。但是,对于小型智能手机显示,我希望我的菜单项堆叠并跨越显示的宽度。此外,当使用子项单击某个项目时,顶级项目会消失并显示子项。 我无法弄清楚如何从SF文档中执行此操作或在Web上搜索。 ...

0  单曝光过滤器中的分类法内容类型  ( Content type with taxonomy in single exposed filter ) 
我希望单一的筛选过滤器,内容类型和分类单个内容类型, 就像我有3个内容类型零件,工具,设备,并且具有符合术语硬件,仪器和组件的零件的分类系统,现在我想要一个暴露过滤器的视图,其中包含它们的两种过滤器。 有没有方法要这样做? ...

0  在drupal7更新到user_rectrictions-7.x-1.0之后,我无法从另一个主机运行cron  ( After updating to user restrictions 7 x 1 0 in drupal7 i can no longer run cron ) 
我一直在与其中一个浏览器上的浏览器更新几个Drupal7安装。我刚刚做到了这一点,在这两个机器上更新到user_retrictions-7.x-1.0。这在我的浏览器运行的主机上造成了没有问题,但在另一个主机上,Drupal将不再在我的请求中手动运行cron,并单击"从站点外运行cron,转到http:/// dru...

0  呈现水平的选项卡作为渲染可折叠的字段  ( Horizontal tabs rendered as rendering collapsible fields ) 
虽然我已经设置了内容类型的显示以使用水平标签 它是可折叠字段的渲染: 有没有人有关于如何纠正这个的想法? ...

0  尝试添加新内容时的空白页面  ( Blank page when trying to add new content ) 
我要应对一些非常奇怪的东西:我不能再添加任何类型的内容。例如:当我进入Content&gt;添加内容&gt;文章,我正确导航到"添加奇体公司" 页面,但我只是获得一个白色屏幕。我之前没有这个,我不记得安装新模块。我已经尝试用所有的缓存,但这并没有解决任何问题。即使我添加 <?php error_reporting...

0  在自定义数据库表上执行批量操作  ( Perform bulk operations on a custom database table ) 
我有一个自定义数据库表。我实现了 hook_views_data() ,使其可用视图。 /** * Implements hook_views_data(). */ function uploader_views_data() { $data = array( 'texts' => array( ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.