जवाबों:
एक कस्टम मॉड्यूल बनाएं, मॉड्यूल MODULENAME
के नाम के field_image
साथ और अपने क्षेत्र के नाम के साथ बदलें :
/**
* Implements hook_entity_view().
*/
function MODULENAME_entity_view($entity, $type, $view_mode, $langcode) {
if ($view_mode == 'teaser') {
$entity->content['field_image']['#items'] = array_slice($entity->content['field_image']['#items'], 0, 1);
}
}
देखें hook_entity_view () अधिक जानकारी के लिए प्रलेखन।
if ($view_mode == 'teaser' && $entity->type == 'CONTENT_TYPE')
।
कस्टम कोड लिखने की आवश्यकता नहीं है।
फ़ील्ड मल्टीपल लिमिट मॉड्यूल का उपयोग करने का प्रयास करें ।
यह आपको अपने सामग्री प्रकार के लिए प्रदर्शन सेटिंग्स में जाने और केवल कुछ निश्चित मानों को प्रदर्शित करने के लिए टीज़र सेटिंग्स को कॉन्फ़िगर करने की अनुमति देता है। आप चाहे तो इसे स्किप वेस बना सकते हैं, उदाहरण के लिए अगर आप चाहते हैं कि यह मान 2 से 5 प्रदर्शित करे
।
मैंने पहली छवि प्रदर्शित करने के लिए एक नया फ़ील्ड बनाने के लिए हुक_फ़ील्ड_एक्सफ़्रा_फ़िल्ड्स () और हुक_नोड_व्यू () का उपयोग किया ताकि मैं मूल छवियों फ़ील्ड के साथ छेड़छाड़ न करूं।
hook_field_extra_fields () नए फ़ील्ड को प्रारंभ करता है जो आपके नोड प्रकार के प्रबंधन प्रदर्शन टैब पर दिखाई देगा।
function HOOK_field_extra_fields() {
$extra['node']['NODE_TYPE'] = array(
'display' => array(
'primary_image' => array(
'label' => t('Primary Image'),
'weight' => 0,
)
),
);
return $extra;
}
तब हुक_नोड_व्यू () का उपयोग आपके नए फ़ील्ड की सामग्री होने के लिए पहली छवि को जोड़ने के लिए किया जाता है।
function HOOK_node_view($node, $view_mode, $langcode) {
if($node->type == 'NODE_TYPE' && $view_mode == 'teaser') {
//make sure there are images
if(!empty($node->field_images)) {
$node->content['primary_image'] = $node->content['field_images'][0];
//hide the original field with multiple images
hide($node->content['field_images']);
}
}
}
नोट: यदि आपके पास डिस्प्ले सूट सक्षम है तो आप इसे मैनेज डिस्प्ले टैब में कर सकते हैं।