Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Bonjour,
Pour la 2.25 (et suivante) j'ai intégré Clearbricks à Dotclear et il est donc tout à fait possible de prévoir ce genre de fonctionnalité, effectivement !
Tu m'ouvres un ticket pour que je n'oublie pas ?
Merci
Bonjour
j'ai besoin pour tests et projet de pouvoir ajouter un pilote sgbd.
(via par exemple de l'ajout d'un callBehavior() dans function init() de class dbSchema et class dbLayer ),
est-ce envisageable d'avoir cette possibilité?
merci.
Ça sera corrigé dans la prochaine release (https://git.dotclear.org/dev/dotclear/commit/1cb1d619b4307c718334ed4b8cc4289199239c18 et https://git.dotclear.org/dev/dotclear/c … 5ba48d80f)
Merci!
Et si çà peux aider, voila le contenu de $query:
string(29) "PRAGMA short_column_names = 1" string(25) "PRAGMA encoding = "UTF-8"" string(91) "SELECT ses_value FROM dc_session WHERE ses_id = '02edecbb33c6e1da1de11e879989cc11a09805a5' " string(254) "SELECT user_id, user_super, user_pwd, user_change_pwd, user_name, user_firstname, user_displayname, user_email, user_url, user_default_blog, user_options, user_lang, user_tz, user_post_status, user_creadt, user_upddt FROM dc_user WHERE user_id = 'benoit'" string(160) "SELECT user_id, pref_id, pref_value, pref_type, pref_label, pref_ws FROM dc_pref WHERE (user_id = 'benoit' OR user_id IS NULL) ORDER BY pref_ws ASC, pref_id ASC" string(56) "SELECT blog_id FROM dc_blog ORDER BY blog_id ASC LIMIT 1" string(53) "SELECT blog_id FROM dc_blog WHERE blog_id = 'default'" string(186) "SELECT B.blog_id, blog_uid, blog_url, blog_name, blog_desc, blog_creadt, blog_upddt, blog_status FROM dc_blog B WHERE NULL IS NULL AND B.blog_id IN ('default') ORDER BY B.blog_id ASC " string(184) "SELECT blog_id, setting_id, setting_value, setting_type, setting_label, setting_ns FROM dc_setting WHERE blog_id = 'default' OR blog_id IS NULL ORDER BY setting_ns ASC, setting_id DESC" string(228) "UPDATE 'dc_setting' SET 'setting_value' = '1', 'setting_type' = 'boolean', 'setting_label' = 'Mute warnings for jquery migrate plugin ?' WHERE blog_id = 'default' AND setting_id = 'jquery_migrate_mute' AND setting_ns = 'system'" string(217) "UPDATE 'dc_setting' SET 'setting_value' = '0', 'setting_type' = 'boolean', 'setting_label' = 'Allow older version of jQuery' WHERE blog_id IS NULL AND setting_id = 'jquery_allow_old_version' AND setting_ns = 'system'" string(201) "SELECT blog_id, setting_id, setting_value, setting_type, setting_label, setting_ns FROM dc_setting WHERE (blog_id = 'default' OR blog_id IS NULL) AND setting_ns = 'maintenance' ORDER BY setting_id DESC" string(275) "SELECT L.log_id, L.user_id, L.log_table, L.log_dt, L.log_ip, L.log_msg, L.blog_id, U.user_name, U.user_firstname, U.user_displayname, U.user_url FROM dc_log AS L LEFT JOIN dc_user AS U ON U.user_id = L.user_id WHERE TRUE AND log_table IN ('maintenance') ORDER BY log_dt DESC"
bonjour
version de Dotclear : 2.24
serveur Web : Apache/2.4.29 (Ubuntu)
utilisateur : www-data
version de PHP : 8.0.26
Safe mode : inactif
base de données : sqlite version 3.22.0
Sur la page /admin/plugin.php?p=maintenance j'ai l'erreur suivante :
Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1 no such column: TRUE in /home/gb/public_html/mondomaine/public/dotclear/inc/libs/clearbricks/dblayer/class.sqlite.php:169 Stack trace: #0 /home/gb/public_html/mondomaine/public/dotclear/inc/libs/clearbricks/dblayer/class.sqlite.php(169): PDO->query() #1 /home/gb/public_html/mondomaine/public/dotclear/inc/libs/clearbricks/dblayer/class.sqlite.php(126): sqliteConnection->db_query() #2 /home/gb/public_html/mondomaine/public/dotclear/inc/core/class.dc.sql.statement.php(1042): sqliteConnection->select() #3 /home/gb/public_html/mondomaine/public/dotclear/inc/core/class.dc.log.php(128): dcSelectStatement->select() #4 /home/gb/public_html/mondomaine/public/dotclear/plugins/maintenance/inc/maintenance.php(283): dcLog->getLogs() #5 /home/gb/public_html/mondomaine/public/dotclear/plugins/maintenance/inc/maintenance.php(48): dcMaintenance->getLogs() #6 /home/gb/public_html/mondomaine/public/dotclear/plugins/maintenance/index.php(26): dcMaintenance->__construct() #7 /home/gb/public_html/mondomaine/public/dotclear/plugins/maintenance/index.php(422): adminMaintenance::init() #8 /home/gb/public_html/mondomaine/public/dotclear/admin/plugin.php(56): include('...') #9 /home/gb/public_html/mondomaine/public/dotclear/admin/plugin.php(125): adminPlugin::render() #10 {main} thrown in /home/gb/public_html/mondomaine/public/dotclear/inc/libs/clearbricks/dblayer/class.sqlite.php on line 169
bonjour.
tentative de mise à jour d'un plugin sur console.dotaddict.org, après avoir sélectionné le zip, je clique sur passer à l'étape 2 et j'ai cette erreur en retour:
"No description file found in /tmp/phpjeKw28"
Qu'est-ce qui te gêne dans l'usage d'un singleton avec une méthode statique pour récupérer l'instance ?
De mon point de vue ça simplifie les signatures des méthodes, ça évite de transporter une globale partout.
Mais j'ai peut-être loupé un truc, j'suis pas omniscient dans le domaine.
l'instigateur de ce singleton a lui même déjà exprimé son opinion sur le sujet
https://forum.dotclear.org/viewtopic.ph … 51#p347551
Pourquoi se casser la tête à faire de l'injection dépendance alors que l'on peux déclarer une variable ou un objet global, ou bien alors créer un singleton encapsulé dans une classe qui propose une méthode statique pour le récupérer n'importe ou dans le programme sans instancier la classe, et donc placer d'une autre manière la disponibilité de l'objet dans l'espace global?
Si la première solution n'est pas la meilleure, alors la seconde l'est-elle davantage?
n'y a t-il pas une meilleure pratique pour obtenir l'objet dont j'ai besoin dans la classe dans laquelle je suis?
Quel sont les autres moyens mis à ma disposition?
quelques lectures au sujet de l'usage des static-methods et plus, qui ont orienté mon opinion:
https://stackoverflow.com/questions/956 … ods-or-not
https://r.je/static-methods-bad-practice
http://misko.hevery.com/2008/12/15/stat … stability/
https://stackoverflow.com/questions/127 … ti-pattern
https://fr.linkedin.com/learning/javasc … ntee-objet
Franck tu l'a compris je pense, j'ai un parti pris pour dependency injection plutôt que static methods, et par suite service container, et pourquoi pas architecture MVC, middleware, PHP Standard Recommandation, request/response etc...
Là je parle pour DOTCLEAR 3, j'espère que le projet a un avenir
JcDenis a déjà fait une sérieuse ébauche de direction possible à prendre.
Et je rêve d'une foule de contributeurs talentueux à venir et motivés et plein de petites mains aussi :).
Si tel est, je veux bien en discuter cordialement et respectueusement, et plus si affinités.
Pourquoi, vu les "changements radicals", ne pas avoir choisi de faire (enfin ) de la vrai injection de dépendances au lieu de l’appel statique App::core() ?
Ué, bonne idée, c'est d'ailleurs ce qu'à fait JcDenis dans une branche qu'il appelle namespace (et que j'appelle 3.0)
Elle est consultable ou cette branche?, je l'ai pas trouvée sur le dépôt git ni sur le fork de jcDenis.
Ok, j'ai trouvé ; https://github.com/JcDenis/dotclear/tree/namespace
Mon avis :Le problème c'est que dotclear et Clearbricks déclarent toutes leurs classes dans l'espace de noms global. la solution minimum propre ça serait de les déclarer dans un espace de nom dédié, donc adaptation du code de dotclear, pas si trivial que cela.
Bonjour.
Signaler le bug me parait plus qu'utile.
Mise à jour pour dotclear 2.24
https://github.com/adjaya-dev/menu/raw/ … -2.0.1.zip
Je t'ai envoyé un mail
j'ai arrêté le dev, donc j'ai plus de serveur sous la main, ni en local ,ni distant, me reste mon éditeur de code pour mettre les rustines, donc sans rapport d'erreurs php ( error_reporting(E_ALL); ) je peux pas faire grand chose.
Bonjour.
Quel sont les erreurs si le mode debug est activé?
Bonjour,
Merci de ta réponse. L'installation automatique ne prévoit pas le choix d'une connexion en https. C'est en voulant se connecter à l'admin que l'erreur se produit, les URL du blog et de /admin s'ouvrent correctement.
En suivant ton idée SSL, j'ai ajouté au fichier inc/config.php le paramètre :
define('DC_ADMIN_SSL','false');
Cela ne change rien. Et avec https, le site est inaccessible – normal !
EasyPHP ne semble pas prévoir la possibilité de certificat SSL.
Le code correct est :
define('DC_ADMIN_SSL', false);
Le problème avec Sqlite, est que si le schéma de la base de donnée change entre deux versions, elle n'est pas mise à jour et demande de faire un export du contenu de la base, une installation neuve de la dernière version de dotclear, et enfin l'import de l"export fait précédemment.
Une comparaison des schemas de la 2.12 et la 2.18.1 montre l'ajout de la table notice.
Si c'est ce que tu avait fait et que ton installation était cassée, cela pourrait donc être un bug à signaler.
Pour consulter et vérifier l'intégrité de ta base de donnée Sqlite, il existe pas mal d'outils, dont certain en ligne, une recherche sur le web te donneras des réponses!
Le message d'erreur te donne une piste à vérifier :
There seems to be no Session table in your database. Is Dotclear completly installed?
Il semble qu’il n'y ait pas de table Session dans votre base de données, l’installation de Dotclear est-elle complète ?.
Si vous utilisez une version inférieure (php 5.6.x, par ex) et désirez utiliser php 7 dès maintenant, une opération est nécessaire pour permettre un passage "en douceur".
peut être à préciser que cette opération n'est nécessaire que si l'on utilise une base de données Mysql.
Cette modification ne concernant évidement pas les utilisateurs des bases
PostgreSQL ou Sqlite.
Bonjour
Si j'ai bien compris ton histoire, $_POST['class_name'] ne peux pas exister avant l'envoie du formulaire, vu que c'est lui qui génère la variable.
Bonjour
La version actuelle de dotclear utilise la fonction php $__autoload qui devient obsolete à partir de PHP 7.2.0 ce peut-être une raison.
il faudrait que tu active temporairement les erreurs php en ajoutant
au début fichier inc/config.php, après la ligne
<?php
le code suivant et nous faire un compte rendu ici.
if (!defined('DC_DEBUG')) {
define('DC_DEBUG', true);
}
if (DC_DEBUG) {
ini_set('display_errors', true);
error_reporting(E_ALL | E_STRICT);
}
Moi je resterais soupçonneux
sur le fait que s'il y a eu timeout, il doit manquer quelque chose qui peux passer inaperçu tout d'abord et se révéler plus tard....
Bon, refaire 5 blogs pour un qui foire, je concède que ce puisse être gonflant.
Corriger les urls l'une après l'autre, ben quand la ferrari est en panne, il reste toujours le vélo :)
Une suggestion toutefois, qui pourrais te convenir, ne demandant pas de connaissances pointues en code et en mode "paranoïaque" :
1_ Créer un blog #6 clonant la configuration générale du blog foireux.
2_ Faire le(s) import(s), croiser les doigts, et si tout ce passe bien, le substituer au blog qui pose problème.
Il me manque des éléments sur l'état de ton blog pour pouvoir mettre au point une procédure.
Dispose-tu de toutes les sauvegardes des différentes étapes de création de ton blog?
Si oui, le plus simple est de repartir sur une installation neuve.
Si tu ne dispose pas de toutes les sauvegardes, ça risque d'être plus compliqué.
pourquoi ne pas supprimer tous les posts importés, et tenter de refaire l'import normalement?
Pour moi, la solution satisfaisante serait de trouver un moyen d'éviter le timeout lors d'une importation un peu lourde.
Plusieurs utilisateurs ont déjà rencontré ce problème, et c'est là un défaut du système d'import de dotclear.
J'ai déjà, par le passé, réfléchi à une solution, ai quelques idées sur le sujet, et veux bien tenter de m'y replonger.
Ceci-dit, sans garanti d'aboutissement ni de temps de délai si j'y parviens.
Vous n'êtes pas identifié(e).