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 -->
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é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.
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;
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,