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.

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.