Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   La Taberna (https://www.clubdelphi.com/foros/forumdisplay.php?f=40)
-   -   Numerar trucos (https://www.clubdelphi.com/foros/showthread.php?t=32948)

Casimiro Notevi 21-06-2006 23:43:27

Numerar trucos
 
Buenas noches, ... ¡camarero!, un helado de tutti frutti, please...

Bien, una sugerencia: al igual que los foros están numerados mediante su "hilo", ¿sería posible numerar también los trucos?, lo digo porque cuando alguien haga una pregunta en los foros y sea contestable mediante el pertinente truco, el poder decir: "mira el truco nº xxx", porque ahora está más complicadillo dirigir a alguien a los trucos.

Y ya me acabo mi helado y me voy, que mañana hay que madrugar, hasta mañana.

Emilio 21-06-2006 23:53:35

Oído cocina, una numeración de trucos para la mesa seis, marchando.

Emilio 22-06-2006 00:01:38

Ya salió de cocina la numeración de trucos para la mesa seis ;)

Casimiro Notevi 22-06-2006 08:59:07

¡¡¡ qué velocidad !!!, me voy a dormir y cuando me levanto ya está lista la petición..... :eek:

Esto se merece una buena propina, ¡¡¡ camarero !!!, el cambio... para el bote !!!

Lepe 22-06-2006 10:10:48

Ya que estamos con helados... uno chocolate / trufa / vainilla.

Poyaque estamos pidiendo, ¿Que tal un Top Trucos? (trucos más visitados). Quizás los 10 / 20 trucos más visitados ¿? (sirva tambien de debate la preguntita)

OFFtopic: "Poyaque" es una abreviatura típica del sur de españa, abrevia la frase "Pues ya que"; se suele aplicar cuando queremos decir: "Pues ya que has hecho esto... haz lo otro" (además quiere decir que se haga por el mismo precio, sin cobrar más :D)

Saludos

Sick boy 22-06-2006 12:18:59

Muy bueno lo de la numeración, aunque me tiene descolocado desde el primer día la ordenación de los trucos. Tardo un rato en saber que trucos son nuevos y cuales ya he leido, ya que me parece que se mezclan.

Una solución, que se puedan ordenar los resultados pinchando en el titulo de la columna.

Y otra cosa que me tiene loco es que no puedo abrir los resultados en una nueva pestaña (uso FireFox) lo cual es muy, muy comodo.
Para resolverlo, habria que cambiar el onclick="vertruco('xx')" por un <a href='......', de modo que el link fuese un enlace y no la respuesta a un evento.

Además, de esta forma google indexará las paginas de los trucos.
Corregirme si me equivoco, pero creo que google no indexa paginas referenciadas mediante javascript, verdad??

Es muy facil pedir, asi que ofrezco mi ayuda ya que tengo experiencia con PHP y javascript.

Por cierto, acabo de descubrir un fallo de seguridad que intentaré postear en privado al moderador.

Saludos

Casimiro Notevi 22-06-2006 12:19:00

Cita:

Empezado por Lepe
Ya que estamos con helados... uno chocolate / trufa / vainilla.

Poyaque estamos pidiendo, ¿Que tal un Top Trucos? (trucos más visitados). Quizás los 10 / 20 trucos más visitados ¿? (sirva tambien de debate la preguntita)

OFFtopic: "Poyaque" es una abreviatura típica del sur de españa, abrevia la frase "Pues ya que"; se suele aplicar cuando queremos decir: "Pues ya que has hecho esto... haz lo otro" (además quiere decir que se haga por el mismo precio, sin cobrar más :D)

Saludos

creí que los "poyaque" eran en todos lados :D

por cierto, Lepe, eres de Lepe?

turminator 22-06-2006 13:27:57

Se podria meter algun sistema que avisara de lo los comentarios de los trucos, ya que si no vas mirando uno a uno, no hay forma de saber si alguien ha comentado algo. Se podria hacer una columa de comentario, con la fecha, si la hay, del ultimo. Que os parece?

Casimiro Notevi 22-06-2006 13:43:03

Cita:

Empezado por turminator
Se podria meter algun sistema que avisara de lo los comentarios de los trucos, ya que si no vas mirando uno a uno, no hay forma de saber si alguien ha comentado algo. Se podria hacer una columa de comentario, con la fecha, si la hay, del ultimo. Que os parece?

perfecto, lo veo muy necesario

Lepe 22-06-2006 15:33:23

Cita:

Empezado por Casimiro Notevi
creí que los "poyaque" eran en todos lados :D

Bueno no sé yo en America latina :confused:. En un hilo anterior usé la palabra cachondeo.... y parece que tenía connotaciones sexuales por allá, por eso ahora lo he "traducido"
Cita:

Empezado por Casimiro Notevi
por cierto, Lepe, eres de Lepe?

tú que crees??, los programadores no somos muy originales :p

Saludos ;)

Lepe 22-06-2006 15:41:38

Cita:

Empezado por Sick boy
Una solución, que se puedan ordenar los resultados pinchando en el titulo de la columna.

Actualmente, antes de hacer la búsqueda, tienes una casilla de verificación para ordenar opr fecha / Autor / titulo, falta la opción recien añadida de "Por nº de truco", pero supongo que se hará con más tiempo.

Por cierto Emilio, además de la Batería, también te gusta el WindSurf ??, está un poquito escondido el link... pero se vé ;)

Saludos

Casimiro Notevi 22-06-2006 19:01:31

Cita:

Empezado por Lepe
Bueno no sé yo en America latina :confused:. En un hilo anterior usé la palabra cachondeo.... y parece que tenía connotaciones sexuales por allá, por eso ahora lo he "traducido"
tú que crees??, los programadores no somos muy originales :p
Saludos ;)

pues parece que a veces no mucho :)

Emilio 22-06-2006 19:17:35

Cita:

Empezado por Lepe
Por cierto Emilio, además de la Batería, también te gusta el WindSurf ??

Lo he practicado en alguna ocasión pero no soy ni he sido aficionado, como si lo he sido al sky, parasailing y vuelo en globo, ya sólo me falta lo otro :D

Ahora ya sólo me queda tiempo para la batería.

Por cierto que casi todas las fotos de la página de windsurf están hechas frente a mi casa :)

Un deporte apasionante

vtdeleon 22-06-2006 23:09:57

Cita:

Empezado por Lepe
Bueno no sé yo en America latina .

No lo he escuchado, no creo que tenga mas significado que el que comentas:).
Cita:

Empezado por Emilio

Y entretenido :D:D

Emilio 29-06-2006 10:46:38

Cita:

Empezado por Sick boy
Muy bueno lo de la numeración, aunque me tiene descolocado desde el primer día la ordenación de los trucos. Tardo un rato en saber que trucos son nuevos y cuales ya he leido, ya que me parece que se mezclan.

El orden es cronológico, los más recientes siempre primero. Si un truco ha sido editado o revisado por el autor, entonces le cambia la fecha a la de la última revisión.

Cita:

Empezado por Sick boy
Una solución, que se puedan ordenar los resultados pinchando en el titulo de la columna.

Pues sí, lo tendré en cuenta.

Cita:

Empezado por Sick boy
Y otra cosa que me tiene loco es que no puedo abrir los resultados en una nueva pestaña (uso FireFox) lo cual es muy, muy comodo.
Para resolverlo, habria que cambiar el onclick="vertruco('xx')" por un <a href='......', de modo que el link fuese un enlace y no la respuesta a un evento.

Para resolverlo es bastante más sencillo, configuras tu Firefox para que abrá en una pestaña nueva y listo, por cierto que debes haberlo tocado, creo que es la configuración por defecto.

Cita:

Empezado por Sick boy
Además, de esta forma google indexará las paginas de los trucos.
Corregirme si me equivoco, pero creo que google no indexa paginas referenciadas mediante javascript, verdad??

Ese es un tema que ya hemos debatido en el foro de moderadores y no hemos llegado a una conclusión satisfactoria para todos.

Cita:

Empezado por Sick boy
Es muy facil pedir, asi que ofrezco mi ayuda ya que tengo experiencia con PHP y javascript.

ok, lo que se pretende es no perder el efecto cambiante de color onMouseOver sobre el TR y que a su vez se pueda hacer clic en toda la zona del TR para abrir los enlaces, además tener la opción de que sobre alguna de sus celdas se abrá otro enlace distinto, esto último es útil para que los moderadores, así tienen un enlace directo para poder editar.

Si tienes una solución que cumpla con todo eso y con los navegadores principales te damos un 10 ;)

Sick boy 29-06-2006 11:47:40

Puede que haya modificado la configuración de mi firefox, pero ahora esta como me gusta :D :D :D

Cita:

ok, lo que se pretende es no perder el efecto cambiante de color onMouseOver sobre el TR y que a su vez se pueda hacer clic en toda la zona del TR para abrir los enlaces, además tener la opción de que sobre alguna de sus celdas se abrá otro enlace distinto, esto último es útil para que los moderadores, así tienen un enlace directo para poder editar.
Acepto el reto !!!
De momento, tengo ese efecto implementado para navegadores explorer.
Lo he probado con firefox, y no funciona, pero voy a intentar modificarlo.
Creo que es posible hacerlo, porque recuerdo haber visto alguna pagina donde mi firefox si que funcionaba.....

Saludos

Emilio 29-06-2006 11:54:48

Cita:

Empezado por turminator
Se podria meter algun sistema que avisara de lo los comentarios de los trucos, ya que si no vas mirando uno a uno, no hay forma de saber si alguien ha comentado algo. Se podria hacer una columa de comentario, con la fecha, si la hay, del ultimo. Que os parece?

ok, pues ya tienes tu columna con el número de comentarios de cada uno de los trucos, no he puesto la fecha del último comentario porque ya ocupamos un ancho demasiado grande para algunas resoluciones de pantalla.

Emilio 29-06-2006 11:59:34

Cita:

Empezado por Sick boy
Acepto el reto !!!

Así me gusta, con dos pares de... :rolleyes:

De verdad me alegra ver que la gente acepte retos y de paso que eche una mano que no viene mal.

Cita:

Empezado por Sick boy
De momento, tengo ese efecto implementado para navegadores explorer.

Eso no vale, el Explorer se lo traga todo, es más, está hecho para explorer sin ningún problema, basta con meter el table o el tr dentro de href y funciona perfectamente.

Cita:

Empezado por Sick boy
Lo he probado con firefox, y no funciona, pero voy a intentar modificarlo.
Creo que es posible hacerlo, porque recuerdo haber visto alguna pagina donde mi firefox si que funcionaba.....

Sin duda hay una solución, sólo falta dedicarle más tiempo del que yo he podido dedicarle que no es poco.

Emilio 29-06-2006 12:06:53

Cita:

Empezado por Lepe
Actualmente, antes de hacer la búsqueda, tienes una casilla de verificación para ordenar opr fecha / Autor / titulo, falta la opción recien añadida de "Por nº de truco", pero supongo que se hará con más tiempo.

Hecho, ya hay checkbox para ordenar por número.

JavierB 29-06-2006 12:31:22

Cita:

Empezado por Emilio
Si tienes una solución que cumpla con todo eso y con los navegadores principales te damos un 10

Código:

<html>
<head>
<style type="text/css">
td {border:1px solid black}
td a {width:100%; display:block}
td a:hover {background:red}
</style>
</head>
<body>
<table>
<tr>
<td style="width:120px">
<a href="algo.html">Enlace</a>
</td>
</tr>
</table>
</body>
</html>

Si funciona, me conformo con un "gracias"

Saludos, :cool:

Emilio 29-06-2006 12:45:50

No está mal, pero eso funciona con TD, la intención es que funcione con el TR o con el TABLE.

De todas formas las gracias por supuesto que ya las tienes ;)

Sick boy 29-06-2006 14:20:47

Ya recorde donde lo habia visto, esta en PHPMyAdmin !!!!!!!

Esta es la función javascript:
Código:

/**
 * This array is used to remember mark status of rows in browse mode
 */
var marked_row = new Array;


/**
 * Sets/unsets the pointer and marker in browse mode
 *
 * @param  object    the table row
 * @param  integer  the row number
 * @param  string    the action calling this script (over, out or click)
 * @param  string    the default background color
 * @param  string    the color to use for mouseover
 * @param  string    the color to use for marking a row
 *
 * @return  boolean  whether pointer is set or not
 */
function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor)
{
    var theCells = null;

    // 1. Pointer and mark feature are disabled or the browser can't get the
    //    row -> exits
    if ((thePointerColor == '' && theMarkColor == '')
        || typeof(theRow.style) == 'undefined') {
        return false;
    }

    // 2. Gets the current row and exits if the browser can't get it
    if (typeof(document.getElementsByTagName) != 'undefined') {
        theCells = theRow.getElementsByTagName('td');
    }
    else if (typeof(theRow.cells) != 'undefined') {
        theCells = theRow.cells;
    }
    else {
        return false;
    }

    // 3. Gets the current color...
    var rowCellsCnt  = theCells.length;
    var domDetect    = null;
    var currentColor = null;
    var newColor    = null;
    // 3.1 ... with DOM compatible browsers except Opera that does not return
    //        valid values with "getAttribute"
    if (typeof(window.opera) == 'undefined'
        && typeof(theCells[0].getAttribute) != 'undefined') {
        currentColor = theCells[0].getAttribute('bgcolor');
        domDetect    = true;
    }
    // 3.2 ... with other browsers
    else {
        currentColor = theCells[0].style.backgroundColor;
        domDetect    = false;
    } // end 3

    // 3.3 ... Opera changes colors set via HTML to rgb(r,g,b) format so fix it
    if (currentColor.indexOf("rgb") >= 0)
    {
        var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1,
                                    currentColor.indexOf(')'));
        var rgbValues = rgbStr.split(",");
        currentColor = "#";
        var hexChars = "0123456789ABCDEF";
        for (var i = 0; i < 3; i++)
        {
            var v = rgbValues[i].valueOf();
            currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16);
        }
    }

    // 4. Defines the new color
    // 4.1 Current color is the default one
    if (currentColor == ''
        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
        if (theAction == 'over' && thePointerColor != '') {
            newColor              = thePointerColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
            // Garvin: deactivated onclick marking of the checkbox because it's also executed
            // when an action (like edit/delete) on a single item is performed. Then the checkbox
            // would get deactived, even though we need it activated. Maybe there is a way
            // to detect if the row was clicked, and not an item therein...
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;
        }
    }
    // 4.1.2 Current color is the pointer one
    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()
            && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {
        if (theAction == 'out') {
            newColor              = theDefaultColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;
        }
    }
    // 4.1.3 Current color is the marker one
    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
        if (theAction == 'click') {
            newColor              = (thePointerColor != '')
                                  ? thePointerColor
                                  : theDefaultColor;
            marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])
                                  ? true
                                  : null;
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = false;
        }
    } // end 4

    // 5. Sets the new color...
    if (newColor) {
        var c = null;
        // 5.1 ... with DOM compatible browsers except Opera
        if (domDetect) {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].setAttribute('bgcolor', newColor, 0);
            } // end for
        }
        // 5.2 ... with other browsers
        else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
            }
        }
    } // end 5

    return true;
} // end of the 'setPointer()' function

Y esta es la forma de utilizarlo:

Cita:

<tr onmouseover="setPointer(this, 1, 'over', '#E5E5E5', '#CCFFCC', '#FFCC99');" onmouseout="setPointer(this, 1, 'out', '#E5E5E5', '#CCFFCC', '#FFCC99');" onmousedown="setPointer(this, 1, 'click', '#E5E5E5', '#CCFFCC', '#FFCC99');">
<td align="center" bgcolor="#e5e5e5">
<a href="hola_mundo.htm">Texto de prueba</a>
</td>
</tr>
Funciona con todos los navegadores, y gestiona el evento onmousedown, para marcar de otro color los trucos visitados durante esa sesión, por ejemplo.

En cada celda puedes poner un href a documentos diferentes (por ejemplo para editar).

Me parece que el efecto es el que se buscaba, funciona con todos los navegadores, y funciona el boton derecho, y como el link esta en un href el google lo indexa correctamente.

No me merezco el 10, porque la función no es mia (ni mucho menos), solo soy muy observador, y recuerdo donde veo cosas interesantes.

Emilio 29-06-2006 14:38:58

Cita:

Empezado por Sick boy
No me merezco el 10, porque....

Porque tampoco sirve :D

A ver si es que me he explicado mal...

Se tiene que poder hacer clic en cualquier zona del TR, con eso sólo se puede hacer clic en el href.

Por cierto todo ese codigo se puede reducir a 4 líneas y se logra el mismo efecto, pero gracias por intentarlo, esto se está convirtiendo en un reto para muchos :rolleyes:

Sick boy 29-06-2006 14:51:16

Cita:

Se tiene que poder hacer clic en cualquier zona del TR, con eso sólo se puede hacer clic en el href.
Pues basta con poner un href en todos los TD en los que quieras que se pueda clickar.
De todas formas, no puedes poner el mismo link para todo el TR, ya que necesitas un link distinto de los demas para editar el truco.

Cita:

Por cierto todo ese codigo se puede reducir a 4 líneas y se logra el mismo efecto,
Como ??? Si es posible puedes pasar ese codigo de cuatro lineas.

Me parece que no has probado esta función, si la pruebas comprobaras que no solo hace lo que se pide,sino que hace más.

Si quieres verla en acción, entra en el phpmyadmin, y selecciona una tabla.
Donde te aparecen las especificaciones de los campos ( Campo Tipo Atributos Nulo Predeterminado Extra Acción) hay la tienes funcionando.

Creo que es el efecto que se busca, o al menos el efecto que yo pondria

Sick boy 29-06-2006 15:03:19

Cuando dices "cualquier zona del TR", te refieres también a zonas donde no hay texto??

En ese caso tienes razón, si la fila es muy ancha, solo puedes hacer click donde hay texto, en caso contrario no funciona.

En el explorer, puedes poner un href antes del TR o antes del TD para que el link abarque toda la columna, pero para firefox no funciona.

Llegados a este punto, no se me ocurre nada más, no conozco ninguna forma de hacer lo que se comenta.

JavierB 29-06-2006 16:58:56

Hola de nuevo.

La verdad es que esto llega a enganchar :) ¿Que tal añadiendo un poco de JavaScript?
Código:

<html>
<head>
<style type="text/css">
table {border-collapse:collapse}
td {border:1px solid black}
td a {width:100%; display:block}
</style>
<script type="text/javascript">
function ini() {
  obj = document.getElementById('tabla');
  for (i=0; ele=obj.getElementsByTagName('a')[i]; i++) {
    ele.onmouseover = function() {this.parentNode.parentNode.style.background = '#ff0'}
    ele.onmouseout = function() {this.parentNode.parentNode.style.background = ''}
  }
}
</script>
</head>
<body onload="ini()">
<table id="tabla">
<tr>
<td style="width:100px"><a href="algo.html">28/06/06</a></td>
<td style="width:50px"><a href="algo.html">90</a></td>
<td style="width:200px"><a href="algo.html">Minimizar todo</a></td>
</tr>
<tr>
<td style="width:100px"><a href="algo.html">29/06/06</a></td>
<td style="width:50px"><a href="algo.html">89</a></td>
<td style="width:200px"><a href="algo.html">Combinar</a></td>
</tr>
</table>
</body>
</html>

Saludos, :cool:

Emilio 29-06-2006 17:03:42

Cita:

Empezado por Sick boy
Cuando dices "cualquier zona del TR", te refieres también a zonas donde no hay texto??

Efectivamente, tal y como está ahora en los trucos.

Cita:

Empezado por Sick boy
En ese caso tienes razón, si la fila es muy ancha, solo puedes hacer click donde hay texto, en caso contrario no funciona.

Si la cosa no es tan simple como a primera vista parece.

Cita:

Empezado por Sick boy
En el explorer, puedes poner un href antes del TR o antes del TD para que el link abarque toda la columna, pero para firefox no funciona.

En Explorer incluso se lo puedes poner antes de un TABLE, ya dije eso por ahí.

Cita:

Empezado por Sick boy
Llegados a este punto, no se me ocurre nada más, no conozco ninguna forma de hacer lo que se comenta.

Vaya, uno que ya se rinde. Por cierto, por supuesto que he probado la función y ejemplo que pusiste, tuve que añadir un table y cierre de table que faltaba y lo probé, no soy tan jeta de decir que algo no funciona sin haberlo probado, no obstante me extrañaba porque uso con frecuencia PhpMyAdmin y sé que incluso las últimas versiones no hacen eso.

Sick boy 29-06-2006 18:47:17

Pues perfecto.


La franja horaria es GMT +2. Ahora son las 04:02:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi