it-swarm-es.com

Cómo llamar a un formulario de configuración de acción de reglas a través de drupal_get_form

Por lo tanto, estoy tratando de incorporar el formulario que encuentro en '/ admin/config/workflow/reglas/reacción/gestión/comercio_payment_paypal_wps/edit/3' - que contiene la configuración del negocio de PayPal, etc. (de Commerce_Paypal_wps.module) .

Buscando en las reglas/ui/ui.controller.inc puedo ver que se llama así:

$items[$base_path . '/manage/%rules_config/edit/%rules_element'] = array(
      'title callback' => 'rules_get_title',
      'title arguments' => array('Editing !plugin "!label"', $base_count + 3),
      'page callback' => 'drupal_get_form',
      'page arguments' => array('rules_ui_edit_element', $base_count + 1, $base_count + 3, $base_path),
      'access arguments' => array('administer rules'),
      'load arguments' => array($base_count + 1),
      'file' => 'ui/ui.forms.inc',
      'file path' => drupal_get_path('module', 'rules'),
    );

No estoy completamente seguro de qué cosas adicionales debería pasar a Drupal_Get_Form ('Reglas_ui_Edit_Element') para hacer que haga el formulario como lo hace normalmente.

¿Cómo en la Tierra obtengo ese formulario de configuración de acción de reglas para representar a través de drupal_get_form, o algún otro mecanismo, para que pueda ponerlo en la URL de mi elección y hacer que se vea un poco más presentable para nuestros clientes?

2
instanceofjamie

Debe estar usando una versión antigua de Commerce para obtener una URL como esa. Fue cambiado hace mucho tiempo a dmin/commerce/config/payment-methods/...

En hook_menu, el módulo Commerce_Payment_UI crea la ruta, donde se deben ubicar los formularios de reglas:

// Add the menu items for the various Rules forms.
$controller = new RulesUIController();
$items += $controller->config_menu('admin/commerce/config/payment-methods');

Podrías modificar esas si quieres cambiar la URL. Sin embargo, debe tener en cuenta que esta URL también se usa en otra parte:

/**
 * Builds the payment settings page using the Rules UI overview table filtered
 *   to display payment method rules.
 */
function commerce_payment_ui_admin_page() {
  RulesPluginUI::$basePath = 'admin/commerce/config/payment-methods';

  ...
}

Dado que la mayoría de las normas, incluido la creación de estos ajustes, se clasifica en función de la clasificación, no será fácil crear el formulario. No he profundizado mucho en el código de reglas, pero recuerdo haber visto las funciones públicas llamadas

  • form
  • form_validate
  • form_submit

Creo que estos se usan para crear el formulario, pero cómo termina en el FAPI está más allá de mí. Si todo lo que quieres es cambiar la ruta, podría usar hook_menu_alter y para el comercio, sobrescribe el commerce_payment_ui_admin_page Función con la suya para crear la tabla de resumen.

1
googletorp