Jump to content

Recommended Posts

Bien, lo he estado mirando con m谩s detenimiento. Creo que el archivo que hay que modificar no es el que te he puesto, sino que es la plantilla PDF, que estar铆a en /pdf/invoice.product-tab.tpl. Es posible que dentro de tu tema tengas este mismo directorio. Si es as铆, las modificaciones deber铆as hacerlas ah铆 (en /theme/nombre-de-tu-tema/pdf/invoice.product-tab.tpl. Si no tienes ese directorio, deber铆as copiar聽el directorio /pdf/ con todo su contenido dentro de la carpeta de tu tema, y luego ya ah铆 modificar el archivo invoice.product-tab.tpl.

Una vez lo tengas ubicado, alrededor de la l铆nea 30 tendr铆as:

<th class="product header small" width="{$layout.product.width}%">{l s='Product' d='Shop.Pdf' pdf='true'}</th>

... y deber铆as cambiarlo por:

<th class="product header small" width="{$layout.product.width}%">{l s='ISBN' d='Shop.Pdf' pdf='true'}</th>

y luego en la l铆nea 54:

{if $display_product_images}
  <table width="100%">
    <tr>
      <td width="15%">
        {if isset($order_detail.image) && $order_detail.image->id}
        {$order_detail.image_tag}
        {/if}
      </td>
      <td width="5%">&nbsp;</td>
      <td width="80%">
        {$order_detail.product_name}
      </td>
    </tr>
  </table>
  {else}
  {$order_detail.product_name}
 {/if}

... modificarlo as铆:

{if $display_product_images}
  <table width="100%">
    <tr>
      <td width="15%">
        {if isset($order_detail.image) && $order_detail.image->id}
        {$order_detail.image_tag}
        {/if}
      </td>
      <td width="5%"></td>
      <td width="80%">
        {$order_detail.product_isbn}
      </td>
    </tr>
  </table>
  {else}
  {$order_detail.product_isbn}
 {/if}

No lo he probado, pero si en los productos de $order_detail va incluido el ISBN (que creo que s铆), deber铆a funcionar.

Edited by Prestafan33 (see edit history)
  • Like 1
Link to comment
Share on other sites

1 hour ago, Adrian said:

Gracias聽Prestafan33. Ahora si que sale la columna ISBN pero por m谩s que pongo un c贸digo se queda en blanco. Es algo raro pero por lo menos ya es una avance. Te comento si me sale algo.

Creo que el nombre del atributo en $order_detail es product_isbn en vez de "isbn" a secas. He actualizado el c贸digo arriba (el 煤ltimo bloque). S贸lo es cambiar donde hab铆a puesto "isbn" por "product_isbn". Mira a ver si as铆 te funciona.

  • Like 1
Link to comment
Share on other sites

Vale Prestafan33. Eso si que me ha servido!聽馃槄

Ahora una 煤ltima pregunta, espero no molestarte mucho >.<

Sabes donde puedo tocar para poder poner letras en el c贸digo ISBN. Estoy intentando "enga帽ar" a prestashop porque en s铆 no es un c贸digo ISBN. Son c贸digos con n煤meros y letras. Sabrias donde modificarlo para que me permita hacer eso? Si me sale eso ya estar铆a todo :)

Me estas ayudando un mont贸n :D

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

15 minutes ago, Adrian said:

Ahora una 煤ltima pregunta, espero no molestarte mucho >.<

Sabes donde puedo tocar para poder poner letras en el c贸digo ISBN. Estoy intentando "enga帽ar" a prestashop porque en s铆 no es un c贸digo ISBN. Son c贸digos con n煤meros y letras. Sabrias donde modificarlo para que me permita hacer eso? Si me sale eso ya estar铆a todo :)

En /classes/Product.php, hacia la l铆nea 316, tienes la validaci贸n de los campos que componen la clase "producto", concretamente el ISBN est谩 en la l铆nea 335 (en la versi贸n 1.7.5, que es donde lo estoy mirando):

'isbn' => array('type' => self::TYPE_STRING, 'validate' => 'isIsbn', 'size' => 32),

si vas a meter algo que sea texto, se podr铆a poner que simplemente validase que sea una cadena alfanum茅rica y nada m谩s:

'isbn' => array('type' => self::TYPE_STRING, 'validate' => 'isString', 'size' => 32),

Si quieres variar la longitud m谩xima tambi茅n puedes cambiar el valor de "size".

Ten en cuenta que esta modificaci贸n se perder谩 si haces luego una actualizaci贸n de Prestashop a otra versi贸n. Para que no fuera as铆 habr铆a que hacer un override, extendiendo la clase Product, pero eso ya es un poco m谩s complicado.

Edited by Prestafan33 (see edit history)
  • Like 1
Link to comment
Share on other sites

Veo que la validaci贸n la realiza en m谩s sitios, como en los controladores, y no solo en la clase Product.

De modo que tal vez lo m谩s sencillo sea modificar la funci贸n "isIsbn", que es la que creo que se utiliza en todas partes.

Para ello en /classes/Validate.php, tienes esa funci贸n:

public static function isIsbn($isbn)
{
	return !$isbn || preg_match('/^[0-9-]{0,32}$/', $isbn);
}

Lo que hace es comprobar que la cadena s贸lo contiene n煤meros o guiones y que tiene entre 0 y 32 caracteres. Habr铆a que modificar la regex para que realice la validaci贸n que quieras. Por ejemplo, si quieres poder incluir tambi茅n letras (may煤sculas y min煤sculas):

public static function isIsbn($isbn)
{
	return !$isbn || preg_match('/^[a-zA-Z0-9-]{0,32}$/', $isbn);
}

Una vez hayas hecho esa modificaci贸n, la anterior que te coment茅 en la clase Product la聽puedes quitar y dejarlo como estaba.

Edited by Prestafan33 (see edit history)
  • Like 1
Link to comment
Share on other sites

Los 120 caracteres no te los va a coger a menos que modifiques el campo "isbn" en la tabla de productos de la base de datos, porque tendr谩 la longitud limitada a 32.

Captura.JPG.46f482b97d51bbf6fbb493ed3e80fd86.JPG

Lo de poder introducir letras, con eso que has puesto deber铆a pasar la validaci贸n, aunque no s茅 si en alg煤n otro sitio habr谩 m谩s comprobaciones adicionales.

Edited by Prestafan33 (see edit history)
  • Like 1
Link to comment
Share on other sites

Culpa mia... Estaba buscando en una sola p谩gina sin darme cuenta que tenia 7 m谩s. Eso ya esta hecho. Voy a ver si funciona.

Sigue sin funcionar. No lo entiendo. Estoy gafado...

image.png.eb3dfc846d19b5e974882e673d88839a.png

Y...

image.png.002c03a0761d307dcafab5bf419e8210.png

Tambi茅n he visto que hay m谩s tablas con "isbn" y las estoy cambiando. Veremos.

Edited by Adrian (see edit history)
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...