web-gelistirme-sc.com

Oluşturmadan bir görünüm yürütme

Programlı olarak bir görünüm yürütmek (bağımsız değişkenler sağlamak) ve işlenmeden ham sonuçları almak istiyorum. Mümkün mü?

$view->preview('default', $args); kullandığımda sonuçları HTML'ye dönüştürür. Kullanabileceğimi biliyorum $view->result ham sonuçları yinelemek için, ama bazı alanlar için kullandığım özel render buggy ve bana bir WSOD vermek (Ben render veya düzeltmek için hiçbir ilgi veya yeteneği var, bu bir Edge durumda :))

Views 3'ü Drupal 7 ile kullanıyorum

8
Daniel

Tam olarak ne istediğinizi yapan bir işlev zaten var:

  $result = views_get_view_result('my_view_name', 'default', $arg1, $arg2, ...);

Daha fazlasını api.drupal.org adresinde bulabilirsiniz:

https://api.drupal.org/api/views/views.module/function/views_get_view_result/7

7
Alexar

$ view-> preview () genellikle ekranı görüntülemek için kullanılır, böylece başka bir deyişle belirtilen formatta görüntülenecektir.

$ view-> execute_display () ayrıca ekranı görünümde belirtilen ilgili biçimde döndürür.

Bence doğrudan sorgu yürütmek için sonuç gerekebilir yani db_query ()

3
Colin McClure

view::preview() kodunu kendi kodunuza koyarsanız biraz başarılı olmanız gerekir, ancak ->display_handler->preview() yerine çağrı yapmak yerine ->execute() çağırır:

$view = views_get_view($view_name);
$view->set_display($display_name);
$view->preview = TRUE;
$view->pre_execute($args);
$view->execute($display_name);

Çoğu ekran işleyicisi için, ...->display_handler->preview() çağrısı aslında view::render() çağrısının etrafındaki bir sarmalayıcı olduğundan bu çalışmalıdır. Hangi kendisi $this->execute(...) çağrılarak başlar.

0
J-P