Posted by davidcordero on December 11, 2015 at 2:49pm
Hola a todos y gracias por su colaboración, por adelantado.
El problema es el siguiente, estoy desarrollando un sitio web el cual estoy proyectando incluirle un contenido en el que me muestre datos de alojamiento, pero quiero agregarle un campo personalizado de tipo numero el cual se incremente cada vez que me den click en un boton que agregare alli en dicho contenido como puedo realizar ese incremento en el campo que he puesto en este contenido.
Saludos y espero me ayuden
Comments
Incremento
David te puedo decir que utilices si quieres una vista y luego pongas el campo de tipo integer en el tipo de contenido y con codigo php modifiques su valor para luego almacenarlo en la base de datos. Espero que te sirva de ayuda
No PHP
Usar los PHP plugins es una muy mala práctica. Estos fuerzan el uso de eval(), cuyo código es sumamente difícil de debuguear.
Solo comentario
Estoy de acuerdo contigo, js posee mejor rendimiento y demas. Yo solo le comunique una ayuda para que hiciera un modulo propio. Al final en drupal muchas cosas avanzadas se realizan en codigo. No necesita ningun plugin de php. Saludos.
PHP Filters
No me expresé bien, me refiero a los filtros de PHP que te permiten ingresar código desde la interfaz de usuario de administración, como hay por ejemplo para Views a través del submódulo Views PHP.
No problem
Tranquilo man, estamos aqui para debatir y aprender, gracias por la sugerencia yo voy a probarla tambien. Saludos cordiales
Tal vez exista ya algún
Tal vez exista ya algún módulo que haga eso tendrías que buscar bien. Si no existe vas a tener que crear el botón y su comportamiento a través de jquery, creó que es lo más aconsejable y rápido. Puedes agregar el script inline o crear un .js e incluirlo en la carga de tu página.
AJAX
No creo que puedas hacer eso por UI. Puedes crearte el campo normalmente en el content type e implementar con AJAX el botón que irá actualizándolo. Aquí un buen y sencillo ejemplo https://www.drupal.org/node/2046693 de uso de AJAX en Drupal.
Ajax
Muchisimas gracias por tu respuesta, pero tengo un problemita, no soy muy ducho en este tema de ajax y drupal, como puedo hacer eso que me comentas por aqui
saludos
Guidelines
Eso depende en gran medida de cómo estés poniendo el botón, o de qué sea el botón en cuestión (custom form por ejemplo), pero en cualquier caso necesitarás tirar código. Fíjate en el link que te pasé anteriormente. En general la idea es que definas una url a donde irá el llamado de ajax con un hook_menu ('node/get/ajax/%' en el ejemplo), a la cual vas a asociar un page callback (myModule_ajax_get_ajax) en donde vas a cargar el nodo, le vas a asignar el nuevo valor al campo y lo vas a guardar. Luego en el HTML del botón necesitas introducir JS que llame asíncronamente (sin recargar la página) a tu url y por tanto a tu callback y se haga lo que quieres:
<a class="btn" href="#" onclick="$.ajax('/node/get/ajax/11');">Ajax Test</a>
Fíjate que en el path al que vas a llamar deberías incluir algo como el nid del nodo, para que el page callback después sepa a qué nodo hay que incrementarle el valor.
En este caso a diferencia del ejemplo no deberías necesitar hacer un jQuery load() ni usar un delivery callback porque no estás cambiando markup, solamente quieres hacer un llamado al backend para que haga procesamiento sobre la base de datos.
Analiza el ejemplo y googlea! xD.