Bonjour,
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
Fichier commande.php
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 HTML:
<?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>bill@gate.fr</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>
Fichier commande.php
Code PHP:
<?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:bill@gate.fr?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; } }
Commentaire