Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - westwest

Páginas: 1 2 [3] 4 5 ... 12
31
JavaScript / [Tutorial] Typeof
« en: 02 de Noviembre de 2009, 18:11:18 pm »
Typeof ALGO devuelve que es ese ALGO, ya sea una función, una cadena, un objeto, no este definido.....

por ejemplo:
Código: [Seleccionar]
var pepe = 'hola';
if(typeof pepe == 'string') {
alert('pepe es una string!');
} elseif(typeof pepe == 'undefined') {
alert('Has definido pepe?');
}

Un ejemplo mas practico. Hemos creado una funcion donde actuaremos sobre un elemento, pero queremos que la funcion pueda ser pasandonos la ID o el objeto.

Código: [Seleccionar]
function mifuncion(elobjeto) {
if(typeof elobjeto == 'string') { // si es una string, lo usaremos como si fuera la ID
var elemento = document.getElementById(elobjeto);
} elseif(typeof elobjeto == 'object') { // si es un objeto
var elemento = elobjeto; //simplemento lo asignamos a la otra variable
} else {
return false; // si no es nada de los anteriores, devolvemos false
}
// blabalbalaba
}

typeof puede devolver por ejemplo: string si es una cadena, function si es una función, object si es un objeto, undefined si no se ha definido... etc.

Espero que os gustara este corto "tutorial"

Salu2

32
JavaScript / Problema con Drag&Drop
« en: 31 de Octubre de 2009, 18:10:27 pm »
Hola, he creado de 0 un drag & drop k me esta costtando bastante...

El codigo es mas extenso de lo normal porque lo ajusta a una "cuadricula" que es el fondo, a traves de una funcion moveTo que lo mueve poco a poco xD.

Con firefox va de putilingis madre, pero con IE no se mueve.
Segun IE si coge los atributos de mover y parar, pero no los ejecuta (el onmousemove y out)

Dejo el codigo:
Código: [Seleccionar]
<script type="text/javascript">
function moveTo(el, top, left) {
if(typeof el == 'string') {
var element = document.getElementById(el);
} else {
var element = el;
}
var nTop, nLeft;
if(element.offsetTop > top) {
nTop = (element.offsetTop-10);
if(nTop < top) { nTop = top; }
} else {
nTop = (element.offsetTop+10);
if(nTop > top) { nTop = top; }
}
if(element.offsetLeft > left) {
nLeft = (element.offsetLeft-10);
if(nLeft < left) { nLeft = left; }
} else {
nLeft = (element.offsetLeft+10);
if(nLeft > left) { nLeft = left; }
}
element.style.top = nTop + 'px';
element.style.left = nLeft + 'px';
if(nTop != top || nLeft != left) {
if(typeof element.id == 'undefined' || element.id == null || element.id == '') { element.setAttribute('id', 'drag' + ++dragId); }
setTimeout("moveTo('" + element.id + "', " + top + ", " + left + ");", 10);
}
}

// offset

function getoffsetTop(el) {
if(typeof el == 'string') {
var element = document.getElementById(el);
} else {
var element = el;
}
if(!element.parentNode) { return element.offsetTop; }
var parent, top;
parent = element.parentNode;
top = element.offsetTop;
while(parent.tagName.toLowerCase() != 'body') {
top = (top+parent.offsetTop);
parent = parent.parentNode;
}
return top;
}

function getoffsetLeft(el) {
if(typeof el == 'string') {
var element = document.getElementById(el);
} else {
var element = el;
}
if(!element.parentNode) { return element.offsetLeft; }
var parent, left;
parent = element.parentNode;
left = element.offsetLeft;
while(parent.tagName.toLowerCase() != 'body') {
left = (left+parent.offsetLeft);
parent = parent.parentNode;
}
return left;
}

var difX, difY, dragId, dMove, dUp, dOut, dDown;
dragId = 0;
dMove = '';
dUp = '';
dOut = '';
function start_drag(element) {
if(typeof element.id == 'undefined' || element.id == null || element.id == '') { element.setAttribute('id', 'drag' + ++dragId); }
difX = (element.offsetLeft-Xpos);
difY = (element.offsetTop-Ypos);
dMove = element.parentNode.getAttribute('onmousemove');
dUp = element.parentNode.getAttribute('onmouseup');
dOut = element.parentNode.getAttribute('onmouseout');
if(typeof dMove == 'undefined' || dMove == null) { dMove = ''; }
if(typeof dUp == 'undefined' || dUp == null) { dUp = ''; }
if(typeof dOut == 'undefined' || dOut == null) { dOut = ''; }
<!-- ESTO DE ABAJO ES LO K DEBERIA EJECUTAR EL ONMOUSEMOVE Y ONMOUSEUP -->
element.parentNode.setAttribute('onmousemove', dMove + 'move_drag(\'' + element.id + '\');');
element.parentNode.setAttribute('onmouseup', dUp + 'end_drag(\'' + element.id + '\');');
element.setAttribute('onmouseout', dOut + 'end_drag(\'' + element.id + '\');');
}

function end_drag(id) {
var element, parent;
element = document.getElementById(id);
parent = element.parentNode;
parent.onmousemove = dMove;
parent.onmouseup = dUp;
element.onmouseout = dOut;
cTop = getoffsetTop(parent);
cLeft = getoffsetLeft(parent);
top = element.offsetTop;
if(top < cTop) { top = cTop; }
if(top > parseInt(cTop+parseInt(parent.style.height))) { top = parseInt(cTop+parseInt(parent.style.height)-parseInt(element.style.height)); }
left = element.offsetLeft;
if(left < cLeft) { left = cLeft; }
if(left > (cLeft+parseInt(parent.style.width))) { left = parseInt(cLeft+parseInt(parent.style.width)-parseInt(element.style.width)); }
var f1, f2;
if(top > cTop && top <= parseInt(cTop+parseInt(parent.style.height)) && parseInt(top-cTop) % 21 != 0) {
for(i=1;i<=21;i++) {
if(parseInt(top-cTop-i) % 21 == 0) { f1 = i; break; }
}
for(i=1;i<=21;i++) {
if(parseInt(top-cTop+i) % 21 == 0) { f2 = i; break; }
}
if(f1 < f2) {
top = parseInt(top-f1);
} else {
top = parseInt(top+f2);
}
}
if(left > cLeft && left <= parseInt(cLeft+parseInt(parent.style.width)) && parseInt(left-cLeft) % 21 != 0) {
for(i=1;i<=21;i++) {
if(parseInt(left-cLeft-i) % 21 == 0) { f1 = i; break; }
}
for(i=1;i<=21;i++) {
if(parseInt(left-cLeft+i) % 21 == 0) { f2 = i; break; }
}
if(f1 < f2) {
left = parseInt(left-f1);
} else {
left = parseInt(left+f2);
}
}
if(top != element.offsetTop || left != element.offsetLeft) { moveTo(element, top, left); }
}

function move_drag(id) {
var top, left, element;
element = document.getElementById(id);
top = (Ypos+difY);
left = (Xpos+difX);
element.style.top = top + 'px';
element.style.left = left + 'px';
}

var ie = (document.getElementById && document.all);
var ns = (document.getElementById && !document.all);

var Xpos, Ypos;
 
function getMouse(e){
if(document.getElementById){
    Xpos= (ie)?event.x:(ns)?clientX=e.clientX:false;
    Ypos= (ie)?event.y:(ns)?clientY=e.clientY:false;
}
}

document.onmousemove = getMouse;
</script>

<div style="width:526px;height:169px;background-image:url(images/inv_bg.png);background-position:left top;"><div style="background-color:red;width:105px;height:105px;position:absolute;z-index:9999;cursor:move;" onmousedown="start_drag(this);return false;"></div></div>

33
Charlas / Offtopic / Ereg(i)_replace eliminado
« en: 29 de Octubre de 2009, 21:52:20 pm »
Acabo de ver php.net y dice que estas funciones an sido eliminadas de php 6, alguien sabe el equivalente?

34
PHP / fechas y mysql
« en: 18 de Octubre de 2009, 19:31:13 pm »
El problema que tengo es que necesito seleccionar datos de la db cuya fecha sea la de hoy, la fecha se guarda mediante time(); en un campo llamado "time"

Como puedo hacer para que coja los datos cuya fecha sea la de hoy? se que con un while puedo acerlo, pero tambien se que se puede hacer desde mysql y prefiero hacerlo asi

Salu2

35
JavaScript / Deseleccionar texto / Evitar que se seleccione
« en: 04 de Octubre de 2009, 16:44:07 pm »
Hola, estoy haciendo un drag & drop (mover objetos) en JS (obvio).
Tras un montón de intentos y correciones del código va por fín, pero una vez que sueltas el ratón todo se desmadra, mueves el objeto sin mantener pulsado, pasas por encima y puede moverse o no, etc.
El problema es que al mover el div con el ratón pulsado, estoy seleccionando el propio div que estoy moviendo, por eso se arma la que se arma.

Entonces pense que habia que deseleccionar el texto, lo primero que pensé fue crear un texto seleccionado vacio usando lo que usaba para agregas bbcodes a unos mensajes, y no funcionó, (tal vez lo hice mal, no lo se).

Como no funcionaba busqué en google y no encontré nada, por lo que empecé a buscar como evitar la selección del texto (cosa que no me agrada, prefiero que se pueda seleccionar) pero no funciona en firefox.

Tras esta breve explicación, pues mi pregunta, ¿Como puedo deseleccionar texto o evitar que se seleccione?
Por cierto, lo he probado en firefox por que en IE nisiquiera se mueve, pero eso es otra historia.

Salu2.

36
PHP / Problema con expresiones regulares.
« en: 13 de Septiembre de 2009, 00:30:24 am »
Hola, tengo un problema con expresiones regulares.

En el nombre de usuario, solo permito usar caracteres alfanumericos y guion, guion bajo y punto.

El guion bajo lo permite, pero al poner guion o punto no me lo da por valido, uso esto:
eregi("^([a-z0-9\.\-_]{1,15})$", $_POST['username'])

Los \ los puse como caracteres de escape, pero ni asi :S

Gracias de antemano.

37
Charlas / Offtopic / Gladio - Juego
« en: 10 de Septiembre de 2009, 23:29:04 pm »
Tras muchos días (y semanas) resolviendo errores estúpidos de JavaScript, he acabado mi juego, Gladio.
No os hagais ilusiones (y no creo que os las hayais hecho xD), en realidad es muy simple, al menos de momento, basicamente se trata de pelear con otras personas en la arena.
Pretendo añadirle las opciones que hay en el panel (cuando estás logeado), pero a saber si lo hago...

No espero que entre gente a jugarlo, pero si entrais a verlo me haria ilusión xD

El formulario de contacto no funciona por el host (comentarios, sugerencias, bugs... publicarlas aquí)
El diseño es horrible (¿alguno se ofrece para hacerlo?).

Quiero dar las gracias a rodrinete que me ayudó con algunos problemillas que he tenido y a turko94, masato y kevin17 por entrar a probarlo cuando quería comprobar errores, jeje.

Link: http://gladio.byethost31.com

Salu2

38
CSS / Problema con links
« en: 08 de Septiembre de 2009, 01:58:14 am »
Tengo problema con los links

Quiero que los visitados y no visitados (link y visited) sean azules sin subrayar y cuando pongan el mouse encima y clicken en él (hover y active) salga negro subrayado

Los visitados salen bien y los no visitados me salen sin subrayar pero negros
los otros 2 salen negros pero sin subrayar como el visited :S

Este es el codigo:
(Antes tenia a:link, a:visited y a:hover, a:active pero no funcionaba)

Código: [Seleccionar]
a:link {
color: #0060FF;
text-decoration: none;
}

a:visited {
color: #0060FF;
text-decoration: none;
}

a:hover {
color: #000;
text-decoration: underline;
}

a:active {
color: #000;
text-decoration: underline;
}

Como lo arreglo?

Gracias de antemano, salu2

39
Aplicaciones Pre-Fabricadas / [SMF] Arreglar error de detectar diferencia horaria
« en: 04 de Septiembre de 2009, 02:24:48 am »
Este "tutorial" sirve para arreglar el error que da SMF en el perfil, al cambiar la hora porque si le damos a detectar automaticamente nos sale NaN, esto es molesto por que hay que calcular la hora a mano xD

El error es por que saca la fecha del foro y la compara con la del user pero si no usamos de idioma el ingles usa los meses en otro idioma y da el error, arreglarlo es sencillo:

Vamos a Themes/Default (o el theme k uses si utiliza otro archivo de perfil) /Profile.template.php

lo abrimos y buscamos "autoDetectTimeOffset" (Sin comillas)

arriba vemos esta linea:
Código: [Seleccionar]
var serverTime = new Date("', $context['current_forum_time'], '");
y la sustituimos por:
Código: [Seleccionar]
var serverTime = new Date("', str_replace($m1, $m2, $context['current_forum_time']), '");

ahora vamos antes del echo que hay arriba y añadimos esto:

$m1 
= array(&#39;Enero&#39;, &#39;Febrero&#39;, &#39;Marzo&#39;, &#39;Abril&#39;, &#39;Mayo&#39;, &#39;Junio&#39;, &#39;Julio&#39;, &#39;Agosto&#39;, &#39;Septiembre&#39;, &#39;Octubre&#39;, &#39;Noviembre&#39;, &#39;Diciembre&#39;);
$m2 = array(&#39;January&#39;, &#39;February&#39;, &#39;March&#39;, &#39;April&#39;, &#39;May&#39;, &#39;June&#39;, &#39;July&#39;, &#39;August&#39;, &#39;September&#39;, &#39;October&#39;, &#39;November&#39;, &#39;December&#39;);


y con eso se arreglaria el error, si usas otro idioma cambias en $m1 el nombre de los meses, cuidado con las comillas!

Salu2

40
Tutoriales PHP / [GD] Creando thumbnails
« en: 14 de Julio de 2009, 19:07:39 pm »
Hacia mucho que no hacia un tuto, asi que voy a acerlo usando gd.

Vamos a crear thumbnails, ¿qué son? Son imagenes más pequeñas que las originales (o parte de ellas), que tiene diversos usos.

Primero haremos las imagenes, pero mas pequeñas.


<?php
if(!$_GET[&#39;imagen&#39;] or !file_exists($_GET[&#39;imagen&#39;]) { die(&#39;error&#39;); } // si no hay imagen o no existe damos error

list($ancho$alto$tipo) = getimagesize($_GET[&#39;imagen&#39;]); // listamos el ancho, alto y el tipo de imagen a partir de getimagesize

switch(image_type_to_extension($tipo)) { // image_type_to_extension convierte el tipo de imagen a su extension, no se si abra un tuto de switch en el foro
	
case &
#39;.png&#39;: // si es png
	
$img imagecreatefrompng($_GET[&#39;imagen&#39;]) or die(&#39;error creando imagen&#39;); // creamos la imagen png
	
break;
	
case &
#39;.jpeg&#39;:
	
$img imagecreatefromjpeg($_GET[&#39;imagen&#39;]) or die(&#39;error creando imagen&#39;); // = k antes
	
break;
	
case &
#39;.gif&#39;:
	
$img imagecreatefromgif($_GET[&#39;imagen&#39;]) or die(&#39;error creando imagen&#39;); // = k antes
	
break;
	
default:
	
die(&
#39;La imagen debe ser png, gif o jpg&#39;); // si no es ninguno de esos 3 tipos, mostramos error
	
break;
}

$ancho2 100// ancho del thumbnail
$alto2 100// alto del thubnail

$thumb imagecreatetruecolor($ancho2$alto2); // creamos la imagen del thumbnail, con el ancho y alto k keramos

imagecopyresampled($thumb$img0000$ancho2$alto2$ancho$alto); // copiamos la imagen, los parametros de esta funcion son la imagen de destino, la original, las coordenadas x e y donde se pegara la imagen, las coordenadas x e y donde se empezara a cortar de la imagen original, y los anchos y altos de la nueva imagen y la orginal, respectivamente

header(&#39;Content-type: &#39;.image_type_to_mime_type($tipo)); // creamos un header para indicar el tipo de contenido, con image_type_to_mime_type obtenes el MIME (image/png , por ejemplo)

imagepng($thumb); mostramos el thumbnailx ejemplo en png

imagedestroy
($img);
imagedestroy($thumb);
// liberamos memoria borrando las imagenes
?>


Guardamos el archivo como, por ejemplo, thumb.php y para acceder usamos thumb.php?imagen=imagengrande.png


Ahora aremos otro tipo de thumbnail, x asi decirlo, esta vez el thumbnail sera una parte al azar de la imagen original.


<?php
if(!$_GET[&#39;imagen&#39;] or !file_exists($_GET[&#39;imagen&#39;]) { die(&#39;error&#39;); }

list($ancho$alto$tipo) = getimagesize($_GET[&#39;imagen&#39;]);

switch(image_type_to_extension($tipo)) {
	
case &
#39;.png&#39;: // si es png
	
$img imagecreatefrompng($_GET[&#39;imagen&#39;]) or die(&#39;error creando imagen&#39;);
	
break;
	
case &
#39;.jpeg&#39;:
	
$img imagecreatefromjpeg($_GET[&#39;imagen&#39;]) or die(&#39;error creando imagen&#39;);
	
break;
	
case &
#39;.gif&#39;:
	
$img imagecreatefromgif($_GET[&#39;imagen&#39;]) or die(&#39;error creando imagen&#39;);
	
break;
	
default:
	
die(&
#39;La imagen debe ser png, gif o jpg&#39;); 
	
break;
}

$ancho2 100
$alto2 100

// hasta aki igual que antes

$x mt_rand(0, (imagesx($img)-$ancho2)); // obtenemos una posicion x al azar donde empezara la parte, imagesx devuelve los x de la iamgen y le kitamos el ancho del thumbnail para no salirnos
$y mt_rand(0, (imagesy($img)-$alto2)); // igual pero con y y height

$thumb imagecreatetruecolor($ancho2$alto2); // creamos el thumb

imagecopyresampled($thumb$img00$x$y$ancho2$alto2$ancho2$alto2); // los mismos parametros, las coordenadas x e y de destino son las mismas, pero en la imagen original empezaremos a partir del $x y $y que hemos obtenido antes, el ancho y alto del destino son los mismo que el thumbnail, al igual que de la imagen original, para obtener las dimensiones del thumbnail

header(&#39;Content-type: &#39;.image_type_to_mime_type($tipo)); 

imagepng($thumb); 

imagedestroy($img);
imagedestroy($thumb);
// hacemos lo mismo que antes
?>


Se llama exactamente igual.


Espero que os haya gustado, salu2.

41
PHP / "medir" duracion de gif
« en: 06 de Julio de 2009, 18:31:20 pm »
Hay alguna manera de saber la duracion de una imagen gif?? ya sea con PHP o con JavaScript.

Gracias de antemano, salu2

42
JavaScript / Listado efectos script.aculo.us
« en: 24 de Junio de 2009, 20:36:03 pm »
Hola, keria pedir si alguien puede darme la URL de alguna web k tenga una lista de todos los efectos de scriptaculous (Effect.Togle, etc).

La vi ace tiempo pero me olvide de guardar la URL

Salu2.

43
PHP / Cortar imagenes
« en: 07 de Abril de 2009, 13:24:44 pm »
Hola, kerria saber como puedo cortar un cuadrado de una imagen. Se que es con GD, pero desconozco k funcion e de utilizar
¿Alguien sabe cual es?

Salu2.

44
(X)HTML / Evitar k la tabla se descuadre
« en: 23 de Marzo de 2009, 20:25:04 pm »
Hola de nuevo, estoy haciendo mi propio MC pero tengo un problema.
El mc esta en un iframe, y el mensaje se encuentra en una tabla.
El problema es que si alguien envia un mensaje largo tipo mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm, la tabla se alarga y me sale una "scrollbar" abajo...

¿Como puedo arreglarlo?
e probado a separar cada palabra cada X caracteres, pero me da muchos problemas, como k se cortan los smileys y cosas asi...

GRACIAS DE antemano, salu2.

45
PHP / Error al crear cookies
« en: 21 de Marzo de 2009, 14:09:03 pm »
Tengo el siguiente codigo (esta explicado un poco):

if($_COOKIE[&#39;phc35ufn&#39;]) { // si existe la cookie...
$ex explode(&#39;:&#39;, $_COOKIE[&#39;phc35ufn&#39;]); // ace un explode, en la cookie se guarda ID:PASS
$query mysql_query("SELECT * FROM `usuarios` WHERE id = &#39;".$ex[0]." && pass = &#39;".$ex[count($ex)-1]."&#39;"); // comprueba si hay un usuario con la ID y PASS de la cookie
$rows mysql_num_rows($query);
unset(
$_COOKIE[&#39;phc35ufn&#39;]); // la borro para luego definirla...
if($rows) { // si se cumple $query
$user mysql_fetch_array($query); // define el usuario
if($_COOKIE[&#39;phrm&#39;] && $_COOKIE[&#39;phrm&#39;] == 1) { // si existe la cookie de recordar
unset($_COOKIE[&#39;phrm&#39;]);
setcookie($_COOKIE[&#39;phc35ufn&#39;], $user[&#39;id&#39;].&#39;:&#39;.$user[&#39;pass&#39;], time()+60*60*24*30); // redefine las cookies
setcookie(&#39;phrm&#39;, 1, time()+60*60*24*30); // =
} else { // si no kiere recordarse
setcookie($_COOKIE[&#39;phc35ufn&#39;], $user[&#39;id&#39;].&#39;:&#39;.$user[&#39;pass&#39;], time()+60*60*24*30); // define
}
}
}


El problema, es k $user siempre lo define, aunk no  existe la cookie

Alguien me ayuyda? Salu2.

Páginas: 1 2 [3] 4 5 ... 12