ユーザーが特定のカテゴリに画像(ノードタイプ= my_image)を投稿できるサイトの開発。基本的に、私たちはカテゴリーを作成し、ユーザーはそれらに画像を送信します。
ユーザーにはメニューまたはURLの権限がありません。これをユーザーに許可します。ユーザーがカテゴリに属している場合、drupalフォームがdrupal_render_children()を使用してそのページに表示されます。
HOOK_node_insert(type == my_image)で、それらがどのカテゴリに属しているかを識別し、メニューに追加します。これに続いて、pathauto_create_aliasを使用して(タイトルに基づいて)エイリアスを生成しようとしていますが、これまでのところ失敗しています(HOOK_node_updateでエイリアスを更新できます)。
もちろん、ユーザーにmenuとurlの許可を与えると、エイリアスが作成されます。ユーザーがメニューシステムに直接アクセスしたり、エイリアスを設定したりすることは望ましくありません。
上記のシナリオでpathauto_create_aliasを使用する適切な方法を誰かが知っていますか?
基本的にpathautoモジュールを使用してコードでURLエイリアスを生成するには、次のようになります。
module_load_include('inc', 'pathauto'); // include the inc file for Pathauto module
/*
pathauto_create_alias($module, $op, $source, $data, $type, $language)
@param $module: Your module name
@param $op: The operation (insert, update, return, bulkupdate)
@param $source: Internal Drupal path (i.e.: node/1)
@param $data: Addition data used to generate a pathalias, in this case the node object
@param $type: Type of content that will be used to match a pattern, defined in the backend url alias patterns
@param $language: If you have a multlingual website, you need to pass the language for which you want to generate the url alias
*/
pathauto_create_alias('your_module_name', 'insert', 'node/1', array('node' => $node), $node->type, $language->language); // Language is optional