Blog

CNERIS

CNERIS

Website URL: http://www.cneris.com

El otro día, mi buen amigo M.A.M me comentó que recientemente había experimentado problemas en los correos salientes suyos. Le pedí que me mandara el log de los errores devueltos, y rápidamente me puse a analizar lo que estaba pasando. 

Para cambiar la visualización de los productos en el módulo novedades en prestashop hay que acudir al fichero \classes\Product.php

Y buscar la función getNewProducts que se encuentra en la línea 2248 aprox (Prestashop 1.6.x). 

 

Hay que añadir una condición más en la sentencia SQL, para que no visualice productos cuya variable quantity = 0

 

 

 

1id_productPrimariaÍndiceint(10)UNSIGNEDNoNingunaAUTO_INCREMENT    

2id_supplierÍndiceint(10)UNSIGNEDSíNULL    

3id_manufacturerÍndiceint(10)UNSIGNEDSíNULL    

4id_category_defaultÍndiceint(10)UNSIGNEDSíNULL    

5id_shop_defaultint(10)UNSIGNEDNo1    

6id_tax_rules_groupint(11)UNSIGNEDNoNinguna    

7on_saletinyint(1)UNSIGNEDNo0    

8online_onlytinyint(1)UNSIGNEDNo0    

9ean13varchar(13)SíNULL    

10upcvarchar(12)SíNULL    

11ecotaxdecimal(17,6)No0.000000    

12quantityint(10)No0    

13minimal_quantityint(10)UNSIGNEDNo1    

14pricedecimal(20,6)No0.000000    

15 wholesale_price decimal(20,6) No 0.000000      

16 unity varchar(255) Sí NULL      

17unit_price_ratiodecimal(20,6)No0.000000    

18additional_shipping_costdecimal(20,2)No0.00    

19referencevarchar(32)SíNULL    

20supplier_referencevarchar(32)SíNULL    

21locationvarchar(64)SíNULL    

22widthdecimal(20,6)No0.000000    

23heightdecimal(20,6)No0.000000    

24depthdecimal(20,6)No0.000000    

25weightdecimal(20,6)No0.000000    

26out_of_stockint(10)UNSIGNEDNo2    

27quantity_discounttinyint(1)Sí0    

28customizabletinyint(2)No0    

29uploadable_filestinyint(4)No0    

30text_fieldstinyint(4)No0    

31activetinyint(1)UNSIGNEDNo0    

32redirect_typeenum('', '404', '301', '302')No    

33id_product_redirectedint(10)UNSIGNEDNo0    

34available_for_ordertinyint(1)No1    

35available_datedateNo0000-00-00    

36conditionenum('new', 'used', 'refurbished')Nonew    

37show_pricetinyint(1)No1    

38indexedÍndicetinyint(1)No0    

39visibilityenum('both', 'catalog', 'search', 'none')Noboth    

40cache_is_packtinyint(1)No0    

41cache_has_attachmentstinyint(1)No0    

42is_virtualtinyint(1)No0    

43cache_default_attributeint(10)UNSIGNEDSíNULL    

44date_addÍndicedatetimeNoNinguna    

45date_upddatetimeNoNinguna    

46advanced_stock_managementtinyint(1)No0    

47 pack_stock_type int(11) UNSIGNED No 3    

1. Abra su panel de administración de Joomla y haga clic en Extensions -> Extension Manager (Extensiones -> Administrador de extensiones).

 

2. Haga clic en Install Languages (Instalar idiomas).

 

 

3. Introduzca el nombre del idioma que va a instalar (por ejemplo, ‘Portugués’) en el campo de búsqueda y haga clic en el icono de lupa.

 

4. Marque el idioma y haga clic en Install (Instalar).

5. Se aparecerá el mensaje diciendo que el nuevo idioma ha sido instalado con éxito.

 

6. Abra Extensions -> Language Manager (Extensiones -> Gestor de idiomas).

 

7. Haga clic en la pestaña Content (Contenido), haga clic en New (Nuevo).

8. Cree un nuevo idioma de contenido con parámetros únicos. Por ejemplo, para el portugués hay que llenar los campos de esta manera

 

9. Haga clic en Save and Close (Guardar y cerrar). Se aparecerá el mensaje diciendo que "Content Language successfully saved" (Idioma de conteido ha sido guardado con éxito).

10. Abra Extensions -> Plugin Manager (Extensiones -> Gestor de plugins).

 

11. Búsque el plugin System – > Language Filter (Sistema -> Filtro de idioma).

 

12. Para crear un selector de idioma hay que abrir Extensions -> Module Manager (Extensiones -> Gestor de módulo).

 

13. Haga clic en New (Nuevo).

14. Elija Language Switcher (Selector de idiomas).

 

15. Escriba name (nombre) del módulo, asegúrese de que está configurado como published (publicado), elija su position (posición) y haga clic en Save (Guardar).

16. Ahora hay que crear un menú para cada idioma instalado y dejar uno adicional para ambos idiomas. Es decir, si Usted tiene dos idiomas (inglés y portugués), tendrá que crear menús para el inglés y para el portugués. Verifique el menú que está configurado como el menú predeterminado (tiene un icono de inicio). Por ejemplo, si Usted tiene Main Menu (Menú principal) con el elemento predeterminado del menú, va a utilizarlo para todos los idiomas, y, además, tendrá que crear dos menús principales más para el inglés y el nuevo idioma instalado. Abra Menus -> Menu Manager -> Add New Menu (Menús -> Administrador de Menú -> Añadir Nuevo menú).

 

 

17. Introduzca todos los campos necesarios para el idioma inglés y haga clic en Save and Close (Guardar y cerrar).

 

 

18. Abra Menus -> Menu Manager -> Add New Menu (Menús -> Administrador de Menú -> Añadir Nuevo menú) de nuevo y entre los campos necesarios para el nuevo idioma y haga clic en Save and Close (Guardar y cerrar).

 

19. Ahora es necesario añadir nuevas pestañas del menú a cada uno de los menús principales basados en los ya añadidos al menú principal predeterminado. Usted puede abrir Menus -> Main Menu for Eng -> Add New (Menús -> Menú principal del inglés -> Agregar nuevo) para agregar el menú, pero la manera más fácil es duplicar los menús existentes: abra Menus -> Main Menu -> (Menús -> Menú Principal), seleccione la pestaña del menú predeterminado como Home y hacer clic en Save as Copy (Guardar como copia).

 

 

20. En el mensaje “Menu item successfully saved” (Elemento del menú ha sido guardado con éxito) hay que modificar los campos de los nuevos idiomas. Por ejemplo, para el idioma inglés en la pestaña Details (Detalles) hay que cambiar Menu Title (Título de menú), Alias, usar Status (Estado) Published (Publicado), elegir el Menú principal del inglés en la lista desplegable Menu Location (Locación de menú), configurar Default Page (Página predeterminada) como Yes (Sí), en la lista desplegable Language (Idiomas) seleccionar English (UK).

 

 

21. Haga clic en Save and Close (Guardar y cerrar).

22. Repita los pasos 22 – 23 para su nuevo idioma. Por ejemplo, para el portugués.

 

 

(Sólo en este caso en Advanced Options (Opciones avanzadas) también tendrá que hacer clic en Select Categories (Elegir Categorias) y elegir la categoría para el nuevo idioma: por ejemplo, si está usado con una categoría “Home”, es necesario tener otra “Home” para el nuevo idioma. Si no lo tiene, abra Content -> category manager (Contenido -> Gestor de categorías) para crear esta categoría. La nueva categoría debe tener artículos en el nuevo idioma agregado. Se puede hacerlo después, por lo que por ahora se puede simplemente dejarlo sin cambios).

 

23. Si Usted hace todo correctamente, en Menu encontrará íconos de banderas añadidos a los menús principales.

 

 

24. Ahora hay que duplicar el módulo del menú superior para el inglés y el idioma que ha añadido. Abra Extensions -> Module Manager (Extensiones -> Gestor de módulos).

25. Encuentre el módulo utilizado para el menú de la parte superior, por ejemplo, Superfish menú (el nombre depende de la plantilla). Márquelo y haga clic en Duplicate(Duplicar).

 

 

26. Haga clic en el menú duplicado. Para el inglés, en Details: (Detalles) Usted va a cambiar Name (Nombre) (por ejemplo, Superfish Menu Eng), usar Status (Estado) Published (Publicado) y en la lista desplegable Language (Idioma) seleccionar English (UK).

 

 

en Options: (Opciones) en la lista desplegableSelect Menu (Elegir menú) elija Main Menu eng (lo que ha creado en 19);

 

 

 

en Menu Assignment: (Asignación del Menú) elija Only on pages Selected (Sólo en las páginas seleccionadas) en la lista desplegable de Module Assignment (Asignación del módulo), haga clic en Select None (No seleccionar ninguna) y marque Home Eng en Main Menu eng

 

 

 

(lo que ha creado en 23). Haga clic en Save and Close (Guardar y cerrar).

 

27. Repita lo mismo para crear un módulo del menú para el nuevo idioma. Si es el portugués, los ajustes deben ser:

Detalles:

 

 

 

Opciones:

 

 

 

Asignación del menú:

 

 

 

28. Desactive el menú Superfish para todos idiomas.

29. ahora abra Menus -> Main menu -> Home -> Module Assignment (Menús -> Menú principal -> Inicio -> Asignación de módulos) para este elemento del menú y marque Hide Unassigned Modules (Ocultar módulos no asignados).

 

 

30. Sus nuevos menús de inicio deben tener los mismos módulos asignados a ellos si Usted quiere que sus versiones del sitio aparecen correctamente. Haga clic en cada módulo que tiene “sí” en Display (Mostrar) y en Menu Assignment (Asignación del menú) seleccione dos pestañas del menú que agregó (es decir, Home for eng y Home for pt) y haga clic en Save and Close (Guardar y cerrar).

31. Haga lo mismo para el resto de los módulos que tiene “sí” en Display, a continuación, haga clic en Save (Guardar).

32. Abra el panel de su sitio web y trate de usar el selector de idiomas. Las versiones deben ser idénticas. Ahora se puede agregar contenido a la nueva versión.

He aquí la solución para que los productos de la página principal de una tienda prestashop salgan aleatorios (módulo novedades)

Hay que modificar en  /modules/blocknewproducts/blocknewproducts.php

la linea 113, aproximadamente, 

$newProducts = Product::getNewProducts((int) $this->context->language->id, 0, (int)Configuration::get('NEW_PRODUCTS_NBR'));

por

$newProducts = Product::getNewProducts((int) $this->context->language->id, 0, 100);shuffle($newProducts);array_splice($newProducts, Configuration::get('NEW_PRODUCTS_NBR') );

 

Si en prestashop queremos que salgan todas las banderas de la web en la parte superior derecha (no en forma de lista desplegable)

Hay que ir al fichero blocklanguages.tpl ubicado en themes\default-bootstrap\modules\blocklanguages

Y usar el siguiente bloque de código. Recomiendo que antes se haga una copia de seguridad del fichero inicial

<!-- Block languages module -->

{if count($languages) > 1}

<div id="languages-block-top" class="languages-block">

{foreach from=$languages key=k item=language name="languages"}

{if $language.iso_code == $lang_iso}

<img style="border: solid 1px #fff; margin-right:1px;" src="/{$img_lang_dir}{$language.id_lang}.jpg" alt="{$language.iso_code}" width="16" height="12" /><!-- /Flag image -->

{/if}

{if $language.iso_code != $lang_iso}

{assign var=indice_lang value=$language.id_lang}

{if isset($lang_rewrite_urls.$indice_lang)}

<img style="border: solid 1px #fff; margin-right:1px;" src="/{$img_lang_dir}{$language.id_lang}.jpg" alt="{$language.iso_code}" width="16" height="12" /><!-- /Flag image -->

<a href="/{$lang_rewrite_urls.$indice_lang|escape:'html':'UTF-8'}" title="{$language.name|escape:'html':'UTF-8'}" rel="alternate" hreflang="{$language.iso_code|escape:'html':'UTF-8'}">

{else}

<img style="border: solid 1px #fff; margin-right:1px;" src="/{$img_lang_dir}{$language.id_lang}.jpg" alt="{$language.iso_code}" width="16" height="12" /><!-- /Flag image -->

<a href="/{$link->getLanguageLink($language.id_lang)|escape:'html':'UTF-8'}" title="{$language.name|escape:'html':'UTF-8'}" rel="alternate" hreflang="{$language.iso_code|escape:'html':'UTF-8'}">

{/if}

{/if}

<span>{$language.name|regex_replace:"/\s\(.*\)$/":""}</span>

{if $language.iso_code != $lang_iso}

</a>

{/if}

 

{/foreach}

</div>

{/if}

<!-- /Block languages module -->

Martes, 12 Abril 2016 21:33

¿Cómo quitar el copyright de Falang?

Para quitar el copyright que enlazan con la página del fabricante iremos al archivo: /plugins/system/falangdriver/falangdriver.php

Buscamos el siguiente código:

$cacheBuf2 =

                    '<div><a title="Faboba : Cr&eacute;ation de composant'.

                        'Joomla" style="font-size: 8px;; visibility: visible;'.

                        'display:inline;" href="http://www.faboba'.

                        '.com" target="_blank">FaLang tra'.

                        'nslation syste'.

                        'm by Faboba</a></div>';

En vez de borrarlo podemos cambiar el estilo "visibility=visible" a "visibility=hidden".

Si con esto no resulta, buscamos el archivo: administrator/components/com_falang/classes/falangmanager.class.php y realizamos la misma operación.

Martes, 05 Abril 2016 22:04

Joomla Multiidioma

Joomla 3.0 de por sí incorpora todos los módulos y plugins necesarios para crear portales multiidioma. Sin embargo para aquellos que echen de menos a Joomfish, que decidió no continuar desarrollando versiones posteriores de Joomfish hasta Joomla 2.5, pueden probar a usar la versión gratuita de FALANG, disponible en su página oficial www.faboba.com

Todo aquel que haya instalado el componente PROFORMS BASIC, habrá podido comprobar lo potente que es la herramienta para crear formularios online. 

Uno de los problemas es que el paquete deja en el formulario un link de copyright en la parte inferior derecha de nuestro formulario. Mad4media Software Development

Quitar este enlace es bastante complicado. He aquí una solución para que el enlace no vuelva a aparecer en el formulario. 

1) En el fichero /component/com_proforms/views/form/tmpl 

Abrir el fichero default.php y en la línea 67, donde pone <div class='proformsFormWrap', hay que cambiar proformsFormWrap por proformsFormWrap1

2) En el fichero /component/com_proforms/css. Abrir el fichero responsivesystem.css

Hay que reemplazar proformsFormWrap por proformsFormWrap1, en todo el fichero. 

Subir ambos ficheros al servidor y ya está

 

Funciona en Proforms Basic 1.5.X

 

En la versión 1.6.X, 

El punto 1) hay que buscar en la línea 133 aproximadamente. 

<div id="proforms_proforms<?PHP echo $tmplUniqueIndex; ?>" class ="<?php echo M4J_CLASS_FORM_WRAP; ?> proformsFormWrap1"<?php echo $form_alignment; ?>>

En Prestashop 1.6.X cuando se muestra un producto, se refleja también el campo Condición (nuevo, usado, etc)

Para quitar este campo hay que seguir los siguientes pasos:

1) En /themes/default-bootstrap/product.tpl

2) Localizar el bloque de código 

                      <p id="product_condition">

<label>{l s='Condition:'} </label>

{if $product->condition == 'new'}

<link itemprop="itemCondition" href="https://schema.org/NewCondition"/>

<span class="editable">{l s='New product'}</span>

{elseif $product->condition == 'used'}

<link itemprop="itemCondition" href="https://schema.org/UsedCondition"/>

<span class="editable">{l s='Used'}</span>

{elseif $product->condition == 'refurbished'}

<link itemprop="itemCondition" href="https://schema.org/RefurbishedCondition"/>

<span class="editable">{l s='Refurbished'}</span>

{/if}

</p>

 

3) Dejarlo así 

                      {*<p id="product_condition">

<label>{l s='Condition:'} </label>

{if $product->condition == 'new'}

<link itemprop="itemCondition" href="https://schema.org/NewCondition"/>

<span class="editable">{l s='New product'}</span>

{elseif $product->condition == 'used'}

<link itemprop="itemCondition" href="https://schema.org/UsedCondition"/>

<span class="editable">{l s='Used'}</span>

{elseif $product->condition == 'refurbished'}

<link itemprop="itemCondition" href="https://schema.org/RefurbishedCondition"/>

<span class="editable">{l s='Refurbished'}</span>

{/if}

</p>*}

¿Cómo eliminar la etiqueta nuevo que aparece en la esquina de los productos?

La solución es muy fácil: 

Hay que localizar el siguiente código en el fichero global.css

.new-label {

  font: 700 14px/12px Arial, Helvetica, sans-serif;

  color: white;

  background: #6ad4ff;

  text-transform: uppercase;

  padding: 9px 0 7px;

  text-shadow: 1px 1px rgba(0, 0, 0, 0.24);

  width: 130px;

  text-align: center;

  display: block;

  position: absolute;

  left: -33px;

  top: 16px;

  z-index: 1;

  -webkit-transform: rotate(-45deg);

  -ms-transform: rotate(-45deg);

  transform: rotate(-45deg); }

 

Entre los corchetes, hay que añadir la siguiente línea de código:

display: none;

Sobre CNERIS

CNERIS es una empresa constituida por jóvenes emprendedores procedentes de diferentes sectores del mundo de la información. Nuestro equipo está compuesto por programadores, administradores de sistemas, administradores de base de datos, diseñadores gráficos, maquetadores,