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

Eneko chan enekochan en gmail.com
Lun Feb 20 14:47:13 CET 2012


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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://listas.deusto.es/mailman/private/eside-ghost/attachments/20120220/ea8fdd75/attachment.html>


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