Add new comment

Le pager de sencha touch et les vue Drupal ( views )

Vous vous amusez avec Sencha Touch et les vues Drupal ? une des fonctionnalitès du framework de sencha touch est  le plugin de pagination des listes qui permet de faire simplement des listes à défilement infinie.

Mais se pose alors un problème lorsque l'on essaye de faire fonctionner cela avec les vues Drupal, en utilisant le module Views Datasource pour générer le json. Le pager de Sencha Touch se base sur une numérotation de page commencant à 1 alors que le pager de svues commence à zéro.

La solution à cela est de modifier la maniére dont le proxy de sencha touch construit ses requètes GET :

Ext.define('path.proxy.MyProxy', {
    extend: 'Ext.data.proxy.JsonP',
    alias: 'proxy.myproxy',
    xtype : 'drupalpagerjsonp',
    config: {
        // This is the url we always query
        url: 'http://my/view/outputing/json/page',
        
        reader: {
            type: 'json',
            rootProperty: 'nodes'
        }
    },
       
     /**
     * We need to add a slight customization to buildRequest
     * We change the 1 index based page query to a zero based one
     */
    buildRequest: function(operation) {
        var request = this.callParent(arguments),
            params  = request.getParams();

        Ext.apply(params, {
            rpp: operation.getLimit(),
            page: operation.getPage() - 1
        });
        
        request.setParams(params);
        request.setUrl(this._url);

        // As we're modifiying the request params, we need to regenerate the url now
        request.setUrl(this.buildUrl(request));
        
        return request;
    }
});

Et voilà !

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.