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.
Comment | File | Size | Author |
---|---|---|---|
#1 | nodequeue-autocomplete-i18n-adds-wrong-translation-node-2282921.patch | 663 bytes | Finn Lewis |
Comments
Comment #1
Finn Lewis CreditAttribution: Finn Lewis commentedComment #2
Finn Lewis CreditAttribution: Finn Lewis commentedI'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.
Comment #3
jenlamptonClosing as per last comment. If anyone else has similar issues, please reopen.