だから、私は '/ admin/config/workflow/rules/reaction/manage/commerce_payment_Paypal_wps/edit/3'にあるフォームを埋め込もうとしています-これにはPaypalビジネスなどの設定が含まれています(commerce_Paypal_wps.moduleから) 。
Rules/ui/ui.controller.incを見ると、次のように呼ばれていることがわかります。
$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'),
);
Drupal_get_form( 'rules_ui_edit_element')に渡して、通常どおりフォームをレンダリングするために何を追加する必要があるのか、完全にはわかりません。
ルールアクション設定フォームをdrupal_get_formまたはその他のメカニズムを使用してレンダリングするには、いったいどのようにすればよいでしょうか。これを自分が選択したURLに配置して、クライアントに対して少し見栄えをよくすることができますか?
このようなURLを取得するには、古いバージョンのコマースを使用している必要があります。ずっと前にdmin/commerce/config/payment-methods/...
に変更されています
hook_menu
では、commerce_payment_uiモジュールがルールフォームを配置するパスを作成します。
// Add the menu items for the various Rules forms.
$controller = new RulesUIController();
$items += $controller->config_menu('admin/commerce/config/payment-methods');
URLを変更する場合は、これらを変更できます。ただし、このURLは他の場所でも使用されていることに注意してください。
/**
* 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';
...
}
これらの設定フォームの作成を含め、ルールが行うことのほとんどはクラスに基づいているため、フォームを作成するのは簡単ではありません。ルールのコードについてはあまり詳しく説明していませんが、パブリック関数が
form
form_validate
form_submit
これらはフォームの作成に使用されると思いますが、それがFAPIでどのように終わるかは私を超えています。パスを変更するだけの場合は、hook_menu_alter
を使用し、商取引の場合はcommerce_payment_ui_admin_page
関数を独自の関数で上書きして概要テーブルを作成できます。