gusman126 Posted January 7, 2019 Share Posted January 7, 2019 En ocasiones si usamos un importador o usamos un conector para añadir los productos que tenemos en nuestra tienda online, de esta manera nos añade mas rapidamente los productos, pero podemos tener algun problema, como el que ocurre normalmente que nos añade los nombres en mayusculas o en minusculas Para google y posicionamiento SEO, el uso de mayusculas no es una buena opción por lo que siempre es mejor usar textos capitalizando la primera letra del nombre del producto o categoria, por ejemplo NOMBRE DEL PRODUCTO > Nombre del producto JUGUETES > Juguetes Este cambio se debe realizar directamente en la base de datos con unas ordenes SQL o mucho mejor usando un fichero .php que hemos copiado en nuestro servidor. Lo primero que debemos hacer es una COPIA DE SEGURIDAD DE LA BASE DE DATOS. Una vez la tengamos, abrimos un editor de texto y pegamos este codigo <?php require_once(dirname(__FILE__).'/config/config.inc.php'); require_once(dirname(__FILE__).'/init.php'); $sql = "UPDATE "._DB_PREFIX_."product_lang SET name = CONCAT(UCASE(LEFT(name, 1)), LCASE(SUBSTRING(name, 2)))"; if(Db::getInstance()->execute($sql)){ echo 'Capitalizado nombres de producto'; } $sql = "UPDATE "._DB_PREFIX_."category_lang SET name = CONCAT(UCASE(LEFT(name, 1)), LCASE(SUBSTRING(name, 2)))"; if(Db::getInstance()->execute($sql)){ echo 'Capitalizado nombres de categorias'; } Una vez añadido lo debemos guardar con un nombre por ejemplo capitalizar.php Este fichero debemos copiarlo por medio de FTP o usando el explorador de ficheros de nuestro hospedaje, a la carpeta principal donde esta nuestra tienda, que podemos saber cual es , ya que tiene un fichero init.php Una vez hemos copiado / subido este fichero a nuestro servidor, lo que debemos hace es ejecutar o abrir la url de este archivo de la siguiente manera midominio.com/capitalizar.php De esta manera , ejecutaremos las ordenes SQL y se cambiaran los textos de los nombres de los productos y categorias a la primera letra en mayusculas 1 Link to comment Share on other sites More sharing options...
sija Posted May 8, 2020 Share Posted May 8, 2020 (edited) Buenas he seguido todos los pasos tal y como está explicado pero cuando ejecuto el script abriendo la URL no hace absolutamente nada. También he ejecutado la consulta directamente desde la BD y la consulta se ejecuta correctamente pero afecta a 0 filas. ¿Me podéis ayudar? Gracias de antemano Edited May 8, 2020 by sija (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted May 8, 2020 Share Posted May 8, 2020 Da miedo ver un archivo así con updates en el directorio principal de la instalación y sin excepciones ni nada Link to comment Share on other sites More sharing options...
gusman126 Posted May 8, 2020 Author Share Posted May 8, 2020 hace 3 horas, sija dijo: Buenas he seguido todos los pasos tal y como está explicado pero cuando ejecuto el script abriendo la URL no hace absolutamente nada. También he ejecutado la consulta directamente desde la BD y la consulta se ejecuta correctamente pero afecta a 0 filas. ¿Me podéis ayudar? Gracias de antemano Pues es extraño, cuando hice las pruebas funciono correctamente hace 1 minuto, ventura dijo: Da miedo ver un archivo así con updates en el directorio principal de la instalación y sin excepciones ni nada Si tienes razon, aunque se supone que es para añadirlo y eliminarlo inmediatamente, no lo debes dejar ahi para la eternidad. Si continuas añadiendo los productos en minuscula, o mayusculas pues lo vuelves a subir o que se quite la costumbre Link to comment Share on other sites More sharing options...
sija Posted May 8, 2020 Share Posted May 8, 2020 Just now, gusman126 said: Pues es extraño, cuando hice las pruebas funciono correctamente Si tienes razon, aunque se supone que es para añadirlo y eliminarlo inmediatamente, no lo debes dejar ahi para la eternidad. Si continuas añadiendo los productos en minuscula, o mayusculas pues lo vuelves a subir o que se quite la costumbre Necesito esto para arreglar los meta títulos no sé si existe alguna alternativa, pero me gustaría capitalizar todos los metatitulos de los productos si fuera posible. Si podeis ayudar lo agradecería, un cordial saludo y gracias de antemano Link to comment Share on other sites More sharing options...
sija Posted May 8, 2020 Share Posted May 8, 2020 SOLUCIONADO Para capitalizar la primera letra de todas las palabras de la BD de una columna he creado primero esta función: DELIMITER // DROP FUNCTION IF EXISTS initcap; // CREATE FUNCTION initcap(cadena VARCHAR(100)) RETURNS VARCHAR(100) BEGIN DECLARE pos INT DEFAULT 0; DECLARE tmp VARCHAR(100) DEFAULT ''; DECLARE result VARCHAR(100) DEFAULT ''; REPEAT SET pos = LOCATE(' ', cadena); IF pos = 0 THEN SET pos = CHAR_LENGTH(cadena); END IF; SET tmp = LEFT(cadena,pos); SET result = CONCAT(result, UPPER(LEFT(tmp,1)),SUBSTR(tmp,2)); SET cadena = RIGHT(cadena,CHAR_LENGTH(cadena)-pos); UNTIL CHAR_LENGTH(cadena) = 0 END REPEAT; RETURN result; END; // Después de esto he ejecutado un UPDATE en la columna que me interesaba y ha funcionado: UPDATE ps_product_lang SET name = initcap(name) Espero que os sirva, 'gracias por la ayuda' Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now