Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2152 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP8 et smarty5

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP8 et smarty5

n°2484782
jmsch
Posté le 17-11-2024 à 17:59:32  profilanswer
 

Bonjour,
je viens de reprendre mon site pour une mise à jour (PHP5 smarty 3) vers PHP8.3 avec smarty 5.4.
Je développe avec wampserveur 3.3.5
Je n'arrive pas à déclarer mon dossier plugins dans smarty
j'ai testé avec addPluginsDir et plugins_dir. et Testing plugins directory... n'a jamais été trouvé
J'utilise les plugins pour corriger quelques caractères mal interpreté principalement dans le configuration d'affichage des dates.  
Le site est en UTF8
 
Smarty Installation test...
Testing template directory...
C:\wamp64\www\site_pension\templates is OK.
Testing compile directory...
C:\wamp64\www\site_pension\templates_c is OK.
Testing plugins directory...
Testing cache directory...
C:\wamp64\www\site_pension\cache is OK.
Testing configs directory...
C:\wamp64\www\site_pension\configs\ is OK.
Tests complete.
 
Merci d'avance pour votre aider.
 

Code :
  1. require 'smarty-5.4.1/libs/Smarty.class.php';
  2. $smarty = new Smarty\Smarty;
  3. $smarty->setTemplateDir('C:/wamp64/www/site_pension/templates/');
  4. $smarty->setCompileDir('C:/wamp64/www/site_pension/templates_c/');
  5. $smarty->setCacheDir('C:/wamp64/www/site_pension/cache/');
  6. $smarty->setConfigDir('C:/wamp64/www/site_pension/configs/');
  7. $smarty->addPluginsDir('C:/wamp64/www/site_pension/smarty-5.4.1/libs/plugins');


mood
Publicité
Posté le 17-11-2024 à 17:59:32  profilanswer
 

n°2484785
mechkurt
Posté le 17-11-2024 à 19:37:52  profilanswer
 

Tu as essayé d'avoir des informations de débogages ?

Code :
  1. $smarty->error_reporting = E_ALL & ~E_NOTICE;
  2. $smarty->debugging = true;



---------------
D3
n°2484830
jmsch
Posté le 18-11-2024 à 08:25:32  profilanswer
 

oui j'ai essayé.
addExtension, addPluginsDir, plugins_dir, me retourne deprécié utiliser registerPlugin.
Dans tous les cas le test installation smarty "Testing Plugins directory" reste sans reponse et affichage d'une page blanche quand je tente d'utiliser le plugin
 
le plugin testé est  
function smarty_modifier_utf8_encode($string){return utf8_encode($string);}
{$smarty.now|date_format:"%A%e %B %Y"|utf8_encode}  j'utilise utf8_encode avec smarty3 et ça fonctionnait bien
 
J'ai comme l'impression que smarty ne trouve pas le plugin mais je ne vois pas quoi modifier.
J'ai rajouté dans smarty5/libs un dossier plugins,  comme il était prévédament dans smarty3.


Message édité par jmsch le 18-11-2024 à 08:29:19
n°2484840
mechkurt
Posté le 18-11-2024 à 10:50:56  profilanswer
 

Page blanche => probablement une erreur 500, regarde dans tes erreurs Apache et PHP au niveau de ton Winamp pour savoir a quoi ça peut être du, un chemin d'accès pas adapté à environnement Windows par exemple, les concepteurs de plugin ne s'embarrasse pas toujours d'un site avec des chemins en mode Windows ( \ au lieu de / )...


---------------
D3
n°2484844
jmsch
Posté le 18-11-2024 à 13:28:15  profilanswer
 

voici l'erreur dans php dû à |utf8_encode qui semble être introuvable.
Je pense que quelque chose m'échappe dans l'intégration des plugins dans smarty5.
pas d'erreur Apache
 
les 2 erreurs que j'ai dans php
[18-Nov-2024 12:31:05 UTC] PHP Fatal error:  Uncaught  --> Smarty: Plugin 'utf8_encode' not callable <--  
  thrown in C:\wamp64\www\site_pension\smarty-5.4.1\src\Smarty.php on line 753
 
[18-Nov-2024 13:59:25 Europe/Paris] PHP Fatal error:  Uncaught  --> Smarty Compiler: Syntax error in template "file:C:\wamp64\www\site_pension\templates\../include/date.tpl"  on line 3 "{$smarty.now|date_format:"%e %B %Y"|utf8_encode} <br/>" unknown modifier 'utf8_encode' <--  
  thrown in C:\wamp64\www\site_pension\include\date.tpl on line 3


Message édité par jmsch le 18-11-2024 à 14:00:42
n°2484846
rufo
Pas me confondre avec Lycos!
Posté le 18-11-2024 à 13:47:00  profilanswer
 

mechkurt a écrit :

Page blanche => probablement une erreur 500, regarde dans tes erreurs Apache et PHP au niveau de ton Winamp pour savoir a quoi ça peut être du, un chemin d'accès pas adapté à environnement Windows par exemple, les concepteurs de plugin ne s'embarrasse pas toujours d'un site avec des chemins en mode Windows ( \ au lieu de / )...


 :lol: Tu veux dire Wampserver plutôt :D


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2484847
mechkurt
Posté le 18-11-2024 à 13:57:11  profilanswer
 

Code :
  1. public function registerPlugin($type, $name, $callback, $cacheable = true) {
  2.  if (isset($this->registered_plugins[$type][$name])) {
  3.   throw new Exception("Plugin tag '{$name}' already registered" );
  4.  } elseif (!is_callable($callback) && !class_exists($callback)) {
  5.   throw new Exception("Plugin '{$name}' not callable" );
  6.  } else {
  7.   $this->registered_plugins[$type][$name] = [$callback, (bool)$cacheable];
  8.  }
  9.  return $this;
  10. }


https://github.com/smarty-php/smart [...] 9C1-L758C3
 
Peut être que les versions récente de Smarty sont maintenant compatible UTF8 sans avoir besoin de plugin (pacque bon utf8 c'est un peu la base depuis une vingtaine d'année :o ) ?
 
Tu as essayé de dire a Mysql que tu veux qu'il te sorte tes résultats venant de tes requêtes SQL en UTF8 (soit tu fait une requête SET NAMES 'utf8' soit tu précise le charset lors de l'instanciation de la connexion).
https://forum.phpfrance.com/framewo [...] 80270.html
 
Sino j'ai aussi vu ça mais c'est vieux : https://www.developpez.net/forums/d [...] -template/


Message édité par mechkurt le 18-11-2024 à 13:58:07

---------------
D3
n°2484848
mechkurt
Posté le 18-11-2024 à 13:57:43  profilanswer
 

rufo a écrit :

:lol: Tu veux dire Wampserver plutôt :D


Oui tout à fait.  :jap:  


---------------
D3
n°2484851
jmsch
Posté le 18-11-2024 à 14:43:17  profilanswer
 

C'est suivant cet exemple que j'ai corrigé l'affichage les dates dans smarty3
https://www.developpez.net/forums/d [...] -template/  
j'ai déjà précisé le charset lors de la connexion
 
Je rencontre le soucie des caractères uniquement dans l'affichage des  dates.  
J'ai aussi testé ça : {$date|date_format:"%A %e %B %Y"|to_charset:'UTF-8'} jeudi 12 d?cembre 2024  
 
Je ne vois vraiment pas ce qui bloque, surtout que j'ai les mêmes scriptes avec php7 et smarty3 et là pas de problème avec l'utilisation de {$date|date_format:"%A %e %B %Y"|utf8_encode} .
 
Je pense reellement que ça provient de ma déclaration du plugin dans smarty5. Je pense avoir bien suivi la doc ou alors quelques chose m'echappe.

n°2484852
rufo
Pas me confondre avec Lycos!
Posté le 18-11-2024 à 15:01:14  profilanswer
 

Le fichier texte contenant le code source du template serait pas enregistré en ISO-8859-1 par hasard ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le 18-11-2024 à 15:01:14  profilanswer
 

n°2484866
jmsch
Posté le 18-11-2024 à 17:10:15  profilanswer
 

L'ensemble de mes fichiers sont en utf8.
j'avais essayé" avec to_charset:utf-8 mais pas essayé avec from_charset.
Alors voilà ce qui semble fonctionner
{$date|date_format:"%A %e %B %Y"|from_charset:'ISO-8859-1'}
 
du coup pas besoin de plugins smarty
Merci pour votre aide.


Message édité par jmsch le 18-11-2024 à 17:10:50

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP8 et smarty5

 

Sujets relatifs
[Résolu] Comportement bizarre d'une fonction entre PHP5 et PHP8Pb lancement apache avec php8 pour uWamp
Plus de sujets relatifs à : PHP8 et smarty5


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR