[eside-ghost] Formulario de alta para content type Drupal 7
Eneko chan
enekochan en gmail.com
Lun Feb 20 16:15:29 CET 2012
Por lo que veo tengo que montar el formulario a mano. Pensaba que en Drupal
habría algo para poner formularios de un content type "automágicamente".
Lo de los views lo voy a investigar pero no se si me va a servir para lo
que necesito.
Muchas gracias!
2012/2/20 Sharlak <sharlak.eside.ghost en gmail.com>
> **
> Pues una solución fácil y rápida (sin programar), es que te crees el tipo
> de contenido, le añadas los campos que quieras y generes una vista (módulo
> Views) a la que se le puedan pasar parámetros (sección filters). Hay una
> opción en la que le puedes decir qué HTML quieres que saque si no encuentra
> los resultados que buscas.... ahí le podrías poner un texto tipo: "El
> producto no se ha encontrado, si quiere dar un nuevo producto de alta pulse
> aquí" y le pones el enlace a añadir un contenido de tu producto. Si
> quieres que en vez del enlace, saque el formulario directamente tendrás que
> añadirle un poco de código PHP para que cargue tu formulario.
>
> Te paso un videotutorial <http://dev.nodeone.se/node/772> sobre la parte
> de los filtros en las views... aunque si no tienes experiencia con ese
> módulo, te recomiendo que empieces por los introductorios que encontrarás
> en Youtube o en la propia página de NodeOne tienen muchos vídeos sobre
> Views.
>
> Espero haberme explicado bien, si tienes alguna duda coméntame.
>
> Salu2!
>
>
>
>
> El 20/02/12 14:47, Eneko chan escribió:
>
> Pues yo lo que tengo es un content type "producto" y quiero que mediante
> la URL se busquen productos que cumplan las condiciones que a mi me
> interesan. Por poner un ejemplo una URL sería
> http://midominio.com/productos/ketchup/prima. Es un ejemplo tonto pero es
> para haceros una idea. Si existe algún Ketchup Prima pues saco los datos de
> todos los que existan, pero si no hay ninguno quiero mostrar un formulario
> para añadir un "producto" de mi content type, como si lo hicieras desde
> "Add content" en la consola administrativa.
>
> Como todavía no me entero muy bien de como va Drupal hay muchos
> conceptos que se me escapan.
>
> 2012/2/20 Sharlak <sharlak.eside.ghost en gmail.com>
>
>> Aupa Eneko,
>>
>> ¿Qué es lo que quieres hacer a nivel funcional?
>>
>> Con las preguntas concretas que haces no entiendo exactamente qué quieres
>> hacer... si quieres seleccionar contenidos en función de unos parámetros
>> quizá el módulo views te sea de ayuda... si quieres hacer un formulario el
>> módulo adecuado es webform (o si quieres añadir contenidos de un tipo, el
>> propio módulo de gestión de contenidos te puede valer)... para unir ambos
>> quizá tengas que programar un poco...
>>
>> Un saludo.
>>
>>
>> El 19/02/12 22:59, Eneko chan escribió:
>>
>> Hola!
>>
>> Acabo de empezar con Drupal así que es posible que lo que voy a
>> preguntar sea una tontería, pero es que llevo unos cuantos días que no
>> consigo descubrir como sacar un formulario de alta para un content type a
>> usuarios anónimos. Hasta ahora solo he sido capaz usando el típico "Add
>> content" de la consola administrativa pero no es lo que busco.
>>
>> Estoy haciendo un módulo que mediante hook_menu coge unas URL
>> determinadas (de la forma
>> http://midominio.com/mipathespecial/parametro1/parametro2/parametro3) y
>> en función de esta se llama a una función que busca en la base de datos los
>> nodos que cumplen ciertas condiciones. Si existen se muestran al usuario
>> (de momento en una lista de enlaces), y si no existe ninguno quiero mostrar
>> un formulario para dar de alta un nuevo nodo de mi content type pero que
>> algunos de los fields ya estén rellenados con los datos que venían en la
>> URL.
>>
>> De momento tengo algo más o menos así (he quitado partes de código que
>> no vienen a cuento para simplificar al máximo):
>>
>> function current_posts_menu() {
>> $items = array();
>> $texto = 'mipathespecial';
>> $items[$texto] = array(
>> 'title' => 'Mis URLs',
>> 'page callback' => '_current_posts_procesar_url',
>> 'page arguments' => array(0), // Pasamos los argumentos desde el root
>> argument
>> 'access arguments' => array('access current_posts content'),
>> 'type' => MENU_CALLBACK,
>> );
>>
>> return $items;
>> }
>>
>> function _current_posts_procesar_url($parametro1 = '', $parametro2 =
>> '', $parametro3 = '') {
>> $query = db_select('node', 'n');
>> .....aqui se buscan los nodos....
>> $result = $query->execute();
>> $output = '';
>>
>> //Array to contain items for the page to render.
>> $items = array();
>> //Iterate over the resultset and format as links.
>> foreach ($result as $row) {
>> $items[] = array(
>> 'data' => l($row->title, 'node/' . $row->nid),
>> );
>> }
>>
>> foreach ($result as $row) {
>> node_view(node_load($row->nid));
>> }
>>
>> if (empty($items)) { //No content
>> $page_array['current_posts_arguments'] = array(
>> //Title serves as page subtitle
>> '#title' => t('No conocemos ninguno.'),
>> '#markup' => t('No posts available.') . ' Parametro1: ' .
>> $parametro1 . ' Parametro2: ' . $parametro2 .' Parametro3: ' . $parametro3,
>> );
>> return $page_array;
>> }
>> else {
>> $page_array['current_posts_arguments'] = array(
>> '#title' => t('Conocemos estos:'),
>> '#items' => $items,
>> //Theme hook with suggestion.
>> '#theme' => 'item_list__current_posts',
>> );
>> return $page_array;
>> }
>> }
>>
>> No se si el formulario lo puedo meter de alguna forma dentro de un
>> fichero del theme (por ejemplo micontenttype--form.tpl.php o algo así) para
>> poder luego configurarlo con CSS y todo eso, pero tampoco me queda claro
>> como hacer que se cargue ese .tpl.php donde yo quiera. La verdad es que
>> todavía estoy muy verde con Drupal y se nota que la curva de aprendizaje es
>> algo lenta :(
>>
>> Si no recuerdo mal en esta lista hay más de uno que controla Drupal, a
>> ver si me podéis echar una mano. Muchas gracias!
>>
>>
>> _______________________________________________
>> eside-ghost mailing listeside-ghost en listas.deusto.eshttps://listas.deusto.es/mailman/listinfo/eside-ghost
>>
>>
>>
>> _______________________________________________
>> eside-ghost mailing list
>> eside-ghost en listas.deusto.es
>> https://listas.deusto.es/mailman/listinfo/eside-ghost
>>
>
>
> _______________________________________________
> eside-ghost mailing listeside-ghost en listas.deusto.eshttps://listas.deusto.es/mailman/listinfo/eside-ghost
>
>
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en listas.deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://listas.deusto.es/mailman/private/eside-ghost/attachments/20120220/b3ae59dc/attachment.html>
Más información sobre la lista de distribución eside-ghost