[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