it-swarm-tr.com

Görünümün sayfa başlığını değiştirme ve bunun için özel başlık ayarlama

Görünümler ve drupal kullanıyorum. 7. URL'de bağımsız değişkenler iletiyorum ve bunu görünüm sayfası başlığı olarak istiyorum.Bu geçersiz kılma başlığı onay kutusunu kullanarak mümkündür. Ama bu başlığı değiştirmek istiyorum yani bazı biçimlendirme ve içeriğin bazı trim yapmak ve sadece başlık olarak ne gerek göstermek. nasıl yapabilirim.

7
Hacker

Yanılmıyorsam, bunu kullanıcı arayüzünden yapamazsınız. Bununla birlikte, özel bir modüle bir kanca uygulayabilir, mevcut değişkenleri alabilir, kendi mantığınızı uygulayabilir ve istediğiniz başlığı ayarlayabilirsiniz.

Drupal'da görüntülemek için sayfa başlığını ayarla ile ilgili bir örnek bulabilirsiniz.

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

Çalışan bir tane buldum

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

Biraz farklı bir bağlamda benzer bir sorum vardı, Paneller başlığı bir Görünümden ne zaman ve nerede alır?

Benim çözümüm

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() kullanabilirsiniz.

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

Ayrı bir modül kullanmak yerine, kullandığım temaya aşağıdaki kodu ekledim.

/**
 * 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'yi kullandığınız temanın makine adıyla değiştirin. Temanın template.php dosyasına gösterdiğim kodu ekleyin.

2
allabakash.g

Bir modüle hook_views_pre_render() uygulayabilirsiniz.

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

Bende aynı sorun var. Benim için çalışan tek kod aşağıdadır.

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

Bir modül "mymodule" oluşturduğunuzu ve daha sonra hook_views_pre_build() uygulamasını kullandığınızı varsayıyorum.

Bu adımda Görünüm başlığını değiştirebileceğinizden emin değilim, ancak başka olasılıklar da olabilir.

İlk olarak, sayfa başlığını değiştirmeye çalışıyorsanız (şu anda görünüm sayfası tarafından oluşturulur) drupal_set_title('My new title'); eklemeyi deneyebilirsiniz.

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

Bu, Görünüm Başlığını gerçekten değiştirmez, ancak sayfa başlığını geçersiz kılmaya yardımcı olabilir. Çalışmazsa, Views, çağrının ardından sayfa başlığını çıktısı alır ve başka bir kanca bulmanız gerekir.

Başka bir çözüm, Views bağımsız değişkenlerini başlık olarak kullanmak olabilir. Görünümler bu özelliğe sahiptir, argüman ayarlarında bunun için bir alan vardır. Varsayılan sınıflandırma görünümündeki ilk argümanda, görünümler tarafından sağlanan iyi bir örnek sağlayan kontrol edebilirsiniz.

0