editors-xtd plugin button

Tout ce qui concerne Joomla! 4.x

Moderators: Aidan38, sarki

Forum rules
Règles du forum
Locked
User avatar
jacfev
Joomla! Apprentice
Joomla! Apprentice
Posts: 27
Joined: Mon Sep 23, 2013 5:58 pm
Location: Picardie

editors-xtd plugin button

Post by jacfev » Thu Sep 09, 2021 9:05 am

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

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>
Fichier commande.php

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>&nbsp;&nbsp;' + prix + ' &euro;&nbsp;ht</em></p>';
			txt = '<p style=\"text-align:left;\"><a href=\"mailto:[email protected]?subject=Commande: '+titre+' - '+prix+' &euro; 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;
  }
}

Locked

Return to “J! 4.x - L'atelier!”