8768 sujets

Développement web côté serveur, CMS

Bonjour,

je dois réaliser un champ de recherche "société" coup de chance pour moi il en existe déjà pour les clients en générales, du coup je pensais copier le code en modifiant 2-3 choses mais ça ne fonctionne pas.

Je travail sur le CMS prestashop mais sur leur forum je n'ai pas trouvé d'aide.

Je pense que le code se trouve dans 2 documents différents une feuille .php et une feuille .tpl

début du fichier .tpl : ligne 51

$('#customer').typeWatch({
			captureLength: 1,
			highlight: true,
			wait: 100,
			callback: function(){ searchCustomers(); }
			});
		('#company').typeWatch({
			captureLength: 1,
			highlight: true,
			wait: 100,
			callback: function(){ searchCompanys(); }
			});


ensuite ligne 458

function searchCustomers()
	{
		$.ajax({
			type:"POST",
			url : "{$link->getAdminLink('AdminOrders')|escape:'html'}",
			async: true,
			dataType: "json",
			data : {
				ajax: "1",
				token: "{$token}",
				tab: "AdminOrders",
				action: "searchCustomers",
				customer_search: $('#customer').val()},
			success : function(res)
			{
				if(res.found)
				{
					var html = '<ul>';
					$.each(res.customers, function() {
						html += '<li class="customerCard"><div class="customerName"><a class="fancybox" href="{$link->getAdminLink('AdminCustomers')}&id_customer='+this.id_customer+'&viewcustomer&liteDisplaying=1">'+this.company+'<br/> '+this.firstname+' '+this.lastname+'</a><span class="customerBirthday"> '+((this.birthday != '0000-00-00') ? this.birthday : '')+'</span></div>';
						html += '<div class="customerEmail"><a href="mailto:'+this.email+'">'+this.email+'</div>';
						html += '<a onclick="setupCustomer('+ this.id_customer+');return false;" href="#" class="id_customer button">{l s='Choose'}</a></li>';
					});
					html += '</ul>';
				}
				else
					html = '<div class="warn">{l s='No customers found'}</div>';
				$('#customers').html(html);
				resetBind();
			}
		});
	}
	
	function searchCompanys()
	{
		$.ajax({
			type:"POST",
			url : "{$link->getAdminLink('AdminOrders')|escape:'html'}",
			async: true,
			dataType: "json",
			data : {
				ajax: "1",
				token: "{$token}",
				tab: "AdminCustomers",
				action: "searchCompanys",
				company_search: $('#company').val()},
			success : function(res)
			{
				if(res.found)
				{
					var html = '<ul>';
					$.each(res.companys, function() {
						html += '<li class="customerCard"><div class="customerName"><a class="fancybox" href="{$link->getAdminLink('AdminCustomers')}&id_customer='+this.id_customer+'&viewcustomer&liteDisplaying=1">'+this.company+'<br/> '+this.firstname+' '+this.lastname+' </a></div>';
						html += '<div class="customerEmail"><a href="mailto:'+this.email+'">'+this.email+'</div>';
						html += '<a onclick="setupCompany('+ this.id_customer+');return false;" href="#" class="id_customer button">{l s='Choose'}</a></li>';
					});
					html += '</ul>';
				}
				else
					html = '<div class="warn">{l s='No customers found'}</div>';
				$('#companys').html(html);
				resetBind();
			}
		});
	}



Enfin ligne 1081

<fieldset id="customer_part">
	<legend><img src="../img/admin/tab-customers.gif" />{l s='Customer'}</legend>
	<label>{l s='Search customers'}</label>
	<div class="margin-form">
		<input type="text" id="customer" value="" />
		<p>{l s='Search a customer by typing the first letters of his/her name'}</p>
		<a class="fancybox button" href="{$link->getAdminLink('AdminCustomers')|escape:'htmlall':'UTF-8'}&addcustomer&liteDisplaying=1&submitFormAjax=1#">
			<img src="../img/admin/add.gif" title="new"/><span>{l s='Add new customer'}</span>
		</a>
		<br/>
		<br/>
	</div>
	<div class="margin-form">
		<input type="text" id="company" value="" />
		<p>{l s='Search a customer by typing the first letters of his/her name'}</p>
		<a class="fancybox button" href="{$link->getAdminLink('AdminCustomers')|escape:'htmlall':'UTF-8'}&addcustomer&liteDisplaying=1&submitFormAjax=1#">
			<img src="../img/admin/add.gif" title="new"/><span>{l s='Add new customer'}</span>
		</a>
	</div>	


dans le fichier .php ligne 42 j'ai rajouter une CONCAT avec le nom company.

$this->_select = '
		a.id_currency,
		a.id_order AS id_pdf,
		CONCAT(LEFT(c.`firstname`, 64), \'. \', c.`lastname`) AS `customer`,
		CONCAT(c.`company`, \'. \', c.`lastname`) AS `company`,
		osl.`name` AS `osname`,
		os.`color`,
		IF((SELECT COUNT(so.id_order) FROM `'._DB_PREFIX_.'orders` so WHERE so.id_customer = a.id_customer) > 1, 0, 1) as new';





.php ligne 1407

public function ajaxProcessSearchCustomers()
	{
		if ($customers = Customer::searchByName(pSQL(Tools::getValue('customer_search'))))
			$to_return = array('customers' => $customers,
									'found' => true);
		else
			$to_return = array('found' => false);
		$this->content = Tools::jsonEncode($to_return);
	}
	public function ajaxProcessSearchCompanys()
	{
		if ($companys = Customer::searchByName(pSQL(Tools::getValue('company_search'))))
			$to_return = array('companys' => $companys,
									'found' => true);
		else
			$to_return = array('found' => false);
		$this->content = Tools::jsonEncode($to_return);
	}




J'ai copier exactement la même chose que la fonction searchCustomers, mais je pense que je passe à côter de quelque chose.

Quelqu'un aurait-il une petite idée?

Merci

Baptiste