it-swarm.asia

حد الجملة المحفزة لعرض القيمة الأولى فقط للحقل

لدي نوع محتوى به حقل صورة. عادةً ما يتم ملء هذا الحقل بقيم من 0 إلى 4. افتراضيًا ، ينتج الإعلان التشويقي لنوع المحتوى هذا جميع الصور من 0 إلى 4. كيف يمكنني ضبط الجملة المحفزة لعرض الصورة الأولى فقط؟

14
Greg

أنشئ وحدة نمطية مخصصة ، واستبدل 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 () وثائق لمزيد من التفاصيل.

12
tim.plunkett

لا حاجة لكتابة كود مخصص.

حاول استخدام حد الحقل المتعدد الوحدة النمطية.

يسمح لك بالانتقال إلى إعدادات العرض لنوع المحتوى الخاص بك وتكوين إعدادات الجملة المحفزة لعرض كمية معينة فقط من القيم. يمكنك أيضًا جعله يتخطى القيم ، على سبيل المثال إذا كنت تريد عرض القيم من 2 إلى 5

.

12
rooby

إذا كنت تستخدم نموذجًا محفزًا (على سبيل المثال: عقدة - نوع محتوى - teaser.tpl.php) ، فهذا يعمل:

  <?php print render($content['IMAGE-FIELD'][0]); ?>
4
nelslynn

استخدمت hook_field_extra_fields () و hook_node_view () لإنشاء حقل جديد لعرض الصورة الأولى بحيث لم أكن العبث بحقل الصور الأصلي.

يقوم 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;
}

ثم يتم استخدام hook_node_view () لإضافة الصورة الأولى لتكون محتوى مجالك الجديد.

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']);
    }
  }
}

ملاحظة: إذا قمت بتمكين مجموعة العرض ، يمكنك القيام بذلك في علامة التبويب إدارة العرض.

1
Teegan