Coder Social home page Coder Social logo

lodel's Introduction

Lodel

Logiciel d'édition Électronique

Home page (doc générale): http://www.lodel.org

Documentation technique: https://github.com/OpenEdition/lodel/wiki

English readers: for a presentation in English, see https://lodel.org/666 . The rest of the documentation and the wiki are currently only in French. If you are interested in Lodel, please contact us !

E-Mail: [email protected]

Résumé

Lodel est un logiciel d'édition électronique. Il permet de publier en ligne des articles issus d'un traitement de texte.

Licence

Lodel est un logiciel libre sous licence GPL Version 2. Lisez la licence dans le fichier COPYING.

Lodel - Logiciel d'édition Électronique

Lodel est un logiciel d'édition électronique. Il est simple d'utilisation et facile à adapter à des usages particuliers.

Les documents à publier peuvent être préparés dans un traitement de texte (Word, OpenOffice.org, etc) ou édités directement en ligne.

Le design du site est défini par des gabarits écrits dans le langage Lodelscript.

Installation

Pré-requis:

  • Serveur HTTP (nginx, apache) avec PHP
  • Serveur MySQL/MariaDb
    • pour être utilisé avec OTX, il faut une valeur de max_allowed_packet et key_buffer très grande (16 M)

Marche à suivre:

  • Cloner de préférence la dernière version tagguée
  • Faire pointer le virtual host sur la racine de l'installation lodel.
  • L'utilisateur du serveur HTTP doit avoir les droits de lecture sur tous les fichiers.
  • Créer une base de donnée et un utilisateur ayant les droits de modification sur cette base.
  • Aller à l'adresse configurée avec un navigateur web, suivre les instructions.
  • Il faudra donner temporairement les droits d'écriture sur le dossier d'une instance de site.
  • Vérifer qu'à l'intérieur du dossier d'un site l'utilisateur du serveur HTTP a bien les droits d'écriture sur les dossiers: upload, docannexe, docannexe/file, docannexe/image, lodel/sources, lodel/icons

lodel's People

Contributors

arnaudcordier avatar bcenou avatar brrd avatar charlycoste avatar driky avatar guillaumelestringant avatar hichambenjelloun avatar jcsouplet avatar jfriviere avatar lnprieto avatar nahuelange avatar rharoutiounian avatar syldanh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lodel's Issues

Pas de pagination dans le backoffice

Lodel ne permet la pagination des entités dans l'interface d'édition que lorsqu'on se trouve à la racine du site.
Lorsqu'on liste les enfants d'une entité (d'une rubrique ou d'une collection par exemple), il n'y a pas de pagination. -> Dès qu'on affiche beaucoup d'éléments, on a des temps de chargement très long, parfois jusqu'au timeout.
Il faudrait donc mettre en place un pagination dans le template du backoffice concerné. Il faut gérer le comportement ajax qui permet de "déplier" (d'afficher les enfants) une entité dans la page sans recharger toute la page.

Autre problème : dans la pagination (utilisé par exemple à la racine du site), rien ne permet d'aller directement jusqu'à la dernière page. Ca rend la pagination inutilisable lorsqu'on publie beaucoup d'entité "à plat" à la racine du site ou dans la même rubrique.

Importer du LaTeX ?

Par curiosité, et ne connaissant pas le fonctionnement détaillé de Lodel, je me demandais s'il était envisageable, et si oui quelle quantité d'efforts cela requerrait, de faire en sorte que Lodel puisse accepter du LaTeX en entrée ?

"template" d'installation de langues absents

Lorsque l'on tente de sélectionner une langue tel que le polonais, une erreur d'inclusion survient car le template n'existe tout simplement pas. En rapport avec le problème #77, peut-être vaut-il mieux dans un premier temps ne proposer que le français et/ou l'anglais, plutôt qu'une pléïade de choix qui ne feront jamais que provoquer des erreurs.

Impossible de finaliser l'installation

A chaque installation, quand il s'agit de créér le premier site, Lodel génère 👍
Error (Internal Error) in file '/srv/data/web/vhosts/www.monsite.net/htdocs/lodel/scripts/lodelparser.php' on line 106 :
SQL Error:
Table 'lodeldb.classes' doesn't exist

Pb flux RSS

Bonjour,

Les flux RSS ne semblent pas fonctionner, aussi bien dans l'admin que dans la partie publique. Je suis systématiquement confronté à l'erreur suivante :

Sous firefox :

Erreur d’analyse XML : instruction de traitement XML ou texte pas au début d’une entité externe
Emplacement : http://192.168.56.3/lodel/licorne/lodel/edition/index.php?page=backend&format=dashboard_queue
Numéro de ligne 5, Colonne 1 :<?xml version="1.0" encoding="utf-8"?>
                              ^

Sous Chrome :

This page contains the following errors:
error on line 5 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.

Si je rafraichis la page, je n'ai plus l'erreur, les données brutes du flux s'affichent mais il manque certaines entrées du flux comme par exemple la description (dans l'admin : Tableau de bord > fil d'attente).

Est-ce quelque chose que vous constatez de votre côté ?

Cordialement.

Génération automatique de PDF

Bonjour,

Il s'agit plus d'une question que d'un problème. Je présume que Lodel ne fait pas de génération automatique de PDF à partir des articles importés ? Sur le site www.openedition.org, il me semble qu'une version PDF des articles de revue est systématiquement disponible. Est-ce de la génération automatique ? Si oui, comment est constituée (outils, techno, etc.) la solution en place, et est-ce quelque chose qu'il est envisageable de "récupérer" ?

Cordialement.
Sylvain sonnet

Table individus

Bonjour,

J'ai commencé à migrer plusieurs sites de revue en utilisant pour l'instant le jeu de templates par défaut du modèle éditorial OJE. L'un de ces sites n'a pas de table "individus", ce qui génère une erreur car les données de cette table sont appelées dans la macro INSERER_FEUILLE_DE_STYLE. J'ai donc 2 options :

  • créer la table individus
  • supprimer l'appel des données dans le jeu de templates

Je constate que si tous les autres sites ont bien la table individus, elle est toutefois toujours vide... d'ailleurs, je n'ai pas trouvé comment l'alimenter via le CMS. Cette table a-t-elle une utilité ?

Cordialement.

Intégration de Composer

Trois problèmes peuvent être relevés :

  • le fichier composer.lock n'est pas versionné, on a donc aucune assurance de travailler avec les mêmes versions de paquets d'un utilisateur à l'autre ;
  • au contraire, le dossier vendor est versionné bien qu'il ne devrait jamais l'être ;
  • le composer.json devrait être à la racine du projet, préférablement hors de portée du serveur web, pour des questions pratiques autant que techniques (autoloader notamment) ;

Convertir tous les fichiers PHP en UTF8

La commande find . -name "*.php" -type f | xargs -I {} bash -c "iconv -f utf-8 -t utf-16 {} &>/dev/null || echo {}" (adaptée à partir de celle-ci), retourne la liste suivante :

  • ./lodel/scripts/wikirenderer/WikiRenderer.lib.php
  • ./lodel/scripts/wikirenderer/WikiRenderer.conf.php
  • ./lodel/scripts/adodb/adodb.inc.php
  • ./lodel/scripts/adodb/lang/adodb_th.inc.php
  • ./lodel/scripts/adodb/lang/adodb-sv.inc.php
  • ./lodel/scripts/adodb/lang/adodb-bg.inc.php
  • ./lodel/scripts/adodb/lang/adodb-ru1251.inc.php
  • ./lodel/scripts/adodb/lang/adodb-ar.inc.php
  • ./lodel/scripts/adodb/lang/adodb-cz.inc.php
  • ./lodel/scripts/adodb/lang/adodb-hu.inc.php
  • ./lodel/scripts/adodb/lang/adodb-cn.inc.php
  • ./lodel/scripts/adodb/lang/adodb-pl.inc.php
  • ./lodel/scripts/adodb/lang/adodb-uk1251.inc.php
  • ./lodel/scripts/adodb/lang/adodb-ca.inc.php
  • ./lodel/scripts/adodb/lang/adodb-pt-br.inc.php
  • ./lodel/scripts/adodb/adodb-lib.inc.php

Tous ces fichiers présentent des défauts d'encodage UTF8, or il est recommandé que tous les fichiers sources soient encodés au format UTF8 sans BOM selon les conventions PSR1

Avertissement au sujet de /e

Voilà, je suis toujours sous PHP5, sur la branche master, mais j'ai des avertissements comme ceci 👍

PHP Error (Deprecated) in file '/home/admlodel/lodelm/git/lodel/scripts/logic/class.entities_index.php' on line 187 :
preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

dc:title not found

Bonjour,

A l'import d'un document réalisé avec Word, j'obtiens le warning "dc:title not found" avec comme conséquence le titre de mon word affecté comme texte standard dans Lodel, et donc absence de titre dans Lodel.
Pas de souci en revanche avec le même document réalisé sous Libre Office.
Est-ce une "limitation" connue ? Préconisez vous l'un plus que l'autre (Word/LibreOffice) ?

Quelques éléments utiles :

  • Lodel branche master (+ quelques modifications de code, cf; #95 et #97)
  • OTX branche master
  • Debian 9
  • Word 2016
  • Modèle Word 4.0.10

Cordialement.

Installation impossible, tout court

Bonjour,
depuis 2j, je me bats avec Lodel sur des points qui me semblent devoir fonctionner a minima. Soit je n'ai rien compris, soit le processus d'installation est à corriger.

Installation tentée à partir du "master" ainsi que du tag 1.0.2

Création d'un site
Error (Internal Error) in file '/var/www/html/lodel/scripts/class.siteManage.php' on line 326 : SQL ERROR : Field 'langdef' doesn't have a default value

Soit, j'ajoute une valeur par défaut. Il faut aussi le faire pour le champ 'lang'.

Ensuite, création de la base de données, il y a une erreur sur les droits utilisateur mais celle-ci est bien créée tout de même.

Ensuite (page site.php), page blanche avec ceci écrit :
getIncTpl($context,"desk","", $this->_home."../tpl/"); ?> Création d'un site @fail_for_table_creation. @check_database_user_rights_who_must_be_able_to_create_tables. @command_list_making_errors_and_database_server_errors :

Comme je suis têtu, après avoir fouiné le code et les divers eval, il s'avère qu'il manque carrément une fonction loop_errors_createtables.
Soit, on la rajoute dans loops.php
function loop_errors_createtables(&$context, $funcname, $rien = array()) {
$website = new siteManage();
$website->loop_errors_createtables($context, $funcname);
}

Vient ensuite :
Error (Internal Error) in file '/var/www/html/lodel/scripts/view.php' on line 764 :
Internal error in file /var/www/html/lodel/scripts/view.php(579) : eval()'d code on line 71;
LOOP: nbinternaladminmsgs__lodel_scripts_tpl_desk_html;
QUERY: SELECT COUNT(*) AS nbresults
FROM lodel_internal_messaging
WHERE (recipient = 'lodelmain-1' && status = 1)
MYSQL ERROR: Table 'revues_flotest.lodel_internal_messaging' doesn't exist

Soit, on rajoute la table, qui est présente dans la base "mère" de lodel.

Vient ensuite un gros lot de
BLOB/TEXT column 'altertitle' can't have a default value
Eh oui, Mysql n'aime pas les valeurs par défaut sur les champs TEXT/BLOB avec pour raison éventuelle la sauvegarde de mémoire étant donné que chaque entrée de ce type est un objet.

Ensuite, de mémoire, version raccourcie, soit, pas de valeur par défaut. Plus tard, au choix d'un modèle éditorial, celui de revues.org 'field xxx doesn't have a default value', on les ajoute sur le modele de base de données du modèle. Ensuite, arrive une fonction manquante loop_solr() et ça continue ainsi encore et encore ....

Question bête, comment installer un lodel fonctionnel !?

Autoloading / routage / point d'entrée

Suivant le ticket par rapport à Composer, il serait sans nul doute plus judicieux de se défaire des includes et de la myriades de points d'entrées au bénéfice de l'autoloading. On y gagnerait en sécurité (le serveur n'accède plus "à tout"), en clarté, en simplicité (PSR-4) et très probablement en performance...

Il faudrait :

  • créer un point d'entrée (index.php) unique ;
  • sous-dossier public contenant les assets et le point d'entrée ;
  • reléguer l'autoloading à Composer ;
  • ajouter un routeur ;

Un solution de transition pourrait être de router toutes les requêtes vers un Contrôleur qui n'aura pour but que d'imiter le comportement actuel (càd executer le scripts vers lequel pointe l'uri). Ceci aurait l'avantage de déjà pouvoir centraliser ce qui peut l'être, d'avoir tout de même la possibilité d'utiliser le PSR-4 pour l'ajout de fonctionnalités, l'utilisation de nouvelles dépendences (ou le remplacement d'anciennes), et de "transformer" le code petit à petit, au fil des besoins et du temps disponibles.

php7 sur debian 9

bonjour,

je viens de faire un essai rapide de lodel php7 sur debian 9, mais je rencontre une erreur après l'installation

j'ai bien édité le fichier lodelconfig-defautl.php, et atteint sans encombre la page qui confirme que l'installation est réussie

je précise :

  • que j'effectue bien mon installation sur un vhost en php7, pour pas qu'il y ait de confusion avec ce post
  • que lodel version php 7utilise bien une base de données indépendante de celle utilisée dans l'installation mentionnée ci-devant
  • que j'ai informé un dossier pour le paramètre importdir et que le serveur web y a accès
  • que j'ai tenté un chmod -R 777 sur le dossier lodel, après avoir rencontré les erreurs ci-après, mais que ça n'y a pas remédié

l'installation terminée, j'ai donc :

Lodel is now installed, copy the SuperAdmin account parameters above somewhere and log here: User Creation to create a permanent Lodel Admin.
After that you should:
1. Log in with your new account and delete the automatically created one;
2. delete the key file in order to prevent this installation script to be run;
3. create your first site via the general admin interface.

cependant le lien http://mondomaine.fr/lodel/lodeladmin/index.php?do=view&lo=users me conduit à une page d'erreur :

Ce site est inaccessible
Il se peut que la page Web à l'adresse http://mondomaine.fr/lodel/lodeladmin/login.php?url_retour=%2Flodel%2Flodeladmin%2Findex.php%3Fdo%3Dview%26lo%3Dusers soit temporairement inaccessible ou qu'elle ait été déplacée de façon permanente à une autre adresse Web.
ERR_CONTENT_DECODING_FAILED

si je tronque l'URL pour mondomaine.fr/lodel/login.php ou http://mondomaine.fr/lodel/lodeladmin/index.php?do=view&lo=users mondomaine.fr/lodel/ ou mondomaine.fr/lodel/lodeladmin/ j'ai en retour pour chaque URL

Ce site est inaccessible
Il se peut que la page Web à l'adresse http://mondomaine/lodel/lodeladmin/login.php soit temporairement inaccessible ou qu'elle ait été déplacée de façon permanente à une autre adresse Web.
ERR_CONTENT_DECODING_FAILED

enfin mondomaine.fr/lodel/lodeladmin/install.php me retourne une erreur SQL après avoir tenté de créer des tables dans la bdd, ce qui est logique

SQL ERROR: Duplicate entry '5' for key 'PRIMARY'
SQL ERROR: Duplicate entry '4781' for key 'PRIMARY'

Voilà, je n'ai pas consulté les log php ou SQL, mais je peux le faire si cela vous est utile.

À nouveau si vous connaissez le problème ou un moyen de le contourner, je suis penseur.
Cordialement

erreur include pear dans scripts/Mail/Mail.php

Version master
Fatal error: require_once(): Failed opening required 'PEAR.php' (include_path='../lodel/scripts:.:/usr/share/php:/usr/share/pear') in /var/www/tomboul/lodel/lodel/scripts/Mail/Mail.php on line 46

code
require_once 'PEAR.php';
correction suggérée
require_once '/lodel/scripts/PEAR/PEAR.php';

Traductions manquantes

Certaines chînes de caractères n'ont pas été traduites, les identifiant bruts apparaissant à la place (voir /lodeladmin/install.php?installlang=es par exemple).

Compatibilité Lodel et php 7.1 / 7.2 / 7.3 ?

Bonjour,
Le support de sécurité ayant pris fin pour php 7.0 fin 2018, j'ai voulu tester Lodel avec une version supérieure. Lodel ne fonctionne avec aucune des 3 versions "actuelles" de php 7 (7.1 / 7.2 / 7.3). Il y a de façon récurrente des warnings (Illegal string offset, A non-numeric value encountered...) mais surtout des erreurs blocantes : Unsupported operand types...
Une version compatible avec php > 7.0 (voir même > 7.1) est-elle prévue ?
Cordialement.

problème de connexion admin

bonjour, j'ai un souci de connexion à la page de login, tous les tests sont fonctionnels, mais au moment d'aller sur le lien lodel/lodeladmin/index.php?do=view&lo=users
j'ai toujours une barre jaune en haut de la page sans aucun erreur, rien dans les logs...
j'ai la dernière version sur ubuntu 18
je vous remercie

Des points d'interrogations à la place des caractères accentués

Bonjour,

Je suis en train de faire des tests d'installation en local pour des étudiants, dans le contexte d'un cours. Et l'interface administration voit tous les caractères accentués remplacés par un point d'interrogation sur fond noir, c'est même le cas dans les pages du script d'installation après la configuration et création de la DB.

Vu que c'est en local et que lodel créée une base de donnée pour chaque site (si j'ai bien tout suivi), à l'installation j'ai renseigné l'utilisateur mysql root. Aussi, c'est le script d'installation qui s'est chargé de créé la base de donnée. J'imaginais donc que l'encodage aurait été correctement configuré. Est-ce que le problème pourrait venir de là ?

J'ai testé l'installation dans deux contexte, un fois sous Archlinux, et je me suis arrêté assez vite, parce qu'il semble que ça fonctionne assez mal avec php7. La deuxième fois, je l'ai fait sous debian jessie, et ça a été beaucoup mieux, malgré quelques petits soucis. J'ai dû par exemple créer les dossiers upload, css, ìmages et docannexe à la main, malgré des droits maximum au serveur Web sur le dossier racine de lodel.

Bug sur le préfixe des tables (avec proposition de patch)

Bonjour

J'ai rencontré un bug un peu difficile à cerner : le logiciel voulait absolument écrire dans la table "entries" (donc sans le préfixe #TP_).

Je l'ai résolu en remplaçant, dans la ligne 774 de

https://raw.githubusercontent.com/OpenEdition/lodel/master/lodel/scripts/logic/class.entities_edition.php

$criteria .= " AND id2 IN (SELECT id FROM ".$table." WHERE...
par
criteria .= " AND id2 IN (SELECT id FROM #TP".$table." WHERE...

Class 'Cache' not found in lodel/scripts/cache.php

Voyant que c'était trop galère de revenir à une version antérieure, j'ai persévéré avec la version 1.0 (master)
mais il y a une erreur persistante qui a fini par disparaitre sans savoir pourquoi
Class 'Cache' not found in ..... /lodel/scripts/cache.php on line 10
et qui a été remplacé par cette erreur
Fatal error: Interface 'Cache_GarbageCollect' not found in .... /lodel/lodel/scripts/cache/file.php on line 41

j'ai détruit tout ce qu'il y avait dans le répertoire temporaire mais l'erreur persiste

impossible de me reconnecter à lodel ...

Impossible d'ajouter une publication

Bonjour,

J'ai installé le CMS sur un environnement local (docker). Il semble fonctionner sans trop de soucis. Cependant, je n'ai pas la possibilité d'ajouter une publication à un site que je viens de créer. J'ai un utilisateur de niveau administrateur pourtant, mais l'option "Ajouter" semble grisée, comme si je n'avais pas les droits suffisants (voir images jointe).

Ai-je manqué quelque chose ?

publication

Pb caractères accentués dans templates

Bonjour,

Je suis parti des templates fournis avec Lodel pour concevoir l'interface de nos revues. Un certain nombre de ces templates commencent par la balise <CONTENT VERSION="1.0" LANG="fr" CHARSET="utf-8"/>. Celle-ci étant obsolète et le charset utf-8 étant déjà paramétré via une balise meta dans l'en-tête html, je l'ai retirée. Sauf qu'en faisant ça plus aucun caractère accentué statique dans les templates ne s'affiche correctement. Mes fichiers templates semblent bien en utf-8 (vérifié avec un file -i). Quand je fais une page html ou php toute simple hors installation Lodel et affichant "aéèuà", tout se passe bien, donc je ne pense pas avoir de problème de config serveur. Voyez vous une explication qui pourrait être liée à Lodel ?

Cordialement.
Sylvain Sonnet

Pb class.entities_index.php (reconstruire index de recherche) avec php 7

Bonjour,

Le problème rencontré est au lancement de la fonctionnalité "Moteur de recherche : reconstruire l'index" sous php 7. On obtient les erreurs suivantes (cf. #91) en boucle :

PHP Error (Warning) in file '/var/www/html/lodel/lodel/scripts/logic/class.entities_index.php' on line 187 : 
preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
PHP Error (Warning) in file '/var/www/html/lodel/lodel/scripts/logic/class.entities_index.php' on line 188 : 
preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead

On nous indique que ce ne sont que des warnings... sauf que concrètement la table search_engine n'est pas alimentée : la recherche est donc inopérationnelle.

Le "coupable" est la méthode _decode_html_entities() dans class.entities_index.php. La méthode en question utilise la fonction preg_replace() avec un modifier "/e", ce qui n'est pas compatible avec php 7. Il faut utiliser preg_replace_callback() à la place. J'ai donc modifié le code comme suit :

protected function _decode_html_entities($text) 
{
	//$text= preg_replace('/&#(\d+);/me',utf8_encode("chr(\\1)"),$text); #decimal notation
        $text = preg_replace_callback(
            '/&#(\d+);/m',
            function ($matches) {
                return utf8_encode(chr($matches[1]));
            },
            $text
        );
	//$text= preg_replace('/&#x([a-f0-9]+);/mei',utf8_encode("chr(0x\\1)"),$text);  #hex notation
        $text = preg_replace_callback(
            '/&#x([a-f0-9]+);/mi',
            function ($matches) {
                return utf8_encode(chr('0x' . $matches[1]));
            },
            $text
        );
	return html_entity_decode($text);
}

Avec ces modifications, ça passe sur mon installation (branche master de Lodel + php 7) : la table search_engine est à présent alimentée. Je me suis permis de rajouter un html_entity_decode() sur le renvoi final au passage...

Je précise que les données sur lesquelles je travaille sont des données provenant initialement d'un site sous Lodel 0.7, migré en 0.9, puis en 1.x...

Est-il envisageable d'apporter ces modifications à votre code ?

Cordialement.
Sylvain Sonnet

Pb TEIParser

Bonjour,

Je suis en train de travailler à la migration vers Lodel 1.0 d'un site initialement réalisé avec Lodel 0.7. J'utilise la branche php7-compatible de Lodel 1.0. Je suis arrivé au stade des essais d'import de fichiers stylés pour conversion xml et je "bute" sur les erreurs suivantes (refus d'importer le fichier stylé) :

PHP Error (Warning) in file '/var/www/html/lodel/lodel/scripts/logic/class.data.php' on line 2224 : 
DataLogic::generateXML(): Invalid Document Encoding
Error (Internal Error) in file '/var/www/html/lodel/lodel/scripts/dao.php' on line 339 : 
SQL ERROR :
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '))  ORDER BY id' at line 1
SELECT id,type,title,style,otx,lang,newbyimportallowed FROM entrytypes WHERE (status>0 AND class IN ())  ORDER BY id
Base: lodel_sandbox
PHP Error (Notice) in file '/var/www/html/lodel/lodel/scripts/dao.php' on line 344 : 
Trying to get property of non-object
PHP Error (Notice) in file '/var/www/html/lodel/lodel/scripts/dao.php' on line 348 : 
Trying to get property of non-object
PHP Error (Warning) in file '/var/www/html/lodel/lodel/scripts/dao.php' on line 554 : 
Invalid argument supplied for foreach()
PHP Error  in file '/var/www/html/lodel/lodel/scripts/dao.php' on line 350 : 
Call to a member function MoveNext() on boolean

En essayant de débugger, je me suis rendu compte que dans lodel/scripts/teiparser.php, ligne 277, la variable $entriesClassTypes était utilisée sans contrôle de son contenu. Si la variable est vide, on a une erreur fatale.
Au niveau fonctionnel, le cas de figure correspond dans le modèle éditorial à une classe qui n'a aucun champs de type 'entries', ce qui est le cas dans le modèle éditorial du site que j'essaye de migrer.
Je peux "corriger" localement et temporairement le code mais j'aimerais éviter d'avoir à hacker le CMS. Est-il envisageable pour vous d'apporter les corrections au fichier teiparser.php et de les mettre à disposition des utilisateurs ? Ou avez-vous une solution alternative à proposer (il y a peut-être quelque chose qui m'échappe) ?

Cordialement.

Pb class.data.php (Sauvegarder les données)

Bonjour,

La fonction permettant de sauvegarder les données ne fonctionne pas si on coche la case "Sauvegarder seulement la base de données (pas les fichiers associés : images, documents annexes...)".

J'ai résolu le problème en modifiant la méthode backupAction() du fichier /lodel/scripts/logic/class.data.php. Ligne 292, la variable $files_and_names est indéfinie (et donc vide) si on exporte que la base : elle n'est définie plus haut (lignes 262 à 289) que pour le cas de figure où on exporte la base + les fichiers associés.

Voici la méthode modifiée :

public function backupAction(&$context, &$error)
{
    if(!C::get('adminlodel', 'lodeluser')) trigger_error("ERROR: you don't have the right to access this feature", E_USER_ERROR);

    $context['importdir'] = C::get('importdir', 'cfg');

    if (isset($context['backup'])) { // si on a demandé le backup
        set_time_limit(0);
        $site = C::get('site', 'cfg');
        $outfile = "site-$site.sql";

        $GLOBALS['tmpdir'] = $tmpdir = tmpdir(uniqid('sitebackup'));

        $errors = array();

        /* On fait le dump de la base de données */
        $this->_dump($site, $tmpdir . DIRECTORY_SEPARATOR. $outfile, $errors);

        if($errors) {
            $error = $errors;
            return 'backup';
        }

        // verifie que le fichier SQL n'est pas vide
        if (!file_exists($tmpdir. DIRECTORY_SEPARATOR . $outfile) || filesize($tmpdir. DIRECTORY_SEPARATOR . $outfile) <= 0) {
            $error['mysql'] = 'dump_failed';
            return 'backup';
        }

        // zip le site et ajoute la base
        $archivetmp = tempnam($tmpdir, 'lodeldump_'). '.zip';
        $archivefilename = "site-$site-". date("dmy"). '.zip';

//        // fichiers à exclure de l'archive
//        $GLOBALS['excludes'] = $excludes = array(
//            '#\.htaccess$#',
//            '#index.html$#',
//            '#^docannexe/image/tmpdir-.*$#',
//            '#^docannexe/tmp.*$#'
//        );
//
//        // répertoires à inclure
//        $sitedirs = array(
//            'lodel/icons',
//            'lodel/sources',
//            'docannexe/fichier',
//            'docannexe/file',
//            'docannexe/image',
//        );
//
//        // si sauvegarde des répertoires demandée (en + de la base)
//
//        $files_to_zip = array();
//
//        if (empty($context['sqlonly'])) {
//            /* On créé la liste des fichiers à sauvegarder */
//            $siteroot = realpath(SITEROOT) . DIRECTORY_SEPARATOR;
//
//            foreach($sitedirs as $sitedir)
//            {
//                $files_to_zip = array_merge(
//                    $files_to_zip,
//                    array_filter(glob_recursive( $siteroot . $sitedir . DIRECTORY_SEPARATOR . "*"), 'is_file')
//                );
//            }
//
//            /* Suppression des fichier à exclure */
//            foreach($excludes as $exclude)
//            {
//                $files_to_zip = preg_grep($exclude, $files_to_zip, PREG_GREP_INVERT);
//            }
//
//            /* On définit les chemin dans le zip et dans le filesystem */
//            $files_and_names = array(
//                $tmpdir. DIRECTORY_SEPARATOR . $outfile => $outfile,
//            );
//            foreach($files_to_zip as $file)
//            {
//                $files_and_names[$file] = str_replace($siteroot, '', $file);
//            }
//            unset($files_to_zip);
//        }

        $files_and_names = array(
            $tmpdir. DIRECTORY_SEPARATOR . $outfile => $outfile,
        );
            
        // si sauvegarde des répertoires demandée (en + de la base)
            
	if (empty($context['sqlonly'])) {
               
            // fichiers à exclure de l'archive
            $GLOBALS['excludes'] = $excludes = array(
                '#\.htaccess$#',
                '#index.html$#',
                '#^docannexe/image/tmpdir-.*$#',
                '#^docannexe/tmp.*$#'
            );

            // répertoires à inclure
            $sitedirs = array(
                'lodel/icons',
                'lodel/sources',
                'docannexe/fichier',
                'docannexe/file',
                'docannexe/image',
            );
            
            $files_to_zip = array();
                
            /* On créé la liste des fichiers à sauvegarder */
            $siteroot = realpath(SITEROOT) . DIRECTORY_SEPARATOR;

            foreach($sitedirs as $sitedir)
            {
                $files_to_zip = array_merge(
                    $files_to_zip,
                    array_filter(glob_recursive( $siteroot . $sitedir . DIRECTORY_SEPARATOR . "*"), 'is_file')
                );
            }

            /* Suppression des fichier à exclure */
            foreach($excludes as $exclude)
            {
                $files_to_zip = preg_grep($exclude, $files_to_zip, PREG_GREP_INVERT);
            }

            /* On définit les chemin dans le zip et dans le filesystem */
            foreach($files_to_zip as $file)
            {
                $files_and_names[$file] = str_replace($siteroot, '', $file);
            }
            unset($files_to_zip);
        }
            
        /* On créé le zip dans $archivetmp */
        $ok = create_zip_from_file_list($archivetmp, $files_and_names);

        @unlink($tmpdir. DIRECTORY_SEPARATOR . $outfile);
        if (!file_exists($archivetmp) || true !== $ok) {
            trigger_error("ERROR: the zip command reported an error: «{$ok}».\nArchive: $archivetmp", E_USER_ERROR);
        }

        if($error) { // Pour avoir accès aux erreurs dans les templates
            $context['error'] = $error;
        }

        if (operation($context['operation'], $archivetmp, $archivefilename, $context)) {
            $context['success'] = 1;
            return 'backup';
        }
        else {
            $context['success'] = 1;
            return 'backup';
        }

        return 'backup';
    }
    else {
        return 'backup';
    }
}

Est-il possible de corriger le code sur la branche master ?

Cordialement.

Droits de télécharger la maquette et les données

Dans le cadre l'utilisation de Lodel par @edinum nous souhaiterions ajouter la possibilité de modifier certains droits de la page d'administration du site : urldusite/lodel/admin/index.php

Téléchargement de la maquette

Actuellement rédacteurs et administrateurs ont le droit de "Sauvegarder le modèle éditorial" et "Exporter le modèle éditorial au format XML". Cela signifie que la maquette du site (Lodelia pour OpenEdition, Prima pour Edinum) est disponible au téléchargement. Notre maquette actuelle n'étant pas libre, nous souhaitons bloquer cette fonctionnalité.

Pour l'instant nous utilisons un plugin maison pour bloquer cette option sur nos site : https://github.com/edinum/authfix

Téléchargement des données

À contrario les rédacteurs et administrateurs n'ont pas le droit de "Sauvegarde des données" : il faut être administrateur Lodel pour avoir cette option. Ce comportement est problématique pour nous car nous souhaitons nos clients aient la possibilité de récupérer leurs données à tout moment et librement.

Il est (me semble-t-il) impossible de corriger ce fonctionnement par un plugin, à moins de dupliquer de gros morceaux de codes, ce qui ne nous semble pas souhaitable.

Ma question est la suivante : accepteriez-vous un PR de notre part pour ajouter la possibilité de modifier ces comportements ?

Formattage javascript intempestif

Bonjour

J'essaie actuellement de migrer un site vers la version master.

Il me semble constater que le nouveau moteur formatte joliment les lignes de HTML, ce qui n'est pas un mal, mais sauf quand ces lignes sont inscrites dans du code javascript car alors cela le rend invalide ! (les chaînes de caractères non terminées sur la même ligne sont interdites en JS). Une solution pourrait être d'ajouter des '\' au bout des lignes, avant chaque saut de ligne.

Merci d'avance pour votre réponse.
Cordialement

Profil éditeur et droits de suppression

Bonjour,

Un de nos usagers vient de me faire remonter l'impossibilité de supprimer ses publications. J'ai attribué à l'ensemble de nos usagers le profil Editeur car je ne voulais pas qu'ils puissent faire autre chose que gérer leur contenu. Sauf que visiblement ce profil n'autorise pas la suppression des publications (rubriques, collections, etc.). Est-il envisageable relativement rapidement de combler ce manque dans Lodel ?

Cordialement.
Sylvain Sonnet

Branche php7-compatible

Bonjour,

Il semblerait que la branche php7-compatible ait été supprimée récemment.
Doit-on en conclure que celle-ci a été mergée dans master ?

Y-a-t'il une alternative pour faire tourner Lodel dans un environnement PHP7 ?

Merci pour votre travail.

Impossible de publier des publications

Bonjour,

Lorsque je veux éditer une nouvelle publication (et non une collection), une page d'erreur m'affiche :

The requested URL /lodel/lodel/edition/Publications was not found on this server.

Une erreur similaire apparaît lorsque je veux éditer un site :

The requested URL /lodel/lodel/edition/Sites was not found on this server.

Un texte simple :

The requested URL /lodel/lodel/edition/Textes simples was not found on this server.

Bonne après-midi,

Daniel Sparti

Question lodel 3

Bonjour,

J'envisage d'utiliser Lodel dans mon travail.
Lodel datant un peu, je me demandais si vous étiez sur le développement d'une nouvelle version de Lodel (lodel 3) ?
Pourquoi ne pas avoir utilisé de framework comme symfony, laravel, cake-php, codeigniter,... pour le développement ? Envisagez vous cette possibilité pour une future version ?

Merci d'avance,
Best regards
Etienne R.

Documentation sur la modification/création d'un modèle éditorial ?

Bonjour

https://lodel.org/614#tocto1n2 dit

Bloc de fonctions « Modèle éditorial »
Ce bloc donne accès à toutes les fonctions de modification du modèle éditorial. Cette opération fait l’objet d’un chapitre particulier dans la documentation à destination du webmestre.

Je cherche le chapitre en question ici sans pouvoir le trouver. Y a-t-il de la documentation là-dessus disponible en ligne ? j'aimerai avoir des détails pour évaluer cette fonctionnalité.

Merci

Le fichier "macros_site.html" n'existe pas

Bonsoir,

J'ai installé Lodel dans le cadre d'un mandat pour mes études, en local. J'aimerais créer un billet test pour voir comment cela donne dans un navigateur, mais quand je presse sur le bouton Valider le message suivant apparaît :

Error (Internal Error) in file '/var/www/html/lodel/lodel/scripts/parser.php' on line 57 : LODELSCRIPT ERROR in file ./tpl//article.html : the macro file "macros_site.html" doesn't exist

J'ai cherché le fichier avec la commande find, mais elle n'a rien trouvé.

Merci beaucoup pour votre attention !

Champ "date de publication électronique"

Bonjour,

Dans le modèle éditorial de nos revues figure un champ [#DATEPUBLI] (date de publication électronique). Malheureusement je constate que le fait de publier un document au travers de l'admin n'a aucun effet sur ce champ. Est-il possible de faire en sorte qu'il soit alimenté automatiquement par la date du jour lorsque l'on clique sur "publier" dans l'admin ?

Cordialement.
Sylvain Sonnet

version 09 lodeladmin-0.9 repertoire innexistant

voyant que la version master était en beta test, j'ai décidé de me replier sur la version 09
mais pas mieux
dans le fichier zip le dossier admin est lodeladmin
mais dans le fichier index.php on a ce code :

if (!file_exists("lodelconfig.php")) {
    header('location: lodeladmin-0.9/install.php');
    exit;
}

du coup lros de la connexion j'ai une erreur 404
que préconisez vous ? modifier le nom du répertoire ou corriger le code dans le fichier index ?

Tags de fermeture PHP

Les conventions PSR2 encouragent à ne pas mettre de tag de fermeture PHP pour les fichier ne contenant que du code PHP.

Cela évite les erreurs courantes liées aux caractères invisibles après le tag, tel que:

Warning: Cannot modify header information - headers already sent ...

Supprimer les require_once

Pour améliorer la maintenabilité de l'application, il est recommandé de remplacer les require et include par des appels à des fonctions permettant le même effet.
Ces deux instructions avaient un sens à une époque où PHP servait avant tout à inclure des blocs de code html communs à différentes page web ou à charger le code des classes PHP.
Depuis que le système d'autoload a été introduit et que l'on utilise des moteurs de template pour le rendu html, ce genre d'instruction n'a plus d'intérêt et ne fait que rendre imprévisible les effets de bords potentiels liés à une modification du code et rendre complexe la mise en œuvre de tests fonctionnels. Difficile en effet de reproduire à l'identique l'état de toutes les variables globales lorsque l'on doit comparer le comportement de l'application avant et après modification de code.

err500 à l'importation d'un modèle éditorial

Bonjour à tous,

Je rencontre un bug au moment de l'importation d'un modèle éditorial.

Le problème est facile à reproduire de deux manières différentes :
Au cours de l'installation de lodel tout va bien, puis viens le moment de créer un site, pas de problème avec la bdd, mais le moment d'importer un modèle éditorial venu, la page ne s'affiche pas correctement, cf fichier joint, et la console me retourne une erreur 500.

Je peux tout de même revenir à l'administration de lodel et de mon site en tapant l'URL mondomaine.fr ;
D'ici je peux naviguer à souhait et aller dans l'administration de mon site, mais si je clique sur "importer un modèle éditorial", je retombe sur le même bug que précédemment.
Par contre, si je clique sur "importer un modèle éditorial au format xml", la je n'ai pas de bug.

J'aurais volontiers essayé d'importer le modèle éditorial de revue.org en xml, mais je ne l'ai pas sous le coude et ne l'ai pas trouvé après (de brèves j'en conviens) recherches.

EDIT :
j'ai exporté le modèle editorial en xml d'un site fonctionnel, mais lorsque que j'essaye de l'importer j'ai une err500 :-(

EDIT 2 :

si j'exporte les donnés d'un site fonctionnel, que je l'upload dans le dossier "privé" de lodel défini pendant l'installation, la sauvegarde apparait bien dans l'onglet administration>importer donnée, mais j'ai une err500 si j'essaye d'effectuer l'importation

EDIT 3:
tenté une install avec root en utilisateur sql et chmod -R 777 sur le dossier racine du serveur...
rien y fait

Avez-vous une idée de l'origine ou des moyens de contourner ce bug ?

merci

capture d’écran 2017-09-21 a 16 28 51

PS : j’ai déjà fait plusieurs installations complètes de lodel et OTX fonctionnelles, su plusieurs serveurs tous en Ubuntu 16.04 ;
ce serveur est en debian 9 ;
capture d’écran 2017-09-21 a 16 48 32

AdoDB vs PDO

Pour de meilleurs performances il serait préférable de migrer la couche d'abstraction de la base de données de AdoDB vers PDO

Parse error: syntax error /lodel/scripts/func.php on line 1439

Version master
Durant l'installation j'ai une erreur de syntaxe php, que j'ai corrigé en local pour passer l'étape

Parse error: syntax error, unexpected '[' in /var/www/tomboul/lodel/lodel/scripts/func.php on line 1439
extrait de code

        $params = [
                'secret'    => $recaptche_privatekey,
                'response'  => $code
        ];

suggestion de correction

        $params = array(
                'secret'    => $recaptche_privatekey,
                'response'  => $code
        );

Lodel et son futur

Bonjour,
Je gère le site revue-texto.net qui tourne sous Lodel.
La question d'une mise à jour se pose, avec comme alternative de rester sous Lodel ou de passer sous un CMS plus actif en terme de mises à jour et surtout de compatibilité avec des versions récentes (optimisées et sécurisées) de l'environnement.
Avez-vous une roadmap active ? Quel est le futur de Lodel ?
Bien à vous,
Frédéric

Problème de multilinguisme

Bonjour,

Je rencontre un problème avec le 'Multilinguisme'.

Je suis sur une machine ubuntu 18.04.1, PHP 7.0.33-8+ubuntu18.04.1.

J’installe lodel avec "git clone https://github.com/OpenEdition/lodel.git".

Je crée un site en utilisant "Modèle Editorial OEJ" comme modèle éditorial.

Ensuite je me rends sur la page d'accueil de mon site avec un autre navigateur en mode non identifié.

Et je teste le multilinguisme (https://github.com/OpenEdition/lodel/wiki/Lodelscript#multilinguisme point 4).

http://php70.example.com/sitedetest/index.php?lang=en
http://php70.example.com/sitedetest/index.php?lang=es

Mais rien ne change, aucun mot n'est traduit.

D'avance merci pour votre aide.

Fermeture Servoo ?

Bonjour,
On m'a alerté ce matin de l'impossibilité d'importer un article dans notre plateforme lodel 0.9. A tout hasard, auriez-vous fermé le SERVOO (c'était prévu pour juin) ? Ou est-ce un pb "passager" ?
Bien cordialement.

Dimensionner une vignette à partir de sa largeur

Contrairement à ce que dit la doc Lodelscript (ici) l'argument du filtre vignette() ne correspond pas à la largeur de la vignette calculée mais à la taille de son plus grand côté.

Voir la fonction resize_image dans

function resize_image($taille, $src, &$dest)

qui est appelée ici :

if (!resize_image($width, $text, $vignettefile))

Or comme la plupart des couvertures sont au format portrait, dans la plupart des situations c'est plutôt la hauteur qui détermine la taille de la vignette calculée.

Pour régler ça on peut envisager un deuxième paramètre sur le modèle du filtre image_reduire de Spip : https://www.spip.net/fr_article6364.html

BOURRE DE BUG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

tout est dans le titre,
les procédures d'installation sont bourrées de bug !!!
est ce fait exprès ??????????
ils sont parfois tellement gros qu'on se le demande ...
la liste est tellement longue, si je la déploie ici et que personne ne répond (ce qui semble être le cas), ce long et fastidieux travail que j'aurais pourtant bien voulu faire ne servira à rien ...

1 TRES IMPORTANT : il faut php5.5 mini et non php5.x 'du coup j'ai fermé toutes les "issue" précédement signalées)

j'ai corrigé des plantages dans l'importation de modèle qui n'importait rien sans aucun message d'erreur
J'ai déjà modifié des dizaine d'include non résolu ...
la documentation est totalement incomplète ...
presque tous les chapitres sont en cours de rédaction
Je ne peux même pas savoir si j'ai correctement fait l'installation, et ce n'est pas le premier package que j'installe !!!! (je connais très bien prestashop ....)

je suis d'accord pour suivre les règles inhérentes aux logiciels libres et partagés, je suis prêt à y participer mais la communication est NULLE ça fait 26 jours que j'ai laissé des messages ici et AUCUNE RÉPONSE !!!

Si on n'est plus en mesure ou qu'on a plus la capacité de présenter un logiciel en mode partage sur Github alors il faut soit l'enlever soit le signaler, en somme faire le ménage ....

Pb https

Bonjour,

Nous sommes en train de mettre en place Lodel pour la pré-production et nous rencontrons un problème avec le https. J'ai pu faire l'installation en mode sécurisé, par contre après installation, lors de mes tentatives de connexion/déconnexion à l'admin, je tombais sur une page blanche avec l'erreur suivante :

Bad Request

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.

Le "https" était enlevé de l'url et apparaissait à la place un ":443" à la fin de l'url...

Nous avons désactivé le https mais souhaiterions pouvoir le mettre en place : avez-vous des conseils ? La mise en place du https chez OpenEdition a-t-elle nécessité des adaptations du code de Lodel ?

Cordialement.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.