モジュールからのパネルの一括インポート

コードを通じてサイトにすべての変更を加えることは、長い間私にとってのルールでした。 今、私はパネル( パネルモジュール)に着きました。

多数のパネルをインポートする必要がある場合は、 機能モジュールを使用できます。 唯一不便なのは、このモジュールがすべてのパネルを単一のファイルにエクスポートすることです。このファイルを操作することは非常に困難です。



特定のインポート/フォルダを作成し、そこにパネルを追加すると、それぞれが独自のファイルになります。 この場合、必要に応じて、パネルの編集や変更の追跡が非常に簡単です(もちろん、SVNやGITなどのバージョン管理システムを使用している場合を除きます)。



私はこのようなものを見つけることができなかったので、ブラックジャックとインポートを使用して独自の小さなモジュールを作成しました。



最初に、モジュールのすべてのファイルを作成する必要があります。 次のようになります。



ここで、 機能モジュールのメカニズムを使用して、フォルダーからすべてのパネルをインポートします。



panel_import.module:

/** * Implementation of hook_ctools_plugin_directory(). */ function panels_import_ctools_plugin_directory($module, $plugin) { if ($module == 'panels_import' && !empty($plugin)) { return $plugin; } } /** * Implement hook_ctools_plugin_api(). */ function panels_import_ctools_plugin_api($module, $api) { if ($module == 'page_manager' && $api == 'pages_default') { return array('version' => 1); } }
      
      







panel_import.pages_default.inc:

 function panels_import_default_page_manager_pages() { $pages = array(); // scan directory for imports files $dir = drupal_get_path('module', 'panels_import') .'/import'; $files = file_scan_directory($dir, '.*', array('.', '..', 'CVS', 'README.txt'), 0, FALSE); foreach ($files as $file) { // load each one files $export_data = file_get_contents($file->filename); eval($export_data); // and add to array $pages[$page->name] = $page; } return $pages; }
      
      







これで、任意のパネルをエクスポートして、 インポート/フォルダー内のファイルに保存できます。





モジュールの作業バージョンをここからダウンロードします



あなたのコメントを読んでうれしいです。 ありがとう



All Articles