depuis le passage de spip3.0 à 3.1, j’ai quelques problèmes dont celui-ci :
Sur la page publique d’ajout d’événement l’ajout d’un événement ne pose pas de problème si je suis connecté au site. Pour un visiteur lembda non connecté, ça prend en compte l’événement ajouté (c’est le principal) mais ça affiche un vilain message d’erreur : : Illegal string offset ‹ id_auteur › in on line Or je ne vois pas trop le rapport avec la section concernée du fichier en cause (la ligne 70 est la dernière, mise en gras) function medias_post_insertion($flux) { $objet = objet_type($flux[‹ args ›][‹ table ›]); $id_objet = $flux[‹ args ›][‹ id_objet ›]; include_spip(‹ inc/autoriser ›); if (autoriser(‹ joindredocument ›, $objet, $id_objet) ) { J’ai essayé un tas de configurations différentes des plugins autorité et crayon, sans résultat. Une idée ? Merci, Dès que ça c’est résolu je vous pose une autre colle. Ou peut-être que je vais repasser à spip3.0 si je ne m’en sors pas … Etienne
J'ai regardé ta page car je ne suis jamais arrivée à inclure un
formulaire de proposition d’événement qui fonctionne..
Donc tu es bien plus avancé que moi.
Ceci dit cela ne me parait pas normal d'avoir en dessous du formulaire :
",}"
dd
Le Mon, 20 Feb 2017 20:01:15 +0100, Etienne a écrit :
Bonjour,
depuis le passage de spip3.0 à 3.1, j'ai quelques problèmes dont
celui-ci :
Sur la page publique d'ajout d'événement Ajouter un événement - Un Autre Cantal l'ajout d'un événement ne
pose pas de problème si je suis connecté au site.
Pour un visiteur lembda non connecté, ça prend en compte l'événement
ajouté (c'est le principal) mais ça affiche un vilain message d'erreur :
*Warning*: Illegal string offset 'id_auteur' in
*/var/www/alternc/p/peupleculture15/www/unautrecantal.fr/plugins-dist/
medias/medias_pipelines.php*
on line *70*
Or je ne vois pas trop le rapport avec la section concernée du fichier
en cause (la ligne 70 est la dernière, mise en gras)
function medias_post_insertion($flux) {
$objet = objet_type($flux['args']['table']); $id_objet =
$flux['args']['id_objet']; include_spip('inc/autoriser');
if (autoriser('joindredocument', $objet, $id_objet)
* and $id_auteur =
intval($GLOBALS['visiteur_session']['id_auteur'])*
) {
J'ai essayé un tas de configurations différentes des plugins autorité et
crayon, sans résultat.
Une idée ?
Merci,
Dès que ça c'est résolu je vous pose une autre colle. Ou peut-être que
je vais repasser à spip3.0 si je ne m'en sors pas ...
je mets ci-dessous une piste que m’a donnée Vincent en privé et qui fonctionne:
[…] Donc, ça pourrait valoir le coup de vérifier si $GLOBALS[‹ visiteur_session ›][‹ id_auteur ›] est défini. une idée donc, définir $id_auteur dans tous les cas : $id_auteur = isset($GLOBALS[‹ visiteur_session ›][‹ id_auteur ›])?intval($GLOBALS[‹ visiteur_session ›][‹ id_auteur ›]):false;
ou plus propre . if ( isset($GLOBALS[‹ visiteur_session ›][‹ id_auteur ›])) { $id_auteur = $GLOBALS[‹ visiteur_session ›][‹ id_auteur ›]; } else { $id_auteur = false; } puis : if (autoriser(‹ joindredocument ›, $objet, $id_objet)and $id_auteur ) { […] Ainsi$id_auteurest toujours défini ( bien que valant ‹ false › si utilisateur pas logué ). Cela devrait supprimer le warning qui au demeurant n’est pas bien méchant."
Effectivement ça fonctionne, même si je ne comprends pas trop pourquoi. Merci à toi Vincent.
Par contre je ne sais pas comment intégrer cette modif de façon pérenne et pour l’instant c’est directement le fichier plugin-dist/medias/medias_pipelines.php qui est surchargé. Ca risque de passer à la trappe sur une prochaine mise à jour. Je signale donc aux développeurs … (c’est ici ou ailleurs ?)
Pour le "} en bas de page, j’ai déjà posé la question et reçu des pistes mais que je n’ai pas su exploiter. Ca je l’ai toujours eu, même avant la mise à niveau vers spip3.1.
Ensuite, dd, si tu veux, je t’envoie en privé mon squelette et la liste de mes plugins. A propos, il existe une façon de sortir un fichier qui liste les plugins pour s’en souvenir au cas où ?
je mets ci-dessous une piste que m'a donnée Vincent en privé et qui
fonctionne:
[...]
/Donc, ça pourrait valoir le coup de vérifier si
$GLOBALS['visiteur_session']['id_auteur'] est défini. //
////une idée donc, définir $id_auteur dans tous les cas ://
////$id_auteur =
isset($GLOBALS['visiteur_session']['id_auteur'])?intval($GLOBALS['visiteur_session']['id_auteur']):false;//
////
//ou plus propre .//
//if ( isset($GLOBALS['visiteur_session']['id_auteur'])) {//
//$id_auteur = $GLOBALS['visiteur_session']['id_auteur'];//
//}//
//else {//
//$id_auteur = false;//
//}//
////puis ://
// if (autoriser('joindredocument', $objet, $id_objet) //*and
$id_auteur*//
// ) {//
//[...]//
////Ainsi //*$id_auteur *//est toujours défini ( bien que valant 'false'
si utilisateur pas logué ).//
////Cela devrait supprimer le warning qui au demeurant n'est pas bien
méchant/*/."/
*
Effectivement ça fonctionne, même si je ne comprends pas trop pourquoi.
Merci à toi Vincent.
Par contre je ne sais pas comment intégrer cette modif de façon pérenne
et pour l'instant c'est directement le fichier
plugin-dist/medias/medias_pipelines.php qui est surchargé. Ca risque de
passer à la trappe sur une prochaine mise à jour. Je signale donc aux
développeurs ... (c'est ici ou ailleurs ?)
Ouvre un ticket, c'est le plus sur moyen que cela soit fait (on pourrait du rester commiter directement sur la zone, mais je suis pas en état de comprendre le problème)
Pour le "} en bas de page, j'ai déjà posé la question et reçu des pistes
mais que je n'ai pas su exploiter. Ca je l'ai toujours eu, même avant la
mise à niveau vers spip3.1.
Ensuite, dd, si tu veux, je t'envoie en privé mon squelette et la liste
de mes plugins. A propos, il existe une façon de sortir un fichier qui
liste les plugins pour s'en souvenir au cas où ?