lunes, 15 de noviembre de 2010

HTML + CSS: Centrar en Explorer

Resulta que centras una capa CSS así:

margin-left:auto; margin-right:auto;

y funciona en mozilla pero no en explorer.

Pues para que vaya en explorer hay que poner esto en la primera linea de tu archivo html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

(vaya tela no?!)

miércoles, 6 de octubre de 2010

Issuu o flash debajo de un menú javascript (o CSS)

Después de intentos fallidos con CSS z-index, Para que un flash no se posicione encima de menus javascript etc hay que introducir una linea dentro del generado por el flash.

el código es el siguiente:  wmode="transparent"

Por ejemplo:
[embed src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" allowfullscreen="true" menu="false" wmode="transparent" ...etc...>

viernes, 24 de septiembre de 2010

Eliminar / ocultar job types de la interfaz de usuario de jobberbase. Remove job types

You want to remove totaly the job types from the user interface? (Freelance, parcial o total time...)

There are some files you will need to update on the /templates/(your-template) folder.

First of all, find this line in all your files and simply delete them:
[img src="{$BASE_URL}_templates/{$THEME}/img/icon-{$job.type_var_name}.png" alt="{$job.type_name}" />

(Use a multiple files text finder! like ultraedit)

This way you remove all the visible job type from your web.

After this, we should remove the option from the Publish Post file.
Go to /_templates/(your-template)/publish-write.tpl

and search this code:

{section name=tmp2 loop=$types}
[input class="no-border" type="radio" name="type_id" id="type_id_{$types[tmp2].id}" value="{$types[tmp2].id}" {if !$job.type_id && !$smarty.post.type_id}{if $smarty.section.tmp2.first}checked="checked"{/if}{else}{if $types[tmp2].id == $job.type_id}checked="checked"{/if}{if $types[tmp2].id == $smarty.post.type_id}checked="checked"{/if}{/if} />
[label for="type_id_{$types[tmp2].id}">[img src="{$BASE_URL}_templates/{$THEME}/img/icon-{$types[tmp2].var_name}.png" alt="{$types[tmp2].name}" />[/label>
{/section}

and replace with this:

{section name=tmp2 loop=$types}
[input type="hidden" name="type_id" id="type_id_{$types[tmp2].id}" value="{$types[tmp2].id}" />
{/section}

That's it!

jueves, 26 de agosto de 2010

Programa de envio de newsletters

Todavia no he indagado mucho en un buen programa para enviar newsletters pero he encontrado este Group Mail 5 - Free edition - http://www.group-mail.com/asp/common/downloads.asp

Este programa se instala sobre windows y pide una conexión a tu cuenta de correo (igual que cuando configuras el outlook) y es gratis hasta 100 envios al momento. Luego hay opciones de pago

Luego permite hacer envios de tu mail a cada cliente que tengas en la lista de clientes del programa y lo interesante es que envia desde tu mail a cada correo como si le enviaras solo a él el correo. Es decir que no usa los campos CC o CCO (para evitar spam)

Tambien hay bastantes plantillas que se pueden usar y puedes crearlas también.

Creo que es un buen programa de gestión de clientes e información.

lunes, 5 de julio de 2010

Excepcion con enlaces permanentes (wordpress)

Problemas con enlaces permanentes para que exista acceso directo a un archivo?

El problema: Activo los enlaces permanetes con mi wordpress (o cualquier otro CMS) y quiero tener acceso a algun archivo desde la web (tipo: www.miweb.com/historial.php)

Si hago un enlace que sea a www.miweb.com/historial.php resulta que al estar permalinks (o enlaces permanetes) activado, me carga una página incorrecta porque intenta mostrar una noticia o contenido que no existe.

Entonces que hacemos?
Añadir esta linea en el .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /xxx/index.php [L]
# Aplicar regla siguiente en caso de que no sea /historial.php
RewriteCond %{REQUEST_URI} !^/historial.php
</IfModule>

Fuente: http://www.forosdelweb.com/f58/excepcion-mod-rewrite-714911/

jueves, 1 de julio de 2010

Problema Cookies en wordpress

No se crean las cookies en wordpress correctamente?

Por el tema de los permalinks que usa wordpress hay que siempre establecer el PATH de la cookie! Si no, no funciona bien:
setcookie("pruebacookie", "valor", time() + 11536000, "/");

Problema con cookies en php

Ejemplo de funcionamiento de cookies con PHP:


Me he estado un rato porque no recordaba que hay que declarar las cookies antes del código HTML.

<?php
setcookie("revista", "santantoni");
?>
<html>
<head>
 [<title>Untitled Document
</head>

<body>
<?php
echo $_COOKIE['revista'];
?>
</body>
</html>

miércoles, 2 de diciembre de 2009

NOMINALIA te roba 150 euros

Nunca registres un dominio en nominalia.es 
Esta empresa Española, si por cualquier motivo tardas en renovar un dominio (1 mes) te cobran 150 euros + IVA por recuperarlo. Cuando en realidad ellos pagan a internic (quien realmente gestiona los dominios) unos 4 euros.

sábado, 14 de noviembre de 2009

Agregar módulo de noticias a moodle

Parece que moodle no permite tener en su portada noticias generales en la cabecera o a continuación de los cursos disponibles.
Para que moodle permita tener noticias en portada, para compartir el calendario general y particular de cursos y para abrir a todo visitante anónimo los cursos diponibles en vuestro moodle hay que instalar el módulo openshare.

Instalado openshare para compartir cursos con todo el mundo a la vista (porque MOODLE por defecto no ofrece esta posibilidad):

LINK: http://flexknowlogy.learningfield.org/2008/10/01/openshare-v05-for-moodle-released/
Para la instalación ver instrucciones en inglés del módulo (README)


Importante: Cada asignatura debe tener activado en "parámetros del curso" el Mode de grup en: Grupos visibles (o separados)

A la vez, si quieres que el la asignatura sea accesible sin clave de acceso (sea de usuario registrado o invitado) en los parámetros del curso pon "Permitir visitantes sin clave" 


En Adminstración -> Usuarios -> Permisos -> Política de usuarios: Activar Open Learner por defecto en usuarios no registrados.

lunes, 12 de octubre de 2009

Configurar 2 servidores: Uno para mail, otro http

Por motivos X tienes que configurar un dominio 'www.dominio.com' para que funcione el mail por un lado y http (apache, php, mysql) por otro.

Es muy fácil.
Por comodidad, damos por hecho que el dominio está completamente correcto y bien configurado para que funcionen todos los servicios http.

Tienes que irte a la zona DNS de la configuración de tu dominio y eliminar los registros de mail.dominio.com , smtp.dominio.com , pop3.dominio.com (Son tipo A)

Tambien borra todas las entradas tipo MX1, MX10, MX5, etc.

Ahora solo falta que encuentras (en el plan de hosting tienen que dartelo) los DNS que corresponden a tu plan de mail contratado.
Así que tendrás que añadir las entradas mail.dominio.com apuntando al servidor nuevo (xxx.xxx.xxx.xxx) y smtp.

Lo mismo para las entradas MX.
En mi caso para registrar las entradas MX tengo que añadir la opción "forzar operación" o no me deja.

jueves, 21 de mayo de 2009

Problemas anidando div CSS - Problema de ajuste de altura o height con capas

A veces puede ocurrir que cuando una capa (1) que dentro tiene a su vez otra capa (2) (anidada) dentro, al abrir nuevos divs a continuación el div se presenta debajo de la capa anidada, es decir:

NO SE AJUSTA LA CAPA 1 A LA ALTURA DE LA CAPA 2 (anidada)
y cuando abrimos nuevas capas se nos jode el invento a no ser que usemos height... y no queremos usar height sino que queremos que todo se ajuste en función de la altura de la capa2!

Pues hay un truco que es crear una capa con esta característica:

.ajustar{
clear:both;
}

Entonces la cosa queda así:
<div class="capa1">
<div class="capa2"></div>
<div class="capa3"></div>
</div>
<div class="ajustar"></div>
<div class="capa4"></div>

Con este esquema y con la propiedad clear:both; nos queda la capa4 que se muestra en función del tamaño de la capa2 y 3, es decir que la capa1 se ajusta a sus capas anidadas!!

Joder que lio no? Espero que sirva de algo

martes, 5 de mayo de 2009

Enviar un mail HTML via PHP

Las cabeceras que especifican que un mail es HTML son muy putas y tienen que ser exactas o hay clientes de correo que dan problemas:
Aqui lo dejo para que funcione perfecto (al menos a mi me va bien en varios sitios):

php
$sfrom
=""; //cuenta que envia
$sdestinatario=""; //cuenta destino
$ssubject=""; //subject
$shtml="tu html aqui "; //mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$shtml,$sheader);
?>

lunes, 27 de abril de 2009

Archivo .BAT para subir por FTP

Resulta que un dia tienes que hacer un maldito archivo .bat para subir via ftp otro archivo.

El ftp a usar es el cutre que viene integrado en windows XP y MS-DOS.

Creas un archivo llamado ejecutar.bat (o como quieras) y dentro (en modo de texto pones):

ftp -s:ftpstart.bat
exit

Creas otro archivo llamado ftpstart.bat (o como quieras siempre que no sea ftp.bat o un nombre reservado de msdos... asi que no te la juegues)

open ftp.eldominio.com
nombre_usuario
contraseña
lcd c:
cd www
put claves.txt
bye


ejecutar.bat llama a ftpstart.bat.
Ftpstart.bat abre eldominio.com pone usuario y contraseña y en el directorio local entra en c: y en el directorio remoto en www y cuelga del directorio local claves.txt en el remoto.

Ahora lo configuras a tu gusto.

Si escribes ftp en linea de comandos y luego pones help te saldrán los comandos para hacer subir, bajar etc.

miércoles, 24 de diciembre de 2008

PHP Funcion acentos a accute

Después de diversos problemas con los símbolos de acentos, eñes y demás al enviar formularios PHP a un correo electrónico he visto que la función htmlentities($cadena) te soluciona la vida.

Básicamente convierte una cadena de texto con acentos y simbolos a algo que HTML entiende que son los símbolos especiales (estos de &aacute, &Eacute...)

Intenté cosas como cambiar el encabezado del mail a:
[meta equiv="Content-Type" content="text/html; charset=UTF-8; encoding: UTF-8"> o
[meta equiv="Content-Type" content="text/html; charset=Latin1; encoding: Latin1">
pero no iba la cosa ni patrás.

miércoles, 9 de julio de 2008

Find en linux

sintaxis: find dir (condición)

Los dos principales parámetros son:
-name nm (nm es el nombre del fichero a buscar).
-type f dir (dir es el nombre del directorio a buscar).

viernes, 4 de julio de 2008

Como subir videos de calidad a Youtube

FUENTE: http://www.bujorel.net/tutorial/como-subir-videos-de-calidad-a-youtube/

Hace poco ya anunciaron que iban a subir la calidad (probablemente en cuanto salga la ultima versión de Flash), pero mientras tanto se pueden subir vídeos con una calidad superior a la normal.

En este momento se pueden subir vídeos FLV1 Flash en Youtube y que pasen por debajo del radar sin ser reconvertidos. Solo vale FLV1, VP6 no funciona y será reconvertido.

El limite de Youtube es la duración y el bitrate. La duración tiene que ser como mucho 10 minutos, aunque hasta 11 minutos funcionaria. El bitrate ha de ser siempre por debajo de 350 Kbps. El archivo máximo seria de unos ~27 MB aproximadamente.

Requisitos:
• un vídeo (obvio) y si puede ser que tenga buena calidad
• un codificador - yo he utilizado Super © (basado en FFMpeg) que además es gratuito. Enlace directo: SUPER
• un editor HEX - hay multitud (Hex Source, que viene con Source Edit es gratuito)
MediaInfo - para verificar la información de los archivos FLV antes de subirlos

martes, 1 de julio de 2008

Redireccionar puerto 25 smtp al puerto 587 o otro

Escribe en tu servidor linux esto:

/sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 587 -j REDIRECT --to-ports 25

Y cualquier envio por puerto 587 se redireccionará al puerto 25.
Esto es útil para algunos clientes que tienen telefónica y que tienen cerrado el puerto 25.

martes, 17 de junio de 2008

Editar archivo de configuración php.ini

nano /usr/local/lib/php5/php.ini

Memoria de linux llena sin motivo

Un susto que me he llevado pero que no es problema:
En un servidor linux con 1gb de ram es normal que se llene la memoria?

Por lo visto la ram si no tiene nada más importante en que ocuparse se encarga de guardarse en caché peticiones que se hagan al servidor con lo cual es posible que un servidor con muy pocas peticiones llene su memoria.
Cuando necesite memoria para otras cosas más importantes que cachear borrará caché sobrante.

Pego artículo de Ernesto Perez:

La memoria RAM del servidor se llena

Pues uno de los síntomas típicos de ram llena es que el servidor no logra abrir las sesiones completamente

Normalmente la memoria no se llena de repente, sino que se va notando que el servidor se va llenando.

Podemos monitorear la memoria RAM mediante el comando “free”, por ejemplo:

free -m
total used free shared buffers cached
Mem: 995 970 24 0 63 721
-/+ buffers/cache: 185 809
Swap: 1999 101 1898

¿Qué nos está indicando este comando? Para empezar, por mi parte no considero que tengo problemas con la memoria, veo que a simple vista está todo bien. Pero veamos los detalles:

El servidor tiene 1GB de Ram (reporta 995 pero está bien). De los cuales está usando 970 MB de memoria y tiene 24 libres (no es para asustarse, esperen!).

Estos 970 se pueden desglosar aproximadamente en:

* 63 MB buffers - son memorias de intercambio, que no son permanentes ni obligatorias tenerlas siempre

* 721MB cacheados - son páginas tomadas en algún momento del disco para ser servidas y que por su nivel de acceso el servidor ha decidido guardarlas en memoria para tener más rápido acceso, definitivamente es mejor acceder a la memoria RAM que no a disco; estas páginas pueden ser descartadas, desechadas en cualquier momento, no indican que la memoria está llena sino que el servidor como tiene memoria libre, ha ido viendo las páginas más solicitadas y las ha mantenido en memoria. Eso es buen síntoma.

* 185 de memoria core: Digámosle así, porque no tengo un nombre exacto. (eso de -/+ buffers/cache no me gusta). Esto indica cuál es la memoria que realmente el sistema está usando, tanto para el kernel como para los procesos que están corriendo e indica que es una memoria bloqueada que no puede ser descartada (como sí puede ser el buffer y el caché). Es decir, si esta memoria se acerta al total (995 en mi caso) preocupémonos!!! pues significa que el servidor en cualquier momento se queda sin memoria para asignarle a los procesos.

De swap, tengo 2 GIGAS (normalmente pongo la misma swap que ram, pero en este caso de prueba puse el doble). Y estamos usando 101 megas, no es nada de alarmarse sobre todo que es un momento bien popular para el servidor y hace que tenga algunos procesos que pueda swapear para tener un poco más de memoria core y para cache y demás.

En definitiva. No estamos usando más que 185 megas en RAM de 1GB que tenemos y 101 megas en swap de 2GB, no creemos que el problema sea por memoria llena.

Además hemos implementado un script que chequea cada un minuto la memoria y lo guarda a un archivo, así que cuando el servidor se cae y lo levantamos, verificamos el uso de memoria al momento de la caída, y definitivamente es super normal en ese momento.


Aquí el script:

#!/bin/bash
echo "`date "+%d-%H:%M.%S"`" >> /var/log/memoria .log
/usr/bin/top -bn1 >> /var/log/memoria .log
uptime >> /var/log/memoria .log
cat /proc/meminfo >> /var/log/memoria .log
ps fuaxww >> /var/log/memoria.log
netstat -na >> /var/log/memoria.log

Lo que hace es bien simple, lo ponemos en el crontab cada unos 2 minutos (o un minuto o 3, como deseen) y el scriptcito guardará en /var/log/memoria.log una serie de detalles como procesos corriendo, memoria en uso, tiempo al aire y procesos de red.

lunes, 16 de junio de 2008

Comprimir / descomprimir con Targz

Comprimir:
tar cvzf nombre_archivo.tar.gz /carpeta_a_comprimir

Descomprimir:
tar zxf nombre_archivo.tar.gz