THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour , dans le plugin Messagecmd le client laisse un message , jusque là aucuns soucis (oui enfin surtout après votre aide) Mais comment faire en sorte que le message soumis reste identique à celui tapé par le client ?

Tel qu'il est à l'heure actuel le client tape :

Menu
déco
restau

et le résultat en BO : menu déco restau


Mon code sur la page de soumission

  <form method="post" action="#localhost/prog/?fond=commande&action=transport&id=#COMMANDE_TRANSPORT" id="formulaireMessage">
    <label for="texte_expediteurcmd"></label>
    
<label for="texte_messagecmd">Client </label>
    <textarea id="texte_messagecmd" name="texte_messagecmd" maxlength="200" rows="4" >#MESSAGECMD</textarea>
    
     <label for="texte_destinatairecmd">Menu </label>
    <textarea id="texte_destinatairecmd" name="texte_destinatairecmd" maxlength="200" rows="4">#DESTINATAIRECMD</textarea><br /><br/>
	
    <button type="submit" class="boutonMemeLigneQuInput"><span>OK</span></button>
</form> 

Offline


Coté plugin, type de champs de ta base de donnée, fonction php smile


Juste pour t'embêter tongue

Offline


Oh qu'il est méchant !!!!! Mais si je pige bien y a une piste a voir par là !

Donc ça doit se situer là ?: http://php.net/manual/fr/ref.strings.php

Last edited by lolo17600 (24-06-2013 16:34:40)

Offline


$texte = nl2br($texte);

Allez je t'aide un peu, et puis google reste ton ami quand tu galère avec une fonction.

Offline


j'a inséré $texte = nl2br($texte);  dans le code de la function action du plugin mais toujours pareil , sur google certain dise que c'est à insérer en <textarera< et </textarea> d'autres dans le php , suis perdu là

Offline


if ( $_SESSION['texte_messagecmd2_client_id'] == $_SESSION['navig']->client->id ) {
				if (get_magic_quotes_gpc()) { // XXX support magic quotes ... ~ yoann@VLT, 20111012_1617
                                        $res = nl2br($res);
					$res = str_replace("#MESSAGECMD2", stripcslashes( $_SESSION['texte_messagecmd2']), $res);
					$res = str_replace("#DESTINATAIRECMD2", stripcslashes($_SESSION['texte_destinatairecmd2']), $res);
					$res = str_replace("#EXPEDITEURCMD2", stripcslashes($_SESSION['texte_expediteurcmd2']), $res);
				} else {
                                        $res = nl2br($res);
					$res = str_replace("#MESSAGECMD2", $_SESSION['texte_messagecmd2'], $res);
					$res = str_replace("#DESTINATAIRECMD2", $_SESSION['texte_destinatairecmd2'], $res);
					$res = str_replace("#EXPEDITEURCMD2", $_SESSION['texte_expediteurcmd2'], $res);
				}
			} else {
                                $res = nl2br($res);
				$res = str_replace("#MESSAGECMD2", "", $res);
				$res = str_replace("#DESTINATAIRECMD2", "", $res);
				$res = str_replace("#EXPEDITEURCMD2", "", $res);
			}

Sans certitude

Offline


Oui j'ai fait aussi et j'obtiens des saut de ligne sur tous les textes : menu , entete ....

Offline


Ce que tu veux c'est des sauts de ligne non ?

Offline


Oui mais uniquement dans le texte soumis par le plugin message cmd pas sur tout le site et avec ce code ça en fait partout : dans le menu dans le panier .....

Offline


function aprescommande($commande){
			// XXX test id client pour autoriser partage d'un même ordi par plusieurs clients ~ yoann@VLT, 20111012_1631
			if($_SESSION['texte_messagecmd2'] && ($_SESSION['texte_messagecmd2_client_id'] == $_SESSION['navig']->client->id) ){
				$msg = new Messagecmd2();
                        $msg = nl2br($msg);
		    	$msg->commande = $commande->id;

	    		$msg->message2 = $_SESSION['texte_messagecmd2'];
	    		$msg->destinataire2 = $_SESSION['texte_destinatairecmd2'];
	    		$msg->expediteur2 = $_SESSION['texte_expediteurcmd2'];

				$msg->add();

				// XXX vider les variables de session ~ yoann@VLT, 20111012_1639
				$_SESSION['texte_messagecmd2_client_id'] = "";
				$_SESSION['texte_messagecmd2'] = "";
				$_SESSION['texte_destinatairecmd2'] = "";
				$_SESSION['texte_expediteurcmd2'] = "";
			}
		}

Désolé, c'est un peu chiant de jongler entre diffèrent post aussi smile

La même chose sans incertitude.

Offline


Surtout ne t'excuse pas vu le nombre de fois où tu me sorts de la m... , je peux bien avoir des buggs !!!!

et là :

Attention : nl2br () attend paramètre 1 pour être une chaîne, un objet donné dans C: \ xampp \ htdocs \ prog \ Client \ plugins \ \ messagecmd Messagecmd.class.php on line 100

Warning : Création d'objet par défaut de la valeur vide dans C: \ xampp \ htdocs \ prog \ Client \ plugins \ \ messagecmd Messagecmd.class.php sur la ligne 101

de Fatal error : Call to undefined méthode stdClass :: add () dans C: \ xampp \ htdocs \ prog \ client \ plugins \ messagecmd \ Messagecmd . class.php on line 107

Offline


nl2br($_SESSION['texte_messagecmd2'];

change à chaque ligne

Offline


ceci :
if($_SESSION['texte_messagecmd'] && ($_SESSION['texte_messagecmd_client_id'] == $_SESSION['navig']->client->id) ){
                $msg = new Messagecmd();
                    $msg->commande = $commande->id;

                $msg->message = nl2br($_SESSION['texte_messagecmd'];
                $msg->destinataire =nl2br($_SESSION['texte_destinatairecmd'];
                $msg->expediteur = nl2br($_SESSION['texte_expediteurcmd'];

                $msg->add();

                // XXX vider les variables de session ~ yoann@VLT, 20111012_1639
                nl2br($_SESSION['texte_messagecmd_client_id'] = "";
                nl2br($_SESSION['texte_messagecmd'] = "";
                nl2br($_SESSION['texte_destinatairecmd'] = "";
                nl2br($_SESSION['texte_expediteurcmd'] = "";
            }
donne :
Parse error : syntax error, unexpected ';' dans C: \ xampp \ htdocs \ prog \ Client \ plugins \ \ messagecmd Messagecmd.class.php on line 102

Offline


non juste sur


$msg->message2 = $_SESSION['texte_messagecmd2'];
                $msg->destinataire2 = $_SESSION['texte_destinatairecmd2'];
                $msg->expediteur2 = $_SESSION['texte_expediteurcmd2'];

Offline


donc ça :

function aprescommande($commande){
            // XXX test id client pour autoriser partage d'un même ordi par plusieurs clients ~ yoann@VLT, 20111012_1631
            if($_SESSION['texte_messagecmd'] && ($_SESSION['texte_messagecmd_client_id'] == $_SESSION['navig']->client->id) ){
                $msg = new Messagecmd();
                    $msg->commande = $commande->id;

                $msg->message = nl2br($_SESSION['texte_messagecmd'];
                $msg->destinataire = nl2br($_SESSION['texte_destinatairecmd'];
                $msg->expediteur = nl2br($_SESSION['texte_expediteurcmd'];

                $msg->add();

                // XXX vider les variables de session ~ yoann@VLT, 20111012_1639
                ($_SESSION['texte_messagecmd_client_id'] = "";
                ($_SESSION['texte_messagecmd'] = "";
                ($_SESSION['texte_destinatairecmd'] = "";
                ($_SESSION['texte_expediteurcmd'] = "";
            }
        }

Et bien toujours pareil ! bon lissons tomber pour se soir , je suis chauve là....

Offline


Bon me voilà de retour de vacances et j'ai toujours se petit soucis !

Offline

Offline


Bon je patoge complet ! j'ai essayé avec echo str_replace("\n", "<br />", str_replace("\r\n", "<br />", $texte)); placé dans messagecmd.class.php . et rien , je cherche sur google mais j'avance pas plus

Offline


personne pour un coup de pouce sur ce coup là ? je me suis épilé tout le crane !

Offline


nl2br($_SESSION['texte_messagecmd'];

il manque la parenthèse fermante des appels à nl2br...

nl2br($_SESSION['texte_messagecmd']);


OpenStudio Toulouse

Offline


nickel roadster ! C'est la différence entre les pros et moi qui bidouille !

Par contre du coup j'ai des : <br/> qui apparaissent dans commande_details.php et non des sauts de ligne (sur facture.php c'est bien des retour à la ligne).

voilà ce que celà donne dans le bo dans commande_details.php :


Carotte<br /> beauf sauté<br /> pomme

Last edited by lolo17600 (24-07-2013 20:49:37)

Offline


Bonjour j'ai trouvé la solution  : dans messagecmd_admin_commandedetail.php il faut remplacer htmlspecialchars par html_entity_decode et là on a bien les retours à la ligne comme sur la facture .

merci Roadster pour ton aide