Jump to content

Sortie de la version 1.6.2.30 PhenixSuite - By @Eolia


Eolia

Recommended Posts

Il y a 3 heures, bobby4722 a dit :

Puis, tout autre sujet : si finalement on reste tous en 1.6, et que nous voulons des modules uniquement devellopés pour la 1.7...ou la 1.8, comment la comptabilité peut se faire ?

 

Perso je développe toujours mes modules à partir de la 1.6 même si ils sont compatibles avec la 1.7 et 8.

sauf pour certaines régressions de la 1.7 😉

  • Like 1
Link to comment
Share on other sites

10 hours ago, Mediacom87 said:

Perso je développe toujours mes modules à partir de la 1.6 même si ils sont compatibles avec la 1.7 et 8.

sauf pour certaines régressions de la 1.7 😉

Bonne idée ;)

J'avais plus ou moins compris que les modules disponibles pour la 1.6 étaient compatibles avec la 1.7...Mais l'inverse non il me semble.
J'ai vu des appels d'offre pour des rétro-compatibilitées c'est pour cela que je posait la question car si finalement à un moment donné on ne peut plus ajouter des modules en fonction de nos besoins futur cela va être chaud de concerver la 1.6 sur le long terme je suppose.

Link to comment
Share on other sites

12 hours ago, Eolia said:

Toutes vos images produit existantes seront envoyées en webp aux navigateurs clients mais les images de base ne sont pas modifiées.

Ok, donc si je comprends bien on enregistre comme d'habitude nos photos sur nos produits, ou tout autre fichier jpg et le serveur change directement en temps réel pour les navigateur par du Webp, est-ce bien cela ?
Je pensais que : soit cela faisait cohabiter des jpg et des webp comme j'ai pu voir sur des sites (peut être du magento) OU que cela fonctionnait un peu comme un module que j'ai et qui peut tout recompresser dans le ftp afin de réduire les fichiers existants mais aussi les fichiers ultérieurement enregistrés (le module que j'ai ne s'occupe que du jpg).

Link to comment
Share on other sites

Il y a 2 heures, bobby4722 a dit :

Ok, donc si je comprends bien on enregistre comme d'habitude nos photos sur nos produits, ou tout autre fichier jpg et le serveur change directement en temps réel pour les navigateur par du Webp, est-ce bien cela ?
Je pensais que : soit cela faisait cohabiter des jpg et des webp comme j'ai pu voir sur des sites (peut être du magento) OU que cela fonctionnait un peu comme un module que j'ai et qui peut tout recompresser dans le ftp afin de réduire les fichiers existants mais aussi les fichiers ultérieurement enregistrés (le module que j'ai ne s'occupe que du jpg).

Si l'image n'existe pas en webp elle est automatiquement générée dans le répertoire (en plus de l'image d'origine en jpg ou png)

Link to comment
Share on other sites

Le 29/12/2022 à 12:54 AM, Mediacom87 a dit :
  • J'imagine que l'intégration au même endroit que sur la 1.7 était plus complexe dans la page Performances.
     
  • Question bonus, mais pourquoi n'y a-t-il toujours pas un lien sur le texte indiquant que le site est en maintenance pour aller directement sur la page de la configuration de la maintenance 😉

C'était pas plus complexe (je viens de le faire) mais je trouvais ça plus rapide que d'aller chercher dans les menus et en le mettant en orange, on évite de l'oublier

image.png.2f6d90c4773b3c6c4ba2dbdffdef2516.png

Et le lien vers la page maintenance a été ajouté ;)

Bon réveillon à tous !

  • Like 1
Link to comment
Share on other sites

Bonjour,

Après avoir mis à jour et testé avec succès deux boutiques de test, dont une copie de ma boutique de prod, je me décide à mettre à jour ma boutique de prod.

Aucun message d'erreur, le FO fonctionne très bien, mais le BO affiche toujours une énorme flèche et plus de menu latéral gauche..

J'ai même essayé de copier la boutique de dev vers la prod (fichiers et bdd) et même soucis, alors que sur la boutique de dev, je n'ai pas le problème

fleche11.jpg

Edited by P i l o u (see edit history)
Link to comment
Share on other sites

 

il y a 50 minutes, meditation a dit :

Bonjour Eolia, j'ai testé la nouvelle version 1.6.1.30, tout fonctionne bien sur BO, mais sur FO, si la mode One page checkout est activée, la page de paiement est HS, les css ne sont pas appelés sur cette page. pourriez vous regarder ceci.

Bonjour,

Pouvez-vous ouvrir et regarder votre console svp ? (F12 ou bouton droit "Inspecter l'élément")

Sur la démo je suis en OPC et les css sont bien chargés. https://presta.devcustom.net/

Avez-vous ajouté un module ou autre chose ?

 

Link to comment
Share on other sites

Je viens de noter un plantage sur la démo sur l'onglet "Devises", cela renvoi une erreur.

Effectivement le "Live edit" n'y est plus 😭 Ça par contre c'est super utile je trouve.

Un module m'a interpellé "Mise à jour en un clic v10 - par PrestaShop - patch (d)oekia".
J'ai cherché sur son site mais je n'ai pas trouvé ce patch, d'où vient il SVP ?

Ensuite j'ai vu plein de modules notés "Mis à jour par Eolia", est-ce que ces modules sont inclus dans la dernière version ?
 

Je viens de voir au sujet du .Webp, cela indique que seules les images produits passe à ce format, ça c'est cool :)
Est-ce que c'est un choix que cela soit uniquement les images produits ou il faut quand même garder des fichiers en .JPG afin que l'intégralité du site ne soit pas en Webp pour je ne sais quelle raison. Car toutes les images en Webp, cela réduirait fortement le poids à charger, est-ce prévu ?

Merci :)

Link to comment
Share on other sites

Le 31/12/2022 à 1:55 PM, P i l o u a dit :

J'ai retrouvé le menu en l'affichant à l'horizontal plutôt qu'à la verticale, mais je me suis aperçu d'une chose, plus possible de modifier le mot de passe d'un employé.

profil10.jpg

Même chose lors de la création d'un nouvel employé

nouvem10.jpg

Bonjour,

Et bonne année !

Quelqu'un peut me dire quel fichier est utilisé dans la partie employé, modifier ou créer un employé svp ?

J'aimerai renvoyer ce fichier sur mon ftp pour voir si je récupère l'affichage du champs email et mot de passe.

Link to comment
Share on other sites

il y a une heure, P i l o u a dit :

Bonjour,

Et bonne année !

Quelqu'un peut me dire quel fichier est utilisé dans la partie employé, modifier ou créer un employé svp ?

J'aimerai renvoyer ce fichier sur mon ftp pour voir si je récupère l'affichage du champs email et mot de passe.

Remplacez le fichier /controllers/admin/AdminEmployeesController.php par celui-ci AdminEmployeesController.zip

Link to comment
Share on other sites

Oui, pardon, veuillez décommenter également les lignes 251 et 259 de ce fichier.

C'est une erreur de ma part, ces lignes étant commentées sur ma version demo suite à ce que de petits malin aient changé les identifiants.

  • Like 1
Link to comment
Share on other sites

Il y a 3 heures, bobby4722 a dit :

Je viens de noter un plantage sur la démo sur l'onglet "Devises", cela renvoi une erreur.

La coquille a été corrigée ;)

 

Il y a 3 heures, bobby4722 a dit :

Un module m'a interpellé "Mise à jour en un clic v10 - par PrestaShop - patch (d)oekia".
J'ai cherché sur son site mais je n'ai pas trouvé ce patch, d'où vient il SVP ?

Ensuite j'ai vu plein de modules notés "Mis à jour par Eolia", est-ce que ces modules sont inclus dans la dernière version ?

Tous les modules mis à jour sont disponibles dans l'archive

 

Il y a 3 heures, bobby4722 a dit :

Je viens de voir au sujet du .Webp, cela indique que seules les images produits passe à ce format, ça c'est cool :)
Est-ce que c'est un choix que cela soit uniquement les images produits ou il faut quand même garder des fichiers en .JPG afin que l'intégralité du site ne soit pas en Webp pour je ne sais quelle raison. Car toutes les images en Webp, cela réduirait fortement le poids à charger, est-ce prévu ?

Le Webp n'est pas supporté par tous les navigateurs.

Un contrôle est donc effectué au préalable pour vérifier si on envoie ce format ou le jpg.

Pour l'instant, oui, ça ne concerne que les images produits étant donné qu'elles sont en très grand nombre sur les sites.

la généralisation aux autres images est prévue.

Dans tous les cas, continuez à charger vos images en jpg, png comme avant au niveau du BO.

  • Like 1
Link to comment
Share on other sites

Changelog de la version #Prestashop 1.6.2.0 en cours ;)

- BO Header: Lien ajouté vers le paramétrage de la page Maintenance
- Option d'activation pour le mode debug ajoutée en page Paramètres Avancés => Performances
- Correctif multilignes sur le Chat (utilisation de la touche Maj + Entrée)
- Correctif warning is_countable sur RequestSql.php
- Correctifs sur AdminOrdersController.php/OrderSlip.php (génération des avoirs)
- Mise à jour des adresses panier en cas de suppression de l'adresse associée
- Mise à jour BxSlider.js
- JQuerySortable deprecated remplacé par vendor/Sortable.min.js
- Mise à jour du module homeSlider en conséquence
- Intégration du script de contrôle d'intégrité (cleaner.php)
- Ajout de contrôle de droits sur la mise en mode debug
- Suppression des eval() dans le core
- Possibilité de valeurs multiples par caractéristique avec choix du séparateur

 

  • Like 2
  • Thanks 2
Link to comment
Share on other sites

1 hour ago, P i l o u said:

Bonjour,
Que vérifier si le ps n'envoie plus le mail de commande au client svp ?
Il envoie juste le mail de confirmation de paiement, mais ça je crois que c'est le module qui le fait.

Il faut voir si vous avez le module "envoyer à un ami" qui est activé car les spammeurs s'en servent et cela vous black liste auprès de votre hébergeur. Et ensuite il faut regarder au niveau des mails sur l'hébergement si vous n'êtes pas banni. Moi c'était ce qui m'étais arrivé. J'espère avoir pu aidé.

Edited by bobby4722 (see edit history)
Link to comment
Share on other sites

il y a une heure, P i l o u a dit :

Bonjour,
Que vérifier si le ps n'envoie plus le mail de commande au client svp ?
Il envoie juste le mail de confirmation de paiement, mais ça je crois que c'est le module qui le fait.

Sur une de mes versions ?

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,
Question : Est-ce les heures de connexion seront ou pourraient être visible sur une future version ?
En effet, ayant failli être victime suite à une 4ème tentative de fraude, la brigade financière m'indique que malheureusement sur la fiche client les adresses IP de connexion et les dates ne suffisent pas pour les aider.
On m'indique ceci :" Cette information est obligatoire pour requérir les fournisseurs d'accès".

J'ai également pensé à ceci comme fonction concernant les "accessoires": lorsque l'on veux en ajouter, il faut soit coller ou écrire : Référence ou nom du produit MAIS l'ajout n'est pas possible par ID produit.

Merci :)

Link to comment
Share on other sites

à l’instant, PixGeek a dit :

Bonjour Eolia,

 

Sur la 1.6.1.30, j'ai un bug dans l'0nglet devises, cela m'affiche une page 500... As-tu connaissance de ce bug?

Bonjour,

J'ai répondu à votre mail ;)

Il manque un Tools:: à la ligne 71 de /controllers/admin/AdminCurrenciesController.php

image.thumb.png.98c1a94df4c366b46f697245d47a697f.png

 

Link to comment
Share on other sites

Salut @Eolia

sur la version 1.6.1.30, le module paygreen m'envoie cette erreur :

[PrestaShop] Fatal error in module file :/home/clients/928295dc1ee2563b1f6c6199f47d2a15/web/AlloBijoux/modules/paygreen/lib/OAuth2/Client.php:
Cannot declare class OAuthException, because the name is already in use

 

As tu une solution`?

 

Merci d'avance

Link to comment
Share on other sites

Bonjour,

J'ai quelques questions à propos de la géolocalisation.
Je ne l'ai jamais utilisé mais je remarque beaucoup de visites venant des USA et du Canada, alors que je ne vends rien là..
Je me doute bien que il faut laisser les USA sinon Google ne verra plus mon site.

image.thumb.png.4993c9823cafe9d03eb42ef7a0290901.png

Comment bien paramétrer cette fonction svp ?
Doit-on modifier la table avec les adresses IP ?
Comment vérifier si cela fonctionne comme on le souhaite ?

Merci d'avance.
Pilou

Link to comment
Share on other sites

  • 2 weeks later...
il y a 12 minutes, PixGeek a dit :

Salut, 

 

sur la version 1.6.1.30, sur mes pages de retour de paiement par cheque et paypal m'affichent erreur 500, as tu un retour sur ce bug?

Moi non, mais je ne sais pas quels sont les modules hookés sur le validateOrder chez vous

Effectivement, il faut soit consulter les logs d'erreurs de votre serveur, soit retester avec le mode debug activé.

Link to comment
Share on other sites

Il y a 2 heures, Mediacom87 a dit :

Mode debug, test et récupération du message d'erreur.

voici l'erreur que j'ai sur mon serveur et mode debug :

.../modules/paypal/paypal.php on line 2755, referer https://xxxxxxxxx/admin770sv8nmz/index.php?controller=AdminModules&token=3c1176d45c45c151f103c46e41ef921a

et ceci aussi :

/.fpm/php5.external" stderr: PHP message: PHP Deprecated: Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)

 

Edited by PixGeek (see edit history)
Link to comment
Share on other sites

Le 30/01/2023 à 8:59 PM, PixGeek a dit :

voici l'erreur que j'ai sur mon serveur et mode debug :

.../modules/paypal/paypal.php on line 2755, referer https://xxxxxxxxx/admin770sv8nmz/index.php?controller=AdminModules&token=3c1176d45c45c151f103c46e41ef921a

et ceci aussi :

/.fpm/php5.external" stderr: PHP message: PHP Deprecated: Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)

 

Erreur corrigée, j'ai mis à jour le module paypal.

 

Par contre, j'ai découvert un autre bug, sur la page produit, sur l'onglet image, la fonction ajouter image n'affiche rien, comme sur screen joint !

Une idée ?

 

bug-onglet image.jpg

Link to comment
Share on other sites

il y a 23 minutes, PixGeek a dit :

Erreur corrigée, j'ai mis à jour le module paypal.

 

Par contre, j'ai découvert un autre bug, sur la page produit, sur l'onglet image, la fonction ajouter image n'affiche rien, comme sur screen joint !

Une idée ?

 

bug-onglet image.jpg

Activez le mode debug puis Ouvrez votre console (F12) et regardez les erreurs en rouge concernant cet onglet.

Link to comment
Share on other sites

il y a 12 minutes, Eolia a dit :

Activez le mode debug puis Ouvrez votre console (F12) et regardez les erreurs en rouge concernant cet onglet.

Voila ce Que j'ai 

VM954:48 Uncaught SyntaxError: Invalid or unexpected token
    at eval (<anonymous>)
    at jquery-1.11.0.min.js:2:2616
    at Function.globalEval (jquery-1.11.0.min.js:2:2627)
    at e.fn.init.domManip (jquery-1.11.0.min.js:3:22515)
    at e.fn.init.append (jquery-1.11.0.min.js:3:20028)
    at e.fn.init.<anonymous> (jquery-1.11.0.min.js:3:21559)
    at n.access (jquery-1.11.0.min.js:3:2903)
    at e.fn.init.html (jquery-1.11.0.min.js:3:21144)
    at Object.success (products.js:127:19)
    at j (jquery-1.11.0.min.js:2:27136)
(anonyme)	@	jquery-1.11.0.min.js:2
globalEval	@	jquery-1.11.0.min.js:2
domManip	@	jquery-1.11.0.min.js:3
append	@	jquery-1.11.0.min.js:3
(anonyme)	@	jquery-1.11.0.min.js:3
n.access	@	jquery-1.11.0.min.js:3
html	@	jquery-1.11.0.min.js:3
success	@	products.js:127
j	@	jquery-1.11.0.min.js:2
fireWith	@	jquery-1.11.0.min.js:2
x	@	jquery-1.11.0.min.js:4
b	@	jquery-1.11.0.min.js:4
XMLHttpRequest.send (asynchrone)		
send	@	jquery-1.11.0.min.js:4
ajax	@	jquery-1.11.0.min.js:4
ProductTabsManager.display	@	products.js:117
ProductTabsManager.displayBulk	@	products.js:172
(anonyme)	@	products.js:214
setTimeout (asynchrone)		
ProductTabsManager.displayBulk	@	products.js:211
(anonyme)	@	products.js:214
setTimeout (asynchrone)		
ProductTabsManager.displayBulk	@	products.js:211
(anonyme)	@	products.js:214
setTimeout (asynchrone)		
ProductTabsManager.displayBulk	@	products.js:211
(anonyme)	@	products.js:214
setTimeout (asynchrone)		
ProductTabsManager.displayBulk	@	products.js:211
(anonyme)	@	products.js:214
setTimeout (asynchrone)		
ProductTabsManager.displayBulk	@	products.js:211
(anonyme)	@	products.js:214
setTimeout (asynchrone)		
ProductTabsManager.displayBulk	@	products.js:211
(anonyme)	@	products.js:214
setTimeout (asynchrone)		
ProductTabsManager.displayBulk	@	products.js:211
(anonyme)	@	index.php?controller810e97fe8d311a:1378
dispatch	@	jquery-1.11.0.min.js:3
r.handle	@	jquery-1.11.0.min.js:3
load (asynchrone)		
add	@	jquery-1.11.0.min.js:3
e.event.add	@	jquery-migrate-1.2.1.min.js:2
(anonyme)	@	jquery-1.11.0.min.js:3
each	@	jquery-1.11.0.min.js:2
each	@	jquery-1.11.0.min.js:2
on	@	jquery-1.11.0.min.js:3
(anonyme)	@	bootstrap.min.js:6
(anonyme)	@	bootstrap.min.js:6

 

Link to comment
Share on other sites

il y a 22 minutes, Eolia a dit :

vous pouvez cliquer sur <anonymous> pour voir le ligne concernée ?

Voila !!! :

 

ncaught SyntaxError: Invalid or unexpected token
    at eval (<anonymous>)
    at jquery-1.11.0.min.js:2:2616
    at Function.globalEval (jquery-1.11.0.min.js:2:2627)
    at e.fn.init.domManip (jquery-1.11.0.min.js:3:22515)
    at e.fn.init.append (jquery-1.11.0.min.js:3:20028)
    at e.fn.init.<anonymous> (jquery-1.11.0.min.js:3:21559)
    at n.access (jquery-1.11.0.min.js:3:2903)
    at e.fn.init.html (jquery-1.11.0.min.js:3:21144)
    at Object.success (products.js:127:19)
    at j (jquery-1.11.0.min.js:2:27136)
(anonyme) @ jquery-1.11.0.min.js:2
globalEval @ jquery-1.11.0.min.js:2
domManip @ jquery-1.11.0.min.js:3
append @ jquery-1.11.0.min.js:3
(anonyme) @ jquery-1.11.0.min.js:3
n.access @ jquery-1.11.0.min.js:3
html @ jquery-1.11.0.min.js:3
success @ products.js:127
j @ jquery-1.11.0.min.js:2
fireWith @ jquery-1.11.0.min.js:2
x @ jquery-1.11.0.min.js:4
b @ jquery-1.11.0.min.js:4

 

 

 

www.xxxxxx.com-1675274718853.log

Edited by PixGeek (see edit history)
Link to comment
Share on other sites

Le 29/01/2023 à 4:25 PM, P i l o u a dit :

Bonjour Eolia,

Un micro bug (je pense), quand on ajoute une nouvelle déclinaison à un produit existant.

Je complète les champs Référence et EAN-13

0115.jpg

Quand je sauve, la référence et le EAN-13 ne sont pas sauvegardés (voir la dernière déclinaison)

0215.jpg

Inverser les 2 lignes suivantes dans AdminProductsController.php :

image.png.06adcf44cd782a328044959373ef4263.png

Comme ceci:

image.png.ed0a124771666373ad543cc2b6f79548.png

  • Like 1
Link to comment
Share on other sites

Il y a 2 heures, PixGeek a dit :

Voila !!! :

 

ncaught SyntaxError: Invalid or unexpected token
    at eval (<anonymous>)
    at jquery-1.11.0.min.js:2:2616
    at Function.globalEval (jquery-1.11.0.min.js:2:2627)
    at e.fn.init.domManip (jquery-1.11.0.min.js:3:22515)
    at e.fn.init.append (jquery-1.11.0.min.js:3:20028)
    at e.fn.init.<anonymous> (jquery-1.11.0.min.js:3:21559)
    at n.access (jquery-1.11.0.min.js:3:2903)
    at e.fn.init.html (jquery-1.11.0.min.js:3:21144)
    at Object.success (products.js:127:19)
    at j (jquery-1.11.0.min.js:2:27136)
(anonyme) @ jquery-1.11.0.min.js:2
globalEval @ jquery-1.11.0.min.js:2
domManip @ jquery-1.11.0.min.js:3
append @ jquery-1.11.0.min.js:3
(anonyme) @ jquery-1.11.0.min.js:3
n.access @ jquery-1.11.0.min.js:3
html @ jquery-1.11.0.min.js:3
success @ products.js:127
j @ jquery-1.11.0.min.js:2
fireWith @ jquery-1.11.0.min.js:2
x @ jquery-1.11.0.min.js:4
b @ jquery-1.11.0.min.js:4

 

 

 

www.xxxxxx.com-1675274718853.log 2.25 Ko · 1 download

Euh... c'est exactement la même chose :P

J'aimerai savoir quel est le script qui vient fiche le bazar à cet endroit

Link to comment
Share on other sites

il y a 6 minutes, Eolia a dit :

Euh... c'est exactement la même chose :P

J'aimerai savoir quel est le script qui vient fiche le bazar à cet endroit

Ceci ?

/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="<select t=''><option selected=''></option></select>",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch