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

Keopx keopxx en gmail.com
Lun Feb 20 09:30:42 CET 2012


Te dejo unos recursos:

   - http://drupal.org/project/coder
   - http://drupal.org/coding-standards


El 20 de febrero de 2012 08:49, Keopx <keopxx en gmail.com> escribió:

> Veamos tienes varias temas:
>
> Ejemplo menú con parametros:
>
> function site_preferences_menu() {
>   $items = array();
>
>   $items['contenido-nuevo/%/%/%] = array(
>     'title' => 'Site preferences',
>     'description' => 'Site preferences change.',
>     'page callback' => 'drupal_get_form',
>     'page arguments' => array('contenido-nuevo_form'),
>     'access arguments' => array('tu permiso'),
>     'file' => 'contenido-nuevo_form.inc', // fichero donde esta el
> formulario
>     'type' => MENU_NORMAL_ITEM,
>   );
>
>   return $items;
> }
>
> Los % son variables que vas a poder ejecutar. Te recomiendo seguir el
> drupalway, te sera mucho más fácil. Te recomiendo la lectura del siguiente
> libro:
> http://www.amazon.com/Pro-Drupal-Development-Todd-Tomlinson/dp/1430228385/ref=dp_ob_title_bk
>
> Hay ejemplos prácticos y te vendrá muy muy bien.
>
> Si quieres css y theme puedes hacerlo así:
>
> http://www.jaypan.com/blog/themeing-drupal-7-forms-including-css-and-js
>
> Espero que te sirva
>
>
> El 19 de febrero de 2012 22:59, Eneko chan <enekochan en gmail.com> 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
>> 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/dda12a0c/attachment.html>


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