it-swarm.asia

تعديل عنوان الصفحة وتعيين عنوان مخصص لها

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

7
Hacker

إذا لم أكن مخطئًا ، فلا يمكنك فعل ذلك من واجهة المستخدم. ومع ذلك ، يمكنك تنفيذ ربط في وحدة نمطية مخصصة ، وأخذ المتغيرات المتاحة ، وتطبيق منطقك الخاص وتعيين العنوان الذي تريده.

يمكنك العثور على مثال على تعيين عنوان الصفحة للعرض في دروبال .

function HOOK_views_pre_render(&$view) {
  if ($view->name == 'taxonomy_term' && $view->current_display == 'page') {
    drupal_set_title('Your Page Title');
  }
}
7
marcvangend

وجدت واحدة تعمل

function MYMODULE_views_pre_render(&$view) {
  if ($view->name == 'menu') {
    $view->build_info['title'] = "TEST TITLE";
  }
}
13
giorgio79

كان لدي سؤال مماثل في سياق مختلف قليلاً ، متى وأين تحصل اللوحات على العنوان من العرض؟

كان الحل

function foo_views_pre_view (&$view, &$display_id, &$args)
{
  $view->display[$view->current_display]->display_options["title"] =
  $view->display[$view->current_display]->handler->options["title"] = "Foo";
}
8
mpdonadio

يمكنك استخدام $view->set_title().

function mymodule_preprocess_views_view(&$variables) {
  $view = $variables['view'];
  if ($view->name == 'machine_name' && $view->current_display == 'display_machine_name') {
    $view->set_title('New Display Title');
  }
}
5
eric.chenchao

بدلاً من استخدام وحدة منفصلة ، أضفت التعليمات البرمجية التالية إلى السمة التي أستخدمها.

/**
 * THEME_PREPROCESS_VIEWS_VIEW
 * @param type $vars
 * 
 */
function MYTHEME_preprocess_views_view(&$vars) {
  // view block 
  if ($vars['view']->name == 'viewName') {
      //update your title
      $vars['view']->build_info['title'] = '---Title---';
    }
}

استبدل MYTHEME باسم الجهاز للسمة التي تستخدمها. أضف الكود الذي أظهرته في ملف template.php الخاص بالسمة.

2
allabakash.g

يمكنك تنفيذ hook_views_pre_render() في وحدة نمطية.

/**
 * Implements hook_views_pre_render
 */
function MYMODULE_views_pre_render(&$view) {
  switch ($view->name) {
    case 'VIEW_NAME':
      // Your code here         
      break;
  } 
}
1
JurgenR

لدي نفس المشكلة. ما يلي هو الرمز الوحيد الذي نجح معي.

function MYMODULE_NAME_preprocess_views_view(&$vars) {
  // If it is the view you want to change
  if ($vars['view']->name == 'MYMODULE_NAME') {
    // Override view's title, drupal_set_title() was not working
    $vars['view']->build_info['title'] = 'MY CUSTOM TITLE';
  }
}
1
purab

أفترض أنك قمت بإنشاء وحدة "mymodule" ثم استخدمت تطبيق hook_views_pre_build().

لست متأكدًا من أنه يمكنك تغيير عنوان العرض في هذه الخطوة ولكن قد تكون هناك احتمالات أخرى.

أولاً ، إذا كنت تحاول تغيير عنوان الصفحة (الذي تم إنشاؤه حاليًا بواسطة صفحة العرض) ، فيمكنك محاولة إضافة drupal_set_title('My new title');.

function mymodule_views_pre_build(&$view) {
  if ($view->name == 'view_machine_name') {
    drupal_set_title('New title');
  }
}

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

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

0
E. de Saint Chamas