Proyecto asignado (2) para Superlopez (bloque nuke de ultimo

Desarrollo técnico e información sobre proyectos pendientes del foro. Ayuda para problemas técnicos relacionados con la página.
Responder
malaga26
Mensajes: 947
Registrado: Sab 29 Jun, 2002 02:00

Proyecto asignado (2) para Superlopez (bloque nuke de ultimo

Mensaje por malaga26 » Sab 09 Nov, 2002 16:47

Este proyecto iba de

2) Integración de bloque nuke para mostrar últimos posts en el foro. Se precisa que sea un BLOQUE nuke GNU GPL y que NO realice escritura en SQL, sólo lectura. Orientado a personas con nociones de PHP y Nuke

El amigo superlopez se anima a echarnos un cable con este trabajo cuyas "diligencias previas" son las que se citan

1) El famoso bloque es una modificación del famoso Center Blocks de phpnuke, famoso en el mundo entero. Es open source y os ofrezco mi versión GNU GPL para su desacarga, en la que los cambios realizados son nulos, simples traducciones :)

http://www.divxclasico.com/devel/block-XForum_E.zip

El proyecto consiste en hacer viable este bloque. Actualmente se está utilizando en la web pero está restringido a administradores. El porqué es sencillo.

Este bloque captura los últimos 5 posts de TODOS los foros Xforum, sean públicos o privados. En estos foros el 99% es público pero hay una pequeña parcela que no lo es, destinada a distintos protocoles de carácter interno del grupo. Tranquilos que no se planea nada ni se hacen tramas :D

El trabajo consiste en tocar (si es posible, extremo aún sin confirmar) el código fuente del bloque para QUE NO MUESTRE los temas de los foros privados o "staff only"

Actualmente el soporte es el portal phpnuke y el módulo xforum, en los que en principio no hay que tocar nada. Para documentarse

PHP Nuke www.phpnuke.org
XForum www.trollix.com

2) Se está habilitando un portal en phpnuke 6.0 con Xforum destinado a las pruebas de devel, no sólo para este bloque, sino para cualesquiera que se crean necesarios implementar.

Las pass de usuario FTP y cuentas de administrador se darán a todos aquellos interesados en colaborar probando bloques y tocando código para la web, en cuanto este portal auxiliar esté disponible. Actualmente un problema en el proxy de Lycos, posiblemente en su gateway, a causa del reciente registro, me impide ultimar la puesta en marcha que espero sea factible en los próximos días. e informará de esto

Es todo, es evidente que cualquier persona familiarizada con phpnuke puede sugerir y colaborar con nosotros.

Un saludo :)

Avatar de Usuario
superlopez
Mensajes: 1896
Registrado: Mar 30 Jul, 2002 02:00
Ubicación: Buscando villanos

Mensaje por superlopez » Sab 27 Sep, 2003 09:04

El trabajo consiste en tocar (si es posible, extremo aún sin confirmar) el código fuente del bloque
Si se ha cambiado el código para traducirlo ¿ por que no se va a poder cambiar cualquier otra cosa ?
para QUE NO MUESTRE los temas de los foros privados o "staff only"
He mirado un poco el código y parece que el asunto se resolveria añadiendo un WHERE al SELECT que coge los ultimos 5 (o los que sean) hilos del foro. Para hacerlo me tengo que mirar la estructura de la tabla $table_threads y ver que campo de esa tabla (o de alguna otra tabla) indica que un subject es privado o no.
No he trabajado nunca con Nuke y no se si voy por buen camino. Me estudio la estructura de las tablas y a ver si hago algo.
Saludos.

malaga26
Mensajes: 947
Registrado: Sab 29 Jun, 2002 02:00

Mensaje por malaga26 » Sab 27 Sep, 2003 09:05

Si se ha cambiado el código para traducirlo ¿ por que no se va a poder cambiar cualquier otra cosa ?
Hombre como poder se puede, eso seguro, pero lo que no sé a priori es como. Los foros privados no se muestran a personas ajenas al staff. Es lógico pensar que lo primero que enviamos desde nuestra cuenta es nuestro estado (usuario, mod, super mod, admin, etc). Luego si el foro es público, Xforum pasa de comprobar el estado y muestra los foros (se comprueba si estamos registrados y loggeados). Si el foro es privado, alguna cabecera obliga a comprobar el estado y sólo mostrará los foros si tenemos los privilegios.

El camino pues es dar con esa comprobación y transferirla al bloque :) de tal manera que se parseen los mensajes privados sólo si hay estatus adecuado. Staff ven todo, privado o no, usuarios ven sólo lo ajeno a los foros privados. Ese es el objetivo
He mirado un poco el código y parece que el asunto se resolveria añadiendo un WHERE al SELECT que coge los ultimos 5 (o los que sean) hilos del foro. Para hacerlo me tengo que mirar la estructura de la tabla $table_threads y ver que campo de esa tabla (o de alguna otra tabla) indica que un subject es privado o no.
Efectivamente, pero me temo que hay que mirarse la tabla de RANKS, y me aventuro que la clave pudiera estar en la tabla FORUMS, que es donde puede y debe indicarse que el foro es privado o público.

En cuanto veas en el nuke de pruebas las 10 tablas que mete Xforum, lo verás mucho más claro. Sigo sin acceso a PHP y SQL, luego hasta que no habilite el espacio de pruebas estamos maniatados.

Informaré en cuanto se pueda meter mano al asunto, no me atrevo a tocar SQL aquí por si la cagamos :)

malaga26
Mensajes: 947
Registrado: Sab 29 Jun, 2002 02:00

Mensaje por malaga26 » Sab 27 Sep, 2003 09:06

Proyecto finalizado

Nuestro agradecimiento a superlopez. Podéis disfrutar del proyecto en la página principal de la web.

Descarga del bloque (Licenciado bajo GNU GPL) en http://www.divxclasico.com/devel/block- ... mod_CG.zip

Avatar de Usuario
raul2010
Mensajes: 3203
Registrado: Mié 24 Jul, 2002 02:00

Mensaje por raul2010 » Sab 27 Sep, 2003 09:07

soy un pesado q no tiene ni idea de hacer todo esto del php y tal, pero ahi va mi pregunta:

se puede hacer q cada uno pueda escoger la cantidad de posts q quiere q le salgan en este bloque cada vez q entre en la web?

pregunta liosa pero creo q se entiende, se trataria de poner algo al estilo de las preferencias del google

a mi es q diez se me hace corto, y igual a otro con 5 tiene

solo es una propuesta, no os torreis demasiado las cejas si veis q es chungo de hacer

salu2
Última edición por raul2010 el Sab 27 Sep, 2003 09:10, editado 1 vez en total.

malaga26
Mensajes: 947
Registrado: Sab 29 Jun, 2002 02:00

Mensaje por malaga26 » Sab 27 Sep, 2003 09:08

Como poder se puede, habria que habilitar una tabla en la SQL donde cada usuario almacene la variable del número de posts que desea que le aparezcan y que se haga lectura de dicha variable personalizada.

Yo esto lo veo una locura y enlentecería considerablemente las queries, porque habría que atender no una variable "numero de posts" sino las chorrocientas de todo el que requiera el bloque.

Sobre el número pues pasa algo igual, 5 no parecían suficientes, y se pusieron 10. Hubo que discriminar la lectura de foros privados "a lo bestia" indicando los identificadores de los foros para que fueran no inscritos, y con todo y con eso la cantidad de lecturas ralentiza la carga del index.php.

Meter más de 10 sería enlentecer más, lo que voy a hacer es sondear a ver que cantidad prefiere la gente. Si les da igual esperar a la carga no tengo problema en poner más posts. Es cuestion de ver que dice la peña.

Salu2 :cool:

Avatar de Usuario
superlopez
Mensajes: 1896
Registrado: Mar 30 Jul, 2002 02:00
Ubicación: Buscando villanos

Mensaje por superlopez » Sab 27 Sep, 2003 09:09

Se podria hacer, y no sería en exceso complicado, pero si se pudiera conocer que usuario esta pidiendo la página. Tampoco creo que se ralentizaria demasiado el acceso.
El problema efectivamente es que el bloque XForum sepa que usuario esta leyendo la página. Todas las pruebas que realicé en ese sentido dieron resultado negativo. Parece que este tipo de bloques son como compartimentos estancos y solo tienen acceso a las tablas SQL pero no a las variables del sistema, en este caso el id del usuario que esta pidiendo la página.
Desde aqui hago una llamada a quien tenga algún conocimiento de Nuke y XForum para que cuente la forma de que el bloque XForum sepa el id del usuario que pide la página.

PD: Edito este post porque se me acaba de ocurrir una solución intermedia. Se podria colocar en una esquina una lista desplegable con el numero de post que se desean visualizar, por ejemplo 5, 10, 15, 20, 25. La primera vez saldrían 5 pero luego el usuario los podria cambiar, si elige, por ejemplo 20, la pagina se recarga con los 20 últimos post. El sistema no tendría memoria y cada vez que se entrara de nuevo a la página saldrian los 5 primeros, pero se podria volver a cambiar. Seria muchisimo mas sencillo de implementar que el sistema "a la carta" que propone raul2010 y que obliga a tocar la base de datos.

Saludos

malaga26
Mensajes: 947
Registrado: Sab 29 Jun, 2002 02:00

Mensaje por malaga26 » Sab 27 Sep, 2003 09:10

PD: Edito este post porque se me acaba de ocurrir una solución intermedia. Se podria colocar en una esquina una lista desplegable con el numero de post que se desean visualizar, por ejemplo 5, 10, 15, 20, 25.
No olvides que el bloque se lee completo y durante su lectura no se permite detener el proceso y reasignar variables, porque si leo yo el bloque y lo varío cuando lo requieras tú al segundo lo encontrarás variado. Es decir, el bloque se puede leer pero siempre para todos igual.

La solución que comentas si yo no la entierndo al revés que es muy posible obliga a instalar 5 bloques y recargar la página atendiendo a la seleccion (5, 10, 15, 20, 25)

Problema de esto: El nuke lee los bloques que estén validados, es decir, bloque que pilla validado, bloque que lee y bloque que zampa en la página.

Si tu validas el de 5, pepe el de 10, manolo el de 15, paco el de 20 y antonia el de 25, serían válidos para todos los que cumplan los requisitos de visualizacion (para este caso, tener activado el login, es decir, no ser anónimo) con lo que yo vería las 5 validaciones en pantalla. (hoy por hoy nuke discrimina ver o no un bloque en función de si eres anónimo, registrado, o administrador, no hay mas)

No se si es esto lo que propones y no se si se me ha comprendido, pero sinceramente, la mejor opción sin duda es acordar el tamaño deseado y hacerlo universal. (En mi modesta opinión, claro)

Aún asi el que conozca el tema en profundidad que comente extensamente porque puede haber una solución rapida y pequeña :)

Salu2

malaga26
Mensajes: 947
Registrado: Sab 29 Jun, 2002 02:00

Mensaje por malaga26 » Sab 27 Sep, 2003 09:11

Ultima Version

http://www.divxclasico.com/devel/block- ... mod_CG.zip

Por si alguien quiere usarlo

Ciao :)

Responder