CMS

Convertir tablas a utf-8 en mysql

HRtuWeb No Comments

Alguna vez nos hemos encontrado con el problema que al exportar información a csv, hacer un volcado de datos o exportarlos, el contenido de las bases de datos se ve mal, no muestra los acentos o los cambia por otros caracteres. Tampoco se ven las Ññ y otros muchos caracteres especiales.

Esto es debido a que se están mezclando cotejamientos diferentes en nuestras tablas de la base de datos. En este caso es mejor utilizar compatibilidad con UTF8.

Normalmente, Mysql , crea por defecto  collation a ‘latin1_swedish_ci’. Para arreglar este problema y que los datos se muestren correctamente tenemos estas dos opciones:

Por consola, si tenemos acceso al ssh de nuestro servidor (normalmente en servidores compartidos no lo tenemos):

Modificamos  las tablas afectadas

ALTER TABLE `caracteristicas_subtipos` COLLATE=’utf8_general_ci’;

Exportamos los datos por medio de inserts y hacer truncate de la tabla volcando los datos:

mysqldump -p –default-character-set=utf8  base_de_datos tabla_a_modificar > tabla_a_modificar.sql

Y volvemos a volcar los datos ya modificados:

mysql -p base_de_datos < tabla_a_modificar.sql

base_de_datos y tabla_a_modificar.sql tenemos que sustituirlos por los que correspondan en cada caso. Ademas necesitas autentificarte con los datos de acceso a la base de datos.
Realizarlo desde una herramienta como phpmyadmin:

Será necesario cambiar  la forma de obtener los datos. Exporta los datos a INSERTS. Hacemos un truncate de la tabla y, antes de volcar los inserts, ponemos la sentencia:

set names utf8;

Mover un joomla de carpeta o directorio al raiz de tu sitio

HRtuWeb No Comments

En ocasiones nos vemos obligados a desarrollar nuestro cms en una carpeta o subdominio para que la web anterior no deje de estar activa mientras trabajamos en la nueva.

Vamos a explicar, brevemente, como mover todo al raíz del dominio.  En el caso de joomla resulta muy sencillo. Antes de comenzar, como siempre, recomendamos realizar una copia de seguridad y dejar el raíz limpio para que no se mezclen los archivos nuevos con los anteriores.

Suponemos que el joomla esta instalado en /joomla/ y lo queremos pasar al raíz:

  1. Copiamos o movemos todos los archivos de tu sitio web Joomla del subdirectorio en el directorio raíz mediante una herramienta FTP o, si el panel de control del hosting nos lo ofrece, con el gestor de archivos.
  2. Buscamos  el archivo configuration.php en el directorio raíz  y lo editamos con un editor de texto como el edit, gedit, Textedit o el que nos proporcione el panel.
  3. Buscamos la variable var $log_path = ‘/home/username/tudominio.tld/public_html/joomla/logs’; y la modificamos por var $log_path = ‘/home/username/tudominio.tld/public_html/logs’;
  4. Localizamos la variable var $live_site = ‘http://www.tudominio.tld/joomla’;  y la modificamos por  var $live_site = ‘http://www.tudominio.tld/;.
  5. Buscamos la variable var $ftp_root = ‘public_html/joomla)’; y  la modificamos por var $ftp_root = ‘public_html’;
  6. Iniciamos sesión en el administrador de joomla con los datos de usuario y contraseña,  vamos a “Herramientas/Limpiar caché” y borramos todos los archivos de caché.

En cada caso “tudominio.tld” es el nombre de tu dominio, “username” sera el usuario de tu hospedaje o servidor y “joomla” corresponde con tu subcarpeta donde tengas instalado el joomla.

WordPress, limite elementos de los menús.

HRtuWeb No Comments

Usando wordpress nos podemos encontrar, si usamos menús con muchos subelementos, que llegado a un numero determinados de elementos ya no podemos guardar mas. El valor máximo depende, pero nos hemos encontrados casos que a partir de unos 70 ya comienza a dar estos fallos.

Esto, en la mayoria de las ocasiones y como podemos encontrar por internet, se soluciona aumentado o pidiendo a los administradores del servidor u hospedaje, que nos aumenten unos valores en nuestro php.ini.

suhosin.request.max_vars = 9400
suhosin.post.max_vars = 9400

Podemos probar con este valor o con alguno superior hasta que se solucione nuestro problema. Como hemos mencionado en otras ocasiones, sobre todo en servidores compartidos, es posible que no tengamos acceso al php.ini, por lo que tenemos que solicitar que lo modifiquen.

Otra opción seria tener ese menú divido en varias partes. Si un elemento de menú tiene mucho subelementos, podríamos crear un menú que cargue esos subelementos y que se muestre desde un widget de menú.

oscommerce 2.2 cambios mínimos de seguridad.

HRtuWeb No Comments

Hay algunos  bugs en  oscommerce 2.2 que pueden afectar gravemente a la seguridad de nuestra tienda online. Modificando la url del admin se pueden ver las cuentas de correo de los usuarios registrados. Y usando el filemanager  pueden escribir en nuestros archivos.

Con un par de cosas paramos en seco estos ataques.

Renombrar la carpeta admin por algo como Fd43ad y ocultarlo a los buscadores y robots con ROBOTS.TXT, para  que los bots no lo encuentre.

Para que la página puede seguir encontrando la carpeta hay que cambiar en el Fd43ad/includes/configure.php

 define('DIR_WS_ADMIN', '/tienda/catalog/Fd43ad/');
 define('DIR_FS_ADMIN', '/web/htdocs/www.lalala.com/home/tienda/catalog/Fd43ad/');

Puede que en vuestro caso solo salga /tienda/, o las rutas cambien algo ya que depende del hospedaje y donde lo tengas instalado, pero lo que importa es quitar admin y poner otro nombre diferente como en el ejemplo Fd43ad.

Borrar el archivo catalog/admin/filemanager.php  y  su mención en admin/includes/boxes/tools.php borrando la linea ‘<a href=”‘ . tep_href_link(FILENAME_FILE_MANAGER) . ‘” class=”menuBoxContentLink”>’ . BOX_TOOLS_FILE_MANAGER . ‘</a><br>’ .

Borrar el archivo el admin/define_language.php y  la linea que le menciona en admin/includes/boxes/tools.php

Las carpetas  tienen que ser con permisos 755 y los archivos 644 aunque puede variar según que hosting tengamos. Los archivos de Fd43ad/includes/configure.php e includes/configure.php como mucho 444 o 400.

Hay otras maneras que se metan, pero instalando http://addons.oscommerce.com/info/5752 y http://addons.oscommerce.com/info/6044 tenemos el 95% hecho.

Fatal error al acceder al Plugin Manager

HRtuWeb No Comments

Hace unos dias, a la hora de intentar modificar unos de los plugin que tenia en mi Joomla 1.5 me tope con ese error:

Fatal error: Access level to PluginsModelPlugins::_getList() must be public (as in class JModel) in 
/administrator/components/ com_plugins/ models/ plugins.php on line 20

Por lo que puede ver en varios foros en ingles, el error es ocurre por un fallo en una de las actualizaciones que desabilita el manager de plugin, quedan sin acceso desde el panel de administración de nuestro Joomla. La solucione es editar uno fichero y cambiar una de las lineas. Es sencillo, solo debemos fijarnos un poco para no modificar nada que no debamos.

Solo tenemos que buscar la cadena “function _getList” y cambiar o modificar “protected” por “public”, de esta forma volveremos a tener acceso al administrador de plugin de nuestro joomla. El fichero a modificar es el que se nos indica en el error, linea 20.
Nos vemos…

Cambiar el tamaño logo cabecera prestashop

HRtuWeb No Comments

En ocasiones queremos usar un logo mas grande en la cabecera de Prestashop en nuestra plantilla por defecto y nos encontramos que no es posible.  Aunque subamos ficheros de otros tamaños estos no los coge correctamente, se cortan o se desplazan.  Aqui os dejamos un pequeño tutorial para hacerlo, probado en prestashop 1.5.x con la plantilla por defecto.

Sube tu logo del tamaño que necesites o creas que pueda encajar mejor. Una vez lo tengas tienes que ir al fichero global.css y editarlo:

/sacoroto.net/themes/default/css/global.css/ (la ruta varia según tu dominio y la ruta donde lo tengas instalado)

Busca esta linea dentro y reduce los pixeles del top:

#header_logo { position: absolute; top: 20px; z-index: 1; }

Luego busca este otro fichero y edítalo:   modules/blocktopmenu/css/superfish-modified.css

Buscamos esta linea y  añade un padding-top:

.sf-contener {
clear: both;
}

Quedaría de esta forma (los 40px son aproximados, puedes calcular el valor que mejor se adapte a tu logo)

.sf-contener {
clear: both;
padding-top: 40px;
}

Esperamos que te sirva y puedas poner tu logo correctamente. Recuerda que en hrtuweb te gestionamos y diseñamos tus webs.

Fatal error: Allowed memory

HRtuWeb No Comments

Uno de los errores mas habituales después de actualizar joomla  o wordpress o a la hora de hacer nuevas instalaciones es este:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 7680 bytes)

Esto ocurre por que la nueva versión instalada consume mas memoria de la que se le asigna en nuestro sistema. Esto tambien puede ocurrir despues de instalar algun plugin nuevo en nuestro wp.

Solución:

Lo único que hay que hacer es editar el fichero php.ini

Modificar la linea memory_limit = 32M  y cambiar el valor por 64M

Si se trata de un servidor propio o uno donde tengamos acceso por ssh, seguramente tendremos acceso a este fichero sin problema. Debemos editar el del usario afectado o el valor global para todo el servidor.  En todo caso y si no estamos seguros de lo que hacemos, es mejor que esto nos lo realice el administrador del sistema.

En servidores compartidos no siempre tenemos acceso al fichero de configuración del php, el php.ini, por lo que tendremos que pedir al administrador del sistema que nos aumente este limite para que todo funcione con normalidad de nuevo.

Este mismo error se puede presentar en otras configuraciones en php como, joomla, prestashop, moodle o, incluso, en programaciones propias. La solución siempre es la misma. No se recomienda aumentar a mas de 256 Mb este valor.

Cambiar wordpress de directorio o dominio y no morir en el intento.

HRtuWeb No Comments

wordpress_logoMuchas veces nos encontramos con la necesidad de cambiar nuestro wordpress de dominio o de directorio, ya sea por usar un nuevo dominio, mover de un subdirectorio al principal, haber realizado el desarrollo en nuestro equipos (localhost) o por cualquier otro motivo.

Antes de nada, y como recomendación general para cualquier modificación importante, recomendamos realizar (siempre) una copia de seguridad o backup completo, sin olvidar la base de datos.

Primer paso y el mas sencillo:

Tras hacer la copia de seguridad  tenemos que modificar el archivo wp-config.php. Este fichero se encuentra en la raíz de la instalación de WordPress. Lo abrimos y buscamos las siguientes líneas:

define('DB_NAME', 'basededatos');
define('DB_USER', 'usuario');
define('DB_PASSWORD', 'contraseña');
define('DB_HOST', 'Localhost');

Debemos sustituir los valores “basededatos, usuario, contraseña y servidor” por los nuevos valores. Si es un cambio de domino o de directorio dentro del mismo servidor, normalmente, estos valores no varían y no es necesario modificarlos.

Modificar o  actualizar las urls de WordPress

WordPress no se puede mover a otra ruta o cambiar de dominio directamente, ya que las rutas siguen almacenadas con las antiguas url en la base de datos. Por lo que este paso es fundamental.  En muchos artículos que he visto dicen que con ir al administrador y modificar en la configuración la url de la web y la del blog por los nuevos valores ya servía, pero esto no es cierto.

Es necesario editar o modificar las siguientes tablas dentro de la base de datos. Esto lo puedes hacer editando el fichero .sql antes de volcar el backup o, directamente, desde el servidor con phpmyadmin. En esta guía vamos a explicarlo usando phpmyadmin. Las tablas a modificar son:

wp_options
wp_posts
wp_postmeta

Las entradas son muchas, miles dependiendo de lo desarrollado que tengamos el wordpress. Por lo que debemos lanzar estos comandos de mysql:

UPDATE wp_options
SET option_value = REPLACE(option_value,'dominio_viejo','dominio_nuevo');

UPDATE wp_posts
SET post_content = REPLACE(post_content,'dominio_viejo','dominio_nuevo');

UPDATE wp_posts
SET guid = REPLACE(guid,'dominio_viejo','dominio_nuevo')
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value,'dominio_viejo','dominio_nuevo');

 

Hecho!!

Normalmente con esto ya debería funcionar con normalidad tu wordpress en la nueva ruta o dominio. En ocasiones, dependiendo de los plugin que uses o los themes, es necesario ajustar alguna ruta mas. Para estar seguro que el cambio está realizado completamente, puedes lanzar una búsqueda desde phpmyadmin del antiguo dominio o el antiguo directorio y, en caso de encontrar alguno, modificarlo manualmente.