2011-06-22 120 views
1

我試圖創建視圖的我自己的自定義格式輸出。我已經受夠了這種代碼部分成功:如何正確實現hook_views_plugins?

my_module.module:

<?php 
function my_module_views_api() { // your module name into hook_views_api 
    return array(
    'api' => 2, 
    // might not need the line below, but in any case, the last arg is the name of your module 
    'path' => drupal_get_path('module', 'my_module'), 
); 
} 
?> 

my_module.views.inc:

<?php 
/** 
* Implementation of hook_views_plugins(). 
*/ 
function my_module_views_plugins() { 
    $path = drupal_get_path('module', 'my_module'); 
    return array(
    'style' => array(
     'my_module' => array(
     'title' => t('my_module'), 
     'handler' => 'views_plugin_style_default', 
     'theme' => 'my_module', 
     'theme path' => $path . '/theme', 
     'theme file' => 'my-module.tpl.php', 
     'uses row plugin' => TRUE, 
     'uses row class' => TRUE, 
     'uses grouping' => TRUE, 
     'uses options' => TRUE, 
     'type' => 'normal', 
    ) 
    ), 
); 
} 
?> 

主題/我-module.tpl.php:

<?php 
/** 
* @file views-view-unformatted.tpl.php 
* Default simple view template to display a list of rows. 
* 
* @ingroup views_templates 
*/ 
if (!empty($title)): 
    print $title; 
endif; 
foreach ($rows as $id => $row): 
?> 
ROW: 
<?php 
print_r($row); 
endforeach; 
?> 

以上是成功的,它會用我的自定義我的-module.tpl.php輸出行。但是,這些行是預先格式化的,可由views_plugin_style_default處理程序推斷。我花了幾個小時試圖創建自己的這樣的處理程序,沒有成功,無論是直接的意見/ plugins目錄或在我的模塊自身的插件目錄中放置它。我也無法在網上找到任何好的示例,並且我沒有收到任何有用的錯誤消息來幫助我進行調試。

有沒有關於如何創建自定義視圖處理程序的任何適當的文檔?或者你能提供一個有效的例子嗎?

非常感謝!

回答

1

有一個教程在這裏:http://groups.drupal.org/node/10129。向下滾動到「編寫視圖2樣式和行插件」。在教程示例中,他們創建了一個樣式和一個行插件。

作爲一種替代方法,我試着創建一個樣式插件,類似於你的,除了我設置'使用行插件'爲false。然後我可以從我的views-myplugin.tpl.php模板中訪問原始rowdata。

+0

謝謝回覆。 如果我在上面的代碼中更改爲'uses row plugin'=> FALSE,則所有輸出消失。不知道爲什麼。我可以使用不同的處理程序,如views_plugin_style_default和views_plugin_style_table。但輸出總是一樣的。 我會看教程。 – Olbion