vendredi, 04 mai 2012 22:47

Tables de AllEvents manquantes...

Si vous avez installé un serveur web sur votre Windows et que AllEvents affiche le message "Tables de AllEvents manquantes...", cela indique que l'installateur de AllEvents ne parvient pas à trouver les tables du composant dans votre base de données.    Ce contrôle est effectué à la toute fin de l'installation et vise à garantir que l'installation est complète et réussie.

Le message "Tables de AllEvents manquantes..." indique donc une défaillance au niveau de la base de données.   

Quelle peut en être la raison ?   A priori, cela ne devrait jamais être le cas à moins que votre base de données ait explosé (taille maximale atteinte); ce dont je doute sur un localhost.   Votre base de données pourrait aussi être corrompue; j'en doute aussi.    Quoi d'autre alors ?

Récemment, Gilles35 a vécu cette erreur et a trouvé la solution à force d'essais-erreurs.   Discussion complète; voir hyperlien ci-dessous.

Le problème rencontré par Gilles est le suivant : lors de l'installation de son Joomla! local, il a utilisé un préfixe écrit en majuscules pour ses tables et le simple fait de remplacer ce préfixe dans son fichier configuration.php par la version en minuscules a résolu le problème.   Il s'agit d'un problème lié à Windows qui n'est pas sensible à la casse et à MySQL qui lui y est sensible.  Il a reproduit cela tanta sur Mov'amp que EasyPhp.

Le conseil est dès lors de ne pas utiliser des préfixes de tables en majuscules mais strictement minuscules.

Merci à Jisse03 pour nous avoir éclairé de ses connaissances.

afujhttp://forum.joomla.fr/showthread.php?170561

Publié dans Installation

Dans le formulaire de proposition, malgré que vous avez configuré le formulaire pour afficher la liste des albums photos et/ou des ressources, ces deux listes ne s'affichent pas dans le formulaire.

La raison en est la suivante : l'utilisateur connecté (p.e. un "Enregistré") n'a pas la permission de voir les albums photos et/ou les ressources.  

Ce n'est pas donc pas une erreur mais un respect strict des permissions de l'utilisateur.   Pour résoudre cela, il vous suffit d'aller dans l'écran des permissions dans la partie administrateur de votre site et de donner les permissions adéquates à votre groupe d'utilisateur.

Sachez que si vous ajoutez le paramètre &showerror=1 (ou 2), AllEvents vous expliquera pourquoi il n'affiche pas les listes.

Publié dans Plugin Album photos

AllEvents.  Erreur de construction des menus de l'administration

Le message d'erreur "Erreur de construction des menus de l'administration" est un message horrible retourné depuis Joomla 1.6 lorsque l'installateur tente de créer les entrées de menus pour le composant dans le menu backend.

Ce message a souvent pour origine le problème suivant : vous avez déjà une entrée de menu portant le même alias que celui que Joomla tente d'installer.   Dans le cadre de AllEvents, cela veut dire qu'une entrée de menu ayant l'alias "allevents" existe dans la table jos_menu.

Pour résoudre ce problème, il faut vous rendre dans votre interface phpMyAdmin, ouvrir votre base de données et votre table jos_menu.  

Vous y trouverez des enregistrements concernant AllEvents.   Sélectionner toutes ces entrées et cliquez ensuite sur le bouton de suppression.  Confirmer que vous voulez supprimer tous ces records.

Vous pouvez aussi exécutez l'instruction SQL ci-dessous :

DELETE FROM `j17_menu` WHERE link like '%com_allevents%';

Tentez l'installation à nouveau; elle fonctionnera cette fois.

Publié dans blog
jeudi, 10 novembre 2011 13:52

Fatal error: Out of memory

Lorsque vous rencontrez le message d'erreur "Fatal error: Out of memory (allocated xxxxx) (tried to allocate xxxxxx bytes) in file xxxxx", ce message indique que la page que vous essayez d'afficher consomme trop de mémoire par rapport à ce que votre hébergeur vous a autorisé d'utiliser.   Chez certains hébergeurs gratuits, comme Free p.e., cette limitation peut être de 32MB voire moins ce qui, pour faire tourner un site peut se révéler étroit.

Le nom du fichier mentionné dans l'erreur n'est pas utile, c'est juste lui qui a consommé le byte de trop et fait exploser le bouchon.

Un exemple "Fatal error: Out of memory (allocated 29884416) (tried to allocate 4864 bytes) in une_page_quelconque.php on line 21"

Comment comprendre l'erreur ?

  • "Out of memory (allocated 29884416) (tried to allocate 4864 bytes)" : le site n'a pas le droit d'utiliser plus de 30M de mémoire et votre site Joomla a besoin de près de 5MB supplémentaires pour s'afficher et ce besoin a fait exploser votre consommation mémoire.   

  • "in une_page_quelconque.php on line 21" : le nom du fichier n'a pas beaucoup d'importance, c'est lui qui a demandé l'octet de trop qui a fait explosé la mémoire; cela ne signifie pas du tout que c'est lui qui est le gros consommateur.

Si vous êtes sur un serveur web local ou sur un serveur dédicacé, vous avez la possibilité de modifier le fichier php.ini.   Ce fichier est celui qui défini la mémoire maximale que votre site web peut utiliser.   Il s'agit de la variable "memory_limit" : éditer le fichier et augmenter sa valeur.

Si vous êtes sur un serveur web mutualisé ou si vous ne souhaitez pas augmenter la mémoire maximale, il faudra donc identifier quel est le code qui est gros consommateur.   Cela peut être un plug-in, un module ou le composant utilisé sur la page. 

A la recherche du coupable

Faites un tour dans votre liste de plug-ins type Content ou System : lors de l'affichage d'une page, Joomla! exécute un grand nombre de plug-ins dont ceux de ces deux types.   AllEvents fait également appel aux plug-ins de type Content car il est parfaitement possible que vous ayez utilisé un tag dans un champs tel que la description d'un évènement.

Depuis la liste des plug-ins, regardez ceux dont vous êtes certains de ne plus utiliser : les plug-ins de type Content mal écrit pourrait consommer de la mémoire inutilement et un peu de CPU du serveur.   Les désactiver sera donc bénéfique pour votre site.   Faites bien attention en désactivant un plug-in de type System car certains pourraient être requis pour que votre site fonctionne correctement.   Autant désactiver un plug-in Content est assez inoffensif, autant désactiver un plug-in System peut planter le site.

Utilisation du profilage de Joomla

Joomla met également à votre disposition un outil de debugging.   Rendez-vous dans votre console d'administration, cliquez sur "Configuration du site" puis sur l'onglet "Système".  

Activation du débogage de JoomlaActivez le mode de débogage en cliquant sur Oui puis en enregistrant votre modification (pour bien faire, restez dans la page pour désactiver plus facilement ensuite).

Dans un nouvel onglet de votre navigateur, afficher la page de votre site; celle qui provoquait l'affichage du "Out of memory". 

Scrollez jusqu'au bas de la page et aurez alors accès à la console de débogage de Joomla!.

 Joomla! Console de débogage activée

Occupation de la mémoire : après avoir cliqué sur ce titre, vous déplierez une zone qui vous indique votre consommation actuelle.   Notez ce chiffre : plus il est proche de votre limite, plus les risques d'un Fatal error : out of memory sont importantes.

Profile d'information : extrêmement utile car il vous indique la consommation mémoire de votre site à chaque étape importante réalisée par Joomla! dont les différents appels à des modules. Vous pourrez suivre l'augmentation des besoins de mémoires et identifier le coupable c'est-à-dire celui dont la consommation avant <--> après est fort conséquente.   

Ci-dessous un exemple réel : on voit que la consommation de mémoire était de 7,23MB avant l'appel au module Abcdef et qu'après son exécution, la consommation a explosé à 20,17MB.  Ce module a donc consommé 13MB à lui seul.   Désactiver ce module sera donc très bénéfique pour alléger votre page.

Application 0.181 seconds (+0.000); 7.22 MB (-0.001) - beforeRenderModule mod_custom (Logo HR)
Application 0.181 seconds (+0.001); 7.23 MB (+0.003) - afterRenderModule mod_custom (Logo HR)
Application 0.182 seconds (+0.000); 7.23 MB (+0.000) - beforeRenderModule mod_abcdef (Derniers messages Forum)
Application 0.497 seconds (+0.316); 20.17 MB (+12.941) - afterRenderModule mod_abcdef (Derniers messages Forum)
Application 0.497 seconds (+0.000); 20.17 MB (-0.001) - beforeRenderModule mod_articles_popular (Les plus populaires)
Application 0.552 seconds (+0.055); 20.68 MB (+0.517) - afterRenderModule mod_articles_popular (Les plus populaires)
Publié dans Développement

Symptôme

Alors même que vous avez défini une puce pour un agenda, une activité, ..., alors même que vous avez choisi une couleur pour l'agenda, ... et que vous avez pourtant paramétré AllEvents pour afficher ces puces / cette couleur d'agenda, que nenni!, rien ne s'affiche.   Pourquoi ?

Cause du problème

AllEvents, pour des raisons d'efficacité et propreté du code HTML généré, utilise des fichiers CSS pour définir la manière d'afficher des agendas, des activités, ...

Ces fichiers sont générés automatiquement par AllEvents et sont placés dans le dossier /media/com_allevents/css/dynamic.  Vous y trouverez un grand nombre de fichiers dont l'extension est .css.

A chaque fois que vous allez dans le backend de votre site et que vous modifier un agenda, une activité, ... ou que vous changer un paramètre global, AllEvents va à nouveau générer les fichiers concernés.

Il est donc impératif que AllEvents puisse écrire dans le dossier /media/com_allevents/css/dynamic et puisse supprimer / modifier les fichiers qui s'y trouvent.

Si vous rencontrez le symptôme décrit ci-dessus, il est plus que probable que les permissions sur le dossier et/ou sur les fichiers sont incorrects.   Ils doivent être 777 et il est probable qu'ils sont mis sur 644 pour les fichiers.

Résolution

Il est probable que, dans la configuration générale de votre site, onglet Serveur, que vous avez activé la couche FTP.   Vous y avez donc spécifié un utilisateur.   La sécurité des fichiers créés par Joomla récupère les permissions de cet utilisateur- là.   

Si vous n'avez pas besoin de cette couche FTP (et rares sont les cas où c'est nécessaire); désactivez ce support FTP.   Sinon, veuillez changer les droits d'accès de cet utilisateur.

Ensuite, avec votre client FTP, rendez-vous dans le dossier /media/com_allevents/css/dynamic et supprimer tous les fichiers CSS qui s'y trouvent.  

Retournez dans AllEvents; ils seront alors immédiatement recréé.   Vérifier que les droits d'accès du fichiers sont bien 777.

Publié dans blog
jeudi, 13 octobre 2011 09:56

Firebug - Console : Erreurs CSS

Les fichiers CSS de AllEvents font appel à des rules CSS3.  Par exemple pour le dégradé de couleur dans la zone résumé de l'évènement.   Actuellement, Firebug et d'autres consoles de développement ne gèrent pas très bien cette sémantique.  Si vous avez activé votre console pour voir les erreurs CSS, vous en verrez plein pour les fichiers de AllEvents.   

Pour cette raison, je vous suggère de décocher ce niveau d'erreur.   Pour Firebug, il cliquer sur la flèche à la droite du bouton "Console" et dans le menu qui s'affiche alors, désactiver "Show CSS Errors"

AllEvents. Firebug - Console : Erreurs CSS
(Cliquez pour agrandir)

Publié dans Plugin Debug
  • Les boutons du formulaires d'inscription ne fonctionnent pas.  Vous cliquez sur "Je viendrai" et rien, AllEvents ne réagit pas. 
  • Vous avez installé le module calendrier et les flèches qui permettent de changer de mois ne réagissent pas.   
  • Vous êtes dans la page événementielle, sous le tableau des inscrits et lorsque vous cliquez sur les petits bonshommes pour p.e. voir la liste des personnes qui ont répondu "Je ne sais pas encore"; rien ne se passe.
  • ...

En bref, le code Javascript n'est pas fonctionnel.   Pourquoi ?

Si le code JS ne fonctionne pas, c'est qu'il y a quelque part une erreur qui a planté l'exécution du code.  Les navigateurs lisent le code Javascript comme si on lirait un livre : la première page puis la seconde.   Si le code qui se trouve en première page contient une erreur qui plante le navigateur, ce dernier arrête de lire et jette le livre à la poubelle.   Le code de la seconde page est ignoré.

Si une erreur de programmation du code Javascript de AllEvents n'est évidemment pas à exclure, il y a une première origine qui est très simple à vérifier : est-ce qu'il y aurait une erreur JS sur la première page qui interrompt la lecture du code JS sur la seconde ?   De manière plus terre-à-terre : est que le code JS chargé avant le code JS de AllEvents contient une erreur ?

Firefox - Firebug

Je vous propose d'ouvrir votre site avec Firefox sur lequel vous avez préalablement installé Firebug

  • Ouvrez un nouvel onglet dans Firefox
  • Accédez à votre page web qui ne fonctionne pas; celle sur laquelle les boutons, les liens, ... sont inactifs
  • Activez Firebug en appuyant sur la touche F12 de votre clavier.
  • Dans l'écran de Firebug, cliquez sur l'onglet "Console". 
  • Apparait maintenant à droite de "Console" une petite flèche.  Cliquez sur la flèche.
  • Vérifiez que "Activé" soit sélectionné.   Faites de même pour "Afficher les erreurs Javascript" et "Afficher les avertissement Javascript"
  • Cliquez maintenant sur l'onglet "Script".
  • Cliquez sur la flèche à droite de "Script"
  • Vérifiez que "Activé" soit sélectionné ainsi que "Show Break Notifications"
  • Finalement, appuyez sur CTRL-F5 depuis votre clavier pour forcer un refresh complet de la page

Firebug, actif, devrait vous afficher un message d'erreur pour chaque erreur Javascript rencontrée.   Ces erreurs sont donc celles qui rendent inactifs le code de AllEvents. 

L'erreur rencontrée mentionne un nom de fichier, une description de l'erreur et un numéro de ligne.

Le nom du fichier devrait vous permettre d'identifier s'il s'agit d'un fichier AllEvents ou pas (présence du mot "allevents" dans le nom du fichier).  Si c'est AllEvents, merci de m'en informer grâce au forum privé.  Si ce n'est pas AllEvents, la seule chose que vous devez faire est d'identifier le coupable : sur base du nom du fichier, du dossier qui le contient, vous devriez être capable de retrouver le nom du module, du plugin ou du template qui génère cette faute et de tenter de résoudre l'erreur.  

Internet Explorer (aussi connu sous le nom de Immonde Explorateur)

Connectez-vous sur la page web sur laquelle les boutons ne fonctionnent pas et appuyez sur la touche F12 de votre clavier.

Appuyez ensuite sur F5 pour forcer IE de rafraîchir votre page.

Si lors du chargement de votre page, IE indique l'une ou l'autre erreur JS comme celle-ci dessous illustrée, cela indique qu'un code JS a planté et que, en fonction du navigateur, le code JS qui suit est ou pas ignoré.    Jusqu'à sa version actuelle (IE9), IE stoppe la lecture.   Le code de AllEvents est donc ignoré; les boutons, fonctions JS de AllEvents sont donc inopérantes.

AllEvents. Les boutons / le module Calendrier ne fonctionnent pas
(cliquez pour agrandir)

Solutions ?

Une des solutions à mettre en oeuvre est, sur un site Joomla 1.5, de vérifier si vous avez le plugin Mootools - Upgrade d'activé.   Si c'est le cas, désactivez-le et tentez à nouveau l'affichage de votre page.

Si l'erreur persiste et si le nom du fichier qui provoque l'erreur vous permet d'identifier que c'est AllEvents, merci de m'en informer via le forum privé.

Si ce n'est pas AllEvents, changez temporairement de template.  Si l'erreur disparait, c'est donc une erreur JS dont la source est dans le template.   Si c'est un template évolué, vérifiez ses paramètres et désactivez les compressions p.e.

Si l'erreur persiste, ce n'est donc pas le template : voyez alors du côté des modules et des plugins. 

Sur base du nom du fichier JS fautif, tentez de deviner le nom du module / plugin fautif.  Désactivez-le si cela est possible, temporairement pour voir si vous tenez le coupable.   Si vous avez identifié le fautif, voyez sur le site du développeur s'il existe une nouvelle version ?  Si pas, envoyez un message à cette personne en lui indiquant l'erreur et le contexte de l'erreur.

Bonne recherche.

Publié dans blog
jeudi, 29 septembre 2011 07:41

CKForms et Mootools 1.12 (mtupgrade)

Sur un site Joomla 1.5 avec le plugin système Mootools upgrade (mtupgrade) activé, l'affichage du formulaire CKForms va provoquer une erreur Javascript; erreur qui va interrompre les scripts et donc perturber AllEvents.

L'erreur est "MooTools.upgradeLog is not a function"; causée par une programmation incorrecte de CKForms.

AllEvents. CKForms et Mootools 1.12 (mtupgrade)

Si vous rencontrez ce problème (une nouvelle version de CKForms pourrait avoir corrigé ce bug); voici ce qu'il faut faire :

Composant

Avec un éditeur de texte,

  1. Ouvrez le fichier /components/com_CKForms/views/CKForms/view.html.php.
  2. Faites une recherche sur le mot "Mootools".
  3. Vous trouverez la ligne ci- dessous.   Mettez cette ligne en commentaire càd ajouter un double // devant.
  4. Sauvez et fermez le fichier.

AllEvents.  CKForms et Mootools 1.12 (mtupgrade)
(Cliquez pour agrandir)

Plugin

Avec un éditeur de texte,

  1. Ouvrez le fichier /plugins/content/CKForms.php.
  2. Faites une recherche sur le mot "Mootools".
  3. Vous trouverez la ligne ci-dessous.  Mettez cette ligne en commentaire.
  4. Sauvez et fermez le fichier.

CKForms et Mootools 1.12 (mtupgrade)
(Cliquez pour agrandir)

Attention, en Avril 2012, CKForms est disponible pour Joomla 1.5 uniquement.  Si c'est toujours le cas au moment où vous lisez cet article, pensez à utiliser un autre composant de gestion de formulaires.  BreezingForms, moins intuitif mais plus puissant, est disponible pour Joomla 2.5 et a une version gratuite.

Publié dans Plugin Formulaires

Sous Internet Explorer 9, les boutons des écrans d'édition sont inactifs : les boutons Sauver, Sauver & Nouveau, Appliquer, Retour, ... ne fonctionnent pas.  Vous recevez ou pas des messages d'erreur.

Lorsque vous créez p.e. un agenda, vous avez la possibilité d'introduire un titre, une couleur, ...   Si vous cliquez sur le bouton Appliquer, cela fonctionne comme attendu.   Dès lors que vous cliquez dans la zone Description, les boutons ne fonctionnent plus.

Le problème est une incompatibilité de votre éditeur TinyMCE avec IE9.   Exactement le même problème est mentionné ici : Forum Joomla!Francehttp://forum.joomla.org/viewtopic.php?f=431&t=613985 et il s'agit du gestionnaire des articles; standard, Joomla.

La solution est de cliquer sur le bouton "Affichage de compatibilité"; comme ci-dessous illustré.  

Il s'agit d'un bug Internet Explorer.

AllEvents.   Les boutons Sauver, Appliquer, ... ne fonctionnent pas sous IE9
(Cliquez pour agrandir)

Publié dans blog

Arpès avoir installé le plugin Community Builder ou le plug-in AllEvents - Utilisateurs, vous rencontrez l'erreur suivante :

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 98304 bytes) in xxxxxxx on line 999

C'est-à-dire une erreur de mémoire saturée qui survient dans un fichier (pas toujours le même) et à une ligne (pas toujours la même).

La partie la plus importante du message, c'est la taille annoncée : memory size of 16777216 bytes.

Cette indication signifie que le fichier php.ini de votre serveur web est configuré avec memory_limit=16M ce qui est totalement insuffisant pour Community Builder qui, seul, requiert 32MB.

La résolution du problème, si vous êtes en local est simple : éditez le fichier php.ini (sa localisation diffère selon que vous utilisez Wamp, Xampplite, EasyPhp, ...) et rechercher la ligne memory_limit.   Adaptez la valeur pour au minimum la porter à 32M (choisissez toujours un multiple de 16).   Sauvez le fichier et redémarrer le serveur web.

Sur un site en production, cette erreur ne devrait pas surgir sauf peut-être sur des hébergeurs gratuits.   Si c'est votre cas, contactez le support technique de votre hébergeur pour voir s'il peut vous proposer une solution.

Voir aussi : http://www.ducea.com/2008/02/14/increase-php-memory-limit/

Publié dans Plugin Utilisateurs
Page 1 sur 3