Давно уже взял себе за правило вносить все изменения на сайт через код. Теперь добрался и до панелей (модуль panels). Если необходимо импортировать большое количество панелей то можно воспользоваться модулем features. Единственное что не удобно, так это то что этот модуль экспортирует все панели в один файл, и потом с этим файлом довольно-таки сложно работать.
На много удобнее иметь некую папку import/ и складывать туда панели, каждый в своем файле. В этом случае, при необходимости, очень просто редактировать любые панели, а также прослеживать изменения (если вы конечно используете систему контроля версий, такие как SVN или GIT).
Ничего подобно я найти не смог, поэтому написал свой маленький модуль с блэкджеком и импортом.
Для начала необходимо создать все файлы для модуля. Выглядит все вот так:

Теперь используя механизм модуля Features импортируем все панели из папки.
panels_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); } }
panels_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; }
Теперь можно экспортировать любые панели и сохранять их в файлы внутри папки import/.

Скачать рабочую версию модуля можно здесь.
Буду рад прочитать Ваши замечания. Спасибо.
