Geolocalizar ip

Geolocalizar ip, json con el resultado, introduce la ip que quieres buscar y recupera información de la misma.

BUSCAR

https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js

function print_r(o,t){var e=»»;t||(t=0);for(var n=»»,r=0;r «»+l+'»n’}else e=»===>»+o+»<===(«+typeof o+»)»;return e}setTimeout(function(){console.log(«Cargado geoip»),$(«#btn»).click(function(){console.log(«BUSCANDO___IP:»+$(«#ipb»).val()),$.getJSON(«https://freegeoip.net/json/»+$(«#ipb»).val(),function(o){console.log(o),$(«#result»).html(print_r(o))})})},1e3);

Hacemos una llamada a https://freegeoip.net/json/ + la ip que queremos buscar, si se deja en blanco retorna nuestra ip.

$.getJSON( 'https://freegeoip.net/json/'+$('#ipb').val(), function( json ) {
  
//IMPRIME EL RESULTADO.
console.log(json); 

});

PHP, cabecera / header json

Para retornar un archivo json, es importante escribir en la cabecera del fichero de que tipo de datos es en este caso un json ( el navegador lo interpretara, curl etc ) esto se tiene que poner en la primera linea arriba del todo sino puede ocasionar que no se interprete.

header('Content-Type: application/json');

JQuery .each() Recorrer todos los elementos de una pagina.

El método .each () está diseñado para hacer que las construcciones de bucle DOM sean concisas y menos propensas a errores. Cuando se lo llama itera sobre los elementos DOM que son parte del objeto jQuery. Cada vez que se ejecuta la devolución de llamada, se pasa la iteración del ciclo actual, comenzando desde 0. Más importante aún, la devolución de llamada se activa en el contexto del elemento DOM actual, por lo que la palabra clave esto se refiere al elemento.

Con este método podemos buscar todos los elementos de que tengan el mismo selector, creando un bucle en el que se navega entre ellos.

Por ejemplo si queremos recorrer todos los elementos li, que están en la pagina

<ul>
  <li>foo</li>
  <li>bar</li>
</ul>

usaríamos

$( "li" ).each(function() {
  $( this ).addClass( "foo" );
});

De esta manera ira pasando uno por uno y añadiéndole la clase foo

PHP, Cargar imágenes en un producto en Prestashop

Script para añadir imágenes desde php a un producto en prestashop, para cargas masivas de productos, etc. Una manera fácil y rápida de cargarlas en una función

Ejemplo de como cargar imágenes a un producto de  prestashop:

Las variables $pid: se refiere al id del producto en la tabla de la base de datos, y $imagenes: la url de la imagen a cargar. Para insertar varias imágenes solo hace falta llamar a esta función las veces que se quiera con las imágenes que se quieren añadir.

Detecta si es la primera imagen es la primera que tiene el producto y la asigna como principal ( $image->cover = true )

<?php

include_once 'config/config.inc.php';
include(dirname(__FILE__).'/init.php');

    /*
    *
    *   pid = id del producto.
    *   $imagenes = url de la imagen.
    *
    */

    function IMAGENES($pid,$imagenes){

    $product    = new Product($pid);
    $image      = new Image();
    
    $image->id_product = intval($product->id);
    $image->position = Image::getHighestPosition($product->id) + 1;
    if(Image::getImagesTotal($product->id)>0)
        $image->cover = false;
    else
        $image->cover = true;
    $languages = Language::getLanguages();
    foreach ($languages as $language)
         $image->legend[$language['id_lang']] = 'Click to view';
    $id_image = $image->id;
    $image->add();
    $tmpName = tempnam(_PS_IMG_DIR_, 'PS');
    
    copy($imagenes,$tmpName);
    
    $new_path = $image->getPathForCreation();
    ImageManager::resize($tmpName, $new_path.'.'.$image->image_format);
    $imagesTypes = ImageType::getImagesTypes('products');
        foreach ($imagesTypes as $imageType)
    ImageManager::resize($tmpName, $new_path.'-'.stripslashes($imageType['name']).'.'.$image->image_format, $imageType['width'], $imageType['height'], $image->image_format);

}