it-swarm.asia

كيف يمكنني استبدال عنوان العقدة لنوع محتوى معين؟

أحاول إضافة علامة فصل (§) أمام عنوان نوع المحتوى "ABC" في موقع Drupal 7 site.

حاولت ما يلي:

function mytheme_preprocess_node(&$variables) {
  if ($variables['view_mode'] == 'full' && node_is_page($variables['node'])) {
    $variables['classes_array'][] = 'node-full';
  }
  //watchdog("mytheme_preprocess_node", 'items %items', array('%items' => print_r($variables['node'], true)));
  $node = $variables['node'];
  if ($node->type=='abc') {
    $node->title = 'this is a test' . $node->title; 
    $variables['node'] = $node;
    watchdog("mytheme", 'items %items', array('%items' => print_r($variables['node'], true)));
  }
}

لقد رأيت إخراج الرسالة في السجل ، ولكن العنوان المحدث لا يظهر على الموقع.

5
Vlad Vinnikov

يتم تنفيذ كل تنفيذ لـ hook_preprocess_node() المصنوع من وحدة (أو سمة) بعد template_preprocess_node () ، والذي يحتوي على الكود التالي:

  $variables['node_url']  = url($uri['path'], $uri['options']);
  $variables['title']     = check_plain($node->title);
  $variables['page']      = $variables['view_mode'] == 'full' && node_is_page($node);

template_preprocess_node() هي دالة ما قبل المعالجة التي يتم تنفيذها من Node الوحدة النمطية ، وهي الوحدة التي تحدد theme_node().

ثم يستخدم ملف القالب $title لعنوان الصفحة.

  <?php print render($title_prefix); ?>
  <?php if (!$page): ?>
    <h2<?php print $title_attributes; ?>>
      <a href="<?php print $node_url; ?>"><?php print $title; ?></a>
    </h2>
  <?php endif; ?>
  <?php print render($title_suffix); ?>

إذا كنت ترغب في تغيير قيمة العنوان ، يجب عليك تغيير قيمة $title ، في وظيفة ما قبل المعالجة.

يتم شرح أمر تنفيذ وظائف ما قبل المعالجة في وثائق theme () . في هذا التوثيق "HOOK" هو عنصر نائب لنوع وظيفة ما قبل المعالجة ، على سبيل المثال "العقدة" و "html" و "الصفحة". بين محرك العرض المستخدم للموضوع ، والوحدة النمطية ، والموضوع المحدد حاليًا ، فإن وظيفة المعالجة المسبقة المنفذة من السمة هي آخر وظيفة يتم استدعاؤها. يساعد هذا إذا كانت هناك وحدة أخرى تغير العنوان ، وتريد استخدام المجموعة الواحدة من السمة.

ما أبلغت عنه صالح أيضًا Drupal 6.

7
kiamlaluno