Changeset 26469


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

Add implicit lang order. Refs #1863

Location:
branches/ragnaroek/midgard/core/midgard/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.