J'avais un bouton Commande qui me permettait de saisir le prix dans un article afin que le visiteur puisse passer la commande par mail.
Ce plugin fonctionnait bien avec Joomla 3.9 mais ne fonctionne plus avec Joomla 4.
Je recherche un peu d'aide pour le modifier.
Fichier commande.xml
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<extension version="3.4" type="plugin" method="upgrade" group="editors-xtd">
<name>Commande</name>
<author>Bill</author>
<creationDate>December 2015</creationDate>
<copyright>Copyright (C) 2005 - 2015 Open Source Matters. All rights reserved.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>[email protected]</authorEmail>
<authorUrl>www.thebigboss.fr</authorUrl>
<version>1.0.0</version>
<description>"Creates a Button which inserts price typed and link mailto commande includes article title subject"
</description>
<files>
<filename plugin="commande">commande.php</filename>
</files>
</extension>
Code: Select all
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.plugin.plugin' );
class plgButtonCommande extends JPlugin
{
function onDisplay($name)
{
// Récupére l'id de l'article courant
$id = JRequest::getInt('id');
// Get a db connection.
$db= JFactory::getDbo(); //JFactory de l'objet JDatabase
// Requête pour obtenir le titre de l'article en fonction de l'id
$query= 'SELECT `title` FROM #__content WHERE `id`='.$id;
$db->setQuery($query);
$result= addslashes($db->loadResult());
if ((!isset($result)) or ($result == ""))
{
echo "Titre inconnu";
$titre= " ";
} else {
$tab2= array();
$tab2= str_split($result,1);
$titre= implode($tab2);
echo $titre;
}
$titre = JText::_($titre, true);+
$js = "
var titre = '$titre';
//alert(titre); //test
//boîte de saisie du prix, puis
// insère le code dans la zone de l'éditeur
function xtdCommandeClick(editor)
{
prix = prompt('Tapez le prix de l\'article [ex: 123,45 -sans euro-]');
//alert(prix); //test
prix2 = '<p style=\"text-align:left; color:#FF0066; font-weight:bold; font-size:1.3em;\"><em> ' + prix + ' € ht</em></p>';
txt = '<p style=\"text-align:left;\"><a href=\"mailto:[email protected]?subject=Commande: '+titre+' - '+prix+' € ht\"><img src=\"images/design/commande.gif\" alt=\"Commande\" title=\"Commande par mail\" /></a></p>';
if (!txt) return;
jInsertEditorText(prix2+txt, editor);
}";
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($js);
$button = new JObject;
$button->modal = false;
$button->class = 'btn';
$button->link = '#';
$button->text = JText::_('Commande');
$button->name = 'smiley-2';
//code Js appelé lors du clic
$button->onclick = 'xtdCommandeClick(\''.$name.'\'); return false;';
return $button;
}
}