Jump to content

La facture PDF n'affiche que les chiffres et les dates, pas les textes


Recommended Posts

Bonjour,

 

depuis hier il y a un souci avec la génération de la facture (ou le bon de livraison) en pdf.
 
ATTENTION autant le dire tout de suite, il s'agit d'un vieux site qui tourne sous prestashop 1.3.7, cette version s'explique par le fait que ce site a été énormément hacké avec des modules additionnels sur-mesure adaptés au code de Prestashop 1.3. et faits à 4 mains à l'époque, pour un ami commerçant.
 
En dehors de cela, le site marche très bien... sauf depuis hier et sans raison apparente :
La génération en back-office ou front-office de factures (ou bon de livraison) en pdf reste possible, mais les variables textes ne s'affichent pas. Seules apparaissent le numéro de facture, de commande, les montants des produits HT, TTC etc... bref seules les variables string sont impactées.
 
Peut-être un problème entre la classe pdf et la langue qu'elle n'arrive pas à retrouver (une seule langue sur ce site) ?
 
Je viens de regarder un peu la classe PDF, j'ai essayé plusieurs tentatives de remplacement "en dur" sur les variables icoCode (ici FR) mais cela ne marche pas.
 
En PJ un exemple de pdf généré. Je crois que c'est juste la transmission d'une info qui ne se fait pas, mais ou, je ne trouve pas.
Si quelqu'un a déjà eu ce souci...?
 
Pour info, le site est hébergé sur un mutualisé OVH.
Dans le prochain post, le code de la classe pdf (pour rafraichir la mémoire, je crains qu'il y en ait besoin) ?
 
Cordialement,

post-37381-0-28462800-1494523020_thumb.jpg

Link to comment
Share on other sites

Classe PDF.php

<?php

/**
  * PDF class, PDF.php
  * PDF invoices and document management
  * @category classes
  *
  * @author PrestaShop <[email protected]>
  * @copyright PrestaShop
  * @license http://www.opensource.org/licenses/osl-3.0.php Open-source licence 3.0
  * @version 1.3
  *
  */

include_once(_PS_FPDF_PATH_.'fpdf.php');

class PDF_PageGroup extends FPDF
{
	var $NewPageGroup;   // variable indicating whether a new group was requested
	var $PageGroups;	 // variable containing the number of pages of the groups
	var $CurrPageGroup;  // variable containing the alias of the current page group

	// create a new page group; call this before calling AddPage()
	function StartPageGroup()
	{
		$this->NewPageGroup=true;
	}

	// current page in the group
	function GroupPageNo()
	{
		return $this->PageGroups[$this->CurrPageGroup];
	}

	// alias of the current page group -- will be replaced by the total number of pages in this group
	function PageGroupAlias()
	{
		return $this->CurrPageGroup;
	}

	function _beginpage($orientation, $arg2)
	{
		parent::_beginpage($orientation, $arg2);
		if($this->NewPageGroup)
		{
			// start a new group
			$n = sizeof($this->PageGroups)+1;
			$alias = "{nb$n}";
			$this->PageGroups[$alias] = 1;
			$this->CurrPageGroup = $alias;
			$this->NewPageGroup=false;
		}
		elseif($this->CurrPageGroup)
			$this->PageGroups[$this->CurrPageGroup]++;
	}

	function _putpages()
	{
		$nb = $this->page;
		if (!empty($this->PageGroups))
		{
			// do page number replacement
			foreach ($this->PageGroups as $k => $v)
				for ($n = 1; $n <= $nb; $n++)
					$this->pages[$n]=str_replace($k, $v, $this->pages[$n]);
		}
		parent::_putpages();
	}
}

class PDF extends PDF_PageGroup
{
	private static $order = NULL;
	private static $orderReturn = NULL;
	private static $orderSlip = NULL;
	private static $delivery = NULL;
	private static $_priceDisplayMethod;

	/** @var object Order currency object */
	private static $currency = NULL;

	private static $_iso;

	/** @var array Special PDF params such encoding and font */

	private static $_pdfparams = array();
	private static $_fpdf_core_fonts = array('courier', 'helvetica', 'helveticab', 'helveticabi', 'helveticai', 'symbol', 'times', 'timesb', 'timesbi', 'timesi', 'zapfdingbats');

	/**
	* Constructor
	*/
	public function __construct($orientation='P', $unit='mm', $format='A4')
	{
		global $cookie;

		if (!isset($cookie) OR !is_object($cookie))
			$cookie->id_lang = intval(Configuration::get('PS_LANG_DEFAULT'));
		self::$_iso = strtoupper(Language::getIsoById($cookie->id_lang));
		FPDF::FPDF($orientation, $unit, $format);
		$this->_initPDFFonts();
	}

	private function _initPDFFonts()
	{
		if (!$languages = Language::getLanguages())
			die(Tools::displayError());
		foreach ($languages AS $language)
		{
			$isoCode = strtoupper($language['iso_code']);
			$conf = Configuration::getMultiple(array('PS_PDF_ENCODING_'.$isoCode, 'PS_PDF_FONT_'.$isoCode));
			self::$_pdfparams[$isoCode] = array(
				'encoding' => (isset($conf['PS_PDF_ENCODING_'.$isoCode]) AND $conf['PS_PDF_ENCODING_'.$isoCode] == true) ? $conf['PS_PDF_ENCODING_'.$isoCode] : 'iso-8859-1',
				'font' => (isset($conf['PS_PDF_FONT_'.$isoCode]) AND $conf['PS_PDF_FONT_'.$isoCode] == true) ? $conf['PS_PDF_FONT_'.$isoCode] : 'helvetica'
			);
		}

		if ($font = self::embedfont())
		{
			$this->AddFont($font);
			$this->AddFont($font, 'B');
		}
	}

	/**
	* Invoice header
	*/
	public function Header()
	{
		global $cookie;

		$conf = Configuration::getMultiple(array('PS_SHOP_NAME', 'PS_SHOP_ADDR1', 'PS_SHOP_CODE', 'PS_SHOP_CITY', 'PS_SHOP_COUNTRY', 'PS_SHOP_STATE'));
		$conf['PS_SHOP_NAME'] = isset($conf['PS_SHOP_NAME']) ? Tools::iconv('utf-8', self::encoding(), $conf['PS_SHOP_NAME']) : 'Your company';
		$conf['PS_SHOP_ADDR1'] = isset($conf['PS_SHOP_ADDR1']) ? Tools::iconv('utf-8', self::encoding(), $conf['PS_SHOP_ADDR1']) : 'Your company';
		$conf['PS_SHOP_CODE'] = isset($conf['PS_SHOP_CODE']) ? Tools::iconv('utf-8', self::encoding(), $conf['PS_SHOP_CODE']) : 'Postcode';
		$conf['PS_SHOP_CITY'] = isset($conf['PS_SHOP_CITY']) ? Tools::iconv('utf-8', self::encoding(), $conf['PS_SHOP_CITY']) : 'City';
		$conf['PS_SHOP_COUNTRY'] = isset($conf['PS_SHOP_COUNTRY']) ? Tools::iconv('utf-8', self::encoding(), $conf['PS_SHOP_COUNTRY']) : 'Country';
		$conf['PS_SHOP_STATE'] = isset($conf['PS_SHOP_STATE']) ? Tools::iconv('utf-8', self::encoding(), $conf['PS_SHOP_STATE']) : '';

		if (file_exists(_PS_IMG_DIR_.'/logo.jpg'))
			$this->Image(_PS_IMG_DIR_.'/logo.jpg', 10, 8, 0, 15);
		$this->SetFont(self::fontname(), 'B', 15);
		$this->Cell(115);

		if (self::$orderReturn)
			$this->Cell(77, 10, self::l('RETURN #').' '.sprintf('%06d', self::$orderReturn->id), 0, 1, 'R');
		elseif (self::$orderSlip)
			$this->Cell(77, 10, self::l('SLIP #').' '.sprintf('%06d', self::$orderSlip->id), 0, 1, 'R');
		elseif (self::$delivery)
			$this->Cell(77, 10, self::l('DELIVERY SLIP #').' '.Tools::iconv('utf-8', self::encoding(), Configuration::get('PS_DELIVERY_PREFIX', intval($cookie->id_lang))).sprintf('%06d', self::$delivery), 0, 1, 'R');
		elseif (self::$order->invoice_number)
			$this->Cell(77, 10, self::l('INVOICE #').' '.Tools::iconv('utf-8', self::encoding(), Configuration::get('PS_INVOICE_PREFIX', intval($cookie->id_lang))).sprintf('%06d', self::$order->invoice_number), 0, 1, 'R');
		else
			$this->Cell(77, 10, self::l('ORDER #').' '.sprintf('%06d', self::$order->id), 0, 1, 'R');
   }

	/**
	* Invoice footer
	*/
	public function Footer()
	{
		$this->SetY(-33);
		$this->SetFont(self::fontname(), '', 7);
		$this->Cell(190, 5, ' '."\n".Tools::iconv('utf-8', self::encoding(), 'P. ').$this->GroupPageNo().' / '.$this->PageGroupAlias(), 'T', 1, 'R');

		/*
		 * Display a message for customer
		 */
		if (!self::$delivery)
		{
			$this->SetFont(self::fontname(), '', 8);
			if (self::$orderSlip)
				$textFooter = self::l('An electronic version of this credit slip is available in your account. To access it, log in to the');
			else
				$textFooter = self::l('An electronic version of this invoice is available in your account. To access it, log in to the');
			$this->Cell(0, 10, $textFooter, 0, 0, 'C', 0, (Configuration::get('PS_SSL_ENABLED') ? 'https://' : 'http://').$_SERVER['SERVER_NAME'].__PS_BASE_URI__.'history.php');
			$this->Ln(4);
			$this->Cell(0, 10, Tools::iconv('utf-8', self::encoding(), Configuration::get('PS_SHOP_NAME')).' '.self::l('website using your e-mail address and password (which you created while placing your first order).'), 0, 0, 'C', 0, (Configuration::get('PS_SSL_ENABLED') ? 'https://' : 'http://').$_SERVER['SERVER_NAME'].__PS_BASE_URI__.'history.php');
		}
		else
			$this->Ln(4);
		$this->Ln(9);
		$arrayConf = array('PS_SHOP_NAME', 'PS_SHOP_ADDR1', 'PS_SHOP_ADDR2', 'PS_SHOP_CODE', 'PS_SHOP_CITY', 'PS_SHOP_COUNTRY', 'PS_SHOP_DETAILS', 'PS_SHOP_PHONE', 'PS_SHOP_STATE');
		$conf = Configuration::getMultiple($arrayConf);
		$conf['PS_SHOP_NAME_UPPER'] = Tools::strtoupper($conf['PS_SHOP_NAME']);
		foreach($conf as $key => $value)
			$conf[$key] = Tools::iconv('utf-8', self::encoding(), $value);
		foreach ($arrayConf as $key)
			if (!isset($conf[$key]))
				$conf[$key] = '';
		$this->SetFillColor(240, 240, 240);
		$this->SetTextColor(0, 0, 0);
		$this->SetFont(self::fontname(), '', 8);
		$this->Cell(0, 5, $conf['PS_SHOP_NAME_UPPER'].
		(!empty($conf['PS_SHOP_ADDR1']) ? ' - '.self::l('Headquarters:').' '.$conf['PS_SHOP_ADDR1'].(!empty($conf['PS_SHOP_ADDR2']) ? ' '.$conf['PS_SHOP_ADDR2'] : '').' '.$conf['PS_SHOP_CODE'].' '.$conf['PS_SHOP_CITY'].((isset($conf['PS_SHOP_STATE']) AND !empty($conf['PS_SHOP_STATE'])) ? (', '.$conf['PS_SHOP_STATE']) : '').' '.$conf['PS_SHOP_COUNTRY'] : ''), 0, 1, 'C', 1);
		$this->Cell(0, 5,
		(!empty($conf['PS_SHOP_DETAILS']) ? self::l('Details:').' '.$conf['PS_SHOP_DETAILS'].' - ' : '').
		(!empty($conf['PS_SHOP_PHONE']) ? self::l('PHONE:').' '.$conf['PS_SHOP_PHONE'] : ''), 0, 1, 'C', 1);
	}

	public static function multipleInvoices($invoices)
	{
		$pdf = new PDF('P', 'mm', 'A4');
		foreach ($invoices AS $id_order)
		{
			$orderObj = new Order(intval($id_order));
			if (Validate::isLoadedObject($orderObj))
				PDF::invoice($orderObj, 'D', true, $pdf);
		}
		return $pdf->Output('invoices.pdf', 'D');
	}

	public static function multipleDelivery($slips)
	{
		$pdf = new PDF('P', 'mm', 'A4');
		foreach ($slips AS $id_order)
		{
			$orderObj = new Order(intval($id_order));
			if (Validate::isLoadedObject($orderObj))
				PDF::invoice($orderObj, 'D', true, $pdf, false, $orderObj->delivery_number);
		}
		return $pdf->Output('invoices.pdf', 'D');
	}

	public static function orderReturn($orderReturn, $mode = 'D', $multiple = false, &$pdf = NULL)
	{
		$pdf = new PDF('P', 'mm', 'A4');
		self::$orderReturn = $orderReturn;
		$order = new Order($orderReturn->id_order);
		self::$order = $order;
		$pdf->SetAutoPageBreak(true, 35);
		$pdf->StartPageGroup();
		$pdf->AliasNbPages();
		$pdf->AddPage();

		/* Display address information */
		$delivery_address = new Address(intval($order->id_address_delivery));
		$deliveryState = $delivery_address->id_state ? new State($delivery_address->id_state) : false;
		$shop_country = Configuration::get('PS_SHOP_COUNTRY');
		$arrayConf = array('PS_SHOP_NAME', 'PS_SHOP_ADDR1', 'PS_SHOP_ADDR2', 'PS_SHOP_CODE', 'PS_SHOP_CITY', 'PS_SHOP_COUNTRY', 'PS_SHOP_DETAILS', 'PS_SHOP_PHONE', 'PS_SHOP_STATE');
		$conf = Configuration::getMultiple($arrayConf);
		foreach ($conf as $key => $value)
			$conf[$key] = Tools::iconv('utf-8', self::encoding(), $value);
		foreach ($arrayConf as $key)
			if (!isset($conf[$key]))
				$conf[$key] = '';

		$width = 100;
		$pdf->SetX(10);
		$pdf->SetY(25);
		$pdf->SetFont(self::fontname(), '', 9);

		if (!empty($delivery_address->company))
		{
			$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $delivery_address->company), 0, 'L');
			$pdf->Ln(5);
		}
		$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $delivery_address->firstname).' '.Tools::iconv('utf-8', self::encoding(), $delivery_address->lastname), 0, 'L');
		$pdf->Ln(5);
		$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $delivery_address->address1), 0, 'L');
		$pdf->Ln(5);
		if (!empty($delivery_address->address2))
		{
			$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $delivery_address->address2), 0, 'L');
			$pdf->Ln(5);
		}
		$pdf->Cell($width, 10, $delivery_address->postcode.' '.Tools::iconv('utf-8', self::encoding(), $delivery_address->city), 0, 'L');
		$pdf->Ln(5);
		$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $delivery_address->country.($deliveryState ? ' - '.$deliveryState->name : '')), 0, 'L');

		/*
		 * display order information
		 */
		$pdf->Ln(12);
		$pdf->SetFillColor(240, 240, 240);
		$pdf->SetTextColor(0, 0, 0);
		$pdf->SetFont(self::fontname(), '', 9);
		$pdf->Cell(0, 6, self::l('RETURN #').sprintf('%06d', self::$orderReturn->id).' '.self::l('from') . ' ' .Tools::displayDate(self::$orderReturn->date_upd, self::$order->id_lang), 1, 2, 'L');
		$pdf->Cell(0, 6, self::l('We have logged your return request.'), 'TRL', 2, 'L');
		$pdf->Cell(0, 6, self::l('We remind you that your package must be returned to us within').' '.Configuration::get('PS_ORDER_RETURN_NB_DAYS').' '.self::l('days of initially receiving your order.'), 'BRL', 2, 'L');
		$pdf->Ln(5);
		$pdf->Cell(0, 6, self::l('List of items marked as returned :'), 0, 2, 'L');
		$pdf->Ln(5);
		$pdf->ProdReturnTab();
		$pdf->Ln(5);
		$pdf->SetFont(self::fontname(), 'B', 10);
		$pdf->Cell(0, 6, self::l('Return reference:').' '.self::l('RET').sprintf('%06d', self::$order->id), 0, 2, 'C');
		$pdf->Cell(0, 6, self::l('Thank you for including this number on your return package.'), 0, 2, 'C');
		$pdf->Ln(5);
		$pdf->SetFont(self::fontname(), 'B', 9);
		$pdf->Cell(0, 6, self::l('REMINDER:'), 0, 2, 'L');
		$pdf->SetFont(self::fontname(), '', 9);
		$pdf->Cell(0, 6, self::l('- All products must be returned in their original packaging without damage or wear.'), 0, 2, 'L');
		$pdf->Cell(0, 6, self::l('- Please print out this document and slip it into your package.'), 0, 2, 'L');
		$pdf->Cell(0, 6, self::l('- The package should be sent to the following address:'), 0, 2, 'L');
		$pdf->Ln(5);
		$pdf->SetFont(self::fontname(), 'B', 10);
		$pdf->Cell(0, 5, Tools::strtoupper($conf['PS_SHOP_NAME']), 0, 1, 'C', 1);
		$pdf->Cell(0, 5, (!empty($conf['PS_SHOP_ADDR1']) ? self::l('Headquarters:').' '.$conf['PS_SHOP_ADDR1'].(!empty($conf['PS_SHOP_ADDR2']) ? ' '.$conf['PS_SHOP_ADDR2'] : '').' '.$conf['PS_SHOP_CODE'].' '.$conf['PS_SHOP_CITY'].' '.$conf['PS_SHOP_COUNTRY'].((isset($conf['PS_SHOP_STATE']) AND !empty($conf['PS_SHOP_STATE'])) ? (', '.$conf['PS_SHOP_STATE']) : '') : ''), 0, 1, 'C', 1);
		$pdf->Ln(5);
		$pdf->SetFont(self::fontname(), '', 9);
		$pdf->Cell(0, 6, self::l('Upon receiving your package, we will inform you by e-mail and will then begin processing the reimbursement of your order total.'), 0, 2, 'L');
		$pdf->Cell(0, 6, self::l('Let us know if you have any questions.'), 0, 2, 'L');
		$pdf->Ln(5);
		$pdf->SetFont(self::fontname(), 'B', 10);
		$pdf->Cell(0, 6, self::l('If the conditions of return listed above are not respected,'), 'TRL', 2, 'C');
		$pdf->Cell(0, 6, self::l('we reserve the right to refuse your package and/or reimbursement.'), 'BRL', 2, 'C');

		return $pdf->Output(sprintf('%06d', self::$order->id).'.pdf', $mode);
	}

	/**
	* Product table with references, quantities...
	*/
	public function ProdReturnTab()
	{
		$header = array(
			array(self::l('Description'), 'L'),
			array(self::l('Reference'), 'L'),
			array(self::l('Qty'), 'C')
		);
		$w = array(110, 25, 20);
		$this->SetFont(self::fontname(), 'B', 8);
		$this->SetFillColor(240, 240, 240);
		for ($i = 0; $i < sizeof($header); $i++)
			$this->Cell($w[$i], 5, $header[$i][0], 'T', 0, $header[$i][1], 1);
		$this->Ln();
		$this->SetFont(self::fontname(), '', 7);

		$products = OrderReturn::getOrdersReturnProducts(self::$orderReturn->id, self::$order);
		foreach ($products AS $product)
		{
			$before = $this->GetY();
			$this->MultiCell($w[0], 5, Tools::iconv('utf-8', self::encoding(), $product['product_name']), 'B');
			$lineSize = $this->GetY() - $before;
			$this->SetXY($this->GetX() + $w[0], $this->GetY() - $lineSize);
			$this->Cell($w[1], $lineSize, ($product['product_reference'] != '' ? Tools::iconv('utf-8', self::encoding(), $product['product_reference']) : '---'), 'B');
			$this->Cell($w[2], $lineSize, $product['product_quantity'], 'B', 0, 'C');
			$this->Ln();
		}
	}

	/**
	* Main
	*
	* @param object $order Order
	* @param string $mode Download or display (optional)
	*/
	public static function invoice($order, $mode = 'D', $multiple = false, &$pdf = NULL, $slip = false, $delivery = false)
	{
	 	global $cookie;

		if (!Validate::isLoadedObject($order) OR (!$cookie->id_employee AND (!OrderState::invoiceAvailable($order->getCurrentState()) AND !$order->invoice_number)))
			die('Invalid order or invalid order state');
		self::$order = $order;
		self::$orderSlip = $slip;
		self::$delivery = $delivery;
		self::$_iso = strtoupper(Language::getIsoById(intval(self::$order->id_lang)));
		if ((self::$_priceDisplayMethod = $order->getTaxCalculationMethod()) === false)
			die(self::l('No price display method defined for the customer group'));

		if (!$multiple)
			$pdf = new PDF('P', 'mm', 'A4');

		$pdf->SetAutoPageBreak(true, 35);
		$pdf->StartPageGroup();

		self::$currency = Currency::getCurrencyInstance(intval(self::$order->id_currency));

		$pdf->AliasNbPages();
		$pdf->AddPage();
		/* Display address information */
		$invoice_address = new Address(intval($order->id_address_invoice));
		$invoiceState = $invoice_address->id_state ? new State($invoice_address->id_state) : false;
		$delivery_address = new Address(intval($order->id_address_delivery));
		$deliveryState = $delivery_address->id_state ? new State($delivery_address->id_state) : false;
		$shop_country = Configuration::get('PS_SHOP_COUNTRY');
		$invoice_customer = new Customer(intval($invoice_address->id_customer));

		$width = 100;

		$pdf->SetX(10);
		$pdf->SetY(25);
		$pdf->SetFont(self::fontname(), '', 12);
		$pdf->Cell($width, 10, self::l('Delivery'), 0, 'L');
		$pdf->Cell($width, 10, self::l('Invoicing'), 0, 'L');
		$pdf->Ln(5);
		$pdf->SetFont(self::fontname(), '', 9);

		if (!empty($delivery_address->company) OR !empty($invoice_address->company))
		{
			$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $delivery_address->company), 0, 'L');
			$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $invoice_address->company), 0, 'L');
			$pdf->Ln(5);
		}
		$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $delivery_address->firstname).' '.Tools::iconv('utf-8', self::encoding(), $delivery_address->lastname), 0, 'L');
		$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $invoice_address->firstname).' '.Tools::iconv('utf-8', self::encoding(), $invoice_address->lastname), 0, 'L');
		$pdf->Ln(5);
		$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $delivery_address->address1), 0, 'L');
		$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $invoice_address->address1), 0, 'L');
		$pdf->Ln(5);
		if (!empty($invoice_address->address2) OR !empty($delivery_address->address2))
		{
			$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $delivery_address->address2), 0, 'L');
			$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $invoice_address->address2), 0, 'L');
			$pdf->Ln(5);
		}
		$pdf->Cell($width, 10, $delivery_address->postcode.' '.Tools::iconv('utf-8', self::encoding(), $delivery_address->city), 0, 'L');
		$pdf->Cell($width, 10, $invoice_address->postcode.' '.Tools::iconv('utf-8', self::encoding(), $invoice_address->city), 0, 'L');
		$pdf->Ln(5);
		$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $delivery_address->country.($deliveryState ? ' - '.$deliveryState->name : '')), 0, 'L');
		$pdf->Cell($width, 10, Tools::iconv('utf-8', self::encoding(), $invoice_address->country.($invoiceState ? ' - '.$invoiceState->name : '')), 0, 'L');
		$pdf->Ln(5);
		$pdf->Cell($width, 10, $delivery_address->phone, 0, 'L');
		if($invoice_customer->dni != NULL)
			$pdf->Cell($width, 10, self::l('Tax ID number:').' '.Tools::iconv('utf-8', self::encoding(), $invoice_customer->dni), 0, 'L');
		if (!empty($delivery_address->phone_mobile))
		{
			$pdf->Ln(5);
			$pdf->Cell($width, 10, $delivery_address->phone_mobile, 0, 'L');
		}

		/*
		 * display order information
		 */
		$carrier = new Carrier(self::$order->id_carrier);
		if (empty($carrier->name))
				$carrier->name = Configuration::get('PS_SHOP_NAME');
		$history = self::$order->getHistory(self::$order->id_lang);
		foreach($history as $h)
			if ($h['id_order_state'] == _PS_OS_SHIPPING_)
				$shipping_date = $h['date_add'];
		$pdf->Ln(12);
		$pdf->SetFillColor(240, 240, 240);
		$pdf->SetTextColor(0, 0, 0);
		$pdf->SetFont(self::fontname(), '', 9);
		if (self::$orderSlip)
			$pdf->Cell(0, 6, self::l('SLIP #').sprintf('%06d', self::$orderSlip->id).' '.self::l('from') . ' ' .Tools::displayDate(self::$orderSlip->date_upd, self::$order->id_lang), 1, 2, 'L', 1);
		elseif (self::$delivery)
			$pdf->Cell(0, 6, self::l('DELIVERY SLIP #').Configuration::get('PS_DELIVERY_PREFIX', intval($cookie->id_lang)).sprintf('%06d', self::$delivery).' '.self::l('from') . ' ' .Tools::displayDate(self::$order->delivery_date, self::$order->id_lang), 1, 2, 'L', 1);
		else
			$pdf->Cell(0, 6, self::l('INVOICE #').Configuration::get('PS_INVOICE_PREFIX', intval($cookie->id_lang)).sprintf('%06d', self::$order->invoice_number).' '.self::l('from') . ' ' .Tools::displayDate(self::$order->invoice_date, self::$order->id_lang), 1, 2, 'L', 1);
		$pdf->Cell(55, 6, self::l('Order #').sprintf('%06d', self::$order->id), 'L', 0);
		$pdf->Cell(70, 6, self::l('Carrier:').($order->gift ? ' '.Tools::iconv('utf-8', self::encoding(), $carrier->name) : ''), 'L');
		$pdf->Cell(0, 6, self::l('Payment method:'), 'LR');
		$pdf->Ln(5);
		$pdf->Cell(55, 6, (isset($shipping_date) ? self::l('Shipping date:').' '.Tools::displayDate($shipping_date, self::$order->id_lang) : ' '), 'LB', 0);
		$pdf->Cell(70, 6, ($order->gift ? self::l('Gift-wrapped order') : Tools::iconv('utf-8', self::encoding(), $carrier->name)), 'LRB');
		$pdf->Cell(0, 6, Tools::iconv('utf-8', self::encoding(), $order->payment), 'LRB');
		$pdf->Ln(15);
		$pdf->ProdTab((self::$delivery ? true : ''));

Je n'en ai mis que le début, de toutes façons ça coince dès le header.

 

amicalement

Link to comment
Share on other sites

Pour répondre aux différentes questions :
 

- Ce site est sous php 5.5 depuis un petit moment et tourne sans problème, et OVH n'a (à ce jour mais pour combien de temps) pas changer cette configuration. Mais c'est vrai que j'y ai pensé tout de suite... le problème d'un prestashop aussi ancien sans mises à jour.
D'autant plus compliqué à faire comprendre que cet ami est censé prendre sa retraite bientôt... 

 

- le display_error n'affiche rien (sans doute parce-que le pdf est généré bon gré mal gré)

- les traductions pdf sont toujours présentes en base

- les logs d'hier n'affichent rien (comme quoi le commerçant n'a pas du appeler la génération de pdf hier contrairement à ce qu'il m'a dit).

 

Cordialement et merci de votre intérêt

Link to comment
Share on other sites

Yo

 

Exact same problem sur mon site.

Presta 1.4.7, OVH, et les factures n'affichent que les chiffres et images (plus de texte)

J'ai un peu fouillé Google et ne trouve que trop peu d'info sur ce problème et encore moins de moyen de le résoudre.

 

Si une solution est trouvée, je suis preneur :)

 

Merci

Remy

Link to comment
Share on other sites

Salut à tous, j'ai exactement le même problème depuis hier. Je suis sur PS 1.4 et chez Ovh en mutualisé, le site est aussi sous PHP 5 depuis un petit bout de temps.

Je suis preneur si vous avez une solution !

Link to comment
Share on other sites

quelle version de PHP 5 ?

 

sur OVH mutu, il faut aller à hébergements --> info generales --> version PHP globale --> tu peux la changer si tu veux

 

et regarde les pre-recquis de presta 1.4 (version de php utilisée) et fais une compraison

 

essaye de suivre cette piste et tiens moi au courant

Link to comment
Share on other sites

Bonjour je suis sous Php 5.5. Dans l admin ovh il y a un panneau rouge a cote de cette information expliquant que la version n est plus supportee. Ma version de ps est: 1.4.0.17 faut il que je passe a php 5.6 ? Je comprends pas car la boutique a toujours fonctionnée avant. Merci pour votre aide.

Link to comment
Share on other sites

php5.5 fonctionne avec prestashop 1.4 donc aucun problème de ce coté.

Maintenant on peut jouer les marabout a proposer des "et si", ou on peut identifier avec certitude le problème. Pour cela, désolé aucune magie mais il faut aller voir sous le capot.

Link to comment
Share on other sites

a mon avis, je te recommande de passer à la 1.7, ou a 1.6 au moins

adopter les dernieres technologies c bokou mieux

je m excuse car c pas la bonne solution à ton pb actuel, mais je te conseille à y penser

 

Certainement pas!!

Encore moins la version 1.7 qui est le pire lisier depuis MS-DOS 4.0

Link to comment
Share on other sites

Yo,

 

Pour répondre a Fabbea, yes, problème apparu hier ou avant hier.

J'ai bidouillé une bonne partie de la nuit dont changé la version de php sur ovh (aucune amélioration) pour finalement sauter le pas et upgradé ma version 1.4.7 en 1.6.

Et ben maintenant ca marche !!!! Euh ok... par contre je vous raconte pas le boulot de re paramétrage derrière.

 

J'ai du changer de thème (celui que j'avais bidouillé étant complétement bancal sous 1.6), le re personnaliser, repasser par toutes les modifs que j'avais faite y'a qq années... autant vous dire que mes nuits vont être chargées et que ma boutique est hors ligne...

Pour info, la génération de pdf se faisait via fpdf en version 1.4.7. Sous 1.6, cela semble etre tcpdf...

Peut être qq chose a creuser la.

 

Allez, je vous laisse et retourne a ma config

 

Bon courage

Link to comment
Share on other sites

Si tu penses vraiment changer de version, seule la 1.6 est à considérer.

Mais changer de version n'est pas anodin, changement de thème, mise à jour de modules, réécriture des overrides, test, défauts divers de migration à identifier.

Un mise à jour ce planifie, ce n'est pas la réponse à un bug soudain.

 

Cela fait bientôt 1 semaine que j'ai proposé à tous ceux qui ont eu ce problème de venir voir in-situ de quoi il en retourne exactement. Mais depuis 1 semaine, tout le monde préfère jouer à bricoler dans toutes les directions. Il est à 95% certain que OVH a changé quelque chose sur leurs mutus compte tenu ce ceux qui reportent le problème. Tant que nous ne saurons pas identifier clairement le problème, il ne sera pas résolu.

 

Ils ont très probablement oublié une librairie sur certains noeuds des fermes. Tant que nous ne saurons pas leur dire où ils ont merdé. Ils ne corrigerons pas.

Link to comment
Share on other sites

Bonjour à tous,

 

Je ne sais pas si ça pourra vous aider mais il semble que la fonction Tools::iconv de Prestashop ne fonctionne plus comme avant sur les mutus OVH depuis quelque temps.

J'ai découvert ça avec une vieille fonction dans l'un des petits modules que j'ai créé pour mes besoins personnels il y a longtemps et que j'ai trainé jusqu'à la version 1.6.

 

Dans mon petit module, ceci donne un texte vide:

Tools::iconv('utf-8', 'iso-8859-1', $source)

 

Par contre, ceci semble être fonctionnel:

html_entity_decode(htmlentities($source, ENT_NOQUOTES, 'UTF-8'), ENT_NOQUOTES, 'ISO-8859-1')

 

Je ne suis pas allé plus loin mais j'espère que cela pourra donner un indice sur ce qui a changé chez OVH.

 

EDIT:
Pour être plus précis, je viens de regarder un très vieux backup (1.2.5) et la fonction Tools:iconv n'a apparemment pas changé depuis (en tout cas jusqu'à Prestashop 1.6.x).

La voici (dans classes/Tools.php):

static public function iconv($from, $to, $string)
{
   if (function_exists('iconv'))
       return iconv($from, $to.'//TRANSLIT', str_replace('¥', '¥', str_replace('£', '£', str_replace('€', '€', $string))));
   return html_entity_decode(htmlentities($string, ENT_NOQUOTES, $from), ENT_NOQUOTES, $to);
}

Chez OVH, aujourd'hui encore, function_exists('iconv') retourne true et iconv est donc normalement utilisée.

Cependant, Tools::iconv('utf-8', 'iso-8859-1', $source) ne fonctionnant plus dans mon module, je l'ai remplacé par html_entity_decode(htmlentities($source, ENT_NOQUOTES, 'UTF-8'), ENT_NOQUOTES, 'ISO-8859-1').

 

Il y a surement quelque chose à faire avec tout ça dans la fonction iconv du fichier Tools.php de Prestashop.

Éventuellement, en forçant l'utilisation de html_entity_decode():

static public function iconv($from, $to, $string)
{
/*
   if (function_exists('iconv'))
       return iconv($from, $to.'//TRANSLIT', str_replace('¥', '¥', str_replace('£', '£', str_replace('€', '€', $string))));
*/
   return html_entity_decode(htmlentities($string, ENT_NOQUOTES, $from), ENT_NOQUOTES, $to);
}

!!! CEPENDANT, NE TENTEZ RIEN DANS VOTRE BOUTIQUE AVANT QU'UNE PERSONNE COMPÉTENTE (PAS MOI!) NE VOUS PROPOSE UNE SOLUTION APPROUVÉE !!!

Tout ceci n'est qu'une idée et s'adresse aux experts qui, je l'espère, pourront trouver ça utile.

Pour être clair, il s'agit peut-être d'une idée stupide.

 

Cordialement,

P.

Edited by PFozz (see edit history)
Link to comment
Share on other sites

Par exemple, PHP 7.0 pourrait causer ce problème, car les anciennes versions ne le supportent pas. Juste une idée.

 

For example, PHP 7.0 could cause this problem, as older versions don't support it. Just an idea.

Link to comment
Share on other sites

Non rien à voir avec la version de PHP.

Il apparait plus probable que OVH a oublié de déployer les locales UTF-8 ou ISO8859-1 sur certains noeuds de la ferme, et/ou que certaines version soient encore exécutée en mod_php, où le setlocale() est global pour tous.

 

Reporter l'erreur iconv à OVH afin qu'il corrigent leurs ferme.

 

Tentez ceci dans le config/config.inc.php au cas où le problème soit lié à setlocale.

setlocale(LC_CTYPE, 'fr_FR.utf8', 'en_US.utf8');

Que celà soit néanmoins clair, on peut bricoler pour circonvenir à ce type de problème, mais il fera surface ailleurs. La seule solution configurer le serveur correctement. Tant les locales, que les jeux de caractères installés

Link to comment
Share on other sites

Doekia,

 

c'est exactement ça ! En modifiant le config.inc.php comme indiqué ça marche.

Je viens de prévenir OVH. J'encourage ceux qui ont le même souci à faire de même, afin de donner du poids à la requête.
 

Un grand merci à tous, et en particulier à Doekia.

Link to comment
Share on other sites

Bonjour

JE pensais Etre le SEUL a avoir ce probleme!

 

Depuis 1 semaine je me debats Avec le meme soucis concernant les Factures PDF 

Apres avoir restaurer une sauvegarde Cela a fonctionner 1 journee  et REbelotte

Je ne sait plus quoi faire J' ai evidement contacter OVH  qui decline etre en cause

 

 

Pour infos concernant ma version prestashop

 

Informations sur votre serveur  15/05/2017
Version de Prestashop: 1.4.8.2
Informations sur votre serveur: Linux #1 SMP Thu Oct 20 14:47:42 UTC 2016 x86_64
Version du logiciel serveur: Apache
Version de PHP: 5.6.30
Version de MySQL: 5.5.55-0+deb7u1-log
Informations sur votre boutique
URL de votre boutique: 
Nom du thème utilisé: pascal
Informations sur la configuration mail
Méthode d'envoi de mail: Vous utilisez la fonction mail() de PHP
Vos informations
Informations vous concernant: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
 Vérifier votre configuration
Paramètres requis: OK
Paramètres optionnels: OK
 
 
Informations sur votre serveur  04/03/2017
Version de Prestashop: 1.4.8.2
Informations sur votre serveur: Linux #1 SMP Thu Oct 20 14:47:42 UTC 2016 x86_64
Version du logiciel serveur: Apache
Version de PHP: 5.6.30
Version de MySQL: 5.5.54-0+deb7u1-log
Informations sur votre boutique
URL de votre boutique: 
Nom du thème utilisé: pascal
Informations sur la configuration mail
Méthode d'envoi de mail: Vous utilisez la fonction mail() de PHP
Vos informations
Informations vous concernant: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
 Vérifier votre configuration
Paramètres requis: OK
Paramètres optionnels: OK
 
 
En vous remerciant par avance de votre aide
Edited by JPB_KAWA (see edit history)
Link to comment
Share on other sites

Oui le succès n'est pas dans la directive.

 

Le coeur du problème est quelques serveurs de la ferme web de OVH auquel il manque certains jeux de caractères (typiquement il semble que ce soit rien de moins que l'utf-8)

Lorsque la fonction icon est appelée elle ne sait pas à quoi correspond le code 0xC3 par exemple, alors elle le supprime.

 

En changeant le config.inc.php, tu as momentanément du changer de noeud dans la ferme, ce noeud n'ayant pas le problème tu as eu ton texte, puis tu es retombé sur des noeuds moisis.

 

Venant de corriger en urgence le problème chez @supafly, voici ce que j'ai du faire, patcher le Tools.php comme suit

	public static function iconv($from, $to, $string)
	{
		if (0 && function_exists('iconv'))
			return iconv($from, $to.'//TRANSLIT', str_replace('¥', '¥', str_replace('£', '£', str_replace('€', '€', $string))));
		return html_entity_decode(htmlentities($string, ENT_NOQUOTES/*, $from*/), ENT_NOQUOTES, $to);
	}
En gros ça désactive la fonction iconv native de php, et ne précise pas le jeux de caractère from, en interne le PHP5.5 etant compilé en iso8859-1 il découvre que les jeux sont les même et retourne exactement ce qu'il reçoit.

 

J'ai également reconfiguré Commandes > PDF pour utiliser le jeux iso8859-15 au lieu du cp1250 par défaut

 

Conclusion le bug est purement OVH coté système. Ce bug affecte toutes les fonctions de prestashop (de toutes les versions) qui utilisent iconv(), en 1.6 par exemple, url accentuées, import csv iso8859-1, ... en 1.4 s'ajoute la librairie pdf

Edited by doekia (see edit history)
Link to comment
Share on other sites

Ravi de savoir que je n'étais pas loin (bas de la page 1 de ce topic) :-)

 

Il semble que ça soit réparé sur mon Mutu (je m'étais fait un petit script de test iconv mais comme tout refonctionne, il ne sert à rien et je ne sais pas s'il peut être utile).

Juste au cas où le voici mais je ne promets rien (je n'ai pas pu le tester):

<?php
    header('Content-Type: text/html; charset=ISO-8859-1');
    
    function test_iconv($from, $to, $string)
    {
        if (function_exists('iconv'))
            return iconv($from, $to.'//TRANSLIT', $string);
        else
            return 'FONCTION ICONV NON DISPONIBLE';
    }
    
    $utf8str = utf8_encode('maChaîneEncodée');

    echo '--- TEST CONVERSION ---<br />';
    echo 'UTF-8: ' . $utf8str . '<br />';
    
    if (!(function_exists('iconv')))
        echo 'FONCTION ICONV NON DISPONIBLE' . '<br />';
    else
    {        
        echo 'TEST ICONV //TRANSLIT: ' . iconv('utf-8', 'iso-8859-1'.'//TRANSLIT', $utf8str) . '<br />';
        echo 'TEST ICONV //TRANSLIT (Depuis Fonction): ' . test_iconv('utf-8', 'iso-8859-1', $utf8str) . '<br />';
        echo 'TEST ICONV //IGNORE: ' . iconv('UTF-8', 'ISO-8859-1'.'//IGNORE', $utf8str) . '<br />';
        echo 'TEST ICONV //TRANSLIT//IGNORE: ' . iconv('UTF-8', 'ISO-8859-1'.'//TRANSLIT//IGNORE', $utf8str) . '<br />';
    }
    echo 'TEST HTML_ENTITY_DECODE (Avec $from): '. html_entity_decode(htmlentities($utf8str, ENT_NOQUOTES, 'UTF-8'), ENT_NOQUOTES, 'ISO-8859-1') . '<br />';
    echo 'TEST HTML_ENTITY_DECODE (Sans $from): '. html_entity_decode(htmlentities($utf8str, ENT_NOQUOTES/*, 'UTF-8'*/), ENT_NOQUOTES, 'ISO-8859-1') . '<br />';
?>

Doekia, enlever le $from ne posera-t-il pas problème sur certaines configurations?

Personnellement, je n'en sais rien...

Si je ne me trompe pas, on a les valeurs par défaut suivantes (pour htmlentities):

 

PHP 5.6+ : default_charset

PHP 5.4/5.5 : UTF-8

Plus anciennes: ISO-8859-1

 

Cordialement,

P.

 

EDIT: Script de test un peu plus propre...

Edited by PFozz (see edit history)
Link to comment
Share on other sites

Non PHP5.6 = UTF8 en interne, tout ce qui est inférieur est compilé en ISO8859-1

 

Faire attention que ton script soit passé sur tout les noeuds de la ferme.

Il faudrait trouver un noeud "malade" pour ouvrir un ticket OVH et s'assurer qu'ils corrigent ce noeuds et les autres.

Avant on pouvait depuis l'extérieur connaitre le noeud worker pour une page, maintenant ce n'est plus possible.

Perso, je lancerais une boucle 0 à 10000 vers le script sans garder le cookie Plan90 ou similaire ... si les 10000 itération retournent le bon résultat, on peu imaginer qu'ils ont corrigé.

 

En l'état le patch est un solution d'attente pour palier à une config serveur moisie. avec le $from ça donnait de jolis hieroglyphes car PHP faisait un double encodage :D

Link to comment
Share on other sites

Bonjour,

 

réponse d'OVH qui a ouvert un ticket d'incident.

 

"Votre demande porte sur les soucis de locales qui définissent la langue à utiliser en fonction de l'endroit de connexion.

Votre demande fait l'objet d'un incident que nous traitons en toute urgence.

Afin de suivre la tâche travaux ouverte à ce sujet, merci de suivre ce lien :
http://travaux.ovh.net/?do=details&id=24681

En s'excusant pour la gêne occasionnée.

PS: Le passage à un moteur phpcgi pourra résoudre le souci temporairement sauf si impacte d'autres fonctionnalités sur votre site.
Si vous choisissez de changer le moteur php pour phpcgi, veillez à remettre php (php-fpm) une fois la tâche travaux et fermée.
https://docs.ovh.com/fr/fr/web/hosting/optimisation-performances-site/

"

Cordialement

Link to comment
Share on other sites

  • 2 months later...

Bonjour, j'ai exactement le même problème depuis ce matin avec mon prestashop 1.4.6.2 hébergé chez en mutualisé chez OCH avec SQL privé.  Les factures n'affichent plus les lettres mais seulement les chiffres.

 

J'ai restauré mon shop et ma base de données mais le problème persiste.

 

J'ai ouvert un ticket chez OVH et il semble que d'autres utilisateurs ont le même problème.

Link to comment
Share on other sites

Oui le succès n'est pas dans la directive.

 

Le coeur du problème est quelques serveurs de la ferme web de OVH auquel il manque certains jeux de caractères (typiquement il semble que ce soit rien de moins que l'utf-8)

Lorsque la fonction icon est appelée elle ne sait pas à quoi correspond le code 0xC3 par exemple, alors elle le supprime.

 

En changeant le config.inc.php, tu as momentanément du changer de noeud dans la ferme, ce noeud n'ayant pas le problème tu as eu ton texte, puis tu es retombé sur des noeuds moisis.

 

Venant de corriger en urgence le problème chez @supafly, voici ce que j'ai du faire, patcher le Tools.php comme suit

	public static function iconv($from, $to, $string)
	{
		if (0 && function_exists('iconv'))
			return iconv($from, $to.'//TRANSLIT', str_replace('¥', '¥', str_replace('£', '£', str_replace('€', '€', $string))));
		return html_entity_decode(htmlentities($string, ENT_NOQUOTES/*, $from*/), ENT_NOQUOTES, $to);
	}
En gros ça désactive la fonction iconv native de php, et ne précise pas le jeux de caractère from, en interne le PHP5.5 etant compilé en iso8859-1 il découvre que les jeux sont les même et retourne exactement ce qu'il reçoit.

 

J'ai également reconfiguré Commandes > PDF pour utiliser le jeux iso8859-15 au lieu du cp1250 par défaut

 

Conclusion le bug est purement OVH coté système. Ce bug affecte toutes les fonctions de prestashop (de toutes les versions) qui utilisent iconv(), en 1.6 par exemple, url accentuées, import csv iso8859-1, ... en 1.4 s'ajoute la librairie pdf

 

Bonjour, je viens de tester votre solution temporaire sur mon site. Effectivement, il y a une incidence sur la facture mais les charactères spéciaux ne sont pas prix en charge et il manque les prix.

Edited by GIGA77 (see edit history)
Link to comment
Share on other sites

non c'est juste que entre les 5.5 et les 5.6 le htmlentities ne fonctionne pas pareil sans le paramètre from.

 

Honnêtement je ne sais pas, il faut investiguer au cas par cas, tout ça pour que OVH repète une autre truc dans 15 jours, Au bout d'un moment, il y en a marre. Passez sur des hébergements qui tiennent la route.

Link to comment
Share on other sites

non c'est juste que entre les 5.5 et les 5.6 le htmlentities ne fonctionne pas pareil sans le paramètre from.

 

Honnêtement je ne sais pas, il faut investiguer au cas par cas, tout ça pour que OVH repète une autre truc dans 15 jours, Au bout d'un moment, il y en a marre. Passez sur des hébergements qui tiennent la route.

Merci de votre réponse. Pour info OVH a déclaré un incident et vous pouvez le suivre à l'adresse suivante:

 

http://travaux.ovh.net/?do=details&id=26073

Link to comment
Share on other sites

En attendant qu'une solution soit trouvée et pour ceux qui sont toujours impactés,  le service client OVH m'a donnée un plan B pour pouvoir éditer mes factures.

 

Il faut passer en version PHPCGI - Dans mon cas sous prestashop 1.4.6.2 ça marche.

Pour cela il faut modifier le fichier .ovhconfig à la racine du dossier de votre site  comme ceci : (ajouter "cgi" à la première ligne)

 

app.engine=phpcgi
app.engine.version=5.4
http.firewall=none
environment=production
container.image=stable

 

Cordialement

Link to comment
Share on other sites

Reponse  OVH

 

Bonjour Monsieur,

Nous avons effectivement eu plusieurs retours concernant des erreurs lors de la génération de factures PDF sur Prestashop. Voici les détails de l'incident : 
http://travaux.ovh.net/?do=details&id=26073

Nos équipes travaillent à la résolution de l'incident.

 

DetailsNous avons détecté un soucis sur le fonctionnement de la fonction iconv et des locales dans prestashop et magento avec php-fpm. 
Nos équipes sont actuellement en train de rechercher la cause de ce dysfonctionnement

 

Comment by OVH - Wednesday, 19 July 2017, 12:05PM

Nous avons trouvé l'origine du problème et un correctif est en cours de test / déploiement.

---

The root cause of the issue has been found, a fix is being deployed.

comment.pngComment by OVH - Wednesday, 19 July 2017, 14:20PM

Détails techniques de l'incident:

Lors du redémarrage du moteur PHP-FPM, nos scripts définissaient la variable d’environnement LANG.
Cependant, celle-ci de doit pas être définie afin de garantir la disponibilité de l'ensemble des langues.

---

Technical details of this issue:

During the restart of the PHP-FPM engine, our scripts were defining the "LANG" environment variable.
However, this variable must not be set in order to ensure the availability of all languages.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...