1

ビューの独自のカスタム形式の出力を作成しようとしています。私はこのコードで部分的に成功しました:

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',
      )
    ),
  );
}
?>

theme / my-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; 
 ?>

上記は、カスタムmy-module.tpl.phpを使用して行を出力するという点で成功しています。ただし、行は事前にフォーマットされており、views_plugin_style_defaultハンドラーによって推定されます。私は何時間もかけてこのようなハンドラーを作成しようとしましたが、views / pluginsディレクトリに直接配置するか、モジュール自体のpluginsディレクトリに配置しても成功しませんでした。また、オンラインで良い例を見つけることができず、デバッグに役立つ有用なエラーメッセージも表示されません。

カスタムビューハンドラーを作成する方法に関する適切なドキュメントはありますか?または、実用的な例を提供できますか?

どうもありがとうございます!

4

1 に答える 1

1

ここにチュートリアルがあります:http://groups.drupal.org/node/10129。「WritingViews2styleandrowplugins」まで下にスクロールします。チュートリアルの例では、スタイルプラグインと行プラグインの両方を作成します。

別の方法として、「usesrowplugin」をfalseに設定したことを除いてあなたと同じようなスタイルプラグインだけを作成してみました。その後、views-view-myplugin.tpl.phpテンプレート内から生の行データにアクセスできました。

于 2011-07-01T23:05:19.073 に答える