1

モジュール内から新しいコンテンツ タイプを追加しようとしています。この新しいタイプのベースとして使用したいので、ubercart プロダクト キット モジュールからほとんど借りてきました。

/**
* Implementation of hook_node_info().
*
* @return Node type information for flexible product bundles.
*/
function amh_shop_bundles_node_info() {
    return array(
        'amh_shop_flexi_bundle' => array(
            'name' => t('Flexible Product Bundle'),
            'module' => 'amh_shop_bundles',
            'description' => t('This node represents a flexible bundle package that allows customers to mix and match products and get discounts.'),
            'title_label' => t('Name'),
            'body_label' => t('Description'),
        ),
    );
}

しかし、この新しいコンテンツ タイプは、他のコンテンツ タイプと一緒に私のコンテンツ タイプ リストに表示されません。パーミッションをリストする関数 amh_shop_bundles_perm() も作成したため、モジュールが正しくロードされていることがわかり、ユーザーパーミッションのリストに期待どおりに含まれています。

私は何かを逃しましたか?(まあ、おそらくそうです)。Drupalのドキュメントによると、実際にはそれほど簡単なはずです。

アップデート:

/admin/content/node-type/amh-shop-flexi-bundle にアクセスして、コンテンツ タイプが適切に生成されているかどうかのテストを提供するコメントを見つけました。

これはうまくいきました - しかし、コンテンツタイプはまだ他のものと一緒にリストされていません.

更新 2:

/node/add/amh-shop-flexi-bundle で空白のノード フォームにアクセスできたので、他のフックの実装に進むことができると考え、コンテンツ タイプを一覧表示するには hook_form() を実装する必要があることを発見しました。

4

1 に答える 1

3

hook_form() を実装するためのヒントは、私にとってはうまくいきました!

これらの行だけを追加し、baam:

function hook_form(){
  $form = array();
  return $form;
}
于 2012-01-20T02:20:23.047 に答える