/**
 * Fetches user action logs of link_publishers type that are not yet processed in given environment
 * @param eZDB $db
 * @param string $environment
 * @return array
 */
function fetchNotProcessedLinkPublishersUserActionLogs( eZDB $db, $environment )
{
    $query = <<<'EOT'
    SELECT id, datetime, user_action_log.change, user_id, action, done
    FROM user_action_log
    WHERE action = '%s'
    AND done IN (%s)
EOT;

    $environmentsToProcess = UserActionLog::getEnvironmentCodesToProcess( $environment );

    $query = sprintf( $query, UserActionLog::ACTION_LINK_PUBLISHER, implode( $environmentsToProcess, ',' ) );
    $result = $db->arrayQuery( $query );
    return $result;
}
function fetchPublisherFolderLanguage($id, eZDB $db, array &$publisherLanguageArray)
{
    if (array_key_exists($id, $publisherLanguageArray))
    {
        return $publisherLanguageArray[$id];
    }

    $query = "SELECT default_language FROM mm_publisher_folder WHERE id = {$id}";
    $result = $db->arrayQuery($query);
    $language = $result[0]['default_language'];

    $publisherLanguageArray[$id] = $language;
    if ($language == null)
    {
        throw new Exception("Default language for publisher folder {$id} is null");
    }

    return $language;
}