• ¡Bienvenido a XenFácil!

    Estás viendo el sitio como Invitado. Para poder participar en este sitio

    y obtendrás privilegios adicionales, acceso a otras áreas y mucho mas.

    ¡Es gratis!


    ¿Ya eres miembro? Inicia sesión

Solucionado Crear una página que lea de la base de datos

Estado
Cerrado para nuevas respuestas

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
No debería, las actualizaciones en mi hosting las hago yo cuando las considero necesarias, ellos no tienen acceso al hosting sin mi permiso :/
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Pues fallo momentáneo de algún servicio.

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Yo sigo con mis chorradillas...

Si tengo una fila que es un int, definido en el DW como UINT que es el que maneja xenforo y hago una consulta pidiendo únicamente ese campo, me devuelve un int o un array?
Por la función _getFields intuyo que devuelve un array con un int dentro, pero no estoy seguro. Si es así, hay alguna función definida por XenForo que convierta el array recibido en int, string, ..?

La otra opción que tengo es que el dato leído de la web, a pesar de querer leerlo como un int (XenForo_Input::INT) me devuelva un int, un array u otra cosa, ya que al hacer la suma aritmética de las dos variables me da error por incompatibilidad de tipos.
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Ya está.. tratándolo como un array y a tomar por saco, getFields devuelve siempre un array, por lo que para acceder a cada dato tienes que ir a $array['dato'] y te lo devuelve del tipo que sea en la tabla.
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Y ya que estoy con esto, aunque sea en plan monólogo.. xD

Se pueden pasar varios datos desde un formulario y con un sólo boton y leerlos desde un array? Así sólo hace falta un array y un formulario para escribirlos, y no hay que hacer un formulario por dato. Supongo que el script de registro será algo así, luego lo miraré, pero si alguno me lo puede confirmar y decirme cómo va, se lo agradecería :)
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Después me lo miro :)

¿Cómo se aumentaría la longitud de los comentarios en el perfil? ¿Se podría meter el editor WYSIWYG ahí para formatear los comentarios sólo metiendo el editor (sin más modificaciones, la db vi que usa el mismo tipo de dato)?
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
No lo sé. Creo que está definida por php la longitud de los comentarios (hardcoded) pero no te lo aseguro. ¿En UserProfile.php?

Lo de los array, mira en /options/... que hay varios.

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Había visto una vez una variable definida que en principio era la longitud de los comentarios, la aumenté pero la cuenta me sigue saliendo en 140. A ver si trasteo también un poco con lo del editor, que estaría curioso :)

Voy a mirar también lo de hacer gráficas como en el adminCP, si tienes algún consejo o sabes cómo va, estaría genial porque nunca las he utilizado.
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
No. No las he tocado nunca. Ahora estoy demasiado liado con el XFBoletin (al que le falta un suspiro) para meterme con eso. Si sacas algo en claro, nos cuentas (los tutoriales en el foro oportuno, :D).

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Una preguntilla relacionada con esto de leer un input con un array..

Si quiero leer n datos para asignarlos a n filas distintas, ¿cómo haría?

Me explico: Tengo la tabla test, con ID y texto de campos.
Quiero poder seleccionar en mi página 10 textos distintos (de un selectbox), y asignarlo a 10 filas de test distintas.

Se me ocurre hacer un formulario dentro de un foreach de 0 a un count (10 en este ejemplo) para mostrar los 10 formularios y enviarlos con un botón.
¿Pero cómo los leería? ¿Con un foreach? ¿Dentro o fuera del input?

Lo que se me fué ocurriendo mientras escribía esto.
CONTROLLER (TEMPLATE)
Insertar CODE, HTML o PHP:
$texts = array(...)

TEMPLATE
Insertar CODE, HTML o PHP:
<form action="{xen:link index/testMultipleWrite}" method="post" class="Form">
<xen:foreach loop="$texts" value="$text" i="$i">
    <dl class="ctrlUnit">
        <label for="ctrl_custom_title">{xen:phrase text}:</label>
                <select name="text" class="textCtrl OptOut" id="ctrl_style_id" autofocus="on">
                    <xen:foreach loop="$texts" value="$text" i="$i">
                            <option value="{$text}">{$text}</option>
                    </xen:foreach>
                    </optgroup>
                </select>
    </dl>
    <br/>
</xen:foreach>
    <dl class="ctrlUnit submitUnit">
        <dt></dt>
        <dd><input type="submit" value="{xen:phrase save}" class="button primary" accesskey="s" /></dd>
    </dl>
 
    <input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />
 
</form>

CONTROLLER (LECTURA)
Insertar CODE, HTML o PHP:
        $visitor = XenForo_Visitor::getInstance();
        if (!$visitor->get('user_id')) {
            return $this->responseError(new XenForo_Phrase('cannot_edit_arena'));
        }
        $userId =  XenForo_Visitor::getUserId();
 
foreach ($tests as $test){
        $test = $this->_input->filter(array(
            'user_id'  => XenForo_Input::UINT,
            'text'    => XenForo_Input::STRING,
        ));
 
        $writer = XenForo_DataWriter::create('XenForo_DataWriter_Test');
        $writer->setExistingData($visitor->get('user_id'));
        $writer->set('text', $text);
        $writer->save();
}
return...

No sé, creo que no voy muy desencaminado pero me falta.. ¿alguien puede ayudar?
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
NO. Que yo sepa, el único modo es ir poniendo un input para cada variable que quieres recoger, salvo que sea un array y siempre que indiques su id de array.
¿Como hacerla? Lo mejor es uno a uno.

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Pero siendo un número dinámico de opciones no puedo definir uno a uno, porque cada usuario tendrá un número distinto.

Por ejemplo, cada usuario tiene n post (un foreach que muestre un fetchAllKeyed post where user_id) con un select box (sticky, unsticky, delete por ejemplo, dentro del foreach).
Si quiero que pueda cambiar uno a uno (el primero sticky, borrar los 3 siguientes, unsticky el 5º..) y guardar todo con un sólo click, no podría?

Uno a uno, como ves no podría por el distinto número de posts, pero creo que con algo tipo lo que puse arriba se debería poder hacer. Quizá no así, pero de ese estilo.

De la forma que digo.. recibirías un ¿array de arrays?. Al entrar en el foreach de lectura teóricamente vas leyendo array a array (definiendo el campo con $array['campo']) y creo que se guardaría, pasaría al siguiente array y así hasta que termine. Pero vaya, que es más teórico-inspiración que me vino al preguntar que otra cosa :)
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Es posible pero no te lo puedo asegurar. Dependerá de la estructura del formulario/página que vea el usuario y el como estén hechas las variables.

De otro modo, pensemos al revés: tengo que recoger un array con una estructura. -> darle esa estructura al formulario página de tal modo que puedan variar los campos y/o el número de registros pero que, a nivel de variables, sea así.

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
A ver si termino los exámenes y puedo ir probando todo esto.. :)

No sé, la lógica me dice que debería funcionar, al menos tal y como lo tengo pensado, pero hasta que me ponga manos a la obra..
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Acabo de probar 2 formas distintas, no me van.

El form es normal, paso una variable desde varios a una función del controlador. Hasta ahí todo bien.
Ahora, intenté:
-Un foreach en el que leo usuario a usuario, leyendo el input dentro.
-Leo el input con un filter(array()), hago un array. Ahora 2 foreach anidados, el grande que lee usuario a usuario y el otro que lee el array que acabo de leer, con todo el código dentro.

No me funcionó ninguna. ¿Alguna idea más? ¿O estas pueden estar bien, las pego y a ver si encontramos algún error?
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Pégalas a ver.

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Acabo de terminar los exámenes y vuelvo a esto :)

Sigo estancado en lo mismo. Tengo una lista de tamaño dinámico (generada con un foreach, cada usuario tiene n filas) con 2 valores, una ID y un número. El número se puede modificar, seleccionando las opciones en un combobox.
Lo que quiero es poder cambiar todos los que quiera y guardarlos sólo con un botón de save, pero no me sale. ¿Alguna idea de cómo hacerlo?

Para guardarlo es sencillo, con un bulkSet se guardan arrays de datos un por uno, pero no soy capaz de pasar bien los array de datos (las ID y los nuevos números), leerlos y pasárselos a la función de save, algo me falla por el medio.
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
¿Has pensado en hacer una variable que una a las dos y preguntar por ello?

$numero[$id]

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Un ejemplillo práctico de cómo hacerlo?
Lo que probé fué a pasar data[id] y data[numero] desde el template y guardarlo en $data['id'] y $data['numero'], pero aún así hay algo que me falla, no me va. Sé que algo está mal e intuyo que es un fallo de conceptos en algún sitio, pero no lo veo.

Insertar CODE, HTML o PHP:
[LIST]
[*]The existing data required by the data writer could not be found.
[*]The field 'numero' was not recognised.
[/LIST]
 
Estado
Cerrado para nuevas respuestas
Arriba