Vous n'êtes pas identifié(e).
ATTENTION
Pages : 1
Discussion fermée
#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.11
#~ Url du site : local
#~ Hébergeur / Soft : lamp php 5.3.27
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.11
#~ Installed Modules:
#~ CMSMailer: 5.2.2
#~ CMSPrinting: 1.0.5
#~ FileManager: 1.4.5
#~ MenuManager: 1.8.6
#~ MicroTiny: 1.2.7
#~ ModuleManager: 1.5.8
#~ News: 2.14.4
#~ Search: 1.7.11
#~ ThemeManager: 1.1.8
#~ OpenStatisticsCommunity: 0.2.0
#~ TemplateExternalizer: 1.3
#~ Archiver: 0.2.4
#~ TinyMCE: 2.9.11
#~ FrontEndUsers: 1.18.1
#~ CGExtensions: 1.31
#~ CGCalendar: 1.10.0.1
#~ CustomContent: 1.8.3
#~ FormBuilder: 0.7.3
#~ NewsSlides: 1.2
#~ JQueryTools: 1.1.1
#~ CGContentUtils: 1.3.3
#~ Showtime: 3.2
#~ Statistics: 1.1.3
#~ CGFeedMaker: 1.0.16
#~ CGJobMgr: 1.2.7
#~ NMS: 2.5.6
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ max_upload_size: 100000000
#~ url_rewriting: none
#~ page_extension: .html
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.27
#~ md5_function: On (True)
#~ gd_version: 2
#~ tempnam_function: On (True)
#~ magic_quotes_runtime: Off (False)
#~ E_STRICT: 2048
#~ E_DEPRECATED: 8192
#~ memory_limit: 1024M
#~ max_execution_time: 1200
#~ output_buffering: 4096
#~ safe_mode: Off (False)
#~ file_uploads: On (True)
#~ post_max_size: 100M
#~ upload_max_filesize: 100M
#~ session_save_path: /tmp (0777)
#~ session_use_cookies: On (True)
#~ xml_function: On (True)
#~ xmlreader_class: On (True)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.0.77
#~ Server Db Grants: Found a "GRANT ALL" statement that appears to be suitable
#~ Server Time Diff: No filesystem time difference found
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Salut à tous,
Nous avons migré de la version 1.10.3 à la dernière version.
Nous avons des menus avec des balises {php} et voici l'erreur :
Error: at line 62 in file /usr/local/apache/htdocs/nmtripy/lib/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:
Syntax error in template "globalcontent:menu" on line 62 "
HOME
" unknown tag "echo"
#0 /usr/local/apache/htdocs/nmtripy/lib/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php(575): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown tag "ec...', 62)
#1 /usr/local/apache/htdocs/nmtripy/lib/smarty/libs/sysplugins/smarty_internal_templateparser.php(2383): Smarty_Internal_TemplateCompilerBase->compileTag('echo', Array)
#2 /usr/local/apache/htdocs/nmtripy/lib/smarty/libs/sysplugins/smarty_internal_templateparser.php(3093): Smarty_Internal_Templateparser->yy_r37()
#3 /usr/local/apache/htdocs/nmtripy/lib/smarty/libs/sysplugins/smarty_internal_templateparser.php(3191): Smarty_Internal_Templateparser->yy_reduce(37)
#4 /usr/local/apache/htdocs/nmtripy/lib/smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php(111): Smarty_Internal_Templateparser->doParse(25, ';')
#5 /usr/local/apache/htdocs/nmtripy/lib/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php(273): Smarty_Internal_SmartyTemplateCompiler->doCompile('??global $gCms;...')
#6 /usr/local/apache/htdocs/nmtripy/lib/smarty/libs/sysplugins/smarty_internal_template.php(186): Smarty_Internal_TemplateCompilerBase->compileTemplate(Object(Smarty_Internal_Template))
#7 /usr/local/apache/htdocs/nmtripy/lib/smarty/libs/sysplugins/smarty_internal_templatebase.php(149): Smarty_Internal_Template->compileTemplateSource()
#8 /usr/local/apache/htdocs/nmtripy/lib/classes/class.Smarty_CMS.php(326): Smarty_Internal_TemplateBase->fetch('globalcontent:m...', 'p15', NULL, NULL, false, false, false)
#9 /usr/local/apache/htdocs/nmtripy/plugins/function.global_content.php(23): Smarty_CMS->fetch('globalcontent:m...')
#10 /usr/local/apache/htdocs/nmtripy/tmp/templates_c/e47747a9d075f96463f3d893a106f66f740181e5.tpl_body.23.php(27): smarty_function_global_content(Array, Object(Smarty_Internal_Template))
#11 /usr/local/apache/htdocs/nmtripy/lib/smarty/libs/sysplugins/smarty_internal_templatebase.php(182): content_545a2c635bbc69_10240138(Object(Smarty_Internal_Template))
#12 /usr/local/apache/htdocs/nmtripy/lib/classes/class.Smarty_CMS.php(326): Smarty_Internal_TemplateBase->fetch('tpl_body:23', 'p15', NULL, NULL, false, false, false)
#13 /usr/local/apache/htdocs/nmtripy/index.php(240): Smarty_CMS->fetch('tpl_body:23')
#14 {main}
le echo se fait entre les balises {php} {/php}
Avez-vous une idée ?
Merci à vous.
Edit : Je précise que normalement, cela devrait fonctionner vu que vous utilisez SmartyBC et il y a un registerPlugins('block', 'php', 'smarty_php_tag').
J'ai fait un var_dump dans cette function et elle n'est pas appelée. J'imagine qu'il y a un problème suite à votre override ?
Dernière modification par Steve (06/11/2014 09:31:39)
Hors ligne
la réponse est dans ta question : " unknown tag "echo"
tu as une balise echo inconnue
http://wiki.cmsmadesimple.fr/wiki/Udt_base
http://docs.cmsmadesimple.org/tags/user … ting-a-udt
et je déplace dans le bon forum Modules, Tags
J-C Etiemble Tutoriels v 2.2.x
Hors ligne
Salut,
Merci pour la réponse rapide mais echo n'est pas une balise mais une fonction php :
Admin => Content => Global Content Blocks
Menu :
[== Indéfini ==]
{php}
global $gCms;
$manager =& $gCms->GetHierarchyManager();
$var = 'root_page_id';
if( isset($params['assign']) && $params['assign'] != '' )
{
$var = $params['assign'];
}
$result = "NO RESULT";
$thisPage = $gCms->variables['content_id'];
$currentNode = &$manager->sureGetNodeById($thisPage);
while( isset($currentNode) && $currentNode->getLevel() >= 0 )
{
$currentContent =& $currentNode->getContent();
$result = $currentContent->Hierarchy();
$currentNode =& $currentNode->getParentNode();
}
/*
echo $result;
*/
switch ($result) {
case "":
$home = true;
break;
case 1:
$home = true;
break;
case 2:
$project = true;
break;
case 3:
$partners = true;
break;
case 4:
$library = true;
break;
case 5:
$contact = true;
break;
default:
$home = true;
break;
}
/*
echo $gCms->variables['page_name'];
*/
{/php}
<div id="header_bottom">
<ul class="nav">
<li ><a href="index.php?page=home" class="bouton_menu{php} if ($home == true){echo "_current"; } {/php}" onmouseover ="javascript:ak_hidelayer('sm_1');ak_hidelayer('sm_2');ak_hidelayer('sm_3')" >HOME</a></li>
<li><a href="index.php?page=project" class="bouton_menu{php} if ($project == true){echo "_current"; } {/php}" onmouseover ="javascript:ak_showlayer('sm_3');ak_hidelayer('sm_1');ak_hidelayer('sm_2')">PROJECT</a>
<ul class="submenu" id="sm_3" onmouseout="ak_hidelayer('sm_3')" >
<li onmouseover ="javascript:ak_showlayer('sm_3')"><a href="index.php?page=committees">Management Committees</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_3')"><a href="index.php?page=project">MIP-DILI Project</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_3')"><a href="index.php?page=work-package-1">Work package 1</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_3')"><a href="index.php?page=work-package-2">Work package 2</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_3')"><a href="index.php?page=work-package-3">Work package 3</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_3')"><a href="index.php?page=work-package-4">Work package 4</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_3')"><a href="index.php?page=work-package-5">Work package 5</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_3')"><a href="index.php?page=work-package-6">Work package 6</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_3')"><a href="index.php?page=work-package-7">Work package 7</a></li>
</li>
</ul>
<li ><a href="index.php?page=partners"class="bouton_menu{php} if ($partners == true){echo "_current"; } {/php}" onmouseover="javascript:ak_showlayer('sm_1');ak_hidelayer('sm_2');ak_hidelayer('sm_3')" >PARTNERS</a>
<ul class="submenu" id="sm_1" onmouseout="ak_hidelayer('sm_1')">
<li onmouseover ="javascript:ak_showlayer('sm_1')"><a href="index.php?page=partners&menu=efpia">EFPIA Members</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_1')"><a href="index.php?page=partners&menu=academics">Academics</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_1')"><a href="index.php?page=partners&menu=smes">SMEs</a></li>
<!-- <li><a href="index.php?page=job-announcements">Job Announcements</a></li>-->
</ul>
</li>
<li ><a href="index.php?page=library" class="bouton_menu{php} if ($library == true){echo "_current"; } {/php}" onmouseover="javascript:showlayer('sm_2');ak_hidelayer('sm_1');ak_hidelayer('sm_3')" >LIBRARY</a>
<ul class="submenu" id="sm_2" onmouseout="ak_hidelayer('sm_2')">
<li onmouseover ="javascript:ak_showlayer('sm_2')"><a href="index.php?page=library">News & Publications</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_2')"><a href="index.php?page=archives">Archives</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_2')"><a href="index.php?page=glossary">Glossary</a></li>
<li onmouseover ="javascript:ak_showlayer('sm_2')"><a href="index.php?page=links">Links</a></li>
</ul>
</li>
<!-- <li ><a href="index.php?page=news" class="bouton_menu{php} if ($news == true){echo "_current"; } {/php}">NEWS</a></li>-->
<!-- <li><a href="index.php?page=events" class="bouton_menu{php} if ($events == true){echo "_current"; } {/php}">EVENTS</a></li>-->
<li ><a href="index.php?page=contact" class="bouton_menu{php} if ($contact == true){echo "_current"; } {/php}" onmouseover ="javascript:ak_hidelayer('sm_1');ak_hidelayer('sm_2');ak_hidelayer('sm_3')">CONTACT</a></li>
</ul>
</div>
Les erreurs viennent de ceci :
{php} if ($home == true){echo "_current"; } {/php}
alors que normalement :
SmartyBC.class.php :
[== Indéfini ==]
public function __construct(array $options=array())
{
parent::__construct($options);
// register {php} tag
$this->registerPlugin('block', 'php', 'smarty_php_tag');
}
/**
* Smarty {php}{/php} block function
*
* @param array $params parameter list
* @param string $content contents of the block
* @param object $template template object
* @param boolean &$repeat repeat flag
* @return string content re-formatted
*/
function smarty_php_tag($params, $content, $template, &$repeat)
{
eval($content);
return '';
}
Le PHP devrait être eval, non parsé.
Hors ligne
{php} if ($home == true){echo "_current"; } {/php}
ça se trouve à quel endroit ce code
J-C Etiemble Tutoriels v 2.2.x
Hors ligne
Dans un block de contenu, ici : Admin => Content => Global Content Blocks
Cela fonctionnait sans souci, avant le passage vers la nouvelle version
Hors ligne
Cela fonctionnait sans souci, avant le passage vers la nouvelle version
ha oui mais il y a eu des modifications
lire les 2 liens donnés sur les balises plus haut
J-C Etiemble Tutoriels v 2.2.x
Hors ligne
Bonjour,
utiliser une UDT.
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.
C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
Hors ligne
{php}{/php} supprimé en 1.11 voir le changelog Removed the use_smarty_php_tags config variable
et lire http://www.cmsmadesimple.fr/forum/viewtopic.php?id=5350
J-C Etiemble Tutoriels v 2.2.x
Hors ligne
Pas mieux que mes collègues : il te faut passer par une balise utilisateur. En gros tu copie colle le contenu de l'ancien {php}{/php} et tu adapte le code
exemple :
avant : {php} if ($home == true){echo "_current"; } {/php}
après dans l'udt "toto" : if ($home == true){echo "_current"; }
et l'appel à l'udt dans ton gabarit : {toto}
+sécurisé
+propre pour la factorisation de code
++ simple car 100% php et non plus un mix entre php / smarty
twitter - Chez moi - Astuces & Tuto cmsms - Wiki CmsMadeSimple
Mes modules :
» Comptabilisez les clics sur vos liens
» Petites annonces immobilières
» Moteur de chat/discussion/shoutbox full Ajax
» Générez automatiquement les miniatures de site web
» Laissez vos visiteurs uploader des images ou fichiers sur votre site
Hors ligne
Salut à vous,
Cela fonctionne, un très très grand merci pour votre aide et la rapidité !
Bonne journée,
Steve.
Hors ligne
Pages : 1
Discussion fermée