Exportar/importar nodequeue entre entornos.

No soy uno de los grandes defensores de Nodequeue, me gusta más Weight, pero en algunos casos Nodequeue es la única opción "usable" para los clientes.

He intentado exportar vía Features extra los nodequeue creados, pero no me preguntéis porque no los exportaba. Así que con esta tesitura me propuse buscar otra opción de tener en código una queueu que se pueda desplegar y "desplegar" en diferentes entornos.

<?php
/**
 * Implements Hook_update_N()
 */
function mymodule_update_N(){

  //validate if nodequeue is installed
 
if(module_exists('nodequeue') {
   
// validate if the queue is into the database.
     
$queue = nodequeue_load_queue_by_name('prueba_uno');

      $nodequeue = new stdClass;
     
// to udpate a queue we must update a queueu add the qid
      
if(isset($queue->qid)) {
       
$nodequeue->qid = $queue->qid;
       }
     
$nodequeue->api_version = 2;
     
// This is the machine name
     
$nodequeue->name = 'noticias_destacadas';
     
$nodequeue->title = 'Noticias destacadas';
     
$nodequeue->subqueue_title = '';
     
$nodequeue->size = 5;
     
$nodequeue->link = 'Agregar a noticias destacadas';
     
$nodequeue->link_remove = 'Quitar de noticias destacadas';
     
$nodequeue->owner = 'nodequeue';
     
$nodequeue->show_in_ui = 1;
     
$nodequeue->show_in_tab = 1;
     
$nodequeue->show_in_links = 1;
     
$nodequeue->reference = '0';
     
$nodequeue->reverse = 1;
     
$nodequeue->i18n = 0;
     
// Example $nodequeue->roles = array('redactor', 'editor');
     
$nodequeue->roles = array();
     
// Example $nodequeue->roles = array('noticia', 'evento', 'destacado');
     
$nodequeue->types = array('noticia');
     
     
$nodequeue->add_subqueue = array(  );
    

      nodequeue_save($nodequeue);
    }
  }

}

?>

Con esta opción lo que hacemos es comprobar si el módulo nodequeue esta instalado, y luego si la queue existe o no, si exsite la actualizamos, sino existe la guardamos. Y todo esto lo llevamos a cabo con las actualizaciones.

Para pasar a código de nuevas queues la única opción que he encontrado es usar estas dos funciones:

<?php
nodequeue_load_queues
(array(1));
nodequeue_load_queue_by_name('prueba_dos');
?>



En ambos casos recuperamos un objeto con toda la información de la queue.

Se que no es la opción más interesante, pero es la que he encontrado ;)

Oskar