J'ai un module qui obtient le code HTML écrit par l'utilisateur sur le backend, et le module devrait extraire cette chaîne HTML et l'afficher sur la page, mais au lieu de cela, il imprime la chaîne HTML au lieu de la restituer.
Donc, je charge mon module dans une page spécifique et à une position spécifique, et il devrait restituer le code HTML, mais plutôt imprimer la chaîne.
Voici mon code:
mod_publicidade.php
<?php
defined('_JEXEC') or die;
$html = $params->get('html');
tmpl/default.php
<?php
defined('_JEXEC') or die;
echo $html;
mod_publicidade.xml
<?xml version="1.0" encoding="utf-8"?>
<extension
type="module"
version="3.1"
client="site"
method="upgrade">
<name>Publicidade</name>
<author>Roger</author>
<creationDate>2015</creationDate>
<copyright>Copyright (C) 2015 All rights reserved.</copyright>
<license>GNU General Public License</license>
<authorEmail>[email protected]</authorEmail>
<authorUrl>www.rogcg.com</authorUrl>
<version>1.0.0</version>
<description>Criar página de publicidade.</description>
<files>
<filename module="mod_publicidade">mod_publicidade.php</filename>
<folder>tmpl</folder>
<filename>mod_publicidade.xml</filename>
</files>
<config>
<fields name="params">
<fieldset name="basic">
<field name="html" type="textarea" rows="10" cols="30" filter="raw"/>
</fieldset>
</fields>
</config>
</extension>
Il n'y a rien de mal avec le plugin lui-même, mis à part que vous n'appelez pas réellement le modèle:
require JModuleHelper::getLayoutPath('mod_publicidade');.
D'après ce que vous décrivez, le code HTML n'est probablement pas correctement enregistré dans la base de données, peut-être un filtre HTML.