Changeset 26469

Show
Ignore:
Timestamp:
06/28/10 17:15:09 (4 years ago)
Author:
piotras
Message:

Add implicit lang order. Refs #1863

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/ragnaroek/midgard/core/midgard/src/midgard_core_query_builder.c

    r26203 r26469  
    204204        gboolean multilang_fallback = _midgard_core_qb_is_multilingual(builder); 
    205205        gboolean unset_lang = builder->priv->unset_lang; 
    206         const gchar *multilang_order = "ASC"; 
    207206        GString *ml_sql = g_string_new ("");; 
    208207 
     
    396395        } 
    397396 
    398         if (multilang_fallback && !unset_lang) { 
    399  
    400                 if (!builder->priv->orders) 
    401                         g_string_append (sql, " ORDER BY "); 
    402                 else  
    403                         g_string_append (sql, ", "); 
    404  
    405                 if (mgd_lang (mgd) > mgd_get_default_lang (mgd)) 
    406                         multilang_order = "DESC"; 
    407  
    408                 g_string_append_printf (sql, "%s_i.lang %s ",  
    409                                 builder->priv->schema->table, multilang_order); 
    410         } 
    411  
    412397        g_string_append (ml_sql, sql->str); 
    413398        g_string_free (sql, TRUE); 
  • branches/ragnaroek/midgard/core/midgard/src/query_builder.c

    r26266 r26469  
    115115        builder->priv->limit = G_MAXUINT; 
    116116 
     117 
     118        /* Part of Multilang fallback */ 
     119        gboolean multilang_fallback = _midgard_core_qb_is_multilingual(builder); 
     120        gboolean unset_lang = builder->priv->unset_lang; 
     121        const gchar *multilang_order = "ASC"; 
     122 
     123        /* Add lang order implicitly, it must be added as first order */ 
     124        if (multilang_fallback && !unset_lang) { 
     125 
     126                if (mgd_lang (mgd) > mgd_get_default_lang (mgd)) 
     127                        multilang_order = "DESC"; 
     128 
     129                midgard_query_builder_add_order(builder, "lang", multilang_order); 
     130        } 
     131 
    117132        if (builder->priv->type && builder->priv->schema) { 
    118133                return builder; 
     
    121136                return NULL; 
    122137        } 
     138 
     139 
    123140} 
    124141