Bonjour,
Je déterre ce sujet à propos des antislash dans le code.
Sans arriver au bout pour le moment, probable problème avec JS que je ne maîtrise pas, je me suis essayé à mettre à niveau le code d'une grosse extension vers J5 (plugin de compatibilité désactivé), donc en utilisant systématiquement Factory à la place de JFactory, Text à la place de JText, etc. et parfois, il me fallait enlever l'antislash pour faire disparaître une erreur,
D'ailleurs, dans le code d'origine, on retrouve parfois \JFactory, parfois JFactory, idem pour les autres classes, l'antislash n'est pas systématique...
En revanche, j'ai remarqué que l'extension avait sa propre classe Form où celle de Joomla était appelée par \JForm. La seule méthode qui a pu supprimer une erreur sur ce fichier a été d'une part d'appeler la classe Joomla Form sans antislash et d'autre part de renommer celle de l'extension.
Il faudra que j'essaie avec une extension moins importante, car pour le moment, je n'arrive pas à comprendre pourquoi j'ai parfois été contraint de supprimer ces antislash, avant de le faire systématiquement.
Appel aux classes Joomla! 4
Réduire
X
-
Hi RobertG, bonjour,
Thanks for your help. I've downloaded the extension and installed it on a develop copy of the site that runs on php 7. It seems to work fine, yet I've asked the owner of the site to take a closer look at it before we put it on the live site (I have a web development agency and this is the site of a customer).
As far as I know we do not use Google maps so that won't be a problem. I heard that Google have been changing their api recently but I'm afraid that I cannot help you to solve any issues.
And as for Joomla 4, well, we'll see. I think we are lucky to have it running on php 7.
Kind regards, Frits
Laisser un commentaire:
-
Hello Frits,
You actually can download that version here https://www.joomxtensions.com/images...r_20180410.zip
It works on 3.8 and 3.9, probably also 3.10 versions of Joomla!, and PHP 7.2.
But It can’t no more geocode locations with Google (it could not with OpenStreetmap for a while), because I think Google changed recently the address for geocoding and transform locations to latitude and longitude. I didn’t find how to solve this problem.
Joaktree doesn’t work with Joomla! 4 alpha because a JavaScript to import from a GedCom file or export data fails now.
So actually you can import your GedCom in Joomla! 3 but not geocode the locations and not use maps, and I think Joaktree will never work on Joomla! 4.
Laisser un commentaire:
-
Bonjour, hello,
I'm sorry that I cannot write you in French. I am looking for a solution for the Joaktree extension. I understood that the original developer stopped the development some time ago but that RobertG resumed the development. Is this correct and is it possible to obtain a version of Joaktree that runs on php 7.2 (or 7.1) and Joomla 3.9 (and hopefully J.4 in the future)?
Kind regard,
Frits Jongbloets
(yes, another Joomler called Frits from the Netherlands)
Laisser un commentaire:
-
Bonjour RoberG
Si j'appelle "index.php?option=com_joaktree&view=jt_import_ gedc om&format=raw&tmpl=component", j'ai cette réponse dont j'imagine (à tort ou à raison) que c'est faute de données qu'elle apparaît :
0 Call to a member function getError() on null
Dans la console de firefox:
TypeError: i.src.match(...) is null
[En savoir plus]
core.min.js:1:9337
SCRIPT5007: SCRIPT5007:
Unable to get property '0' of undefined or null reference
core.min.js (1,9335)
Laisser un commentaire:
-
Après une longue pause, je reviens sur mes tests qui plantent au niveau du JavaScript, et je ne trouve pas de solution.
Dans le fichier d'import l'appel est correct :
Code:jQuery(document).ready(function(){ console.log("DOM est ready pour exec du JS (views/jt_import_gedcom/tmpl/default)"); try {importGedcom();} catch (err) { console.log('An error occured while importGedcom'); } console.log("traitement terminé (views/jt_import_gedcom/tmpl/default)"); });
Code:function importGedcom() { console.log('function importGedCom'); $.ajax({ url: 'index.php?option=com_joaktree&view=jt_import_gedcom&format=raw&tmpl=component', type: 'get', fail: function(xhr) { alert('Error occured for url: ' + url); }, success: function(response) { console.log('data : ' + response); HandleResponseGedcom('import', response); console.log('suite import'); } }); }
DOM est ready pour exec du JS (views/jt_import_gedcom/tmpl/default)
function importGedCom
traitement terminé (views/jt_import_gedcom/tmpl/default)
Si j'appelle "index.php?option=com_joaktree&view=jt_import_ gedc om&format=raw&tmpl=component", j'ai cette réponse dont j'imagine (à tort ou à raison) que c'est faute de données qu'elle apparaît :
0 Call to a member function getError() on null
J'oubliais : j'ai vidé les logs d'accès et d'erreur sur le serveur, puis tenté un nouvel import, mais le serveur n'écrit rien dans ces fichiers à ce moment !Dernière édition par RobertG à 18/02/2018, 16h59
Laisser un commentaire:
-
En tentant d'importer un gedcom, la console m'indique
Code:[LEFT][FONT="Consolas"]HTTP500: ERREUR DE SERVEUR. Le serveur ne peut pas exécuter la requête, car il a rencontré une condition inattendue. (XHR)GET - administrator/index.php?option=com_joaktree&view=jt_import_gedcom&format=raw&tmpl=component[/FONT][/LEFT]
administrator/index.php?option=com_joaktree&view=jt_import_gedco m&format=raw&tmpl=component
J'obtiens
Code:[LEFT][FONT=Arial]0 Call to undefined method Joomla\Database\Mysqli\MysqliDriver::query()[/FONT][/LEFT]
Code:[LEFT][FONT="Consolas"][SIZE=12px][/SIZE][/FONT][/LEFT]
Laisser un commentaire:
-
Merci, mais en fait, quand on ouvre le plugin pour le paramétrer (simplement l'activer), "$userstate " revient null, d'où l'erreur. En gérant cela, plus de warning.
Il faudra que je voie ensuite à l'usage.
Et surtout, j'espère que ça me permettra d'avoir un suivi de l'avancement du code.
Laisser un commentaire:
-
-
Bon, j'ai mis en pause l'adaptation de Jokatree et essayé de rendre JDump 1.2.22 compatible avec la version 4 et PHP 7.2 (des tas de JRequest à changer).
Apparemment, plus d'erreur ni sur le plugin n sur le composant, sauf un warning sur ce "count" : "Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/sitestests/test4/plugins/system/dump/dump.php on line 45"
La ligne en cause est la dernière :Code:function onAfterRender() { $mainframe = JFactory::getApplication(); //$option = JRequest::getCmd('option'); $option = JFactory::getApplication()->input->get('option'); if($option == 'com_dump'){ return; } // settings from config.xml $dumpConfig = JComponentHelper::getParams( 'com_dump' ); $autopopup = $dumpConfig->get( 'autopopup', 1 ); $userstate = $mainframe->getUserState( 'dump.nodes' ); $cnt_dumps = count( $userstate );
Laisser un commentaire:
-
Merci de ces conseils !
Le problème est que le code est celui de Niels van Dantzig et qu'il m'est très difficile de suivre le cheminement pour trouver où on est éjecté sans message.
Avec des points d'arrêt (de simples break ou return), j'ai bien mes messages alert ou console.log dans importGedcom du JS, avec des données vides arrivant dans la fonction JS de traitement HandleResponseGedcom, vides peut-être à cause de ces arrêts, mais dès que je désactive ces points je n'ai plus rien dans la console, comme si quelque chose vidait tout, et je ne sais donc pas si les données parviennent aux fonctions JS.
Je voulais utiliser JDump, pour avoir peut-être plus d'infos malgré le blocage d'affichage mais il n'est pas encore compatible J! 4 (comme il a été mis à jour il y a un mois environ, j'espérais...) et je n'ai pas regardé ce qui serait à modifier dans son code.
Pour revenir au code cité par starter866, si je place un arrêt juste après ce code, pour voir ce que renvoie $procObject->status, j'ai bien "new", et l'affichage devrait se faire mais ne se fait pas, ce qui veut dire qu'il y a éjection peu après. Mais où ?
Laisser un commentaire:
-
Bonsoir,
Pour les convertions en jQuery, n'utilisé que le $ si vous êtes dans une fonction anonyme, sinon il faut utiliser jQuery
Tu as un exemple ici http://sametmax.com/la-fonction-anon...ript-function/ pour isoler les valeur et inclure le $.
Pour l'ajax le $.get est plus simple que le $.ajax mais la structure est différente.
Mais idéalement, il faudrait ajouter un namespace pour ton composant en javascript. par exemple pour mon composant com_vmbepro, j'utilise un namespace vmbepro, com_virtuemart utilise virtuemart, mais bon cela exige pas mal de modif dans ton code javascript.
Laisser un commentaire:
-
Code:appelle la fonction getGedcom dans \administrator\components\com_joaktree\models\jt_i mport_gedcom.php.
Code:public function getGedcom() { $canDo = JoaktreeHelper::getActions(); $procObject = $this->getProcessObject(); if (($canDo->get('core.create')) && ($canDo->get('core.edit'))) { switch ($procObject->status) { case 'new': $procObject->start = strftime('%H:%M:%S'); $procObject->msg = JText::sprintf('JTPROCESS_START_MSG', $procObject->id);
Laisser un commentaire:
-
Pour essayer de savoir où ça passe et où ça ne passe plus, j'avais ajouté des "return;" qui me permettaient de faire afficher des infos avec "var_dump", avec le risque de laisser continuer le code sans avoir récupéré les données. Mais en supprimant tous ces points d'arrêt, je n'ai plus du tout de passage dans le JS (aucun "alert" ou "console.log" ne s'affiche) et ça reste sur la page de chargement comme avant que je cherche où ça pouvait coincer
Laisser un commentaire:
-
Je ne te suis plus là.
Code:soit j'ai laissé un "return" quelque part
Laisser un commentaire:
Annonce
Réduire
Aucune annonce pour le moment.
Laisser un commentaire: