Nuevo Documento de texto View RSS

Hide details



Correos Express - Integración con Prestashop 2 Mar 2016 5:11 AM (9 years ago)

Para la integración de nuestra tienda online con la empresa de transportes Correos Express, hemos elaborado un módulo que genera un documento compatible con su software, una plataforma llamada AlerEti. Este documento debe cumplir las especificaciones que el transportista indica a la hora de hacer la integración, como el número de campos y la longitud y caracteres permitidos en los mismos.


Para ello hemos elaborado un módulo en Prestashop que permite generar este fichero (en formato CSV) relleno con los datos de los pedidos que le indiquemos.

Algunas normas sobre el fichero a generar:


Si estás interesado/a en el módulo y necesitas ayuda, deja un comentario o escríbenos un mail y solucionaremos tus dudas.

Para comprar el módulo es necesario realizar un donativo para la causa de este blog: formar al visitante en la programación, diseño web y comercio electrónico. Indiquen su correo electrónico para el envío del módulo.

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Estructura de archivos de Wordpress y sus plantillas 26 Feb 2016 6:28 AM (9 years ago)

1 - Estructura de archivos de Wordpress

Vamos a analizar de manera breve y sesgada la estructura de directorios de una instalación típica de Wordpress para entenderlo mejor y ser más eficientes.

Estructura de directorios de una instalación de Wordpress
El directorio wp-content incluye, en concreto, dos directorios: plugins, que contendrá únicamente las carpetas y archivos de los plugins; y themes, donde se alojan las plantillas o temas. Éstas serán las ubicaciones de los plugins y temas que creemos o modifiquemos. El resto de los archivos, si bien es relevante, no nos interesa analizar ni modificar. Corresponden al funcionamiento de Wordpress y el administrador de nuestro sitio, y de momento no profundizaremos en eso.

Contenido de wp-content

2 - Estructura de archivos del tema de Worpress


Tema básico de Wordpress

http://www.esandra.com/crear-plantilla-wordpress-desde-cero

/wp-content/themes/mitema

/imagesCarpeta con las imágenes del tema.
/jsCarpeta con los archivos de JavaScript
style.cssHoja de estilos del tema. Obligatoria para que el tema funcione.
index.phpObligatorio para que el tema funcione. Por defecto será la página principal.
screenshot.pngMuestra la imagen en miniatura que se verá en el panel de adminsitración en Apariencia > Temas.
favicon.icoLa imagen que se verá en el navegador y al guardar el marcador.
header.phpMódulo que contiene la cabecera del tema.
sidebar.phpLa barra lateral del tema. Nota: Si queremos más de una barra lateral, se habrán de configurar de modo manual.
footer.phpMódulo que contiene el pie de página del tema.
single.phpEste archivo indica cómo se ve una entrada de blog.
category.phpMuestra cómo se ve la página de resultados de una categoría.
tag.phpMuestra cómo se ve la página de resultados de una etiqueta.
search.phpMuestra cómo se ve la página de resultados de búsqueda.
template.phpPlantilla de página que a título de ejemplo llamaremos template.
functions.phpArchivo con las funciones de nuestro tema de WordPress.

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Prestashop 1.6, clientes y pedidos, stock y combinaciones 2 Feb 2016 7:07 AM (9 years ago)

Estuvimos administrando una tienda online con Prestashop 1.4, para lo que elaboramos unos módulos personalizados para una gestión de stock rápida y fácil. La forma de gestionar el stock ha cambiado desde la versión de Prestashop 1.5, versión que nos hemos saltado por varios motivos (hay muchas discusiones al respecto).

Después de consultar las fuentes que figuran al pie de esta entrada, ahora conocemos mejor cómo las nuevas versiones como Prestashop 1.6 controlan el stock de los productos. Intuimos que este cambio ha sido causado por la aparición de software ERP programado por varias empresas (y la necesidad de éste para tiendas con amplio catálogo y variedad de combinaciones de producto).

Stock en la base de datos

Hola!
A ver en la tabla "ps_stock_available" tienes de cada producto y para cada tienda una entrada con el stock final, eso si, siempre que en Preferencias > Productos tengas la administración avanzada de stock a "no". Si la tienes en sí, el stock se calcula sumando los movimientos de stock de cada almacén de ps_stock_mvt.


En esa tabla se indexan las cantidades del producto por combinaciones. Nuestro módulo filtra las combinaciones de cada producto y las divide según el grupo de atributos que necesitamos. En el caso concreto de www.lacasadeljamon.com.es, el grupo de atributos que controla el stock es el conjunto de pesos de cada producto. Este caso concreto tiene 40 combinaciones por cada peso de cada producto. Teniendo este dato, hemos elaborado un módulo que actualiza las cantidades de estas combinaciones.

Para los productos con combinaciones, en ps_stock_available se establecen las catidades para cada combinación. Hay que añadir otro registro, con id_product_attribute = 0, por cada producto con combinaciones (si no, no se mostrará el botón del carrito en la página del producto). Nuestro módulo tiene una línea concreta en su código para hacer esto.

Sobre los impuestos de los productos

http://www.prestashop.com/forums/topic/284753-problema-a-intentar-importar-archivo-catalago-productos-xampp/

Problema al importar CSV de gran tamaño: http://programadorphp.es/script-para-importar-productos-y-categorias-en-prestashop#comment-14249

La columna de la tabla ps_product que informa de los impuestos del producto NO da la ID FINAL de los impuestos, hay que hacer otra consulta a otra tabla que sí relaciona los campos id_tax_rules_group con id_tax.

No es lo mismo un impuesto (p. ej. IVA 21%) que una regla de impuestos (p. ej. no aplicar IVA a las Islas Canarias), y debemos entender bien este concepto a la hora de trabajar con Prestashop, ya que nos permitirá configurar correctamente los impuestos para determinadas localizaciones.

Sobre el catálogo y los atributos y combinaciones

Encontramos sólo leves diferencias en la base de datos en lo concerniente a las combinaciones de productos. La más notable es de nuevo la inclusión de tablas y campos relativos a la funcionalidad de multitienda que incorpora Prestashop 1.6.

Las siguientes tablas no cambian:

ps_attribute_impact
ps_attribute_lang
ps_attribute_group_lang

ps_product_attribute_combination
*ps_product_attribute_image - de momento no usamos esta tabla


Estas tablas son de la nueva versión exclusivamente:

ps_product_attribute_shop 
ps_attribute_shop
ps_attribute_group_shop

Las siguientes tablas cambian un poco:

ps_attribute: incluye un nuevo campo position
ps_attribute_group: incluye un nuevo campo position y group_type

ps_product_attribute: nuevo campo available

Sobre otras tablas de Prestashop

Tablas que no tienen que ver con productos o combinaciones, pero que incluimos:

ps_order_state: En la nueva versión tiene nuevos campos relativos a los estados del pedido. 

ps_order_state_lang: Las tablas son iguales en las dos versiones.

Importación de clientes

Tablas ps_customer de versiones de Prestashop 1.4 y 1.6.
Los asteriscos indican los campos nuevos de la nueva versión.

TABLA ps_customer Prestashop 1.4 (20 campos)

id_customer
id_gender
id_default_group
secure_key
note
email
passwd
last_passwd_gen
birthday
lastname
newsletter
ip_registration_newsletter
newsletter_date_add
optin
firstname
active
deleted
is_guest
date_add
date_upd


TABLA ps_customer Prestashop 1.6 (31 campos)

id_customer
id_shop_group*
id_shop*
id_gender
id_default_group
id_lang*
id_risk*
company*
siret*
ape*
firstname
lastname
email
passwd
last_passwd_gen
birthday
newsletter
ip_registration_newsletter
newsletter_date_add
optin
website*
outstanding_allow_amount*
show_public_prices*
max_payment_days*
secure_key
note
active
is_guest
deleted
date_add
date_upd


Importación de pedidos

TABLA ps_orders Prestashop 1.4 (32 campos)

id_order
id_carrier
id_lang
id_customer
id_cart
id_currency
id_address_invoice
id_address_delivery
reference
secure_key
payment
conversion_rate
module
recyclable
gift
gift_message
shipping_numbre
total_discounts
total_paid
total_paid_real
total_products
total_products_wt
total_shipping
carrier_tax_rate
total_wrapping
invoice_number
delivery_number
invoice_date
delivery_date
valid
date_add
date_upd


TABLA ps_orders Prestashop 1.6 (44 campos)

id_order
reference
id_shop_group*
id_shop*
id_carrier
id_lang
id_customer
id_cart
id_currency
id_address_invoice
id_address_delivery
current_state*
secure_key
payment
conversion_rate
module
recyclable
gift
gift_message
mobile_theme*
shipping_number
total_discounts
total_discounts_tax_incl*
total_discounts_tax_excl*
total_paid
total_paid_tax_incl*
total_paid_tax_excl*
total_paid_real
total_products
total_products_wt
total_shipping
total_shipping_tax_incl*
total_shipping_tax_excl*
carrier_tax_rate
total_wrapping
total_wrapping_tax_incl*
total_wrapping_tax_excl*
invoice_number
delivery_number
invoice_date
delivery_date
valid
date_add
date_upd


CAMPOS AÑADIDOS DE LA VERSIÓN NUEVA:

id_shop_group*
id_shop*
current_state*
mobile_theme*
total_discounts_tax_incl*
total_discounts_tax_excl*
total_paid_tax_incl*
total_paid_tax_excl*
total_shipping_tax_incl*
total_shipping_tax_excl*
total_wrapping_tax_incl*
total_wrapping_tax_excl*


SOBRE OTRAS TABLAS:

En relación a las tablas de pedidos, destacamos:

- En la nueva versión no existe la tabla ps_order_discount.
- La tabla ps_order_history es idéntica.

Tablas de los transportistas:

Prestashop 1.4:
ps_carrier
ps_carrier_group
ps_carrier_lang
ps_carrier_zone


Prestashop 1.6:
ps_carrier
ps_carrier_group
ps_carrier_lang
ps_carrier_shop*

  - id_carrier
  - id_shop - para multitienda, si no se tiene multitienda siempre es 1
ps_carrier_tax_rules_group_shop*

  - id_carrier
  - id_tax_rules_group
  - id_shop
ps_carrier_zone


Importar lista de clientes, productos, direcciones... con un archivo CSV

Hemos elaborado un módulo que nos permite generar los CSV para importar a Prestashop, gracias al análisis que hemos realizado de los cambios de las tablas de la base de datos.

Algunos de los datos no se puden importar con un CSV, debido a que la plataforma no incluye el recurso para importar esa información. Estos datos los "importamos" con una consulta MySQL que realiza otro módulo personalizado. Lo siguiente es una captura de este módulo, que hemos denominado "setraspasa".

El módulo que copia registros de una base de datos de 1.4 a otra de 1.6


Realizar consultas Mysql en los módulos de Prestashop

SELECT:

$result = Db::getInstance()->ExecuteS("SELECT * FROM  `"._DB_PREFIX_."nombre_tabla`");

INSERT:

Db::getInstance()->Execute('INSERT INTO `'._DB_PREFIX_.'nombre_tabla` (`nombre_campo`) VALUES ("valor")');

Ordenar alfabéticamente los atributos de los productos

Modificar el archivo classes/Product.php, la línea que reza:

ORDER BY ag.`position` ASC, a.`position` ASC, agl.`name` ASC';

Ha de ser cambiada por la siguiente:

ORDER BY ag.`position` ASC, pac.`id_product_attribute`, a.`position` ASC, agl.`name` ASC';

Alineación de atributos con botones de radio:

En themes/nombre_tema/product.css , añadir a  #attributes .attribute_list ul li la propiedad width:100%. Así los elementos de la lista ocuparán todo el ancho disponible y no se amontonarán en la misma línea.


Fuentes
http://www.prestashop.com/forums/topic/336616-reordenar-valores-de-atributos-en-prestashop-16/
http://evamariamontero.com/blog/como-actualizar-un-stock-con-combinaciones-en-prestashop-1-5-6-a-partir-de-un-excel/
http://www.prestashop.com/forums/topic/262154-solucionado-%C2%BFtabla-en-la-que-se-guardan-las-cantidades-de-producto/


Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Crear Widget de Wordpress 23 Jan 2016 4:06 AM (9 years ago)


Un Widget de Wordpress se compone de dos partes:
Incluir el archivo widget.php en la carpeta
wp-content/widget/widget.php.

Contenido de widget.php:

 <?php

/*
Plugin Name: Mi primer Widget mpw
Plugin URI: http://www.txtplano.blogspot.com.es/
Description: Crea un Widget para añadir a cualquier Sidebar.
Version: 1.0
Author: JorgeGL
Author URI: http://www.txtplano.blogspot.com.es/
*/

/* Función que instancia el Widget 

mpw viene de “Mi Primer Widget”, el nombre de la función podéis cambiarlo como queráis
 */


function mpw_create_widget(){   
    include_once(plugin_dir_path( __FILE__ ).'/widget/widget.php');
    register_widget('mpw_widget');
}
add_action('widgets_init','mpw_create_widget');
 

/* Extendemos la clase WP_Widget */

class mpw_widget extends WP_Widget {
    function mpw_widget(){
        // Constructor del Widget.
        $widget_ops = array('classname' => 'mpw_widget', 'description' => "Descripción de Mi primer Widget" );
        $this->WP_Widget('mpw_widget', "Mi primer Widget", $widget_ops);
    }
    function widget($args,$instance){
        // Contenido del Widget que se mostrará en la Sidebar

        echo $before_widget;    
        ?>
        <aside id='mpw_widget' class='widget myp_widget'>
            <h3 class='widget-title'>Mi Primer Widget</h3>
            <p><?=$instance["mpw_texto"]?></p>
        </aside>
        <?php
        echo $after_widget;

   }

    function update($new_instance, $old_instance){
        $instance = $old_instance;
        $instance["mpw_texto"] = strip_tags($new_instance["mpw_texto"]);
        // Repetimos esto para tantos campos como tengamos en el formulario.
        return $instance;  
    }


     function form($instance){
        ?>
         <p>
            <label for="<?php echo $this->get_field_id('mpw_texto'); ?>">Texto del Widget</label>
            <input class="widefat" id="<?php echo $this->get_field_id('mpw_texto'); ?>" name="<?php echo $this->get_field_name('mpw_texto'); ?>" type="text" value="<?php echo esc_attr($instance["mpw_texto"]); ?>" />
         </p>
         <?php
    }

}


?>

Este widget incluye un formulario para incluir texto desde el administrador de Wordpress y mostrarlo directamente en la página.

Luego sólo tendremos que activar el plugin desde el gestor de plugins de WordPress. Hecho esto, vamos a Apariencia > Widgets y lo arrastramos a la Sidebar que mejor nos convenga.

Crear un sidebar par nuestros widgets

Ahora tenemos la posibilidad de crear un sidebar personalizado para anclar nuestros widgets. Con la sidebar no nos referimos a la barra lateral, sino a una zona cualquiera de la plantilla. Debemos elegir dónde insertar el código: si en functions.php o bien en el widget en cuestión. Se recomienda esto último, para no tener que editar el código del theme.

<?php
function miplugin_register_sidebars(){
    register_sidebar(array(
        "name" => "Nombre de la Sidebar",
        "id" => "id-unico-para-la-sidebar",
        "descripcion" => "Descripción de la Sidebar",
        "class" => "clase-del-elemento",
        "before_widget" => "<li id='%1$s' class='%2$s'>",
        "after_widget" => "</li>",
        "before_title" => "<h2 class='titulodelwidget'>",
        "after_title" => "</h2>"
    ));
}
add_action('widgets_init','miplugin_register_sidebars');
?>

Fuentes de referencia:

http://codex.wordpress.org/es:Escribiendo_un_Plugin
https://codex.wordpress.org/Plugin_API/Action_Reference
http://www.codigonexo.com/blog/wordpress-programadores/crear-sidebars-en-wordpress/
http://www.domestika.org/es/forums/6-programacion-servidor/topics/94200-como-crear-tu-propio-sidebar-personalizado-en-wordpress 
http://joanartes.com/blog/sidebar-wordpress/
https://wordpress.org/plugins/multiple-sidebars/installation/ -- Plugin para crear sidebars desde el administrador de Wordpress 

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

CSS responsivo: usos de @media 22 Jan 2016 5:28 AM (9 years ago)

Adición de código CSS para implementar diseño responsivo.
Se recomienta leer:  http://www.desarrolloweb.com/articulos/regla-media-css.html
Fuente: http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=CSS3MediaQueries

Este código a añadir establecerá las directivas de diseño según el tamaño de la pantalla, y los siguientes fragmentos se refieren a algunos de los tamaños de pantalla más utilizados hasta la fecha.

/* Para las resoluciones más pequeñas */
@media only screen and (max-width: 340px) and (min-width: 5px)  { 
  /*reglas css*/
}

/* Para 480px */ 
@media only screen and (max-width: 500px) and (min-width: 341px) { 
  /*reglas css*/

 
/* Para 600px */ 
@media only screen and (max-width: 620px) and (min-width: 501px) { 


/* Para 800px */ 
@media only screen and (max-width: 820px) and (min-width: 621px) { 
  /*reglas css*/


/* Para 960px */ 
@media only screen and (max-width: 980px) and (min-width: 821px) { 
  /*reglas css*/


/* Para mínimo 980px  */ 
@media only screen and (min-width: 981px) { 

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Directivas SEO - Optimización de pagina web 21 Jan 2016 12:13 PM (9 years ago)

Velocidad de carga

Las siguientes imágenes muestran la velocidad de carga más alta conseguida después de habilitar la compresión para HTML en el servidor.


Velocidad de carga en dispositivos móviles

Velocidad de carga en ordenadores de sobremesa

Edición en velocidad de carga: Obtenemos algunas quejas del cliente relativas a la aparente poca calidad del servicio de hosting. Seguimos optimizanto para mejores resultados.

Modificación de texto LOPD - más corto - menos espacio ocupado por plugin

Texto anterior: 

Este sitio web utiliza cookies propias y de terceros para mejorar la experiencia de navegación del Usuario y realizar análisis estadísticos sobre su utilización. Si continúa navegando se considerará que acepta la totalidad de condiciones del AVISO LEGAL, incluida la Política de Cookies. Pulse Aceptar para dejar de visualizar este mensaje.
[cookie_button] [cookie_link]

Evaluación del rendimiento del plugin "Aviso de cookies"

El plugin no nos convence por su HTML, que bloquea el contenido de la parte superior de la página. Div flotante inferior semi-transparente es mejor opción.

Cambio del formulario de comentarios de Wordpress

El cambio hemos de hacerlo e la función wp_comments() que se declara en el archivo wp-includes/comment-template.php*. 

Adición de código .htaccess

Hemos añadido líneas de código al archivo htacess para poder enviar información de fecha de expiración de recursos y comprimir la salida de datos, junto a las funciones de reescritura de URL. El resultado final del archivo .htaccess:

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]

</IfModule>

# END WordPress
# BEGIN GZIP
<ifmodule mod_deflate.c>

AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript

</ifmodule>

# END GZIP

ExpiresActive On
ExpiresDefault A0

# expiracion de 1 mes para archivos estaticos
<FilesMatch "\.(gif|jpg|jpeg|png|swf|js|css)$">
ExpiresDefault "access plus 1 months"

</FilesMatch>

***

* Se encuentra una explicación muy interesante en http://www.mmfilesi.com/blog/modificar-formulario-comentarios-wordpress-sin-usar-un-plugin/

Otras notas sobre el diseño y la optimización

Vídeos embebidos con diseño responsive:


 <div class="cajadevideo">
        <div class="video">
            <iframe src="http://www.youtube.com/embed/XXX"></iframe>
        </div>
        <div class="video">
            <iframe src="http://player.vimeo.com/video/XXX"></iframe>
       </div>
    </div>

.cajadevideo{
    width:560px;
    margin:auto;
}
.video{
    height:0px;
    width:100%;
    max-width:560px;
    padding-top:56.25%;
    position:relative;
}
iframe{
    position:absolute;
    height:100%;
    width:100%;
    top:0px;
    left:0px;
}

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Javascript relojes y repeticiones 21 Jan 2016 12:09 PM (9 years ago)

Usar setInterval(función, milisegundos) para ejecutar una función con un retraso de milisegundos.
No lo hace repetidamente, pero una estrategia común es ejecutar el código y llamar a setTimeout al final del script.


<!DOCTYPE html>
<html>
<head>
<script>
function startTime() {
    var today = new Date();
    var h = today.getHours();
    var m = today.getMinutes();
    var s = today.getSeconds();
    m = checkTime(m);
    s = checkTime(s);
    document.getElementById('txt').innerHTML =
    h + ":" + m + ":" + s;
    var t = setTimeout(startTime, 500);
}
function checkTime(i) {
    if (i < 10) {i = "0" + i};  // add zero in front of numbers < 10
    return i;
}
</script>
</head>

<body onload="startTime()">

<div id="txt"></div>

</body>
</html>


Cuenta Atrás

var count=30;

var counter=setInterval(timer, 1000);

function timer()
{
  count=count-1;
  if (count &lt;= 0)
  {
     clearInterval(counter);
     //termina el contador
     return;
  }

  //Aquí el código para mostrar los segundos
    document.getElementById('contador').innerHTML = count;
}

<div id="contador"></div>

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Evento onclick en Javascript 21 Jan 2016 12:08 PM (9 years ago)

Usando el siguiente div:

<div id="probando"
style="display:block;height:50px;width:50px;" 
onclick="myFunction()">
Prueba con javascript
</div>

Vamos a realizar algunos ejercicios con el evento onclick de javascript.


"Herramientas":

- Obtener un elemento por su ID: document.getElementById("id") en cada ejemplo.
- Un poco de HTML (el div anterior), con algo de estilo y el evento onclick asociado a una función que hemos llamado myFunction
- Para el primer ejemplo, obtenemos las medidas del elemento con .offsetWidth y .offsetHeight
- Para el segundo, establecemos el color con .style.color
- Para el primero y el tercero, establecemos las medidas con .style.width y .style.height

1- Ampliar y reducir según tamaño

<script>
    
function myFunction() {

    var ancho = document.getElementById("probando").offsetWidth;

    var alto = document.getElementById("probando").offsetHeight; 
    
    if (ancho<100) {
        document.getElementById("probando").style.width = "100px";
        document.getElementById("probando").style.height = "100px";
    } else {
        document.getElementById("probando").style.width = "50px";
        document.getElementById("probando").style.height = "50px";
    
    }
}


</script>

2- Cambiar color de fondo

<script>
function myFunction() {
    document.getElementById("probando").style.color = "red";
}
</script>

3- Establecer tamnaño

<script>
function myFunction() {
    document.getElementById("probando").style.width = "100px";
    document.getElementById("probando").style.height = "100px";
    
}
</script>

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Control de equipos conectados a una red WiFi 21 Jan 2016 2:43 AM (9 years ago)

Es posible obtener cierta información sobre los equipos conectados a un router WiFi, si disponemos de acceso al router, que normalmente cuenta con la dirección IP con un formato parecido a 192.168.x.x.


Esta información puede ser más o menos completa, según el modelo del router, pero normalmente consta de la dirección IP que el router le asigna a cada equipo, y la dirección MAC del mismo.

Aunque no tenga que ver directamente con el tema que tratamos ahora, recomiendo cambiar la contraseña de acceso al panel de control del router. Es un hábito poco común, y la contraseña que viene por defecto suele ser demasiado sencilla, y estar incluida en bases de datos para el disfrute de los intrusos.

Podemos obtener un listado de los equipos actualmente conectados a la red, o incluso de los que alguna vez se conectaron. La información puede extenderse a la fecha y hora exactas en las que se conectaron, el tiempo que estuvieron conectados, su actividad en la red...

Es posible bloquear todos los equipos salvo una lista, o todos los equipos pertenecientes a una lista. El bloqueo puede hacerse por dirección IP o por MAC.


Se deduce que no es seguro conectarse a una red WiFi que no es de confianza, ya que el usuario del router dispondría de información sobre nuestro equipo y puede que de acceso al mismo.

IMÁGENES POR CORTESÍA DE:
http://bgr.com/2014/07/02/smartphone-security-tips-tricks/
http://ikeepsafe.org/be-a-pro/online-security/

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

El Universo 9 Jan 2016 2:33 AM (9 years ago)

Desde Microsiervos, el universo observable visto por el artista Pablo Carlos Budassi

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Ejemplo de creación triggers MySQL con phpMyAdmin 2 Jan 2016 4:53 AM (9 years ago)

Actualmente tengo dos maneras de crear un trigger en una tabla de una base de datos MySQL.


1- Usando el formulario que phpMyAdmin nos facilita. Ponerle un nombre, elegir la tabla, decidir si se hará antes o después del evento, seleccionar uno de los tres eventos (AFTER, DELETE, UPDATE). He dejado el campo del definidor vacío, y se ha autorellenado con el usuario de la base de datos (gracias phpMyAdmin, no lo recordaba de memoria).


2- Escribiendo el código directamente en el phpMyAdmin. Es decir, escribiendo algo similar a lo siguiente:

CREATE TRIGGER nuevotrigg 
AFTER INSERT 
ON ps_order_detail 
FOR EACH ROW 
BEGIN 
INSERT INTO disparador (`pedido_n`, `id_detalle`) VALUES (NEW.id_order,NEW.id_order_detail) END

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Tcl - matrices 12 Nov 2015 2:54 AM (9 years ago)

 Uso de la librería: http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/struct/matrix.html#9

# Para empezar a trabajar

package require struct

# Creamos matriz vacía

::struct::matrix mymatrix

# Información sobre la matriz

mymatrix cells
mymatrix rows
mymatrix columns

# Añadir filas y columnas
#Añadimos valores fijos, tenemos una matriz de 1x1

mymatrix add column 5
mymatrix add column 5
mymatrix add row 5
mymatrix add row 5

mymatrix cells
mymatrix rows
mymatrix columns

# Para verla

mymatrix format 2string

# Próximas funciones para estudiar

# matrixName insert column column ? values?
# matrixName insert row row ? values?

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Modificar una plantilla de Prestashop 1.6 31 Jul 2015 12:34 AM (9 years ago)

Versión 1.6
En mi anterior entrada sobre modificar una pantilla de Prestashop (1.4) expliqué lo más básico para poder conocer y editar los archivos necesarios para que nuestra tienda online adquiera el aspecto que queramos.

Me detendré en las diferencias desde aquella entrada: de Prestashop 1.4.3 a 1.6.0.6 - también abordaremos el trabajo con más conocimientos de programación y documentándonos más en foros y en el dashboard.

Primeras impresiones de la nueva versión

La instalación sigue siendo sencilla y rápida. El .rar descargado de la página oficial sigue siendo bastante liviano. Sin problemas para instalar en local.

Herramienta de personalización: Esto es una cosa que siempre faltaba en todas las versiones. Puede ser muy útil para probar distintas combinaciones de color en la plantilla antes de decidirse por una. La herramienta está un poco limitada por los pocos colores que ofrece y lo limitado de las fuentes, aunque muy bien escogidas.

Herramienta de personalización
Cambios en la plantilla del Back-Office: No hay más que ver la plantilla para intuir algunas mejoras en la organización y el diseño, con un menú lateral (que siempre he preferido al horizontal) con efecto hover desplegable para los submenús. Un apunte sobre las estadísticas: el enlace a la cuenta de Google Analytics.

Vistazo breve al Back Office, estadísticas

(Un saludo a JordiOb - http://jordiob.com/2014/02/prestashop16/)

Mejora del acceso rápido: Lo de "añadir esta página" es simplemente muy útil.



Multitienda:  Esta versión de Prestashop admite multitienda, algo que hemos de tener en cuenta en el caso en que necesitemos importar tablas bases de datos de otras versiones a la nueva versión. Algunas tablas incorporan un campo id_shop o una tabla más con el sufijo _shop para mejor gestión entre tiendas. Por ejemplo, podemos mencionar las tablas relativas a las características de productos, o features.

Y muchas otras cosas que no nos da tiempo a comentar... relativas a la nueva distribución de archivos y carpetas, a rendimiento o al SEO.

En esta ocasión trataremos de no realizar todos los cambios directamente en el archivo gobal.css, sino que haremos los cambios usando la carpeta override y/o módulos extra para cargar el nuevo estilo. Pero antes tenemos que tener una copia a salvo del tema original. Así que vamos a crear un tema personalizado de Prestashop 1.6 a partir del tema default-bootstrap que viene instalado por defecto.

Crear el tema nuevo

Desde el B.O. > Preferencias > Temas, elegimos la opción Añadir Tema de la parte superior. Esto nos permite crear un tema a partir de otro existente (haciendo scroll hacia abajo lo podremos ver), que es realmente lo que nos interesa.

Borrar la caché

Parámetros avanzados > Rendimiento.
A veces es aconsejable reiniciar un módulo que no funcione bien después de un cambio de tema o de una intalación de un tema nuevo - por ejemplo, a mi menú horizontal le fallaba el CSS después de instalar un neuvo tema personalizado, y se solucionó así.

Usar Override


(Contenido original: http://prestadb.com/prestashop-override-controllers-tutorial/)


Módulo Configurador de Temas

Este módulo viene instalado por defecto y nos ayuda a modificar las imágenes del tema. El tema incorpora unas imágenes fijas que quedan bastante bien en el diseño por defecto, pero que es muy probable que queramos cambiar o quitar. Desde el módulo Configurador de Temas podemos incluso asignar una imagen a cada idioma instalado. También tendremos una sencilla manera de agregar o quitar el banner superior, amén de otras opciones que merece la pena revisar.

Algunos tweaks y fixes

Es decir, pequeños retoques rápidos a la plantilla para modificar detalles del aspecto de la tienda. Algunos de ests retoques no están orientados al diseño de producción final, sino sólo a una vista previa provisional mientras se decide el aspecto final del tema.

Quitar pestañas "populares" y "nuevos" del módulo homefeatured

- http://www.prestashop.com/forums/topic/342514-como-eliminar-barra-nuevos-populares/

- Cambiar la línea del CSS:

#home-page-tabs {
padding: 10px 0;
margin: 0 0 0 -18px;
display: none;
}



Cambiar número de productos por fila en homefeatured

Resumen de los pasos a seguir para lograr cambiar el número de productos por fila de la página de inicio. Puede servir como pequeña guía para lograr el msimo efecto en otras páginas de productos - como categorías o productos más vistos.

1 - Crear un estilo css como el que sigue:

.col-md-23 {
     width: 20%;
}


Un 20% nos permitirá mostrar 5 productos por fila. Lo insertamos entre .col-md-2 y .col-md-3
Para mostrar 4 productos por fila en categorías, no necesitamos más CSS del que ya está especificado en la plantilla.

2- Editar product-list.tpl

{if $page_name !='index' && $page_name !='product'}
{assign var='nbItemsPerLine' value=4}
{assign var='nbItemsPerLineTablet' value=2}
{assign var='nbItemsPerLineMobile' value=3}
{else}
{assign var='nbItemsPerLine' value=5}
{assign var='nbItemsPerLineTablet' value=3}
{assign var='nbItemsPerLineMobile' value=2}
{/if}


3- Cambio del tamaño de las imágenes

En Preferencias > Imágenes cambiamos el tamaño de las imágenes home_default de 250 x 250 a 200 x 250. Regeneramos las miniaturas correspondientes en la misma sección.

4- Uso de la clase css que hemos creado (en product-list.tpl)

Original:

<li class="ajax_block_product{if $page_name == 'index' || $page_name == 'product'} col-xs-12 col-sm-4 col-md-3{else} col-xs-12 col-sm-6 col-md-4{/if}

Modificado:

<li class="ajax_block_product{if $page_name == 'index' || $page_name == 'product'} col-xs-10 col-sm-4 col-md-23{else} col-xs-12 col-sm-4 col-md-3{/if}

5- Notas relativas al sistema grid:

Prestashop 1.6 usa un sistema de rejills (grid) en la que el ancho máximo es de 12 columnas. Las clases para index.php son

col-xs-12 col-sm-4 col-md-3

Esto significa

col-sm-4 para tablets (= 3 columnas) => 3x4=12
col-md-3 para PC (= 4 columnas) => 4x3=12

Es necesario cambiar las clases para obtener un número de columnas distinto, o bien crear clases nuevas.

Fuente: https://www.prestashop.com/forums/topic/316622-how-to-add-more-columns-to-product-list-on-ps-16/

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Ejemplo de consulta cruzada SQL 25 Jul 2015 5:00 AM (9 years ago)

Una consulta cruzada es una consulta MySQL que toma datos de varias tablas que comparten campos. Por ejemplo, la tabla ps_product contiene un campo id_product, al igual que la tabla ps_product_lang.


En la siguientes consultas intervienen varias tablas de Prestashop. Hemos tenido que hacer varias consultas parecidas para nuestros módulos personalizados de la versión 1.4, y nos encontramos actualizando estos módulos a la nueva versión (1.6), con lo que hemos de revisar estas consultas.

Para leer sobre más formas de combinar las tablas (INNER JOIN, RIGHT JOIN): https://es.wikipedia.org/wiki/Join

Os invito a probar estas consultas en vuestro PHPMyAdmin.

SELECT DISTINCT ppl.id_product AS IDPRODUCT,
ppl.name AS NAME,
pp.active AS ACTIVE,
pp.reference AS REFERENCIA,

pcl.name AS NOMBRECAT
 

FROM ps_product_lang ppl

LEFT JOIN ps_product pp ON ppl.id_product=pp.id_product
LEFT JOIN ps_category_lang pcl ON pp.id_category_default=pcl.id_category

WHERE ppl.id_lang=3 AND pcl.id_lang=3
ORDER BY pp.reference ASC



**


SELECT DISTINCT pal.name AS PALNAME,
pal.id_attribute AS PALIDATTRIBUTE,
ppac.id_product_attribute AS PPACIDPRODATTRIBUTE,
ppa.id_product AS PPAIDPROD

FROM ps_attribute_lang pal
          
LEFT JOIN ps_product_attribute_combination ppac ON pal.id_attribute=ppac.id_attribute
LEFT JOIN ps_product_attribute ppa ON ppac.id_product_attribute=ppa.id_product_attribute

WHERE pal.id_lang=1
ORDER BY ppa.id_product ASC 



**


SELECT DISTINCT pal.name AS PALNAME,
pal.id_attribute AS PALIDATTRIBUTE,
ppac.id_product_attribute AS PPACIDPRODATTRIBUTE,
ppa.id_product AS PPAIDPROD,
pa.id_attribute_group AS PAIDATTRIBGROUP
 

FROM ps_attribute_lang pal

LEFT JOIN ps_product_attribute_combination ppac ON pal.id_attribute=ppac.id_attribute 
LEFT JOIN ps_product_attribute ppa ON ppac.id_product_attribute=ppa.id_product_attribute
LEFT JOIN ps_attribute pa ON pal.id_attribute=pa.id_attribute
           

WHERE pal.id_lang=1 AND pag.id_group=4
ORDER BY ppa.id_product ASC

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

SEO Prestashop - metaetiquetas de idiomas - hreflang 10 Jun 2015 2:22 AM (9 years ago)

Esta modificación genera unas metaetiquetas en la sección head de cada página de nuestra tienda online Prestashop. Testado en la versión 1.4.


Hemos encontrado que se indexan páginas de otros idiomas en los buscadores, para evitar esto hacemos uso de las etiquetas hreflang, que ayudan a los buscadores a organizar nuestra información traducida y dirigida a determinadso idiomas/regiones. En nuestro ejemplo usamos una versión simplificada de estas etiquetas, ya que sólo nos interesa gerenar metaetiquetas para los visitantes según su idioma.

Así, para una página en 3 idiomas, tenemos tres URL para la misma página:
Por lo que las etiquetas se podrían mostrar de la siguiente manera:
Mediante MySQL, hacemos una consulta a la base de datos para mostrar las URL alternativas de cada página de nuestro sitio. Incluimos esta consulta en la cabecera de nuestro sitio, dentro de la sección head. Concretamente, en Prestashop debemos modificar el archivo header.tpl.

Añadir código PHP con MySQL a nuestro header.tpl es la forma más sencilla de implementar este cambio. Para una modificación más avanzada se recomienda hacer uso del override (de cara a futuras actualizaciones), o incluso crear una función en las clases de Prestashop (/classes/Meta.php) para que al mostrar las metaetiquetas de las descripciones o las palabras clave se mustren también los hreflang.

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Imágenes en la web 6 May 2015 1:06 AM (10 years ago)

A la hora de utilizar imágenes en el diseño de una página web, es necesario tener en cuenta varios factores que permitan su apropiada visibilidad y consumo de recursos.

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Comando Send, Google Chrome, OCR. Autoit 6 Mar 2015 11:15 AM (10 years ago)

Comando Send de Autoit *


- Para enviar un valor ASCII (Cuando se usan 2 dígitos de código ASCII deben ir precedidos de un 0, de otro modo es usado la página de código obsoleta 437).
Send("{ASC 065}")

- Para enviar caracteres UNICODE
Send("{ASC 2709}")

- Teclas repetidas
Send("{DEL 4}") ;se presiona la tecla DEL 4 veces
Send("{S 30}") ;se envían 30 caracteres 'S'
Send("+{TAB 4}");se presiona SHIFT+TAB 4 veces

- Mantener una tecla presionada
Send("{a down}"); tecla A pulsada
Send("{a up}"); tecla A soltada

- También pueden usarse variables
$n = 4
Send("+{TAB " & $n & "}")

- Muchos teclados netbook y portátiles tienen una tecla especial Fn. Esta tecla no puede ser simulada.

- Ejemplo de navegación por carpetas con Send:
Send("{TAB}") Navega hacia el próximo control (boton, checkbox, etc)
Send("+{TAB}") Navega al control anterior
Send("^{TAB}") Naveha hacia la próxima pestaña de la ventana (en ventanas de pestañas)
Send("^+{TAB}") Navega hacia la pestaña anterior
Send("{SPACE}") Puede ser usado para marcar un checkbox o hacer click en un botón
Send("{+}") Usualmente marca un checkbox (si es un checkbox "real")
Send("{-}") Usualmente desmarca un checkbox
Send("{NumPadMult}") Recursivamente expande las carpetas en un árbol de tipo SysTreeView32

- Use combinaciones Alt-tecla para acceder a los item en un menú. También, abra Notepad y pruebe lo siguiente:
Send("!f") Envía Alt+f, tecla de acceso para el menú Archivo de Notepad. Pruebe otras teclas!

Send("{DOWN}") Moverse hacia abajo en un menú
Send("{UP}") Moverse hacia arriba en un menú
Send("{LEFT}") Moverse hacia la izquierda a un nuevo menú o expandir un submenú
Send("{RIGHT}") Moverse hacia la derecha a un nuevo menú o contraer un submenú

Ver la Ayuda de Windows--presione Win+F1--para una completa lista de métodos abreviados por teclado para saber usar Alt+F4, PrintScreen, Ctrl+C, y otros.


Lista de comandos para Send (flag = 0)

{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{SPACE} SPACE (espacio)
{ENTER} ENTER key on the main keyboard (enter del teclado principal)
{ALT} ALT
{BACKSPACE} or {BS} BACKSPACE
{DELETE} or {DEL} DELETE (suprimir)
{UP} Up arrow (cursos arriba)
{DOWN} Down arrow (cursos abajo)
{LEFT} Left arrow (cursor izquierda)
{RIGHT} Right arrow (cursor derecha)
{HOME} HOME (inicio)
{END} END (fin)
{ESCAPE} or {ESC} ESCAPE (escape)
{INSERT} or {INS} INS (insertar)
{PGUP} PGUP (página arriba)
{PGDN} PGDN (página abajo)
{F1} - {F12} Function keys (teclas de funciones)
{TAB} TAB (tabular)
{PRINTSCREEN} PRINTSCR
{LWIN} Left Windows key (tecla windows izquierda)
{RWIN} Right Windows key (tecla windows derecha)
{NUMLOCK} NUMLOCK (tecla activar teclado)
{CTRLBREAK} Ctrl+Break
{PAUSE} PAUSE (pausa)
{CAPSLOCK} CAPSLOCK (mayúscula)
{NUMPAD0} - {NUMPAD9} Numpad digits (dígitos del teclado numérico)
{NUMPADMULT} Numpad Multiply (multiplicar del teclado numérico)
{NUMPADADD} Numpad Add (adicionar del teclado numérico)
{NUMPADSUB} Numpad Subtract (sustraer del teclado numérico)
{NUMPADDIV} Numpad Divide (dividor del teclado numñerico)
{NUMPADDOT} Numpad period (punto del teclado numérico)
{NUMPADENTER} Enter key on the numpad (tecla enter del teclado numérico)
{APPSKEY} Windows App key
{LALT} Left ALT key (tecla Alt izquierda)
{RALT} Right ALT key (tecla Alt derecha)
{LCTRL} Left CTRL key (tecla Control izquierda)
{RCTRL} Right CTRL key (tecla Control derecha)
{LSHIFT} Left Shift key (tecla Shift izquierda)
{RSHIFT} Right Shift key (tecla Shift derecha)
{SLEEP} Computer SLEEP key (tecla Suspender )
{ALTDOWN} La tecla ALT key down until e ue ue ue ue ue ue ue ue ue {ALTUP} is sent
{SHIFTDOWN} La tecla SHIFT es presionada hasta que {SHIFTUP} es enviado
{CTRLDOWN} La tecla CTRL es presionada hasta que {CTRLUP} es enviado
{LWINDOWN} La tecla izquierda de Windows es presionada hasta que {LWINUP} es enviado
{RWINDOWN} La tecla derecha de Windows es presionada hasta que {RWINUP} es enviado
{ASC nnnn} Envía combinaciones de teclas ALT+nnnn

{BROWSER_BACK} Sólo en 2000/XP: Seleccionar el botón "Atras" del navegador
{BROWSER_FORWARD} Sólo en 2000/XP: Seleccionar el botón "Previo" del navegador
{BROWSER_REFRESH} Sólo en 2000/XP: Seleccionar el botón "Actualizar" del navegador
{BROWSER_STOP} Sólo en 2000/XP: Seleccionar el botón "Detener" del navegador
{BROWSER_SEARCH} Sólo en 2000/XP: Seleccionar el botón "búsqueda " del navegador
{BROWSER_FAVORITES} Sólo en 2000/XP: Seleccionar el botón "Favoritos" del navegador
{BROWSER_HOME} Sólo en 2000/XP: Inicia el navegador y carga la página de inicio
{VOLUME_MUTE} Sólo en 2000/XP: Fija el volumen a cero
{VOLUME_DOWN} Sólo en 2000/XP: Reduce el volumen
{VOLUME_UP} Sólo en 2000/XP: Incrementa el columen
{MEDIA_NEXT} Sólo en 2000/XP: Selecciona "próxima pista" en el media player
{MEDIA_PREV} Sólo en 2000/XP: Selecciona "previa pista" en el media player
{MEDIA_STOP} Sólo en 2000/XP: Detiene el media player
{MEDIA_PLAY_PAUSE} Sólo en 2000/XP: Reproduce/pausa el media player
{LAUNCH_MAIL} Sólo en 2000/XP: Inicia la aplicación de email
{LAUNCH_MEDIA} Sólo en 2000/XP: Inicia el media player
{LAUNCH_APP1} Sólo en 2000/XP: Inicia la aplicación1 de usuario
{LAUNCH_APP2} Sólo en 2000/XP: Inicia la aplicación2 de usuario

*Fuente: https://foro.udtools.net/showthread.php?9473-Referencia-r%E1pida-para-comandos-Send(-quot-keys-quot-flag-)-Ctrl-!-Alt-Sh7

UDF Google Chrome - Autoit *

Descargar:
https://docs.google.com/file/d/0B_6JmwNIIZ06enotRTVFNVdKOXM/edit
AutoIT for Google Chrome.crx
Es una extensión de Chrome. Se puede instalar por medio de drag & drop en la sección de extensiones del navegador. Hay que permitirle el acceso ala rchivos (opción visible desde chrome al instalarlo).

Descargar y ejecutar:
https://docs.google.com/file/d/0B_6JmwNIIZ06eDgxaVJPNUNxa28/edit?usp=sharing

Meter el archivo chrome.aue3 en la carpeta include de AutoIT (C:\Program Files\AutoIt3\Include),
se descarga del msimo post: http://www.autoitscript.com/forum/topic/154439-chrome-udf/

Y cerrar el Chrome. (¿Y cómo desinstalar?...)

*Fuente: http://www.autoitscript.com/forum/topic/154439-chrome-udf/

OCR con Autoit gracias al open source; Tesseract *

Disponible en Google: https://code.google.com/p/tesseract-ocr/

*Fuente: http://www.autoitscript.com/forum/topic/154439-chrome-udf/

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Liberar espacio de smartphone con Android 17 Nov 2014 2:36 PM (10 years ago)

Problema: Nuestro smartphone se queda sin memoria cada cierto tiempo, por mucho que intentemos liberar espacio, siempre le falta memoria.

Explicación: Una cosa es la memoria interna, memoria de "sistema", y otra la memoria de nuestra tarjeta SD. Es probable que la memoria interna acabe pronto llena por actualizaciones, aplicaciones preinstaladas y demás (atención a la aplicación Servicios de Google Play, necesaria para el funcionamiento de otras aplicaciones, que consume mucha memoria y gasta mucha batería, y de la que se habla aquí: http://www.elandroidelibre.com/2013/11/el-inexplicable-gasto-de-bateria-provocado-por-google-play-services-no-solo-te-ocurre-a-ti.html y también aquí: http://foros.softonic.com/moviles/servicios-google-play-115239).

Solución: Debemos liberar espacio de nuestra memoria interna y utilizar la tarjeta de memoria SD. Para ello podemos rootear el terminal y así poder usarlo de manera más eficiente. Lamentablemente, el proceso de rootear un smartphone depende del modelo y sus características, por lo que no podemos explicarlo de manera eficiente aquí. Sin embargo, podemos deciros que anula la garantía, aunque es un proceso completamente reversible. Y si estás realmente interesado en el tema, consulta alguna de nuestras fuentes:

- Interesante entrada al respecto: http://www.poderpda.com/editorial/6-razones-para-rootear-tu-android/

- Una guía para empezar a rootear varios modelos de smarthpones: http://www.xatakandroid.com/tutoriales/aprende-a-rootear-tu-android-de-manera-facil-y-rapida

- Rootear un LG-E400:
https://www.youtube.com/watch?v=e38drkQHCRE 

- Rootear y flasheo de un LG-E400: 
https://www.youtube.com/watch?v=MsVyE-sh9C4

http://www.androidpit.es/borrar-aplicaciones-preinstaladas-android

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

AEPD, ficheros - resumen de acción administrativa 7 Oct 2014 2:59 AM (10 years ago)

¿Cómo cumplir con la Ley orgánica de Protección de Datos (LOPD)?

La LOPD establece las obligaciones que los responsables de los ficheros o tratamientos y los encargados de los tratamientos, tanto de organismos públicos como privados, han de cumplir para garantizar el derecho a la protección de los datos de carácter personal.

Cuando un negocio cambia de dirección y añade unas cámaras de seguridad para su local, necesita de la modificación de sus ficheros en la AEPD (Agencia Española de Protección de Datos) y de la inscripción de nuevos ficheros.


Para la modificación de ficheros existentes:

1- Entrar en www.agpd.es
2- Canal del responsable > Inscripción de ficheros
3- Obtención del Formulario NOTA
4- Debajo del todo: "Formulario NOTA de titularidad privada"

Es necesario modificar los apartados que incluyen la dirección física del negocio:

1- Responsable del fichero
2- Derechos de oposición.

Para un posible error "Problema de renegociación de SSL - Firefox": 

Escribir en la barra de direcciones del navegador about:config y cambiar security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref 
de false a true.

Necesitamos el código de inscripción que nos dio la Agencia cuando inscribimos el fichero por primera vez. Por lo que es necesario solicitar una copia de los ficheros que incluya el código de inscripción. Vamos a resumir esto último:

1 - Nos dirigimos al apartado sede.electronica@ (columna derecha).
2 - Vamos a "Solicitud de Copia de la Inscripción de Ficheros". Se puede solicitar con firma electrónica o por correo ordinario, imprimiendo y firmando un documento descargable.

Para obtener la firma electrónica (si no se dispone de ella):

1 - El certificado eletrónico para la mayoría de organismos públicos lo expede www.cert.fnmt.es/
2 - Es aconsejable instalar un sotfware para configurar el equipo/navegador para el uso de firma electrónica, y ejecutarlo con permisos de administrador. Se pedirá que los navegadores sean cerrados para una correcta instalación. También un reinicio del sistema al finalizar.
3 - Luego de solicitarlo mediante el formulario disponible en su portal, hay que recogerlo personalmente en alguna de sus oficinas. Se muestra un mapa con las localizaciones de todas las oficinas de España.

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Frase del día 28 Aug 2014 2:28 AM (10 years ago)


Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Bloquear notificaciones de juegos de Facebook 23 Jul 2014 2:13 AM (10 years ago)

Tienes dos maneras:

1- Pulsando en el icono de notificaciones (la bola del mundo) y dejando el ratón sobre la notificación del juego en cuestión, aparece un aspa para bloquearla.

2- O bien vas a Configuración > Bloqueos, y allí puedes bloquear invitaciones de usuarios concretos o bien de aplicaciones concretas (juegos), solamente escribiendo el nombre.

Configuración

Configuración > Bloqueos

Fuente: http://www.tuexperto.com/2014/02/04/como-desactivar-notificaciones-de-juegos-en-facebook/

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Tomando apuntes 6 Jun 2014 12:43 AM (10 years ago)

Somos animales de costumbres. Siempre he tomado apuntes a mano, elaborando esquemas y resúmenes que me ayudan a ordenar mis pensamientos.
La imagen que muestro a continuación es un escaneo de los apuntes que tomaba mientras me llamaba mi asesor de Google. Gestiono las cuentas y herramientas de Google de uno de mis clientes.
Es cierto que mi caligrafía es pésima y algo "sucia", pero tened en cuenta que estaba hablando por teléfono mientras escribía.
Escribirlo en un papel me sirve para memorizarlo mejor, y no lo tengo que volverlo a leer, ya que son herramientas relativamente fáciles de usar y que miramos cada día.


Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Cambios en el tema de Prestashop 1.5 29 Apr 2014 12:59 AM (11 years ago)

Breves notas sobre algunos cambios en la plantilla por defecto de la versión de Prestashop 1.5 - procedimiento en el que elaboramos un archivo de texto que sirvió como log para llevar al día las modificaciones realizadas en la plantilla. En esta entrada sólo se incluye el principio del archivo.



Cambios en el tema por defecto de Prestashop

LOCALHOST - tema por defecto:

 /*cambio1 #383838*/  #4b97ab
 /*cambio1 #333*/  #4b97ab

El gris oscuro de fondo es el color #383838 que aparece 2 veces en global.css.
También en el footer (#333) y el menú horizontal: /modules/blocktopmenu/css/superfish-modified.css.

Un buen sitio para esto de los colores: http://www.color-hex.com/

Cambio en la fuente:  font:normal 11px/14px Arial, Verdana, sans-serif;
añadimos /*cambio 2*/ con varias fuentes:

/*cambio 2 font:normal 11px/14px Arial, Verdana, sans-serif;*/ 
/*font:normal 11px/14px Georgia, Arial, sans-serif;*/
/*font:normal 11px/14px Cambria, Arial, sans-serif;*/
/*font:normal 11px/14px Verdana, Arial, sans-serif;*/
/*font:normal 11px/14px Constantina, Arial, sans-serif;*/
/*font:normal 11px/14px Century Gothic, Arial, serif;*/
font:normal 11px/14px Century Gothic, Arial, sans-serif;

Un buen artículo sobre las fuentes y la compatibilidad: http://www.elwebmaster.com/articulos/fuentes-seguras-para-la-web-como-y-cuales-son

Instalar nuevos temas desde archivo .rar

Descargando temas gratuitos: http://demo.devilthemes.com/blackhawk/

Este tema incluye un módulo slider propio. En la carpeta descargada está separado del tema. Poner cuidado en subir la carpeta del tema y la del módulo en sus lugares correspondientes.

La distribución trae un módulo denominado Theme Installler para poder importar o exportar temas. La instalación ha "detectado" el módulo devilslider que incluía el tema.

Aparece esta advertencia al finalizar la subida del archivo:

Advertencia: Copia/Pegue los errores si quiere establecer manualmente el tipo de la imagen (en la página "Imágenes" debajo del menu "Preferencias"):
Algunos tipos de imágenes no se pueden añadir porque ya existen. Esta es la lista:
A veces podemos encontrarnos con un problema a la hora de subir temas, relativos a la configuración del tamaño máximo de archivo permitido de dichos archivos. Se soluciona configurando correctamente el B.O. y cambiando ciertos valores y archivos del servidor. Más información: http://promokit.eu/forums/topic/an-error-has-occurred-during-the-file-upload/

Cambios en el logotipo y cabecera

El logotipo de nuestro nuevo diseño tiene un tamaño superior y proporciones distintas al que incorpora por defecto el tema descargado. Hemos notado (gracias a Firebug) que los elementos de la cabecera están colocados mediante CSS en posición absoluta con respecto al "top". 

themes/blackhawk/css/modules/blocklanguages.css
themes/blackhawk/css/modules/blockuserifo.css
themes/blackhawk/css/blocktopmenu/css/superfish-modified.css

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Prestashop y Nacex 29 Apr 2014 12:47 AM (11 years ago)

Después de la entrada anterior, Prestashop y MRW, le toca a otra agencia importante en España, por la calidad y la versatilidad de su servicio de transporte de paquetería. Es el turno de NACEX, cuyo logotipo luce así:


La agencia de transportes me ha contactado con el módulo y la documentación para Prestashop, para poner en marcha la integración. Aportaré en esta entrada parte de las instrucciones y mi experiencia con el módulo.

Como en el caso de MRW, el departamento de informática de la agencia nos envía los datos necesarios para la correcta instalación del módulo. Además, hay que concretar el tipo de tarifa pactado para indicarlo en el módulo, ya que Nacex dispone de varias tarifas comerciales con nombres distintos (por ejemplo "Nacex 19:00h", o "EuroNacex").

Etiqueta generada por el módulo e impresa con la etiquetadora

Nacex nos ha proporcionado una etiquetadora que funciona directamente con el módulo, así como las instrucciones para configurar el navegador y poder imprimir las etiquetas de los pedidos directamente desde el B.O.. Las etiquetas incluyen con toda la información del envío y su código de barras para el pistoleo de los paquetes.

Aspecto del módulo de Nacex en el B.O.

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Desplegable de provincias españolas HTML 28 Apr 2014 2:27 AM (11 years ago)

Vía RecorteX: http://www.planetacodigo.com/recortex/recorte/43



<select name="provincia">
<option value="">- selecciona -</option>
<option value="15">A coru&#241;a</option>
<option value="1">&#193;lava</option>
<option value="2">Albacete</option>
<option value="3">Alicante</option>
<option value="4">Almer&#237;a</option>
<option value="33">Asturias</option>
<option value="5">&#193;vila</option>
<option value="6">Badajoz</option>
<option value="7">Baleares</option>
<option value="8">Barcelona</option>
<option value="9">Burgos</option>
<option value="10">C&#225;ceres</option>
<option value="11">C&#225;diz</option>
<option value="39">Cantabria</option>
<option value="12">Castell&#243;n</option>
<option value="51">Ceuta</option>
<option value="13">Ciudad Real</option>
<option value="14">C&#243;rdoba</option>
<option value="16">Cuenca</option>
<option value="99">Extranjero</option>
<option value="17">Girona</option>
<option value="18">Granada</option>
<option value="19">Guadalajara</option>
<option value="20">Guip&#250;zcoa</option>
<option value="21">Huelva</option>
<option value="22">Huesca</option>
<option value="23">Ja&#233;n</option>
<option value="26">La rioja</option>
<option value="35">Las palmas</option>
<option value="24">Le&#243;n</option>
<option value="25">Lleida</option>
<option value="27">Lugo</option>
<option value="28">Madrid</option>
<option value="29">M&#225;laga</option>
<option value="52">Melilla</option>
<option value="30">Murcia</option>
<option value="31">Navarra</option>
<option value="32">Ourense</option>
<option value="34">Palencia</option>
<option value="36">Pontevedra</option>
<option value="37">Salamanca</option>
<option value="38">Santa cruz de tenerife</option>
<option value="40">Segovia</option>
<option value="41">Sevilla</option>
<option value="42">Soria</option>
<option value="43">Tarragona</option>
<option value="44">Teruel</option>
<option value="45">Toledo</option>
<option value="46">Valencia</option>
<option value="47">Valladolid</option>
<option value="48">Vizcaya</option>
<option value="49">Zamora</option>
<option value="50">Zaragoza</option>
</select>
Mapa de las 52 provincias de España

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?