[eside-ghost] Formulario de alta para content type Drupal 7

Sharlak sharlak.eside.ghost en gmail.com
Lun Feb 20 15:47:09 CET 2012


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 
> <mailto: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 list
>>     eside-ghost en listas.deusto.es  <mailto:eside-ghost en listas.deusto.es>
>>     https://listas.deusto.es/mailman/listinfo/eside-ghost
>
>
>     _______________________________________________
>     eside-ghost mailing list
>     eside-ghost en listas.deusto.es <mailto:eside-ghost en listas.deusto.es>
>     https://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/5407f9f8/attachment-0001.html>


Más información sobre la lista de distribución eside-ghost