I thought I'd make a ticket to start a list of modules that could use import/export/features integration.

This is basically stuff I use very often. Some of them may already have some import/export functionality and I didn't notice. All of them need features integration.

Please suggest other good modules that would need import/export

  • custom_breadcrumbs
  • custom_links
  • custom_pagers
  • nodequeue
  • flag
  • ....

I'm going to start using this module for a large project with a small team for change management. I'll likely be adding feature functionality for some of these for this project, so expect patches soon.

Comments

yhahn’s picture

Thanks for starting this list. FYI, the flag module doesn't provide a UI for export but it has an exportable defaults hook so it should be possible to integrate against features.

http://drupal.org/node/305086

jon pugh’s picture

Well, at least it has the _defaults hook...

Perhaps this would be a good use of a wiki table on groups.drupal.org, so we can also show the status of things like default hook, import code, export code, and import/export UI.

I am a strong supporter of pushing for everything in drupal being setup this way, to the point that I think we should put all of our efforts to adding some code to Drupal 7 for the whole import/export/defaults thing. INCLUDING nodes and users. For many a production site, we try and setup an install profile to start with a clean drupal setup. Having the ability to provide default nodes (About us, Staff pages, etc) and users in code would be fantastic.

We should also work with the exportables.module.

Features would remain nice and slim if we pushed for all other modules to start writing their objects with the import/export/defaults concept. Exportables could be the holder of that code for all of the modules that haven't done that yet.

yhahn’s picture

FYI there is a packaging & deployment group on g.d.o where these sorts of discussions have gone on in the past:

http://groups.drupal.org/packaging-deployment

In terms of core functionality that I would put at the top of the list as candidates for adding defaults hooks / exportables:

  • menus, menu links
  • fields
  • vocabularies
  • input filters
  • roles/permissions

I don't personally have any interest in going after exportables for users/content yet -- there are too many unexplored concepts in that territory (for example, would you override the default About us node? What if you wanted to disable it?).

I'd like to tackle the site building structures first where there is plenty of work to do and a very clear path to success : )

ademarco’s picture

Hi,

about content import/export, I've just posted a discussion on Packaging & Deployment group about this issue. Having Features able to deal with content could help to deal with issues like pushing configuration from dev to production keeping its content untouched... so here a first try: http://groups.drupal.org/node/24753 :)

TKS’s picture

+1 for this list -- especially Nodequeue.

A semi-ignorant question on this front: What is required to make Nodequeue (or other modules) "features-compliant"? Is there a simple set of hooks that need to be added, or is a more thorough re-working of a module required?

I'm tempted to go flag this in the Nodequeue project issues queue, but am not sure even how to frame the question.

yhahn’s picture

The API.txt included with Features has a good breakdown of what it takes to get a module integrated with the features API. The short answer is it's a small set of simple hooks if the module already has exportables. If not, there may be some refactoring required in said module.

You may also want to look at http://drupal.org/node/532256 if you're interested in getting other modules integrated with Features -- any modules that implement their exportables using CTools should work out of the box with Features in the latest CVS HEAD.

fago’s picture

I second the "flag" request, this would be just awesome together with the rules support as you could export flags + associated rules that build the functionality.

amitaibu’s picture

>I second the "flag" request
I started a patch in the flag issue queue - #335453: Import/Export Support.

> +1 for this list -- especially Nodequeue.
#475366: Flag queue module-to-be with the above patch may do the work.

fago’s picture

@#8: The flag module has already a hook for providing default flags. That would already suffice for doing features integration.

mnlund’s picture

PageRoute already have an import/export solution and should be easy to implement.

dixon_’s picture

It would be great to be able to export/import input formats in Drupal core. This code may fit best into the Better formats module. I'll try to look into making a patch for that module and create an Feature integration with it.

dixon_’s picture

For those interested in making input formats exportable, I've now created an issue in the Better Formats queue #616496: Features integration.

amitaibu’s picture

Flag implementation is in http://drupal.org/cvs?commit=280684 :)

yhahn’s picture

Awesome work Amitaibu!

yhahn’s picture

Again, if you're interested in other contrib efforts I cannot recommend the ctools export.inc API enough. It is simply a time/lifesaver, and a single exportables API will lead to many more exciting things in the future that I dream about at night.

rickvug’s picture

I completely agree with yhahn regarding cTools export.inc. Each module should be responsible for ensuring that its settings can be properly imported and exported. cTools provides a common API for this that will automatically integrate with Features. The rally cry here should be to start creating issues/patches for various modules for cTools Exportables support. Here are the existing issues that I've tagged to get the ball rolling: http://drupal.org/project/issues/search?issue_tags=ctools%20exportables

There is still Drupal core to deal with. The 2.x series of Strongarm provides a wrapper around variables so that they can take advantage of cTools exportables. There is also the Exportables project that aims to make it possible to import and export various core settings. Without machine readable names you can not reliably import and export features that rely on specific taxonomy vocabularies, input formats or user roles. However, the project seems to be early/experimental at this point. More work is certainly needed in this area.

frankcarey’s picture

bump

joachim’s picture

I've made a start on support for Flag here: #761712: support for Flag module.

j0rd’s picture

Anyone have a working example of exporting nodequeues with features? Is anyone working on this?

This appears to be the only issue in the tracker which mentions nodequeue.

Cheers,
Jordan

--
Ubercart Themes

rickvug’s picture

mooselimb’s picture

I think Content-Type-Groups could be a candidate it's new but sounds great to me :)
http://drupal.org/project/content_type_groups
http://drupal.org/node/1207952

+1 for Input-formats

joachim’s picture

lpalgarvio’s picture

better_formats
role_weight
wysiwyg - being addressed in wysiwyg issue queue

hefox’s picture

Is this issue useful to have open? This seems like the incorrect place to be doing such a list. It's not really a specific feature request, a task, a bug, or a task and there's nothing that can be done other than leave it open to collect modules names of perhaps tons of different modules.

jerrac’s picture

Custom Filter: http://drupal.org/project/customfilter

And #25 is right. Is there a group for features that could have a wiki page on this?

mpotter’s picture

Status: Active » Closed (won't fix)

Please post to the issue queue of the specific module you want to have Features support since it's up to the other module to do it.

spartan300’s picture

Hi Jordan,

I had this similar issue of "Nodequeue" not being supported by "Features".

I had "Ticker" content type which was rendered using views.
I wanted to order these ticker nodes and Nodequeue provided a great way of doing it by establishing a relationship between the nodequeue and the view.
I wanted to export this nodequeue and the view using features.
However since features does not support nodequeue,i was unable to do so.

All i did was exported the View using features and created a generic module to create the nodequeue programmatically and since the relationship was based on the queue title, i just had to make sure that the queue title in the view and the module matched.

Here is the code used in the install file :

<?php
/**
* Implementation of hook_update_N
*/
function hook_update_6001() {
// Adding a check to remove the dependency on a particular node content type to make it generic.
if(module_exists("nodequeue")) {
$nq = nodequeue_load_queue_by_name("ticker_title");
// If Ticker_queue not present then create new one
if(!$nq->qid) {
$nodequeue = new stdClass;
$nodequeue->api_version = 2;
$nodequeue->name = 'ticker_title';
$nodequeue->title = 'Ticker';
$nodequeue->subqueue_title = '';
$nodequeue->size = 0;
$nodequeue->link = '';
$nodequeue->link_remove = '';
$nodequeue->owner = 'nodequeue';
$nodequeue->show_in_ui = 1;
$nodequeue->show_in_tab = 1;
$nodequeue->show_in_links = 1;
$nodequeue->reference = '0';
$nodequeue->reverse = 0;
$nodequeue->i18n = 0;
$nodequeue->roles = array();
$nodequeue->types = array(
0 => 'ticker',
);
$nodequeue->add_subqueue = array(
1 => 'Ticker',
);
$queue_id = nodequeue_save($nodequeue);
}
}
}