أحاول تعديل مجموعة المحتوى وإضافة رابط إضافي.
لقد حاولت إضافة حقل جديد إلى $node->content
. تمكنت من نسخ حقل آخر وعرضه مرة أخرى. تمكنت من تغيير تسمية هذا المجال ، ولكن ليس الرابط نفسه.
هل لدى أي شخص أي فكرة عن كيفية المضي قدما؟
يمكنك القيام بذلك عن طريق تنفيذ hook_node_view .
فمثلا:
function my_module_node_view($node, $view_mode, $langcode) {
switch ($node->type) {
case 'my_node_type':
$node->content['extra_link'] = array(
'#weight' => 10,
'#theme' => 'link',
'#path' => 'path_to_content',
'#text' => t('An extra link'),
'#options' => array(
'attributes' => array(),
'html' => FALSE
),
);
break;
}
}
ستعمل إجابة ويسكي معظم الوقت ، لكنها لم تنجح إذا كنت تحاول إضافة وسيطات الاستعلام إلى نهاية عنوان URL. في حالتي ، أقوم مسبقًا بتجهيز مرجع الكيان حقل يحتاج إلى عنوان URL يبدو كما يلي:
node/add/er-engagement?field_er_cal_entity_reference=19
لا يبدو أن إجابة ويسكي تسمح بذلك ، سواء كان "html" هو TRUE أو FALSE.
ومع ذلك ، ستعمل السمة "#markup".
function hook_node_view($node, $view_mode, $langcode){
switch ($node->type) {
case 'er_event':
$node->content['links']['extra_link'] = array(
'#weight' => 100, // place it at the bottom
'#markup' => l('Add attendee data', 'node/add/er-engagement', array('query' => array('field_er_cal_entity_reference' => $node->nid))),
);
break;
}
}}
هذا يعمل بشكل رائع إذا كنت بحاجة إلى تلك الحجج هناك. التوثيق غير موجود ، ولكن بفضل هذا المنشور ، يساعد على التحقق من Drupal 7 ، ما عليك سوى البحث عن '#links' للحصول على فكرة.
لإضافة جزء استعلام فقط ضعه داخل مصفوفة الخيار:
$node->content['links']['extra_link'] = array(
'#weight' => 10,
'#theme' => 'link',
'#path' => 'node/add/er-engagement',
'#text' => t('Add attendee data'),
'#options' => array(
'html' => FALSE,
'query' => array('field_er_cal_entity_reference' => $node->nid)
),
);
سيؤدي هذا إلى عرض عنوان URL مثل هذا: node/add/er -agement؟ field_er_cal_entity_reference = 13