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

Eneko chan enekochan en gmail.com
Lun Feb 20 17:12:32 CET 2012


A mano me refería a crear un formulario con el Form API. He mirado a ver
como sale el formulario en "/node/add/producto" y no me sirve porque no
quiero dar a los usuarios tantas opciones (como por ejemplo Publishing
Options y todo eso). De todas maneras la view creo que no me sirve así que
me toca hacer el módulo.

Gracias!

2012/2/20 Sharlak <sharlak.eside.ghost en gmail.com>

> **
> ¿Con a mano te refieres  a hacer el formulario HTML o PHP?
>
> Si es así, NO, puedes usar los tipos de contenido de Drupal, en la opción
> de menú Structure > Content types > Add content type, para definir tus
> tipos de contenido (dependiendo de qué campos quieras que tenga tendrás que
> habilitar algún módulo más, como el Text, Number...). Ahí a través de una
> GUI le puedes definir los campos que quieres que tenga tu producto
> (nombre:texto 50 caracteres, no nulo; Descripción:texto 200 caracteres;
> Precio: número, 6 cifras, 2 decimales, mayor que 0). Una vez hecho esto
> verás que cuando vas a añadir un contenido ya puedes añadir contenidos del
> nuevo tipo que has creado (con el formulario de creación generado
> automágicamente).
>
> Espero haberme explicado... si te he entendido yo bien, veo claro hacerlo
> con Views:
>
>    - Crear tipo de contenido producto
>    - Crear vista de productos
>    - Añadir filtros a la búsqueda (para que puedas buscar por parámetros)
>     - En la opción de qué mostrar cuando el resultset está vacío, poner
>    tu texto y un enlace a "/node/add/product" (o como le hayas llamado a tu
>    tipo de contenido)
>
> Lo veo más fácil que hacer un módulo para ello... pero bueno, como tú lo
> veas más fácil.
>
> Un saludo.
>
> El 20/02/12 16:15, Eneko chan escribió:
>
> 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
>>
>
>
> _______________________________________________
> 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/1ebc7aa6/attachment-0001.html>


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