We have a multi-language node queue with the option "Create a smartqueue per enabled language" selected.
When adding content to this node queue via the node queue edit form on a sub queue, the autocomplete brings up the correct node title (eg. French) but after saving, the node added to the queue is the source node (eg. the English node).

I have tracked down where I think this happens, line 2011 in nodequeue.module

Originally this reads:

return ($queue->i18n && !empty($node->tnid)) ? $node->tnid : $node->nid;

But I think we only want to return the tnid if the $queue->i18n option is set to 1, not if it is set to 2.

So altering as follow works for me:

/**
 * Return content id based on i18n settings
 */
function nodequeue_get_content_id($queue, $node) {
  // This should only return the tnid if the queue is set to $queue->i18n == '1'
  // If $queue->i18n == '2', then we want the node id, not the source translation tnid.
  return ($queue->i18n == '1' && !empty($node->tnid)) ? $node->nid : $node->nid;
}

I have not tested this with other options for node queue i18n options.

Patch to follow.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Finn Lewis’s picture

Finn Lewis’s picture

I've just realised that the option to "Create a smartqueue per enabled language" is actually from a custom module, and not part of nodequeue contrib.
So this problem may not actually effect anyone else.

jenlampton’s picture

Status: Active » Closed (outdated)

Closing as per last comment. If anyone else has similar issues, please reopen.